JPWO2017119219A1 - 通信方法 - Google Patents

通信方法 Download PDF

Info

Publication number
JPWO2017119219A1
JPWO2017119219A1 JP2017560059A JP2017560059A JPWO2017119219A1 JP WO2017119219 A1 JPWO2017119219 A1 JP WO2017119219A1 JP 2017560059 A JP2017560059 A JP 2017560059A JP 2017560059 A JP2017560059 A JP 2017560059A JP WO2017119219 A1 JPWO2017119219 A1 JP WO2017119219A1
Authority
JP
Japan
Prior art keywords
address
wireless terminal
packet
physical
header
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017560059A
Other languages
English (en)
Other versions
JP6802530B2 (ja
Inventor
真人 安田
真人 安田
彦 本吉
彦 本吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2017119219A1 publication Critical patent/JPWO2017119219A1/ja
Application granted granted Critical
Publication of JP6802530B2 publication Critical patent/JP6802530B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W92/00Interfaces specially adapted for wireless communication networks
    • H04W92/16Interfaces between hierarchically similar devices
    • H04W92/18Interfaces between hierarchically similar devices between terminal devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/30Connection release
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • H04W84/20Master-slave selection or change arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Abstract

デリバリノードは、第1の無線端末と第2の無線端末とに交互に接続する。第1の無線端末は、第1のアプリケーションから、第2の無線端末の仮想IPアドレスを宛先IPアドレスとする第1のパケットが仮想ネットワークインタフェースに出力されると、カプセル化ヘッダで第1のパケットをカプセル化してデリバリノードへ送信する。デリバリノードは、受信したカプセル化パケットをデカプセル化して得た第1のパケットを、再びカプセル化して第2の無線端末へ送信する。第2の無線端末は、受信したカプセル化パケットをデカプセル化して得た第1のパケットを、仮想ネットワークインタフェースを通じて第2のアプリケーションに送信する。

Description

本発明は、ピアツーピア(以下「P2P」と記す)で相互に無線接続可能な無線端末(P2P端末)、その通信制御方法およびプログラム、通信方法、通信システムに関する。
近年、広帯域化、セキュリティ強化等の観点から、端末間通信方式としてのWi−Fi Directが注目されている。それ以前のWi−Fiネットワークが特定のデバイスをアクセスポイント(AP)としたインフラストラクチャモードで動作するのに対して、Wi−Fi Directに準拠したネットワークでは、特定のデバイスではなく任意のP2P端末がグループオーナ(Group Owner)となることで、そのグループ内での通信を可能にする(例えば非特許文献1参照)。グループオーナはグループのアクセスポイントとして動作するP2P端末であり、当該グループの親として、他のP2P端末を子(クライアント)とするグループを形成することができる。
このように形成されたP2Pグループ内においては、インターネット等に接続することなく端末間でデータの高速転送が可能となり、特にWi−Fi Directでは強固なセキュリティプロトコルがサポートされたことで従来のアドホックモード(IBSS:Independent Basic Service Setなど)に比べて高いセキュリティを実現することができる。
しかしながら、上述した無線P2Pネットワークでは、各グループが独立に形成され動作するために、通信がグループ内に限定される。また、一般に、一つのグループの最大端末数には物理的な上限がある。例えば、上述したWi−Fi Directを安価な無線LANデバイスを用いて実現する場合、そのグループの台数はデバイスがサポートする上限の5台〜10台程度に制限される。このようなグループサイズの制限は、メッセージの共有を一つのグループ内の端末だけに限定することとなり、複数のグループを含むより大きなネットワークでの情報共有を阻害する。上述した無線P2Pネットワークでは、たとえば、緊急性を有する災害情報、交通情報、SOS信号あるいは音声信号などを局所グループを超えて通知することができない。
このような状況に鑑み、デリバリノードを介してグループ間で通信を行う方法が非特許文献2によって提案されている。非特許文献2に記載される通信方法では、第1のグループのグループオーナが第1のグループ内の1つ或いは複数のクライアントノードをデリバリノードに選択し、デリバリノードが第1のグループから離脱して近隣に存在する第2のグループのグループオーナに接続し、第2のグループのグループオーナとの間で情報を転送する。デリバリノードが現在接続しているグループから離脱して他のグループに接続するメカニズムを、“スイッチング”と呼ぶ。デリバリノードが第1のグループと第2のグループとの間でスイッチングを周期的に繰り返すことで、第1のグループと第2のグループのグループオーナは、デリバリノードを介して双方向に情報を伝達することが可能になる。
他方、本発明に関連して、以下のような技術が提案されている。
特許文献1には、TRILLプロトコルに基づいて、カプセル化されているパケットを伝送するように構成されているスイッチ上の1つ以上のポートを含むスイッチシステムが提案されている。また、その0106段落に、ネットワーク内の一式のVM(仮想マシン)を1つのポートプロファイルと関連させることによって、それらをグループ化することが可能である旨、記載されている。このグループ化は、全てが同じVLANに接続されているVMをグループ化するものであり、無線P2Pネットワークにおいて形成されるグループとは概念が異なる。
特許文献2には、遠隔地に離れて存在するユーザグループ内部での適切な機密情報の共有と通常の広範な情報共有とを両立できる情報共有システムが提案されている。但し、複数グループ間を端末がスイッチするものではない。
特許文献3には、VPN(Virtual Private Network)を構築してホスト間の通信を実現する方法が記載されている。例えば、VPNを設定したネットワーク間にセキュリティを考慮したトンネル接続を設定する。例えば、PC(パーソナルコンピュータ)1−GW(ゲートウェイ)1−GW2−PC2の接続構成において、PC1とPC2でVPNを構成する場合、GW1−GW2間をトンネル接続する。そして、仮のIPアドレスを用いたIPルーティング処理により、ホスト間の通信を実現する。但し、特許文献3には、GW1−GW2間に固定的な通信路が存在しない場合のトンネル接続に関する記載はない。
特許文献4には、送信端末から連続して送信されてくるデータ量が送信端末に通知した連続受信可能データサイズに近いか否かを判断し、近いと判断された場合に連続受信可能データサイズを、増加可能か否かを判断し、増加可能と判断された場合に連続受信可能データサイズを増加させ、受信中に輻輳が発生したか否かを判断する輻輳検出手段を備え、輻輳が検知された場合に連続受信可能データサイズを小さくして応答確認を返信するデータ通信装置が提案されている。
特表2013−526234号公報 再特WO2006/059639号公報 特開2008−092170号公報 特開2000−174812号公報
Wi−Fiピアツーピア技術仕様バージョン1.1(Wi−Fi Alliance Technical Comittee PSP Task Group,Wi−Fi Peer−to−Peer(P2P)Technical Specification Version 1.1) プラカシュ チャキ、安田真人、中島一彰、「Dynamic Topology Reformation for Content Dissemination in Wi−Fi Peer−to−Peer Networks」、電子情報通信学会、2015年2月24日、2015年総合大会講演論文集BS−3−53
しかしながら、デリバリノードは第1のグループと第2のグループとの双方に同時に接続することはできず、接続する場合には何れか一方のグループのみに接続する。このため、デリバリノードが通信路の端点となる。従って、第1のグループに属する無線端末と第2のグループに属する無線端末とは、直接に通信することはできない。このような課題は、特許文献1乃至5および非特許文献1乃至2に記載される技術を組み合わせても解決するのは困難である。
本発明の目的は、上述した課題、即ち、デリバリノードを介してグループ間で直接に通信することはできない、という課題を解決する通信システムを提供することにある。
本発明の一実施形態に係る通信システムは、
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末と、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属する第2の無線端末と、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末とを含む通信システムであって、
前記第1の無線端末は、
通信を行う第1のアプリケーションプログラムを実行する第1のアプリケーション実行部と、
前記第1の物理IPアドレスを有する第1の物理ネットワークインタフェースと、
前記第1の仮想IPアドレスを有する第1の仮想ネットワークインタフェースと、
第1の制御部と、
を有し、
前記第2の無線端末は、
通信を行う第2のアプリケーションプログラムを実行する第2のアプリケーション実行部と、
前記第2の物理IPアドレスを有する第2の物理ネットワークインタフェースと、
前記第2の仮想IPアドレスを有する第2の仮想ネットワークインタフェースと、
第2の制御部と、
を有し、
前記第3の無線端末は、
前記第3の物理IPアドレスを有する第3の物理ネットワークインタフェースと、
第3の制御部と、
を有し、
前記第1の制御部は、前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部から、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、前記第1の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記第1の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信するように構成され、
前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第1のカプセル化ヘッダを受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化ヘッダをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第2の無線端末へ送信するように構成され、
前記第2の制御部は、前記第2の物理ネットワークインタフェースを通じて前記第2のカプセル化パケットを受信すると、前記第2のカプセル化パケットをデカプセル化して得た前記第1のパケットを前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部へ送信するように構成されている。
本発明の他の実施形態に係る通信方法は、
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末と、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属する第2の無線端末と、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末とを含み、前記第1の無線端末は、通信を行う第1のアプリケーションプログラムを実行する第1のアプリケーション実行部と前記第1の物理IPアドレスを有する第1の物理ネットワークインタフェースと前記第1の仮想IPアドレスを有する第1の仮想ネットワークインタフェースと第1の制御部とを有し、前記第2の無線端末は、通信を行う第2のアプリケーションプログラムを実行する第2のアプリケーション実行部と前記第2の物理IPアドレスを有する第2の物理ネットワークインタフェースと前記第2の仮想IPアドレスを有する第2の仮想ネットワークインタフェースと第2の制御部とを有し、前記第3の無線端末は、前記第3の物理IPアドレスを有する第3の物理ネットワークインタフェースと、第3の制御部とを有する、通信システムが実行する通信方法であって、
前記第1の制御部は、前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部から、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、前記第1の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記第1の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信し、
前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第1のカプセル化パケットを受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第2の無線端末へ送信し、
前記第2の制御部は、前記第2の物理ネットワークインタフェースを通じて前記第2のカプセル化パケットを受信すると、前記第2のカプセル化パケットをデカプセル化した前記第1のパケットを、前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部へ送信する。
本発明の他の実施形態に係る無線端末は、
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末であって、
通信を行う第1のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第1の物理IPアドレスを有する物理ネットワークインタフェースと、
前記第1の仮想IPアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末における前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末が、前記第1の無線端末に接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末へ送信する制御部と、
を備える。
本発明の他の実施形態に係る無線端末は、
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、通信を行う第1のアプリケーションプログラムが動作する第1の無線端末が属する第1のグループから離脱して、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末が属する第2のグループに接続するスイッチングと、前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを、交互に繰り返す第3の無線端末であって、
第3の物理IPアドレスを有する物理ネットワークインタフェースと、
前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末から受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末へ送信する制御部と、
を備える。
本発明の他の実施形態に係る無線端末の通信制御方法は、
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属し、通信を行う第1のアプリケーションプログラムを実行するアプリケーション実行部と前記第1の物理IPアドレスを有する物理ネットワークインタフェースと前記第1の仮想IPアドレスを有する仮想ネットワークインタフェースと制御部とを有する第1の無線端末が実行する通信制御方法であって、
前記制御部は、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末における前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末が、前記第1の無線端末に接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末へ送信する。
本発明の他の実施形態に係る無線端末の通信制御方法は、
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、通信を行う第1のアプリケーションプログラムが動作する第1の無線端末が属する第1のグループから離脱して、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末が属する第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返し、且つ、物理IPアドレスを有する物理ネットワークインタフェースと制御部とを有する第3の無線端末の通信制御方法であって、
前記制御部は、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末から受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末へ送信する。
本発明の他の実施形態に係るプログラムは、
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末を構成するコンピュータを、
通信を行う第1のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第1の物理IPアドレスを有する物理ネットワークインタフェースと、
前記第1の仮想IPアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末における前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末が、前記第1の無線端末に接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末へ送信する制御部と、
して機能させる。
本発明の他の実施形態に係るプログラムは、
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、通信を行う第1のアプリケーションプログラムが動作する第1の無線端末が属する第1のグループから離脱して、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末が属する第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末を構成するコンピュータを、
物理IPアドレスを有する物理ネットワークインタフェースと、
前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末から受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末へ送信する制御部と、
して機能させる。
本発明は上述した構成を有するため、デリバリノードを介してグループ間で直接に通信することができる。
本発明の第1の実施形態に係る通信システムの全体構成例を示す図である。 本発明の第1の実施形態に係る一部の無線端末のブロック図である。 本発明の第1の実施形態に係る無線端末を実現する情報処理装置の構成例を示す図である。 本発明の第1の実施形態において無線端末で動作するアプリケーションプログラム間でTCPコネクションを確立する手順の一例を示すシーケンスチャートである。 本発明の第1の実施形態で使用するカプセル化パケットのフォーマットの一例を示す図である。 本発明の第1の実施形態において無線端末で動作するアプリケーションプログラム間でTCPコネクション確立後にデータを送受信する手順の一例を示すシーケンスチャートである。 本発明の第1の実施形態において無線端末で動作するアプリケーションプログラム間でTCPコネクションを切断する手順の一例を示すシーケンスチャートである。 本発明の第1の実施形態においてデリバリノード機能を停止させる手順の一例を示すシーケンスチャートである。 本発明の第1の実施形態に係る無線端末における制御部の動作の一例を示すフローチャートである。 本発明の第1の実施形態において隣接するグループに属する無線端末の情報を収集する動作の説明図である。 本発明の第1の実施形態に係る無線端末が保有する無線端末の情報の一例を示す図である。 本発明の第1の実施形態に係るデリバリノードの制御部の動作の一例を示すフローチャートである。 本発明の第1の実施形態に係るデリバリノードのスイッチング動作を説明するための状態遷移図である。 本発明の第1の実施形態に係る通信システムで用いるWi−Fi Directの接続フローを示す図である。 本発明の第1の実施形態に係る通信システムで用いるWi−Fi DirectのDEVICE DISCOVERYの動作フローを示す図である。 本発明の第1の実施形態に係る通信システムで用いるWi−Fi Directにおいて既存グループの発見で用いるDEVICE DISCOVERYの動作フローを示す図である。 本発明の第1の実施形態に係る通信システムで用いるWi−Fi DirectにおけるGO NEGOTIATIONの動作フローを示す図である。 本発明の第1の実施形態に係る通信システムで用いるWi−Fi DirectにおけるPROVISION DISCOVERYの動作フローを示す図である。 本発明の第1の実施形態に係る通信システムで用いるWi−Fi DirectにおけるINVITATIONの動作フローを示す図である。 本発明の第1の実施形態に係る通信システムで用いるWi−Fi Directにおけるノードの離脱の動作フローを示す図である。 本発明の第2の実施形態に係るデリバリノードのスイッチング動作を説明するための状態遷移図である。 本発明の第2の実施形態に係るデリバリノードの制御部の動作の要部の一例を示すフローチャートである。 本発明の第2の実施形態において無線端末で動作するアプリケーションプログラム間でTCPコネクションを確立する手順の一例を示すシーケンスチャートである。 本発明の第3の実施形態に係るデリバリノードのスイッチング動作を説明するための状態遷移図である。 本発明の第3の実施形態で使用するTCPの輻輳ウインドウ情報を有するパケットとそのカプセル化パケットのフォーマットの一例を示す図である。 本発明の第3の実施形態に係るデリバリノードの制御部の動作の要部の一例を示すフローチャートである。 本発明の第3の実施形態において無線端末で動作するアプリケーションプログラム間でTCPコネクションを確立する手順の一例を示すシーケンスチャートである。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態に係る通信システム100は、複数の無線端末101から構成される。各々の無線端末101は、例えば、自動車などの車両に搭載された移動無線端末、あるいは歩行者が所持するスマートフォン等の移動無線端末である。各々の無線端末101は、ピアツーピアグループ(P2Pグループ)を形成することができる通信方式による無線通信を行うことができる。本実施形態では、上記通信方式は、Wi−Fi Directである。但し、本発明はWi−Fi Directに限定されず、他の無線端末とピアツーピアグループを形成することができる通信方式であれば適用できる。
図1では、複数の無線端末101が2つのピアツーピアグループ(以下、単にグループと記す)G1、G2を構成している。グループG1は、無線端末101−1が親(グループオーナ)となって形成され、無線端末101−2〜101−4がその子(クライアント)である。またグループG2は、無線端末101−5がグループオーナとなって形成され、無線端末101−6〜101−7がそのクライアントである。
グループG1に属する無線端末101−1〜101−4間では、無線端末101−1をアクセスポイントにしてWi−Fi Directによる通信が行える。またグループG2に属する無線端末101−5〜101−7間では、無線端末101−5をアクセスポイントにしてWi−Fi Directによる通信が行える。しかし、グループG1に属する無線端末101−1〜101−4とグループG2に属する無線端末101−5〜101−7との間では、グループが相違するのでWi−Fi Directによる通信は直接には行えない。そこで、本実施形態では、グループG1、G2の何れかのクライアントがデリバリノードとなり、デリバリノードとなったクライアントが、グループG1から離脱してクライアントとしてグループG2に接続し、またその逆にグループG2から離脱してクライアントとしてグループG1に接続する動作を繰り返すことにより、デリバリノードを通じてグループG1とグループG2との間の間接的な通信を実現する。デリバリノードとなるクライアントは、Wi−Fi Directによる通信可能範囲内にグループG1およびグループG2のグループオーナが存在している無線端末が望ましい。以下では、通信可能範囲内に無線端末101−1、101−5が存在しているグループG1に属するクライアント101−4がデリバリノードになる場合を例にして説明する。但し、デリバリノードになるクライアントは、無線端末101−4に限定されず、グループG1の他のクライアント101−2〜101−3であってもよいし、グループG2のクライアント101−6〜101−7であってもよい。また、複数のクライアントをデリバリノードにしてもよい。
図2は、通信システム100を構成する一部の無線端末のブロック図である。図2を参照すると、グループG1のグループオーナである無線端末101−1は、アプリケーション実行部111−1と物理ネットワークインタフェース112−1と仮想ネットワークインタフェース113−1と制御部114−1とを有する。
アプリケーション実行部111−1は、TCP/IP通信を行うアプリケーションプログラム115−1を実行する機能を有する。アプリケーションプログラム115−1は、例えば、緊急性を有する災害情報、交通情報、SOS信号などを他の無線端末で動作するアプリケーションプログラムに通信するアプリケーションであってよい。あるいはアプリケーションプログラム115−1は、他の無線端末で動作するアプリケーションプログラムとファイル等の情報を共有するアプリケーションプログラムであってよい。あるいはアプリケーションプログラム115−1は、他の無線端末で動作するアプリケーションプログラムと音声や映像などのマルチメディア情報を通信するアプリケーションプログラムであってよい。
物理ネットワークインタフェース112−1は、物理的な無線アクセスネットワークインタフェースである。この物理ネットワークインタフェース112−1には、無線端末101−1に割当てられた物理IPアドレスおよびMACアドレスが設定される。物理ネットワークインタフェース112−1は、物理NIC(ネットワークインタフェースカード)とも呼ばれる。
仮想ネットワークインタフェース113−1は、仮想的なネットワークインタフェースである。この仮想ネットワークインタフェース113−1には、無線端末101−1に割当てられた仮想IPアドレスが設定される。仮想ネットワークインタフェース113−1は、アプリケーション実行部111−1から受信したパケットを物理メディアにではなくユーザのアドレス空間に存在する制御部114−1に送信する機能を有する。また、仮想ネットワークインタフェース113−1は、制御部114−1から受信したパケットをあたかも実際の物理メディアから受信したパケットと同様に処理してアプリケーション実行部111−1へ送信する機能を有する。このような仮想ネットワークインタフェース113−1は、例えば、UNIX系OSでサポートされているTAPデバイスやTUNデバイスを使用して実現することができる。
制御部114−1は、仮想ネットワークインタフェース113−1を通じてアプリケーション実行部111−1からパケットを受信すると、受信したパケットをペイロードとして有し、デリバリノード101−4のIPアドレスを宛先IPアドレスとする別ヘッダによってカプセル化して物理ネットワークインタフェース112−1を通じてデリバリノード101−4へ送信する機能を有する。
一般に、図5に示すように、或るパケット130をペイロードとし、別ヘッダ131でカプセル化して送信することをトンネリングと呼ぶ。またカプセル化に使用する別ヘッダをカプセル化ヘッダと呼ぶ。さらに、パケット130とカプセル化ヘッダ131とをあわせたものを、カプセル化パケットあるいはカプセル化されたパケットと呼ぶ。
また制御部114−1は、物理ネットワークインタフェース112−1を通じてデリバリノード101−4からカプセル化されたパケットを受信すると、受信したカプセル化パケットからカプセル化ヘッダを除去して、即ちデカプセル化して、仮想ネットワークインタフェース113−1を通じてアプリケーション実行部111−1に送信する機能を有する。
グループG2のグループオーナである無線端末101−5は、アプリケーション実行部111−5と物理ネットワークインタフェース112−5と仮想ネットワークインタフェース113−5と制御部114−5とアプリケーションプログラム115−5とを有する。これらのアプリケーション実行部111−5、物理ネットワークインタフェース112−5、仮想ネットワークインタフェース113−5、制御部114−5、およびアプリケーションプログラム115−5は、無線端末101−1におけるアプリケーション実行部111−1、物理ネットワークインタフェース112−1、仮想ネットワークインタフェース113−1、制御部114−1、およびアプリケーションプログラム115−1と同様の機能を有する。
デリバリノード101−4は、物理ネットワークインタフェース112−4と制御部116とを有する。物理ネットワークインタフェース112−4は、無線端末101−1における物理ネットワークインタフェース112−1と同様の機能を有する。
制御部116は、無線端末101−4を無線端末101−1のグループから離脱して無線端末101−5のグループに接続するスイッチングとその逆に無線端末101−4を無線端末101−5のグループから離脱して無線端末101−1のグループに接続するスイッチングとを行う機能を有する。
また制御部116は、物理ネットワークインタフェース112−4を通じて無線端末101−1からカプセル化されたパケットを受信すると、受信したカプセル化パケットをデカプセル化し、無線端末101−5のIPアドレスを宛先IPアドレスとするカプセル化ヘッダによって再びカプセル化して物理ネットワークインタフェース112−4を通じて無線端末101−5へ送信する機能を有する。また制御部116は、物理ネットワークインタフェース112−4を通じて無線端末101−5からカプセル化したパケットを受信すると、受信したカプセル化パケットをデカプセル化し、無線端末101−1のIPアドレスを宛先IPアドレスとするカプセル化ヘッダによって再びカプセル化して物理ネットワークインタフェース112−4を通じて無線端末101−1へ送信する機能を有する。
上述したような無線端末101は、例えば図3に示すように、1以上のマイクロプロセッサ等の演算処理部121と、メモリやハードディスク等の記憶部122と、通信モジュール123とを有する情報処理装置120と、プログラム124とで実現することができる。通信モジュール123は、無線端末101どうしの通信に使用される。例えば通信モジュール123は、Wi−Fi Directのプロトコルで無線通信を行うモジュールである。プログラム124は、情報処理装置120の立ち上げ時等に外部のコンピュータ読み取り可能な記録媒体からメモリに読み込まれ、演算処理部121の動作を制御することにより、演算処理部121上に、アプリケーション実行部111、物理ネットワークインタフェース112、仮想ネットワークインタフェース113、制御部114、116といった機能的手段を実現する。
次に、図2に示した通信システム100において、無線端末101−1上で動作するアプリケーションプログラム115−1と無線端末101−5上で動作するアプリケーションプログラム115−5とが、トランスポート層のプロトコルにTCPを使用して、直接にTCP/IP通信を行う動作について説明する。
図4は、無線端末101−4をデリバリノードに選択し、このデリバリノード101−4を通じて、無線端末101−1上で動作するアプリケーションプログラム115−1と無線端末101−5上で動作するアプリケーションプログラム115−5との間にTCPコネクション(単にコネクションとも称す)を確立する手順の一例を示すシーケンスチャートである。
まず、無線端末101−1の制御部114−1は、無線端末101−4がグループG1に接続していなければ、無線端末101−4の制御部116との間でWi−Fi Directに準拠した接続手順を行い、無線端末101−4をクライアントとして無線端末101−1に接続する(ステップS101)。無線端末101−4がグループG1に既に接続している場合は、ステップS101は省略される。
次に、無線端末101−1の制御部114−1は、無線端末101−4をデリバリノードに選択し、デリバリノード101−4に対してデリバリノード指定情報を送信する(ステップS102)。このデリバリノード指定情報は、例えば、無線端末101−1の制御部114−1と無線端末101−4の制御部116との間で物理ネットワークインタフェース112−1、112−4を通じてTCP通信あるいはUDP通信を行うことにより送受信される。
デリバリノード指定情報は、デリバリノードとなるべき無線端末101−4を特定する情報(例えばノード識別子など)を含み、更に、スイッチングの対象となる無線端末101−1、101−5を特定する情報(例えばノード識別子など)、物理IPアドレス、仮想IPアドレス、MACアドレス、およびスイッチング条件を含む。スイッチング条件は、本実施形態では、スイッチング時間を含む。スイッチング時間は、スイッチングの対象となる2台の無線端末101−1、101−5のうちの一方に接続してから切断するまでの時間である。
なお、それぞれの無線端末101が予め定められたスイッチング条件を保持しており、そのスイッチング条件を使用する場合、デリバリノード指定情報中のスイッチング条件は省略してよい。また、それぞれの無線端末101が、例えば後述する図11に示すような、無線端末101を特定する情報(例えばノード識別子など)に対応付けて、無線端末101の物理IPアドレス、仮想IPアドレス、MACアドレスを記録するテーブルを有しており、デリバリノード指定情報に含まれているスイッチングの対象となる無線端末101−1、101−5を特定する情報(例えばノード識別子など)から上記テーブルを参照して、それらの物理IPアドレス、仮想IPアドレス、MACアドレスを取得できる場合、デリバリ指定情報中のスイッチングの対象となる無線端末101−1、101−5の物理IPアドレス、仮想IPアドレス、MACアドレスは省略してよい。
無線端末101−4の制御部116は、デリバリノード指定情報を受信すると、無線端末101−4を無線端末101−1、101−5との間のグループ間通信におけるデリバリノードとして機能させるために、周期的なスイッチングを開始する。具体的には、制御部116は、スイッチング対象の一方の無線端末101に接続している時間がデリバリノード指定情報で指定されたスイッチング時間に達すると、その接続を切断してスイッチング対象の他方の無線端末101に接続する、という動作を周期的に繰り返す。図4におけるステップS106の切断手順およびステップS107の接続手順は、デリバリノード指定後に無線端末101−4が最初に行ったスイッチングに係る手順を示す。切断手順および切断手順は、切断および接続を行う2つの無線端末の制御部116と114−1、114−5との間でWi−Fi Directに準拠した手順で実施される。図4では、それ以降、ステップS113の切断手順およびステップS114の接続手順による2回目のスイッチング、ステップS115の切断手順およびステップS116の接続手順による3回目のスイッチング、ステップS118の切断手順およびステップS119の接続手順による4回目のスイッチング、ステップS125の切断手順およびステップS126の接続手順による5回目のスイッチング、ステップS127の切断手順およびステップS128の接続手順による6回目のスイッチング、ステップS130の切断手順およびステップS131の接続手順による7回のスイッチングが行われている。そして、そのようなスイッチング動作と並行して、コネクション確立に必要なパケットが無線端末101−1と無線端末101−5との間で以下のようにデリバリノード101−1を通じてやりとりされている。
まず、無線端末101−1のアプリケーション実行部111−1でアプリケーションプログラム115−1が実行され、アプリケーション実行部111−1からコネクション確立要求パケットが仮想ネットワークインタフェース113−1を通じて制御部114−1に送信される(ステップS103、S104)。このコネクション確立要求パケットは、TCPヘッダの前にIPヘッダを付加したものである。TCPヘッダ中の送信元ポート番号には、アプリケーションプログラム115−1を識別するためのポート番号、宛先ポート番号には、アプリケーションプログラム115−5を識別するためのポート番号が設定される。またIPヘッダ中の送信元IPアドレスには無線端末101−1の仮想IPアドレス、宛先IPアドレスには無線端末101−5の仮想IPアドレスが設定される。
無線端末101−1の制御部114−1は、仮想ネットワークインタフェース113−1を通じてアプリケーション実行部111−1からコネクション確立要求パケットを受信すると、無線端末101−1にデリバリノード101−4が接続されている期間に、上記受信したコネクション確立要求パケットをカプセル化ヘッダでカプセル化して、物理ネットワークインタフェース112−1を通じて無線端末101−4へ送信する(ステップS105)。ステップS105のトンネリングでは、UDPヘッダの前にIPヘッダを付加したものをカプセル化ヘッダとして使用し、IPヘッダ中の送信元IPアドレスに無線端末101−1の物理IPアドレスを設定し、宛先IPアドレスに無線端末101−4の物理IPアドレスを設定する。
無線端末101−4の制御部116は、物理ネットワークインタフェース112−4を通じてカプセル化されたパケットを無線端末101−1から受信すると、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出し、デリバリノード101−4の物理IPアドレスを宛先IPアドレスとするカプセル化ヘッダによってコネクション確立要求パケットを再びカプセル化し、無線端末101−4に無線端末101−5が接続されている期間に、物理ネットワークインタフェース112−4を通じて無線端末101−5へ送信する(ステップS108)。
無線端末101−5の制御部114−5は、物理ネットワークインタフェース112−5を通じて無線端末101−4からカプセル化されたパケットを受信すると、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出す。そして、制御部114−5は、このコネクション確立要求パケットを、仮想ネットワークインタフェース113−5を通じてアプリケーション実行部115−5へ送信する(ステップS109、S110)。
アプリケーション実行部115−5は、仮想ネットワークインタフェース113−5を通じてコネクション確立要求パケットを受信する。これによって、無線端末101−5のアプリケーションプログラム115−5は、無線端末101−1のアプリケーションプログラム115−1からコネクション確立要求が出されたことを知ることができる。
次に、上記コネクション確立要求に対して応答するために、無線端末101−5のアプリケーション実行部111−5からコネクション確立要求に対する確認応答とコネクション確立要求とを兼ねるパケット(以下、単にコネクション確立要求パケットと称す)が仮想ネットワークインタフェース113−5を通じて制御部114−5に送信される(ステップS111、S112)。このコネクション確立要求パケットは、TCPヘッダの前にIPヘッダを付加したものである。TCPヘッダ中の送信元ポート番号には、アプリケーションプログラム115−5を識別するためのポート番号、宛先ポート番号には、アプリケーションプログラム115−1を識別するためのポート番号が設定される。またIPヘッダ中の送信元IPアドレスには無線端末101−5の仮想IPアドレス、宛先IPアドレスには無線端末101−1の仮想IPアドレスが設定される。
無線端末101−5の制御部114−5は、仮想ネットワークインタフェース113−5を通じてアプリケーション実行部111−5からコネクション確立要求パケットを受信すると、無線端末101−5にデリバリノード101−4が接続されている期間に、上記受信したコネクション確立要求パケットをカプセル化ヘッダでカプセル化して、物理ネットワークインタフェース112−5を通じて無線端末101−4へ送信する(ステップS117)。ステップS117のトンネリングでは、UDPヘッダの前にIPヘッダを付加したものをカプセル化ヘッダとして使用し、IPヘッダ中の送信元IPアドレスに無線端末101−5の物理IPアドレスを設定し、宛先IPアドレスに無線端末101−4の物理IPアドレスを設定する。
無線端末101−4の制御部116は、物理ネットワークインタフェース112−4を通じてカプセル化されたパケットを無線端末101−5から受信すると、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出し、無線端末101−1の物理IPアドレスを宛先IPアドレスとするカプセル化ヘッダによってコネクション確立要求パケットを再びカプセル化し、無線端末101−4に無線端末101−1が接続されている期間に、物理ネットワークインタフェース112−4を通じて無線端末101−1へ送信する(ステップS120)。
無線端末101−1の制御部114−1は、物理ネットワークインタフェース112−1を通じてデリバリノード101−4からカプセル化されたパケットを受信すると、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出す。そして、制御部114−1は、このコネクション確立要求パケットを、仮想ネットワークインタフェース113−1を通じてアプリケーション実行部115−1へ送信する(ステップS121、S122)。
アプリケーション実行部115−1は、仮想ネットワークインタフェース113−1を通じてコネクション確立要求パケットを受信する。これによって、無線端末101−1のアプリケーションプログラム115−1は、アプリケーションプログラム115−5からの確認応答兼コネクション確立要求を受信することができる。
次に、上記確認応答兼コネクション確立要求に対して応答するために、無線端末101−1のアプリケーション実行部111−1から確認応答パケットが送信されると、この確認応答パケットは、アプリケーション実行部111−1が最初に送信したコネクション確立要求と同様の手順(ステップS103〜S105、S108〜S110)により、無線端末101−5のアプリケーション実行部111−5へ送り届けられる(ステップS123、S124、S129、S132〜S134)。
こうして、無線端末101−1上で動作するアプリケーションプログラム115−1と無線端末101−5上で動作するアプリケーションプログラム115−5との間にTCPコネクションが確立する(ステップS135)。
図6は、TCPコネクション確立後、無線端末101−1のアプリケーションプログラム115−1と無線端末101−5のアプリケーションプログラム115−5との間でデータを送受信する手順の一例を示すシーケンスチャートである。図5に示すように、デリバリノード101−4によるスイッチング動作はTCPコネクション確立後も継続して行われており、スイッチング動作と並行して、アプリケーションデータをペイロードに有するパケット(以下、データパケットと称す)が、デリバリノード101−1を通じてアプリケーションプログラム115−1とアプリケーションプログラム115−5との間で授受される。
図6の例では、TCPコネクション確立後、アプリケーションプログラム115−1からアプリケーションプログラム115−5へ最初のデータパケットを送信している。アプリケーション実行部111−1から仮想ネットワークインタフェース113−1を通じて制御部114−1にデータパケットを送信するステップS140、S141、制御部114−1からデリバリノード101−4の制御部116にデータパケットをカプセル化して送信するステップS142、制御部116が受信したカプセル化パケットをデカプセル化し、再びカプセル化して無線端末101−5の制御部114−5へ送信するステップS143、制御部114−5が受信したカプセル化パケットをデカプセル化して仮想ネットワークインタフェース113−5を通じてアプリケーション実行部111−5へ送信するステップS144、S155は、図4のステップS103〜S105、S108〜S110と比較して、データパケットであるか、コネクション確立要求パケットであるかの違いがあるだけであるため、その詳細な説明は省略する。
TCPコネクション確立後、アプリケーションプログラム115−1から最初のデータパケットを正常に受信したアプリケーションプログラム115−5は、そのデータパケットに対する肯定確認応答パケットを送信する。アプリケーション実行部111−5から仮想ネットワークインタフェース113−5を通じて制御部114−5に肯定確認応答パケットを送信するステップS146、S147、制御部114−5からデリバリノード101−4の制御部116に肯定確認応答パケットをカプセル化して送信するステップS148、制御部116が受信したカプセル化パケットをデカプセル化し、再びカプセル化して無線端末101−1の制御部114−1へ送信するステップS149、制御部114−1が受信したカプセル化パケットをデカプセル化して仮想ネットワークインタフェース113−1を通じてアプリケーション実行部111−1へ送信するステップS150、S151は、図4のステップS111〜S112、S117、S120〜S122と比較して、肯定確認応答パケットであるか、確認応答兼コネクション確立要求パケットであるかの違いがあるだけであるため、その詳細な説明は省略する。
また図6では、アプリケーションプログラム115−5から最初のデータパケットに対する肯定確認応答パケットを受信したアプリケーションプログラム111−1は、肯定確認応答を待たずに送れるパケット数あるいはデータ量を大きくし、複数のデータパケットを連続してアプリケーションプログラム115−5へ送信している。このときの個々のデータパケットは、ステップS140〜S145の手順と同様の手順により、アプリケーションプログラム111−5に届けられる(ステップS152〜S157)。
こうして、無線端末101−1上で動作するアプリケーションプログラム115−1と無線端末101−5上で動作するアプリケーションプログラム115−5との間でTCPコネクションを通じてデータが授受される。
図7は、無線端末101−1のアプリケーションプログラム115−1と無線端末101−5のアプリケーションプログラム115−5との間でTCPコネクションを切断する手順の一例を示すシーケンスチャートである。図7に示すように、デリバリノード101−4によるスイッチング動作はなおも継続して行われており、スイッチング動作と並行して、TCPコネクションの切断に係るパケットが、デリバリノード101−1を通じてアプリケーションプログラム115−1とアプリケーションプログラム115−5との間で授受される。
図7の例では、アプリケーションプログラム115−1からアプリケーションプログラム115−5へコネクション切断要求パケットを送信している。アプリケーション実行部111−1から仮想ネットワークインタフェース113−1を通じて制御部114−1にコネクション切断要求パケットを送信するステップS160、S161、制御部114−1からデリバリノード101−4の制御部116にコネクション切断要求パケットをカプセル化して送信するステップS162、制御部116が受信したカプセル化パケットをデカプセル化し、再びカプセル化して無線端末101−5の制御部114−5へ送信するステップS163、制御部114−5が受信したカプセル化パケットをデカプセル化して仮想ネットワークインタフェース113−5を通じてアプリケーション実行部111−5へ送信するステップS164、S165は、図4のステップS103〜S105、S108〜S110と比較して、コネクション切断要求パケットであるか、コネクション確立要求パケットであるかの違いがあるだけであるため、その詳細な説明は省略する。
アプリケーションプログラム115−1からコネクション切断要求パケットを受信したアプリケーションプログラム115−5は、コネクション切断要求に対する確認応答パケットおよびコネクション切断要求パケットを連続して送信する。アプリケーション実行部111−5から仮想ネットワークインタフェース113−5を通じて制御部114−5に確認応答パケットおよびコネクション切断要求パケットを送信するステップS166、S167、制御部114−5からデリバリノード101−4の制御部116に確認応答パケットおよびコネクション切断要求パケットをカプセル化して送信するステップS168、制御部116が受信したカプセル化パケットをデカプセル化し、再びカプセル化して無線端末101−1の制御部114−1へ送信するステップS169、制御部114−1が受信したパケットをデカプセル化して仮想ネットワークインタフェース113−1を通じてアプリケーション実行部111−1へ送信するステップS170、S171は、図4のステップS111〜S112、S117、S120〜S122と比較して、確認応答パケットおよびコネクション切断要求パケットであるか、コネクション確立要求パケットであるかの違いがあるだけであるため、その詳細な説明は省略する。
また、アプリケーションプログラム115−5から確認応答パケットおよびコネクション切断要求パケットを受信したアプリケーションプログラム111−1は、受信したコネクション要求パケットに対する確認応答パケットをアプリケーションプログラム115−5へ送信する。このときの確認応答パケットは、ステップS160〜S165の手順と同様の手順により、アプリケーションプログラム111−5に届けられる(ステップS172〜S177)。
こうして、無線端末101−1上で動作するアプリケーションプログラム115−1と無線端末101−5上で動作するアプリケーションプログラム115−5との間のTCPコネクションが切断される(ステップS178)。
図8は、無線端末101−4のデリバリノード機能を停止させる手順の一例を示すシーケンスチャートである。
無線端末101−1の制御部114−1は、アプリケーションプログラム115−1の実行が終了したことなどを理由に、無線端末101−4のデリバリノード機能を停止する場合、デリバリノード101−4に対してデリバリノード停止情報を送信する(ステップS181)。このデリバリノード停止情報は、例えば、無線端末101−1の制御部114−1と無線端末101−4の制御部116との間で物理ネットワークインタフェース112−1、112−4を通じてTCP通信あるいはUDP通信を行うことにより送受信される。
デリバリノード停止情報は、デリバリノード機能を停止させる無線端末101−4を特定する情報(例えばノード識別子など)を含む。無線端末101−4の制御部116は、デリバリノード停止情報を受信すると、無線端末101−4を無線端末101−1、101−5との間のグループ間通信におけるデリバリノードとして機能させる制御を停止する(ステップS182)。これによって、無線端末101−4は周期的なスイッチング動作を停止する。
次に、無線端末101の制御部114(制御部114−1および制御部114−5)について詳細に説明する。
図9は制御部114の動作の一例を示すフローチャートである。制御部114は、起動されると、隣接する他のグループに属する無線端末の情報を収集する(ステップS201)。以下、図10および図11を参照して、ステップS201の詳細を説明する。
図10に示すように、グループオーナである無線端末101−1とそのクライアントである無線端末101−2〜101−4とから構成されるグループG1に隣接して、グループオーナである無線端末101−5とそのクライアントである無線端末101−6〜101−7とから構成されるグループG2が存在している状況を想定する。グループG1に属する無線端末101−1〜101−4は、例えば図11(a)に示すような無線端末の情報を共有し、グループG2に属する無線端末101−5〜101−7は、例えば図11(b)に示すような無線端末の情報を共有している。
図11に示す無線端末の情報は、無線端末101毎のエントリを有し、1つのエントリは、ノード識別子とMACアドレスと物理IPアドレスと仮想IPアドレスとオーナビットとグループ識別子とから構成される。ノード識別子は、無線端末101を一意に識別する名前等であり、MACアドレスと物理IPアドレスと仮想IPアドレスは、当該無線端末に設定されたMACアドレスと物理IPアドレスと仮想IPアドレスである。オーナビットは、当該無線端末がグループオーナのとき値1に、クライアントのときに値0に設定される。グループ識別子は、当該無線端末101が属しているグループの識別子である。
グループG1に属するクライアントである無線端末101−2〜101−4の各々は、Device Discovery処理のためにプローブ要求を送出し、送信したプローブ要求に対して近隣に存在する無線端末101−4からプローブ応答を受信すると、当該プローブ応答により発見されたグループG2のグループオーナの情報をグループオーナである無線端末101−1へ通知する。無線端末101−1の制御部114は、発見されたグループG2のグループオーナ101−5に接続させるデリバリノードを無線端末101−2〜101−4から決定する。そして、例えば無線端末101−4をデリバリノードに決定すると、無線端末101−1の制御部114は、デリバリノード101−4に対して一時的に無線端末101−5に接続して無線端末の情報を共有するように要求して、グループG1から切り離す。グループG1から切り離されたデリバリノード101−4は、グループG2の無線端末101−5に接続し、無線端末101−5〜101−7との間で図11に示した無線端末の情報を送受信する。次に、デリバリノード101−4は、グループG2から離脱してグループG1の無線端末101−1に接続し、無線端末101−1〜101−3との間で図11に示した無線端末の情報を送受信する。
以上のような動作が行われることにより、グループG1、G2の無線端末101−1〜101−7は、図11に示した他のグループの無線端末の情報を共有することになる。
以上が、図9のステップS201の詳細な動作の一例である。なお、図9のステップS201による動作は上述した例に限定されない。例えば、無線端末101の各々が、Wi−Fi Directによる通信機能の他に、3GやLTE等のセルラー通信機能を有する場合、セルラー通信機能による無線端末間の通信によって、図11に示したグループの無線端末の情報を互いに共有するようにしてよい。
再び図9を参照すると、無線端末101の制御部114は、アプリケーション実行部111から通信相手の仮想IPアドレスを含む通信開始要求を受信したか否かを判定する(ステップS202)。通信開始要求を受信していない場合、制御部114は、ステップS203、S204をスキップしてステップS205へ進む。通信開始要求を受信している場合、制御部114は、クライアントの中からデリバリノードとする無線端末101を決定し(ステップS203)、そのデリバリノードにデリバリノード指定情報を送信する(ステップS204)。そして、制御部114は、ステップS205へ進む。デリバリノード指定情報は、例えば、デリバリノードとなるべき無線端末101を特定するノード識別子、スイッチングの対象となる2台の無線端末101−1のノード識別子、物理IPアドレス、仮想IPアドレス、MACアドレス、およびスイッチング条件を含む。以下では、無線端末101−4がデリバリノードになったものとして説明する。
ステップS205では、無線端末101の制御部114は、アプリケーション実行部111−1から仮想ネットワークインタフェース113を通じてパケットを受信したか否かを判定する。制御部114は、パケットを受信した場合、受信したパケットを制御部114内のFIFOバッファに格納する(ステップS206)。そして、制御部114はステップS207へ進む。パケットを受信していない場合、制御部114は、ステップS206をスキップしてステップS207へ進む。
ステップS207では、無線端末101の制御部114は、FIFOバッファが空か否かを判定する。FIFOバッファが空であれば、制御部114はステップS211へ進む。FIFOバッファが空でなければ、制御部114は、無線端末101がデリバリノード101に接続中か否かを判定する(ステップS208)。接続中でなければ、制御部114はステップS211へ進む。接続中であれば、制御部114は、FIFOバッファ中の個々のパケットについて、所定のカプセル化ヘッダでパケットをカプセル化して物理ネットワークインタフェース112を通じてデリバリノード101へ送信する(ステップS209)。そして、制御部114はステップS211へ進む。
ステップS211では、無線端末101の制御部114は、物理ネットワークインタフェース112を通じてデリバリノードからカプセル化パケットを受信したか否かを判定する。カプセル化パケットを受信していなければ、制御部114はステップS214へ進む。カプセル化パケットを受信していれば、制御部114は、カプセル化パケットをデカプセル化し、仮想ネットワークインタフェース113を通じてアプリケーション実行部111−1へ送信する(ステップS212)。そして、制御部114はステップS214へ進む。
ステップS214では、無線端末101の制御部114は、アプリケーション実行部111から仮想ネットワークインタフェース113を通じて通信終了要求を受信したか否かを判定する。通信終了要求を受信していなければ、制御部114はステップS201に戻って上述した処理を繰り返す。通信終了要求を受信していれば、制御部114は、デリバリノード101に対してデリバリノード終了情報を送信する(ステップS215)。そして、制御部114はステップS201に戻って上述した処理を繰り返す。
以上が、無線端末101の制御部114(制御部114−1および制御部114−5)の詳細である。
次に、デリバリノード101−4の制御部116について詳細に説明する。
図12はデリバリノードの制御部116の動作の一例を示すフローチャートである。制御部116は、起動されると、物理ネットワークインタフェース112からパケットを受信したか否かを判定する(ステップS221)。パケットを受信していなければ、制御部116はステップS230へ進む。パケットを受信していれば、制御部116は、受信パケットがデリバリノード指定情報パケットか否かを判定する(ステップS222)。デリバリノード指定情報パケットでなければ、制御部116はステップS224へ進む。デリバリノード指定情報パケットであれば、制御部116は、内部のスイッチングフラグを1にセットし、デリバリノード指定情報に従った周期的なスイッチング動作を開始する(ステップS223)。そして、制御部116はステップS224へ進む。
図13は、デリバリノードのスイッチング動作を説明するための状態遷移図である。デリバリノードの制御部116は、デリバリノード指定情報で指定された2台のスイッチング対象の一方を第1の無線端末、他方を第2の無線端末とすると、デリバリノードが第1の無線端末に接続している状態S1において、デリバリノード指定情報のデリバリノード条件で指定されたスイッチング時間が経過すると、第1の無線端末との接続を切断して第2の無線端末に接続し、デリバリノードが第2の無線端末に接続している状態S2に遷移する。また、デリバリノードが第2の無線端末に接続している状態S2において、デリバリノード条件で指定されたスイッチング時間が経過すると、第2の無線端末との接続を切断して第1の無線端末に接続し、デリバリノードが第1の無線端末に接続している状態S1に遷移する。
ステップS224では、デリバリノードの制御部116は、受信パケットがデリバリノード終了情報パケットか否かを判定する。デリバリノード終了情報パケットでなければ、制御部116はステップS226へ進む。デリバリノード終了情報パケットであれば、制御部116は、スイッチングフラグを0にリセットし(ステップS225)、ステップS226へ進む。
ステップS226では、デリバリノードの制御部116は、受信パケットがカプセル化パケットか否かを判定する。カプセル化パケットでなければ、制御部116はステップS230へ進む。カプセル化パケットであれば、制御部116は、当該カプセル化パケットの送信元が2台のスイッチング対象のうちの第1の無線端末か、第2の無線端末かを判定する(ステップS227)。次に制御部116は、送信元が第1の無線端末であれば、カプセル化パケットをデカプセル化して得たパケットを、第2の無線端末の物理IPアドレスを宛先IPアドレスとする所定のカプセル化ヘッダで再びカプセル化して、制御部116内の第2のFIFOバッファに格納し(ステップS228)、ステップS230へ進む。また制御部116は、送信元が第2の無線端末であれば、カプセル化パケットをデカプセル化して得たパケットを、第1の無線端末の物理IPアドレスを宛先IPアドレスとする所定のカプセル化ヘッダで再びカプセル化して、制御部116内の第1のFIFOバッファに格納し(ステップS229)、ステップS230へ進む。
ステップS230では、デリバリノードの制御部116は、第1のFIFOバッファが空か否かを判定する。空であれば、制御部116はステップS233へ進む。空でなければ、制御部116は、デリバリノードが第1の無線端末と接続中か否かを判定する(ステップS231)。接続中でなければ、制御部116はステップS233へ進む。接続中であれば、制御部116は、第1のFIFOバッファから全てのカプセル化パケットを順に取り出して物理ネットワークインタフェース112を通じて第1の無線端末へ送信し(ステップS232)、ステップS233へ進む。
ステップS233では、デリバリノードの制御部116は、第2のFIFOバッファが空か否かを判定する。空であれば、制御部116はステップS236へ進む。空でなければ、制御部116は、デリバリノードが第2の無線端末と接続中か否かを判定する(ステップS234)。接続中でなければ、制御部116はステップS236へ進む。接続中であれば、制御部116は、第2のFIFOバッファから全てのカプセル化パケットを順に取り出して物理ネットワークインタフェース112を通じて第2の無線端末へ送信し(ステップS235)、ステップS236へ進む。
ステップS236では、デリバリノードの制御部116は、スイッチングフラグが0か否かを判定する。0でなければ、制御部116は、ステップS221に戻って上述した処理を繰り返す。0であれば、制御部116は、第1および第2のFIFOバッファが空であることを確認して、デリバリノードのスイッチング動作を停止する(ステップS237)。そして、制御部116は、ステップS221に戻って上述した処理を繰り返す。
以上が、デリバリノード101−4の制御部116の詳細である。
次に、無線端末101が有するWi−Fi Directの接続および離脱の機能について、図14乃至図20を参照して説明する。
図15乃至図20に記載されるWi−Fi制御接続部は、Wi−Fi Directのパケットを生成して物理ネットワークインタフェース112を通じて送信し、また物理ネットワークインタフェース112を通じてWi−Fi Directのパケットを受信するブロックである。Wi−Fi接続制御部は、“Device Discovery”、“Group Formation”、“WPS(Wi−Fi Protected Setup)Provisioning Phase1”、“WPS Provisioning Phase2”といった単位で制御を行う。また、Wi−Fi接続制御部は、自動接続制御部からイベント(コマンド)を受信して制御を開始し、その結果をイベント(応答)として自動接続制御部に通知する。
また自動接続制御部は、Wi−Fi接続制御部の上位階層に位置する制御部である。自動接続制御部は、Wi−Fi接続制御部を制御することにより、Wi−Fi Directによる自動接続を実現する。具体的には、例えば無線端末同士が近づいた時に自動的に1つのグループを構築し、グループ内で無線端末間通信を実現する。また、既に構築されたグループに新しい無線端末が近づいた時には構築済みのグループに自動的に参加する。さらに、構築済みのグループから無線端末を自動的に離脱させる。
ここで、Wi−Fi接続制御部および自動接続制御部は、無線端末101の制御部114、116内に実装されていてもよいし、制御部114、116外に実装されていてもよい。図15乃至図20では、無線端末を、ノードと記載している。
<Wi−Fi Directの接続および離脱>
図14に示すように、無線端末間でグループを形成する場合(CASE1)、まず、Device Discovery処理により近隣の無線端末(P2Pノード)を探索し、無線端末が発見されるとGO Negotiation処理により何れか一方がグループオーナ(GO)、他方がクライアントとなって接続する。続いて、WPS Provision Phase−1(認証フェーズ)およびPahse−2(暗号化フェーズ)が順次実行される。
既存GOに接続する場合(CASE2)、まず、Device Discovery処理により近隣の無線端末(P2Pノード)を探索し、発見された無線端末がGOであれば、Provision Discovery処理により当該GOに接続し、続いて、WPS Provision Phase−1(認証フェーズ)およびPahse−2(暗号化フェーズ)が順次実行される。
PersitentGOに接続する場合(CASE3)、まず、Device Discovery処理により近隣の無線端末(P2Pノード)を探索し、発見された無線端末がPersistentGOであれば、Invitation処理により当該PersistentGOに接続し、続いて、WPS Provision Pahse−2(暗号化フェーズ)が順次実行される。
図15に例示するように、Device Discovery動作が実行される。すなわち、各無線端末におけるWi−Fi接続制御部は、自動接続制御部から検索要求を受けると、隣接する無線端末の検索を開始し、Search状態とListen状態とを交互に繰り返す。Search状態では、所定のチャネルを順次切り替えながらProbe Requestを送出し、それに対する応答であるProbe responseを待つ。Listen状態では、他ノードからのProbe Requestを待ち、Probe Requestを受信すれば、それに対してProbe Responseを返す。無線端末N1がグループのクライアントの場合、無線端末N1のWi−Fi接続制御部が無線端末N2からProbe Responseを受信すれば、当該隣接無線端末N2の情報を隣接ノード情報として自グループのグループオーナへ通知する。
図16に例示するように、既存GOに対するDevice Discovery動作が実行される。無線端末N2をグループオーナとするグループが既に構築されている場合、無線端末N1からのProbe Requestに対して、GOの無線端末N2がProbe Responseを返す。その際、GOの無線端末N2からのProbe ResponseのP2P Device Info Attributeには、当該グループに属するクライアントのリスト(ここでは、ノードN2とN3の情報)が含まれる。
図17に例示するように、無線端末間でグループを形成する際のGO Negotiation動作が実行される。無線端末間でGO Negotiation Request、GO Negotiation ResponseおよびGO Negotiation Confirmationをやりとりすることで、一方の無線端末がGOとなり、ビーコンをブロードキャストし始める。
図18に例示するように、既存GOに接続するためのProvision Discovery動作が実行される。無線端末N1からの無線端末N2に対するProvision Discovery Requestに対して、GOの無線端末N2が無線端末N1に対するProvision Discovery Responseを返すことで無線端末N1が無線端末N2に接続される。
図19に例示するように、Persistent−GOに接続するためのInvitation動作が実行される。無線端末N1からの無線端末N2に対するInvitation Requestに対して、Persistent−GOの無線端末N2が無線端末N1に対するInvitation Responseを返すことで、無線端末N1が無線端末N2に接続される。
図20に示すように、クライアント主導の離脱では、クライアントの無線端末N1がDeauthenticationあるいはDisassociation IndicationをGOの無線端末N2へ送信することで、離脱可能である。逆に、グループオーナ主導の離脱では、GOの無線端末N2がクライアントの無線端末N1へDeauthenticationあるいはDisassociation Indicationを送信することでクライアントを離脱させることができる。
以上説明したように本実施形態によれば、グループG1に属する無線端末101−1上で動作するアプリケーションプログラム115−1とグループG2に属する無線端末101−5上で動作するアプリケーションプログラム115−5との間でデリバリノード101−4を通じて直接に通信することができる。その理由は、無線端末101−1および無線端末101−5のそれぞれに仮想IPアドレスを設定し、アプリケーションプログラム115−1とアプリケーションプログラム115−5との間の通信を、仮想IPアドレスを使用したパケットで行い、仮想IPアドレスを宛先IPアドレスとするパケットが直接通過できない無線端末101−1、101−5とデリバリノード間の通信路は、物理IPアドレスを宛先IPアドレスとするカプセル化ヘッダでカプセル化して通過させるようにしたためである。また、無線端末101−1と無線端末101−5間がデリバリノードを通じて固定的に接続されず、間欠的に接続されることを考慮し、無線端末101−1と無線端末101−5間のトンネリングを、無線端末101−1とデリバリノード101−4間のトンネリング、デリバリノード101−4と無線端末101−5間のトンネリングとに分けるようにしたためである。
このように、アプリケーションプログラム間で直接にTCP/IP通信を行えるため、既存のアプリケーションプログラムを改変せずにグループを跨いだ通信が可能となる。また複数の無線通信をホップしたテザリングが実現できる。
また本実施形態によれば、アプリケーションプログラム115−1とアプリケーションプログラム115−5との間で信頼性のある通信を行うことができる。その理由は、アプリケーションプログラム115−1とアプリケーションプログラム115−5との間で、トランスポート層のプロトコルにTCPを使用したTCP/IP通信を行うためである。
[第2の実施形態]
次に本発明の第2の実施形態に係る通信システムについて説明する。
本実施形態に係る通信システムは、第1の実施形態に係る通信システムと比較して、デリバリノードのスイッチング動作が相違し、それ以外の構成および動作は第1の実施形態に係る通信システムと同じである。
図21は、本実施形態におけるデリバリノード101−4のスイッチング動作を説明するための状態遷移図である。デリバリノードの制御部116は、デリバリノード指定情報で指定された2台のスイッチング対象の一方を第1の無線端末、他方を第2の無線端末とすると、デリバリノードが第1の無線端末に接続している状態S1において、デリバリノード指定情報のデリバリノード条件で指定されたスイッチング時間が経過するか、または、第1の無線端末から受信したカプセル化パケットをデカプセル化したパケットの種別が制御パケットであるか、何れか早く成立した方を条件として、第1の無線端末との接続を切断して第2の無線端末に接続し、デリバリノードが第2の無線端末に接続している状態S2に遷移する。
また、デリバリノードの制御部116は、デリバリノード101−4が第2の無線端末に接続している状態S2において、デリバリノード条件で指定されたスイッチング時間が経過するか、または、第2の無線端末から受信したカプセル化パケットをデカプセル化したパケットの種別が制御パケットであるか、何れか早く成立した方を条件として、第2の無線端末との接続を切断して第1の無線端末に接続し、デリバリノードが第1の無線端末に接続している状態S1に遷移する。
ここで、上記制御パケットは、例えば、TCPコネクション管理に使用するコネクション確立要求パケット、このコネクション確立要求パケットに対する確認応答兼コネクション確立要求パケット、この確認応答兼コネクション確立要求パケットに対する確認応答パケット、コネクション切断要求パケット、そのコネクション切断要求パケットに対する確認応答パケットの何れか1つ、あるいは2つ、あるいは3つ、あるいは4つ、あるいは5つであってよい。また、上記制御パケットは、データパケットに対する肯定確認応答パケット、または、否定確認応答パケットであってよい。
本実施形態の場合、デリバリノードの制御部116の動作の一例を示す図12のフローチャートにおけるステップS228、S229は、図22に示すように変更される。ステップS228、S229以外のステップは図12と同じである。
図22を参照すると、デリバリノードの制御部116は、カプセル化パケットを第1の無線端末から受信したときに実行するステップS228では、受信したカプセル化パケットをデカプセル化し、再カプセル化して、第2のFIFOに格納する動作に加えて、次の動作を行う。制御部116は、デカプセル化して得たパケットの種別が、制御パケットか否かを判定し、制御パケットならば、デリバリノードを第1の無線端末から切断して第2の無線端末に接続するスイッチングを速やかに実施する。
またデリバリノードの制御部116は、カプセル化パケットを第2の無線端末から受信したときに実行するステップS229では、受信したカプセル化パケットをデカプセル化し、再カプセル化して、第1のFIFOに格納する動作に加えて、次の動作を行う。制御部116は、デカプセル化して得たパケットの種別が、制御パケットか否かを判定し、制御パケットならば、デリバリノードを第2の無線端末から切断して第1の無線端末に接続するスイッチングを実施する。
以上のような動作を行うことにより、デリバリノードが第1の無線端末に接続されている状態において第1の無線端末から制御パケットを受信すると、デリバリノードを速やかに第2の無線端末に接続して、上記受信した制御パケットを第2の無線端末へ送信することができる。また、デリバリノードが第2の無線端末に接続されている状態において第2の無線端末から制御パケットを受信すると、デリバリノードを速やかに第1の無線端末に接続して、上記受信した制御パケットを第1の無線端末へ送信することができる。この効果をTCPコネクションの確立を例にして以下説明する。但し、TCPコネクションの確立時だけでなく、TCPコネクションの切断時やデータパケットに対する肯定応答、否定応答の送信時にも同様の効果が得られる。
図23は、デリバリノード101−4を通じて、無線端末101−1上で動作するアプリケーションプログラム115−1と無線端末101−5上で動作するアプリケーションプログラム115−5との間にTCPコネクションを確立する手順の一例を示すシーケンスチャートであり、図4と同じ手順には同じステップ番号を記載している。
図23を参照すると、無線端末101−1のアプリケーション実行部111−1からコネクション確立要求パケットが仮想ネットワークインタフェース113−1を通じて制御部114−1に送信され(ステップS103、S104)、このコネクション確立要求パケットがカプセル化ヘッダでカプセル化されて、制御部114−1からデリバリノード101−4の制御部116へ送信されている(ステップS105)。デリバリノード101−4の制御部116は、図22のステップS228において、受信したカプセル化パケットをデカプセル化してコネクション確立要求パケットを取り出し、再びカプセル化ヘッダによってコネクション確立要求パケットをカプセル化して、第2のFIFOバッファに格納する。また制御部116は、デカプセル化して得たパケットが制御パケットであるため、デリバリノード101−4を第2の無線端末である無線端末101−5に速やかに接続するために、切断手順S106、切断手順S107を実施する。その結果、制御部116は、再カプセル化したコネクション確立要求パケットを、無線端末101−5の制御部114−5へ速やかに送信することができる(ステップS108)。
図23では、デリバリノード101−4の制御部116は、コネクション確立要求パケットに対する確認応答兼コネクション確立要求パケットをトンネリングにより無線端末101−5から受信したとき(ステップS117)、スイッチング時間Tの経過を待たずにスイッチングを行って(ステップS118、S119)、上記確認応答兼コネクション確立要求パケットをトンネリングにより無線端末101−1へ送信している(ステップS120)。また、デリバリノード101−4の制御部116は、確認応答兼コネクション確立要求パケットに対する確認応答パケットをトンネリングにより無線端末101−1から受信したとき(ステップS129)、スイッチング時間Tの経過を待たずにスイッチングを行って(ステップS130、S131)、上記確認応答パケットをトンネリングにより無線端末101−5へ送信している(ステップS132)。
このように本実施形態によれば、デリバリノード101−4のスイッチングのタイミングを、トンネリングするパケットの種別に応じて制御することができ、効率的なスイッチングが可能になる。
[第3の実施形態]
次に本発明の第3の実施形態に係る通信システムについて説明する。
図24は、本実施形態におけるデリバリノード101−4のスイッチング動作を説明するための状態遷移図である。デリバリノードの制御部116は、デリバリノード指定情報で指定された2台のスイッチング対象の一方を第1の無線端末、他方を第2の無線端末とすると、デリバリノードが第1の無線端末に接続している状態S1において、第1の無線端末から輻輳ウインドウ情報を受信せずにデリバリノード指定情報のデリバリノード条件で指定されたスイッチング時間が経過するか、または、第1の無線端末から輻輳ウインドウ情報を受信し、輻輳ウインドウ分のデータパケットを受信完了したか、または、第1の無線端末から輻輳ウインドウ情報を受信し、タイムアウトしたか、何れか早く成立した方を条件として、第1の無線端末との接続を切断して第2の無線端末に接続し、デリバリノードが第2の無線端末に接続している状態S2に遷移する。
また、デリバリノードの制御部116は、デリバリノード101−4が第2の無線端末に接続している状態S2において、第2の無線端末から輻輳ウインドウ情報を受信せずにデリバリノード指定情報のデリバリノード条件で指定されたスイッチング時間が経過するか、または、第2の無線端末から輻輳ウインドウ情報を受信し、輻輳ウインドウ分のデータパケットを受信完了したか、または、第2の無線端末から輻輳ウインドウ情報を受信し、タイムアウトしたか、何れか早く成立した方を条件として、第2の無線端末との接続を切断して第1の無線端末に接続し、デリバリノードが第1の無線端末に接続している状態S1に遷移する。
ここで、輻輳ウインドウ情報は、肯定確認応答を待たずに送信できるパケット数やデータサイズを示す。また、タイムアウトするまでの時間は、一般にデリバリノード条件で指定されるスイッチング時間より長く設定される。
本実施形態では、無線端末101−1のアプリケーション実行部111−1は、TCP/IP通信を行う場合、輻輳ウインドウ分のデータを送信する一連のパケットの例えば先頭パケットに、例えば図25(a)に示すように、TCPの輻輳ウインドウ情報を付加して、仮想ネットワークインタフェース113−1を通じて制御部114−1へ送信する。制御部114−1は、例えば図25(b)に示すように、輻輳ウインドウ情報が付加された状態のパケットを所定のカプセル化ヘッダでカプセル化し、デリバリノード101−4へ送信する。同様に、無線端末101−5のアプリケーション実行部111−5は、TCP/IP通信を行う場合、TCPの輻輳ウインドウ情報を、輻輳ウインドウ分のデータを送信する一連のパケットの例えば先頭パケットに付加して、仮想ネットワークインタフェース113−5を通じて制御部114−5へ送信する。制御部114−5は、輻輳ウインドウ情報が付加された状態のパケットを所定のカプセル化ヘッダでカプセル化し、デリバリノード101−5へ送信する。
また本実施形態の場合、デリバリノードの制御部116の動作の一例を示す図12のフローチャートにおけるステップS228、S229は、図26に示すように変更される。ステップS228、S229以外のステップは図12と同じである。
図26を参照すると、デリバリノードの制御部116は、カプセル化パケットを第1の無線端末から受信したときに実行するステップS228では、受信したカプセル化パケットをデカプセル化した後に、再カプセル化して、第2のFIFOに格納する動作に加えて、次の動作を行う。制御部116は、デカプセル化して得たパケットに輻輳ウインドウ情報が付加されているか否かを判定し、付加されていれば、輻輳ウインドウ分のデータの受信完了か、または、タイムアウトか、何れか早く成立した方を条件に第2の無線端末にスイッチングするようにスケジュールする。
またデリバリノードの制御部116は、カプセル化パケットを第2の無線端末から受信したときに実行するステップS229では、受信したカプセル化パケットをデカプセル化した後に、再カプセル化して、第1のFIFOに格納する動作に加えて、次の動作を行う。即ち、制御部116は、デカプセル化して得たパケットに輻輳ウインドウ情報が付加されているか否かを判定し、付加されていれば、複数ウインドウ分のデータの受信完了か、または、タイムアウトか、何れか早く成立した方を条件に第1の無線端末にスイッチングするようにスケジュールする。
以上のような動作を行うことにより、デリバリノードが第1の無線端末に接続されている状態において第1の無線端末から輻輳ウインドウ情報を受信すると、輻輳ウインドウ分のデータの受信完了までスイッチングを待機するので、輻輳ウインドウ分のデータパケットの受信中に無駄にスイッチングすることを防止でき、且つ、輻輳ウインドウ分のデータパケットの受信完了後、上記受信した輻輳ウインドウに係るデータパケットを第2の無線端末へ速やかに送信することができる。同様に、デリバリノードが第2の無線端末に接続されている状態において第2の無線端末から輻輳ウインドウ情報を受信すると、輻輳ウインドウ分のデータの受信完了までスイッチングを待機するので、輻輳ウインドウ分のデータパケットの受信中に無駄にスイッチングすることを防止でき、且つ、輻輳ウインドウ分のデータパケットの受信完了後、上記受信した輻輳ウインドウに係るデータパケットを第1の無線端末へ速やかに送信することができる。
図27は、TCPコネクション確立後、無線端末101−1のアプリケーションプログラム115−1と無線端末101−5のアプリケーションプログラム115−5との間で輻輳ウインドウ分のデータパケットを送受信する手順の一例を示すシーケンスチャートである。図27の例では、TCPコネクション確立後、アプリケーションプログラム115−1から仮想ネットワークインタフェース113−1を通じて制御部114−1へ輻輳ウインドウ分の複数のデータパケットを送信している(ステップS191、S192)。そして、先頭のデータパケットには、図25(a)を参照して説明したように、輻輳ウインドウ情報が付加されている。
無線端末101−1の制御部114−1は、アプリケーション実行部111−1から仮想ネットワークインタフェース113−1を通じて受信した一連のデータパケットのそれぞれを、所定のカプセル化ヘッダでカプセル化してデリバリノード101−4へ送信する(ステップS193)。このとき、制御部114−1は、輻輳ウインドウ情報が付加されたパケットは、図25(b)に示すように、輻輳ウインドウ情報の前にカプセル化ヘッダを付加してカプセル化する。
デリバリノード101−4の制御部116は、カプセル化されたパケットを受信し、受信したカプセル化パケットをデカプセル化して得たパケットに付加された輻輳ウインドウ情報を検出する。このため、制御部116は、検出した輻輳ウインドウ情報で示されるデータサイズ分のデータパケットを受信し終えるまで、デリバリノード101−4を無線端末101−1に接続したままにする。これにより、無線端末101−1から送信された輻輳ウインドウ分のデータパケットの全てがデリバリノード101−4で受信される(ステップS193)。そして、制御部116は、輻輳ウインドウ分のデータパケットの全てを受信し終えると、スイッチングを行って、デリバリノード101−4を無線端末101−5に接続する。次に制御部116は、再カプセル化したデータパケットを無線端末101−5へ送信する(ステップS194)。
このように本実施形態によれば、デリバリノード101−4のスイッチングのタイミングを、TCPの輻輳ウインドウ情報に基づいて制御することができ、効率的なスイッチングが可能になる。
上述した動作では、無線端末101−1と無線端末101−5との間にデリバリノード101−4を通じて1つのTCPコネクションを確立したが、複数のTCPコネクションを確立し、複数のTCPコネクションを通じてデータを並行して送受信するケースが考えられる。このように複数のTCPコネクションが混在している場合、デリバリノード101−4の制御部116は、各々のTCPコネクションの輻輳ウインドウのうちの最も小さい輻輳ウインドウに基づいてスイッチングを制御するようにしてよい。
[その他の実施形態]
上述した第1乃至第3の実施形態では、無線端末101−1のアプリケーション111−1と無線端末101−5のアプリケーション実行部111−5とは、トランスポート層のプロトコルにTCPを使用したTCP/IP通信で行った。しかし、アプリケーション間の通信はそのような通信プロトコルに限定されない。例えば、アプリケーション実行部111−1とアプリケーション実行部111−5とは、トランスポート層のプロトコルにUDPなどの他のプロトコルを使用したTCP/IP通信を行うものであってよい。
また、上述した第1乃至第3の実施形態では、無線端末101−1の制御部114−1とデリバリノード101−4の制御部116との間、および、デリバリノード101−4の制御部116と無線端末101−5の制御部114−5との間は、トランスポート層のプロトコルにUDPを使用したTCP/IP通信で行った。しかし、それら間の通信はそのような通信プロトコルに限定されない。例えば、制御部114−1と制御部116との間、および、制御部116と制御部114−5との間は、トランスポート層のプロトコルにTCPなどの他のプロトコルを使用したTCP/IP通信を行うものであってよい。
要するに、本発明において無線端末101−1、101−5とデリバリノード101−4との間のトンネリングは、TCP over UDP、UDP over TCP、UDP over UDP、TCP over TCPなどであってよい。
また、上述した第1乃至第3の実施形態では、グループG1のグループオーナである無線端末101−1で動作するアプリケーションプログラムとグループG2のグループオーナである無線端末101−5で動作するアプリケーションプログラムとの間でデリバリノードを通じて通信を直接に行った。しかし、本発明は、グループG1に属する任意の無線端末で動作するアプリケーションプログラムとグループG2に属する任意の無線端末で動作するアプリケーションプログラムとの間でデリバリノードを通じて通信することができる。グループG1のクライアントの無線端末がデリバリノードを通じてグループG2に属する無線端末と通信する場合、グループG1のグループオーナである無線端末101−1をアクセスポイントとして通信する。同様に、グループG2のクライアントの無線端末がデリバリノードを通じてグループG1に属する無線端末と通信する場合、グループG2のグループオーナである無線端末101−5をアクセスポイントとして通信する。
また、上述した第3の実施形態では、デリバリノード101−4のスイッチングのタイミングを、TCPの輻輳ウインドウ情報やタイムアウトに基づいて制御した。しかし、本発明におけるデリバリノード101−4は、一般的にはパケットの受信数やタイムアウトに基づいてスイッチングのタイミングを制御してよい。パケットの受信数は、例えばシステムパラメータとしてデリバリノード101−4に事前に設定されていてもよいし、デリバリノード指定情報で指定するようにしてもよい。また、当該受信数のパケットを受信する前に、接続開始時からの経過時間が予め設定されたタイムアウト時間に達した場合、デリバリノード101−4はスイッチングを行うように構成されていてよい。
なお、本発明は、上述した実施形態に限定されるものではない。本発明の構成や実施形態には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。
なお、本発明は、日本国にて2016年1月6日に特許出願された特願2016−000858の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
本発明はグループを動的に形成可能な複数の無線端末(ノード)からなるP2Pネットワークにおいて利用可能である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末と、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属する第2の無線端末と、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末とを含む通信システムであって、
前記第1の無線端末は、
通信を行う第1のアプリケーションプログラムを実行する第1のアプリケーション実行部と、
前記第1の物理IPアドレスを有する第1の物理ネットワークインタフェースと、
前記第1の仮想IPアドレスを有する第1の仮想ネットワークインタフェースと、
第1の制御部と、
を有し、
前記第2の無線端末は、
通信を行う第2のアプリケーションプログラムを実行する第2のアプリケーション実行部と、
前記第2の物理IPアドレスを有する第2の物理ネットワークインタフェースと、
前記第2の仮想IPアドレスを有する第2の仮想ネットワークインタフェースと、
第2の制御部と、
を有し、
前記第3の無線端末は、
前記第3の物理IPアドレスを有する第3の物理ネットワークインタフェースと、
第3の制御部と、
を有し、
前記第1の制御部は、前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部から、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、前記第1の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記第1の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信するように構成され、
前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第1のカプセル化ヘッダを受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化ヘッダをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第2の無線端末へ送信するように構成され、
前記第2の制御部は、前記第2の物理ネットワークインタフェースを通じて前記第2のカプセル化パケットを受信すると、前記第2のカプセル化パケットをデカプセル化して得た前記第1のパケットを前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部へ送信するように構成されている、
通信システム。
[付記2]
付記1に記載の通信システムにおいて、
前記第2の制御部は、前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部から、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットを受信すると、前記第2の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセル化ヘッダで前記第2のパケットをカプセル化した第3のカプセル化パケットを、前記第2の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信するように構成され、
前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第3のカプセル化パケットを受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のカプセル化ヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第1の無線端末へ送信するように構成され、
前記第1の制御部は、前記第1の物理ネットワークインタフェースを通じて前記第4のカプセル化パケットを受信すると、前記第4のカプセル化パケットをデカプセル化して得た前記第2のパケットを前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部へ送信するように構成されている、
通信システム。
[付記3]
付記1または2に記載の通信システムにおいて、
前記第3の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
通信システム
[付記4]
付記1乃至3の何れかに記載の通信システムにおいて、
前記第3の制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
通信システム。
[付記5]
付記1乃至4の何れかに記載の通信システムにおいて、
前記第3の制御部は、前記第1のパケットと一緒に送られてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
通信システム。
[付記6]
付記1乃至5の何れかに記載の通信システムにおいて、
前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
通信システム。
[付記7]
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末と、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属する第2の無線端末と、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末とを含み、前記第1の無線端末は、通信を行う第1のアプリケーションプログラムを実行する第1のアプリケーション実行部と前記第1の物理IPアドレスを有する第1の物理ネットワークインタフェースと前記第1の仮想IPアドレスを有する第1の仮想ネットワークインタフェースと第1の制御部とを有し、前記第2の無線端末は、通信を行う第2のアプリケーションプログラムを実行する第2のアプリケーション実行部と前記第2の物理IPアドレスを有する第2の物理ネットワークインタフェースと前記第2の仮想IPアドレスを有する第2の仮想ネットワークインタフェースと第2の制御部とを有し、前記第3の無線端末は、前記第3の物理IPアドレスを有する第3の物理ネットワークインタフェースと、第3の制御部とを有する、通信システムが実行する通信方法であって、
前記第1の制御部は、前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部から、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、前記第1の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記第1の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信し、
前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第1のカプセル化パケットを受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第2の無線端末へ送信し、
前記第2の制御部は、前記第2の物理ネットワークインタフェースを通じて前記第2のカプセル化パケットを受信すると、前記第2のカプセル化パケットをデカプセル化した前記第1のパケットを、前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部へ送信する、
通信方法。
[付記8]
付記7に記載の通信方法において、
前記第2の制御部は、前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部から、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットを受信すると、前記第2の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセルヘッダで、前記第2のパケットをカプセル化した第3のカプセル化パケットを、前記第2の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信し、
前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第3のカプセル化パケットを受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のカプセル化ヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第1の無線端末へ送信し、
前記第1の制御部は、前記第1の物理ネットワークインタフェースを通じて前記第4のカプセル化パケットを受信すると、前記第4のカプセル化パケットをデカプセル化して得た前記第2のパケットを、前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部へ送信する、
通信方法。
[付記9]
付記7または8に記載の通信方法において、
前記第3の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御する、
通信方法。
[付記10]
付記7乃至9の何れかに記載の通信方法において、
前記第3の制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御する、
通信方法。
[付記11]
付記7乃至10の何れかに記載の通信方法において、
前記第3の制御部は、前記第1のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御する、
通信方法。
[付記12]
付記7乃至11の何れかに記載の通信方法において、
前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
通信方法。
[付記13]
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末であって、
通信を行う第1のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第1の物理IPアドレスを有する物理ネットワークインタフェースと、
前記第1の仮想IPアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末における前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末が、前記第1の無線端末に接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末へ送信する制御部と、
を備える無線端末。
[付記14]
付記13に記載の無線端末であって、
前記制御部は、前記第1の物理IPアドレスを宛先IPアドレスとする第2のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末から受信すると、前記第2のカプセル化パケットをデカプセル化して得た前記第2のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信するように構成されている、
無線端末。
[付記15]
付記13または14に記載の無線端末において、
前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
通信システム。
[付記16]
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、通信を行う第1のアプリケーションプログラムが動作する第1の無線端末が属する第1のグループから離脱して、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末が属する第2のグループに接続するスイッチングと、前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを、交互に繰り返す第3の無線端末であって、
第3の物理IPアドレスを有する物理ネットワークインタフェースと、
前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末から受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末へ送信する制御部と、
を備える無線端末。
[付記17]
付記16に記載の無線端末において、
前記制御部は、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第3のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末から受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末へ送信するように構成されている、
無線端末。
[付記18]
付記16または17に記載の無線端末において、
前記制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
無線端末。
[付記19]
付記16乃至18の何れかに記載の無線端末において、
前記制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末。
[付記20]
付記16乃至19の何れかに記載の無線端末において、
前記制御部は、前記第1のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末。
[付記21]
付記16乃至20の何れかに記載の無線端末において、
前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
無線端末。
[付記22]
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属し、通信を行う第1のアプリケーションプログラムを実行するアプリケーション実行部と前記第1の物理IPアドレスを有する物理ネットワークインタフェースと前記第1の仮想IPアドレスを有する仮想ネットワークインタフェースと制御部とを有する第1の無線端末が実行する通信制御方法であって、
前記制御部は、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末における前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末が、前記第1の無線端末に接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末へ送信する、
無線端末の通信制御方法。
[付記23]
付記22に記載の無線端末の通信制御方法であって、
前記制御部は、前記第1の物理IPアドレスを宛先IPアドレスとする第2のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末から受信すると、前記第2のカプセル化パケットをデカプセル化して得た前記第2のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信する、
無線端末の通信制御方法。
[付記24]
付記22または23に記載の無線端末の通信制御方法において、
前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
無縁端末の通信制御方法。
[付記25]
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、通信を行う第1のアプリケーションプログラムが動作する第1の無線端末が属する第1のグループから離脱して、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末が属する第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返し、且つ、物理IPアドレスを有する物理ネットワークインタフェースと制御部とを有する第3の無線端末の通信制御方法であって、
前記制御部は、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末から受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末へ送信する、
無線端末の通信制御方法。
[付記26]
付記25に記載の無線端末の通信制御方法において、
前記制御部は、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第3のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末から受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末へ送信する、
無線端末の通信制御方法。
[付記27]
付記25または26に記載の無線端末の通信制御方法において、
前記制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
無線端末の通信制御方法。
[付記28]
付記25乃至27の何れかに記載の無線端末の通信制御方法において、
前記制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末の通信制御方法。
[付記29]
付記25乃至28の何れかに記載の無線端末の通信制御方法において、
前記制御部は、前記第1のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
無線端末の通信制御方法。
[付記30]
付記25乃至29の何れかに記載の無線端末の通信制御方法において、
前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
無線端末の通信制御方法。
[付記31]
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末を構成するコンピュータを、
通信を行う第1のアプリケーションプログラムを実行するアプリケーション実行部と、
前記第1の物理IPアドレスを有する物理ネットワークインタフェースと、
前記第1の仮想IPアドレスを有する仮想ネットワークインタフェースと、
前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末における前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末が、前記第1の無線端末に接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末へ送信する制御部と、
して機能させるためのプログラム。
[付記32]
付記31に記載のプログラムであって、
前記制御部は、前記第1の物理IPアドレスを宛先IPアドレスとする第2のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末から受信すると、前記第2のカプセル化パケットをデカプセル化して得た前記第2のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信するように構成されている、
プログラム。
[付記33]
付記31または32に記載のプログラムにおいて、
前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
プログラム。
[付記34]
第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、通信を行う第1のアプリケーションプログラムが動作する第1の無線端末が属する第1のグループから離脱して、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末が属する第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末を構成するコンピュータを、
物理IPアドレスを有する物理ネットワークインタフェースと、
前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末から受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末へ送信する制御部と、
して機能させるためのプログラム。
[付記35]
付記34に記載のプログラムにおいて、
前記制御部は、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第3のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末から受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末へ送信するように構成されている、
プログラム。
[付記36]
付記34または35に記載のプログラムにおいて、
前記第3の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
プログラム。
[付記37]
付記34乃至36の何れかに記載のプログラムにおいて、
前記制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
プログラム。
[付記38]
付記34乃至37の何れかに記載のプログラムにおいて、
前記制御部は、前記第1のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
プログラム。
[付記39]
付記34乃至38の何れかに記載のプログラムにおいて、
前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
プログラム。
100…通信システム
101−1〜101−7…無線端末
111…アプリケーション実行部
112…物理ネットワークインタフェース
113…仮想ネットワークインタフェース
114…制御部
115…アプリケーションプログラム
116…制御部
120…情報処理装置
121…演算処理部
122…記憶部
123…通信モジュール
124…プログラム
130…パケット
131…カプセル化パケット

Claims (39)

  1. 第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末と、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属する第2の無線端末と、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末とを含む通信システムであって、
    前記第1の無線端末は、
    通信を行う第1のアプリケーションプログラムを実行する第1のアプリケーション実行部と、
    前記第1の物理IPアドレスを有する第1の物理ネットワークインタフェースと、
    前記第1の仮想IPアドレスを有する第1の仮想ネットワークインタフェースと、
    第1の制御部と、
    を有し、
    前記第2の無線端末は、
    通信を行う第2のアプリケーションプログラムを実行する第2のアプリケーション実行部と、
    前記第2の物理IPアドレスを有する第2の物理ネットワークインタフェースと、
    前記第2の仮想IPアドレスを有する第2の仮想ネットワークインタフェースと、
    第2の制御部と、
    を有し、
    前記第3の無線端末は、
    前記第3の物理IPアドレスを有する第3の物理ネットワークインタフェースと、
    第3の制御部と、
    を有し、
    前記第1の制御部は、前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部から、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、前記第1の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記第1の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信するように構成され、
    前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第1のカプセル化ヘッダを受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化ヘッダをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第2の無線端末へ送信するように構成され、
    前記第2の制御部は、前記第2の物理ネットワークインタフェースを通じて前記第2のカプセル化パケットを受信すると、前記第2のカプセル化パケットをデカプセル化して得た前記第1のパケットを前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部へ送信するように構成されている、
    通信システム。
  2. 請求項1に記載の通信システムにおいて、
    前記第2の制御部は、前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部から、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットを受信すると、前記第2の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセル化ヘッダで前記第2のパケットをカプセル化した第3のカプセル化パケットを、前記第2の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信するように構成され、
    前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第3のカプセル化パケットを受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のカプセル化ヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第1の無線端末へ送信するように構成され、
    前記第1の制御部は、前記第1の物理ネットワークインタフェースを通じて前記第4のカプセル化パケットを受信すると、前記第4のカプセル化パケットをデカプセル化して得た前記第2のパケットを前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部へ送信するように構成されている、
    通信システム。
  3. 請求項1または2に記載の通信システムにおいて、
    前記第3の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
    通信システム
  4. 請求項1乃至3の何れかに記載の通信システムにおいて、
    前記第3の制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
    通信システム。
  5. 請求項1乃至4の何れかに記載の通信システムにおいて、
    前記第3の制御部は、前記第1のパケットと一緒に送られてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
    通信システム。
  6. 請求項1乃至5の何れかに記載の通信システムにおいて、
    前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
    前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
    通信システム。
  7. 第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末と、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属する第2の無線端末と、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末とを含み、前記第1の無線端末は、通信を行う第1のアプリケーションプログラムを実行する第1のアプリケーション実行部と前記第1の物理IPアドレスを有する第1の物理ネットワークインタフェースと前記第1の仮想IPアドレスを有する第1の仮想ネットワークインタフェースと第1の制御部とを有し、前記第2の無線端末は、通信を行う第2のアプリケーションプログラムを実行する第2のアプリケーション実行部と前記第2の物理IPアドレスを有する第2の物理ネットワークインタフェースと前記第2の仮想IPアドレスを有する第2の仮想ネットワークインタフェースと第2の制御部とを有し、前記第3の無線端末は、前記第3の物理IPアドレスを有する第3の物理ネットワークインタフェースと、第3の制御部とを有する、通信システムが実行する通信方法であって、
    前記第1の制御部は、前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部から、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、前記第1の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記第1の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信し、
    前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第1のカプセル化パケットを受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第2の無線端末へ送信し、
    前記第2の制御部は、前記第2の物理ネットワークインタフェースを通じて前記第2のカプセル化パケットを受信すると、前記第2のカプセル化パケットをデカプセル化した前記第1のパケットを、前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部へ送信する、
    通信方法。
  8. 請求項7に記載の通信方法において、
    前記第2の制御部は、前記第2の仮想ネットワークインタフェースを通じて前記第2のアプリケーション実行部から、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットを受信すると、前記第2の無線端末に前記第3の無線端末が接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセルヘッダで、前記第2のパケットをカプセル化した第3のカプセル化パケットを、前記第2の物理ネットワークインタフェースを通じて前記第3の無線端末へ送信し、
    前記第3の制御部は、前記第3の物理ネットワークインタフェースを通じて前記第3のカプセル化パケットを受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のカプセル化ヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記第3の物理ネットワークインタフェースを通じて前記第1の無線端末へ送信し、
    前記第1の制御部は、前記第1の物理ネットワークインタフェースを通じて前記第4のカプセル化パケットを受信すると、前記第4のカプセル化パケットをデカプセル化して得た前記第2のパケットを、前記第1の仮想ネットワークインタフェースを通じて前記第1のアプリケーション実行部へ送信する、
    通信方法。
  9. 請求項7または8に記載の通信方法において、
    前記第3の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御する、
    通信方法。
  10. 請求項7乃至9の何れかに記載の通信方法において、
    前記第3の制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御する、
    通信方法。
  11. 請求項7乃至10の何れかに記載の通信方法において、
    前記第3の制御部は、前記第1のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御する、
    通信方法。
  12. 請求項7乃至11の何れかに記載の通信方法において、
    前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
    前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
    通信方法。
  13. 第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末であって、
    通信を行う第1のアプリケーションプログラムを実行するアプリケーション実行部と、
    前記第1の物理IPアドレスを有する物理ネットワークインタフェースと、
    前記第1の仮想IPアドレスを有する仮想ネットワークインタフェースと、
    前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末における前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末が、前記第1の無線端末に接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末へ送信する制御部と、
    を備える無線端末。
  14. 請求項13に記載の無線端末であって、
    前記制御部は、前記第1の物理IPアドレスを宛先IPアドレスとする第2のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末から受信すると、前記第2のカプセル化パケットをデカプセル化して得た前記第2のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信するように構成されている、
    無線端末。
  15. 請求項13または14に記載の無線端末において、
    前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
    前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
    通信システム。
  16. 第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、通信を行う第1のアプリケーションプログラムが動作する第1の無線端末が属する第1のグループから離脱して、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末が属する第2のグループに接続するスイッチングと、前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを、交互に繰り返す第3の無線端末であって、
    第3の物理IPアドレスを有する物理ネットワークインタフェースと、
    前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末から受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末へ送信する制御部と、
    を備える無線端末。
  17. 請求項16に記載の無線端末において、
    前記制御部は、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第3のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末から受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末へ送信するように構成されている、
    無線端末。
  18. 請求項16または17に記載の無線端末において、
    前記制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
    無線端末。
  19. 請求項16乃至18の何れかに記載の無線端末において、
    前記制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
    無線端末。
  20. 請求項16乃至19の何れかに記載の無線端末において、
    前記制御部は、前記第1のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
    無線端末。
  21. 請求項16乃至20の何れかに記載の無線端末において、
    前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
    前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
    無線端末。
  22. 第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属し、通信を行う第1のアプリケーションプログラムを実行するアプリケーション実行部と前記第1の物理IPアドレスを有する物理ネットワークインタフェースと前記第1の仮想IPアドレスを有する仮想ネットワークインタフェースと制御部とを有する第1の無線端末が実行する通信制御方法であって、
    前記制御部は、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末における前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末が、前記第1の無線端末に接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末へ送信する、
    無線端末の通信制御方法。
  23. 請求項22に記載の無線端末の通信制御方法であって、
    前記制御部は、前記第1の物理IPアドレスを宛先IPアドレスとする第2のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末から受信すると、前記第2のカプセル化パケットをデカプセル化して得た前記第2のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信する、
    無線端末の通信制御方法。
  24. 請求項22または23に記載の無線端末の通信制御方法において、
    前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
    前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
    無縁端末の通信制御方法。
  25. 第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、通信を行う第1のアプリケーションプログラムが動作する第1の無線端末が属する第1のグループから離脱して、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末が属する第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返し、且つ、物理IPアドレスを有する物理ネットワークインタフェースと制御部とを有する第3の無線端末の通信制御方法であって、
    前記制御部は、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末から受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末へ送信する、
    無線端末の通信制御方法。
  26. 請求項25に記載の無線端末の通信制御方法において、
    前記制御部は、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第3のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末から受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末へ送信する、
    無線端末の通信制御方法。
  27. 請求項25または26に記載の無線端末の通信制御方法において、
    前記制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
    無線端末の通信制御方法。
  28. 請求項25乃至27の何れかに記載の無線端末の通信制御方法において、
    前記制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
    無線端末の通信制御方法。
  29. 請求項25乃至28の何れかに記載の無線端末の通信制御方法において、
    前記制御部は、前記第1のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
    無線端末の通信制御方法。
  30. 請求項25乃至29の何れかに記載の無線端末の通信制御方法において、
    前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
    前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
    無線端末の通信制御方法。
  31. 第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、第1のグループに属する第1の無線端末を構成するコンピュータを、
    通信を行う第1のアプリケーションプログラムを実行するアプリケーション実行部と、
    前記第1の物理IPアドレスを有する物理ネットワークインタフェースと、
    前記第1の仮想IPアドレスを有する仮想ネットワークインタフェースと、
    前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部から、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、第2のグループに属し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末における前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットを受信すると、第3の物理IPアドレスを有し、前記第1のグループから離脱して前記第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末が、前記第1の無線端末に接続されているときに、前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末へ送信する制御部と、
    して機能させるためのプログラム。
  32. 請求項31に記載のプログラムであって、
    前記制御部は、前記第1の物理IPアドレスを宛先IPアドレスとする第2のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第3の無線端末から受信すると、前記第2のカプセル化パケットをデカプセル化して得た前記第2のパケットを、前記仮想ネットワークインタフェースを通じて前記アプリケーション実行部へ送信するように構成されている、
    プログラム。
  33. 請求項31または32に記載のプログラムにおいて、
    前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
    前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
    プログラム。
  34. 第1の物理IPアドレスおよび第1の仮想IPアドレスを有し、通信を行う第1のアプリケーションプログラムが動作する第1の無線端末が属する第1のグループから離脱して、第2の物理IPアドレスおよび第2の仮想IPアドレスを有し、通信を行う第2のアプリケーションプログラムが動作する第2の無線端末が属する第2のグループに接続するスイッチングと前記第2のグループから離脱して前記第1のグループに接続するスイッチングとを交互に繰り返す第3の無線端末を構成するコンピュータを、
    物理IPアドレスを有する物理ネットワークインタフェースと、
    前記第3の物理IPアドレスを宛先IPアドレスに設定した第1のカプセル化ヘッダで、前記第2の仮想IPアドレスを宛先IPアドレスに設定した第1のヘッダを有する第1のパケットをカプセル化した第1のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末から受信すると、前記第3の無線端末に前記第2の無線端末が接続されているときに、前記第2の物理IPアドレスを宛先IPアドレスに設定した第2のカプセル化ヘッダで、前記第1のカプセル化パケットをデカプセル化して得た前記第1のパケットをカプセル化した第2のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末へ送信する制御部と、
    して機能させるためのプログラム。
  35. 請求項34に記載のプログラムにおいて、
    前記制御部は、前記第3の物理IPアドレスを宛先IPアドレスに設定した第3のカプセル化ヘッダで、前記第1の仮想IPアドレスを宛先IPアドレスに設定した第2のヘッダを有する第2のパケットをカプセル化した第3のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第2の無線端末から受信すると、前記第3の無線端末に前記第1の無線端末が接続されているときに、前記第1の物理IPアドレスを宛先IPアドレスに設定した第4のヘッダで、前記第3のカプセル化パケットをデカプセル化して得た前記第2のパケットをカプセル化した第4のカプセル化パケットを、前記物理ネットワークインタフェースを通じて前記第1の無線端末へ送信するように構成されている、
    プログラム。
  36. 請求項34または35に記載のプログラムにおいて、
    前記第3の制御部は、パケットの受信数もしくはタイムアウトに基づいて前記スイッチングの動作を制御するように構成されている、
    プログラム。
  37. 請求項34乃至36の何れかに記載のプログラムにおいて、
    前記制御部は、前記第1のパケットの種別に基づいて、前記スイッチングの動作を制御するように構成されている、
    プログラム。
  38. 請求項34乃至37の何れかに記載のプログラムにおいて、
    前記制御部は、前記第1のパケットと一緒に送れてくる輻輳ウインドウ情報に基づいて、前記スイッチングの動作を制御するように構成されている、
    プログラム。
  39. 請求項34乃至38の何れかに記載のプログラムにおいて、
    前記第1のヘッダは、TCPヘッダまたはUDPヘッダを含み、
    前記第1のカプセル化ヘッダは、TCPヘッダまたはUDPヘッダを含む、
    プログラム。
JP2017560059A 2016-01-06 2016-11-30 通信方法 Active JP6802530B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016000858 2016-01-06
JP2016000858 2016-01-06
PCT/JP2016/085545 WO2017119219A1 (ja) 2016-01-06 2016-11-30 通信方法

Publications (2)

Publication Number Publication Date
JPWO2017119219A1 true JPWO2017119219A1 (ja) 2018-10-25
JP6802530B2 JP6802530B2 (ja) 2020-12-16

Family

ID=59274542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017560059A Active JP6802530B2 (ja) 2016-01-06 2016-11-30 通信方法

Country Status (3)

Country Link
US (1) US10674565B2 (ja)
JP (1) JP6802530B2 (ja)
WO (1) WO2017119219A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109428748B (zh) * 2017-08-28 2022-03-29 华为技术有限公司 一种交换方法和装置
EP3654728A1 (en) * 2018-11-15 2020-05-20 Gemalto M2M GmbH Method for power optimized data transmission in a wireless cellular network

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4096428B2 (ja) 1998-12-03 2008-06-04 松下電器産業株式会社 データ通信装置及びデータ通信方法
US20030157951A1 (en) 2002-02-20 2003-08-21 Hasty William V. System and method for routing 802.11 data traffic across channels to increase ad-hoc network capacity
EP1646205A1 (en) 2004-10-08 2006-04-12 Deutsche Thomson-Brandt Gmbh Method for establishing communication between peer-groups
US8656161B2 (en) 2004-11-30 2014-02-18 Nec Corporation Information sharing system, information sharing method, group management program and compartment management program
JP4629639B2 (ja) 2006-09-29 2011-02-09 富士通株式会社 パケット中継装置
CN101399774B (zh) * 2008-10-24 2012-07-04 华为技术有限公司 一种分组数据的处理方法和系统
CA2797278A1 (en) 2010-05-03 2011-11-10 Brocade Communications Systems, Inc. Virtual cluster switching
US8660129B1 (en) * 2012-02-02 2014-02-25 Cisco Technology, Inc. Fully distributed routing over a user-configured on-demand virtual network for infrastructure-as-a-service (IaaS) on hybrid cloud networks
US9591508B2 (en) 2012-12-20 2017-03-07 Google Technology Holdings LLC Methods and apparatus for transmitting data between different peer-to-peer communication groups
US9641462B2 (en) * 2013-04-23 2017-05-02 Cisco Technology, Inc. Accelerating network convergence for layer 3 roams in a next generation network closet campus
US9432297B2 (en) * 2013-07-18 2016-08-30 National Central University Jitter-based transmission control method
WO2016024399A1 (ja) 2014-08-12 2016-02-18 日本電気株式会社 無線通信ネットワークにおけるグループ間通信方法およびシステム

Also Published As

Publication number Publication date
US20180376535A1 (en) 2018-12-27
US10674565B2 (en) 2020-06-02
JP6802530B2 (ja) 2020-12-16
WO2017119219A1 (ja) 2017-07-13

Similar Documents

Publication Publication Date Title
WO2017215401A1 (zh) 报文处理的方法及设备
EP2803244B1 (en) Methods and apparatus for establishing a tunneled direct link setup (tdls) session between devices in a wireless network
US9210536B2 (en) Method for establishing device-to-device communication
US7522540B1 (en) Extended service set mesh topology discovery
JP5088091B2 (ja) 基地局装置、通信方法及び移動通信システム
US9137641B2 (en) Wireless communication system, base station, and terminal
US7835301B1 (en) Extended service set mesh topology representation
US10454710B2 (en) Virtual local area network mismatch detection in networks
US11102702B2 (en) Method for establishing network clusters between networked devices
US20160073330A1 (en) Infrastructure access via neighbor awareness networking data path
US20170230784A1 (en) Method and apparatus for transmitting and receiving a data in a mesh network using bluetooth
Casetti et al. Data connectivity and smart group formation in Wi-Fi direct multi-group networks
EP2392107B1 (en) Methods and apparatus for forming, maintaining and/or using overlapping networks
TW201141298A (en) Method and apparatus for implementing a blanket wireless local area network control plane
US10666769B2 (en) Network system and method for establishing data link by using relay node
WO2016119754A1 (en) Providing wireless services
JP2012524448A (ja) Ieee802.11無線lan環境における通信方法
CN103200283A (zh) 多中继无线通信系统及该系统空中接口ip化的实现方法
WO2015115715A1 (ko) 무선 통신 시스템에서 세션을 초기화하는 방법 및 장치
JP6802530B2 (ja) 通信方法
JP2023535907A (ja) ルート設定方法および装置
WO2017037766A1 (en) Inter-group communication control in wireless peer-to-peer networks
US11075881B2 (en) Proxy between wireless local area network infrastructures
WO2009152357A1 (en) Mixed mode security for mesh networks
Sultan et al. Extending Wi-Fi Direct Single-Group Network to Multi-Group Network Based on Android Smartphone

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180608

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191003

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201110

R150 Certificate of patent or registration of utility model

Ref document number: 6802530

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150