(57)【要約】【課題】中継装置を経由して端末間での通信を行うシステムにおいて、端末間の遅延時間が小さくなるように、端末が使用する中継装置を選択する。【解決手段】複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する前記第１の端末として使用される端末において、前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得手段と、前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択手段と、前記第２の端末に対して選択された中継装置を当該第２の端末に通知する通知手段とを備える。【選択図】図９
2018019438.tif 000002
【特許請求の範囲】
【請求項１】
相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する前記第１の端末として使用される端末であって、
前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得手段と、
前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択手段と、
前記第２の端末に対して選択された中継装置を当該第２の端末に通知する通知手段と
を備えることを特徴とする端末。
【請求項２】
コンピュータを、請求項１に記載の端末における各手段として機能させるためのプログラム。
【請求項３】
相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する中継装置選択装置であって、
前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得手段と、
前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択手段と、
前記選択手段により選択された中継装置を前記第１の端末及び前記第２の端末に通知する通知手段と
を備えることを特徴とする中継装置選択装置。
【請求項４】
前記選択手段は、前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、前記各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の遅延時間の合計が最小となる中継装置を選択する
ことを特徴とする請求項３に記載の中継装置選択装置。
【請求項５】
相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する中継装置選択装置により実行される中継装置選択方法であって、
前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得ステップと、
前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択ステップと、
前記選択ステップにより選択された中継装置を前記第１の端末及び前記第２の端末に通知する通知ステップと
を備えることを特徴とする中継装置選択方法。
【請求項６】
コンピュータを、請求項３又は４に記載の中継装置選択装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置を経由して行う端末間の通信に関連するものである。
【背景技術】
【０００２】
近年、端末同士を接続して通信を行うＰ２Ｐ通信が普及してきている。Ｐ２Ｐ通信を実現するための技術としては種々の技術があるが、例えば、端末のブラウザ間でＰ２Ｐ通信を実現するＷｅｂＲＴＣがある。
【０００３】
ＷｅｂＲＴＣにより端末間でＰ２Ｐ通信を行うためには、両端末はお互いのアドレスを知る必要がある。そこで、ＩＣＥ（Interactive Connectivity Establishment）と呼ばれる技術を使用して、通信に使用するアドレスを決定する。
【０００４】
ＩＣＥでは、各端末が、利用可能なアドレスを収集し、端末間で、収集されたアドレスを交換して、通信可能なアドレスのうち優先度の高いアドレスを選択して通信を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１５３０７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば上記のＩＣＥの手順により、端末間の直接通信ができない場合、中継装置の一種であるＴＵＲＮ（Traversal Using Relays around NAT）サーバを経由することにより端末間での通信が行われる。
【０００７】
しかし、例えば、端末から物理的に遠く離れたＴＵＲＮサーバや、物理的距離が近くてもネットワーク的な距離が大きなＴＵＲＮサーバが選択された場合、ＴＵＲＮサーバを経由した端末間での遅延時間が増加してしまい、特に、音声・映像のようなリアルタイム通信においては、通信品質の低下が起こる可能性がある。
【０００８】
上記のような問題は、ＷｅｂＲＴＣによる通信に限らず、中継装置を経由して端末間での通信を行うシステム全般に生じ得る問題である。
【０００９】
本発明は上記の点に鑑みてなされたものであり、中継装置を経由して端末間での通信を行うシステムにおいて、端末間の遅延時間が小さくなるように、端末が使用する中継装置を適切に選択することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
また、本発明の実施の形態によれば、相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する中継装置選択装置であって、
前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得手段と、
前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択手段と、
前記選択手段により選択された中継装置を前記第１の端末及び前記第２の端末に通知する通知手段と
を備えることを特徴とする中継装置選択装置が提供される。
【００１１】
また、本発明の実施の形態によれば、相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する中継装置選択装置により実行される中継装置選択方法であって、
前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得ステップと、
前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択ステップと、
前記選択ステップにより選択された中継装置を前記第１の端末及び前記第２の端末に通知する通知ステップと
を備えることを特徴とする中継装置選択方法が提供される。
【発明の効果】
【００１２】
本発明の実施の形態によれば、中継装置を経由して端末間での通信を行うシステムにおいて、端末間の遅延時間が小さくなるように、端末が使用する中継装置を適切に選択することを可能とする技術が提供される。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施の形態におけるシステムの全体構成例を示す図である。
【図２】第１の実施の形態における処理手順の例を説明するためのシーケンス図である。
【図３】中継用アドレスを説明するための図である。
【図４】ステップＳ１１１での通信経路の例１を示す図である。
【図５】ステップＳ１１１での通信経路の例２を示す図である。
【図６】端末２０の構成図である。
【図７】端末２０のハードウェア構成の一例を示す図である。
【図８】本発明の第２の実施の形態におけるシステムの全体構成例を示す図である。
【図９】第２の実施の形態の概要を説明するための図である。
【図１０】第２の実施の形態における処理手順の例を説明するためのシーケンス図である。
【図１１】第２の実施の形態における処理手順の他の例を説明するためのシーケンス図である。
【図１２】中継装置選択装置４０の構成図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態（本実施の形態）を説明する。なお、以下で説明する各実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１５】
本実施の形態における中継装置は、例えば前述したＴＵＲＮサーバであるが、ＴＵＲＮサーバに限られるわけではなく、中継装置として種々のサーバを使用することができる。
【００１６】
また、本実施の形態では、例えば、端末間の通信はＷｅｂＲＴＣを用いて行い、ＩＣＥの手順の結果として、直接通信ができないために中継装置（ＴＵＲＮサーバ）経由での通信が行われる状況を想定しているが、これは一例に過ぎない。例えば、直接通信ができる場合でも、中継装置を利用することとしてもよい。
【００１７】
また、端末間の通信を行うための技術はＷｅｂＲＴＣに限定されるわけではなく、ＷｅｂＲＴＣ以外の様々な通信方式を使用することができる。
【００１８】
なお、本実施の形態で説明する通信において、通信の宛先等の指定のために、ＩＰアドレスとポート番号の組が用いられるが、以下では、便宜上、ＩＰアドレスとポート番号の組を「アドレス」と呼ぶことにする。以下、第１の実施の形態と第２の実施の形態を説明する。
【００１９】
［第１の実施の形態］
（システム構成例）
図１に、第１の実施の形態におけるシステムの全体構成例を示す。図１に示すように、本システムは、データ通信の中継を行う中継網１０に、端末２０Ａと端末２０Ｂが接続された構成を有する。また、図１に示すように、通信制御装置３０が備えられ、通信制御装置３０を経由して、端末２０Ａと端末２０Ｂとの間で制御通信（シグナリング通信）を行うことが可能である。
【００２０】
上記の「データ通信」は、音声、映像等の通信を含むものであり、これを「メディア通信」と呼んでもよい。上記の制御通信は、例えば、ＳＩＰを用いて行われるが、ＳＩＰ以外のプロトコルを用いて制御通信を行うこととしてもよい。
【００２１】
中継網１０には、複数の中継装置（１００〜１０３）が備えられる。図１には、４つの中継装置が示されているが、これは図示の便宜上のためであり、実際には、より多くの中継装置が備えられる。ただし、４つよりも少ない数の中継装置を備えることとしてもよい。以下では、中継装置１００〜１０３のうちの特定の中継装置を指さない場合は、参照符号を付けずに単に「中継装置」と記述する。
【００２２】
中継装置は、端末からの接続要求を受けて、当該端末に中継用アドレスを払い出し、当該中継用アドレスを使用したデータ通信の中継を行う機能を備えている。中継装置がＴＵＲＮサーバである場合、当該接続要求はAllocation Requestに相当する。本実施の形態では、中継装置間は、ＵＤＰにより通信を行うが、これは例であり、ＴＣＰにより通信を行うこととしてもよい。
【００２３】
端末２０Ａ、２０Ｂ（これらを区別しない場合、端末２０と記述する）は、例えば、ＰＣ、スマートフォン、タブレット等である。端末２０と中継網１０との間には、一般的にＮＡＴ装置やファイアウォール等のアクセス機器が備えられる。
【００２４】
アクセス機器には、ＵＤＰとＴＣＰの両方を透過する機器、ＵＤＰは遮断するがＴＣＰを透過する機器、ＨＴＴＰ（ＨＴＴＰＳ含む）以外のＴＣＰ／ＵＤＰを遮断する機器等がある。本実施の形態では、各端末２０は、自身を収容するアクセス機器を超えて中継装置との間での通信（送受信）が可能である。一例として、ＨＴＴＰ（ＨＴＴＰＳ含む）以外のＴＣＰ／ＵＤＰを遮断するアクセス機器の場合、端末２０と中継装置との間はＨＴＴＰトンネルで接続されることが想定される。
【００２５】
（システムの動作）
本実施の形態では、各端末２０は、各中継装置との間のＲＴＴ（round trip time）を測定し、測定結果に基づいて、複数の中継装置の中から自身が使用する中継装置を選択し、当該中継装置を経由して端末間でのデータ通信を行う。
【００２６】
第１の実施の形態における処理動作を図２に示すシーケンス図等を参照して説明する。ここでは、端末２０Ａと端末２０Ｂとの間でデータ通信を開始するまでの手順を説明する。なお、端末２０Ａと端末２０Ｂ間の制御通信（後述する中継用アドレスの交換等）は、通信制御装置３０を介して行われるが、図２では、通信制御装置３０の記載を省略している。他の図でも同様である。図２では、中継網１０に中継装置１００、１０１、１０２の３つの中継装置を示し、各端末２０はこれらの中継装置から１つの中継装置を選択する。
【００２７】
図２の手順の前提として、各端末２０は、各中継装置のアドレスを取得し、記憶手段に保持しているものとする。各中継装置のアドレスを取得する方法はどのような方法でもよいが、例えば、各中継装置のアドレスを保持するＷｅｂサーバをネットワーク上に備え、各端末２０は、当該Ｗｅｂサーバから各中継装置のアドレスを取得する。当該アドレスは、ＲＴＴを測定するためのパケットや、接続要求を送信する際の宛先となるアドレスである。
【００２８】
ステップＳ１０１〜Ｓ１０３において、端末２０Ａが各中継装置との間のＲＴＴを測定し、ステップＳ１０４〜Ｓ１０６において、端末２０Ｂが各中継装置との間のＲＴＴを測定する。
【００２９】
より詳細には、ステップＳ１０１を例にとって説明すると、端末２０Ａは、中継装置１００にパケットを送信し、中継装置１００から当該パケットに対する応答のパケットを受信し、応答のパケットを受信した時刻から、最初のパケットを送信した時刻を引いた時刻をＲＴＴとして算出する。他の中継装置に関しても同様である。
【００３０】
上記ＲＴＴの計測のために使用するパケットは、ＲＴＴを計測できるのであればどのようなパケットでもよいが、例えば、ＳＴＵＮリクエスト／ＳＴＵＮレスポンスや、ＨＴＴＰリクエスト／ＨＴＴＰレスポンスを用いることができる。
【００３１】
例えば、ＳＴＵＮリクエスト／ＳＴＵＮレスポンスを用いる場合、ステップＳ１０１を例にとると、端末２０ＡはＳＴＵＮリクエストを中継装置１００に送信し、中継装置１００からＳＴＵＮリクエストに対するＳＴＵＮレスポンスを受信し、ＳＴＵＮレスポンスを受信した時刻から、ＳＴＵＮリクエストを送信した時刻を引いた時刻をＲＴＴとして算出する。
【００３２】
また、ＲＴＴの計測のために使用するパケットとして、接続要求／接続応答を使用してもよい。本実施の形態では、接続要求／接続応答を使用することを想定しており、このＲＴＴ測定の段階で、端末２０と各中継装置が接続され、端末２０は各中継装置の中継用アドレスを取得し、保持する。
【００３３】
特に、中継装置がＴＵＲＮサーバである場合には、上記のＳＴＵＮリクエスト／ＳＴＵＮレスポンスを接続要求／接続応答として使用することができる。つまり、端末２０は、Allocation RequestをＳＴＵＮリクエストとして送信し、Allocation Success ResponseをＳＴＵＮレスポンスとして受信する。当該ＳＴＵＮレスポンスには、中継装置により払い出された中継用アドレスが含まれ、端末２０は、当該ＳＴＵＮレスポンスから中継用アドレスを取得する。
【００３４】
＜中継用アドレスについて＞
ここで、図３を参照して、上述した中継用アドレスを説明する。図３は、例として、端末２０Ａが中継装置１００に接続する場合の例を示している。端末２０Ａは、中継装置１００のＢで示すポートのアドレス宛に接続要求を送信し、中継装置１００は、Ａに示すポートのアドレスである中継用アドレスを割り当て、接続応答に中継用アドレスを含めて端末２０Ａに返す。このとき、端末２０Ａと中継装置１００間のトンネルも構築される。
【００３５】
このように中継用アドレスが割り当てられることで、外部からは端末２０Ａのアドレスが当該中継用アドレスとして見える。つまり、端末２０Ａ（のアプリケーション）が送信するパケットの送信元アドレスとして当該中継用アドレスが使用されるととともに、端末２０Ａへの通信を行う端末は、宛先アドレスとして当該中継用アドレスを使用する。
【００３６】
図２に戻って説明を続ける。
【００３７】
ステップＳ１０１〜Ｓ１０３により各中継装置との間のＲＴＴを測定した端末２０Ａは、ステップＳ１０７において、ＲＴＴの測定結果に基づいて、１つの中継装置を選択する。ここでは、ＲＴＴの測定を行った複数の中継装置の中で、最も小さなＲＴＴが得られた中継装置を選択する。これにより、端末２０Ａと中継装置間に関して、最もレイテンシ（遅延時間と称してもよい）の小さな中継装置を選択できる。端末２０Ｂも同様の手順で１つの中継装置を選択する。中継装置間を低レイテンシの回線で接続しておけば、このような手順で、遅延時間の小さな通信を実現できる。
【００３８】
前述したように、本実施の形態では、各端末２０は、接続要求／接続応答を用いてＲＴＴ測定を行うので、ＲＴＴ測定を行ったことで、各中継装置の中継用アドレスを取得し、保持している。ステップＳ１０９において、端末２０Ａは、ステップＳ１０７で選択した中継装置の中継用アドレスを端末２０Ｂに通知する。また、ステップＳ１１０において、端末２０Ｂは、ステップＳ１０８で選択した中継装置の中継用アドレスを端末２０Ａに通知する。
【００３９】
これにより、端末２０Ａは、端末２０Ｂの中継用アドレスを取得し、端末２０Ｂは、端末Ａの中継用アドレスを取得するので、端末２０Ａと端末２０Ｂとの間でデータの送受信が可能となる（ステップＳ１１１）。
【００４０】
なお、上記の例では、ＲＴＴ測定のためのパケット送受信により中継装置との接続を行うこととしているが、中継装置との接続をＲＴＴ測定のためのパケット送受信とは別に行うこととしてもよい。この場合、例えば、ＲＴＴ測定をＨＴＴＰリクエスト／ＨＴＴＰレスポンスで行う。そして、図２に示すステップＳ１０７、Ｓ１０８の後に、選択した中継装置に対して接続要求／接続応答を行って、その後に、ステップＳ１０９、Ｓ１１０での中継用アドレスの交換を行う。
【００４１】
また、本実施の形態では、最小のＲＴＴとなる中継装置を選択しているが、最小ではないＲＴＴとなる中継装置を選択する場合もある。例えば、最小のＲＴＴとなる中継装置の負荷が高い場合や何らかの不具合が発生している場合に、２番目にＲＴＴの小さな中継装置を選択する等が考えられる。
【００４２】
＜接続構成の例＞
図４、図５は、中継装置の選択の結果による端末間の接続構成の例を示す。図４に示す例１は、端末２０Ａが中継装置１００を選択し、端末２０Ｂが中継装置１０２を選択した場合の例を示す図である。この場合、図４に示すとおり、中継装置１００と中継装置１０２を経由して端末２０Ａと端末２０Ｂとの間のデータ通信が行われる。
【００４３】
ここで、中継装置１００における端末２０Ａの中継用アドレスを中継用アドレスＡとし、中継装置１０２における端末２０Ｂの中継用アドレスを中継用アドレスＢとする。データ通信において、端末２０Ａは、中継用アドレスＡを送信元アドレスとし、中継用アドレスＢを宛先アドレスとするパケットを、端末２０Ａと中継装置１００間のトンネルを介して送出する。当該パケットは、中継装置１００から、中継用アドレスＢ宛て、すなわち、中継装置１０２に送信され、中継装置１０２と端末２０Ｂ間のトンネルを介して端末２０Ｂに届けられる。端末２０Ｂから端末２０Ａへの通信も同様である。
【００４４】
図５に示す例２は、端末２０Ａが中継装置１０１を選択し、端末２０Ｂも中継装置１０１を選択した場合の例を示す図である。この場合、図５に示すとおり、中継装置１０１を経由して端末２０Ａと端末２０Ｂとの間のデータ通信が行われる。
【００４５】
ここで、中継装置１０１における端末２０Ａの中継用アドレスを中継用アドレスＡとし、端末２０Ｂの中継用アドレスを中継用アドレスＢとする。データ通信において、端末２０Ａは、中継用アドレスＡを送信元アドレスとし、中継用アドレスＢを宛先アドレスとするパケットを、端末２０Ａと中継装置１０１間のトンネルを介して送出する。当該パケットは、中継装置１０１の内部で、論理的に、中継用アドレスＢ宛てに送信され、中継装置１０１と端末２０Ｂ間のトンネルを介して端末２０Ｂに届けられる。端末２０Ｂから端末２０Ａへの通信も同様である。
【００４６】
ここで、従来技術においても、中継装置の負荷分散のために、図４のように、中継装置を２台使用する場合がある。しかし、負荷分散だけを考えてロードバランシングを適用すると、端末から遠い（つまり、遅延時間の長い）中継装置を選択してしまう可能性がある。
【００４７】
一方、本発明に係る技術を適用することより、端末から近い（つまり、遅延時間の短い）中継装置を選択することができる。
【００４８】
また、２台の端末間の通信経路を単一のプロトコルで形成せずに、途中の区間で別のプロトコルを使いたい場合がある。例えば、端末間を、ＮＡＴ装置やファイアウォール等のアクセス機器を越えるために、全部ＴＣＰにするよりも、図４のように中継装置を２台設けて、中継装置間をＵＤＰにする方が、全体として遅延時間を短くできることがある。
【００４９】
そこで、本発明に係る技術を適用することで、端末〜中継装置間のＴＣＰ区間を最小化でき、遅延時間を更に短くすることができる。
【００５０】
（装置構成例）
図６に、第１の実施の形態における端末２０の機能構成例を示す。図６に示すように、端末２０は、制御通信部２１、ＲＴＴ測定部２２、中継装置選択部２３、メディア通信部２４、及びデータ記憶部２５を有する。
【００５１】
制御通信部２１は、メディア通信以外の通信を行う。すなわち、制御通信部２１は、中継装置のアドレス取得、ＲＴＴ測定のためのパケット送受信、接続要求／接続応答の送受信、中継用アドレスの交換等を行う。ＲＴＴ測定部２２は、制御通信部２１によるパケット送受信に基づき、ＲＴＴを測定する。
【００５２】
中継装置選択部２３は、各中継装置に対するＲＴＴ測定結果の中から、最小のＲＴＴが得られた中継装置を選択する。メディア通信部２４は、中継装置選択部２３により選択さ中継装置を経由して相手端末との間で、音声、映像等の送受信を行う。
【００５３】
データ記憶部２５は、端末２０において使用されるデータを格納する。例えば、各中継装置のアドレス、ＲＴＴ測定結果、選択した中継装置を示す情報、中継用アドレス、メディア通信部２４で送受信されるデータ等を格納する。
【００５４】
本実施の形態に係る端末２０は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、端末２０が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、端末２０で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００５５】
なお、例えばＰ２Ｐ通信の技術としてＷｅｂＲＴＣを用いる場合、端末２０は、ブラウザあるいはブラウザに相当するＷｅｂＲＴＣ通信機能を持つソフトウェアを備える端末により実現できる。ＷｅｂＲＴＣを用いる場合、端末２０は、まず、ネットワークに備えられるサーバ等からプログラム（Ｗｅｂアプリ）を取得し、当該プログラムが端末２０で実行されることで、図６の機能構成、図２で説明した処理動作等が実現される。
【００５６】
図７は、コンピュータにより実現される端末２０のハードウェア構成の一例を示す図である。図７に示すとおり、端末２０は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ２０４と、操作部２０５と、表示部２０６と、ドライブ装置２０７と、ＮＩＣ（Network Interface card）２０８とを有する。
【００５７】
ＣＰＵ２０１は、端末２０の全体制御を行うプロセッサである。ＣＰＵ２０１は、ＨＤＤ２０４等に記憶されたオペレーティングシステム、アプリケーション、各種サービス等のプログラムを実行し、端末２０の各種機能を実現する。ＲＯＭ２０２には、各種のプログラムやプログラムによって利用されるデータ等が記憶される。ＲＡＭ２０３は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＨＤＤ１０４には、各種情報及びプログラム等が記憶される。
【００５８】
操作部２０５は、ユーザからの入力操作を受け付けるためのハードウェアであり、例えばキーボード又はマウスである。表示部２０６は、ユーザに向けた表示を行うハードウェアである。ドライブ装置２０７は、プログラムを記録した記憶媒体２０９からプログラムを読み取る。ドライブ装置２０７によって読み取られたプログラムは、例えば、ＨＤＤ２０４にインストールされる。ＮＩＣ２０８は、端末２０をネットワークに接続し、データの送受信を行うための通信インタフェースである。
【００５９】
［第２の実施の形態］
次に、第２の実施の形態を説明する。以下では、主に第１の実施の形態と異なる点について説明する。
【００６０】
（システム構成、動作概要）
図８は、第２の実施の形態におけるシステムの全体構成例を示す図である。図８に示すように、中継装置選択装置４０が備えられている。中継装置選択装置４０が備えられている点以外は、第１の実施の形態における全体構成と同じである。
【００６１】
中継装置選択装置４０は、各端末２０と制御通信を行うことが可能であり、各端末２０からＲＴＴ測定結果を受信し、当該ＲＴＴ測定結果と、予め保持する任意の２ヶ所の中継装置間のＲＴＴとを用いて、端末間の通信に使用する中継装置を決定する。
【００６２】
なお、通信制御装置３０が中継装置選択装置４０の機能を含むこととしてもよい。その場合、全体構成は第１の実施の形態と同じとなる。また、この場合、通信制御装置を中継装置選択装置と称してもよい。
【００６３】
図９は、第２の実施の形態における中継装置選択処理の概要を説明するための図である。
本実施の形態では、全ての２つの中継装置間のＲＴＴを予め測定しておき、測定結果を中継装置選択装置４０が保持する。図９に示すように４つの中継装置が備えられている場合、図示するように、Ａ〜Ｆ（これらの文字は該当区間の測定結果を示す）で示される区間のＲＴＴが測定される。測定方法は特定の方法に限定されず、どのような方法を用いて測定してもよい。
【００６４】
また、各端末２０が、各中継装置との間のＲＴＴを測定し、測定結果を中継装置選択装置４０に送信する。
【００６５】
そして、中継装置選択装置４０は、中継装置間のＲＴＴと、端末と中継装置間のＲＴＴとを使用して、端末間の全ての経路の中から、端末間のＲＴＴ合計が最小となる経路（使用する中継装置）を決定する。なお、第１の実施の形態の場合と同様に、経路上の中継装置の負荷が高い場合や、何らかの不具合がある場合は、例えば、最小の経路でなく、２番目にＲＴＴ合計の小さい経路を選択することも考えられる。
【００６６】
また、経路の決定にあたっては、中継装置が２つの場合（例：図４の接続構成）のみでなく、中継装置が１つの場合（図５の接続構成）も考慮する。
【００６７】
仮に、図９に示す端末２０Ａ−中継装置１００−中継装置１０１−端末２０Ｂの経路のＲＴＴ合計であるＧ＋Ｂ＋Ｋが最小であるとすると、使用する中継装置として、端末２０Ａに対して中継装置１００が選択され、端末２０Ｂに対して中継装置１０１が選択される。また、仮に、図９に示す端末２０Ａ−中継装置１０３−端末２０Ｂの経路のＲＴＴ合計であるＪ＋Ｌが最小であるとすると、使用する中継装置として、端末２０Ａに対して中継装置１０３が選択され、端末２０Ｂに対しても中継装置１０３が選択される。
【００６８】
ここで、データ通信の段階ではＵＤＰのほうがＴＣＰよりも遅延が小さいことを考慮して、例えば、端末２０と中継装置間においてＵＤＰでの通信を行う場合には、端末２０と中継装置間でのＲＴＴを小さく見積もって、上記合計の計算をしてもよい。なお、各端末２０と各中継装置間においてＵＤＰでの通信を行うか否かの情報は、例えば、中継装置選択装置４０（後述する他の例では、端末２０Ａ）が予め保持しておく。
【００６９】
この場合、例えば、図９に示す端末２０Ａ−中継装置１００−中継装置１０１−端末２０Ｂの経路のＲＴＴ合計の計算において、Ｚを予め定めた１未満の係数とすると、Ｚ×Ｇ＋Ｂ＋Ｚ×ＫによりＲＴＴ合計の計算を行う。
【００７０】
（システムの動作）
第２の実施の形態における処理動作を図１０に示すシーケンス図を参照して説明する。ここでは、端末２０Ａと端末２０Ｂとの間でデータ通信を開始するまでの手順を説明する。なお、端末２０Ａと端末２０Ｂ間の制御通信（後述する中継用アドレスの交換等）は、通信制御装置３０を介して行われるが、図１０では、通信制御装置３０の記載を省略している。図１１も同様である。また、図１０では、中継網に備えられる複数の中継装置を「中継装置群」と記述している。
【００７１】
図１０の手順の前提として、中継装置選択装置４０は、任意の２ヶ所の中継装置間のＲＴＴを保持している。また、各端末２０は、各中継装置のアドレスを保持している。
【００７２】
ステップＳ２０１において、端末２０Ａが各中継装置との間のＲＴＴを測定し、ステップＳ２０２において、端末２０Ｂが各中継装置との間のＲＴＴを測定する。ＲＴＴの測定には、第１の実施の形態と同様に、接続要求／接続応答を使用してもよいが、ここでは、接続要求／接続応答ではないリクエスト／レスポンス（例：ＨＴＴＰリクエスト／ＨＴＴＰレスポンス）を使用している。
【００７３】
ステップＳ２０３において、端末２０Ａは、各中継装置との間のＲＴＴを中継装置選択装置４０に送信する。また、ステップＳ２０４において、端末２０Ｂは、各中継装置との間のＲＴＴを中継装置選択装置４０に送信する。
【００７４】
ステップＳ２０５では、中継装置選択装置４０が、各端末２０のＲＴＴの測定結果と、予め保持する中継装置間のＲＴＴとを用いて、図９を参照して説明した方法により、端末２０Ａと端末２０Ｂとの間の通信に使用する中継装置を決定する。
【００７５】
ステップＳ２０６において、中継装置選択装置４０は、端末２０Ａに対して選択した中継装置の識別情報（アドレスでもよい）を端末２０Ａに送信する。ステップＳ２０７において、中継装置選択装置４０は、端末２０Ｂに対して選択した中継装置の識別情報（アドレスでもよい）を端末２０Ｂに送信する。
【００７６】
ステップＳ２０８において、端末２０Ａは、中継装置選択装置４０により選択された中継装置に接続要求を送信し、接続応答を受信することで、当該中継装置に接続するとともに、中継用アドレスを取得する。また、ステップＳ２０９において、端末２０Ｂは、中継装置選択装置４０により選択された中継装置に接続要求を送信し、接続応答を受信することで、当該中継装置に接続するとともに、中継用アドレスを取得する。
【００７７】
ステップＳ２１０において、端末２０Ａは、ステップＳ２０８で取得した中継装置の中継用アドレスを端末２０Ｂに通知する。また、ステップＳ２１１において、端末２０Ｂは、ステップＳ２０９で取得した中継装置の中継用アドレスを端末２０Ａに通知する。
【００７８】
これにより、端末２０Ａは、端末２０Ｂの中継用アドレスを取得し、端末２０Ｂは、端末Ａの中継用アドレスを取得するので、端末２０Ａと端末２０Ｂとの間でデータの送受信が可能となる（ステップＳ２１２）。
【００７９】
（動作の他の例）
上記の例では、中継装置選択装置４０が中継装置の選択を行うが、これに代えて、端末２０が中継装置の選択を行うこととしてもよい。
【００８０】
端末２０が中継装置の選択を行う場合におけるシステムの処理動作を図１１に示すシーケンス図を参照して説明する。ここでは、端末２０Ａと端末２０Ｂとの間でデータ通信を開始するまでの手順を説明する。
【００８１】
図１１の手順の前提として、各端末２０は、各中継装置のアドレスを保持している。また、端末２０Ａは、予め任意の２ヶ所の中継装置間のＲＴＴを保持している。中継装置間のＲＴＴは、例えば、各中継装置のアドレスを保持するＷｅｂサーバ等から取得可能である。
【００８２】
以下の処理では、通信を行う２端末のうちの端末２０Ａが中継装置の選択処理を行うこととするが、端末２０Ｂが中継装置の選択処理を行うこととしてもよい。また、どちらの端末で中継装置の選択処理を行うかを、中継装置選択装置４０もしくは通信制御装置３０が、該当の端末に指示することとしてもよい。
【００８３】
ステップＳ３０１において、端末２０Ａが各中継装置との間のＲＴＴを測定し、ステップＳ３０２において、端末２０Ｂが各中継装置との間のＲＴＴを測定する。
【００８４】
ステップＳ３０３において、端末２０Ｂは、各中継装置との間のＲＴＴを端末２０Ａに送信する。
【００８５】
ステップＳ３０４では、端末２０Ａが、各端末２０のＲＴＴの測定結果と、予め保持する中継装置間のＲＴＴとを用いて、図９を参照して説明した方法により、端末２０Ａと端末２０Ｂとの間の通信に使用する中継装置を決定する。
【００８６】
ステップＳ３０５において、端末２０Ａは、端末２０Ｂに対して選択した中継装置の識別情報（アドレスでもよい）を端末２０Ｂに送信する。
【００８７】
ステップＳ３０６において、端末２０Ａは、端末２０Ａに対して選択された中継装置に接続要求を送信し、接続応答を受信することで、当該中継装置に接続するとともに、中継用アドレスを取得する。また、ステップＳ３０７において、端末２０Ｂは、端末２０Ｂに対して選択された中継装置に接続要求を送信し、接続応答を受信することで、当該中継装置に接続するとともに、中継用アドレスを取得する。
【００８８】
ステップＳ３０８において、端末２０Ａは、ステップＳ３０６で取得した中継装置の中継用アドレスを端末２０Ｂに通知する。また、ステップＳ３０９において、端末２０Ｂは、ステップＳ３０７で取得した中継装置の中継用アドレスを端末２０Ａに通知する。
【００８９】
これにより、端末２０Ａは、端末２０Ｂの中継用アドレスを取得し、端末２０Ｂは、端末Ａの中継用アドレスを取得するので、端末２０Ａと端末２０Ｂとの間でデータの送受信が可能となる（ステップＳ３１０）。
【００９０】
（装置構成例）
図１２に、第２の実施の形態における中継装置選択装置４０の機能構成例を示す。図１２に示すように、中継装置選択装置４０は、測定結果取得部４１、中継装置選択部４２、中継装置通知部４３、データ記憶部４４を有する。
【００９１】
測定結果取得部４１は、各端末から、各中継装置との間のＲＴＴ測定結果を受信し、データ記憶部４４に格納する。中継装置選択部４２は、各中継装置との間のＲＴＴ測定結果と、データ記憶部４４に予め格納されている中継装置間のＲＴＴとを用いて、図９を参照して説明した方法により、端末間の通信に使用する中継装置を選択する。
【００９２】
中継装置通知部４３は、中継装置選択部４２により選択された中継装置を各端末２０に通知する。データ記憶部４４は、中継装置間のＲＴＴ、各端末と各中継装置との間のＲＴＴ測定結果等を格納する。
【００９３】
本実施の形態に係る中継装置選択装置４０は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、端末２０が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、中継装置選択装置４０で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００９４】
コンピュータにより実現される中継装置選択装置４０のハードウェア構成は、図７に示した構成と同様である。
【００９５】
図１１に示したように、端末２０が中継装置の選択処理を行う場合でも、端末２０の全体構成は図６、図７に示した構成と同じである。ただし、図６に示す構成において、端末２０が中継装置の選択処理を行う場合、制御通信部２１は、中継装置間のＲＴＴ取得、中継装置のアドレス取得、ＲＴＴ測定のためのパケット送受信、接続要求／接続応答の送受信、相手端末からのＲＴＴ受信、相手端末へのＲＴＴ送信、相手端末からの中継装置選択結果の受信、相手端末への中継装置選択結果の送信、中継用アドレスの交換等を行う。
【００９６】
中継装置選択部２３は、各端末と各中継装置との間のＲＴＴと、中継装置間のＲＴＴとから、図９を参照して説明した方法を用いて、中継装置を選択する処理を行う。メディア通信部２４は、選択された中継装置に接続し、当該中継装置を経由して相手端末との間で、例えば、音声、映像等の送受信を行う。
【００９７】
データ記憶部２５は、端末２０において使用されるデータを格納する。例えば、中継装置間のＲＴＴ、各中継装置のアドレス、ＲＴＴ測定結果、選択した中継装置を示す情報、中継用アドレス、メディア通信部２４で送受信されるデータ等を格納する。
【００９８】
以上、説明したように、第２の実施の形態により、精度良く、端末間での低レイテンシの通信を実現できる。
【００９９】
［実施の形態のまとめ］
以上、説明したように、実施の形態によれば、相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の一の端末として使用される端末であって、前記複数の中継装置における各中継装置との間の遅延時間を測定する測定手段と、前記測定手段により測定された遅延時間に基づいて、前記複数の中継装置の中から一の中継装置を選択する選択手段と、前記一の中継装置を経由して他の端末との通信を行う通信手段とを備えることを特徴とする端末が提供される。
【０１００】
また、実施の形態によれば、相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の一の端末として使用される端末であって、前記複数の中継装置のアドレスを取得する取得手段と、前記取得手段により取得したアドレスを用いて、前記複数の中継装置における各中継装置との間の遅延時間を測定する測定手段と、前記測定手段により測定された遅延時間に基づいて、前記複数の中継装置の中から、遅延時間が最小となる一の中継装置を選択する選択手段と、前記一の中継装置における前記端末の中継用アドレスを他の端末に通知する通知手段と、前記中継用アドレスを送信元アドレスとして使用することで、前記一の中継装置を経由して他の端末との通信を行う通信手段とを備えることを特徴とする端末が提供される。
【０１０１】
前記測定手段は、例えば、各中継装置に接続要求を送信し、当該中継装置から接続応答を受信することにより前記遅延時間を測定し、当該接続応答から前記中継用アドレスを取得する。
【０１０２】
また、実施の形態によれば、相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する前記第１の端末として使用される端末であって、前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得手段と、前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択手段と、前記第２の端末に対して選択された中継装置を当該第２の端末に通知する通知手段とを備えることを特徴とする端末が提供される。
【０１０３】
また、実施の形態によれば、相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する中継装置選択装置であって、前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得手段と、前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択手段と、前記選択手段により選択された中継装置を前記第１の端末及び前記第２の端末に通知する通知手段とを備えることを特徴とする中継装置選択装置が提供される。
【０１０４】
前記選択手段は、例えば、前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、前記各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の遅延時間の合計が最小となる中継装置を選択する。
【０１０５】
明細書には以下の事項が開示されている。
（第１項）
相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の一の端末として使用される端末であって、
前記複数の中継装置における各中継装置との間の遅延時間を測定する測定手段と、
前記測定手段により測定された遅延時間に基づいて、前記複数の中継装置の中から一の中継装置を選択する選択手段と、
前記一の中継装置を経由して他の端末との通信を行う通信手段と
を備えることを特徴とする端末。
（第２項）
相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の一の端末として使用される端末であって、
前記複数の中継装置のアドレスを取得する取得手段と、
前記取得手段により取得したアドレスを用いて、前記複数の中継装置における各中継装置との間の遅延時間を測定する測定手段と、
前記測定手段により測定された遅延時間に基づいて、前記複数の中継装置の中から、遅延時間が最小となる一の中継装置を選択する選択手段と、
前記一の中継装置における前記端末の中継用アドレスを他の端末に通知する通知手段と、
前記中継用アドレスを送信元アドレスとして使用することで、前記一の中継装置を経由して他の端末との通信を行う通信手段と
を備えることを特徴とする端末。
（第３項）
前記測定手段は、各中継装置に接続要求を送信し、当該中継装置から接続応答を受信することにより前記遅延時間を測定し、当該接続応答から前記中継用アドレスを取得する
ことを特徴とする第２項に記載の端末。
（第４項）
相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する前記第１の端末として使用される端末であって、
前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得手段と、
前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択手段と、
前記第２の端末に対して選択された中継装置を当該第２の端末に通知する通知手段と
を備えることを特徴とする端末。
（第５項）
相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の一の端末として使用される端末により実行される通信方法であって、
前記複数の中継装置における各中継装置との間の遅延時間を測定する測定ステップと、
前記測定ステップにより測定された遅延時間に基づいて、前記複数の中継装置の中から一の中継装置を選択する選択ステップと、
前記一の中継装置を経由して他の端末との通信を行う通信ステップと
を備えることを特徴とする通信方法。
（第６項）
コンピュータを、第１項ないし第４項のうちいずれか１項に記載の端末における各手段として機能させるためのプログラム。
（第７項）
相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する中継装置選択装置であって、
前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得手段と、
前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択手段と、
前記選択手段により選択された中継装置を前記第１の端末及び前記第２の端末に通知する通知手段と
を備えることを特徴とする中継装置選択装置。
（第８項）
前記選択手段は、前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、前記各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の遅延時間の合計が最小となる中継装置を選択する
ことを特徴とする第７項に記載の中継装置選択装置。
（第９項）
相互に通信をする複数の端末と、複数の中継装置とを有するシステムにおいて、前記複数の端末の中の第１の端末と第２の端末との間の通信に使用する中継装置を選択する中継装置選択装置により実行される中継装置選択方法であって、
前記第１の端末と、前記複数の中継装置における各中継装置との間の遅延時間、及び、前記第２の端末と、前記複数の中継装置における各中継装置との間の遅延時間を取得する取得ステップと、
前記第１の端末と各中継装置との間の遅延時間と、前記第２の端末と各中継装置との間の遅延時間と、予め保持する前記複数の中継装置における中継装置の各組の中継装置間の遅延時間とに基づいて、前記第１の端末と第２の端末との間の通信に使用する中継装置を選択する選択ステップと、
前記選択ステップにより選択された中継装置を前記第１の端末及び前記第２の端末に通知する通知ステップと
を備えることを特徴とする中継装置選択方法。
（第１０項）
コンピュータを、第７項又は第８項に記載の中継装置選択装置における各手段として機能させるためのプログラム。
【０１０６】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【０１０７】
１０  中継網
２０Ａ、２０Ｂ  端末
１００〜１０３  中継装置
３０  通信制御装置
４０  中継装置選択装置
２１  制御通信部
２２  ＲＴＴ測定部
２３  中継装置選択部
２４  メディア通信部
２５  データ記憶部
４１  測定結果取得部
４２  中継装置選択部
４３  中継装置通知部
４４  データ記憶部
【図１】
2018019438.tif 000003
【図２】
2018019438.tif 000004
【図３】
2018019438.tif 000005
【図４】
2018019438.tif 000006
【図５】
2018019438.tif 000007
【図６】
2018019438.tif 000008
【図７】
2018019438.tif 000009
【図８】
2018019438.tif 000010
【図９】
2018019438.tif 000011
【図１０】
2018019438.tif 000012
【図１１】
2018019438.tif 000013
【図１２】
2018019438.tif 000014