(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。なお、以下の説明においてはWebRTCによるP2P(Peer to Peer)通信を例として説明するがWebRTC以外の技術を用いたP2P通信にも適用することができる。
【0016】
図1は、実施の形態1にかかる接続制御装置の概略構成を示すブロック図である。
図1において、接続制御装置100は、通信部101と、処理部102と、記憶部103とを備える。
【0017】
通信部101は、ネットワークを介して端末と通信を行う。そして、通信部101は、端末からのP2P通信要求を受信する。さらに通信部101は、P2P通信要求を別の端末に送信し、別の端末から通信要求応答を受信する。そして通信部101は、P2P通信要求を送信した端末に通信要求応答を送信する。また、通信部101は、後述する処理部102の指示に従い、P2P通信に成功した端末の組み合わせを、P2P通信要求を送信した端末に送信する。例えば、通信部101は、LAN(Local Area Network)ケーブルを介してネットワークに接続するLANI/F(InterFace)モジュールを備えてもよい。
【0018】
処理部102は、端末からのP2P通信要求に対する処理を行う。処理部102は、P2P通信を要求する端末とP2P通信に成功した端末の組み合わせを、記憶部103に参照する。そして、処理部102は、通信部101にP2P通信を要求する端末とP2P通信に成功した端末の組み合わせを、P2P通信要求を送信した端末に送信するよう指示する。
【0019】
例えば、処理部102は、端末から受信するP2P通信要求のシグナリングメッセージを相手端末に転送する。処理部102は、転送の際、送信及び受信するシグナリングメッセージの内容を解析して書き換える機能も有する。また処理部102は、デバイスが接続成功した際に成功した端末の組み合わせのデータを取得及び解析する機能を有する。
【0020】
記憶部103は、P2P通信に成功した端末の組み合わせを記憶する。記憶部103は、メモリ回路で構成されることが好適である。そして、記憶部103は、処理部102の参照に応じて、P2P通信を要求する端末とP2P通信に成功した端末の組み合わせを処理部102に出力する。
【0021】
このように実施の形態1の接続制御装置によれば、P2P通信を要求する端末とP2P通信に成功した端末の組み合わせを記憶することにより、再び接続要求があったときに、再度、接続候補収集と接続試行を行うことなく、P2P通信の通信相手となる端末と接続完了できるので、接続の高速化を図ることができる。
【0022】
なお、処理部102は、通信部101が端末からのP2P通信要求を受信した場合に、P2P通信を要求する端末とP2P通信に成功した端末の組み合わせを、記憶部103に参照するようにしてもよい。
【0023】
また、処理部102は、端末同士が接続試行する場合に、P2P通信を要求する端末とP2P通信に成功した端末の組み合わせを、記憶部103に参照するようにしてもよい。
【0024】
実施の形態2
実施の形態2では、実施の形態1の接続制御装置100を用いた通信システムについて説明する。
図2は、実施の形態2にかかる通信システムの概略構成を示す図である。
図2において、通信システム200は、接続制御装置100と、端末201−1〜201−n(nは任意の自然数)と、ネットワーク202とを備える。
【0025】
接続制御装置100は、実施の形態1で説明した接続制御装置である。接続制御装置100は、ネットワーク202を介して端末201−1〜201−nと通信を行う。具体的には、接続制御装置100は、端末201−1〜201−nのいずれかからのP2P接続要求に対する処理を行う。そして、接続制御装置100は、端末201−1〜201−nに順次接続要求を試行する。そして、接続制御装置100は、接続可能な端末の情報をP2P接続要求した端末に送信する。例えば、接続制御装置100は、シグナリングサーバ機能にデータベースとして接続候補管理配列を有するサーバであってもよい。
【0026】
また、接続制御装置100は、再び接続要求があったときに、P2P通信を要求する端末とP2P通信に成功した端末の組み合わせをP2P接続要求した端末に送信する。
【0027】
端末201−1〜201−nは、互いにP2P通信が可能な端末である。端末201−1〜201−nのいずれかは、P2P接続要求を接続制御装置100に送信する。また、端末201−1〜201−nのいずれかは、接続制御装置100から送信されたP2P接続要求に対する応答であるP2P接続要求応答を接続制御装置100に送信する。そして、端末201−1〜201−nのいずれかは、接続制御装置100から送信されたP2P接続要求応答を受信し、P2P接続を開始する。また、端末201−1〜201−nが接続制御装置100との通信で通信要求/通信要求応答交換に加えて経路情報の交換も行う。
P2P接続の詳細な手順は後述する。
【0028】
また例えば、端末201−1〜201−nは、WebRTC通信に対応したブラウザあるいはネイティブアプリケーションを含んでもよい。また、端末201−1〜201−n間の通信については、音声、映像、任意のデータのいずれかまたは組み合わせたものであってもよい。
【0029】
以上の構成により、端末201−1〜201−n間でP2P通信が行われる。次に接続手順について説明する。
図3は、実施の形態2に係る通信システムの接続手順の一例を示すシーケンス図である。
図3は、RFC5425に対応した端末201−1及び端末201−2が最初にWebRTC通信する例である。
【0030】
まずステップS301において、P2P通信の候補を収集する処理が開始され、ステップS302に進む。
【0031】
ステップS302において、端末201−1から接続制御装置100にP2P接続要求が送信される。
【0032】
ステップS303において、端末201−1から端末201−2への通信要求を受信した際に、接続制御装置100の処理部102は、通信部101は記憶部103を参照し端末の組み合わせが登録されているか否か確認する。なお、登録が無い場合は特に追加処理を行わない。
【0033】
ステップS304において、端末201−2が接続要求を受信し、ステップS305に進む。
【0034】
ステップS305において、端末201−2がP2P通信の候補収集に関する処理を行い、ステップS306に進む。
【0035】
ステップS306において、端末201−2が接続要求応答を接続制御装置100に送信する。
【0036】
ステップS307において、端末201−2から端末201−1への通信要求応答を受信した際に、接続制御装置100の処理部102は、記憶部103を参照する。そして、処理部102は、端末201−1と端末201−2の組み合わせが登録されているか確認する。なお、登録が無い場合は特に追加処理を行わない。
【0037】
ステップS308において、接続要求応答が接続制御装置100から端末201−1に送信され、ステップS309に進む。
【0038】
ステップS309において、端末201−1と端末201−2の間のP2P接続が試行される。このP2P接続の試行では、端末201−1及び端末201−2は、経路情報等P2P接続に必要な情報を取得するために、接続制御装置100と通信を行う。
【0039】
ステップS310において、通常のICEプロトコルにより接続試行を行った結果、端末間の接続に成功した場合、端末201−1、端末201−2より成功した接続候補の情報が接続制御装置100に送信される。接続制御装置100の処理部102は、は受信した端末の組み合わせの情報を記憶部103に登録する。
【0040】
以上の動作により、接続制御装置100は、P2P接続が成功した端末の組み合わせを記憶することができる。次に記憶部103に記憶する端末の組み合わせの情報の例について説明する。
図4は、接続制御装置100の記憶部103に記憶する端末の組み合わせの情報の一例を示す図である。
図4において、リスト351及びリスト352は、通信の組み合わせ候補の情報を示すリストである。リスト351及びリスト352において、下線で示した情報が実際にP2P接続を行った端末201−1及び端末201−2の組み合わせである。端末201−1及び端末201−2の組み合わせ情報は、例えば、RFC5245で規定されるICE Candidateに含まれる端末のIPアドレス、ポート番号、プロトコル、コンポーネント、タイプ、優先度、ファウンデーション、ベースのうちの少なくとも1つを含む。
【0041】
したがって、記憶部103は、リスト353の端末201−1及び端末201−2の組み合わせの行において、候補A及び候補Bの欄にリスト351及びリスト352の下線で示した情報を格納する。このようにしてP2P接続が行われた端末A及び端末B(すなわち任意の端末201−1〜端末201−n)の組み合わせの情報が記憶部103に登録される。
【0042】
次に再度接続する手順について説明する。
図5は、実施の形態2に係る通信システムの接続手順の一例を示すシーケンス図である。
図5は、RFC5425に対応した端末201−1及び端末201−2が再度接続してWebRTC通信する例である。
【0043】
まず
図3と同様にステップS301において、P2P通信の候補を収集する処理が開始され、ステップS302に進む。
【0044】
図3と同様にステップS302において、端末201−1から接続制御装置100にP2P接続要求が送信される。
【0045】
ステップS403において、端末201−1からの通信要求を受信した際に、接続制御装置100の処理部102は、通信部101は記憶部103を参照し、P2P通信に成功した端末の組み合わせが登録されているか否か確認する。登録があった場合は、通信要求に含まれる候補情報を変更し、記憶部103に登録されている成功した端末の組み合わせを、最優先とする。そして、処理部102は、P2P通信に成功した端末の組み合わせを記憶部103から抽出する。
【0046】
ステップS404において、処理部102が通信部101を介して端末102に接続要求を送信し、端末201−2が接続要求を受信し、ステップS405に進む。
【0047】
ステップS405において、端末201−2がP2P通信の候補収集に関する処理を行い、ステップS406に進む。
【0048】
ステップS406において、端末201−2が接続要求応答を接続制御装置100に送信する。
【0049】
ステップS407において、端末201−2から端末201−1への通信要求応答を受信した際に、接続制御装置100の処理部102は、記憶部103を参照する。そして、処理部102は、端末201−1と端末201−2の組み合わせが登録されているか確認する。登録があった場合は、通信要求応答に含まれる候補情報を変更し、記憶部103に登録されている成功した端末の組み合わせを最優先とする。そして、処理部102は、P2P通信に成功した端末の組み合わせを記憶部103から抽出する。
【0050】
ステップS408において、接続要求応答が接続制御装置100から端末201−1に送信され、ステップS409に進む。
【0051】
ステップS409において、端末201−1と端末201−2の間のP2P接続が試行される。端末201−1及び端末201−2はそれぞれ前回接続に成功した候補に対し最優先に接続試行を行う。このP2P接続の試行では、端末201−1及び端末201−2は、P2P通信に成功した端末の組み合わせの情報として経路情報等P2P接続に必要な情報を取得するために、接続制御装置100と通信を行う。
【0052】
ステップS410において、通常のICEプロトコルにより接続試行を行った結果、端末間の接続に成功した場合、端末201−1、端末201−2より成功した接続候補の情報が接続制御装置100に送信される。接続制御装置100の処理部102は、は受信した端末の組み合わせの情報を記憶部103に登録する。端末の組み合わせが同じ場合、端末の組み合わせの情報を記憶部103に上書き登録する。
【0053】
このように実施の形態2の接続制御装置及び通信システムによれば、P2P通信を要求する端末とP2P通信に成功した端末の組み合わせを記憶し、通信部101が端末からのP2P通信要求を受信した場合に、P2P通信に成功した端末の組み合わせを送信することにより、再び接続要求があったときに、再度、接続候補収集と接続試行を行うことなく、P2P通信の通信相手となる端末と接続完了できるので、接続の高速化を図ることができる。
【0054】
特に、本発明の実施形態は多数のデバイスがシグナリングサーバを利用し、それぞれのネットワーク環境が異なる場合に有用である。
【0055】
なお、本発明の実施形態である接続制御装置100内部の各構成はそれぞれ別のハードウェアであってもよい。
【0056】
また、処理部102と記憶部103が持つ接続候補の変更プロセスは端末201−1及び端末201−2それぞれが有してもよい。その場合、経路情報の候補収集の前に接続端末の組み合わせを読み出し、候補収集プロセスを省略することも可能である。
【0057】
実施の形態3
実施の形態3では、Trickle ICEに対応した場合の動作を、説明する。
図6は、実施の形態3に係る通信システムの接続手順の一例を示すシーケンス図である。
図3は、Trickle ICEに対応した端末201−1及び端末201−2が最初にWebRTC通信する例である。
【0058】
まずステップS501において、端末201−1から接続制御装置100にP2P接続要求が送信される。
【0059】
ステップS502において、端末201−2が接続制御装置100からの接続要求を受信する。
【0060】
一方、ステップS503において、端末201−1では、P2P通信の候補を収集する処理が開始される。
【0061】
ステップS504において、接続要求応答が端末201−2から接続制御装置100に送信される。
【0062】
ステップS505において、接続要求応答が接続制御装置100から端末201−1に送信される。
【0063】
他方、ステップS506において、端末201−2では、P2P通信の候補収集に関する処理が行われる。
【0064】
ステップS507において、端末201−1と端末201−2の間のP2P接続が試行される。このP2P接続の試行では、端末201−1、端末201−2からそれぞれ初めの接続候補を受信した際に、通信部101は記憶部103を参照し端末の組み合わせが登録されているか確認する。登録が無い場合は特に追加処理を行わない。また、端末201−1及び端末201−2は、経路情報等P2P接続に必要な情報を取得するために、接続制御装置100と通信を行う。
【0065】
ステップS508において、通常のTrickle ICEプロトコルにより接続試行を行った結果、デバイス間の接続に成功した場合、端末201−1、端末201−2より成功した接続候補の情報を接続制御装置100に送信する。処理部102は受信した端末の組み合わせの情報を記憶部103に登録する。
【0066】
以上の動作により、接続制御装置100は、P2P接続が成功した端末の組み合わせを記憶することができる。
【0067】
次に再度接続する手順について説明する。
図7は、実施の形態4に係る通信システムの接続手順の一例を示すシーケンス図である。
図7は、Trickle ICEに対応した端末201−1及び端末201−2が再度接続してWebRTC通信する例である。
【0068】
まず
図6と同様にステップS501において、端末201−1から接続制御装置100にP2P接続要求が送信される。
【0069】
図6と同様にステップS502において、端末201−2が接続制御装置100からの接続要求を受信する。
【0070】
一方、ステップS503において、端末201−1では、P2P通信の候補を収集する処理が開始される。
【0071】
図6と同様にステップS504において、接続要求応答が端末201−2から接続制御装置100に送信される。
【0072】
図6と同様にステップS505において、接続要求応答が接続制御装置100から端末201−1に送信される。
【0073】
他方、ステップS506において、端末201−2では、P2P通信の候補収集に関する処理が行われる。
【0074】
ステップS607において、端末201−1と端末201−2の間のP2P接続が試行される。このP2P接続の試行では、端末201−1、端末201−2からそれぞれ初めの接続候補を受信した際に、通信部101は記憶部103を参照し端末の組み合わせが登録されているか確認する。登録があった場合は記憶部103に登録されているP2P通信に成功した端末の組み合わせを抽出し、受信した候補より先に相手端末へP2P通信に成功した端末の組み合わせを送信する。また、端末201−1及び端末201−2は、経路情報等P2P接続に必要な情報を取得するために、接続制御装置100と通信を行う。
【0075】
ステップS608において、通常のTrickle ICEプロトコルにより接続試行を行った結果、デバイス間の接続に成功した場合、端末201−1、端末201−2より成功した接続候補の情報を接続制御装置100に送信する。処理部102は受信した端末の組み合わせの情報を記憶部103に登録する。端末の組み合わせが同じ場合、端末の組み合わせの情報を記憶部103に上書き登録する。
【0076】
このように実施の形態2の接続制御装置及び通信システムによれば、P2P通信を要求する端末とP2P通信に成功した端末の組み合わせを記憶し、端末同士が接続試行する際に、P2P通信に成功した端末の組み合わせを接続制御装置から端末に送信することにより、再び接続要求があったときに、再度、接続候補収集と接続試行を行うことなく、P2P通信の通信相手となる端末と接続完了できるので、接続の高速化を図ることができる。
【0077】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、デバイスのSTUN(Session Traversal Utilities for NATs(Network Address Translation))サーバを用いたグローバルアドレスの収集が必要な場合やTURN(Traversal Using Relay around NAT)サーバを使用した中継が必要な場合に適用しても良い。
【0078】
また、上述の説明において、様々な処理を行う機能ブロック及びフローとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0079】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。