(57)【要約】【課題】複数の通信インタフェースの一部にローカルＩＰアドレスが割り当てられている場合でも、ローカルＩＰアドレスが割り当てられた通信インタフェースを用いてＭＰＴＣＰのサブフローを高精度に確立できる通信装置を提供する。【解決手段】通信装置は、通信を制御するプロセッサと、アドレス変換サーバによりグローバルＩＰアドレスに変換されるローカルＩＰアドレスを用いて、第１の通信方式で通信する第１の通信インタフェースと、グローバルＩＰアドレスを用いて、第２の通信方式で通信する第２の通信インタフェースと、を備える。第１の通信インタフェースは、プロセッサによる制御により、ＭＰＴＣＰのセッション及びサブフローを確立するための第１の制御データを通信する。第２の通信インタフェースは、プロセッサによる制御により、第１の制御データの通信後、ＭＰＴＣＰのサブフローを追加するための第２の制御データを通信する。【選択図】図５
2018042199.tif 000002
【特許請求の範囲】
【請求項１】
ＭＰＴＣＰに従って他の通信装置と通信する通信装置であって、
通信を制御するプロセッサと、
アドレス変換サーバによりグローバルＩＰアドレスに変換されるローカルＩＰアドレスを用いて、第１の通信方式で通信する第１の通信インタフェースと、
グローバルＩＰアドレスを用いて、第２の通信方式で通信する第２の通信インタフェースと、
を備え、
前記第１の通信インタフェースは、前記プロセッサによる制御により、前記ＭＰＴＣＰのセッション及びサブフローを確立するための第１の制御データを通信し、
前記第２の通信インタフェースは、前記プロセッサによる制御により、前記第１の制御データの通信後、前記ＭＰＴＣＰのサブフローを追加するための第２の制御データを通信する、通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記第１の通信インタフェースを複数備え、
前記第１の通信インタフェースのうち前記第１の制御データを通信していない通信インタフェースは、前記プロセッサによる制御により、前記第１の制御データの通信後、前記ＭＰＴＣＰのサブフローを追加するための第３の制御データを通信する、通信装置。
【請求項３】
請求項２に記載の通信装置であって、
前記プロセッサは、各第１の通信インタフェースの通信方式を基に、前記ＭＰＴＣＰのサブフローの確立順序を決定し、
各第１の通信インタフェースは、決定された前記確立順序で、前記第１の制御データ又は前記第３の制御データを通信する、通信装置。
【請求項４】
請求項２に記載の通信装置であって、
前記プロセッサは、各第１の通信インタフェースによる通信に使用される通信帯域を基に、前記ＭＰＴＣＰのサブフローの確立順序を決定し、
各第１の通信インタフェースは、決定された前記確立順序で、前記第１の制御データ又は前記第３の制御データを通信する、通信装置。
【請求項５】
請求項１〜４のいずれか１項に記載の通信装置であって、
前記第１の通信インタフェース又は前記第２の通信インタフェースは、確立された複数のサブフローのうち、一部のサブフローが切断された場合、他のサブフローを介して、通信データを再送する、通信装置。
【請求項６】
請求項２に記載の通信装置であって、
前記第１の通信インタフェースは、前記第２の通信インタフェースのグローバルＩＰアドレスの情報を含む第４の制御データを送信する、通信装置。
【請求項７】
ＭＰＴＣＰに従って通信する通信方法であって、
アドレス変換サーバによりグローバルＩＰアドレスに変換されるローカルＩＰアドレスを用いて第１の通信方式で通信する第１の通信インタフェースにより、前記ＭＰＴＣＰのセッション及びサブフローを確立するための第１の制御データを通信し、
グローバルＩＰアドレスを用いて第２の通信方式で通信する第２の通信インタフェースにより、前記第１の制御データの通信後、前記ＭＰＴＣＰのサブフローを追加するための第２の制御データを通信する、通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信装置及び通信方法に関する。
【背景技術】
【０００２】
従来、ＭＰＴＣＰ（ＭｕｌｔｉＰａｔｈ  ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ））に従って通信する通信装置が知られている。この通信装置として、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）通信において、受信側ピアが、ローカルＩＰアドレス及びＶＰＮに関連付けられるＩＰアドレスを送信側へ送信可能であることが知られている。また、ＭＰＴＣＰ技術を使用する場合、ピアが、自身が有する利用可能なＩＰアドレスの全てを他のピアに送信可能であることが知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１３−５２１６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の通信装置は、複数の通信インタフェースの一部にローカルＩＰアドレスが割り当てられている場合、ローカルＩＰアドレスが割り当てられた通信インタフェースを用いてＭＰＴＣＰのサブフローを確立することが困難である場合がある。
【０００５】
本開示は、上記事情に鑑みてなされたものであり、複数の通信インタフェースの一部にローカルＩＰアドレスが割り当てられている場合でも、ローカルＩＰアドレスが割り当てられた通信インタフェースを用いてＭＰＴＣＰのサブフローを高精度に確立できる通信装置及び通信方法を提供する。
【課題を解決するための手段】
【０００６】
本開示の通信装置は、ＭＰＴＣＰに従って他の通信装置と通信する通信装置であって、通信を制御するプロセッサと、アドレス変換サーバによりグローバルＩＰアドレスに変換されるローカルＩＰアドレスを用いて、第１の通信方式で通信する第１の通信インタフェースと、グローバルＩＰアドレスを用いて、第２の通信方式で通信する第２の通信インタフェースと、を備える。第１の通信インタフェースは、プロセッサによる制御により、ＭＰＴＣＰのセッション及びサブフローを確立するための第１の制御データを通信する。第２の通信インタフェースは、プロセッサによる制御により、第１の制御データの通信後、ＭＰＴＣＰのサブフローを追加するための第２の制御データを通信する。
【０００７】
本開示の通信方法は、ＭＰＴＣＰに従って通信する通信方法であって、アドレス変換サーバによりグローバルＩＰアドレスに変換されるローカルＩＰアドレスを用いて第１の通信方式で通信する第１の通信インタフェースにより、ＭＰＴＣＰのセッション及びサブフローを確立するための第１の制御データを通信し、グローバルＩＰアドレスを用いて第２の通信方式で通信する第２の通信インタフェースにより、第１の制御データの通信後、ＭＰＴＣＰのサブフローを追加するための第２の制御データを通信する。
【発明の効果】
【０００８】
本開示によれば、複数の通信インタフェースの一部にローカルＩＰアドレスが割り当てられている場合でも、ローカルＩＰアドレスが割り当てられた通信インタフェースを用いてＭＰＴＣＰのサブフローを高精度に確立できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態における通信システムの構成例を示す模式図
【図２】通信装置の構成例を示すブロック図
【図３】通信装置の動作例を示すフローチャート
【図４】第１通信例に係る通信システムを説明するための構成図
【図５】第１通信例に係る通信システムの動作例を示すシーケンス図
【図６】第１通信例に係る通信システムを説明するための構成図
【図７】第１通信例に係る通信システムの動作例を示すシーケンス図
【図８】比較例に係る通信システムの動作を示すシーケンス図
【図９】他の実施形態における通信システムを説明するための模式図
【発明を実施するための形態】
【００１０】
以下、適宜図面を参照しながら、実施形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。尚、添付図面及び以下の説明は、当業者が本開示を十分に理解するために提供されるものであり、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【００１１】
（本開示の一形態を得るに至った経緯）
ＭＰＴＣＰに従って通信する通信装置において、複数の通信インタフェースの全てにグローバルＩＰアドレスが割り当てられている場合、通信装置は、通信先としての他の通信装置へ、グローバルＩＰアドレスを通知できる。そのため、他の通信装置が主導して、通信装置との間でＭＰＴＣＰのサブフローを確立できる。
【００１２】
一方、通信装置が有するＩＰアドレスがローカルＩＰアドレスである場合、通信装置と他の通信装置との間に設置されたＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）サーバにより、このローカルＩＰアドレスがグローバルＩＰアドレスに変換される。そして、通信装置は、変換されたグローバルＩＰアドレスを用いて他の通信装置へデータを送信する。
【００１３】
特許文献１の通信装置は、自身が有する利用可能なＩＰアドレスを他の通信装置に送信するが、自身が有するＩＰアドレスがローカルＩＰアドレスである場合、ローカルＩＰアドレスに対応するグローバルＩＰアドレスをＮＡＴサーバへ問合せる機能を有しない。そのため、通信装置は、通知可能なＩＰアドレスがローカルＩＰアドレスとなり、グローバルＩＰアドレスを他の通信装置に通知することができず、他の通信装置は、通知されたローカルＩＰアドレスからグローバルＩＰアドレスの情報を認識できない。従って、他の通信装置は、通信装置との間で自主的にＭＰＴＣＰのサブフローを確立できず、ＭＰＴＣＰのサブフローの確立に係る精度が低下することがある。
【００１４】
（第１の実施形態）
［構成等］
図１は、第１の実施形態における通信システム１０の構成例を示す模式図である。通信システム１０は、複数の通信装置１００（１００Ａ，１００Ｂ，・・・）を有する。複数の通信装置１００は、ネットワークＮＴを介して接続される。通信装置１００は、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、スマートフォン、携帯電話、サーバ、基地局装置、中継器、カメラ、ロボットを含む。中継器は、例えば、ＡＰ（Ａｃｃｅｓｓ  Ｐｏｉｎｔ）、ゲートウェイ装置、を含む。ロボットは、例えば警備用のロボットである。
【００１５】
通信システム１０では、各通信装置１００は、ＭＰＴＣＰを用いて、データ通信する。
【００１６】
ネットワークＮＴは、無線ネットワークを含んでも有線ネットワークを含んでもよい。また、ネットワークＮＴは、専用ネットワークを含んでも公衆ネットワークを含んでもよい。ネットワークＮＴは、インターネット、イントラネット、セルラーネットワーク、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、などを含む。
【００１７】
通信システム１０では、複数の通信装置１００は、ネットワークＮＴを介して、所定の通信方式で、ＭＰＴＣＰに従ってデータ通信する。通信装置１００は、音声データ、画像データ、制御データ、等を通信する。複数の通信装置１００は、複数の通信方式で通信可能である。
【００１８】
通信方式は、例えば、有線ＬＡＮ通信、無線ＬＡＮ通信、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）通信、ＤＥＣＴ（Ｄｉｇｉｔａｌ  Ｅｎｈａｎｃｅｄ  Ｃｏｒｄｌｅｓｓ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、ＬＴＥ−Ａｄｖａｎｃｅｄ、ミリ波通信、セルラー通信、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信、の方式を含む。
【００１９】
図２は、通信装置１００の構成例を示すブロック図である。通信装置１００は、メインＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）１１０、ＳＤＲＡＭ１２０、フラッシュメモリ１３０、ディスプレイ１４０、電源コントローラ１５０、複数の通信インタフェース１６０、バッテリ１８０、及びＤＣ電源コネクタ１９０を備える。
【００２０】
複数の通信インタフェース１６０は、例えば、２つの通信インタフェース１６０ａ，１６０ｂを含んでもよいし、３つの通信インタフェース１６０ａ，１６０ｂ，１６０ｃを含んでもよいし、４つ以上の通信インタフェースを含んでもよい。
【００２１】
メインＳｏＣ１１０は、半導体チップに各種機能を実現する構成部を集積する集積回路であり、ＣＰＵ１１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＢＣＵ（Ｂｕｓ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１１２、及びネットワークコントローラ１１３を含む。
【００２２】
ＣＰＵ１１１は、ＳＤＲＡＭ１２０やフラッシュメモリ１３０と協働して、各種処理や制御を行う。具体的には、ＣＰＵ１１１は、ＳＤＲＡＭ１２０やフラッシュメモリ１３０に保持されたプログラムを実行することで、通信装置１００が有する各機能を実現する。このプログラムは、例えば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ミドルウェア、アプリケーション、を含む。
【００２３】
ＢＣＵ１１２は、ＳＤＲＡＭ１２０やフラッシュメモリ１３０と協働して、通信装置１００における各種バスのデータ送受を制御する。
【００２４】
ネットワークコントローラ１１３は、複数の通信インタフェース１６０及びネットワークコントローラ１１３に接続される。ネットワークコントローラ１１３は、各通信インタフェース１６０を介して接続されるネットワークＮＴとの間の通信を制御する。また、ネットワークコントローラ１１３は、ＣＰＵ１１１と協働として、ＭＰＴＣＰに係る通信の制御を行う。
【００２５】
バス１１５は、ＣＰＵ１１１、ＢＣＵ１１２、ネットワークコントローラ１１３、及びディスプレイ１４０を含む各構成部がデータを交換するための経路である。
【００２６】
バス１１６は、ＣＰＵ１１１、ＢＣＵ１１２、ＳＤＲＡＭ１２０、及びフラッシュメモリ１３０を含む各構成部がデータを交換するための経路である。
【００２７】
ＳＤＲＡＭ１２０は、各種データを保持する一次記憶装置の一例である。
【００２８】
フラッシュメモリ１３０は、各種データやプログラムを保持する二次記憶装置の一例である。フラッシュメモリ１３０は、例えば、各通信インタフェース１６０を識別する識別情報と、各通信インタフェース１６０に割り当てられたＩＰアドレス（グローバルＩＰアドレス又はローカルＩＰアドレス）の情報と、を対応付けて保持する。
【００２９】
尚、ＳＤＲＡＭ１２０、フラッシュメモリ１３０以外のメモリや記憶媒体が備えられてもよい。例えば、通信装置１００が、各種ＲＡＭ、各種ＲＯＭ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、を備えてもよい。
【００３０】
ディスプレイ１４０は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）又は有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイを含み、各種データを表示する。
【００３１】
電源コントローラ１５０は、バッテリ１８０及びＤＣ電源コネクタ１９０に接続され、電源電力を制御する。例えば、電源コントローラ１５０は、メインＳｏＣ１１０へ供給される電力として、バッテリ１８０からの電力又はＤＣ電源コネクタ１９からの電力のいずれかを選択する。
【００３２】
通信インタフェース１６０ａは、ネットワークコントローラ１１３の制御により、第１の通信方式（例えばＬＴＥ通信）に従って、他の通信装置との間でデータ通信する。通信インタフェース１６０ａには、ＩＰアドレスとして、例えばグローバルＩＰアドレスが割り当てられる。尚、インタフェースは、例えばポートに相当する。
【００３３】
通信インタフェース１６０ｂは、ネットワークコントローラ１１３の制御により、第１の通信方式と異なる第２の通信方式（例えば無線ＬＡＮ通信）に従って、他の通信装置との間でデータ通信する。通信インタフェース１６０ａには、ＩＰアドレスとして、例えばローカルＩＰアドレスが割り当てられる。
【００３４】
通信インタフェース１６０ｃは、ネットワークコントローラ１１３の制御により、第１の通信方式及び第２の通信方式と異なる第３の通信方式に従って、他の通信装置との間でデータ通信する。通信インタフェース１６０ａには、ＩＰアドレスとして、例えばローカルＩＰアドレスが割り当てられる。
【００３５】
バッテリ１８０は、リチウムイオン電池等の二次電池を含み、電源コントローラ１５０の制御により、メインＳｏＣ１１０に対して電力供給する。
【００３６】
ＤＣ電源コネクタ１９０は、外部のＤＣ電源に接続可能であり、電源コントローラ１５０の制御により、メインＳｏＣ１１０に対して電力供給する。また、ＤＣ電源コネクタ１９０は、電源コントローラ１５０の制御により、バッテリ１８０へ電力を供給し、バッテリ１８０を充電してもよい。
【００３７】
尚、通信システム１０に含まれる複数の通信装置１００のうち、少なくとも１つの通信装置が、複数の通信方式に対応する複数の通信インタフェース１６０を備えていればよい。つまり、通信システム１０に、単一の通信インタフェース１６０を備える通信装置１００が含まれていてもよい。
【００３８】
［動作等］
次に、通信システム１０の動作について説明する。尚、自装置としての通信装置１００を通信装置１００Ａと称することもある。また、自装置の通信相手としての通信装置１００を他の通信装置１００Ｂと称することもある。
【００３９】
図３は、通信装置１００の動作例を示すフローチャートである。
【００４０】
まず、ＣＰＵ１１１は、他の通信装置１００Ｂに送信すべき通信データ（例えば音声データ、画像データ、制御データ）が存在するか否かを判定する（Ｓ１０１）。通信データが存在しない場合、Ｓ１０１の処理を繰り返す。
【００４１】
他の通信装置１００Ｂに送信すべき通信データが存在する場合、ＣＰＵ１１１は、自装置としての通信装置１００が有する複数の通信インタフェース１６０のそれぞれのＩＰアドレス（グローバルＩＰアドレス又はローカルＩＰアドレス）の情報を、フラッシュメモリ１３０から取得する（Ｓ１０２）。
【００４２】
ＣＰＵ１１１は、取得されたＩＰアドレスの情報に、ローカルＩＰアドレスが存在するか否かを判定する（Ｓ１０３）。
【００４３】
Ｓ１０３においてローカルＩＰアドレスが存在する場合、ネットワークコントローラ１１３は、ローカルＩＰアドレスが割り当てられた通信インタフェース１６０（例えば通信インタフェース１６０ｂ）から、ＮＡＴサーバ２００を介して、ＭＰＴＣＰのセッションを確立するための制御データを他の通信装置１００Ｂへ送信する（Ｓ１０４）。この場合、通信インタフェース１６０ｂに割り当てられたローカルＩＰアドレスは、ＮＡＴサーバ２００でグローバルＩＰアドレスに変換され、グローバルＩＰアドレスを用いて他の通信装置１００Ｂへ制御データが送信される。
【００４４】
Ｓ１０４によりセッションが確立されると、ネットワークコントローラ１１３は、通信インタフェース１６０ｂを介して、通信データの通信を開始する（Ｓ１０５）。
【００４５】
ＣＰＵ１１１は、取得されたＩＰアドレスの情報に、他にローカルＩＰアドレスが存在するか否かを判定する（Ｓ１０６）。
【００４６】
Ｓ１０６において他にローカルＩＰアドレスが存在する場合、ネットワークコントローラ１１３は、このローカルＩＰアドレスが割り当てられた通信インタフェース１６０（例えば通信インタフェース１６０ｃ）と他の通信装置１００Ｂとの間で、ＪＯＩＮメッセージを通信する（Ｓ１０７）。
【００４７】
Ｓ１０７では、通信装置１００のローカルＩＰアドレスが割り当てられた通信インタフェース１６０ｃから他の通信装置１００ＢへＪＯＩＮメッセージを送信してもよいし、他の通信装置１００Ｂから通信装置１００の通信インタフェース１６０ｃへＪＯＩＮメッセージを送信してもよい。そして、Ｓ１０６の処理に再度進む。
【００４８】
尚、ＪＯＩＮメッセージが正常に通信されると、通信装置１００と他の通信装置１００Ｂとの間でＭＰＴＣＰのサブフローが確立される。通信装置１００と他の通信装置１００とは、確立されたＭＰＴＣＰのサブフローを介して、通信可能となる。
【００４９】
一方、Ｓ１０３においてローカルＩＰアドレスが存在しない場合、全ての通信インタフェース１６０のアドレスがグローバルＩＰアドレスであることを意味する。ネットワークコントローラ１１３は、グローバルＩＰアドレスが割り当てられた通信インタフェース１６０（例えば通信インタフェース１６０ａ）から、セッションを確立するための制御データを送信する（Ｓ１０８）。
【００５０】
Ｓ１０８によりセッションが確立されると、ネットワークコントローラ１１３は、通信インタフェース１６０ａを介して、通信データの通信を開始する（Ｓ１０９）。
【００５１】
Ｓ１０９の処理後、又はＳ１０６において他にローカルＩＰアドレスが存在しない場合、ネットワークコントローラ１１３は、他にグローバルＩＰアドレスが存在するか否かを判定する（Ｓ１１０）。
【００５２】
Ｓ１１０において他にグローバルＩＰアドレスが存在する場合、ネットワークコントローラ１１３は、このグローバルＩＰアドレスが割り当てられた通信インタフェース１６０と他の通信装置１００Ｂとの間で、ＪＯＩＮメッセージを通信する（Ｓ１１１）。
【００５３】
Ｓ１１１では、通信装置１００のグローバルＩＰアドレスが割り当てられた通信インタフェース１６０から他の通信装置１００ＢへＪＯＩＮメッセージを送信してもよいし、他の通信装置１００Ｂから通信装置１００のグローバルＩＰアドレスが割り当てられた通信インタフェース１６０へＪＯＩＮメッセージを送信してもよい。そして、Ｓ１１０の処理に再度進む。
【００５４】
Ｓ１１０において他にグローバルＩＰアドレスが存在しない場合、各通信インタフェース１６０に係るＩＰアドレスの情報が他の通信装置１００Ｂへ通知済みであることを意味する。ＣＰＵ１１１は、ＭＰＴＣＰのセッションを終了するか否かを判定する（Ｓ１１２）。
【００５５】
例えば、他の通信装置１００Ｂに送信すべき通信データが残存する場合、セッション確立を継続するので、ＣＰＵ１１１は、セッションを終了しないと判定する。例えば、他の通信装置１００Ｂに送信すべき通信データについて全て通信済みとなった場合、ＣＰＵ１１１は、セッションを終了すると判定し、確立したＭＰＴＣＰセッションを終了する。
【００５６】
次に、通信システム１０による具体的なＭＰＴＣＰ通信について説明する。ここでは、第１通信例及び第２通信例を示す。
【００５７】
［第１通信例］
図４は、第１通信例に係る通信システム１０を説明するための構成図である。第１通信例では、通信装置１００Ａが２つの通信インタフェース１６０（例えば通信インタフェース１６０ａ、通信インタフェース１６０ｂ）を備え、他の通信装置１００Ｂが１つの通信インタフェースを備える。通信装置１００Ａの通信インタフェース１６０ｂには、ローカルＩＰアドレスが割り当てられ、通信装置１００Ａの通信インタフェース１６０ａには、グローバルＩＰアドレスが割り当てられている。通信装置１００Ａと他の通信装置１００Ｂとは、インターネットＮＴ１を介して接続される。
【００５８】
通信装置１００ＡとインターネットＮＴ１との間には、ＮＡＴサーバ２００が配置される。ＮＡＴサーバ２００は、通信装置１００Ａが用いるローカルＩＰアドレスとグローバルＩＰアドレスとを変換する。また、ＮＡＴサーバ２００は、このグローバルＩＰアドレスとローカルＩＰアドレスとの関連付けの情報を有する変換テーブルをメモリ（不図示）に保持する。
【００５９】
通信装置１００Ａでは、ＣＰＵ１１１は、２つの通信インタフェース１６０に割り当てられたＩＰアドレスがグローバルＩＰアドレスであるかローカルＩＰアドレスであるかを判定する。２つのＩＰアドレスのうち、ローカルＩＰアドレスが存在する場合、ローカルＩＰアドレスが割り当てられた通信インタフェース１６０を用いて、通信装置１００Ａと通信装置１００Ｂとの間のセッション確立を行い、第１のサブフローを確立する。
【００６０】
通信装置１００Ａは、最初に接続された通信インタフェース１６０を用いて通信データの通信を行うとともに、未接続の通信インタフェース１６０を用いてＪＯＩＮメッセージを他の通信装置１００Ａへ送信又は受信する。ＪＯＩＮメッセージによるセッションへのＪＯＩＮが成功すると、通信装置１００Ａの２つの通信インタフェース１６０と他の通信装置１００Ｂの１つの通信インタフェース１６０との間で、第２のサブフローが追加される。これにより、通信装置１００Ａ及び他の通信装置１００Ｂは、第１のサブフローと第２のサブフローとを介して、同時に通信データを通信可能となる。
【００６１】
このような複数のサブフローを含むセッションが確立された状態で、通信装置１００Ａの２つの通信インタフェース１６０ａ，１６０ｂのうちいずれかの通信インタフェース１６０ａ又は１６０ｂと他の通信装置１００Ｂの１つの通信インタフェース１６０との間でのサブフローが切断された場合でも、他方のサブフローは継続可能である。これは、他の通信装置１００Ｂが、切断されていないサブフローに係る通信装置１００Ａの通信インタフェース１６０に係るグローバルＩＰアドレスを認識可能であるためである。この通信装置１００Ａの通信インタフェース１６０に係るグローバルＩＰアドレスは、通信インタフェース１６０に割り当てられたグローバルＩＰアドレスであってもよいし、通信インタフェース１６０に割り当てられたローカルＩＰアドレスに対応するグローバルＩＰアドレスであってもよい。従って、サブフローが残存することで、確立されたＭＰＴＣＰに係るセッションは継続される。
【００６２】
図５は、第１通信例に係る通信システム１０の動作例を示すシーケンス図である。図５では、通信インタフェース１６０ａがグローバルＩＰアドレスを用いて通信し、通信インタフェース１６０ｂがローカルＩＰアドレスを用いて通信することを想定する。
【００６３】
図５では、通信装置１００Ａの通信インタフェース１６０ａが「インタフェース１」と記載され、通信装置１００Ａの通信インタフェース１６０ｂが「インタフェース２」と記載され、他の通信装置１００Ｂの通信インタフェース１６０が「他インタフェース」と記載されている。
【００６４】
通信システム１０では、ＭＰＴＣＰのセッション確立に際し、まず、通信装置１００Ａの通信インタフェース１６０ｂは、他の通信装置１００Ｂの通信インタフェース１６０へ、ＮＡＴサーバ２００を介してＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを送信する（Ｔ１０１）。
【００６５】
ＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケットは、同期パケット（ＳＹＮ）とＭＰＴＣＰのセッションを確立するためのパケット（ＭＰ＿ＣＡＰＡＢＬＥ）とを含む。尚、「ＭＰ」とは、ＭＰＴＣＰに係ることを意味する。
【００６６】
通信装置１００Ｂの通信インタフェース１６０は、ＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを受信すると、通信装置１００Ａの通信インタフェース１６０ｂへ、ＮＡＴ２００を介してＳＹＮ＋ＡＣＫ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを送信する（Ｔ１０２）。
【００６７】
ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＣＡＰＡＢＬＥパケットは、同期パケット（ＳＹＮ）と承認パケット（ＡＣＫ）とセッションを確立するためのパケット（ＭＰ＿ＣＡＰＡＢＬＥ）とを含む。
【００６８】
通信装置１００Ａの通信インタフェース１６０ｂは、ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを受信すると、他の通信装置１００Ｂの通信インタフェース１６０へ、ＮＡＴサーバ２００を介してＡＣＫ＋ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳパケットを送信する（Ｔ１０３）。
【００６９】
ＡＣＫ＋ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳパケットは、承認パケット（ＡＣＫ）とＩＰアドレスを通知するためのパケット（ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳ）とを含む。尚、ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳのパケットは、他の通信インタフェース１６０（ここでは通信インタフェース１６０ａ）に割り当てられたＩＰアドレス（グローバルＩＰアドレス）の情報、を含む。
【００７０】
通信装置１００Ｂの通信インタフェース１６０がＡＣＫ＋ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳパケットを受信すると、通信装置１００Ａと通信装置１００Ｂとの間でＭＰＴＣＰのセッションが確立される。そして、通信装置１００Ａの通信インタフェース１６０ｂと他の通信装置１００Ｂの通信インタフェース１６０との間でサブフローＳＦ１１が確立される。ネットワークコントローラ１１３は、ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳのパケットに含まれる通信装置１００Ａの通信インタフェース１６０ａのグローバルＩＰアドレスの情報を、フラッシュメモリ１３０に保持させる。
【００７１】
通信装置１００Ａの通信インタフェース１６０ｂ及び通信装置１００Ｂの通信インタフェース１６０は、確立されたサブフローＳＦ１１を介して通信データを通信する。例えば、通信装置１００Ａの通信インタフェース１６０ｂは、サブフローＳＦ１１を介して、通信データ（ｄａｔａ）を送信する（Ｔ１０４）。他の通信装置１００Ｂの通信インタフェース１６０は、サブフローＳＦ１１を介して通信データを受信し、サブフローＳＦ１１を介して、通信データに対するＡＣＫデータを送信する（Ｔ１０５）。
【００７２】
通信装置１００Ａの通信インタフェース１６０ａは、他の通信装置１００Ｂの通信インタフェース１６０へ、グローバルアドレスを用いてＳＹＮ＋ＭＰ＿ＪＯＩＮパケットを送信する（Ｔ１０６）。ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットは、同期パケット（ＳＹＮ）とサブフローを追加するためのパケット（ＭＰ＿ＪＯＩＮ）とを含む。
【００７３】
他の通信装置１００Ｂの通信インタフェース１６０は、ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットを受信すると、通信装置１００Ａの通信インタフェース１６０ａへ、グローバルアドレスを用いてＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを送信する（Ｔ１０７）。ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットは、同期パケット（ＳＹＮ）と承認パケット（ＡＣＫ）とサブフローを追加するためのパケット（ＭＰ＿ＪＯＩＮ）とを含む。
【００７４】
通信装置１００Ａの通信インタフェース１６０ａは、ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを受信すると、他の通信装置１００Ｂの通信インタフェース１６０へ、ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを送信する（Ｔ１０８）。ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットは、承認パケット（ＡＣＫ）とサブフローを追加するためのパケット（ＭＰ＿ＪＯＩＮ）とを含む。
【００７５】
通信装置１００Ｂの通信インタフェース１６０がＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを受信すると、通信装置１００Ａの通信インタフェース１６０ａと他の通信装置１００Ｂの通信インタフェース１６０との間でサブフローＳＦ１２が確立される。よって、通信装置１００Ａと他の通信装置１００Ｂとの間に確立されたセッションのサブフローは、サブフローＳＦ１１，ＳＦ１２の２つとなる。通信装置１００Ａの通信インタフェース１６０ａ及び通信装置１００Ｂの通信インタフェース１６０は、確立されたサブフローＳＦ１２を介して通信データを通信する。
【００７６】
例えば、通信装置１００Ａの通信インタフェース１６０ａは、サブフローＳＦ１２を介して、通信データ（ｄａｔａ）を送信する（Ｔ１０９）。他の通信装置１００Ｂの通信インタフェース１６０は、サブフローＳＦ１２を介して通信データを受信し、サブフローＳＦ１２を介して、通信データに対するＡＣＫデータを送信する（Ｔ１１０）。尚、サブフローＳＦ１１，ＳＦ１２は共存可能であるので、通信システム１０は、複数のサブフローＳＦ１１，ＳＦ１２を用いて通信データを通信できる。
【００７７】
このような第１通信例によれば、通信システム１０では、通信装置１００Ａが、ローカルＩＰアドレスが割り当てられた通信インタフェース１６０ｂから他の通信装置１００Ｂへ接続する。続いて、通信装置１００Ａは、グローバルＩＰアドレスが割り当てられた通信インタフェース１６０ａと他の通信装置１００Ｂの通信インタフェース１６０との間で、セッションのサブフローＳＦ１２を新たに確立する。これにより、通信装置１００Ａは、他の通信装置１００Ｂとの間で、複数の通信インタフェース１６０を用いて異なる通信方式で通信データを通信できる。
【００７８】
尚、Ｔ１０６では、ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットが、通信装置１００Ａから他の通信装置１００Ｂへ送信されることを例示したが、他の通信装置１００Ｂから通信装置１００Ａへ送信されてもよい。この場合、他の通信装置１００Ｂの通信インタフェース１６０は、フラッシュメモリ１３０を参照し、ＡＤＤ＿ＡＤＲＲＥＳＳのパケットにより通知された通信装置１００Ａの通信インタフェース１６０ａのグローバルＩＰアドレス宛に、ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットを送信してもよい。
【００７９】
尚、Ｔ１０６のように、ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットが通信装置１００Ａから他の通信装置１００Ｂへ送信される場合、他の通信装置１００Ｂが通信装置１００Ａの通信インタフェース１６０ａのグローバルＩＰアドレスを予め認識する必要がないので、ＡＤＤ＿ＡＤＲＲＥＳＳのパケットの送信が省略されてもよい。つまり、Ｔ１０３の通信が省略されてもよい。この場合でも、通信装置１００Ａにより、他の通信装置１００ＢからのＭＰ＿ＣＡＰＡＢＬＥのパケットに対してＡＣＫデータが応答されれば、ＭＰＴＣＰのセッションは確立される。
【００８０】
［第２通信例］
図６は、第２通信例に係る通信システム１０を説明するための構成図である。第２通信例では、通信装置１００Ａが３つの通信インタフェース１６０（例えば通信インタフェース１６０ａ，１６０ｂ，１６０ｃ）を備え、他の通信装置１００Ｂが１つの通信インタフェース１６０を備える。３つの通信インタフェース１６０ａ〜１６０ｃのうち、通信インタフェース１６０ｂ，１６０ｃには、ローカルＩＰアドレスが割り当てられ、通信インタフェース１６０ａには、グローバルＩＰアドレスが割り当てられている。通信装置１００Ａと他の通信装置１００Ｂとは、インターネットＮＴ１を介して接続される。
【００８１】
通信装置１００ＡとインターネットＮＴ１との間には、通信インタフェース１６０ｂが用いる通信経路において、ＮＡＴサーバ２００Ｂが配置される。通信装置１００ＡとインターネットＮＴ１との間には、通信インタフェース１６０ｃが用いる通信経路において、ＮＡＴサーバ２００Ｃが配置される。
【００８２】
ＮＡＴサーバ２００Ｂは、通信装置１００Ａの通信インタフェース１６０ｂが用いるグローバルＩＰアドレスとローカルＩＰアドレスとを変換する。ＮＡＴサーバ２００Ｃは、通信装置１００Ａの通信インタフェース１６０ｃが用いるグローバルＩＰアドレスとローカルＩＰアドレスとを変換する。また、ＮＡＴサーバ２００Ｂ，２００Ｃは、このグローバルＩＰアドレスとローカルＩＰアドレスとの関連付けの情報を有する変換テーブルをメモリ（不図示）に保持する。
【００８３】
通信装置１００Ａでは、ＣＰＵ１１１は、３つの通信インタフェース１６０ａ〜１６０ｃに割り当てられたＩＰアドレスが、それぞれグローバルＩＰアドレスであるかローカルＩＰアドレスであるかを判定する。３つのＩＰアドレスのうち、ローカルＩＰアドレスが存在する場合、ローカルＩＰアドレスが割り当てられた通信インタフェース１６０を用いて、通信装置１００Ａと通信装置１００Ｂとの間のセッション確立を行い、第１のサブフローを確立する。
【００８４】
通信装置１００Ａは、最初に接続された通信インタフェース１６０を用いて通信データの通信を行うとともに、未接続の２つの通信インタフェース１６０を用いてＪＯＩＮメッセージを他の通信装置１００Ａへ送信又は受信する。ＪＯＩＮメッセージによるセッションへのＪＯＩＮが成功すると、通信装置１００Ａの３つの通信インタフェース１６０ａ〜１６０ｃと他の通信装置１００Ｂの１つの通信インタフェース１６０との間で、第２のサブフロー、第３のサブフローが追加される。これにより、これにより、通信装置１００Ａ及び他の通信装置１００Ｂは、第１〜第３のサブフローを介して、同時に通信データを通信可能となる。尚、２つのＪＯＩＮメッセージの通信は、ローカルＩＰアドレスを用いたＪＯＩＮメッセージの通信が、グローバルＩＰアドレスを用いたＪＯＩＮメッセージの通信よりも先に実施される。
【００８５】
このような複数のサブフローを含むセッションが確立された状態で、通信装置１００Ａの３つの通信インタフェース１６０ａ〜１６０ｃのうちいずれかの通信インタフェース１６０ａ，１６０ｂ，又は１６０ｃと他の通信装置１００Ｂの１つの通信インタフェース１６０との間でのサブフローが切断された場合でも、残り２つのサブフローは継続可能である。これは、他の通信装置１００Ｂが、切断されていない２つのサブフローに係る通信装置１００Ａの通信インタフェース１６０に係るグローバルＩＰアドレスを認識可能であるためである。この通信装置１００Ａの通信インタフェース１６０に係るグローバルＩＰアドレスは、通信インタフェース１６０に割り当てられたグローバルＩＰアドレスであってもよいし、通信インタフェース１６０に割り当てられたローカルＩＰアドレスに対応するグローバルＩＰアドレスであってもよい。従って、確立されたＭＰＴＣＰに係るセッションは継続される。
【００８６】
図７は、第２通信例に係る通信システム１０の動作例を示すシーケンス図である。ここでは、通信インタフェース１６０ａがグローバルＩＰアドレスを用いて通信し、通信インタフェース１６０ｂ，１６０ｃがローカルＩＰアドレスを用いて通信することを想定する。
【００８７】
図７では、通信装置１００Ａの通信インタフェース１６０ａが「インタフェース１」と記載され、通信装置１００Ａの通信インタフェース１６０ｂが「インタフェース２」と記載され、通信装置１００Ａの通信インタフェース１６０ｃが「インタフェース３」と記載され、他の通信装置１００Ｂの通信インタフェース１６０が「他インタフェース」と記載されている。また、ＮＡＴサーバ２００Ｂが「ＮＡＴ１」と記載され、ＮＡＴサーバ２００Ｃが「ＮＡＴ２」と記載されている。
【００８８】
通信システム１０では、ＭＰＴＣＰのセッション確立に際し、まず、通信装置１００Ａの通信インタフェース１６０ｂは、他の通信装置１００Ｂの通信インタフェース１６０へ、ＮＡＴサーバ２００Ｂを介してＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを送信する（Ｔ２０１）。
【００８９】
通信装置１００Ｂの通信インタフェース１６０は、ＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを受信すると、通信装置１００Ａの通信インタフェース１６０ｂへ、ＮＡＴ２００Ｂを介してＳＹＮ＋ＡＣＫ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを送信する（Ｔ２０２）。
【００９０】
通信装置１００Ａの通信インタフェース１６０ｂは、ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを受信すると、他の通信装置１００Ｂの通信インタフェース１６０へ、ＮＡＴサーバ２００Ｂを介してＡＣＫ＋ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳパケットを送信する（Ｔ２０３）。
【００９１】
ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳのパケットは、例えば、他の通信インタフェース（例えば通信インタフェース１６０ａ）に割り当てられたグローバルＩＰアドレスの情報を含む。尚、例えば通信インタフェース１６０ｃのＩＰアドレスのようなローカルＩＰＰアドレスの情報は、ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳのパケットに含まれなくてもよい。
【００９２】
通信装置１００Ｂの通信インタフェース１６０がＡＣＫ＋ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳパケットを受信すると、通信装置１００Ａと通信装置１００Ｂとの間でセッションが確立される。そして、通信装置１００Ａの通信インタフェース１６０ｂと他の通信装置１００Ｂの通信インタフェース１６０との間でサブフローＳＦ２１が確立される。ネットワークコントローラ１１３は、ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳのパケットに含まれる通信装置１００Ａの通信インタフェース１６０ａのグローバルＩＰアドレスの情報を、フラッシュメモリ１３０に保持させる。
【００９３】
通信装置１００Ａの通信インタフェース１６０ｂ及び通信装置１００Ｂの通信インタフェース１６０は、確立されたサブフローＳＦ２１を介して通信データを通信する。例えば、通信装置１００Ａの通信インタフェース１６０ｂは、サブフローＳＦ２１を介して、通信データ（ｄａｔａ）を送信する（Ｔ２０４）。他の通信装置１００Ｂの通信インタフェース１６０は、サブフローＳＦ２１を介して通信データを受信し、サブフローＳＦ２１を介して、通信データに対するＡＣＫデータを送信する（Ｔ２０５）。
【００９４】
通信装置１００Ａの通信インタフェース１６０ｃは、他の通信装置１００Ｂの通信インタフェース１６０へ、ＮＡＴサーバ２００Ｃを介してＳＹＮ＋ＭＰ＿ＪＯＩＮパケットを送信する（Ｔ２０６）。
【００９５】
他の通信装置１００Ｂの通信インタフェース１６０は、ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットを受信し、通信装置１００Ａの通信インタフェース１６０ｃへ、ＮＡＴサーバ２００Ｃを介してＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを送信する（Ｔ２０７）。
【００９６】
通信装置１００Ａの通信インタフェース１６０ｃは、ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを受信すると、他の通信装置１００Ｂの通信インタフェース１６０へ、ＮＡＴ２０Ｃを介してＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを送信する（Ｔ２０８）。
【００９７】
通信装置１００Ｂの通信インタフェース１６０がＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを受信すると、通信装置１００Ａの通信インタフェース１６０ｃと他の通信装置１００Ｂの通信インタフェース１６０との間でサブフローＳＦ２２が確立される。通信装置１００Ａの通信インタフェース１６０ｃ及び通信装置１００Ｂの通信インタフェース１６０は、確立されたサブフローＳＦ２２を介して通信データを通信する。
【００９８】
例えば、通信装置１００Ａの通信インタフェース１６０ｃは、サブフローＳＦ２２を介して、通信データ（ｄａｔａ）を送信する（Ｔ２０９）。他の通信装置１００Ｂの通信インタフェース１６０は、サブフローＳＦ２２を介して通信データを受信し、サブフローＳＦ２２を介して、通信データに対するＡＣＫデータを送信する（Ｔ２１０）。
【００９９】
通信装置１００Ａの通信インタフェース１６０ａは、他の通信装置１００Ｂの通信インタフェース１６０へ、グローバルアドレスを用いてＳＹＮ＋ＭＰ＿ＪＯＩＮパケットを送信する（Ｔ２１１）。
【０１００】
他の通信装置１００Ｂの通信インタフェース１６０は、ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットを受信し、通信装置１００Ａの通信インタフェース１６０ａへ、グローバルアドレスを用いてＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを送信する（Ｔ２１２）。
【０１０１】
通信装置１００Ａの通信インタフェース１６０ａは、ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを受信すると、他の通信装置１００Ｂの通信インタフェース１６０へ、ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを送信する（Ｔ２１３）。
【０１０２】
通信装置１００Ｂの通信インタフェース１６０がＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを受信すると、通信装置１００Ａの通信インタフェース１６０ａと他の通信装置１００Ｂの通信インタフェース１６０との間でサブフローＳＦ２３が確立される。よって、通信装置１００Ａと他の通信装置１００Ｂとの間に確立されたセッションのサブフローは、サブフローＳＦ２１，ＳＦ２２，ＳＦ２３の３つとなる。通信装置１００Ａの通信インタフェース１６０ａ及び通信装置１００Ｂの通信インタフェース１６０は、確立されたサブフローＳＦ２３を介して通信データを通信する。
【０１０３】
例えば、通信装置１００Ａの通信インタフェース１６０ａは、サブフローＳＦ２３を介して、通信データ（ｄａｔａ）を送信する（Ｔ２１４）。他の通信装置１００Ｂの通信インタフェース１６０は、サブフローＳＦ２３を介して通信データを受信し、サブフローＳＦ２３を介して、通信データに対するＡＣＫデータを送信する（Ｔ２１５）。尚、サブフローＳＦ２１，ＳＦ２２，ＳＦ２３は共存可能であるので、通信システム１０は、複数のサブフローＳＦ２１，ＳＦ２２，ＳＦ２３を用いて通信データを通信できる。
【０１０４】
このような第２通信例によれば、通信システム１０では、通信装置１００Ａが、ローカルＩＰアドレスが割り当てられた通信インタフェース１６０ｂから他の通信装置１００Ｂへ接続する。続いて、通信装置１００Ａは、他のローカルＩＰアドレスが割り当てられた通信インタフェース１６０ｃと他の通信装置１００Ｂの通信インタフェース１６０との間で、セッションのサブフローを新たに確立する。続いて、通信装置１００Ａは、グローバルＩＰアドレスが割り当てられた通信インタフェース１６０ａと他の通信装置１００Ｂの通信インタフェース１６０との間で、セッションのサブフローを新たに確立する。これにより、通信装置１００Ａは、他の通信装置１００Ｂとの間で、複数の通信インタフェース１６０を用いて異なる通信方式で通信データを通信できる。
【０１０５】
尚、Ｔ２１１では、通信インタフェース１６０ａを介するＳＹＮ＋ＭＰ＿ＪＯＩＮパケットが、通信装置１００Ａから他の通信装置１００Ｂへ送信されることを例示したが、他の通信装置１００Ｂから通信装置１００Ａへ送信されてもよい。この場合、他の通信装置１００Ｂの通信インタフェース１６０は、フラッシュメモリ１３０を参照し、ＡＤＤ＿ＡＤＲＲＥＳＳのパケットにより通知された通信装置１００Ａの通信インタフェース１６０ａのグローバルＩＰアドレス宛に、ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットを送信してもよい。
【０１０６】
尚、Ｔ２１１のように、ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットが通信装置１００Ａから他の通信装置１００Ｂへ送信される場合、他の通信装置１００Ｂが通信装置１００Ａの通信インタフェース１６０ａのグローバルＩＰアドレスを予め認識する必要がないので、ＡＤＤ＿ＡＤＲＲＥＳＳのパケットの送信が省略されてもよい。つまり、Ｔ１０３の通信が省略されてもよい。この場合でも、通信装置１００Ａにより、他の通信装置１００ＢからのＭＰ＿ＣＡＰＡＢＬＥのパケットに対してＡＣＫデータが応答されれば、ＭＰＴＣＰのセッションは確立される。
【０１０７】
一方、Ｔ２０６では、通信インタフェース１６０ｃを介するＳＹＮ＋ＭＰ＿ＪＯＩＮパケットは、通信装置１００Ａから他の通信装置１００Ｂへ送信される必要がある。ＡＤＤ＿ＡＤＲＲＥＳＳのパケットにより通信装置１００Ａの通信インタフェース１６０ｃのローカルＩＰアドレスが通知されても、他の通信装置１００Ｂから通信装置へローカルＩＰアドレスを用いてアクセスできないためである。
【０１０８】
尚、図７では、通信インタフェース１６０ｃを用いたサブフローＳＦ２２が通信インタフェース１６０ａを用いたサブフローＳＦ２３よりも前に確立されているが、このサブフローの確立順序は逆でもよい。最初に確立された通信インタフェース１６０ｂを用いたサブフローＳＦ２１により、通信インタフェース１６０ａに割り当てられたグローバルＩＰアドレスを通知可能だからである。
【０１０９】
［通信優先順位の設定］
次に、第２通信例のようにローカルＩＰアドレスを複数用いてＭＰＴＣＰ通信する場合の通信の優先順位について説明する。
【０１１０】
ここでの通信装置１００Ａによる通信優先順位は、各通信インタフェース１６０が他の通信装置１００Ｂに対するセッションやサブフローを確立するための制御データを送信する順序を示す。セッションを確立するための制御データは、例えば、ＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを含む。サブフローを確立するための制御データは、例えば、ＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケット、ＳＹＮ＋ＭＰ＿ＪＯＩＮパケットを含む。
【０１１１】
ＣＰＵ１１１は、例えば、通信インタフェース１６０の種別を基に、通信優先順位を設定してもよい。例えば、グローバルＩＰアドレスを用いない通信インタフェース１６０を用いる通信の場合、有線ＬＡＮ通信、無線ＬＡＮ通信、セルラー通信、の順に、通信優先順位を高く設定する。設定された通信優先順位の情報は、フラッシュメモリ１３０に保持される。ＣＰＵ１１１は、フラッシュメモリ１３０に保持された通信優先順位の情報を基に、通信優先順位の高い通信インタフェース１６０から順に、制御データを送信する。
【０１１２】
ＣＰＵ１１１は、例えば、各通信インタフェース１６０を介した各サブフローの帯域の太さを基に、通信優先順位を決定してもよい。ＣＰＵ１１１は、各サブフローの帯域が太い順に、通信優先順位を高く設定してもよい。例えば、ＣＰＵ１１１は、有線ＬＡＮ通信、無線ＬＡＮ通信、セルラー通信（例えばＬＴＥ通信）の順に、通信優先順位を高くしてもよい。
【０１１３】
ＣＰＵ１１１は、各サブフローの帯域を、公知の帯域推定方法により推定してもよい。また、ＣＰＵ１１１は、ＰＩＮＧを送信して遅延時間の情報を取得してもよい。ＣＰＵ１１１は、遅延時間が短い程、通信優先順位を高く設定してもよい。また、ＣＰＵ１１１は、帯域推定パケットを用いて、サブフローの帯域を推定してもよい。
【０１１４】
通信装置１００Ａは、通信優先順位を基に、通信優先順位に対応する通信方式の通信インタフェース１６０を用いて通信データを通信することで、通信を高速化できる。また、ＭＰＴＣＰに従って、帯域が太いサブフローでは通信データのデータ量を多くし、帯域が細いサブフローでは通信データのデータ量を小さくすることで、通信を高速化できる。ＣＰＵ１１１は、通信データが到着すべき順序が変化しないように、通信データを各サブフローに振り分けてもよい。例えば、通信インタフェース１６０は、ネットワークコントローラ１１３の制御により、高速性を要する画像データを太い帯域のサブフローで送信し、高速性を要しない制御データを細い帯域のサブフローで送信してもよい。
【０１１５】
尚、上記ではローカルＩＰアドレスが複数存在する場合のローカルＩＰアドレスを用いた通信優先順位について説明したが、グローバルＩＰアドレスが複数存在する場合のグローバルＩＰアドレスを用いた通信優先順位について適用してもよい。但し、ローカルＩＰアドレスを用いる通信インタフェースによる通信（ローカル通信）とグローバルＩＰアドレスを用いる通信インタフェースによる通信（グローバル通信）とでは、ローカル通信が優先される。
【０１１６】
尚、複数の通信インタフェース１６０の通信優先順位を設けずに、任意の通信インタフェース１６０がランダムに選択されてもよい。
【０１１７】
［再送制御］
次に、ＭＰＴＣＰ通信における再送制御について説明する。
【０１１８】
複数のサブフローを含むセッションが確立された後、任意のサブフローが切断されたとする。サブフローの切断には、例えば、無線ＬＡＮ通信の電波状況の悪化が考えられる。任意のサブフローが切断された際、このサブフローを用いて通信データが通信されていると、この通信データは他の通信装置１００Ｂへ到達しない。通信装置１００は、サブフローが切断されていることを、通信データに対するＡＣＫデータを所定時間内に受信しないことにより、認識できる。この場合、ネットワークコントローラ１１３は、切断されたサブフローの代わりに、継続して確立中のサブフローを介して通信データを通信する。よって、通信装置１００Ａは、切断されたサブフローを介した通信を、他のサブフローを用いて補助できる。
【０１１９】
［効果等］
通信装置１００Ａは、ＮＡＴサーバ２００に対するグローバルＩＰアドレスの問合せ機能を有していないため、通信装置１００Ａの通信インタフェース１６０ｂ，１６０ｃに割り当てられたローカルＩＰアドレスに対応するグローバルＩＰアドレスを識別できない。そのため、通信装置１００Ａは、ＡＤＤ＿ＡＤＤＲＥＳＳにローカルＩＰアドレスに対応するグローバルＩＰアドレスを含めて通知できず、ＡＤＤ＿ＡＤＤＲＥＳＳにローカルＩＰアドレスを含めて通知することになる。よって、他の通信装置１００Ｂは、通信装置１００Ａの通信インタフェース１６０ｂ，１６０ｃのローカルＩＰアドレスの情報を取得することになる。他の通信装置１００Ｂは、ローカルＩＰアドレスでは、ネットワークＮＴ上の送信先を特定できず、通信データを送信できない状態となる。
【０１２０】
図８は、このような他装置としての通信装置から自装置としての通信装置へ通信データを通信できない比較例を示す図である。図８では、自装置のグローバルＩＰアドレスを用いた通信インタフェース１が、ＭＰ＿ＣＡＰＡＢＬＥのパケットによりＭＰＴＣＰのセッション確立を開始し、ＭＰ＿ＡＤＤ＿ＡＤＲＥＳＳのパケットにより、通信インタフェース２のローカルＩＰアドレスを通知している。この場合、他装置は、ＭＰ＿ＪＯＩＮのパケットにより、通知されたローカルＩＰアドレスを用いて自装置へアクセスし、サブフローの追加を試みても、パケットが自装置へ到達せず、通信が不成立となる。
【０１２１】
これに対し、本実施形態の通信装置１００は、ＭＰＴＣＰに従って他の通信装置１００と通信する。通信装置１００は、通信を制御するプロセッサと、ＮＡＴサーバ２００によりグローバルＩＰアドレスに変換されるローカルＩＰアドレスを用いて、第１の通信方式で通信する通信インタフェース１６０ｂと、グローバルＩＰアドレスを用いて、第２の通信方式で通信する通信インタフェース１６０ａと、を備える。通信インタフェース１６０ｂは、プロセッサによる制御により、ＭＰＴＣＰのセッション及びサブフローを確立するためのＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケットやＳＹＮ＋ＡＣＫ＋ＭＰ＿ＣＡＰＡＢＬＥパケットを通信する。通信インタフェース１６０ａは、プロセッサによる制御により、ＭＰ＿ＣＡＰＡＢＬＥパケットの通信後、ＭＰＴＣＰのサブフローを追加するためのＳＹＮ＋ＭＰ＿ＪＯＩＮパケットやＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを通信する。
【０１２２】
尚、通信装置１００は、通信装置１００Ａ又は通信装置１００Ｂである。他の通信装置１００は、通信装置１００Ｂ又は通信装置１００Ａである。ＮＡＴサーバ２００は、アドレス変換サーバの一例である。ＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケット、ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＣＡＰＡＢＬＥパケットは、第１の制御データの一例である。ＳＹＮ＋ＭＰ＿ＪＯＩＮパケット、ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットは、第２の制御データの一例である。プロセッサは、例えばＣＰＵ１１１又はネットワークコントローラ１１３を含む。通信インタフェース１６０ｂは、第１の通信インタフェースの一例である。通信インタフェース１６０ａは、第２の通信インタフェースの一例である。
【０１２３】
これにより、通信装置１００は、複数の通信インタフェース１６０の一部にローカルＩＰアドレスが割り当てられている場合でも、ローカルＩＰアドレスが割り当てられた通信インタフェース１６０と他の通信装置１００との間のセッションやサブフローを確立するための制御データを通信（送信又は受信）する。よって、他の通信装置１００は、通信装置１００の通信インタフェース１６０ｂに割り当てられたローカルＩＰアドレスに対応するグローバルＩＰアドレスを認識できる。
【０１２４】
よって、通信システム１０は、通信装置１００と他の通信装置１００との間でＭＰＴＣＰセッションを確立し、複数のサブフローを確立できる。複数のサブフローが確立されることで、通信システム１０は、通信を高速化できる。
【０１２５】
また、通信システム１０では、いずれかのサブフローが通信途中で切断されても、他のサブフローは維持されるので、ＭＰＴＣＰセッションを継続でき、通信を継続できる。例えば、通信装置１００は、通信インタフェース１６０ｂによる無線ＬＡＮ通信の電波が劣悪となり通信インタフェース１６０ｂを介するサブフローが切断されても、通信インタフェース１６０ａを介するＬＴＥ通信を行うサブフローを継続できる。
【０１２６】
また、通信装置１００は、ローカルＩＰアドレスを用いて通信する複数の通信インタフェース１６０ｂ，１６０ｃを備えてもよい。これらの通信インタフェース１６０のうち、ＭＰ＿ＣＡＰＡＢＬＥパケットを通信していない通信インタフェース１６０ｃは、プロセッサによる制御により、ＭＰ＿ＣＡＰＡＢＬＥパケットの通信後、ＭＰＴＣＰのサブフローを追加するためのＳＹＮ＋ＭＰ＿ＪＯＩＮパケットやＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを通信してもよい。ここでのＳＹＮ＋ＭＰ＿ＪＯＩＮパケット、ＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットは、第３の制御データの一例である。通信インタフェース１６０ｃは、第３の通信インタフェースの一例である。
【０１２７】
ローカルＩＰアドレスを複数用いてＭＰＴＣＰ通信する場合、制御データ（例えばＳＹＮ＋ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳパケット）によりローカルＩＰアドレスに対応するグローバルＩＰアドレスを通知することは困難である。これに対し、通信装置１００は、２つ目以降のローカルＩＰアドレスを用いて他の通信装置１００にサブフローの追加を依頼することで、他の通信装置１００は、通信装置１００のローカルＩＰアドレスから変換されたグローバルＩＰアドレスを認識できる。よって、仮に他のサブフローが切断されて２つ目以降のローカルＩＰアドレスを用いたサブフローが接続維持され、このサブフローを用いて、通信装置１００及び他の通信装置１００は通信できる。
【０１２８】
また、プロセッサは、通信インタフェース１６０ｂ，１６０ｃの通信方式を基に、ＭＰＴＣＰのサブフローの確立順序を決定してもよい。通信インタフェース１６０ｂ，１６０ｃは、決定された確立順序で、ＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケットやＳＹＮ＋ＡＣＫ＋ＭＰ＿ＣＡＰＡＢＬＥパケット又はＳＹＮ＋ＭＰ＿ＪＯＩＮパケットやＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを通信してもよい。
【０１２９】
これにより、通信装置１００は、通信方式の特性に合わせて、ローカルＩＰアドレスを用いたＭＰＴＣＰのサブフローを確立できる。例えば、通信装置１００は、有線通信を用いたサブフローを優先的に確立することで、通信接続の安定性を向上でき、安定したＭＰＴＣＰ通信を迅速に実現できる。また、通信装置１００は、ＬＡＮ通信を用いたサブフローを優先的に確立することで、外部ネットワーク（例えばインターネットＮＴ１）を用いた通信のトラフィック量を低減でき、ネットワークを有効活用できる。
【０１３０】
また、プロセッサは、通信インタフェース１６０ｂ，１６０ｃによる通信に使用される通信帯域を基に、ＭＰＴＣＰのサブフローの確立順序を決定してもよい。通信インタフェース１６０ｂ，１６０ｃは、決定された確立順序で、ＳＹＮ＋ＭＰ＿ＣＡＰＡＢＬＥパケットやＳＹＮ＋ＡＣＫ＋ＭＰ＿ＣＡＰＡＢＬＥパケット又はＳＹＮ＋ＭＰ＿ＪＯＩＮパケットやＳＹＮ＋ＡＣＫ＋ＭＰ＿ＪＯＩＮパケットを通信してもよい。
【０１３１】
これにより、通信装置１００は、ローカルＩＰアドレスを用いてＭＰＴＣＰの高速通信が可能なサブフローを確立できる。よって、通信装置１００は、迅速に通信可能な帯域を広く確保でき、ＭＰＴＣＰ通信の一層の高速化を実現できる。
【０１３２】
また、通信インタフェース１６０ａ〜１６０ｃは、確立された複数のサブフローのうち、一部のサブフローが切断された場合、他のサブフローを介して、通信データを再送してもよい。
【０１３３】
これにより、通信装置１００は、ローカルＩＰアドレス又はグローバルＩＰアドレスを用いたＭＰＴＣＰのいずれかのサブフローが切断された場合でも、切断されたサブフローが送るべき通信データを再送できる。よって、通信装置１００は、ＭＰＴＣＰ通信の信頼性を向上できる。
【０１３４】
また、通信インタフェース１６０ｂは、通信インタフェース１６０ａのグローバルＩＰアドレスの情報を含むＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳパケットを送信してもよい。ＭＰ＿ＡＤＤ＿ＡＤＤＲＥＳＳパケットは、第４の制御データの一例である。
【０１３５】
これにより、他の通信装置１００が通信装置１００のグローバルＩＰアドレスの情報を認識可能であるので、他の通信装置１００から通信装置１００に対して、グローバルＩＰアドレスを用いた新たなサブフローを追加で確立できる。
【０１３６】
（他の実施形態）
以上のように、本開示における技術の例示として、第１の実施形態を説明した。しかし、本開示における技術は、これに限定されず、変更、置き換え、付加、省略などを行った実施形態にも適用できる。
【０１３７】
第１の実施形態では、通信装置１００Ａが複数の通信インタフェース１６０を備え、他の通信装置１００Ｂが１つの通信インタフェース１６０を備えることを例示したが、他の通信装置１００Ｂが複数の通信インタフェース１６０を備えてもよい。
【０１３８】
図９は、他の実施形態における通信システムを説明するための模式図である。図９では、通信装置１００Ａは、ｍ個（ｍは任意の数）の通信インタフェース１６０を備え、他の通信装置１００Ｂは、ｎ個（ｎは任意の数）の通信インタフェース１６０を備える。この場合、ｍ×ｎ個のサブフローが確立され得る。
【０１３９】
また、図９では、他の通信装置１００Ｂは、全ての通信インタフェース１６０においてグローバルＩＰアドレスが用いられることを例示しているが、これらの通信インタフェース１６０の一部がローカルＩＰアドレスを用いてもよい。この場合、インターネットＮＴ１と他の通信装置１００Ｂとの間には、通信装置１００Ａ側と同様に、ＮＡＴサーバ２００が配置される。
【０１４０】
第１の実施形態では、ＮＡＴサーバ２００を用いてローカルＩＰアドレスとグローバルＩＰアドレスとを変換することを例示したが、他の方法でアドレス変換してもよい。例えば、ＮＡＴサーバ２００の代わりに、アドレス情報に加えてポート情報を加味したＮＡＰＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ）サーバを用いてアドレス変換してもよい。ＮＡＰＴサーバを用いることで、１つのグローバルＩＰアドレスと複数のローカルＩＰアドレスとを変換できる。
【０１４１】
第１の実施形態では、通信システム１０が基地局を含む無線通信システムでもよく、他のシステム（例えばコンテンツ配信システムや監視システム）でもよい。無線通信システムである場合、通信装置１００Ａが例えば携帯端末であり、通信装置１００Ｂが例えば基地局装置である。コンテンツ配信システムである場合、通信装置１００Ａが例えば携帯端末であり、通信装置１００Ｂが例えばコンテンツ配信サーバである。監視システムである場合、通信装置１００Ａが例えばカメラ装置であり、通信装置１００Ｂが例えば監視用のＰＣである。
【０１４２】
第１の実施形態では、通信装置１００が２つ又は３つの通信方式に従って通信可能であることを例示したが、４つ以上の通信方式に従って通信可能でもよい。
【０１４３】
第１の実施形態では、ＣＰＵ１１１、ネットワークコントローラ１１３を一例として説明したが、ＣＰＵ１１１、ネットワークコントローラ１１３以外のプロセッサでもよい。プロセッサは、物理的にどのように構成されてもよい。また、プログラム可能なプロセッサを用いれば、プログラムの変更により処理内容を変更できるので、プロセッサの設計の自由度を高めることができる。プロセッサは、１つの半導体チップで構成してもよいし、物理的に複数の半導体チップで構成してもよい。複数の半導体チップで構成する場合、第１の実施形態の各制御をそれぞれ別の半導体チップで実現してもよい。この場合、それらの複数の半導体チップで１つのプロセッサを構成すると考えることができる。また、プロセッサは、半導体チップと別の機能を有する部材（コンデンサ等）で構成してもよい。また、プロセッサが有する機能とそれ以外の機能とを実現するように、１つの半導体チップを構成してもよい。
【０１４４】
第１の実施形態では、図２において通信装置１００の構成を示したが、各構成は、ハードウェアにより実現されてもよいし、ソフトウェアにより実現されてもよい。
【産業上の利用可能性】
【０１４５】
本開示は、複数の通信インタフェースの一部にローカルＩＰアドレスが割り当てられている場合でも、ローカルＩＰアドレスが割り当てられた通信インタフェースを用いてＭＰＴＣＰのサブフローを高精度に確立できる通信装置及び通信方法等に有用である。
【符号の説明】
【０１４６】
１０  通信システム
１００，１００Ａ，１００Ｂ  通信装置
１１０  メインＳｏＣ
１１１  ＣＰＵ
１１２  ＢＣＵ
１１３  ネットワークコントローラ
１２０  ＳＤＲＡＭ
１３０  フラッシュメモリ
１４０  ディスプレイ
１５０  電源コントローラ
１６０，１６０ａ，１６０ｂ，１６０ｃ  通信インタフェース
１８０  バッテリ
１９０  ＤＣ電源コネクタ
２００，２００Ｂ，２００Ｃ  ＮＡＴサーバ
ＮＴ  ネットワーク
ＮＴ１  インターネット
【図１】
2018042199.tif 000003
【図２】
2018042199.tif 000004
【図３】
2018042199.tif 000005
【図４】
2018042199.tif 000006
【図５】
2018042199.tif 000007
【図６】
2018042199.tif 000008
【図７】
2018042199.tif 000009
【図８】
2018042199.tif 000010
【図９】
2018042199.tif 000011