(57)【要約】デリバリノードは、第１の無線端末と第２の無線端末とに交互に接続する。第１の無線端末は、第１のアプリケーションから、第２の無線端末の仮想ＩＰアドレスを宛先ＩＰアドレスとする第１のパケットが仮想ネットワークインタフェースに出力されると、カプセル化ヘッダで第１のパケットをカプセル化してデリバリノードへ送信する。デリバリノードは、受信したカプセル化パケットをデカプセル化して得た第１のパケットを、再びカプセル化して第２の無線端末へ送信する。第２の無線端末は、受信したカプセル化パケットをデカプセル化して得た第１のパケットを、仮想ネットワークインタフェースを通じて第２のアプリケーションに送信する。
2017119219.tif 000002
【特許請求の範囲】
【請求項１】
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末と、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属する第２の無線端末と、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末とを含む通信システムであって、
前記第１の無線端末は、
通信を行う第１のアプリケーションプログラムを実行する第１のアプリケーション実行部と、
前記第１の物理ＩＰアドレスを有する第１の物理ネットワークインタフェースと、
前記第１の仮想ＩＰアドレスを有する第１の仮想ネットワークインタフェースと、
第１の制御部と、
を有し、
前記第２の無線端末は、
通信を行う第２のアプリケーションプログラムを実行する第２のアプリケーション実行部と、
前記第２の物理ＩＰアドレスを有する第２の物理ネットワークインタフェースと、
前記第２の仮想ＩＰアドレスを有する第２の仮想ネットワークインタフェースと、
第２の制御部と、
を有し、
前記第３の無線端末は、
前記第３の物理ＩＰアドレスを有する第３の物理ネットワークインタフェースと、
第３の制御部と、
を有し、
前記第１の制御部は、前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部から、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、前記第１の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記第１の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信するように構成され、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第１のカプセル化ヘッダを受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化ヘッダをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第２の無線端末へ送信するように構成され、
前記第２の制御部は、前記第２の物理ネットワークインタフェースを通じて前記第２のカプセル化パケットを受信すると、前記第２のカプセル化パケットをデカプセル化して得た前記第１のパケットを前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部へ送信するように構成されている、
通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
前記第２の制御部は、前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部から、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットを受信すると、前記第２の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセル化ヘッダで前記第２のパケットをカプセル化した第３のカプセル化パケットを、前記第２の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信するように構成され、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第３のカプセル化パケットを受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のカプセル化ヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第１の無線端末へ送信するように構成され、
前記第１の制御部は、前記第１の物理ネットワークインタフェースを通じて前記第４のカプセル化パケットを受信すると、前記第４のカプセル化パケットをデカプセル化して得た前記第２のパケットを前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部へ送信するように構成されている、
通信システム。
【請求項３】
請求項１または２に記載の通信システムにおいて、
前記第３の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
通信システム
【請求項４】
請求項１乃至３の何れかに記載の通信システムにおいて、
前記第３の制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
通信システム。
【請求項５】
請求項１乃至４の何れかに記載の通信システムにおいて、
前記第３の制御部は、前記第１のパケットと一緒に送られてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
通信システム。
【請求項６】
請求項１乃至５の何れかに記載の通信システムにおいて、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
通信システム。
【請求項７】
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末と、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属する第２の無線端末と、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末とを含み、前記第１の無線端末は、通信を行う第１のアプリケーションプログラムを実行する第１のアプリケーション実行部と前記第１の物理ＩＰアドレスを有する第１の物理ネットワークインタフェースと前記第１の仮想ＩＰアドレスを有する第１の仮想ネットワークインタフェースと第１の制御部とを有し、前記第２の無線端末は、通信を行う第２のアプリケーションプログラムを実行する第２のアプリケーション実行部と前記第２の物理ＩＰアドレスを有する第２の物理ネットワークインタフェースと前記第２の仮想ＩＰアドレスを有する第２の仮想ネットワークインタフェースと第２の制御部とを有し、前記第３の無線端末は、前記第３の物理ＩＰアドレスを有する第３の物理ネットワークインタフェースと、第３の制御部とを有する、通信システムが実行する通信方法であって、
前記第１の制御部は、前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部から、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、前記第１の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記第１の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信し、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第１のカプセル化パケットを受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第２の無線端末へ送信し、
前記第２の制御部は、前記第２の物理ネットワークインタフェースを通じて前記第２のカプセル化パケットを受信すると、前記第２のカプセル化パケットをデカプセル化した前記第１のパケットを、前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部へ送信する、
通信方法。
【請求項８】
請求項７に記載の通信方法において、
前記第２の制御部は、前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部から、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットを受信すると、前記第２の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセルヘッダで、前記第２のパケットをカプセル化した第３のカプセル化パケットを、前記第２の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信し、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第３のカプセル化パケットを受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のカプセル化ヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第１の無線端末へ送信し、
前記第１の制御部は、前記第１の物理ネットワークインタフェースを通じて前記第４のカプセル化パケットを受信すると、前記第４のカプセル化パケットをデカプセル化して得た前記第２のパケットを、前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部へ送信する、
通信方法。
【請求項９】
請求項７または８に記載の通信方法において、
前記第３の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御する、
通信方法。
【請求項１０】
請求項７乃至９の何れかに記載の通信方法において、
前記第３の制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御する、
通信方法。
【請求項１１】
請求項７乃至１０の何れかに記載の通信方法において、
前記第３の制御部は、前記第１のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御する、
通信方法。
【請求項１２】
請求項７乃至１１の何れかに記載の通信方法において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
通信方法。
【請求項１３】
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末であって、
通信を行う第１のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第１の物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第１の仮想ＩＰアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末における前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末が、前記第１の無線端末に接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末へ送信する制御部と、
を備える無線端末。
【請求項１４】
請求項１３に記載の無線端末であって、
前記制御部は、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスとする第２のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末から受信すると、前記第２のカプセル化パケットをデカプセル化して得た前記第２のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信するように構成されている、
無線端末。
【請求項１５】
請求項１３または１４に記載の無線端末において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
通信システム。
【請求項１６】
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、通信を行う第１のアプリケーションプログラムが動作する第１の無線端末が属する第１のグループから離脱して、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末が属する第２のグループに接続するスイッチングと、前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを、交互に繰り返す第３の無線端末であって、
第３の物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末から受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末へ送信する制御部と、
を備える無線端末。
【請求項１７】
請求項１６に記載の無線端末において、
前記制御部は、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第３のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末から受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末へ送信するように構成されている、
無線端末。
【請求項１８】
請求項１６または１７に記載の無線端末において、
前記制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
無線端末。
【請求項１９】
請求項１６乃至１８の何れかに記載の無線端末において、
前記制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末。
【請求項２０】
請求項１６乃至１９の何れかに記載の無線端末において、
前記制御部は、前記第１のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末。
【請求項２１】
請求項１６乃至２０の何れかに記載の無線端末において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
無線端末。
【請求項２２】
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属し、通信を行う第１のアプリケーションプログラムを実行するアプリケーション実行部と前記第１の物理ＩＰアドレスを有する物理ネットワークインタフェースと前記第１の仮想ＩＰアドレスを有する仮想ネットワークインタフェースと制御部とを有する第１の無線端末が実行する通信制御方法であって、
前記制御部は、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末における前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末が、前記第１の無線端末に接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末へ送信する、
無線端末の通信制御方法。
【請求項２３】
請求項２２に記載の無線端末の通信制御方法であって、
前記制御部は、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスとする第２のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末から受信すると、前記第２のカプセル化パケットをデカプセル化して得た前記第２のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信する、
無線端末の通信制御方法。
【請求項２４】
請求項２２または２３に記載の無線端末の通信制御方法において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
無縁端末の通信制御方法。
【請求項２５】
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、通信を行う第１のアプリケーションプログラムが動作する第１の無線端末が属する第１のグループから離脱して、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末が属する第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返し、且つ、物理ＩＰアドレスを有する物理ネットワークインタフェースと制御部とを有する第３の無線端末の通信制御方法であって、
前記制御部は、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末から受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末へ送信する、
無線端末の通信制御方法。
【請求項２６】
請求項２５に記載の無線端末の通信制御方法において、
前記制御部は、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第３のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末から受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末へ送信する、
無線端末の通信制御方法。
【請求項２７】
請求項２５または２６に記載の無線端末の通信制御方法において、
前記制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
無線端末の通信制御方法。
【請求項２８】
請求項２５乃至２７の何れかに記載の無線端末の通信制御方法において、
前記制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末の通信制御方法。
【請求項２９】
請求項２５乃至２８の何れかに記載の無線端末の通信制御方法において、
前記制御部は、前記第１のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末の通信制御方法。
【請求項３０】
請求項２５乃至２９の何れかに記載の無線端末の通信制御方法において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
無線端末の通信制御方法。
【請求項３１】
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末を構成するコンピュータを、
通信を行う第１のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第１の物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第１の仮想ＩＰアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末における前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末が、前記第１の無線端末に接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末へ送信する制御部と、
して機能させるためのプログラム。
【請求項３２】
請求項３１に記載のプログラムであって、
前記制御部は、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスとする第２のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末から受信すると、前記第２のカプセル化パケットをデカプセル化して得た前記第２のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信するように構成されている、
プログラム。
【請求項３３】
請求項３１または３２に記載のプログラムにおいて、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
プログラム。
【請求項３４】
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、通信を行う第１のアプリケーションプログラムが動作する第１の無線端末が属する第１のグループから離脱して、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末が属する第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末を構成するコンピュータを、
物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末から受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末へ送信する制御部と、
して機能させるためのプログラム。
【請求項３５】
請求項３４に記載のプログラムにおいて、
前記制御部は、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第３のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末から受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末へ送信するように構成されている、
プログラム。
【請求項３６】
請求項３４または３５に記載のプログラムにおいて、
前記第３の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
プログラム。
【請求項３７】
請求項３４乃至３６の何れかに記載のプログラムにおいて、
前記制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
プログラム。
【請求項３８】
請求項３４乃至３７の何れかに記載のプログラムにおいて、
前記制御部は、前記第１のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
プログラム。
【請求項３９】
請求項３４乃至３８の何れかに記載のプログラムにおいて、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピアツーピア（以下「Ｐ２Ｐ」と記す）で相互に無線接続可能な無線端末（Ｐ２Ｐ端末）、その通信制御方法およびプログラム、通信方法、通信システムに関する。
【背景技術】
【０００２】
近年、広帯域化、セキュリティ強化等の観点から、端末間通信方式としてのＷｉ−Ｆｉ  Ｄｉｒｅｃｔが注目されている。それ以前のＷｉ−Ｆｉネットワークが特定のデバイスをアクセスポイント（ＡＰ）としたインフラストラクチャモードで動作するのに対して、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔに準拠したネットワークでは、特定のデバイスではなく任意のＰ２Ｐ端末がグループオーナ（Ｇｒｏｕｐ  Ｏｗｎｅｒ）となることで、そのグループ内での通信を可能にする（例えば非特許文献１参照）。グループオーナはグループのアクセスポイントとして動作するＰ２Ｐ端末であり、当該グループの親として、他のＰ２Ｐ端末を子（クライアント）とするグループを形成することができる。【０００３】
このように形成されたＰ２Ｐグループ内においては、インターネット等に接続することなく端末間でデータの高速転送が可能となり、特にＷｉ−Ｆｉ  Ｄｉｒｅｃｔでは強固なセキュリティプロトコルがサポートされたことで従来のアドホックモード（ＩＢＳＳ:Ｉｎｄｅｐｅｎｄｅｎｔ  Ｂａｓｉｃ  Ｓｅｒｖｉｃｅ  Ｓｅｔなど）に比べて高いセキュリティを実現することができる。【０００４】
しかしながら、上述した無線Ｐ２Ｐネットワークでは、各グループが独立に形成され動作するために、通信がグループ内に限定される。また、一般に、一つのグループの最大端末数には物理的な上限がある。例えば、上述したＷｉ−Ｆｉ  Ｄｉｒｅｃｔを安価な無線ＬＡＮデバイスを用いて実現する場合、そのグループの台数はデバイスがサポートする上限の５台〜１０台程度に制限される。このようなグループサイズの制限は、メッセージの共有を一つのグループ内の端末だけに限定することとなり、複数のグループを含むより大きなネットワークでの情報共有を阻害する。上述した無線Ｐ２Ｐネットワークでは、たとえば、緊急性を有する災害情報、交通情報、ＳＯＳ信号あるいは音声信号などを局所グループを超えて通知することができない。【０００５】
このような状況に鑑み、デリバリノードを介してグループ間で通信を行う方法が非特許文献２によって提案されている。非特許文献２に記載される通信方法では、第１のグループのグループオーナが第１のグループ内の１つ或いは複数のクライアントノードをデリバリノードに選択し、デリバリノードが第１のグループから離脱して近隣に存在する第２のグループのグループオーナに接続し、第２のグループのグループオーナとの間で情報を転送する。デリバリノードが現在接続しているグループから離脱して他のグループに接続するメカニズムを、“スイッチング”と呼ぶ。デリバリノードが第１のグループと第２のグループとの間でスイッチングを周期的に繰り返すことで、第１のグループと第２のグループのグループオーナは、デリバリノードを介して双方向に情報を伝達することが可能になる。【０００６】
他方、本発明に関連して、以下のような技術が提案されている。【０００７】
特許文献１には、ＴＲＩＬＬプロトコルに基づいて、カプセル化されているパケットを伝送するように構成されているスイッチ上の１つ以上のポートを含むスイッチシステムが提案されている。また、その０１０６段落に、ネットワーク内の一式のＶＭ（仮想マシン）を１つのポートプロファイルと関連させることによって、それらをグループ化することが可能である旨、記載されている。このグループ化は、全てが同じＶＬＡＮに接続されているＶＭをグループ化するものであり、無線Ｐ２Ｐネットワークにおいて形成されるグループとは概念が異なる。【０００８】
特許文献２には、遠隔地に離れて存在するユーザグループ内部での適切な機密情報の共有と通常の広範な情報共有とを両立できる情報共有システムが提案されている。但し、複数グループ間を端末がスイッチするものではない。【０００９】
特許文献３には、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）を構築してホスト間の通信を実現する方法が記載されている。例えば、ＶＰＮを設定したネットワーク間にセキュリティを考慮したトンネル接続を設定する。例えば、ＰＣ（パーソナルコンピュータ）１−ＧＷ（ゲートウェイ）１−ＧＷ２−ＰＣ２の接続構成において、ＰＣ１とＰＣ２でＶＰＮを構成する場合、ＧＷ１−ＧＷ２間をトンネル接続する。そして、仮のＩＰアドレスを用いたＩＰルーティング処理により、ホスト間の通信を実現する。但し、特許文献３には、ＧＷ１−ＧＷ２間に固定的な通信路が存在しない場合のトンネル接続に関する記載はない。【００１０】
特許文献４には、送信端末から連続して送信されてくるデータ量が送信端末に通知した連続受信可能データサイズに近いか否かを判断し、近いと判断された場合に連続受信可能データサイズを、増加可能か否かを判断し、増加可能と判断された場合に連続受信可能データサイズを増加させ、受信中に輻輳が発生したか否かを判断する輻輳検出手段を備え、輻輳が検知された場合に連続受信可能データサイズを小さくして応答確認を返信するデータ通信装置が提案されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特表２０１３−５２６２３４号公報
【特許文献２】再特ＷＯ２００６／０５９６３９号公報
【特許文献３】特開２００８−０９２１７０号公報
【特許文献４】特開２０００−１７４８１２号公報
【非特許文献】
【００１２】
【非特許文献１】Ｗｉ−Ｆｉピアツーピア技術仕様バージョン１．１（Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅ  Ｔｅｃｈｎｉｃａｌ  Ｃｏｍｉｔｔｅｅ  ＰＳＰ  Ｔａｓｋ  Ｇｒｏｕｐ，Ｗｉ−Ｆｉ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ（Ｐ２Ｐ）Ｔｅｃｈｎｉｃａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．１）
【非特許文献２】プラカシュ  チャキ、安田真人、中島一彰、「Ｄｙｎａｍｉｃ  Ｔｏｐｏｌｏｇｙ  Ｒｅｆｏｒｍａｔｉｏｎ  ｆｏｒ  Ｃｏｎｔｅｎｔ  Ｄｉｓｓｅｍｉｎａｔｉｏｎ  ｉｎ  Ｗｉ−Ｆｉ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｎｅｔｗｏｒｋｓ」、電子情報通信学会、２０１５年２月２４日、２０１５年総合大会講演論文集ＢＳ−３−５３
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、デリバリノードは第１のグループと第２のグループとの双方に同時に接続することはできず、接続する場合には何れか一方のグループのみに接続する。このため、デリバリノードが通信路の端点となる。従って、第１のグループに属する無線端末と第２のグループに属する無線端末とは、直接に通信することはできない。このような課題は、特許文献１乃至５および非特許文献１乃至２に記載される技術を組み合わせても解決するのは困難である。【００１４】
本発明の目的は、上述した課題、即ち、デリバリノードを介してグループ間で直接に通信することはできない、という課題を解決する通信システムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明の一実施形態に係る通信システムは、
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末と、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属する第２の無線端末と、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末とを含む通信システムであって、
前記第１の無線端末は、
通信を行う第１のアプリケーションプログラムを実行する第１のアプリケーション実行部と、
前記第１の物理ＩＰアドレスを有する第１の物理ネットワークインタフェースと、
前記第１の仮想ＩＰアドレスを有する第１の仮想ネットワークインタフェースと、
第１の制御部と、
を有し、
前記第２の無線端末は、
通信を行う第２のアプリケーションプログラムを実行する第２のアプリケーション実行部と、
前記第２の物理ＩＰアドレスを有する第２の物理ネットワークインタフェースと、
前記第２の仮想ＩＰアドレスを有する第２の仮想ネットワークインタフェースと、
第２の制御部と、
を有し、
前記第３の無線端末は、
前記第３の物理ＩＰアドレスを有する第３の物理ネットワークインタフェースと、
第３の制御部と、
を有し、
前記第１の制御部は、前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部から、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、前記第１の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記第１の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信するように構成され、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第１のカプセル化ヘッダを受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化ヘッダをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第２の無線端末へ送信するように構成され、
前記第２の制御部は、前記第２の物理ネットワークインタフェースを通じて前記第２のカプセル化パケットを受信すると、前記第２のカプセル化パケットをデカプセル化して得た前記第１のパケットを前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部へ送信するように構成されている。【００１６】
本発明の他の実施形態に係る通信方法は、
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末と、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属する第２の無線端末と、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末とを含み、前記第１の無線端末は、通信を行う第１のアプリケーションプログラムを実行する第１のアプリケーション実行部と前記第１の物理ＩＰアドレスを有する第１の物理ネットワークインタフェースと前記第１の仮想ＩＰアドレスを有する第１の仮想ネットワークインタフェースと第１の制御部とを有し、前記第２の無線端末は、通信を行う第２のアプリケーションプログラムを実行する第２のアプリケーション実行部と前記第２の物理ＩＰアドレスを有する第２の物理ネットワークインタフェースと前記第２の仮想ＩＰアドレスを有する第２の仮想ネットワークインタフェースと第２の制御部とを有し、前記第３の無線端末は、前記第３の物理ＩＰアドレスを有する第３の物理ネットワークインタフェースと、第３の制御部とを有する、通信システムが実行する通信方法であって、
前記第１の制御部は、前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部から、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、前記第１の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記第１の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信し、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第１のカプセル化パケットを受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第２の無線端末へ送信し、
前記第２の制御部は、前記第２の物理ネットワークインタフェースを通じて前記第２のカプセル化パケットを受信すると、前記第２のカプセル化パケットをデカプセル化した前記第１のパケットを、前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部へ送信する。【００１７】
本発明の他の実施形態に係る無線端末は、
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末であって、
通信を行う第１のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第１の物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第１の仮想ＩＰアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末における前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末が、前記第１の無線端末に接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末へ送信する制御部と、
を備える。【００１８】
本発明の他の実施形態に係る無線端末は、
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、通信を行う第１のアプリケーションプログラムが動作する第１の無線端末が属する第１のグループから離脱して、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末が属する第２のグループに接続するスイッチングと、前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを、交互に繰り返す第３の無線端末であって、
第３の物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末から受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末へ送信する制御部と、
を備える。【００１９】
本発明の他の実施形態に係る無線端末の通信制御方法は、
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属し、通信を行う第１のアプリケーションプログラムを実行するアプリケーション実行部と前記第１の物理ＩＰアドレスを有する物理ネットワークインタフェースと前記第１の仮想ＩＰアドレスを有する仮想ネットワークインタフェースと制御部とを有する第１の無線端末が実行する通信制御方法であって、
前記制御部は、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末における前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末が、前記第１の無線端末に接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末へ送信する。【００２０】
本発明の他の実施形態に係る無線端末の通信制御方法は、
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、通信を行う第１のアプリケーションプログラムが動作する第１の無線端末が属する第１のグループから離脱して、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末が属する第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返し、且つ、物理ＩＰアドレスを有する物理ネットワークインタフェースと制御部とを有する第３の無線端末の通信制御方法であって、
前記制御部は、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末から受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末へ送信する。【００２１】
本発明の他の実施形態に係るプログラムは、
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末を構成するコンピュータを、
通信を行う第１のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第１の物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第１の仮想ＩＰアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末における前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末が、前記第１の無線端末に接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末へ送信する制御部と、
して機能させる。【００２２】
本発明の他の実施形態に係るプログラムは、
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、通信を行う第１のアプリケーションプログラムが動作する第１の無線端末が属する第１のグループから離脱して、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末が属する第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末を構成するコンピュータを、
物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末から受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末へ送信する制御部と、
して機能させる。
【発明の効果】
【００２３】
本発明は上述した構成を有するため、デリバリノードを介してグループ間で直接に通信することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態に係る通信システムの全体構成例を示す図である。
【図２】本発明の第１の実施形態に係る一部の無線端末のブロック図である。
【図３】本発明の第１の実施形態に係る無線端末を実現する情報処理装置の構成例を示す図である。
【図４】本発明の第１の実施形態において無線端末で動作するアプリケーションプログラム間でＴＣＰコネクションを確立する手順の一例を示すシーケンスチャートである。
【図５】本発明の第１の実施形態で使用するカプセル化パケットのフォーマットの一例を示す図である。
【図６】本発明の第１の実施形態において無線端末で動作するアプリケーションプログラム間でＴＣＰコネクション確立後にデータを送受信する手順の一例を示すシーケンスチャートである。
【図７】本発明の第１の実施形態において無線端末で動作するアプリケーションプログラム間でＴＣＰコネクションを切断する手順の一例を示すシーケンスチャートである。
【図８】本発明の第１の実施形態においてデリバリノード機能を停止させる手順の一例を示すシーケンスチャートである。
【図９】本発明の第１の実施形態に係る無線端末における制御部の動作の一例を示すフローチャートである。
【図１０】本発明の第１の実施形態において隣接するグループに属する無線端末の情報を収集する動作の説明図である。
【図１１】本発明の第１の実施形態に係る無線端末が保有する無線端末の情報の一例を示す図である。
【図１２】本発明の第１の実施形態に係るデリバリノードの制御部の動作の一例を示すフローチャートである。
【図１３】本発明の第１の実施形態に係るデリバリノードのスイッチング動作を説明するための状態遷移図である。
【図１４】本発明の第１の実施形態に係る通信システムで用いるＷｉ−Ｆｉ  Ｄｉｒｅｃｔの接続フローを示す図である。
【図１５】本発明の第１の実施形態に係る通信システムで用いるＷｉ−Ｆｉ  ＤｉｒｅｃｔのＤＥＶＩＣＥ  ＤＩＳＣＯＶＥＲＹの動作フローを示す図である。
【図１６】本発明の第１の実施形態に係る通信システムで用いるＷｉ−Ｆｉ  Ｄｉｒｅｃｔにおいて既存グループの発見で用いるＤＥＶＩＣＥ  ＤＩＳＣＯＶＥＲＹの動作フローを示す図である。
【図１７】本発明の第１の実施形態に係る通信システムで用いるＷｉ−Ｆｉ  ＤｉｒｅｃｔにおけるＧＯ  ＮＥＧＯＴＩＡＴＩＯＮの動作フローを示す図である。
【図１８】本発明の第１の実施形態に係る通信システムで用いるＷｉ−Ｆｉ  ＤｉｒｅｃｔにおけるＰＲＯＶＩＳＩＯＮ  ＤＩＳＣＯＶＥＲＹの動作フローを示す図である。
【図１９】本発明の第１の実施形態に係る通信システムで用いるＷｉ−Ｆｉ  ＤｉｒｅｃｔにおけるＩＮＶＩＴＡＴＩＯＮの動作フローを示す図である。
【図２０】本発明の第１の実施形態に係る通信システムで用いるＷｉ−Ｆｉ  Ｄｉｒｅｃｔにおけるノードの離脱の動作フローを示す図である。
【図２１】本発明の第２の実施形態に係るデリバリノードのスイッチング動作を説明するための状態遷移図である。
【図２２】本発明の第２の実施形態に係るデリバリノードの制御部の動作の要部の一例を示すフローチャートである。
【図２３】本発明の第２の実施形態において無線端末で動作するアプリケーションプログラム間でＴＣＰコネクションを確立する手順の一例を示すシーケンスチャートである。
【図２４】本発明の第３の実施形態に係るデリバリノードのスイッチング動作を説明するための状態遷移図である。
【図２５】本発明の第３の実施形態で使用するＴＣＰの輻輳ウインドウ情報を有するパケットとそのカプセル化パケットのフォーマットの一例を示す図である。
【図２６】本発明の第３の実施形態に係るデリバリノードの制御部の動作の要部の一例を示すフローチャートである。
【図２７】本発明の第３の実施形態において無線端末で動作するアプリケーションプログラム間でＴＣＰコネクションを確立する手順の一例を示すシーケンスチャートである。
【発明を実施するための形態】
【００２５】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１を参照すると、本発明の第１の実施形態に係る通信システム１００は、複数の無線端末１０１から構成される。各々の無線端末１０１は、例えば、自動車などの車両に搭載された移動無線端末、あるいは歩行者が所持するスマートフォン等の移動無線端末である。各々の無線端末１０１は、ピアツーピアグループ（Ｐ２Ｐグループ）を形成することができる通信方式による無線通信を行うことができる。本実施形態では、上記通信方式は、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔである。但し、本発明はＷｉ−Ｆｉ  Ｄｉｒｅｃｔに限定されず、他の無線端末とピアツーピアグループを形成することができる通信方式であれば適用できる。
【００２６】
図１では、複数の無線端末１０１が２つのピアツーピアグループ（以下、単にグループと記す）Ｇ１、Ｇ２を構成している。グループＧ１は、無線端末１０１−１が親（グループオーナ）となって形成され、無線端末１０１−２〜１０１−４がその子（クライアント）である。またグループＧ２は、無線端末１０１−５がグループオーナとなって形成され、無線端末１０１−６〜１０１−７がそのクライアントである。
【００２７】
グループＧ１に属する無線端末１０１−１〜１０１−４間では、無線端末１０１−１をアクセスポイントにしてＷｉ−Ｆｉ  Ｄｉｒｅｃｔによる通信が行える。またグループＧ２に属する無線端末１０１−５〜１０１−７間では、無線端末１０１−５をアクセスポイントにしてＷｉ−Ｆｉ  Ｄｉｒｅｃｔによる通信が行える。しかし、グループＧ１に属する無線端末１０１−１〜１０１−４とグループＧ２に属する無線端末１０１−５〜１０１−７との間では、グループが相違するのでＷｉ−Ｆｉ  Ｄｉｒｅｃｔによる通信は直接には行えない。そこで、本実施形態では、グループＧ１、Ｇ２の何れかのクライアントがデリバリノードとなり、デリバリノードとなったクライアントが、グループＧ１から離脱してクライアントとしてグループＧ２に接続し、またその逆にグループＧ２から離脱してクライアントとしてグループＧ１に接続する動作を繰り返すことにより、デリバリノードを通じてグループＧ１とグループＧ２との間の間接的な通信を実現する。デリバリノードとなるクライアントは、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔによる通信可能範囲内にグループＧ１およびグループＧ２のグループオーナが存在している無線端末が望ましい。以下では、通信可能範囲内に無線端末１０１−１、１０１−５が存在しているグループＧ１に属するクライアント１０１−４がデリバリノードになる場合を例にして説明する。但し、デリバリノードになるクライアントは、無線端末１０１−４に限定されず、グループＧ１の他のクライアント１０１−２〜１０１−３であってもよいし、グループＧ２のクライアント１０１−６〜１０１−７であってもよい。また、複数のクライアントをデリバリノードにしてもよい。
【００２８】
図２は、通信システム１００を構成する一部の無線端末のブロック図である。図２を参照すると、グループＧ１のグループオーナである無線端末１０１−１は、アプリケーション実行部１１１−１と物理ネットワークインタフェース１１２−１と仮想ネットワークインタフェース１１３−１と制御部１１４−１とを有する。
【００２９】
アプリケーション実行部１１１−１は、ＴＣＰ／ＩＰ通信を行うアプリケーションプログラム１１５−１を実行する機能を有する。アプリケーションプログラム１１５−１は、例えば、緊急性を有する災害情報、交通情報、ＳＯＳ信号などを他の無線端末で動作するアプリケーションプログラムに通信するアプリケーションであってよい。あるいはアプリケーションプログラム１１５−１は、他の無線端末で動作するアプリケーションプログラムとファイル等の情報を共有するアプリケーションプログラムであってよい。あるいはアプリケーションプログラム１１５−１は、他の無線端末で動作するアプリケーションプログラムと音声や映像などのマルチメディア情報を通信するアプリケーションプログラムであってよい。
【００３０】
物理ネットワークインタフェース１１２−１は、物理的な無線アクセスネットワークインタフェースである。この物理ネットワークインタフェース１１２−１には、無線端末１０１−１に割当てられた物理ＩＰアドレスおよびＭＡＣアドレスが設定される。物理ネットワークインタフェース１１２−１は、物理ＮＩＣ（ネットワークインタフェースカード）とも呼ばれる。
【００３１】
仮想ネットワークインタフェース１１３−１は、仮想的なネットワークインタフェースである。この仮想ネットワークインタフェース１１３−１には、無線端末１０１−１に割当てられた仮想ＩＰアドレスが設定される。仮想ネットワークインタフェース１１３−１は、アプリケーション実行部１１１−１から受信したパケットを物理メディアにではなくユーザのアドレス空間に存在する制御部１１４−１に送信する機能を有する。また、仮想ネットワークインタフェース１１３−１は、制御部１１４−１から受信したパケットをあたかも実際の物理メディアから受信したパケットと同様に処理してアプリケーション実行部１１１−１へ送信する機能を有する。このような仮想ネットワークインタフェース１１３−１は、例えば、ＵＮＩＸ系ＯＳでサポートされているＴＡＰデバイスやＴＵＮデバイスを使用して実現することができる。
【００３２】
制御部１１４−１は、仮想ネットワークインタフェース１１３−１を通じてアプリケーション実行部１１１−１からパケットを受信すると、受信したパケットをペイロードとして有し、デリバリノード１０１−４のＩＰアドレスを宛先ＩＰアドレスとする別ヘッダによってカプセル化して物理ネットワークインタフェース１１２−１を通じてデリバリノード１０１−４へ送信する機能を有する。
【００３３】
一般に、図５に示すように、或るパケット１３０をペイロードとし、別ヘッダ１３１でカプセル化して送信することをトンネリングと呼ぶ。またカプセル化に使用する別ヘッダをカプセル化ヘッダと呼ぶ。さらに、パケット１３０とカプセル化ヘッダ１３１とをあわせたものを、カプセル化パケットあるいはカプセル化されたパケットと呼ぶ。
【００３４】
また制御部１１４−１は、物理ネットワークインタフェース１１２−１を通じてデリバリノード１０１−４からカプセル化されたパケットを受信すると、受信したカプセル化パケットからカプセル化ヘッダを除去して、即ちデカプセル化して、仮想ネットワークインタフェース１１３−１を通じてアプリケーション実行部１１１−１に送信する機能を有する。
【００３５】
グループＧ２のグループオーナである無線端末１０１−５は、アプリケーション実行部１１１−５と物理ネットワークインタフェース１１２−５と仮想ネットワークインタフェース１１３−５と制御部１１４−５とアプリケーションプログラム１１５−５とを有する。これらのアプリケーション実行部１１１−５、物理ネットワークインタフェース１１２−５、仮想ネットワークインタフェース１１３−５、制御部１１４−５、およびアプリケーションプログラム１１５−５は、無線端末１０１−１におけるアプリケーション実行部１１１−１、物理ネットワークインタフェース１１２−１、仮想ネットワークインタフェース１１３−１、制御部１１４−１、およびアプリケーションプログラム１１５−１と同様の機能を有する。
【００３６】
デリバリノード１０１−４は、物理ネットワークインタフェース１１２−４と制御部１１６とを有する。物理ネットワークインタフェース１１２−４は、無線端末１０１−１における物理ネットワークインタフェース１１２−１と同様の機能を有する。
【００３７】
制御部１１６は、無線端末１０１−４を無線端末１０１−１のグループから離脱して無線端末１０１−５のグループに接続するスイッチングとその逆に無線端末１０１−４を無線端末１０１−５のグループから離脱して無線端末１０１−１のグループに接続するスイッチングとを行う機能を有する。
【００３８】
また制御部１１６は、物理ネットワークインタフェース１１２−４を通じて無線端末１０１−１からカプセル化されたパケットを受信すると、受信したカプセル化パケットをデカプセル化し、無線端末１０１−５のＩＰアドレスを宛先ＩＰアドレスとするカプセル化ヘッダによって再びカプセル化して物理ネットワークインタフェース１１２−４を通じて無線端末１０１−５へ送信する機能を有する。また制御部１１６は、物理ネットワークインタフェース１１２−４を通じて無線端末１０１−５からカプセル化したパケットを受信すると、受信したカプセル化パケットをデカプセル化し、無線端末１０１−１のＩＰアドレスを宛先ＩＰアドレスとするカプセル化ヘッダによって再びカプセル化して物理ネットワークインタフェース１１２−４を通じて無線端末１０１−１へ送信する機能を有する。
【００３９】
上述したような無線端末１０１は、例えば図３に示すように、１以上のマイクロプロセッサ等の演算処理部１２１と、メモリやハードディスク等の記憶部１２２と、通信モジュール１２３とを有する情報処理装置１２０と、プログラム１２４とで実現することができる。通信モジュール１２３は、無線端末１０１どうしの通信に使用される。例えば通信モジュール１２３は、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔのプロトコルで無線通信を行うモジュールである。プログラム１２４は、情報処理装置１２０の立ち上げ時等に外部のコンピュータ読み取り可能な記録媒体からメモリに読み込まれ、演算処理部１２１の動作を制御することにより、演算処理部１２１上に、アプリケーション実行部１１１、物理ネットワークインタフェース１１２、仮想ネットワークインタフェース１１３、制御部１１４、１１６といった機能的手段を実現する。
【００４０】
次に、図２に示した通信システム１００において、無線端末１０１−１上で動作するアプリケーションプログラム１１５−１と無線端末１０１−５上で動作するアプリケーションプログラム１１５−５とが、トランスポート層のプロトコルにＴＣＰを使用して、直接にＴＣＰ／ＩＰ通信を行う動作について説明する。
【００４１】
図４は、無線端末１０１−４をデリバリノードに選択し、このデリバリノード１０１−４を通じて、無線端末１０１−１上で動作するアプリケーションプログラム１１５−１と無線端末１０１−５上で動作するアプリケーションプログラム１１５−５との間にＴＣＰコネクション（単にコネクションとも称す）を確立する手順の一例を示すシーケンスチャートである。
【００４２】
まず、無線端末１０１−１の制御部１１４−１は、無線端末１０１−４がグループＧ１に接続していなければ、無線端末１０１−４の制御部１１６との間でＷｉ−Ｆｉ  Ｄｉｒｅｃｔに準拠した接続手順を行い、無線端末１０１−４をクライアントとして無線端末１０１−１に接続する（ステップＳ１０１）。無線端末１０１−４がグループＧ１に既に接続している場合は、ステップＳ１０１は省略される。
【００４３】
次に、無線端末１０１−１の制御部１１４−１は、無線端末１０１−４をデリバリノードに選択し、デリバリノード１０１−４に対してデリバリノード指定情報を送信する（ステップＳ１０２）。このデリバリノード指定情報は、例えば、無線端末１０１−１の制御部１１４−１と無線端末１０１−４の制御部１１６との間で物理ネットワークインタフェース１１２−１、１１２−４を通じてＴＣＰ通信あるいはＵＤＰ通信を行うことにより送受信される。
【００４４】
デリバリノード指定情報は、デリバリノードとなるべき無線端末１０１−４を特定する情報（例えばノード識別子など）を含み、更に、スイッチングの対象となる無線端末１０１−１、１０１−５を特定する情報（例えばノード識別子など）、物理ＩＰアドレス、仮想ＩＰアドレス、ＭＡＣアドレス、およびスイッチング条件を含む。スイッチング条件は、本実施形態では、スイッチング時間を含む。スイッチング時間は、スイッチングの対象となる２台の無線端末１０１−１、１０１−５のうちの一方に接続してから切断するまでの時間である。
【００４５】
なお、それぞれの無線端末１０１が予め定められたスイッチング条件を保持しており、そのスイッチング条件を使用する場合、デリバリノード指定情報中のスイッチング条件は省略してよい。また、それぞれの無線端末１０１が、例えば後述する図１１に示すような、無線端末１０１を特定する情報（例えばノード識別子など）に対応付けて、無線端末１０１の物理ＩＰアドレス、仮想ＩＰアドレス、ＭＡＣアドレスを記録するテーブルを有しており、デリバリノード指定情報に含まれているスイッチングの対象となる無線端末１０１−１、１０１−５を特定する情報（例えばノード識別子など）から上記テーブルを参照して、それらの物理ＩＰアドレス、仮想ＩＰアドレス、ＭＡＣアドレスを取得できる場合、デリバリ指定情報中のスイッチングの対象となる無線端末１０１−１、１０１−５の物理ＩＰアドレス、仮想ＩＰアドレス、ＭＡＣアドレスは省略してよい。
【００４６】
無線端末１０１−４の制御部１１６は、デリバリノード指定情報を受信すると、無線端末１０１−４を無線端末１０１−１、１０１−５との間のグループ間通信におけるデリバリノードとして機能させるために、周期的なスイッチングを開始する。具体的には、制御部１１６は、スイッチング対象の一方の無線端末１０１に接続している時間がデリバリノード指定情報で指定されたスイッチング時間に達すると、その接続を切断してスイッチング対象の他方の無線端末１０１に接続する、という動作を周期的に繰り返す。図４におけるステップＳ１０６の切断手順およびステップＳ１０７の接続手順は、デリバリノード指定後に無線端末１０１−４が最初に行ったスイッチングに係る手順を示す。切断手順および切断手順は、切断および接続を行う２つの無線端末の制御部１１６と１１４−１、１１４−５との間でＷｉ−Ｆｉ  Ｄｉｒｅｃｔに準拠した手順で実施される。図４では、それ以降、ステップＳ１１３の切断手順およびステップＳ１１４の接続手順による２回目のスイッチング、ステップＳ１１５の切断手順およびステップＳ１１６の接続手順による３回目のスイッチング、ステップＳ１１８の切断手順およびステップＳ１１９の接続手順による４回目のスイッチング、ステップＳ１２５の切断手順およびステップＳ１２６の接続手順による５回目のスイッチング、ステップＳ１２７の切断手順およびステップＳ１２８の接続手順による６回目のスイッチング、ステップＳ１３０の切断手順およびステップＳ１３１の接続手順による７回のスイッチングが行われている。そして、そのようなスイッチング動作と並行して、コネクション確立に必要なパケットが無線端末１０１−１と無線端末１０１−５との間で以下のようにデリバリノード１０１−１を通じてやりとりされている。
【００４７】
まず、無線端末１０１−１のアプリケーション実行部１１１−１でアプリケーションプログラム１１５−１が実行され、アプリケーション実行部１１１−１からコネクション確立要求パケットが仮想ネットワークインタフェース１１３−１を通じて制御部１１４−１に送信される（ステップＳ１０３、Ｓ１０４）。このコネクション確立要求パケットは、ＴＣＰヘッダの前にＩＰヘッダを付加したものである。ＴＣＰヘッダ中の送信元ポート番号には、アプリケーションプログラム１１５−１を識別するためのポート番号、宛先ポート番号には、アプリケーションプログラム１１５−５を識別するためのポート番号が設定される。またＩＰヘッダ中の送信元ＩＰアドレスには無線端末１０１−１の仮想ＩＰアドレス、宛先ＩＰアドレスには無線端末１０１−５の仮想ＩＰアドレスが設定される。
【００４８】
無線端末１０１−１の制御部１１４−１は、仮想ネットワークインタフェース１１３−１を通じてアプリケーション実行部１１１−１からコネクション確立要求パケットを受信すると、無線端末１０１−１にデリバリノード１０１−４が接続されている期間に、上記受信したコネクション確立要求パケットをカプセル化ヘッダでカプセル化して、物理ネットワークインタフェース１１２−１を通じて無線端末１０１−４へ送信する（ステップＳ１０５）。ステップＳ１０５のトンネリングでは、ＵＤＰヘッダの前にＩＰヘッダを付加したものをカプセル化ヘッダとして使用し、ＩＰヘッダ中の送信元ＩＰアドレスに無線端末１０１−１の物理ＩＰアドレスを設定し、宛先ＩＰアドレスに無線端末１０１−４の物理ＩＰアドレスを設定する。
【００４９】
無線端末１０１−４の制御部１１６は、物理ネットワークインタフェース１１２−４を通じてカプセル化されたパケットを無線端末１０１−１から受信すると、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出し、デリバリノード１０１−４の物理ＩＰアドレスを宛先ＩＰアドレスとするカプセル化ヘッダによってコネクション確立要求パケットを再びカプセル化し、無線端末１０１−４に無線端末１０１−５が接続されている期間に、物理ネットワークインタフェース１１２−４を通じて無線端末１０１−５へ送信する（ステップＳ１０８）。
【００５０】
無線端末１０１−５の制御部１１４−５は、物理ネットワークインタフェース１１２−５を通じて無線端末１０１−４からカプセル化されたパケットを受信すると、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出す。そして、制御部１１４−５は、このコネクション確立要求パケットを、仮想ネットワークインタフェース１１３−５を通じてアプリケーション実行部１１５−５へ送信する（ステップＳ１０９、Ｓ１１０）。
【００５１】
アプリケーション実行部１１５−５は、仮想ネットワークインタフェース１１３−５を通じてコネクション確立要求パケットを受信する。これによって、無線端末１０１−５のアプリケーションプログラム１１５−５は、無線端末１０１−１のアプリケーションプログラム１１５−１からコネクション確立要求が出されたことを知ることができる。
【００５２】
次に、上記コネクション確立要求に対して応答するために、無線端末１０１−５のアプリケーション実行部１１１−５からコネクション確立要求に対する確認応答とコネクション確立要求とを兼ねるパケット（以下、単にコネクション確立要求パケットと称す）が仮想ネットワークインタフェース１１３−５を通じて制御部１１４−５に送信される（ステップＳ１１１、Ｓ１１２）。このコネクション確立要求パケットは、ＴＣＰヘッダの前にＩＰヘッダを付加したものである。ＴＣＰヘッダ中の送信元ポート番号には、アプリケーションプログラム１１５−５を識別するためのポート番号、宛先ポート番号には、アプリケーションプログラム１１５−１を識別するためのポート番号が設定される。またＩＰヘッダ中の送信元ＩＰアドレスには無線端末１０１−５の仮想ＩＰアドレス、宛先ＩＰアドレスには無線端末１０１−１の仮想ＩＰアドレスが設定される。
【００５３】
無線端末１０１−５の制御部１１４−５は、仮想ネットワークインタフェース１１３−５を通じてアプリケーション実行部１１１−５からコネクション確立要求パケットを受信すると、無線端末１０１−５にデリバリノード１０１−４が接続されている期間に、上記受信したコネクション確立要求パケットをカプセル化ヘッダでカプセル化して、物理ネットワークインタフェース１１２−５を通じて無線端末１０１−４へ送信する（ステップＳ１１７）。ステップＳ１１７のトンネリングでは、ＵＤＰヘッダの前にＩＰヘッダを付加したものをカプセル化ヘッダとして使用し、ＩＰヘッダ中の送信元ＩＰアドレスに無線端末１０１−５の物理ＩＰアドレスを設定し、宛先ＩＰアドレスに無線端末１０１−４の物理ＩＰアドレスを設定する。
【００５４】
無線端末１０１−４の制御部１１６は、物理ネットワークインタフェース１１２−４を通じてカプセル化されたパケットを無線端末１０１−５から受信すると、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出し、無線端末１０１−１の物理ＩＰアドレスを宛先ＩＰアドレスとするカプセル化ヘッダによってコネクション確立要求パケットを再びカプセル化し、無線端末１０１−４に無線端末１０１−１が接続されている期間に、物理ネットワークインタフェース１１２−４を通じて無線端末１０１−１へ送信する（ステップＳ１２０）。
【００５５】
無線端末１０１−１の制御部１１４−１は、物理ネットワークインタフェース１１２−１を通じてデリバリノード１０１−４からカプセル化されたパケットを受信すると、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出す。そして、制御部１１４−１は、このコネクション確立要求パケットを、仮想ネットワークインタフェース１１３−１を通じてアプリケーション実行部１１５−１へ送信する（ステップＳ１２１、Ｓ１２２）。
【００５６】
アプリケーション実行部１１５−１は、仮想ネットワークインタフェース１１３−１を通じてコネクション確立要求パケットを受信する。これによって、無線端末１０１−１のアプリケーションプログラム１１５−１は、アプリケーションプログラム１１５−５からの確認応答兼コネクション確立要求を受信することができる。
【００５７】
次に、上記確認応答兼コネクション確立要求に対して応答するために、無線端末１０１−１のアプリケーション実行部１１１−１から確認応答パケットが送信されると、この確認応答パケットは、アプリケーション実行部１１１−１が最初に送信したコネクション確立要求と同様の手順（ステップＳ１０３〜Ｓ１０５、Ｓ１０８〜Ｓ１１０）により、無線端末１０１−５のアプリケーション実行部１１１−５へ送り届けられる（ステップＳ１２３、Ｓ１２４、Ｓ１２９、Ｓ１３２〜Ｓ１３４）。
【００５８】
こうして、無線端末１０１−１上で動作するアプリケーションプログラム１１５−１と無線端末１０１−５上で動作するアプリケーションプログラム１１５−５との間にＴＣＰコネクションが確立する（ステップＳ１３５）。
【００５９】
図６は、ＴＣＰコネクション確立後、無線端末１０１−１のアプリケーションプログラム１１５−１と無線端末１０１−５のアプリケーションプログラム１１５−５との間でデータを送受信する手順の一例を示すシーケンスチャートである。図５に示すように、デリバリノード１０１−４によるスイッチング動作はＴＣＰコネクション確立後も継続して行われており、スイッチング動作と並行して、アプリケーションデータをペイロードに有するパケット（以下、データパケットと称す）が、デリバリノード１０１−１を通じてアプリケーションプログラム１１５−１とアプリケーションプログラム１１５−５との間で授受される。
【００６０】
図６の例では、ＴＣＰコネクション確立後、アプリケーションプログラム１１５−１からアプリケーションプログラム１１５−５へ最初のデータパケットを送信している。アプリケーション実行部１１１−１から仮想ネットワークインタフェース１１３−１を通じて制御部１１４−１にデータパケットを送信するステップＳ１４０、Ｓ１４１、制御部１１４−１からデリバリノード１０１−４の制御部１１６にデータパケットをカプセル化して送信するステップＳ１４２、制御部１１６が受信したカプセル化パケットをデカプセル化し、再びカプセル化して無線端末１０１−５の制御部１１４−５へ送信するステップＳ１４３、制御部１１４−５が受信したカプセル化パケットをデカプセル化して仮想ネットワークインタフェース１１３−５を通じてアプリケーション実行部１１１−５へ送信するステップＳ１４４、Ｓ１５５は、図４のステップＳ１０３〜Ｓ１０５、Ｓ１０８〜Ｓ１１０と比較して、データパケットであるか、コネクション確立要求パケットであるかの違いがあるだけであるため、その詳細な説明は省略する。
【００６１】
ＴＣＰコネクション確立後、アプリケーションプログラム１１５−１から最初のデータパケットを正常に受信したアプリケーションプログラム１１５−５は、そのデータパケットに対する肯定確認応答パケットを送信する。アプリケーション実行部１１１−５から仮想ネットワークインタフェース１１３−５を通じて制御部１１４−５に肯定確認応答パケットを送信するステップＳ１４６、Ｓ１４７、制御部１１４−５からデリバリノード１０１−４の制御部１１６に肯定確認応答パケットをカプセル化して送信するステップＳ１４８、制御部１１６が受信したカプセル化パケットをデカプセル化し、再びカプセル化して無線端末１０１−１の制御部１１４−１へ送信するステップＳ１４９、制御部１１４−１が受信したカプセル化パケットをデカプセル化して仮想ネットワークインタフェース１１３−１を通じてアプリケーション実行部１１１−１へ送信するステップＳ１５０、Ｓ１５１は、図４のステップＳ１１１〜Ｓ１１２、Ｓ１１７、Ｓ１２０〜Ｓ１２２と比較して、肯定確認応答パケットであるか、確認応答兼コネクション確立要求パケットであるかの違いがあるだけであるため、その詳細な説明は省略する。
【００６２】
また図６では、アプリケーションプログラム１１５−５から最初のデータパケットに対する肯定確認応答パケットを受信したアプリケーションプログラム１１１−１は、肯定確認応答を待たずに送れるパケット数あるいはデータ量を大きくし、複数のデータパケットを連続してアプリケーションプログラム１１５−５へ送信している。このときの個々のデータパケットは、ステップＳ１４０〜Ｓ１４５の手順と同様の手順により、アプリケーションプログラム１１１−５に届けられる（ステップＳ１５２〜Ｓ１５７）。
【００６３】
こうして、無線端末１０１−１上で動作するアプリケーションプログラム１１５−１と無線端末１０１−５上で動作するアプリケーションプログラム１１５−５との間でＴＣＰコネクションを通じてデータが授受される。
【００６４】
図７は、無線端末１０１−１のアプリケーションプログラム１１５−１と無線端末１０１−５のアプリケーションプログラム１１５−５との間でＴＣＰコネクションを切断する手順の一例を示すシーケンスチャートである。図７に示すように、デリバリノード１０１−４によるスイッチング動作はなおも継続して行われており、スイッチング動作と並行して、ＴＣＰコネクションの切断に係るパケットが、デリバリノード１０１−１を通じてアプリケーションプログラム１１５−１とアプリケーションプログラム１１５−５との間で授受される。
【００６５】
図７の例では、アプリケーションプログラム１１５−１からアプリケーションプログラム１１５−５へコネクション切断要求パケットを送信している。アプリケーション実行部１１１−１から仮想ネットワークインタフェース１１３−１を通じて制御部１１４−１にコネクション切断要求パケットを送信するステップＳ１６０、Ｓ１６１、制御部１１４−１からデリバリノード１０１−４の制御部１１６にコネクション切断要求パケットをカプセル化して送信するステップＳ１６２、制御部１１６が受信したカプセル化パケットをデカプセル化し、再びカプセル化して無線端末１０１−５の制御部１１４−５へ送信するステップＳ１６３、制御部１１４−５が受信したカプセル化パケットをデカプセル化して仮想ネットワークインタフェース１１３−５を通じてアプリケーション実行部１１１−５へ送信するステップＳ１６４、Ｓ１６５は、図４のステップＳ１０３〜Ｓ１０５、Ｓ１０８〜Ｓ１１０と比較して、コネクション切断要求パケットであるか、コネクション確立要求パケットであるかの違いがあるだけであるため、その詳細な説明は省略する。
【００６６】
アプリケーションプログラム１１５−１からコネクション切断要求パケットを受信したアプリケーションプログラム１１５−５は、コネクション切断要求に対する確認応答パケットおよびコネクション切断要求パケットを連続して送信する。アプリケーション実行部１１１−５から仮想ネットワークインタフェース１１３−５を通じて制御部１１４−５に確認応答パケットおよびコネクション切断要求パケットを送信するステップＳ１６６、Ｓ１６７、制御部１１４−５からデリバリノード１０１−４の制御部１１６に確認応答パケットおよびコネクション切断要求パケットをカプセル化して送信するステップＳ１６８、制御部１１６が受信したカプセル化パケットをデカプセル化し、再びカプセル化して無線端末１０１−１の制御部１１４−１へ送信するステップＳ１６９、制御部１１４−１が受信したパケットをデカプセル化して仮想ネットワークインタフェース１１３−１を通じてアプリケーション実行部１１１−１へ送信するステップＳ１７０、Ｓ１７１は、図４のステップＳ１１１〜Ｓ１１２、Ｓ１１７、Ｓ１２０〜Ｓ１２２と比較して、確認応答パケットおよびコネクション切断要求パケットであるか、コネクション確立要求パケットであるかの違いがあるだけであるため、その詳細な説明は省略する。
【００６７】
また、アプリケーションプログラム１１５−５から確認応答パケットおよびコネクション切断要求パケットを受信したアプリケーションプログラム１１１−１は、受信したコネクション要求パケットに対する確認応答パケットをアプリケーションプログラム１１５−５へ送信する。このときの確認応答パケットは、ステップＳ１６０〜Ｓ１６５の手順と同様の手順により、アプリケーションプログラム１１１−５に届けられる（ステップＳ１７２〜Ｓ１７７）。
【００６８】
こうして、無線端末１０１−１上で動作するアプリケーションプログラム１１５−１と無線端末１０１−５上で動作するアプリケーションプログラム１１５−５との間のＴＣＰコネクションが切断される（ステップＳ１７８）。
【００６９】
図８は、無線端末１０１−４のデリバリノード機能を停止させる手順の一例を示すシーケンスチャートである。
【００７０】
無線端末１０１−１の制御部１１４−１は、アプリケーションプログラム１１５−１の実行が終了したことなどを理由に、無線端末１０１−４のデリバリノード機能を停止する場合、デリバリノード１０１−４に対してデリバリノード停止情報を送信する（ステップＳ１８１）。このデリバリノード停止情報は、例えば、無線端末１０１−１の制御部１１４−１と無線端末１０１−４の制御部１１６との間で物理ネットワークインタフェース１１２−１、１１２−４を通じてＴＣＰ通信あるいはＵＤＰ通信を行うことにより送受信される。
【００７１】
デリバリノード停止情報は、デリバリノード機能を停止させる無線端末１０１−４を特定する情報（例えばノード識別子など）を含む。無線端末１０１−４の制御部１１６は、デリバリノード停止情報を受信すると、無線端末１０１−４を無線端末１０１−１、１０１−５との間のグループ間通信におけるデリバリノードとして機能させる制御を停止する（ステップＳ１８２）。これによって、無線端末１０１−４は周期的なスイッチング動作を停止する。
【００７２】
次に、無線端末１０１の制御部１１４（制御部１１４−１および制御部１１４−５）について詳細に説明する。
【００７３】
図９は制御部１１４の動作の一例を示すフローチャートである。制御部１１４は、起動されると、隣接する他のグループに属する無線端末の情報を収集する（ステップＳ２０１）。以下、図１０および図１１を参照して、ステップＳ２０１の詳細を説明する。
【００７４】
図１０に示すように、グループオーナである無線端末１０１−１とそのクライアントである無線端末１０１−２〜１０１−４とから構成されるグループＧ１に隣接して、グループオーナである無線端末１０１−５とそのクライアントである無線端末１０１−６〜１０１−７とから構成されるグループＧ２が存在している状況を想定する。グループＧ１に属する無線端末１０１−１〜１０１−４は、例えば図１１（ａ）に示すような無線端末の情報を共有し、グループＧ２に属する無線端末１０１−５〜１０１−７は、例えば図１１（ｂ）に示すような無線端末の情報を共有している。
【００７５】
図１１に示す無線端末の情報は、無線端末１０１毎のエントリを有し、１つのエントリは、ノード識別子とＭＡＣアドレスと物理ＩＰアドレスと仮想ＩＰアドレスとオーナビットとグループ識別子とから構成される。ノード識別子は、無線端末１０１を一意に識別する名前等であり、ＭＡＣアドレスと物理ＩＰアドレスと仮想ＩＰアドレスは、当該無線端末に設定されたＭＡＣアドレスと物理ＩＰアドレスと仮想ＩＰアドレスである。オーナビットは、当該無線端末がグループオーナのとき値１に、クライアントのときに値０に設定される。グループ識別子は、当該無線端末１０１が属しているグループの識別子である。
【００７６】
グループＧ１に属するクライアントである無線端末１０１−２〜１０１−４の各々は、Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ処理のためにプローブ要求を送出し、送信したプローブ要求に対して近隣に存在する無線端末１０１−４からプローブ応答を受信すると、当該プローブ応答により発見されたグループＧ２のグループオーナの情報をグループオーナである無線端末１０１−１へ通知する。無線端末１０１−１の制御部１１４は、発見されたグループＧ２のグループオーナ１０１−５に接続させるデリバリノードを無線端末１０１−２〜１０１−４から決定する。そして、例えば無線端末１０１−４をデリバリノードに決定すると、無線端末１０１−１の制御部１１４は、デリバリノード１０１−４に対して一時的に無線端末１０１−５に接続して無線端末の情報を共有するように要求して、グループＧ１から切り離す。グループＧ１から切り離されたデリバリノード１０１−４は、グループＧ２の無線端末１０１−５に接続し、無線端末１０１−５〜１０１−７との間で図１１に示した無線端末の情報を送受信する。次に、デリバリノード１０１−４は、グループＧ２から離脱してグループＧ１の無線端末１０１−１に接続し、無線端末１０１−１〜１０１−３との間で図１１に示した無線端末の情報を送受信する。
【００７７】
以上のような動作が行われることにより、グループＧ１、Ｇ２の無線端末１０１−１〜１０１−７は、図１１に示した他のグループの無線端末の情報を共有することになる。
【００７８】
以上が、図９のステップＳ２０１の詳細な動作の一例である。なお、図９のステップＳ２０１による動作は上述した例に限定されない。例えば、無線端末１０１の各々が、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔによる通信機能の他に、３ＧやＬＴＥ等のセルラー通信機能を有する場合、セルラー通信機能による無線端末間の通信によって、図１１に示したグループの無線端末の情報を互いに共有するようにしてよい。
【００７９】
再び図９を参照すると、無線端末１０１の制御部１１４は、アプリケーション実行部１１１から通信相手の仮想ＩＰアドレスを含む通信開始要求を受信したか否かを判定する（ステップＳ２０２）。通信開始要求を受信していない場合、制御部１１４は、ステップＳ２０３、Ｓ２０４をスキップしてステップＳ２０５へ進む。通信開始要求を受信している場合、制御部１１４は、クライアントの中からデリバリノードとする無線端末１０１を決定し（ステップＳ２０３）、そのデリバリノードにデリバリノード指定情報を送信する（ステップＳ２０４）。そして、制御部１１４は、ステップＳ２０５へ進む。デリバリノード指定情報は、例えば、デリバリノードとなるべき無線端末１０１を特定するノード識別子、スイッチングの対象となる２台の無線端末１０１−１のノード識別子、物理ＩＰアドレス、仮想ＩＰアドレス、ＭＡＣアドレス、およびスイッチング条件を含む。以下では、無線端末１０１−４がデリバリノードになったものとして説明する。
【００８０】
ステップＳ２０５では、無線端末１０１の制御部１１４は、アプリケーション実行部１１１−１から仮想ネットワークインタフェース１１３を通じてパケットを受信したか否かを判定する。制御部１１４は、パケットを受信した場合、受信したパケットを制御部１１４内のＦＩＦＯバッファに格納する（ステップＳ２０６）。そして、制御部１１４はステップＳ２０７へ進む。パケットを受信していない場合、制御部１１４は、ステップＳ２０６をスキップしてステップＳ２０７へ進む。
【００８１】
ステップＳ２０７では、無線端末１０１の制御部１１４は、ＦＩＦＯバッファが空か否かを判定する。ＦＩＦＯバッファが空であれば、制御部１１４はステップＳ２１１へ進む。ＦＩＦＯバッファが空でなければ、制御部１１４は、無線端末１０１がデリバリノード１０１に接続中か否かを判定する（ステップＳ２０８）。接続中でなければ、制御部１１４はステップＳ２１１へ進む。接続中であれば、制御部１１４は、ＦＩＦＯバッファ中の個々のパケットについて、所定のカプセル化ヘッダでパケットをカプセル化して物理ネットワークインタフェース１１２を通じてデリバリノード１０１へ送信する（ステップＳ２０９）。そして、制御部１１４はステップＳ２１１へ進む。
【００８２】
ステップＳ２１１では、無線端末１０１の制御部１１４は、物理ネットワークインタフェース１１２を通じてデリバリノードからカプセル化パケットを受信したか否かを判定する。カプセル化パケットを受信していなければ、制御部１１４はステップＳ２１４へ進む。カプセル化パケットを受信していれば、制御部１１４は、カプセル化パケットをデカプセル化し、仮想ネットワークインタフェース１１３を通じてアプリケーション実行部１１１−１へ送信する（ステップＳ２１２）。そして、制御部１１４はステップＳ２１４へ進む。
【００８３】
ステップＳ２１４では、無線端末１０１の制御部１１４は、アプリケーション実行部１１１から仮想ネットワークインタフェース１１３を通じて通信終了要求を受信したか否かを判定する。通信終了要求を受信していなければ、制御部１１４はステップＳ２０１に戻って上述した処理を繰り返す。通信終了要求を受信していれば、制御部１１４は、デリバリノード１０１に対してデリバリノード終了情報を送信する（ステップＳ２１５）。そして、制御部１１４はステップＳ２０１に戻って上述した処理を繰り返す。
【００８４】
以上が、無線端末１０１の制御部１１４（制御部１１４−１および制御部１１４−５）の詳細である。
【００８５】
次に、デリバリノード１０１−４の制御部１１６について詳細に説明する。
【００８６】
図１２はデリバリノードの制御部１１６の動作の一例を示すフローチャートである。制御部１１６は、起動されると、物理ネットワークインタフェース１１２からパケットを受信したか否かを判定する（ステップＳ２２１）。パケットを受信していなければ、制御部１１６はステップＳ２３０へ進む。パケットを受信していれば、制御部１１６は、受信パケットがデリバリノード指定情報パケットか否かを判定する（ステップＳ２２２）。デリバリノード指定情報パケットでなければ、制御部１１６はステップＳ２２４へ進む。デリバリノード指定情報パケットであれば、制御部１１６は、内部のスイッチングフラグを１にセットし、デリバリノード指定情報に従った周期的なスイッチング動作を開始する（ステップＳ２２３）。そして、制御部１１６はステップＳ２２４へ進む。
【００８７】
図１３は、デリバリノードのスイッチング動作を説明するための状態遷移図である。デリバリノードの制御部１１６は、デリバリノード指定情報で指定された２台のスイッチング対象の一方を第１の無線端末、他方を第２の無線端末とすると、デリバリノードが第１の無線端末に接続している状態Ｓ１において、デリバリノード指定情報のデリバリノード条件で指定されたスイッチング時間が経過すると、第１の無線端末との接続を切断して第２の無線端末に接続し、デリバリノードが第２の無線端末に接続している状態Ｓ２に遷移する。また、デリバリノードが第２の無線端末に接続している状態Ｓ２において、デリバリノード条件で指定されたスイッチング時間が経過すると、第２の無線端末との接続を切断して第１の無線端末に接続し、デリバリノードが第１の無線端末に接続している状態Ｓ１に遷移する。
【００８８】
ステップＳ２２４では、デリバリノードの制御部１１６は、受信パケットがデリバリノード終了情報パケットか否かを判定する。デリバリノード終了情報パケットでなければ、制御部１１６はステップＳ２２６へ進む。デリバリノード終了情報パケットであれば、制御部１１６は、スイッチングフラグを０にリセットし（ステップＳ２２５）、ステップＳ２２６へ進む。
【００８９】
ステップＳ２２６では、デリバリノードの制御部１１６は、受信パケットがカプセル化パケットか否かを判定する。カプセル化パケットでなければ、制御部１１６はステップＳ２３０へ進む。カプセル化パケットであれば、制御部１１６は、当該カプセル化パケットの送信元が２台のスイッチング対象のうちの第１の無線端末か、第２の無線端末かを判定する（ステップＳ２２７）。次に制御部１１６は、送信元が第１の無線端末であれば、カプセル化パケットをデカプセル化して得たパケットを、第２の無線端末の物理ＩＰアドレスを宛先ＩＰアドレスとする所定のカプセル化ヘッダで再びカプセル化して、制御部１１６内の第２のＦＩＦＯバッファに格納し（ステップＳ２２８）、ステップＳ２３０へ進む。また制御部１１６は、送信元が第２の無線端末であれば、カプセル化パケットをデカプセル化して得たパケットを、第１の無線端末の物理ＩＰアドレスを宛先ＩＰアドレスとする所定のカプセル化ヘッダで再びカプセル化して、制御部１１６内の第１のＦＩＦＯバッファに格納し（ステップＳ２２９）、ステップＳ２３０へ進む。
【００９０】
ステップＳ２３０では、デリバリノードの制御部１１６は、第１のＦＩＦＯバッファが空か否かを判定する。空であれば、制御部１１６はステップＳ２３３へ進む。空でなければ、制御部１１６は、デリバリノードが第１の無線端末と接続中か否かを判定する（ステップＳ２３１）。接続中でなければ、制御部１１６はステップＳ２３３へ進む。接続中であれば、制御部１１６は、第１のＦＩＦＯバッファから全てのカプセル化パケットを順に取り出して物理ネットワークインタフェース１１２を通じて第１の無線端末へ送信し（ステップＳ２３２）、ステップＳ２３３へ進む。
【００９１】
ステップＳ２３３では、デリバリノードの制御部１１６は、第２のＦＩＦＯバッファが空か否かを判定する。空であれば、制御部１１６はステップＳ２３６へ進む。空でなければ、制御部１１６は、デリバリノードが第２の無線端末と接続中か否かを判定する（ステップＳ２３４）。接続中でなければ、制御部１１６はステップＳ２３６へ進む。接続中であれば、制御部１１６は、第２のＦＩＦＯバッファから全てのカプセル化パケットを順に取り出して物理ネットワークインタフェース１１２を通じて第２の無線端末へ送信し（ステップＳ２３５）、ステップＳ２３６へ進む。
【００９２】
ステップＳ２３６では、デリバリノードの制御部１１６は、スイッチングフラグが０か否かを判定する。０でなければ、制御部１１６は、ステップＳ２２１に戻って上述した処理を繰り返す。０であれば、制御部１１６は、第１および第２のＦＩＦＯバッファが空であることを確認して、デリバリノードのスイッチング動作を停止する（ステップＳ２３７）。そして、制御部１１６は、ステップＳ２２１に戻って上述した処理を繰り返す。
【００９３】
以上が、デリバリノード１０１−４の制御部１１６の詳細である。
【００９４】
次に、無線端末１０１が有するＷｉ−Ｆｉ  Ｄｉｒｅｃｔの接続および離脱の機能について、図１４乃至図２０を参照して説明する。
【００９５】
図１５乃至図２０に記載されるＷｉ−Ｆｉ制御接続部は、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔのパケットを生成して物理ネットワークインタフェース１１２を通じて送信し、また物理ネットワークインタフェース１１２を通じてＷｉ−Ｆｉ  Ｄｉｒｅｃｔのパケットを受信するブロックである。Ｗｉ−Ｆｉ接続制御部は、“Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ”、“Ｇｒｏｕｐ  Ｆｏｒｍａｔｉｏｎ”、“ＷＰＳ（Ｗｉ−Ｆｉ  Ｐｒｏｔｅｃｔｅｄ  Ｓｅｔｕｐ）Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｐｈａｓｅ１”、“ＷＰＳ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｐｈａｓｅ２”といった単位で制御を行う。また、Ｗｉ−Ｆｉ接続制御部は、自動接続制御部からイベント（コマンド）を受信して制御を開始し、その結果をイベント（応答）として自動接続制御部に通知する。
【００９６】
また自動接続制御部は、Ｗｉ−Ｆｉ接続制御部の上位階層に位置する制御部である。自動接続制御部は、Ｗｉ−Ｆｉ接続制御部を制御することにより、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔによる自動接続を実現する。具体的には、例えば無線端末同士が近づいた時に自動的に１つのグループを構築し、グループ内で無線端末間通信を実現する。また、既に構築されたグループに新しい無線端末が近づいた時には構築済みのグループに自動的に参加する。さらに、構築済みのグループから無線端末を自動的に離脱させる。
【００９７】
ここで、Ｗｉ−Ｆｉ接続制御部および自動接続制御部は、無線端末１０１の制御部１１４、１１６内に実装されていてもよいし、制御部１１４、１１６外に実装されていてもよい。図１５乃至図２０では、無線端末を、ノードと記載している。
【００９８】
＜Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔの接続および離脱＞
図１４に示すように、無線端末間でグループを形成する場合（ＣＡＳＥ１）、まず、Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ処理により近隣の無線端末（Ｐ２Ｐノード）を探索し、無線端末が発見されるとＧＯ  Ｎｅｇｏｔｉａｔｉｏｎ処理により何れか一方がグループオーナ（ＧＯ）、他方がクライアントとなって接続する。続いて、ＷＰＳ  Ｐｒｏｖｉｓｉｏｎ  Ｐｈａｓｅ−１（認証フェーズ）およびＰａｈｓｅ−２（暗号化フェーズ）が順次実行される。
【００９９】
既存ＧＯに接続する場合（ＣＡＳＥ２）、まず、Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ処理により近隣の無線端末（Ｐ２Ｐノード）を探索し、発見された無線端末がＧＯであれば、Ｐｒｏｖｉｓｉｏｎ  Ｄｉｓｃｏｖｅｒｙ処理により当該ＧＯに接続し、続いて、ＷＰＳ  Ｐｒｏｖｉｓｉｏｎ  Ｐｈａｓｅ−１（認証フェーズ）およびＰａｈｓｅ−２（暗号化フェーズ）が順次実行される。
【０１００】
ＰｅｒｓｉｔｅｎｔＧＯに接続する場合（ＣＡＳＥ３）、まず、Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ処理により近隣の無線端末（Ｐ２Ｐノード）を探索し、発見された無線端末がＰｅｒｓｉｓｔｅｎｔＧＯであれば、Ｉｎｖｉｔａｔｉｏｎ処理により当該ＰｅｒｓｉｓｔｅｎｔＧＯに接続し、続いて、ＷＰＳ  Ｐｒｏｖｉｓｉｏｎ  Ｐａｈｓｅ−２（暗号化フェーズ）が順次実行される。
【０１０１】
図１５に例示するように、Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ動作が実行される。すなわち、各無線端末におけるＷｉ−Ｆｉ接続制御部は、自動接続制御部から検索要求を受けると、隣接する無線端末の検索を開始し、Ｓｅａｒｃｈ状態とＬｉｓｔｅｎ状態とを交互に繰り返す。Ｓｅａｒｃｈ状態では、所定のチャネルを順次切り替えながらＰｒｏｂｅ  Ｒｅｑｕｅｓｔを送出し、それに対する応答であるＰｒｏｂｅ  ｒｅｓｐｏｎｓｅを待つ。Ｌｉｓｔｅｎ状態では、他ノードからのＰｒｏｂｅ  Ｒｅｑｕｅｓｔを待ち、Ｐｒｏｂｅ  Ｒｅｑｕｅｓｔを受信すれば、それに対してＰｒｏｂｅ  Ｒｅｓｐｏｎｓｅを返す。無線端末Ｎ１がグループのクライアントの場合、無線端末Ｎ１のＷｉ−Ｆｉ接続制御部が無線端末Ｎ２からＰｒｏｂｅ  Ｒｅｓｐｏｎｓｅを受信すれば、当該隣接無線端末Ｎ２の情報を隣接ノード情報として自グループのグループオーナへ通知する。
【０１０２】
図１６に例示するように、既存ＧＯに対するＤｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ動作が実行される。無線端末Ｎ２をグループオーナとするグループが既に構築されている場合、無線端末Ｎ１からのＰｒｏｂｅ  Ｒｅｑｕｅｓｔに対して、ＧＯの無線端末Ｎ２がＰｒｏｂｅ  Ｒｅｓｐｏｎｓｅを返す。その際、ＧＯの無線端末Ｎ２からのＰｒｏｂｅ  ＲｅｓｐｏｎｓｅのＰ２Ｐ  Ｄｅｖｉｃｅ  Ｉｎｆｏ  Ａｔｔｒｉｂｕｔｅには、当該グループに属するクライアントのリスト（ここでは、ノードＮ２とＮ３の情報）が含まれる。
【０１０３】
図１７に例示するように、無線端末間でグループを形成する際のＧＯ  Ｎｅｇｏｔｉａｔｉｏｎ動作が実行される。無線端末間でＧＯ  Ｎｅｇｏｔｉａｔｉｏｎ  Ｒｅｑｕｅｓｔ、ＧＯ  Ｎｅｇｏｔｉａｔｉｏｎ  ＲｅｓｐｏｎｓｅおよびＧＯ  Ｎｅｇｏｔｉａｔｉｏｎ  Ｃｏｎｆｉｒｍａｔｉｏｎをやりとりすることで、一方の無線端末がＧＯとなり、ビーコンをブロードキャストし始める。
【０１０４】
図１８に例示するように、既存ＧＯに接続するためのＰｒｏｖｉｓｉｏｎ  Ｄｉｓｃｏｖｅｒｙ動作が実行される。無線端末Ｎ１からの無線端末Ｎ２に対するＰｒｏｖｉｓｉｏｎ  Ｄｉｓｃｏｖｅｒｙ  Ｒｅｑｕｅｓｔに対して、ＧＯの無線端末Ｎ２が無線端末Ｎ１に対するＰｒｏｖｉｓｉｏｎ  Ｄｉｓｃｏｖｅｒｙ  Ｒｅｓｐｏｎｓｅを返すことで無線端末Ｎ１が無線端末Ｎ２に接続される。
【０１０５】
図１９に例示するように、Ｐｅｒｓｉｓｔｅｎｔ−ＧＯに接続するためのＩｎｖｉｔａｔｉｏｎ動作が実行される。無線端末Ｎ１からの無線端末Ｎ２に対するＩｎｖｉｔａｔｉｏｎ  Ｒｅｑｕｅｓｔに対して、Ｐｅｒｓｉｓｔｅｎｔ−ＧＯの無線端末Ｎ２が無線端末Ｎ１に対するＩｎｖｉｔａｔｉｏｎ  Ｒｅｓｐｏｎｓｅを返すことで、無線端末Ｎ１が無線端末Ｎ２に接続される。
【０１０６】
図２０に示すように、クライアント主導の離脱では、クライアントの無線端末Ｎ１がＤｅａｕｔｈｅｎｔｉｃａｔｉｏｎあるいはＤｉｓａｓｓｏｃｉａｔｉｏｎ  ＩｎｄｉｃａｔｉｏｎをＧＯの無線端末Ｎ２へ送信することで、離脱可能である。逆に、グループオーナ主導の離脱では、ＧＯの無線端末Ｎ２がクライアントの無線端末Ｎ１へＤｅａｕｔｈｅｎｔｉｃａｔｉｏｎあるいはＤｉｓａｓｓｏｃｉａｔｉｏｎ  Ｉｎｄｉｃａｔｉｏｎを送信することでクライアントを離脱させることができる。
【０１０７】
以上説明したように本実施形態によれば、グループＧ１に属する無線端末１０１−１上で動作するアプリケーションプログラム１１５−１とグループＧ２に属する無線端末１０１−５上で動作するアプリケーションプログラム１１５−５との間でデリバリノード１０１−４を通じて直接に通信することができる。その理由は、無線端末１０１−１および無線端末１０１−５のそれぞれに仮想ＩＰアドレスを設定し、アプリケーションプログラム１１５−１とアプリケーションプログラム１１５−５との間の通信を、仮想ＩＰアドレスを使用したパケットで行い、仮想ＩＰアドレスを宛先ＩＰアドレスとするパケットが直接通過できない無線端末１０１−１、１０１−５とデリバリノード間の通信路は、物理ＩＰアドレスを宛先ＩＰアドレスとするカプセル化ヘッダでカプセル化して通過させるようにしたためである。また、無線端末１０１−１と無線端末１０１−５間がデリバリノードを通じて固定的に接続されず、間欠的に接続されることを考慮し、無線端末１０１−１と無線端末１０１−５間のトンネリングを、無線端末１０１−１とデリバリノード１０１−４間のトンネリング、デリバリノード１０１−４と無線端末１０１−５間のトンネリングとに分けるようにしたためである。
【０１０８】
このように、アプリケーションプログラム間で直接にＴＣＰ／ＩＰ通信を行えるため、既存のアプリケーションプログラムを改変せずにグループを跨いだ通信が可能となる。また複数の無線通信をホップしたテザリングが実現できる。
【０１０９】
また本実施形態によれば、アプリケーションプログラム１１５−１とアプリケーションプログラム１１５−５との間で信頼性のある通信を行うことができる。その理由は、アプリケーションプログラム１１５−１とアプリケーションプログラム１１５−５との間で、トランスポート層のプロトコルにＴＣＰを使用したＴＣＰ／ＩＰ通信を行うためである。
【０１１０】
[第２の実施形態]
次に本発明の第２の実施形態に係る通信システムについて説明する。
【０１１１】
本実施形態に係る通信システムは、第１の実施形態に係る通信システムと比較して、デリバリノードのスイッチング動作が相違し、それ以外の構成および動作は第１の実施形態に係る通信システムと同じである。
【０１１２】
図２１は、本実施形態におけるデリバリノード１０１−４のスイッチング動作を説明するための状態遷移図である。デリバリノードの制御部１１６は、デリバリノード指定情報で指定された２台のスイッチング対象の一方を第１の無線端末、他方を第２の無線端末とすると、デリバリノードが第１の無線端末に接続している状態Ｓ１において、デリバリノード指定情報のデリバリノード条件で指定されたスイッチング時間が経過するか、または、第１の無線端末から受信したカプセル化パケットをデカプセル化したパケットの種別が制御パケットであるか、何れか早く成立した方を条件として、第１の無線端末との接続を切断して第２の無線端末に接続し、デリバリノードが第２の無線端末に接続している状態Ｓ２に遷移する。
【０１１３】
また、デリバリノードの制御部１１６は、デリバリノード１０１−４が第２の無線端末に接続している状態Ｓ２において、デリバリノード条件で指定されたスイッチング時間が経過するか、または、第２の無線端末から受信したカプセル化パケットをデカプセル化したパケットの種別が制御パケットであるか、何れか早く成立した方を条件として、第２の無線端末との接続を切断して第１の無線端末に接続し、デリバリノードが第１の無線端末に接続している状態Ｓ１に遷移する。
【０１１４】
ここで、上記制御パケットは、例えば、ＴＣＰコネクション管理に使用するコネクション確立要求パケット、このコネクション確立要求パケットに対する確認応答兼コネクション確立要求パケット、この確認応答兼コネクション確立要求パケットに対する確認応答パケット、コネクション切断要求パケット、そのコネクション切断要求パケットに対する確認応答パケットの何れか１つ、あるいは２つ、あるいは３つ、あるいは４つ、あるいは５つであってよい。また、上記制御パケットは、データパケットに対する肯定確認応答パケット、または、否定確認応答パケットであってよい。
【０１１５】
本実施形態の場合、デリバリノードの制御部１１６の動作の一例を示す図１２のフローチャートにおけるステップＳ２２８、Ｓ２２９は、図２２に示すように変更される。ステップＳ２２８、Ｓ２２９以外のステップは図１２と同じである。
【０１１６】
図２２を参照すると、デリバリノードの制御部１１６は、カプセル化パケットを第１の無線端末から受信したときに実行するステップＳ２２８では、受信したカプセル化パケットをデカプセル化し、再カプセル化して、第２のＦＩＦＯに格納する動作に加えて、次の動作を行う。制御部１１６は、デカプセル化して得たパケットの種別が、制御パケットか否かを判定し、制御パケットならば、デリバリノードを第１の無線端末から切断して第２の無線端末に接続するスイッチングを速やかに実施する。
【０１１７】
またデリバリノードの制御部１１６は、カプセル化パケットを第２の無線端末から受信したときに実行するステップＳ２２９では、受信したカプセル化パケットをデカプセル化し、再カプセル化して、第１のＦＩＦＯに格納する動作に加えて、次の動作を行う。制御部１１６は、デカプセル化して得たパケットの種別が、制御パケットか否かを判定し、制御パケットならば、デリバリノードを第２の無線端末から切断して第１の無線端末に接続するスイッチングを実施する。
【０１１８】
以上のような動作を行うことにより、デリバリノードが第１の無線端末に接続されている状態において第１の無線端末から制御パケットを受信すると、デリバリノードを速やかに第２の無線端末に接続して、上記受信した制御パケットを第２の無線端末へ送信することができる。また、デリバリノードが第２の無線端末に接続されている状態において第２の無線端末から制御パケットを受信すると、デリバリノードを速やかに第１の無線端末に接続して、上記受信した制御パケットを第１の無線端末へ送信することができる。この効果をＴＣＰコネクションの確立を例にして以下説明する。但し、ＴＣＰコネクションの確立時だけでなく、ＴＣＰコネクションの切断時やデータパケットに対する肯定応答、否定応答の送信時にも同様の効果が得られる。
【０１１９】
図２３は、デリバリノード１０１−４を通じて、無線端末１０１−１上で動作するアプリケーションプログラム１１５−１と無線端末１０１−５上で動作するアプリケーションプログラム１１５−５との間にＴＣＰコネクションを確立する手順の一例を示すシーケンスチャートであり、図４と同じ手順には同じステップ番号を記載している。
【０１２０】
図２３を参照すると、無線端末１０１−１のアプリケーション実行部１１１−１からコネクション確立要求パケットが仮想ネットワークインタフェース１１３−１を通じて制御部１１４−１に送信され（ステップＳ１０３、Ｓ１０４）、このコネクション確立要求パケットがカプセル化ヘッダでカプセル化されて、制御部１１４−１からデリバリノード１０１−４の制御部１１６へ送信されている（ステップＳ１０５）。デリバリノード１０１−４の制御部１１６は、図２２のステップＳ２２８において、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出し、再びカプセル化ヘッダによってコネクション確立要求パケットをカプセル化して、第２のＦＩＦＯバッファに格納する。また制御部１１６は、デカプセル化して得たパケットが制御パケットであるため、デリバリノード１０１−４を第２の無線端末である無線端末１０１−５に速やかに接続するために、切断手順Ｓ１０６、切断手順Ｓ１０７を実施する。その結果、制御部１１６は、再カプセル化したコネクション確立要求パケットを、無線端末１０１−５の制御部１１４−５へ速やかに送信することができる（ステップＳ１０８）。
【０１２１】
図２３では、デリバリノード１０１−４の制御部１１６は、コネクション確立要求パケットに対する確認応答兼コネクション確立要求パケットをトンネリングにより無線端末１０１−５から受信したとき（ステップＳ１１７）、スイッチング時間Ｔの経過を待たずにスイッチングを行って（ステップＳ１１８、Ｓ１１９）、上記確認応答兼コネクション確立要求パケットをトンネリングにより無線端末１０１−１へ送信している（ステップＳ１２０）。また、デリバリノード１０１−４の制御部１１６は、確認応答兼コネクション確立要求パケットに対する確認応答パケットをトンネリングにより無線端末１０１−１から受信したとき（ステップＳ１２９）、スイッチング時間Ｔの経過を待たずにスイッチングを行って（ステップＳ１３０、Ｓ１３１）、上記確認応答パケットをトンネリングにより無線端末１０１−５へ送信している（ステップＳ１３２）。
【０１２２】
このように本実施形態によれば、デリバリノード１０１−４のスイッチングのタイミングを、トンネリングするパケットの種別に応じて制御することができ、効率的なスイッチングが可能になる。
【０１２３】
[第３の実施形態]
次に本発明の第３の実施形態に係る通信システムについて説明する。
【０１２４】
図２４は、本実施形態におけるデリバリノード１０１−４のスイッチング動作を説明するための状態遷移図である。デリバリノードの制御部１１６は、デリバリノード指定情報で指定された２台のスイッチング対象の一方を第１の無線端末、他方を第２の無線端末とすると、デリバリノードが第１の無線端末に接続している状態Ｓ１において、第１の無線端末から輻輳ウインドウ情報を受信せずにデリバリノード指定情報のデリバリノード条件で指定されたスイッチング時間が経過するか、または、第１の無線端末から輻輳ウインドウ情報を受信し、輻輳ウインドウ分のデータパケットを受信完了したか、または、第１の無線端末から輻輳ウインドウ情報を受信し、タイムアウトしたか、何れか早く成立した方を条件として、第１の無線端末との接続を切断して第２の無線端末に接続し、デリバリノードが第２の無線端末に接続している状態Ｓ２に遷移する。
【０１２５】
また、デリバリノードの制御部１１６は、デリバリノード１０１−４が第２の無線端末に接続している状態Ｓ２において、第２の無線端末から輻輳ウインドウ情報を受信せずにデリバリノード指定情報のデリバリノード条件で指定されたスイッチング時間が経過するか、または、第２の無線端末から輻輳ウインドウ情報を受信し、輻輳ウインドウ分のデータパケットを受信完了したか、または、第２の無線端末から輻輳ウインドウ情報を受信し、タイムアウトしたか、何れか早く成立した方を条件として、第２の無線端末との接続を切断して第１の無線端末に接続し、デリバリノードが第１の無線端末に接続している状態Ｓ１に遷移する。
【０１２６】
ここで、輻輳ウインドウ情報は、肯定確認応答を待たずに送信できるパケット数やデータサイズを示す。また、タイムアウトするまでの時間は、一般にデリバリノード条件で指定されるスイッチング時間より長く設定される。
【０１２７】
本実施形態では、無線端末１０１−１のアプリケーション実行部１１１−１は、ＴＣＰ／ＩＰ通信を行う場合、輻輳ウインドウ分のデータを送信する一連のパケットの例えば先頭パケットに、例えば図２５（ａ）に示すように、ＴＣＰの輻輳ウインドウ情報を付加して、仮想ネットワークインタフェース１１３−１を通じて制御部１１４−１へ送信する。制御部１１４−１は、例えば図２５（ｂ）に示すように、輻輳ウインドウ情報が付加された状態のパケットを所定のカプセル化ヘッダでカプセル化し、デリバリノード１０１−４へ送信する。同様に、無線端末１０１−５のアプリケーション実行部１１１−５は、ＴＣＰ／ＩＰ通信を行う場合、ＴＣＰの輻輳ウインドウ情報を、輻輳ウインドウ分のデータを送信する一連のパケットの例えば先頭パケットに付加して、仮想ネットワークインタフェース１１３−５を通じて制御部１１４−５へ送信する。制御部１１４−５は、輻輳ウインドウ情報が付加された状態のパケットを所定のカプセル化ヘッダでカプセル化し、デリバリノード１０１−５へ送信する。
【０１２８】
また本実施形態の場合、デリバリノードの制御部１１６の動作の一例を示す図１２のフローチャートにおけるステップＳ２２８、Ｓ２２９は、図２６に示すように変更される。ステップＳ２２８、Ｓ２２９以外のステップは図１２と同じである。
【０１２９】
図２６を参照すると、デリバリノードの制御部１１６は、カプセル化パケットを第１の無線端末から受信したときに実行するステップＳ２２８では、受信したカプセル化パケットをデカプセル化した後に、再カプセル化して、第２のＦＩＦＯに格納する動作に加えて、次の動作を行う。制御部１１６は、デカプセル化して得たパケットに輻輳ウインドウ情報が付加されているか否かを判定し、付加されていれば、輻輳ウインドウ分のデータの受信完了か、または、タイムアウトか、何れか早く成立した方を条件に第２の無線端末にスイッチングするようにスケジュールする。
【０１３０】
またデリバリノードの制御部１１６は、カプセル化パケットを第２の無線端末から受信したときに実行するステップＳ２２９では、受信したカプセル化パケットをデカプセル化した後に、再カプセル化して、第１のＦＩＦＯに格納する動作に加えて、次の動作を行う。即ち、制御部１１６は、デカプセル化して得たパケットに輻輳ウインドウ情報が付加されているか否かを判定し、付加されていれば、複数ウインドウ分のデータの受信完了か、または、タイムアウトか、何れか早く成立した方を条件に第１の無線端末にスイッチングするようにスケジュールする。
【０１３１】
以上のような動作を行うことにより、デリバリノードが第１の無線端末に接続されている状態において第１の無線端末から輻輳ウインドウ情報を受信すると、輻輳ウインドウ分のデータの受信完了までスイッチングを待機するので、輻輳ウインドウ分のデータパケットの受信中に無駄にスイッチングすることを防止でき、且つ、輻輳ウインドウ分のデータパケットの受信完了後、上記受信した輻輳ウインドウに係るデータパケットを第２の無線端末へ速やかに送信することができる。同様に、デリバリノードが第２の無線端末に接続されている状態において第２の無線端末から輻輳ウインドウ情報を受信すると、輻輳ウインドウ分のデータの受信完了までスイッチングを待機するので、輻輳ウインドウ分のデータパケットの受信中に無駄にスイッチングすることを防止でき、且つ、輻輳ウインドウ分のデータパケットの受信完了後、上記受信した輻輳ウインドウに係るデータパケットを第１の無線端末へ速やかに送信することができる。
【０１３２】
図２７は、ＴＣＰコネクション確立後、無線端末１０１−１のアプリケーションプログラム１１５−１と無線端末１０１−５のアプリケーションプログラム１１５−５との間で輻輳ウインドウ分のデータパケットを送受信する手順の一例を示すシーケンスチャートである。図２７の例では、ＴＣＰコネクション確立後、アプリケーションプログラム１１５−１から仮想ネットワークインタフェース１１３−１を通じて制御部１１４−１へ輻輳ウインドウ分の複数のデータパケットを送信している（ステップＳ１９１、Ｓ１９２）。そして、先頭のデータパケットには、図２５（ａ）を参照して説明したように、輻輳ウインドウ情報が付加されている。
【０１３３】
無線端末１０１−１の制御部１１４−１は、アプリケーション実行部１１１−１から仮想ネットワークインタフェース１１３−１を通じて受信した一連のデータパケットのそれぞれを、所定のカプセル化ヘッダでカプセル化してデリバリノード１０１−４へ送信する（ステップＳ１９３）。このとき、制御部１１４−１は、輻輳ウインドウ情報が付加されたパケットは、図２５（ｂ）に示すように、輻輳ウインドウ情報の前にカプセル化ヘッダを付加してカプセル化する。
【０１３４】
デリバリノード１０１−４の制御部１１６は、カプセル化されたパケットを受信し、受信したカプセル化パケットをデカプセル化して得たパケットに付加された輻輳ウインドウ情報を検出する。このため、制御部１１６は、検出した輻輳ウインドウ情報で示されるデータサイズ分のデータパケットを受信し終えるまで、デリバリノード１０１−４を無線端末１０１−１に接続したままにする。これにより、無線端末１０１−１から送信された輻輳ウインドウ分のデータパケットの全てがデリバリノード１０１−４で受信される（ステップＳ１９３）。そして、制御部１１６は、輻輳ウインドウ分のデータパケットの全てを受信し終えると、スイッチングを行って、デリバリノード１０１−４を無線端末１０１−５に接続する。次に制御部１１６は、再カプセル化したデータパケットを無線端末１０１−５へ送信する（ステップＳ１９４）。
【０１３５】
このように本実施形態によれば、デリバリノード１０１−４のスイッチングのタイミングを、ＴＣＰの輻輳ウインドウ情報に基づいて制御することができ、効率的なスイッチングが可能になる。
【０１３６】
上述した動作では、無線端末１０１−１と無線端末１０１−５との間にデリバリノード１０１−４を通じて１つのＴＣＰコネクションを確立したが、複数のＴＣＰコネクションを確立し、複数のＴＣＰコネクションを通じてデータを並行して送受信するケースが考えられる。このように複数のＴＣＰコネクションが混在している場合、デリバリノード１０１−４の制御部１１６は、各々のＴＣＰコネクションの輻輳ウインドウのうちの最も小さい輻輳ウインドウに基づいてスイッチングを制御するようにしてよい。
【０１３７】
[その他の実施形態]
上述した第１乃至第３の実施形態では、無線端末１０１−１のアプリケーション１１１−１と無線端末１０１−５のアプリケーション実行部１１１−５とは、トランスポート層のプロトコルにＴＣＰを使用したＴＣＰ／ＩＰ通信で行った。しかし、アプリケーション間の通信はそのような通信プロトコルに限定されない。例えば、アプリケーション実行部１１１−１とアプリケーション実行部１１１−５とは、トランスポート層のプロトコルにＵＤＰなどの他のプロトコルを使用したＴＣＰ／ＩＰ通信を行うものであってよい。
【０１３８】
また、上述した第１乃至第３の実施形態では、無線端末１０１−１の制御部１１４−１とデリバリノード１０１−４の制御部１１６との間、および、デリバリノード１０１−４の制御部１１６と無線端末１０１−５の制御部１１４−５との間は、トランスポート層のプロトコルにＵＤＰを使用したＴＣＰ／ＩＰ通信で行った。しかし、それら間の通信はそのような通信プロトコルに限定されない。例えば、制御部１１４−１と制御部１１６との間、および、制御部１１６と制御部１１４−５との間は、トランスポート層のプロトコルにＴＣＰなどの他のプロトコルを使用したＴＣＰ／ＩＰ通信を行うものであってよい。
【０１３９】
要するに、本発明において無線端末１０１−１、１０１−５とデリバリノード１０１−４との間のトンネリングは、ＴＣＰ  ｏｖｅｒ  ＵＤＰ、ＵＤＰ  ｏｖｅｒ  ＴＣＰ、ＵＤＰ  ｏｖｅｒ  ＵＤＰ、ＴＣＰ  ｏｖｅｒ  ＴＣＰなどであってよい。
【０１４０】
また、上述した第１乃至第３の実施形態では、グループＧ１のグループオーナである無線端末１０１−１で動作するアプリケーションプログラムとグループＧ２のグループオーナである無線端末１０１−５で動作するアプリケーションプログラムとの間でデリバリノードを通じて通信を直接に行った。しかし、本発明は、グループＧ１に属する任意の無線端末で動作するアプリケーションプログラムとグループＧ２に属する任意の無線端末で動作するアプリケーションプログラムとの間でデリバリノードを通じて通信することができる。グループＧ１のクライアントの無線端末がデリバリノードを通じてグループＧ２に属する無線端末と通信する場合、グループＧ１のグループオーナである無線端末１０１−１をアクセスポイントとして通信する。同様に、グループＧ２のクライアントの無線端末がデリバリノードを通じてグループＧ１に属する無線端末と通信する場合、グループＧ２のグループオーナである無線端末１０１−５をアクセスポイントとして通信する。
【０１４１】
また、上述した第３の実施形態では、デリバリノード１０１−４のスイッチングのタイミングを、ＴＣＰの輻輳ウインドウ情報やタイムアウトに基づいて制御した。しかし、本発明におけるデリバリノード１０１−４は、一般的にはパケットの受信数やタイムアウトに基づいてスイッチングのタイミングを制御してよい。パケットの受信数は、例えばシステムパラメータとしてデリバリノード１０１−４に事前に設定されていてもよいし、デリバリノード指定情報で指定するようにしてもよい。また、当該受信数のパケットを受信する前に、接続開始時からの経過時間が予め設定されたタイムアウト時間に達した場合、デリバリノード１０１−４はスイッチングを行うように構成されていてよい。
【０１４２】
なお、本発明は、上述した実施形態に限定されるものではない。本発明の構成や実施形態には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【０１４３】
なお、本発明は、日本国にて２０１６年１月６日に特許出願された特願２０１６−０００８５８の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
【産業上の利用可能性】
【０１４４】
本発明はグループを動的に形成可能な複数の無線端末（ノード）からなるＰ２Ｐネットワークにおいて利用可能である。【０１４５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
［付記１］
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末と、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属する第２の無線端末と、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末とを含む通信システムであって、
前記第１の無線端末は、
通信を行う第１のアプリケーションプログラムを実行する第１のアプリケーション実行部と、
前記第１の物理ＩＰアドレスを有する第１の物理ネットワークインタフェースと、
前記第１の仮想ＩＰアドレスを有する第１の仮想ネットワークインタフェースと、
第１の制御部と、
を有し、
前記第２の無線端末は、
通信を行う第２のアプリケーションプログラムを実行する第２のアプリケーション実行部と、
前記第２の物理ＩＰアドレスを有する第２の物理ネットワークインタフェースと、
前記第２の仮想ＩＰアドレスを有する第２の仮想ネットワークインタフェースと、
第２の制御部と、
を有し、
前記第３の無線端末は、
前記第３の物理ＩＰアドレスを有する第３の物理ネットワークインタフェースと、
第３の制御部と、
を有し、
前記第１の制御部は、前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部から、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、前記第１の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記第１の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信するように構成され、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第１のカプセル化ヘッダを受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化ヘッダをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第２の無線端末へ送信するように構成され、
前記第２の制御部は、前記第２の物理ネットワークインタフェースを通じて前記第２のカプセル化パケットを受信すると、前記第２のカプセル化パケットをデカプセル化して得た前記第１のパケットを前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部へ送信するように構成されている、
通信システム。
［付記２］
付記１に記載の通信システムにおいて、
前記第２の制御部は、前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部から、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットを受信すると、前記第２の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセル化ヘッダで前記第２のパケットをカプセル化した第３のカプセル化パケットを、前記第２の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信するように構成され、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第３のカプセル化パケットを受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のカプセル化ヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第１の無線端末へ送信するように構成され、
前記第１の制御部は、前記第１の物理ネットワークインタフェースを通じて前記第４のカプセル化パケットを受信すると、前記第４のカプセル化パケットをデカプセル化して得た前記第２のパケットを前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部へ送信するように構成されている、
通信システム。
［付記３］
付記１または２に記載の通信システムにおいて、
前記第３の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
通信システム
［付記４］
付記１乃至３の何れかに記載の通信システムにおいて、
前記第３の制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
通信システム。
［付記５］
付記１乃至４の何れかに記載の通信システムにおいて、
前記第３の制御部は、前記第１のパケットと一緒に送られてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
通信システム。
［付記６］
付記１乃至５の何れかに記載の通信システムにおいて、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
通信システム。
［付記７］
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末と、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属する第２の無線端末と、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末とを含み、前記第１の無線端末は、通信を行う第１のアプリケーションプログラムを実行する第１のアプリケーション実行部と前記第１の物理ＩＰアドレスを有する第１の物理ネットワークインタフェースと前記第１の仮想ＩＰアドレスを有する第１の仮想ネットワークインタフェースと第１の制御部とを有し、前記第２の無線端末は、通信を行う第２のアプリケーションプログラムを実行する第２のアプリケーション実行部と前記第２の物理ＩＰアドレスを有する第２の物理ネットワークインタフェースと前記第２の仮想ＩＰアドレスを有する第２の仮想ネットワークインタフェースと第２の制御部とを有し、前記第３の無線端末は、前記第３の物理ＩＰアドレスを有する第３の物理ネットワークインタフェースと、第３の制御部とを有する、通信システムが実行する通信方法であって、
前記第１の制御部は、前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部から、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、前記第１の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記第１の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信し、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第１のカプセル化パケットを受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第２の無線端末へ送信し、
前記第２の制御部は、前記第２の物理ネットワークインタフェースを通じて前記第２のカプセル化パケットを受信すると、前記第２のカプセル化パケットをデカプセル化した前記第１のパケットを、前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部へ送信する、
通信方法。
［付記８］
付記７に記載の通信方法において、
前記第２の制御部は、前記第２の仮想ネットワークインタフェースを通じて前記第２のアプリケーション実行部から、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットを受信すると、前記第２の無線端末に前記第３の無線端末が接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセルヘッダで、前記第２のパケットをカプセル化した第３のカプセル化パケットを、前記第２の物理ネットワークインタフェースを通じて前記第３の無線端末へ送信し、
前記第３の制御部は、前記第３の物理ネットワークインタフェースを通じて前記第３のカプセル化パケットを受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のカプセル化ヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記第３の物理ネットワークインタフェースを通じて前記第１の無線端末へ送信し、
前記第１の制御部は、前記第１の物理ネットワークインタフェースを通じて前記第４のカプセル化パケットを受信すると、前記第４のカプセル化パケットをデカプセル化して得た前記第２のパケットを、前記第１の仮想ネットワークインタフェースを通じて前記第１のアプリケーション実行部へ送信する、
通信方法。
［付記９］
付記７または８に記載の通信方法において、
前記第３の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御する、
通信方法。
［付記１０］
付記７乃至９の何れかに記載の通信方法において、
前記第３の制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御する、
通信方法。
［付記１１］
付記７乃至１０の何れかに記載の通信方法において、
前記第３の制御部は、前記第１のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御する、
通信方法。
［付記１２］
付記７乃至１１の何れかに記載の通信方法において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
通信方法。
［付記１３］
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末であって、
通信を行う第１のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第１の物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第１の仮想ＩＰアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末における前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末が、前記第１の無線端末に接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末へ送信する制御部と、
を備える無線端末。
［付記１４］
付記１３に記載の無線端末であって、
前記制御部は、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスとする第２のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末から受信すると、前記第２のカプセル化パケットをデカプセル化して得た前記第２のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信するように構成されている、
無線端末。
［付記１５］
付記１３または１４に記載の無線端末において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
通信システム。
［付記１６］
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、通信を行う第１のアプリケーションプログラムが動作する第１の無線端末が属する第１のグループから離脱して、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末が属する第２のグループに接続するスイッチングと、前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを、交互に繰り返す第３の無線端末であって、
第３の物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末から受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末へ送信する制御部と、
を備える無線端末。
［付記１７］
付記１６に記載の無線端末において、
前記制御部は、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第３のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末から受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末へ送信するように構成されている、
無線端末。
［付記１８］
付記１６または１７に記載の無線端末において、
前記制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
無線端末。
［付記１９］
付記１６乃至１８の何れかに記載の無線端末において、
前記制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末。
［付記２０］
付記１６乃至１９の何れかに記載の無線端末において、
前記制御部は、前記第１のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末。
［付記２１］
付記１６乃至２０の何れかに記載の無線端末において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
無線端末。
［付記２２］
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属し、通信を行う第１のアプリケーションプログラムを実行するアプリケーション実行部と前記第１の物理ＩＰアドレスを有する物理ネットワークインタフェースと前記第１の仮想ＩＰアドレスを有する仮想ネットワークインタフェースと制御部とを有する第１の無線端末が実行する通信制御方法であって、
前記制御部は、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末における前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末が、前記第１の無線端末に接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末へ送信する、
無線端末の通信制御方法。
［付記２３］
付記２２に記載の無線端末の通信制御方法であって、
前記制御部は、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスとする第２のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末から受信すると、前記第２のカプセル化パケットをデカプセル化して得た前記第２のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信する、
無線端末の通信制御方法。
［付記２４］
付記２２または２３に記載の無線端末の通信制御方法において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
無縁端末の通信制御方法。
［付記２５］
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、通信を行う第１のアプリケーションプログラムが動作する第１の無線端末が属する第１のグループから離脱して、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末が属する第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返し、且つ、物理ＩＰアドレスを有する物理ネットワークインタフェースと制御部とを有する第３の無線端末の通信制御方法であって、
前記制御部は、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末から受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末へ送信する、
無線端末の通信制御方法。
［付記２６］
付記２５に記載の無線端末の通信制御方法において、
前記制御部は、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第３のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末から受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末へ送信する、
無線端末の通信制御方法。
［付記２７］
付記２５または２６に記載の無線端末の通信制御方法において、
前記制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
無線端末の通信制御方法。
［付記２８］
付記２５乃至２７の何れかに記載の無線端末の通信制御方法において、
前記制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末の通信制御方法。
［付記２９］
付記２５乃至２８の何れかに記載の無線端末の通信制御方法において、
前記制御部は、前記第１のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末の通信制御方法。
［付記３０］
付記２５乃至２９の何れかに記載の無線端末の通信制御方法において、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
無線端末の通信制御方法。
［付記３１］
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、第１のグループに属する第１の無線端末を構成するコンピュータを、
通信を行う第１のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第１の物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第１の仮想ＩＰアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、第２のグループに属し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末における前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットを受信すると、第３の物理ＩＰアドレスを有し、前記第１のグループから離脱して前記第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末が、前記第１の無線端末に接続されているときに、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末へ送信する制御部と、
して機能させるためのプログラム。
［付記３２］
付記３１に記載のプログラムであって、
前記制御部は、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスとする第２のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第３の無線端末から受信すると、前記第２のカプセル化パケットをデカプセル化して得た前記第２のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信するように構成されている、
プログラム。
［付記３３］
付記３１または３２に記載のプログラムにおいて、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
プログラム。
［付記３４］
第１の物理ＩＰアドレスおよび第１の仮想ＩＰアドレスを有し、通信を行う第１のアプリケーションプログラムが動作する第１の無線端末が属する第１のグループから離脱して、第２の物理ＩＰアドレスおよび第２の仮想ＩＰアドレスを有し、通信を行う第２のアプリケーションプログラムが動作する第２の無線端末が属する第２のグループに接続するスイッチングと前記第２のグループから離脱して前記第１のグループに接続するスイッチングとを交互に繰り返す第３の無線端末を構成するコンピュータを、
物理ＩＰアドレスを有する物理ネットワークインタフェースと、
前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第１のカプセル化ヘッダで、前記第２の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第１のヘッダを有する第１のパケットをカプセル化した第１のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末から受信すると、前記第３の無線端末に前記第２の無線端末が接続されているときに、前記第２の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第２のカプセル化ヘッダで、前記第１のカプセル化パケットをデカプセル化して得た前記第１のパケットをカプセル化した第２のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末へ送信する制御部と、
して機能させるためのプログラム。
［付記３５］
付記３４に記載のプログラムにおいて、
前記制御部は、前記第３の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第３のカプセル化ヘッダで、前記第１の仮想ＩＰアドレスを宛先ＩＰアドレスに設定した第２のヘッダを有する第２のパケットをカプセル化した第３のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第２の無線端末から受信すると、前記第３の無線端末に前記第１の無線端末が接続されているときに、前記第１の物理ＩＰアドレスを宛先ＩＰアドレスに設定した第４のヘッダで、前記第３のカプセル化パケットをデカプセル化して得た前記第２のパケットをカプセル化した第４のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第１の無線端末へ送信するように構成されている、
プログラム。
［付記３６］
付記３４または３５に記載のプログラムにおいて、
前記第３の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
プログラム。
［付記３７］
付記３４乃至３６の何れかに記載のプログラムにおいて、
前記制御部は、前記第１のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
プログラム。
［付記３８］
付記３４乃至３７の何れかに記載のプログラムにおいて、
前記制御部は、前記第１のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
プログラム。
［付記３９］
付記３４乃至３８の何れかに記載のプログラムにおいて、
前記第１のヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含み、
前記第１のカプセル化ヘッダは、ＴＣＰヘッダまたはＵＤＰヘッダを含む、
プログラム。
【符号の説明】
【０１４６】
１００…通信システム
１０１−１〜１０１−７…無線端末
１１１…アプリケーション実行部
１１２…物理ネットワークインタフェース
１１３…仮想ネットワークインタフェース
１１４…制御部
１１５…アプリケーションプログラム
１１６…制御部
１２０…情報処理装置
１２１…演算処理部
１２２…記憶部
１２３…通信モジュール
１２４…プログラム
１３０…パケット
１３１…カプセル化パケット
【図１】
2017119219.tif 000003
【図２】
2017119219.tif 000004
【図３】
2017119219.tif 000005
【図４】
2017119219.tif 000006
【図５】
2017119219.tif 000007
【図６】
2017119219.tif 000008
【図７】
2017119219.tif 000009
【図８】
2017119219.tif 000010
【図９】
2017119219.tif 000011
【図１０】
2017119219.tif 000012
【図１１】
2017119219.tif 000013
【図１２】
2017119219.tif 000014
【図１３】
2017119219.tif 000015
【図１４】
2017119219.tif 000016
【図１５】
2017119219.tif 000017
【図１６】
2017119219.tif 000018
【図１７】
2017119219.tif 000019
【図１８】
2017119219.tif 000020
【図１９】
2017119219.tif 000021
【図２０】
2017119219.tif 000022
【図２１】
2017119219.tif 000023
【図２２】
2017119219.tif 000024
【図２３】
2017119219.tif 000025
【図２４】
2017119219.tif 000026
【図２５】
2017119219.tif 000027
【図２６】
2017119219.tif 000028
【図２７】
2017119219.tif 000029
【国際調査報告】
2017119219.tif 000030
2017119219.tif 000031
2017119219.tif 000032
2017119219.tif 000033