(57)【要約】【課題】通信経路が複数有る場合において、最も通信時間が短い通信経路を選択することできる、通信システムを提供する。【解決手段】第１通信装置と第２通信装置とが複数の通信経路により接続が可能な通信システムであって、第１通信装置は、複数の通信経路毎のアドレス情報を第２通信装置に送信するアドレス情報送信部と、複数の通信経路毎の通信時間に基づいて、通信時間が最も短い通信経路を選択する選択部と、選択部が選択した通信経路により第２通信装置にメッセージ情報を送信するメッセージ情報送信部と、メッセージ情報に対する応答情報を第２通信装置から受信する受信部と、を備え、第２通信装置は、第１通信装置からアドレス情報を受信するアドレス情報受信部と、第１通信装置からメッセージ情報を受信するメッセージ情報受信部と、メッセージ情報に対する応答情報を第１通信装置に送信する送信部と、を備える。【選択図】図４
2019047184.tif 000002
【特許請求の範囲】
【請求項１】
第１通信装置と第２通信装置とが複数の通信経路により接続が可能な通信システムであって、
前記第１通信装置は、
前記複数の通信経路毎のアドレス情報を前記第２通信装置に送信するアドレス情報送信部と、
前記複数の通信経路毎の通信時間に基づいて、前記通信時間が最も短い通信経路を選択する選択部と、
前記選択部が選択した通信経路により前記第２通信装置にメッセージ情報を送信するメッセージ情報送信部と、
前記メッセージ情報に対する応答情報を前記第２通信装置から受信する受信部と、を備え、
前記第２通信装置は、
前記第１通信装置から前記アドレス情報を受信するアドレス情報受信部と、
前記第１通信装置から前記メッセージ情報を受信するメッセージ情報受信部と、
前記メッセージ情報に対する応答情報を前記第１通信装置に送信する送信部と、
を備える、
通信システム。
【請求項２】
前記複数の通信経路は、ＮＡＴ（Network Address Translation）を含む、
請求項１に記載の通信システム。
【請求項３】
複数の通信経路により第２通信装置と接続が可能な通信装置であって、
前記複数の通信経路毎のアドレス情報を前記第２通信装置に送信するアドレス情報送信部と、
前記複数の通信経路毎の通信時間に基づいて、前記通信時間が最も短い通信経路を選択する選択部と、
前記選択部が選択した通信経路により前記第２通信装置にメッセージ情報を送信するメッセージ情報送信部と、
前記メッセージ情報に対する応答情報を前記第２通信装置から受信する受信部と、
を備えた通信装置。
【請求項４】
前記選択部は、前記アドレス情報送信部が送信した前記アドレス情報に基づいて、前記第２通信装置が送信した、前記複数の通信経路の各々による通信を可能とするための予め定められた情報を受信した場合に、前記通信経路の選択を行う、
請求項３に記載の通信装置。
【請求項５】
前記選択部は、所定のパケットを前記複数の経路毎に前記第２通信装置に送信し、前記所定のパケットを受信した旨を表す応答パケットを前記第２通信装置から受信するまでの通信時間を計測する、
請求項３または請求項４に記載の通信装置。
【請求項６】
複数の通信経路により第１通信装置と接続が可能な通信装置であって、
前記第１通信装置から前記複数の通信経路毎の前記第１通信装置のアドレス情報を受信するアドレス情報受信部と、
前記複数の通信経路のうち通信時間が最も短い通信経路により前記第１通信装置からメッセージ情報を受信するメッセージ情報受信部と、
前記メッセージ情報に対する応答情報を前記第１通信装置に送信する送信部と、
を備えた通信装置。
【請求項７】
前記アドレス情報受信部が受信した前記アドレス情報に基づいて、前記複数の通信経路各々により前記第１通信装置と通信を可能とするための予め定められた情報を前記第１通信装置に送信する通信情報送信部をさらに備えた、
請求項６に記載の通信装置。
【請求項８】
前記複数の通信経路は、ＮＡＴ（Network Address Translation）を含む、
請求項３から請求項７のいずれか１項に記載の通信装置。
【請求項９】
複数の通信経路により第２通信装置と接続が可能な通信装置による通信を制御する通信制御プログラムであって、
コンピュータを、
前記複数の通信経路毎のアドレス情報を前記第２通信装置に送信するアドレス情報送信部と、
前記複数の通信経路毎の通信時間に基づいて、前記通信時間が最も短い通信経路を選択する選択部と、
前記選択部が選択した通信経路により前記第２通信装置にメッセージ情報を送信するメッセージ情報送信部と、
前記メッセージ情報に対する応答情報を前記第２通信装置から受信する受信部と、
して機能させるための通信制御プログラム。
【請求項１０】
複数の通信経路により第１通信装置と接続が可能な通信装置による通信を制御する通信制御プログラムであって、
コンピュータを、
前記第１通信装置から前記複数の通信経路毎の前記第１通信装置のアドレス情報を受信するアドレス情報受信部と、
前記複数の通信経路のうち、通信時間が最も短い通信経路により前記第１通信装置からメッセージ情報を受信するメッセージ情報受信部と、
前記メッセージ情報に対する応答情報を前記第１通信装置に送信する送信部と、
して機能させるための通信制御プログラム。
【請求項１１】
複数の通信経路により第２通信装置と接続が可能な通信装置による通信を制御する通信制御方法であって、
前記通信装置は、
前記複数の通信経路毎のアドレス情報を前記第２通信装置に送信するアドレス情報送信ステップと、
前記複数の通信経路毎の通信時間に基づいて、前記通信時間が最も短い通信経路を選択する選択ステップと、
前記選択ステップで選択された通信経路により前記第２通信装置にメッセージ情報を送信するメッセージ情報送信ステップと、
前記メッセージ情報に対する応答情報を前記第２通信装置から受信する受信ステップと、
を備えた通信制御方法。
【請求項１２】
複数の通信経路により第１通信装置と接続が可能な通信装置による通信を制御する通信制御方法であって、
前記通信装置は、
前記第１通信装置から前記複数の通信経路毎の前記第１通信装置のアドレス情報を受信するアドレス情報受信ステップと、
前記複数の通信経路のうち、通信時間が最も短い通信経路により前記第１通信装置からメッセージ情報を受信するメッセージ情報受信ステップと、
前記メッセージ情報に対する応答情報を前記第１通信装置に送信する送信ステップと、
を備えた通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信装置、通信制御プログラム、及び通信制御方法に関するものである。
【背景技術】
【０００２】
一般に、ＩＰ電話や映像配信などのＩＰ技術をベースとしたサービスが普及しており、声及び映像などのメディア情報は、ＵＤＰ（User Datagram Protocol）等で送受信している。メディア情報の送受信（メディア通信）を行うコンピュータや携帯機器等の通信装置は、家庭内ＬＡＮや企業内ＬＡＮ等のＮＡＴ（Network Address Translation）が介在して外部のネットワークに接続する形態で用いられる場合が多い。一般に、ＮＡＴの外側にある通信装置は、ＮＡＴの内側にあるＮＡＴを介して外部のネットワークと接続する通信装置と直接通信を行う手段が存在しない。
ＮＡＴを介してＵＤＰ通信を行うための技術として、非特許文献１には、ＳＴＵＮ（Relay Extensions to Session Traversal Utilities for NAT）と呼ばれる技術について記載されている。また、非特許文献２には、ＴＵＲＮ（Traversal Using Relays around NAT）と呼ばれる技術について記載されている。さらに、非特許文献３には、ＩＣＥ（Interactive Connectivity Establishment）と呼ばれる技術が記載されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Session Traversal Utilities for NAT (STUN), 「https://tools.ietf.org/html/rfc5389」
【非特許文献２】Traversal Using Relays around NAT (TURN), 「https://tools.ietf.org/html/rfc5766」
【非特許文献３】Interactive Connectivity Establishment (ICE), 「https://tools.ietf.org/html/rfc5245」
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、上記ＩＣＥを使用して通信経路を確定する場合は、一般的に ＮＡＴを介さない通信、ＳＴＵＮで取得したアドレスによるＮＡＴを介した通信、及びＴＵＲＮサーバを介したＮＡＴを介した通信があり、この順で通信経路の選択が行われる。
【０００５】
このような技術を用いることで、ＮＡＴを介して外部のネットワークと接続する通信装置との通信が可能となるが、必ずしも最適な通信経路が選択されるとは限らない。
【０００６】
例えば、ＮＡＴを介さないで接続可能なネットワークＡを用いて通信を行う場合、ＮＡＴを介して接続可能なネットワークＢを用いて通信を行う場合よりも通信速度が遅く、通信時間が長くなる場合がある。この場合、ネットワークＢを用いて通信を行う方が好ましいが、上記の通信経路の選択によれば、ネットワークＡを用いた通信経路が選択されてしまう。
【０００７】
本発明は、上述した問題を解決するために提案されたものであり、通信経路が複数有る場合において、最も通信時間が短い通信経路を選択することできる、通信システム、通信装置、通信制御プログラム、及び通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本開示の通信システムは、第１通信装置と第２通信装置とが複数の通信経路により接続が可能な通信システムであって、前記第１通信装置は、前記複数の通信経路毎のアドレス情報を前記第２通信装置に送信するアドレス情報送信部と、前記複数の通信経路毎の通信時間に基づいて、前記通信時間が最も短い通信経路を選択する選択部と、前記選択部が選択した通信経路により前記第２通信装置にメッセージ情報を送信するメッセージ情報送信部と、前記メッセージ情報に対する応答情報を前記第２通信装置から受信する受信部と、を備え、前記第２通信装置は、前記第１通信装置から前記アドレス情報を受信するアドレス情報受信部と、前記第１通信装置から前記メッセージ情報を受信するメッセージ情報受信部と、前記メッセージ情報に対する応答情報を前記第１通信装置に送信する送信部と、を備える。
【０００９】
また、上記目的を達成するために、本開示の通信装置は、複数の通信経路により第２通信装置と接続が可能な通信装置であって、前記複数の通信経路毎のアドレス情報を前記第２通信装置に送信するアドレス情報送信部と、前記複数の通信経路毎の通信時間に基づいて、前記通信時間が最も短い通信経路を選択する選択部と、前記選択部が選択した通信経路により前記第２通信装置にメッセージ情報を送信するメッセージ情報送信部と、前記メッセージ情報に対する応答情報を前記第２通信装置から受信する受信部と、を備える。
【００１０】
また、上記目的を達成するために、本開示の通信装置は、複数の通信経路により第１通信装置と接続が可能な通信装置であって、前記第１通信装置から前記複数の通信経路毎の前記第１通信装置のアドレス情報を受信するアドレス情報受信部と、前記複数の通信経路のうち、通信時間が最も短い通信経路により前記第１通信装置からメッセージ情報を受信するメッセージ情報受信部と、前記メッセージ情報に対する応答情報を前記第１通信装置に送信する送信部と、を備える。
【００１１】
また、上記目的を達成するために、本開示の通信制御プログラムは、複数の通信経路により第２通信装置と接続が可能な通信装置による通信を制御する通信制御プログラムであって、コンピュータを、前記複数の通信経路毎のアドレス情報を前記第２通信装置に送信するアドレス情報送信部と、前記複数の通信経路毎の通信時間に基づいて、前記通信時間が最も短い通信経路を選択する選択部と、前記選択部が選択した通信経路により前記第２通信装置にメッセージ情報を送信するメッセージ情報送信部と、前記メッセージ情報に対する応答情報を前記第２通信装置から受信する受信部と、して機能させるためのものである。
【００１２】
また、上記目的を達成するために、本開示の通信制御プログラムは、複数の通信経路により第１通信装置と接続が可能な通信装置による通信を制御する通信制御プログラムであって、コンピュータを、前記第１通信装置から前記複数の通信経路毎の前記第１通信装置のアドレス情報を受信するアドレス情報受信部と、前記複数の通信経路のうち、通信時間が最も短い通信経路により前記第１通信装置からメッセージ情報を受信するメッセージ情報受信部と、前記メッセージ情報に対する応答情報を前記第１通信装置に送信する送信部と、して機能させるためのものである。
【００１３】
また、上記目的を達成するために、本開示の通信制御方法は、複数の通信経路により第２通信装置と接続が可能な通信装置による通信を制御する通信制御方法であって、前記通信装置は、前記複数の通信経路毎のアドレス情報を前記第２通信装置に送信するアドレス情報送信ステップと、前記複数の通信経路毎の通信時間に基づいて、前記通信時間が最も短い通信経路を選択する選択ステップと、前記選択ステップで選択された通信経路により前記第２通信装置にメッセージ情報を送信するメッセージ情報送信ステップと、前記メッセージ情報に対する応答情報を前記第２通信装置から受信する受信ステップと、を備える。
【００１４】
また、上記目的を達成するために、本開示の通信制御方法は、複数の通信経路により第１通信装置と接続が可能な通信装置による通信を制御する通信制御方法であって、前記通信装置は、前記第１通信装置から前記複数の通信経路毎の前記第１通信装置のアドレス情報を受信するアドレス情報受信ステップと、前記複数の通信経路のうち、通信時間が最も短い通信経路により前記第１通信装置からメッセージ情報を受信するメッセージ情報受信ステップと、前記メッセージ情報に対する応答情報を前記第１通信装置に送信する送信ステップと、を備える。
【発明の効果】
【００１５】
本開示によれば、通信経路が複数有る場合において、最も通信時間が短い通信経路を選択することできる、という効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】実施形態の通信システムの一例の概略構成図を示す。
【図２】実施形態の通信装置Ａの電気系の要部構成の一例のブロック図である。
【図３】実施形態の通信装置Ｂの電気系の要部構成の一例のブロック図である。
【図４】通信装置Ａと通信装置Ｂとの間で通信経路を確定するための動作の流れの一例を表したタイムチャートである。
【図５】図４に示したタイムチャートにおけるステップＳ１における詳細な処理の流れの一例を示すタイムチャートである。
【図６】図５に示した処理において通信装置Ａからリレーサーバに送信されるパケットの構成の一例を示す図である。
【図７】図５に示した処理においてリレーサーバから通信装置Ａに送信されるパケットの構成の一例を示す図である。
【図８】図４に示したタイムチャートにおけるステップＳ２においてメッセージ制御部Ａからシグナリングサーバに送信されるＭＥＳＳＡＧＥリクエストの構成の一例を示す図である。
【図９】図４に示したタイムチャートにおけるステップＳ４においてシグナリングサーバから通信装置Ｂに送信されるＭＥＳＳＡＧＥリクエストの構成の一例を示す図である。
【図１０】図４に示したタイムチャートにおけるステップＳ６においてメッセージ制御部Ｂからシグナリングサーバに送信される２００／ＭＥＳＳＡＧＥレスポンスの構成の一例を示す図である
【図１１】図４に示したタイムチャートにおけるステップＳ８における詳細な処理の流れの一例を示すタイムチャートである。
【図１２】図１１に示した処理において経路探索部Ａから経路探索部Ｂに送信されるパケットの構成の一例を示す図である。
【図１３】図４に示したタイムチャートにおけるステップＳ９における詳細な処理の流れの一例を示すタイムチャートである。
【図１４】図１３に示した処理において経路探索部Ｂからリレーサーバに送信されるパケットの構成の一例を示す図である。
【図１５】図４に示したタイムチャートのＳ１１において生成されるＭＥＳＳＡＧＥリクエストの構成の一例を示す図である。
【図１６】図４に示したタイムチャートのＳ１３においてアプリケーションＡからアプリケーションＢへ送信される、ＩＮＶＩＴＥリクエストの構成の一例を示す図である。
【図１７】図４に示したタイムチャートのＳ１３においてアプリケーションＢからアプリケーションＡへ送信される、ＩＮＶＩＴＥレスポンスの構成の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本実施形態について、図面を参照して説明する。まず、本実施形態の通信制御システムの構成について説明する。図１に、本実施形態の通信システムの一例の概略構成図を示す。
【００１８】
図１に示すように、本実施形態の通信システム１０は、ＮＡＴ（Network Address Translation）１１、ＮＡＴ１２、ＮＡＴ２１、ＮＡＴ２２、通信装置Ａ１００、通信装置Ｂ１１０、シグナリングサーバ１２０、及びリレーサーバ１２２を備える。本実施形態の通信システム１０は、通信装置Ａ１００と通信装置Ｂ１１０とが複数の通信経路によりＵＤＰ（User Datagram Protocol）による通信を行うために接続が可能な通信システムである。
【００１９】
通信装置Ａ１００は、アプリケーションＡ１０２を備え、アプリケーションＡ１０２によりメディア処理を行うメディア通信の端末装置である。アプリケーションＡ１０２は、経路探索部Ａ１０４及びメッセージ制御部Ａ１０６から構成され、セッション制御プロトコルを用いて通信装置Ｂ１１０（アプリケーションＢ１１２）と通信を確立する。なお、本実施形態では、セッション制御プロトコルの一例として、ＳＩＰ（Session Initiation Protocol）を用いる場合について説明する。
【００２０】
経路探索部Ａ１０４は、通信装置Ａ１００が通信装置Ｂ１１０と通信を行うためのＵＤＰの通信経路情報を収集するための機能、及び通信装置Ｂ１１０の経路探索部Ｂ１１４が通信装置Ａ１００との通信経路を確定するために送信するパケットに応答する機能を有する。
【００２１】
メッセージ制御部Ａ１０６は、ＳＩＰに基づいて、通信装置Ｂ１１０との間でメッセージを送受信する機能を有する。
【００２２】
本実施形態の通信装置Ａ１００は、例えば、図２に示した電気系の要部構成により実現することができる。図２に示すように通信装置Ａ１００は、ＣＰＵ（Central Processing Unit）１５０、ＲＯＭ（Read Only Memory）１５２、及びＲＡＭ（Random Access Memory）１５４、タイマ１５５、Ｉ／Ｆ（InterFace）１５６、記憶部１５７、及び通信Ｉ／Ｆ１５８を備える。
【００２３】
ＣＰＵ１５０は、ＲＯＭ１５２に格納されている通信制御プログラムＡ１５３等の各種プログラムを実行することにより、通信装置Ａ１００の動作を制御する。ＲＯＭ５０１５２には、上記のようにＣＰＵ１５０で実行される通信制御プログラムＡ１５３等の各種プログラムや各種パラメータ等が予め記憶されている。ＲＡＭ１５４は、ＣＰＵ１５０による各種プログラムの実行時のワークエリア等として用いられる。なお、本実施形態の通信制御プログラムＡ１５３は、アプリケーションＡ１０２を実現するためのプログラムを含む。
【００２４】
タイマ１５５は、詳細を後述するパケット送信時のタイムアウト等の計測に用いられる。
【００２５】
Ｉ／Ｆ１５６はいわゆるユーザインターフェースであり、本実施形態では、音声をユーザに対して出入力する機能を少なくとも含む。Ｉ／Ｆ１５６の具体例としては、マイク等の集音器や、スピーカ等の可聴表示を行う表示部、モニタ等の可視表示を行う表示部、マウス、やキーボード等が挙げられる。
【００２６】
記憶部１５７の具体例としては、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等が挙げられる。通信Ｉ／Ｆ１５８は、無線通信または有線通信の機能を有し、本実施形態では、ＮＡＴ１１及びＮＡＴ１２を介して通信装置Ｂ１１０と通信を行うための機能を有する。
【００２７】
ＣＰＵ１５０、ＲＯＭ１５２、ＲＡＭ１５４、タイマ１５５、Ｉ／Ｆ１５６、記憶部１５７、及び通信Ｉ／Ｆ１５８は、システムバスやコントロールバス等のバス１５９を介して相互に各種情報（信号）の授受が可能に接続されている。
【００２８】
一方、通信装置Ｂ１１０は、アプリケーションＢ１１２を備え、アプリケーションＢ１１２によりメディア処理を行うメディア通信の端末装置である。アプリケーションＢ１１２は、経路探索部Ｂ１１４及びメッセージ制御部Ｂ１１６から構成され、ＳＩＰを用いて通信装置Ａ１００（アプリケーションＡ１０２）と通信を確立する。
【００２９】
経路探索部Ｂ１１４は、通信装置Ｂ１１０が通信装置Ａ１００と通信を行うためのＵＤＰの通信経路情報を収集するための機能、及び通信装置Ａ１００の経路探索部Ａ１０４に通信装置Ａ１００との通信経路を確定するためのパケットを送信する機能を有する。
【００３０】
メッセージ制御部Ｂ１１６は、ＳＩＰに基づいて、通信装置Ａ１００との間でメッセージを送受信する機能を有する。
【００３１】
本実施形態の通信装置Ｂ１１０は、例えば、図３に示した電気系の要部構成により実現することができる。図３に示すように通信装置Ｂ１１０は、ＣＰＵ１７０、ＲＯＭ１７２、及びＲＡＭ１７４、タイマ１７５、Ｉ／Ｆ１７６、記憶部１７７、及び通信Ｉ／Ｆ１７８を備える。
【００３２】
ＣＰＵ１７０は、ＲＯＭ１７２に格納されている通信制御プログラムＢ１７３等の各種プログラムを実行することにより、通信装置Ｂ１１０の動作を制御する。ＲＯＭ１７２には、上記のようにＣＰＵ１７０で実行される通信制御プログラムＡ１７３等の各種プログラムや各種パラメータ等が予め記憶されている。ＲＡＭ１７４は、ＣＰＵ１７０による各種プログラムの実行時のワークエリア等として用いられる。なお、本実施形態の通信制御プログラムＢ１７３は、アプリケーションＢ１１２を実現するためのプログラムを含む。
【００３３】
タイマ１７５は、詳細を後述する通信時間の計測等に用いられる。
【００３４】
Ｉ／Ｆ１７６はいわゆるユーザインターフェースであり、本実施形態では、通信装置Ａ１００のＩ／Ｆ１５６と同様に、音声をユーザに対して出入力する機能を少なくとも含む。Ｉ／Ｆ１７６の具体例としては、マイク等の集音器や、スピーカ等の可聴表示を行う表示部、モニタ等の可視表示を行う表示部、マウス、やキーボード等が挙げられる。
【００３５】
記憶部１７７の具体例としては、ＨＤＤやＳＳＤ等が挙げられる。通信Ｉ／Ｆ１７８は、無線通信または有線通信の機能を有し、本実施形態では、ＮＡＴ２１及びＮＡＴ２２を介して通信装置Ａ１００と通信を行うための機能を有する。
【００３６】
ＣＰＵ１７０、ＲＯＭ１７２、ＲＡＭ１７４、タイマ１７５、Ｉ／Ｆ１７６、記憶部１７７、及び通信Ｉ／Ｆ１７８は、システムバスやコントロールバス等のバス１７９を介して相互に各種情報（信号）の授受が可能に接続されている。
【００３７】
一方、シグナリングサーバ１２０は、通信装置Ａ１００及び通信装置Ｂ１１０から受信したメッセージを解釈し、通信装置Ａ１００及び通信装置Ｂ１１０の間のセッションを確立するためのサーバである。本実施形態では、一例としてＳＩＰサーバを用いている。
【００３８】
リレーサーバ１２２は、通信装置Ａ１００及び通信装置Ｂ１１０の一方から受信したＵＤＰパケットを他方に送信するサーバである。本実施形態では、一例としてＲＴＰ（Real-time Transport Protocol）リレーサーバを用いている。
【００３９】
シグナリングサーバ１２０及びリレーサーバ１２２は、ＣＰＵ、ＲＯＭ、ＲＡＭ、記憶部、及び通信Ｉ／Ｆ等（いずれも図示省略）を備えた、いわゆるサーバコンピュータである。なお、本実施形態では、シグナリングサーバ１２０及びリレーサーバ１２２を別個の装置とした形態について例示したが、本実施形態に限定されず、例えば、１台のサーバコンピュータを仮想的にシグナリングサーバ１２０及びリレーサーバ１２２として機能させる形態であってもよい。
【００４０】
ＮＡＴ１１及びＮＡＴ１２は、通信装置Ａ１００のローカルのＩＰ（Internet Protocol）アドレスをグローバルのＩＰアドレスに変換する。一方、ＮＡＴ２１及びＮＡＴ２２は、通信装置Ｂ１１０のローカルのＩＰアドレスをグローバルのＩＰアドレスに変換する。なお、以下では、ローカルのＩＰアドレスを「ローカルアドレス」または単に「ＩＰアドレス」という場合があり、グローバルのＩＰアドレスを「グローバルアドレス」または「ＩＰアドレス」という場合がある。
【００４１】
次に、本実施形態の通信システム１０において通信経路を確定するための作用について説明する。
【００４２】
図４は、通信装置Ａ１００と通信装置Ｂ１１０との間で通信経路を確定するための動作の流れの一例を表したタイムチャートである。
【００４３】
なお、以下では、通信経路を確定し、ＶｏＩＰ（Voice over Internet Protocol）プロトコルによる発信処理を開始するまでに動作の流れについて、通信装置Ａ１００を発信側、通信装置Ｂ１１０を着信側とした場合の一例について説明する。本実施形態の通信装置Ａ１００が本開示の第２通信装置の一例であり、本実施形態の通信装置Ｂ１１０が本開示の第１通信装置の一例である。
【００４４】
なお、通信装置Ａ１００は、ＣＰＵ１５０がＲＯＭ１５２に記憶されている通信制御プログラムＡ１５３を実行することにより、アプリケーションＡ１０２が実現され、経路探索部Ａ１０４及びメッセージ制御部Ａ１０６として機能する。また、本開示のアドレス情報送信部、選択部、メッセージ情報送信部、及び受信部として機能する。
【００４５】
また、通信装置Ｂ１１０は、ＣＰＵ１７０がＲＯＭ１７２に記憶されている通信制御プログラムＢ１７３を実行することにより、アプリケーションＢ１１２が実現され、経路探索部Ｂ１１４及びメッセージ制御部Ｂ１１６として機能する。また、本開示のアドレス情報受信部、メッセージ情報受信部、送信部、及び通信情報送信部の一例として機能する。
【００４６】
図４に示したステップＳ１で通信装置Ａ１００は、通信装置Ｂ１１０が通信装置Ａ１００に接続するための通信装置Ａ１００自身のグローバルアドレス及びポート番号をリレーサーバ１２２から収集する。
【００４７】
ステップＳ１における詳細な処理の流れの一例を図５に示す。図５に示すように、ステップＳ１００で経路探索部Ａ１０４は、ＲＴＰパケットを受信するためのＲＴＰソケットをオープンする。
【００４８】
次にステップＳ１０２で経路探索部Ａ１０４は、ＩＤが「Ａ０１１」のＲＴＰパケット（以下、「パケット５０」という）を、ＮＡＴ１１を介してリレーサーバ１２２に送信する。これにより、経路探索部Ａ１０４は、アプリケーションＢ１１２から送信したパケットがアプリケーションＡ１０２に到達することが可能な、通信装置Ａ１００のグローバルアドレス及びポート番号を取得することできる。
【００４９】
図６には、パケット５０の構成の一例を示す。図６に示すように、パケット５０は、１２バイトのＲＴＰヘッダの後に続くペイロードの４バイトにＡＳＣＩＩ（American National Standards Institute）コードでパケットＩＤ（ここでは、「Ａ０１１」）が設定されている。
【００５０】
また、パケット送信時にタイマＴ０１１を設定する。経路探索部Ａ１０４は、タイマＴ０１１が満了するまで、もしくは後述するパケット５２を受信するまで、一定間隔でＳ１０２の処理、すなわちパケット５０の送信を繰り返す。
【００５１】
パケット５０を受信したリレーサーバ１２２は、ステップＳ１０４でパケット５０から発信元のグローバルアドレス及びポート番号を取得する。
【００５２】
次のステップＳ１０６でリレーサーバ１２２は、取得したアドレス及びポート番号を設定したＩＤが「Ａ１０３」のパケット（以下、「パケット５２」という）を経路探索部Ａ１０４に送信する。なお、本実施形態のパケット５０及びパケット５２が、本開示の予め定められた情報の一例である。
【００５３】
図７には、パケット５２の構成の一例を示す。図７に示すように、パケット５２は、１２バイトのＲＴＰヘッダの後に続くペイロードの４バイトにＡＳＣＩＩコードでパケットＩＤ（ここでは、「Ａ０１２」）が設定されている。さらに、パケット５２は、次の４バイトに、取得したグローバルアドレスが設定されている。さらに、パケット５２は、次の２バイトに「０ｘ００」が設定されており、その次の２バイトに取得したポート番号が設定されている。
【００５４】
以降のステップＳ１０８〜Ｓ１１２の各処理は、上記ステップＳ１０２〜Ｓ１０６の各処理を、ＮＡＴ１２を介した通信により行う。
【００５５】
すなわち、図４に示したステップＳ１の処理では、利用可能なネットワークの数（介するＮＡＴの数）だけステップＳ１０２〜Ｓ１０６の各処理と同等の処理を繰り返し行う。
【００５６】
図４に示した次のステップＳ２でメッセージ制御部Ａ１０６は、シグナリングサーバ１２０に、収集したグローバルアドレス及びポート番号と、ローカルアドレスと、を設定したＭＥＳＳＡＧＥリクエスト（以下、「ＭＥＳＳＡＧＥリクエスト６０」という）を送信する。
【００５７】
図８には、送信されるＭＥＳＳＡＧＥリクエスト６０の一例を示す。図８に示したＭＥＳＳＡＧＥリクエスト６０は、ヘッダに続いて、通信装置Ａ１００のローカルアドレス６１として、ＩＰアドレスＡＬ１１、ＡＬ１２、ＡＬ１３、ＡＬ１４、及びポート番号ＡＬＰｏｒｔ１と、ＩＰアドレスＡＬ２１、ＡＬ２２、ＡＬ２３、ＡＬ２４、及びポート番号ＡＬＰｏｒｔ２との２つを設定した場合を示している。また、ＭＥＳＳＡＧＥリクエスト６０は、グローバルアドレス６２として、ＩＰアドレスＡＧ１１、ＡＧ１２、ＡＧ１３、ＡＧ１４、及びポート番号ＡＧＰｏｒｔ１と、ＩＰアドレスＡＧ２１、ＡＧ２２、ＡＧ２３、ＡＧ２４、及びポート番号ＡＧＰｏｒｔ２との２つを設定した場合を示している。
【００５８】
図４に示した次のステップＳ３でシグナリングサーバ１２０は、リレーサーバ１２２から通信装置Ａ１００と通信装置Ｂ１１０とがリレーサーバ１２２を中継して通信するためのアドレスを取得する。
【００５９】
具体的には、シグナリングサーバ１２０は、ＭＥＳＳＡＧＥリクエスト６０を受信すると、リレーサーバ１２２と通信を行いリレーサーバ１２２から、通信装置Ａ１００と通信装置Ｂ１１０とがリレーサーバ１２２を中継して通信するための２種類のアドレスを取得する。この２種類のアドレスは、アプリケーションＡ１０２がリレーサーバ１２２と接続するためのアドレス、及びアプリケーションＢ１１２がリレーサーバ１２２と接続するためのアドレスである。
【００６０】
図４に示した次のステップＳ４でシグナリングサーバ１２０は、取得したアドレスが設定されたＭＥＳＳＡＧＥリクエストを通信装置Ｂ１１０に送信し、通信装置Ｂ１１０のメッセージ制御部Ｂ１１６は、当該ＭＥＳＳＡＧＥリクエストを受信する。
【００６１】
具体的には、シグナリングサーバ１２０は、上記ステップＳ３で取得したアドレスを受信したＭＥＳＳＡＧＥリクエスト６０に対して設定する。図９には、ＭＥＳＳＡＧＥリクエスト６０に対して受信したアドレスが設定されたＭＥＳＳＡＧＥリクエスト６６の一例を図９に示す。図９に示したＭＥＳＳＡＧＥリクエスト６６は、ヘッダに続いて、アプリケーションＡ１０２がリレーサーバ１２２と接続するためのリレーアドレス６７として、ＩＰアドレスＢＲ１１、ＢＲ１２、ＢＲ１３、ＢＲ１４、及びポート番号ＢＲＰｏｒｔ１が設定されている。また、ＭＥＳＳＡＧＥリクエスト６６は、アプリケーションＢ１１２がリレーサーバ１２２と接続するためのリレーアドレス６８として、ＩＰアドレスＡＲ１１、ＡＲ１２、ＡＲ１３、ＡＲ１４、及びポート番号ＡＲＰｏｒｔ１が設定されている。
【００６２】
図４に示した次のステップＳ５でＭＥＳＳＡＧＥリクエスト６６を受信した通信装置Ｂ１１０は、通信装置Ａ１００が通信装置Ｂ１１０に接続するための通信装置Ａ１００自身のグローバルアドレス及びポート番号をリレーサーバ１２２から収集する。ステップＳ５の処理は、上記ステップＳ１の処理と同様である。
【００６３】
まず、経路探索部Ｂ１１４は、ＲＴＰパケットを受信するためのＲＴＰソケットをオープンする。そして経路探索部Ｂ１１４は、パケット５０を、ＮＡＴ２１を介してリレーサーバ１２２に送信し、アプリケーションＡ１０２から送信したパケットがアプリケーションＢ１１２に到達することが可能な、通信装置Ｂ１１０のグローバルアドレス及びポート番号を取得する。また、パケット送信時にタイマＴ０１１を設定し、経路探索部Ｂ１１４は、タイマＴ０１１が満了するまで、もしくはパケット５２を受信するまで、一定間隔でケット５０の送信を繰り返す。パケット５０を受信したリレーサーバ１２２は、パケット５０から取得した発信元のグローバルアドレス及びポート番号をパケット５２に設定して経路探索部Ｂ１１４に送信する。
【００６４】
上記処理をさらに、ＮＡＴ２２を介した通信により行う。すなわち、利用可能なネットワークの数（介するＮＡＴの数）だけ上記処理と同等の処理を繰り返し行う。
【００６５】
図４に示した次のステップＳ６で通信装置Ｂ１１０のメッセージ制御部Ｂ１１６は、２００／ＭＥＳＳＡＧＥレスポンス（ＭＥＳＳＡＧＥリクエスト６６の受信に成功したことを表す応答）をシグナリングサーバ１２０に送信する。
【００６６】
具体的には、メッセージ制御部Ｂ１１６は、ＭＥＳＳＡＧＥリクエスト６６に対する２００／ＭＥＳＳＡＧＥレスポンスを生成し、上記ステップＳ５で収集したグローバルアドレス及びポート番号と、ローカルアドレスと、を設定する。また、メッセージ制御部Ｂ１１６は、リレーアドレスも設定する。なお、リレーアドレスは、ＭＥＳＳＡＧＥリクエスト６６に設定されていたもの（リレーアドレス６７、６８）をコピーして用いる。
【００６７】
図１０には、この場合の２００／ＭＥＳＳＡＧＥレスポンス７０の一例を示す。図１０に示した２００／ＭＥＳＳＡＧＥレスポンス７０は、ヘッダに続いて、通信装置Ｂ１１０のローカルアドレス７１として、ＩＰアドレスＢＬ１１、ＢＬ１２、ＢＬ１３、ＢＬ１４、及びポート番号ＢＬＰｏｒｔ１と、ＩＰアドレスＢＬ２１、ＢＬ２２、ＢＬ２３、ＢＬ２４、及びポート番号ＢＬＰｏｒｔ２との２つを設定した場合を示している。また、２００／ＭＥＳＳＡＧＥレスポンス７０は、グローバルアドレス７２として、ＩＰアドレスＢＧ１１、ＢＧ１２、ＢＧ１３、ＢＧ１４、及びポート番号ＢＧＰｏｒｔ１と、ＩＰアドレスＢＧ２１、ＢＧ２２、ＢＧ２３、ＢＧ２４、及びポート番号ＢＧＰｏｒｔ２との２つを設定した場合を示している。
【００６８】
図４に示した次のステップＳ７でシグナリングサーバ１２０は、通信装置Ｂ１１０から受信した２００／ＭＥＳＳＡＧＥレスポンス７０を通信装置Ａ１００に送信する。
【００６９】
図４に示したステップＳ７で、通信装置Ａ１００のメッセージ制御部Ａ１０６は、シグナリングサーバ１２０から、通信装置Ｂ１１０から受信した２００／ＭＥＳＳＡＧＥレスポンス７０を、受信する。
【００７０】
図４に示した次のステップＳ８で通信装置Ａ１００のメッセージ制御部Ａ１０６は、ＲＴＰパケットをリレーサーバ１２２及び通信装置Ｂ１１０に送信する。これにより、経路探索部Ａ１０４は、アプリケーションＢ１１２が送信するＵＤＰパケットをアプリケーションＡ１０２に到達できるようにするためのいわゆる、穴開け処理を行う。
【００７１】
ステップＳ８における詳細な処理の流れの一例を図１１に示す。図１１に示すように、ステップＳ８００で経路探索部Ａ１０４は、２００／ＭＥＳＳＡＧＥレスポンス７０に設定されていたグローバルアドレスの１つに対して、ＩＤが「Ａ０２２」のＲＴＰパケット（以下、「パケット５４」という）を送信する。図１２には、パケット５４の構成の一例を示す。図１１に示すように、パケット５４は、１２バイトのＲＴＰヘッダの後に続くペイロードの４バイトにＡＳＣＩＩコードでパケットＩＤ（ここでは、「Ａ０２２」）が設定されている。
【００７２】
また、経路探索部Ａ１０４は、パケット送信時にタイマＴ０２２を設定する。経路探索部Ａ１０４は、タイマＴ０２２が満了するまで一定間隔でＳ８００の処理、すなわちパケット５４の送信を繰り返す。
【００７３】
本実施形態では、通信装置Ｂ１１０のグローバルアドレスが２つ有るため、次のステップＳ８０２で、上記ステップＳ８００で送信したグローバルアドレスと異なるグローバルアドレスに対して、上記ステップＳ８００と同様にパケット５４を送信する。
【００７４】
なお、本実施形態と異なり、通信装置Ｂ１１０のグローバルアドレスが１つの場合は、上記ステップＳ８００の処理のみを行えばよく、グローバルアドレスが３つ以上の場合は、グローバルアドレスを替えて上記処理をさらに繰り返せばよいことはいうまでもない。
【００７５】
次のステップＳ８０４で経路探索部Ａ１０４は、リレーサーバ１２２（２００／ＭＥＳＳＡＧＥレスポンス７０に設定されていたリレーアドレス６８）に対して、上記ステップＳ８００と同様にパケット５４を送信する。
【００７６】
図４に示した次のステップＳ９で通信装置Ｂ１１０では、通信装置Ａ１００との疎通の確認及び通信速度の測定を行い、最適な通信経路を選択する。
【００７７】
ステップＳ９における詳細な処理の流れの一例を図１３に示す。経路探索部Ｂ１１４は、２００／ＭＥＳＳＡＧＥレスポンス７０の送信後、所定の時間が経過すると、図１３に示すように、ステップＳ９００で、ＩＤが「Ｒ１００」のＲＴＰパケット（以下「パケット５６」という）を、上記ステップＳ４でシグナリングサーバ１２０から受信したＭＥＳＳＡＧＥリクエスト６６に設定されているリレーアドレス６７（リレーサーバ１２２）へ、タイマＴＢ０１１が満了するまで一定間隔で繰り返し送信する。
【００７８】
図１４には、パケット５６の構成の一例を示す。図１４に示すように、パケット５６は、１２バイトのＲＴＰヘッダの後に続くペイロードの４バイトにＡＳＣＩＩコードでパケットＩＤ（ここでは、「Ｒ１００」）が設定されている。さらに次の８バイトに、タイマ１７５を参照して得られた現在のタイムスタンプ（パケット５６を最初に送信した際のタイムスタンプ）が設定されている。
【００７９】
リレーサーバ１２２は、パケット５６を受信すると、ステップＳ９３０でパケット５６のペイロードを改変することなく、そのまま経路探索部Ａ１０４へ送信する。
【００８０】
パケット５６を受信した経路探索部Ａ１０４は、ステップＳ９３２、Ｓ９３６、及びＳ９３８の各処理を行う。
【００８１】
ステップＳ９３２で、経路探索部Ａ１０４は、上記ステップＳ７で受信した２００／ＭＥＳＳＡＧＥレスポンス７０に設定されている、リレーアドレス６７に、ＩＤが「Ｒ１Ｒ１」のＲＴＰパケットを送信する。ここで送信するパケットは、パケット５６のペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「Ｒ１Ｒ１」を表したコードに変更したものである。
【００８２】
このＩＤが「Ｒ１Ｒ１」のＲＴＰパケットを受信したリレーサーバ１２２は、ステップＳ９３３で、ペイロードを改変することなくそのまま経路探索部Ｂ１１４へ送信する。
【００８３】
ＩＤが「Ｒ１Ｒ１」のＲＴＰパケットを受信した経路探索部Ｂ１１４は、ステップＳ９３４で当該ＲＴＰパケットを受信した際のタイムスタンプをタイマ１７５から取得する。
【００８４】
また、ステップＳ９３６で経路探索部Ａ１０４は、グローバルアドレス７２に、ＩＤが「Ｒ１ＧＸ」のＲＴＰパケットを送信する。なお、グローバルアドレス７２に複数のグローバルアドレスが含まれる場合がある。例えば、本実施形態では、図１０に示したようにグローバルアドレスが２つ含まれており、このような場合、任意の順番で複数のグローバルアドレスの各々に番号が割り当てられる。ＩＤにおける「Ｘ」は、グローバルアドレスに割り当てられた番号を示す。
【００８５】
ここで送信するパケットは、パケット５６のペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「Ｒ１ＧＸ」を表したコードに変更したものである。
【００８６】
ＩＤが「Ｒ１ＧＸ」のＲＴＰパケットを受信した経路探索部Ｂ１１４は、ステップＳ９３７で当該ＲＴＰパケットを受信した際のタイムスタンプをタイマ１７５から取得する。
【００８７】
なお、図１３では、便宜上図示を省略したが、ステップＳ９３６及びステップＳ９３７の各処理は、グローバルアドレス７２に含まれる全てのグローバルアドレスに対して、順次、上記「Ｘ」の値を変更して行われる。
【００８８】
また、ステップＳ９３８で経路探索部Ａ１０４は、ローカルアドレス７１に、ＩＤが「Ｒ１ＬＹ」のＲＴＰパケットを送信する。なお、ローカルアドレス７１に複数のローカルアドレスが含まれる場合がある。例えば、本実施形態では、図１０に示したようにローカルアドレスが２つ含まれており、このような場合、任意の順番で複数のローカルアドレスの各々に番号が割り当てられる。ＩＤにおける「Ｙ」は、ローカルアドレスに割り当てられた番号を示す。
【００８９】
ここで送信するパケットは、パケット５６のペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「Ｒ１ＬＹ」を表したコードに変更したものである。
【００９０】
ＩＤが「Ｒ１ＬＹ」のＲＴＰパケットを受信した経路探索部Ｂ１１４は、ステップＳ９３９で当該ＲＴＰパケットを受信した際のタイムスタンプをタイマ１７５から取得する。
【００９１】
なお、図１３では、便宜上図示を省略したが、ステップＳ９３８及びステップＳ９３９の各処理は、ローカルアドレス７１に含まれる全てのローカルアドレスに対して、順次、上記「Ｙ」の値を変更して行われる。
【００９２】
なお、上記ステップＳ９３２、Ｓ９３６、及びＳ９３８の各処理を行う順番は、本実施形態に限定されず、任意であることは言うまでもない。
【００９３】
一方、経路探索部Ｂ１１４は、ステップＳ９４０で、ＩＤが「ＧＷ００」のＲＴＰパケットを、上記ステップＳ４でシグナリングサーバ１２０から受信したＭＥＳＳＡＧＥリクエスト６６に設定されているグローバルアドレス６２へ、タイマＴＢ０１１が満了するまで一定間隔で繰り返し送信する。
【００９４】
なお、グローバルアドレス６２に複数のグローバルアドレスが含まれる場合がある。例えば、本実施形態では、図９に示したようにグローバルアドレスが２つ含まれており、このような場合、任意の順番で複数のグローバルアドレスの各々に番号が割り当てられる。ＩＤにおける「Ｗ」は、グローバルアドレスに割り当てられた番号を示す。
【００９５】
ここで送信するパケットは、パケット５６のペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「ＧＷ００」を表したコードに変更し、現在のタイムスタンプに書き換えたものである。
【００９６】
当該パケットを受信した経路探索部Ａ１０４は、ステップＳ９５２、Ｓ９５６、及びＳ９５８の各処理を行う。これらの処理は、上記ステップＳ９３２、Ｓ９３６、及びＳ９３８の各処理と略同様である。
【００９７】
ステップＳ９５２で、経路探索部Ａ１０４は、上記ステップＳ７で受信した２００／ＭＥＳＳＡＧＥレスポンス７０に設定されている、リレーアドレス６７に、ＩＤが「ＧＷＲ１」のＲＴＰパケットを送信する。ここで送信するパケットは、受信しパケットのペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「ＧＷＲ１」を表したコードに変更したものである。
【００９８】
このＩＤが「ＧＷＲ１」のＲＴＰパケットを受信したリレーサーバ１２２は、ステップＳ９５３で、ペイロードを改変することなくそのまま経路探索部Ｂ１１４へ送信する。
【００９９】
ＩＤが「ＧＷＲ１」のＲＴＰパケットを受信した経路探索部Ｂ１１４は、ステップＳ９５４で当該ＲＴＰパケットを受信した際のタイムスタンプをタイマ１７５から取得する。
【０１００】
また、ステップＳ９５６で経路探索部Ａ１０４は、グローバルアドレス７２に、ＩＤが「ＧＷＧＸ」のＲＴＰパケットを送信する。なお、「Ｘ」は、上記ステップＳ９３６と同様に、複数のグローバルアドレスを識別するための任意の番号である。
【０１０１】
ここで送信するパケットは、受信したパケットのペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「ＧＷＧＸ」を表したコードに変更したものである。
【０１０２】
ＩＤが「ＧＷＧＸ」のＲＴＰパケットを受信した経路探索部Ｂ１１４は、ステップＳ９５７で当該ＲＴＰパケットを受信した際のタイムスタンプをタイマ１７５から取得する。
【０１０３】
なお、図１３では、便宜上図示を省略したが、ステップＳ９５６及びステップＳ９５７の各処理は、グローバルアドレス７２に含まれる全てのグローバルアドレスに対して、順次、上記「Ｘ」の値を変更して行われる。
【０１０４】
また、ステップＳ９５８で経路探索部Ａ１０４は、ローカルアドレス７１に、ＩＤが「ＧＷＬＹ」のＲＴＰパケットを送信する。なお、「Ｙ」は、上記ステップＳ９３８と同様に、複数のローカルアドレスを識別するための任意の番号である。
【０１０５】
ここで送信するパケットは、受信したパケットのペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「ＧＷＬＹ」を表したコードに変更したものである。
【０１０６】
ＩＤが「ＧＷＬＹ」のＲＴＰパケットを受信した経路探索部Ｂ１１４は、ステップＳ９５９で当該ＲＴＰパケットを受信した際のタイムスタンプをタイマ１７５から取得する。
【０１０７】
なお、図１３では、便宜上図示を省略したが、ステップＳ９５８及びステップＳ９５９の各処理は、ローカルアドレス７１に含まれる全てのローカルアドレスに対して、順次、上記「Ｙ」の値を変更して行われる。
【０１０８】
なお、上記ステップＳ９５２、Ｓ９５６、及びＳ９５８の各処理を行う順番は、本実施形態に限定されず、任意であることは言うまでもない。
【０１０９】
一方、経路探索部Ｂ１１４は、ステップＳ９６０で、ＩＤが「ＬＶ００」のＲＴＰパケットを、上記ステップＳ４でシグナリングサーバ１２０から受信したＭＥＳＳＡＧＥリクエスト６６に設定されているローカルアドレス６１へ、タイマＴＢ０１１が満了するまで一定間隔で繰り返し送信する。
【０１１０】
なお、ローカルアドレス６１に複数のローカルアドレスが含まれる場合がある。例えば、本実施形態では、図９に示したようにローカルアドレスが２つ含まれており、このような場合、任意の順番で複数のローカルアドレスの各々に番号が割り当てられる。ＩＤにおける「Ｖ」は、ローカルアドレスに割り当てられた番号を示す。
【０１１１】
ここで送信するパケットは、パケット５６のペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「ＬＶ００」を表したコードに変更し、現在のタイムスタンプに書き換えたものである。
【０１１２】
当該パケットを受信した経路探索部Ａ１０４は、ステップＳ９７２、Ｓ９７６、及びＳ９７８の各処理を行う。これらの処理は、上記ステップＳ９３２、Ｓ９３６、及びＳ９３８の各処理と略同様である。
【０１１３】
ステップＳ９７２で、経路探索部Ａ１０４は、上記ステップＳ７で受信した２００／ＭＥＳＳＡＧＥレスポンス７０に設定されている、リレーアドレス６７に、ＩＤが「ＬＶＲ１」のＲＴＰパケットを送信する。ここで送信するパケットは、受信しパケットのペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「ＬＶＲ１」を表したコードに変更したものである。
【０１１４】
このＩＤが「ＬＶＲ１」のＲＴＰパケットを受信したリレーサーバ１２２は、ステップＳ９７３で、ペイロードを改変することなくそのまま経路探索部Ｂ１１４へ送信する。
【０１１５】
ＩＤが「ＬＶＲ１」のＲＴＰパケットを受信した経路探索部Ｂ１１４は、ステップＳ９７４で当該ＲＴＰパケットを受信した際のタイムスタンプをタイマ１７５から取得する。
【０１１６】
また、ステップＳ９７６で経路探索部Ａ１０４は、グローバルアドレス７２に、ＩＤが「ＬＶＧＸ」のＲＴＰパケットを送信する。なお、「Ｘ」は、上記ステップＳ９３６と同様に、複数のグローバルアドレスを識別するための任意の番号である。
【０１１７】
ここで送信するパケットは、受信したパケットのペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「ＬＶＧＸ」を表したコードに変更したものである。
【０１１８】
ＩＤが「ＬＶＧＸ」のＲＴＰパケットを受信した経路探索部Ｂ１１４は、ステップＳ９７７で当該ＲＴＰパケットを受信した際のタイムスタンプをタイマ１７５から取得する。
【０１１９】
なお、図１３では、便宜上図示を省略したが、ステップＳ９５６及びステップＳ９５７の各処理は、グローバルアドレス７２に含まれる全てのグローバルアドレスに対して、順次、上記「Ｘ」の値を変更して行われる。
【０１２０】
また、ステップＳ９７８で経路探索部Ａ１０４は、ローカルアドレス７１に、ＩＤが「ＬＶＬＹ」のＲＴＰパケットを送信する。なお、「Ｙ」は、上記ステップＳ９３８と同様に、複数のローカルアドレスを識別するための任意の番号である。
【０１２１】
ここで送信するパケットは、受信したパケットのペイロードをコピーし、パケットＩＤを、ＡＳＣＩＩコードで「ＬＶＬＹ」を表したコードに変更したものである。
【０１２２】
ＩＤが「ＬＶＬＹ」のＲＴＰパケットを受信した経路探索部Ｂ１１４は、ステップＳ９７９で当該ＲＴＰパケットを受信した際のタイムスタンプをタイマ１７５から取得する。
【０１２３】
なお、図１３では、便宜上図示を省略したが、ステップＳ９７８及びステップＳ９７９の各処理は、ローカルアドレス７１に含まれる全てのローカルアドレスに対して、順次、上記「Ｙ」の値を変更して行われる。
【０１２４】
なお、上記ステップＳ９７２、Ｓ９７６、及びＳ９７８の各処理を行う順番は、本実施形態に限定されず、任意であることは言うまでもない。
【０１２５】
また、経路探索部Ｂ１１４における、上記ステップＳ９００、Ｓ９４０、及びＳ９６０の各処理を行う順番も本実施形態に限定あれず、任意であることは言うまでもない。
【０１２６】
さらに、経路探索部Ｂ１１４は、上記ステップＳ９００、Ｓ９４０、及びＳ６０の各処理は、経路探索部Ｂ１１４から送信したパケットの応答の受信を待たずに、順次行われる。例えば、ステップＳ９３７よりも先に、ステップＳ９４０が行われる場合もある。
【０１２７】
上記処理は、ＮＡＴ２１及びＮＡＴ２２の各々に対して行われる。
【０１２８】
このように、ステップＳ９の処理によれば、通信に関する全ての通信装置Ａ１００のアドレス、及び通信装置Ｂ１１０の組合せ、即ち全ての通信経路における通信時間を計測するための処理が行われる。
【０１２９】
なお、上記各処理を行う順番は特に限定されない、例えば、ＮＡＴ２１を介して上記一連の処理を全て終了後にＮＡＴ２２を介して同様に一連の処理を行ってもよいし、適宜各処理をＮＡＴ２１を介する場合とＮＡＴ２２とを介する場合とで交互に行ってもよい。
【０１３０】
図４に示したステップＳ１０で経路探索部Ｂ１１４は、上記ステップＳ９で最も通信時間が短い通信経路を選択する。
【０１３１】
具体的には、経路探索部Ｂ１１４は、パケットを受信した際に取得したタイムスタンプと、パケットに設定されているタイムスタンプとの差分を、受信したパケット毎に算出する。本実施形態では、ここで算出した差分を通信時間とみなしている。経路探索部Ｂ１１４は、算出した通信時間（差分）の中から最も短いものを通信経路として選択する。なお、通信時間が最も短い通信経路が複数有る場合、いずれの通信経路を選択するかは任意である。
【０１３２】
このようにして通信時間が最短の通信経路が選択されると図４に示したステップＳ１１でメッセージ制御部Ｂ１１６は、選択した通信経路に対応するＩＰアドレス（アプリケーションＡ１０２がアプリケーションＢ１１２にパケットを送信するＩＰアドレス、及びアプリケーションＢ１１２がアプリケーションＡ１０２にパケットを送信するＩＰアドレス）を設定したＭＥＳＳＡＧＥリクエスト(以下、「ＭＥＳＳＡＧＥリクエスト８０」という）を生成する。本実施形態のＭＥＳＳＡＧＥリクエスト８０が、本開示のメッセージ情報の一例である。
【０１３３】
図１５には、生成されるＭＥＳＳＡＧＥリクエスト８０の一例を示す。図１５に示したＭＥＳＳＡＧＥリクエスト８０には、ヘッダに続いて、アプリケーションＡ１０２がアプリケーションＢ１１２にパケットを送信するＩＰアドレスとして、Ｂ１、Ｂ２、Ｂ３、Ｂ４、ポート番号ＢＰｏｒｔが設定されている。また、ＭＥＳＳＡＧＥリクエスト８０には、アプリケーションＢ１１２がアプリケーションＡ１０２にパケットを送信するＩＰアドレスとして、Ａ１、Ａ２、Ａ３、Ａ４、ポート番号ＡＰｏｒｔが設定されている。
【０１３４】
メッセージ制御部Ｂ１１６は、生成したＭＥＳＳＡＧＥリクエスト８０をシグナリングサーバ１２０へ送信する（図４のステップＳ１１）。
【０１３５】
シグナリングサーバ１２０は、ＭＥＳＳＡＧＥリクエスト８０を受信すると、そのままＭＥＳＳＡＧＥリクエスト８０を、メッセージ制御部Ａ１０６へ送信する（図４のステップＳ１１）。
【０１３６】
図４に示したステップＳ１１でメッセージ制御部Ａ１０６は、ＭＥＳＳＡＧＥリクエスト８０を受信すると、図４に示したＳ１２でメッセージ制御部Ａ１０６は、２００／ＭＥＳＳＡＧＥレスポンス（ＭＥＳＳＡＧＥリクエスト６６の受信に成功したことを表す応答）をシグナリングサーバ１２０に送信する。シグナリングサーバ１２０は、当該２００／ＭＥＳＳＡＧＥレスポンスを受信すると、そのまま当該２００／ＭＥＳＳＡＧＥレスポンスをメッセージ制御部Ｂ１１６へ送信する。メッセージ制御部Ｂ１１６は、シグナリングサーバ１２０から、２００／ＭＥＳＳＡＧＥレスポンスを受信する。
【０１３７】
図４に示した次のステップＳ１３でアプリケーションＡ１０２は、ＶｏＩＰの発信処理を開始する。
【０１３８】
具体的には、アプリケーションＡ１０２は、上記Ｓ１１で受信したＭＥＳＳＡＧＥリクエスト８０に設定されている「Ｘ−ＰＡＡＴＨ−Ａ」のヘッダを、パケットを受信するアドレスとして、ＩＮＶＩＴＥリクエストのＳＤＰに設定する。図１６には、この場合のＩＮＶＩＴＥリクエスト９０の一例を示す。図１６に示したＩＮＶＩＴＥリクエスト９０では、ヘッダに続くボディ部分にアプリケーションＡ１０２がパケットを受信するＩＰアドレスとして「Ａ１、Ａ２、Ａ３、Ａ４、ポート番号ＡＰｏｒｔ」が設定されている。本実施形態のＩＮＶＩＴＥリクエスト９０が、本開示の応答情報の一例である。
【０１３９】
アプリケーションＡ１０２は、ＭＥＳＳＡＧＥリクエスト８０に設定されている「Ｘ−ＰＡＴＨ−Ｂ」のヘッダを宛先に用いて、ＩＮＶＩＴＥリクエスト９０を、アプリケーションＢ１１２へ送信する。
【０１４０】
さらに、アプリケーションＢ１１２は、ＩＮＶＩＴＥリクエスト９０を受信すると、ＭＥＳＳＡＧＥリクエスト８０に設定されている「Ｘ−ＰＡＴＨ−Ｂ」のヘッダを、パケットを受信するアドレスとして、ＩＮＶＩＴＥリクエストのＳＤＰに設定する。図１７には、この場合のＩＮＶＩＴＥリクエスト９２の一例を示す。図１７に示したＩＮＶＩＴＥリクエスト９２では、ヘッダに続くボディ部分にアプリケーションＢ１１２がパケットを受信するＩＰアドレスとして「Ｂ１、Ｂ２、Ｂ３、Ｂ４、ポート番号ＢＰｏｒｔ」が設定されている。
【０１４１】
以降、選択された通信時間が最短の通信経路により、ＶｏＩＰ通信が行われる。
【０１４２】
以上説明したように、本実施形態の通信システム１０は、通信装置Ａ１００と通信装置Ｂ１１０とが複数の通信経路により接続が可能な通信システムであって、通信装置Ｂ１１０は、複数の通信経路毎のアドレス情報を通信装置Ａ１００に送信し、複数の通信経路毎の通信時間に基づいて、通信時間が最も短い通信経路を選択し、選択した通信経路により通信装置Ａ１００にメッセージ情報を送信し、メッセージ情報に対する応答情報を通信装置Ａ１００から受信する。一方、通信装置Ａ１００は、通信装置Ｂ１１０からアドレス情報を受信し、通信装置Ｂ１１０からメッセージ情報を受信し、メッセージ情報に対する応答情報を通信装置Ｂ１１０に送信する。
【０１４３】
本実施形態の通信システム１０、通信装置Ａ１００、及び通信装置Ｂ１１０によれば、全てのアドレスの組合せ、すなわち全ての通信経路の通信時間を計測し、最も通信時間が短い通信経路を選択するため、通信経路が複数有る場合において、最も通信時間が短い通信経路を選択することできる。
【０１４４】
なお本実施形態では、ＶｏＩＰ通信に本発明を適用する場合について説明したが、ＶｏＩＰ通信に限定されないことはいうまでもない。また、本実施形態では、ＮＡＴを介する通信経路のみを有する通信システム１０について説明したが、ＮＡＴを全く介さない通信経路のみにより接続される通信装置を含む通信システムであってもよい。
【０１４５】
なお、上記各実施形態は、本発明の一例であり、本発明の主旨を逸脱しない範囲内において状況に応じて変更可能であることはいうまでもない。
【符号の説明】
【０１４６】
１０  通信システム
１１、１２、２１、２２  ＮＡＴ
１００  通信装置Ａ
１０２  アプリケーションＡ
１０４  経路探索部Ａ
１０６  メッセージ制御部Ａ
１１０  通信装置Ｂ
１１２  アプリケーションＢ
１１４  経路探索部Ｂ
１１６  メッセージ制御部Ｂ
１５３  通信制御プログラムＡ
１７３  通信制御プログラムＢ
【図１】
2019047184.tif 000003
【図２】
2019047184.tif 000004
【図３】
2019047184.tif 000005
【図４】
2019047184.tif 000006
【図５】
2019047184.tif 000007
【図６】
2019047184.tif 000008
【図７】
2019047184.tif 000009
【図８】
2019047184.tif 000010
【図９】
2019047184.tif 000011
【図１０】
2019047184.tif 000012
【図１１】
2019047184.tif 000013
【図１２】
2019047184.tif 000014
【図１３】
2019047184.tif 000015
【図１４】
2019047184.tif 000016
【図１５】
2019047184.tif 000017
【図１６】
2019047184.tif 000018
【図１７】
2019047184.tif 000019