WO2018047645A1 - Communication device and communication method - Google Patents
Communication device and communication method Download PDFInfo
- Publication number
- WO2018047645A1 WO2018047645A1 PCT/JP2017/030646 JP2017030646W WO2018047645A1 WO 2018047645 A1 WO2018047645 A1 WO 2018047645A1 JP 2017030646 W JP2017030646 W JP 2017030646W WO 2018047645 A1 WO2018047645 A1 WO 2018047645A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- subflow
- communication
- application
- information
- mptcp
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M11/00—Telephonic communication systems specially adapted for combination with other electrical systems
Definitions
- the present disclosure allows the application to recognize the information of the TCP subflow changed by MPTCP, and suppresses a communication error in execution of the application. With the goal.
- the application when a part of TCP connection is disconnected due to movement of a smartphone, the application can recognize the information of the TCP subflow changed by MPTCP, and suppress communication errors in the execution of the application. it can.
- the server 100B may be a relay device or a base station device.
- the relay device includes, for example, an AP (Access Point) and a gateway device.
- the TCP communication unit 155A sends the request to the server 100B via the control port subflow sf21.
- the FTP data transfer request is transmitted (S18).
- the first transfer request is made via the subflow sf11, and the second transfer request is made via the subflow sf21. Therefore, when the API 100B is not provided, the server 100B determines that an FTP data transfer request has been received from an IP address different from that at the time of establishing the FTP session (at the time of S13). Accordingly, the server 100B terminates the FTP session connection by the security check, and terminates the connection of each subflow.
- the communication method of the communication I / F 104A is a wireless LAN communication method
- the communication method of the communication I / F 106A is a wireless WAN communication method.
- the communication I / F 104A uses the IP address “XX”
- the communication I / F 106A uses the IP address “YY”.
- the communication method of the communication I / F 104B is a wireless LAN communication method
- the communication method of the communication I / F 106B is a wireless WAN communication method.
- the communication I / F 104B uses the IP address “X′X ′”
- the communication I / F 106B uses the IP address “Y′Y ′”.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Communication Control (AREA)
Abstract
Description
本開示は、通信装置及び通信方法に関する。 The present disclosure relates to a communication device and a communication method.
複数の経路を扱うTCP(Transmission Control Protocol)として、MPTCP(Multipass TCP)が知られている。MPTCPに従って通信するスマートフォンとして、広域無線通信におけるTCPコネクション、有線通信におけるTCPコネクション、及び近距離無線通信におけるTCPコネクションが、TCPサブフローとしてMPTCPコアにより管理されるものが知られている。また、例えば特許文献1に開示されているように、このMPTCPコアが、3つのTCPサブフローをまとめて単一のMPTCPコネクションを設立し、MPTCPコネクションの情報をソケットAPI(Application Program Interface)によりアプリケーションプログラムに提供する。
MPTCP (Multipass TCP) is known as TCP (Transmission Control Protocol) that handles multiple paths. As smartphones that communicate according to MPTCP, those in which a TCP connection in wide-area wireless communication, a TCP connection in wired communication, and a TCP connection in short-range wireless communication are managed by the MPTCP core as TCP subflows are known. Also, as disclosed in
本開示は、例えばスマートフォンが移動することで一部のTCPコネクションが非接続状態となった場合、MPTCPにより変更されたTCPサブフローの情報をアプリケーションが認識でき、アプリケーションの実行における通信エラーを抑制することを目的とする。 For example, in the case where a part of TCP connection is disconnected due to movement of a smartphone, the present disclosure allows the application to recognize the information of the TCP subflow changed by MPTCP, and suppresses a communication error in execution of the application. With the goal.
本開示の通信装置は、MPTCPに従って他の通信装置と通信する。通信装置は、アプリケーションを制御するアプリケーション制御部と、MPTCPの少なくとも2つのサブフローを制御する通信制御部と、IPアドレスを用いてサブフローを介してデータを通信する少なくとも2つの通信部と、サブフローに用いられるIPアドレスを含むサブフローの情報を保持する情報保持部と、を備える。情報保持部は、サブフローが変更された場合、変更後のサブフローの情報を保持する。アプリケーション制御部は、変更後のサブフローの情報を参照する。 The communication device of the present disclosure communicates with other communication devices according to MPTCP. The communication apparatus uses an application control unit that controls an application, a communication control unit that controls at least two subflows of MPTCP, at least two communication units that communicate data via a subflow using an IP address, and a subflow. And an information holding unit for holding information on the subflow including the IP address to be stored. When the subflow is changed, the information holding unit holds information on the changed subflow. The application control unit refers to the changed subflow information.
本開示の通信方法は、MPTCPに従って通信する通信方法であって、IPアドレスを用いたMPTCPの少なくとも2つのサブフローを制御し、サブフローに用いられるIPアドレスを含むサブフローの情報を情報保持部に保持し、サブフローを介してデータを通信し、サブフローが変更された場合、変更後のサブフローの情報を情報保持部に保持し、アプリケーションを制御するアプリケーション制御部が、変更後のサブフローの情報を参照する。 The communication method of the present disclosure is a communication method that performs communication according to MPTCP, controls at least two subflows of MPTCP using an IP address, and holds information on the subflow including the IP address used for the subflow in an information holding unit. When data is communicated via the subflow and the subflow is changed, the information of the changed subflow is held in the information holding unit, and the application control unit that controls the application refers to the information of the changed subflow.
本開示によれば、例えばスマートフォンが移動することで一部のTCPコネクションが非接続状態となった場合、MPTCPにより変更されたTCPサブフローの情報をアプリケーションが認識でき、アプリケーションの実行における通信エラーを抑制できる。 According to the present disclosure, for example, when a part of TCP connection is disconnected due to movement of a smartphone, the application can recognize the information of the TCP subflow changed by MPTCP, and suppress communication errors in the execution of the application. it can.
以下、適宜図面を参照しながら、実施形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。尚、添付図面及び以下の説明は、当業者が本開示を十分に理解するために提供されるものであり、これらにより請求の範囲に記載の主題を限定することは意図されていない。 Hereinafter, embodiments will be described in detail with reference to the drawings as appropriate. However, more detailed description than necessary may be omitted. For example, detailed descriptions of already well-known matters and repeated descriptions for substantially the same configuration may be omitted. This is to avoid the following description from becoming unnecessarily redundant and to facilitate understanding by those skilled in the art. The accompanying drawings and the following description are provided to enable those skilled in the art to fully understand the present disclosure, and are not intended to limit the claimed subject matter.
(第1の実施形態)
[構成等]
図1は、第1の実施形態における通信システム10の構成例を示す模式図である。通信システム10は、複数の通信装置100を備える。複数の通信装置100は、ネットワークNTを介して接続される。通信装置100は、例えば、携帯端末100A及びサーバ100Bを含む。本実施形態では、一例として、携帯端末100AとサーバBとが、ネットワークNTを介して、MPTCPに従って通信することを想定する。
(First embodiment)
[Configuration]
FIG. 1 is a schematic diagram illustrating a configuration example of a
携帯端末100Aは、例えば、PC(Personal Computer)、スマートフォン、携帯電話、カメラ、ロボット、ドローン(無人航空機)を含む。ロボットは、例えば警備用のロボットである。携帯端末100Aは、クライアント端末として機能する。
The
サーバ100Bは、中継装置や基地局装置であってもよい。中継装置は、例えば、AP(Access Point)、ゲートウェイ装置、を含む。
The
ネットワークNTは、無線ネットワークを含んでも有線ネットワークを含んでもよい。また、ネットワークNTは、専用ネットワークを含んでも公衆ネットワークを含んでもよい。ネットワークNTは、インターネット、イントラネット、セルラーネットワーク、WAN(Wide Area Network)、LAN(Local Area Network)、などを含む。ネットワークNTは、近距離通信やBluetooth(登録商標)に係るネットワークを含んでもよい。 The network NT may include a wireless network or a wired network. The network NT may include a dedicated network or a public network. The network NT includes the Internet, an intranet, a cellular network, a WAN (Wide Area Network), a LAN (Local Area Network), and the like. The network NT may include a network related to near field communication or Bluetooth (registered trademark).
通信システム10では、携帯端末100A及びサーバ100Bは、ネットワークNTを介して、所定の通信方式で、MPTCPに従ってデータ通信する。携帯端末100A及びサーバ100Bは、音声データ、画像データ、制御データ、等を通信する。携帯端末100A及びサーバ100Bは、複数の通信方式で通信可能である。
In the
通信方式は、例えば、有線LAN通信、無線LAN通信、USB(Universal Serial Bus)通信、DECT(Digital Enhanced Cordless Telecommunication)、LTE(Long Term Evolution)、LTE-Advanced、ミリ波通信、セルラー通信、近距離無線通信、Bluetooth(登録商標)の方式を含む。 Communication methods include, for example, wired LAN communication, wireless LAN communication, USB (Universal Serial Bus) communication, DECT (Digital Enhanced Cordless Communication), LTE (Long Term Evolution), LTE-Advanced, Near-distance, Millimeter-wave communication, Includes wireless communication and Bluetooth (registered trademark) systems.
次に、通信装置100の構成について説明する。
Next, the configuration of the
図2は、通信装置100のハードウェア構成例を示すブロック図である。通信装置100は、CPU(Central Processing Unit)101、メモリ102、通信制御I/F(Interface)103,105、及び通信I/F104,106を含む。携帯端末100Aとサーバ100Bとは、通信装置100の一例であり、同様の構成を有するので、ここではまとめて説明する。尚、ここでは、通信制御I/F及び通信I/Fの数が2つであることを例示したが、3つ以上であってもよい。
FIG. 2 is a block diagram illustrating a hardware configuration example of the
CPU101は、メモリ102と協働して、各種処理や制御を行う。具体的には、CPU101は、メモリ102に保持されたプログラムを実行することで、通信装置100が有する各機能を実現する。このプログラムは、例えば、OS(Operating System)、ミドルウェア、アプリケーション、を含む。
The
メモリ102は、例えば、各種データ、情報、プログラムを記憶する。メモリ102は、CPU101に内蔵されてもよい。メモリ102は、一次記憶装置とともに、二次記憶装置や三次記憶装置を含んでもよい。一次記憶装置は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)を含む。二次記憶装置は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)を含む。三次記憶装置は、例えば、USBフラッシュメモリやSDカードを含む。
The
通信制御I/F103,105は、通信I/F104,106による通信を制御する。通信I/F104,106は、各種通信方式に従って、通信する。通信I/F104と通信I/F106の通信方式は、例えば異なる。例えば、通信I/F104は、例えば無線LAN通信の方式に従い、通信I/F106は、例えばLTE通信の方式に従う。
The communication control I /
尚、携帯端末100Aが有するハードウェア構成とサーバ100Bが有するハードウェア構成とは、同様である。図2の同じブロックにおいて携帯端末100A用とサーバ100B用とを区別する場合には、携帯端末100Aが有する構成ブロックについては、符号の末尾に「A」を付し、サーバ100Bが有する構成ブロックについては、符号の末尾に「B」を付して説明する。
Note that the hardware configuration of the
図3は、通信装置100(携帯端末100A及びサーバ100B)の機能構成例を示すブロック図である。
FIG. 3 is a block diagram illustrating a functional configuration example of the communication device 100 (the
CPU101や通信制御I/F103は、メモリ102に保持されたプログラムを実行することで、通信装置100が有する各機能を実現する。この各機能は、後述するアプリケーション制御部151、API152、MPTCP制御部153、及びTCP通信部154,155の機能を含む。つまり、通信装置100は、アプリケーション制御部151、API152、MPTCP制御部153、TCP通信部154,155、を備える。
The
尚、図3では、携帯端末100Aが有する機能ブロックとサーバ100Bが有する機能ブロックとは、同様である。図3の同じ機能ブロックにおいて携帯端末100A用とサーバ100B用とを区別する場合には、携帯端末100Aが有する機能ブロックについては、符号の末尾に「A」を付し、サーバ100Bが有する機能ブロックについては、符号の末尾に「B」を付して説明する。
In FIG. 3, the functional blocks of the
アプリケーション制御部151(151A,151B)は、OSI参照モデルの第7層(アプリケーション層)において、メモリ102に保持されたアプリケーション(アプリケーションプログラム)を実行する。そして、アプリケーション制御部151は、アプリケーションに係る制御を行う。
Application control unit 151 (151A, 151B) executes an application (application program) held in
API152(152A,152B)は、OSI参照モデルの第4層(トランスポート層)と第7層(アプリケーション層)との間において、アプリケーションとMPTCPとの間のデータの受け渡しを行う。例えば、API152は、MPTCPのサブフローsfの情報を保持し、サブフローsfの情報が更新されると、更新されたサブフローsfの情報を保持する。これにより、アプリケーションは、MPTCPが用いる各種データを参照できる。
API 152 (152A, 152B) exchanges data between the application and MPTCP between the fourth layer (transport layer) and the seventh layer (application layer) of the OSI reference model. For example, the
尚、API152は、API152を構成するプログラムのパラメータ等に、アプリケーション又はMPTCPに係るデータを含むことで、データを保持する。API152に係るプログラムやパラメータは、メモリ102に保持される。
Note that the
MPTCP制御部153(153A,153B)は、OSI参照モデルの第4層(トランスポート層)においてMPTCPに従って動作し、MPTCPに係る制御を行う。例えば、MPTCP制御部153は、MPTCPのセッションのサブフローを設立や切断を行う。つまり、MPTCP制御部153は、複数のサブフローを制御する。MPTCP制御部153は、各サブフローを監視し、サブフローが継続して設立されているか否かを判別する。
The MPTCP control unit 153 (153A, 153B) operates according to MPTCP in the fourth layer (transport layer) of the OSI reference model, and performs control related to MPTCP. For example, the
TCP通信部154は、MPTCP制御部153の制御により、サブフローsf1(TCPコネクション)を介してデータを通信する。サブフローsf1は、通信I/F104Aと通信I/F104Bとを介した経路である。
The
TCP通信部155は、MPTCP制御部153の制御により、サブフローsf2(TCPコネクション)を介してデータを通信する。サブフローsf2は、通信I/F106Aと通信I/F106Bとを介した経路である。
The
アプリケーションの情報は、例えば、アプリケーションの識別子、アプリケーションを実行するために必要な通信元、通信先のIPアドレスの情報、を含む。サブフローの情報は、例えば、自装置の識別情報、サブフローの通信に用いる自装置側のIPアドレスの情報、他装置(通信相手)の識別情報、サブフローの通信に用いる他装置側のIPアドレスの情報、を含む。 The application information includes, for example, an application identifier, communication source necessary for executing the application, and information on the IP address of the communication destination. The subflow information includes, for example, identification information of the own device, IP address information of the own device used for subflow communication, identification information of another device (communication partner), and information of the IP address of the other device used for subflow communication. ,including.
API152が不在である場合、特に工夫をしなければ、MPTCP側からはアプリケーション側の情報が参照できないために不明であり、アプリケーション側からはMPTCP側の情報が参照できないために不明である。これに対し、API152は、MPTCPとアプリケーションとの間に配置され、相互に参照可能であり、アプリケーションの情報及びサブフローの情報を共有化できる。
If the
[ユースケース]
次に、通信システム10のユースケースについて説明する。
[Use Case]
Next, use cases of the
[ユースケース1]
ユースケース1では、アプリケーションとしてFTP(File Transfer Protocol)が実行される。つまり、サーバ100Bは、FTPサーバである。尚、FTPの場合、サブフローに関して制御ポートとデータポートとが別々に設立される。ここでは、後述するサブフローsf11は、制御ポートのサブフローsf11とデータポートのサブフローsf11とを含むことを想定する。また、後述するサブフローsf21は、制御ポートのサブフローsf21とデータポートのサブフローsf21とを含むことを想定する。
[Use Case 1]
In
図4は、API152を備えない通信システム10がMPTCPに従ってFTPを実行する際の動作例を示すシーケンス図である。
FIG. 4 is a sequence diagram illustrating an operation example when the
図4では、携帯端末100Aにおいて、通信I/F104Aの通信方式が無線LAN通信の方式であり、通信I/F106Aの通信方式が無線WANの通信の方式であることを想定する。通信I/F104Aは、IPアドレス「XX」を用い、通信I/F106Aは、IPアドレス「YY」を用いる。また、サーバ100Bにおいて、通信I/F104Bの通信方式が無線LAN通信の方式であり、通信I/F106Bの通信方式が無線WANの通信の方式であることを想定する。通信I/F104Bは、IPアドレス「X’X’」を用い、通信I/F106Bは、IPアドレス「Y’Y’」を用いる。
In FIG. 4, in the
まず、携帯端末100Aの入力デバイスがアプリケーションを実行するためのユーザからの入力操作を受け付けると、アプリケーション制御部151Aが、アプリケーションの実行を開始する。入力デバイスは、キーボード、マウス、タッチパッド、タッチパネル、各種キー、マイク、等の入力デバイスを広く含む。
First, when the input device of the
アプリケーションの実行開始に伴い、MPTCP制御部153A,153Bは、FTPに係るセッションの設立を開始する(S11)。この際、MPTCP制御部153A,153Bは、無線LANを用いて、IPアドレス「XX」,「X’X’」を用いて、制御ポートのサブフローsf11(図3に示すサブフローsf1の一例)を設立する。
With the start of application execution, the
続いて、MPTCP制御部153A,153Bは、MPTCPに従って、FTPに係るサブフローsf21を設立する(S12)。この際、MPTCP制御部153A,153Bは、無線WANを用いて、IPアドレス「YY」,「Y’Y’」を用いて、制御ポートのサブフローsf21(図3に示すサブフローsf2の一例)を設立する。
Subsequently, the
制御ポートのサブフローsf11,sf21が設立されると、TCP通信部154Aは、制御ポートのサブフローsf11を介して、FTPに係るデータ(FTPデータ)の転送要求を送信する(S13)。
When the control port subflows sf11 and sf21 are established, the
サーバ100Bでは、TCP通信部154Bが、携帯端末100Aからサブフローsf11を介してFTPデータの転送要求を受信する。そして、TCP通信部154A,154Bは、データポートのサブフローsf11を介して、FTPデータを転送する(S14)。また、TCP通信部155A,155Bは、ポートのサブフローsf21を介して、FTPデータを転送する(S15)。つまり、通信システム10は、複数の経路(マルチパス)でFTPデータを転送でき、通信効率を向上できる。
In the
ここで、S14,S15のFTPデータの転送中に、携帯端末100Aが無線LANの通信圏外に移動したことに起因して、制御ポート及びデータポートのサブフローsf11が切断され(S16)、その後無線LAN通信が不可であるとする。この場合でも、制御ポート及びデータポートのサブフローsf21が残存するので、MPTCPのセッションは無線LANが通信圏外となった後においても継続している。
Here, during the transfer of FTP data in S14 and S15, the sub-flow sf11 of the control port and the data port is disconnected due to the
FTPデータの転送は、転送対象のデータがなくなるまで継続される。そのため、制御ポート及びデータポートのサブフローsf11の切断後においても、TCP通信部155A,155Bは、データポートのサブフローsf21を介して、FTPデータの転送を継続する(S17)。このFTPデータは、サーバ100Bで正常に受信される(Transfer Complete)。一方、データポートのサブフローsf11を介したFTPデータの転送は行われない。
FTP data transfer continues until there is no more data to be transferred. Therefore, even after the control port and data port subflow sf11 is disconnected, the
携帯端末100Aからサーバ100Bへの転送対象のデータが不在となると、各サブフローの接続が切断される。一方、FTPのセッションは終了せずに、セッション接続が継続される。ここでは、データポートのサブフローsf21は、転送対象のデータが不在となることで転送終了によって閉じられるが、制御ポートのサブフローsf21の接続が継続される。
When there is no data to be transferred from the
サブフローsf11が切断された際の一連のFTPデータの転送が終了した後に、次のFTPデータの転送要求が発生すると、TCP通信部155Aは、サーバ100Bに対して、制御ポートのサブフローsf21を介して、FTPデータの転送要求を送信する(S18)。
When the next FTP data transfer request occurs after the series of FTP data transfer when the subflow sf11 is disconnected, the
サーバ100Bでは、TCP通信部155Bは、S18でのFTPデータの転送要求を受信すると、データポートのサブフローsf21を介して、この転送要求に対応するFTP応答データを送信しようと試みる。しかし、前回(S13)の転送要求と今回(S18)の転送要求とでは、送信元が異なるため、アプリケーション制御部151Bは、FTPのエラーが発生したと判定する。
In the
TCP通信部155Bは、MPTCP制御部153の制御により、制御ポートのサブフローsf21を介して、FTP応答データとして、FTPのエラーメッセージを送信する(S19)。このエラーメッセージは、「Bad IP Connecting」の情報を含む。「Bad IP Connecting」の情報は、別経路で転送要求されたために送信元が異なると判定され拒否されたことを示す。
The
つまり、図4では、第1の転送要求はサブフローsf11を介して行われ、第2の転送要求はサブフローsf21を介して行われる。そのため、サーバ100Bは、API152Bを備えない場合、FTPのセッション設立時(S13の時点)と異なるIPアドレスから、FTPデータの転送要求を受けたと判断する。従って、サーバ100Bは、セキュリティチェックによりFTPのセッション接続を終了し、各サブフローの接続を終了する。
That is, in FIG. 4, the first transfer request is made via the subflow sf11, and the second transfer request is made via the subflow sf21. Therefore, when the
図5A~Cは、API152を備える通信システム10がMPTCPに従ってFTPを実行する際の動作例を示すフローチャートである。図5Aは、MPTCP側の動作例を示す。図5Bは、アプリケーション側のAPI152のサブフロー監視に係る動作例を示す。図5Cは、アプリケーション側のセキュリティチェックに係る動作例を示す。
5A to 5C are flowcharts showing an operation example when the
図5A~Cでは、図4と同様に、携帯端末100Aにおいて、通信I/F104Aの通信方式が無線LAN通信の方式であり、通信I/F106Aの通信方式が無線WANの通信の方式であることを想定する。通信I/F104Aは、IPアドレス「XX」を用い、通信I/F106Aは、IPアドレス「YY」を用いる。また、サーバ100Bにおいて、通信I/F104Bの通信方式が無線LAN通信の方式であり、通信I/F106Bの通信方式が無線WANの通信の方式であることを想定する。通信I/F104Bは、IPアドレス「X’X’」を用い、通信I/F106Bは、IPアドレス「Y’Y’」を用いる。
5A to 5C, similarly to FIG. 4, in the
図5Aでは、まず、携帯端末100Aの入力デバイスがアプリケーションを実行するためのユーザからの入力操作を受け付けると、アプリケーション制御部151Aが、アプリケーションの実行を開始する。
In FIG. 5A, first, when the input device of the
MPTCP側では、アプリケーションの実行開始に伴い、MPTCP制御部153A,153Bは、FTPに係るセッションの設立を開始する。この際、MPTCP制御部153A,153Bは、無線LANを用いて、IPアドレス「XX」,「X’X’」を用いて、サブフローsf11(図3に示すサブフローsf1の一例)を設立する(S21)。
On the MPTCP side, with the start of application execution, the
続いて、MPTCP制御部153A,153Bは、MPTCPに従って、FTPに係るサブフローsf21を設立する(S22)。この際、通信I/F106A及び通信I/F106Bは、無線WANを用いて、IPアドレス「YY」,「Y’Y’」を用いて、サブフローsf21(図3に示すサブフローsf2の一例)を設立する。
Subsequently, the
MPTCP制御部153A,153Bは、API152A,152Bへ、サブフロー情報を登録する(S23)。このサブフロー情報は、携帯端末100Aとサーバ100Bとの間で設立されたMPTCPセッションの各サブフローに係る情報(例えば、通信I/F部104A,104B,106A,106BのIPアドレスの情報)を含む。例えば、サブフロー情報は、サブフローsf11に用いるIPアドレス「XX」,「X’X’」と、サブフローsf21に用いるIPアドレス「YY」,「Y’Y’」と、を含む。各サブフローsf21に用いられる各IPアドレス情報は、対応付けて保持される。
The
尚、MPTCP制御部153A,153Bは、他にサブフローが生成された場合、このサブフローに係るサブフロー情報を、同様に、API152A,152Bに登録する。また、いずれかのサブフローが削除された場合(例えば無線LANが通信圏外となり、サブフローが切断された場合)、このサブフローに係るサブフロー情報を、API152A,152Bから削除する。
In addition, when another subflow is generated, the
図5Bでは、アプリケーション制御部151A,151Bは、API152A,152Bを参照し、サブフロー情報を監視する(S24)。
In FIG. 5B, the
そして、アプリケーション制御部151A,151Bは、API152A,152Bのサブフロー情報が更新されているか否かを判定する(S25)。
And
例えば、携帯端末100Aが無線LANの通信圏外になると、MPTCPによりサブフローsf11が切断される。切断されたサブフローsf11に係るIPアドレスの情報は、API152A,152Bから削除される。また、例えば、携帯端末100Aが新たに無線LANの通信圏内となると、MPTCPによりサブフローsf31が追加される。追加されたサブフローsf31に係るIPアドレスの情報は、API152A,152Bに登録される。
For example, when the
アプリケーション制御部151A,151Bは、API152A,152Bのサブフロー情報が更新されていた場合、アプリケーションが有するサブフロー情報(例えばアプリケーションが通信先として認識するIPアドレスの情報)を更新する(S26)。アプリケーションが有するサブフロー情報は、例えば、アプリケーションプログラムのパラメータの情報として含まれ得る。
例えば、S23において、サブフロー情報として、サブフローsf21に用いるIPアドレス「YY」,「Y’Y’」が、API152A,152Bとに保持されている。アプリケーション制御部151A,151Bは、変更前にサブフローsf11に係るIPアドレス「XX」,「X’X’」を通信先として指定していた場合、API152A,152Bのサブフロー情報を参照することで、IPアドレスとして「XX」,「X’X’」ではなく「YY」,「Y’Y’」が使用可能であることを認識する。そこで、アプリケーション制御部151A,151Bは、変更後のサブフローsf21に係るIPアドレス「YY」,「Y’Y’」を通信先とするよう、アプリケーションを更新する。
For example, in S23, the IP addresses “YY” and “Y′Y ′” used for the subflow sf21 are held in the
S26によりアプリケーションが有するサブフロー情報が更新されると、アプリケーション制御部151A,151Bは、更新されたサブフロー情報を用いて、FTPデータを通信可能となる。この場合、例えば、図4のS18のようにサーバ100BがFTPデータの転送要求を受信した場合、アプリケーション制御部151Bは、更新後のサブフロー情報のIPアドレス(例えばIPアドレス「YY」,「Y’Y’」)が通常の転送要求元のIPアドレスであるとして、FTPのセキュリティチェックを実施することとなる。これにより、サーバ100Bは、アプリケーションが有するサブフローの更新後に新たな転送要求を受信しても、FTPのセキュリティチェックにおいて別経路であると判断されるエラーを回避でき、FTP通信が停止することを抑制できる。
When the subflow information included in the application is updated in S26, the
図5Cでは、アプリケーション制御部151Bは、FTPに係るセキュリティチェックを実施する(S27)。尚、図5Cの開始時には、API152Bが保持するサブフロー情報には、更新後のサブフロー情報に係る「YY」,「Y’Y’」が登録されている。また、IPアドレスアプリケーションが有するサブフロー情報には、通信先としてIPアドレス「XX」,「X’X’」が登録されている。
In FIG. 5C, the
アプリケーション制御部151Bは、アプリケーションの実行中に、アプリケーションに係るセキュリティチェックが発生したか否かを判定する(S28)。セキュリティチェックは、例えば、携帯端末100Aが無線LANの通信圏外に移動することにより、転送要求が別経路(異なるサブフロー)から取得された際に発生する。例えば、サブフローsf11が無線LANの通信圏外となって切断され、サブフローsf21が設立維持されていることが考えられる。
The
セキュリティチェックが発生した場合、アプリケーション制御部151Bは、API152Bに保持されたサブフロー情報を参照する(S29)。前述のように、API152Bの更新後のサブフロー情報には、例えば、サブフローsf21に用いるIPアドレス「YY」,「Y’Y’」が含まれる。
When a security check occurs, the
アプリケーション制御部151Bは、アプリケーションが有するサブフローに係るIPアドレスを、API152Bに保持されたサブフロー情報に含まれる他のIPアドレスで置換することで、セキュリティチェックのエラーが解決するか否かを判定する(S30)。例えば、アプリケーション制御部151Bは、エラーとなったIPアドレス「YY」,「Y’Y’」(今回の転送要求のIPアドレス)を「XX」,「X’X’」(前回の転送要求のIPアドレス)に置換することで、セキュリティチェックのエラーが無くなるか判定する。
The
IPアドレスの置換によりセキュリティチェックのエラーを解決できる場合、アプリケーション制御部151Bは、エラーとなったサブフロー(ここではサブフローsf22)のIPアドレス(ここではIPアドレス「YY」,「Y’Y’」)をセキュリティチェックの対象から除外する(S30A)。
When the security check error can be resolved by replacing the IP address, the
セキュリティチェックの対象から除外するとは、アプリケーションが有するサブフローに係るIPアドレス(例えばIPアドレス「XX」,「X’X’」)を、API152Bに保持されたサブフロー情報に含まれる他のIPアドレス(例えばIPアドレス「YY」,「Y’Y’」)で置換することを含んでもよい。
To exclude from the security check target, an IP address (for example, IP address “XX”, “X′X ′”) related to the subflow possessed by the application is replaced with another IP address (for example, IP address included in the subflow information held in the
これにより、サーバ100Bは、例えば、前回の転送要求の送信元となったIPアドレスを書き換えでき、前回の転送要求の送信元と今回の転送要求の送信元とが一致するので、セキュリティチェックに係る通信エラーを回避できる。
Thereby, for example, the
また、セキュリティチェックの対象から除外するとは、アプリケーションが有するサブフロー情報にエラーとなるIPアドレス(例えばIPアドレス「XX」,「X’X’」)を含めたまま、今回の転送要求の送信元のIPアドレス(例えばIPアドレス「YY」,「Y’Y’」)を「Bad IP Connecting」の対象から除外するための情報(例えばフラグ)を、アプリケーションが保持することを含んでもよい。 In addition, excluding from the security check target includes the IP address (for example, IP address “XX”, “X′X ′”) that causes an error in the subflow information that the application has, and the source of the current transfer request. The application may hold information (for example, a flag) for excluding an IP address (for example, IP addresses “YY”, “Y′Y ′”) from the target of “Bad IP Connecting”.
これにより、サーバ100Bは、例えば、前回の転送要求の送信元と今回の転送要求の送信元とのサブフローに係るIPアドレスが不一致のままでも、セキュリティチェックに係る通信エラーを回避できる。また、サーバ100Bは、今回の転送要求の送信元のIPアドレスを把握できるので、このIPアドレス(例えばIPアドレス「YY」,「Y’Y’」)を用いて、転送要求に応じたFTPデータを転送でき、通信を継続できる。
Thereby, for example, the
このように、MPTCPに従ってFTPを実行する場合、通信装置100は、API152を参照することで、アプリケーションが有するサブフローの情報を更新できる。通信装置100は、更新後のサブフロー情報を用いて通信することで、又はアプリケーションに認識されていないがAPI152に登録されているサブフロー情報に係るIPアドレスをセキュリティチェックの対象から除外することで、アプリケーションにおいてエラーが発生することを抑制でき、通信効率を向上できる。また、通信装置100は、MPTCPにより複数のサブフローを用いて通信できるので、各サブフローで通信可能な場合には、通信を高速化できる。
As described above, when executing FTP according to MPTCP, the
[ユースケース2]
ユースケース2では、アプリケーションとしてAMQP(Advanced Message Queuing Protocol)が実行される。つまり、サーバ100Bは、AMQPサーバである。
[Use Case 2]
In
図6は、API152を備えない通信システム10がMPTCPに従ってAMQPを実行する際の動作例を示すシーケンス図である。
FIG. 6 is a sequence diagram showing an operation example when the
図6では、携帯端末100Aにおいて、通信I/F104Aの通信方式が無線LAN通信の方式であり、通信I/F106Aの通信方式が無線WANの通信の方式であることを想定する。通信I/F104Aは、IPアドレス「XX」を用い、通信I/F106Aは、IPアドレス「YY」を用いる。また、サーバ100Bにおいて、通信I/F104Bの通信方式が無線LAN通信の方式であり、通信I/F106Bの通信方式が無線WANの通信の方式であることを想定する。通信I/F104Bは、IPアドレス「X’X’」を用い、通信I/F106Bは、IPアドレス「Y’Y’」を用いる。
In FIG. 6, it is assumed that in the
まず、入力デバイスがアプリケーションを実行するための入力操作を受け付けると、アプリケーション制御部151A,151Bが、アプリケーションの実行を開始する。
First, when the input device receives an input operation for executing an application, the
アプリケーションの実行開始に伴い、携帯端末100Aでは、TCP通信部154Aは、MPTCP制御部153Aの制御により、ポートとしての通信I/F104Aを開放(port open)し、通信I/F104Bを開放する(port open)よう要求する(S31)。
As the application starts, in the
サーバ100Bでは、TCP通信部154Bは、port open要求を受信する。TCP通信部154Bは、MPTCP制御部153Bの制御により、ポートとしての通信I/F104Bを開放し、port open要求に対するACKを返信する(S32)。これにより、MPTCP制御部153A,153Bは、AMQPのセッションを設立し、サブフローsf12(図3に示すサブフローsf1の一例)を設立する。
In the
同様に、TCP通信部155Aは、MPTCP制御部153Aの制御により、ポートとしての通信I/F106Aを開放(port open)し、通信I/F106Bを開放するよう要求し、サブフローの追加(Subflow JOIN)をサーバ100Bへ要求する(S33)。
Similarly, under the control of the
サーバ100Bでは、TCP通信部155Bは、port open要求及びSubflow JOIN要求を受信する。TCP通信部155Bは、MPTCP制御部153Bの制御により、ポートとしての通信I/F106Bを開放し、新たなサブフローsf22(図3に示すサブフローsf2の一例)を設立し、Subflow JOIN要求に対するACKを返信する(S34)。
In the
S31~S34により、MPTCPのセッションが設立され、サブフローsf12,sf22が設立され、携帯端末100A及びサーバ100Bの間においてマルチパスで通信可能となる。
Through S31 to S34, an MPTCP session is established, subflows sf12 and sf22 are established, and communication between the
TCP通信部154A,154Bは、設立されたサブフローsf12を介して、AMQPに係るデータ(AMQPデータ)を通信する(S35)。TCP通信部155A,155Bは、設立されたサブフローsf22を介して、AMQPデータを通信する(S36)。
The
AMQPデータには、例えば、サブスクリプション情報、コールバック情報が含まれる。サブスクリプション情報は、サブフローの情報(例えば自装置の識別情報、他装置の識別情報、サブフローに係る自装置側のIPアドレスの情報、サブフローに係る他装置側のIPアドレスの情報)やコールバック関数の条件の情報などが含まれる。コールバック情報は、コールバック関数に係る情報である。コールバック関数は、各種イベントの発生時(例えば、携帯端末100Aやサーバ200に転送すべきデータが発生した時)に、サーバ100Bが携帯端末100Aへデータを送るための関数である。サブスクリプション情報及びコールバック情報をサーバ100Bのメモリ102へ登録しておくことで、イベント発生時にサーバ100Bから携帯端末100Aへデータを送信可能である。
AMQP data includes, for example, subscription information and callback information. The subscription information includes subflow information (for example, identification information of the own device, identification information of the other device, IP address information of the own device relating to the subflow, information of the IP address of the other device relating to the subflow) and a callback function. This includes information on the conditions. Callback information is information relating to a callback function. The callback function is a function for the
携帯端末100Aとサーバ100Bとの間で送信すべきAMQPデータが無くなると、携帯端末100Aでは、TCP通信部154Aは、MPTCP制御部153Aの制御により、ポートとしての通信I/F104Aを閉じ(port close)、通信I/F104Bを開じる(port close)よう要求する(S37)。
When there is no more AMQP data to be transmitted between the
サーバ100Bでは、TCP通信部154Bは、port close要求を受信する。TCP通信部154Bは、MPTCP制御部153Bの制御により、ポートとしての通信I/F104Bを閉じ、port close要求に対するACKを返信する(S38)。これにより、MPTCP制御部153A,153Bは、AMQPのサブフローsf12を切断する。
In the
同様に、携帯端末100Aでは、TCP通信部155Aは、MPTCP制御部153Aの制御により、ポートとしての通信I/F106Aを閉じ(port close)、通信I/F106Bを閉じる(port close)よう要求し、サブフローの切断を要求する(S39)。
Similarly, in the
サーバ100Bでは、TCP通信部155Bは、port close要求及びサブフローの切断要求を受信する。TCP通信部155Bは、MPTCP制御部153Bの制御により、ポートとしての通信I/F106Bを閉じ、port close要求に対するACKを返信する(S40)。これにより、MPTCP制御部153A,153Bは、AMQPのサブフローsf22を切断する。
In the
ここで、AMQPデータの通信中又は通信後に、携帯端末100Aが無線LANの通信圏外に移動したことに起因して、サブフローsf21が切断され、その後無線LAN通信が不可であるとする(S41)。
Here, it is assumed that the sub-flow sf21 is disconnected due to the
S41の後、サーバ100Bにおいて、キューにメッセージが蓄積された状態で、アプリケーションに係るイベントが発生したとする。この場合、アプリケーション制御部151Bは,メモリ120に保持されたサブスクリプション情報及びコールバック情報を基に、サブフローsf21を介して、蓄積されたメッセージを送信するべく、port open要求をIPアドレス「XX」に対して送信する(S42)。
After S41, it is assumed that an event relating to an application occurs in the
携帯端末100Aでは、無線LAN通信の通信圏外に所在するために、IPアドレス「XX」に送信されたport open要求を受信することができない。従って、携帯端末100Aは、port open要求に対して応答できない(S43)。
The
つまり、サブフローに係るポートとしての通信I/Fが一旦閉じられた後に、携帯端末100Aが無線LAN通信の圏外に移動すると、サーバ100Bは、API152Bを備えない場合、AMQPデータを携帯端末100Aへ送信したい場合でも、携帯端末100A側の通信I/Fを開放(port open)できない。従って、サーバ100Bは、キューに積まれたデータを携帯端末100Aへ転送できない。
That is, when the
図7A~Cは、API152を備える通信システム10がMPTCPに従ってAMQPを実行する際の動作例を示すフローチャートである。図7Aは、MPTCP側の動作例を示す。図7Bは、アプリケーション側のAPI152のサブフロー監視に係る動作例を示す。図7Cは、アプリケーション側の通信系に係る動作例を示す。
7A to 7C are flowcharts showing an operation example when the
図7A~Cでは、図6と同様に、携帯端末100Aにおいて、通信I/F104Aの通信方式が無線LAN通信の方式であり、通信I/F106Aの通信方式が無線WANの通信の方式であることを想定する。通信I/F104Aは、IPアドレス「XX」を用い、通信I/F106Aは、IPアドレス「YY」を用いる。また、サーバ100Bにおいて、通信I/F104Bの通信方式が無線LAN通信の方式であり、通信I/F106Bの通信方式が無線WANの通信の方式であることを想定する。通信I/F104Bは、IPアドレス「X’X’」を用い、通信I/F106Bは、IPアドレス「Y’Y’」を用いる。
7A to 7C, similarly to FIG. 6, in the
図7Aでは、まず、携帯端末100Aの入力デバイスがアプリケーションを実行するためのユーザからの入力操作を受け付けると、アプリケーション制御部151Aが、アプリケーションの実行を開始する。
7A, first, when the input device of the
MPTCP側では、アプリケーションの実行開始に伴い、MPTCP制御部153A,153Bは、AMQPに係るセッションの設立を開始する。この際、MPTCP制御部153A,153Bは、無線LANを用いて、IPアドレス「XX」,「X’X’」を用いて、サブフローsf12(図3に示すサブフローsf1の一例)を設立する(S51)。
On the MPTCP side, with the start of application execution, the
続いて、MPTCP制御部153A,153Bは、MPTCPに従って、AMQPに係るサブフローsf22(図3に示すサブフローsf2の一例)を設立する(S52)。この際、MPTCP制御部153A,153Bは、無線WANを用いて、IPアドレス「YY」,「Y’Y’」を用いて、サブフローsf22を設立する。
Subsequently, the
MPTCP制御部153A,153Bは、API152A,152Bへ、サブフロー情報を登録する(S53)。このサブフロー情報は、携帯端末100Aとサーバ100Bとの間で設立されたMPTCPセッションの各サブフローに係る情報(例えば、通信I/F部104A,104B,106A,106BのIPアドレスの情報)を含む。例えば、サブフロー情報は、サブフローsf12に用いるIPアドレス「XX」,「X’X’」と、サブフローsf22に用いるIPアドレス「YY」,「Y’Y’」と、を含む。各サブフローに用いられる各IPアドレス情報は、対応付けて保持される。
The
尚、MPTCP制御部153A,153Bは、他にサブフローが生成された場合、このサブフローに係るサブフロー情報を、同様に、API152A,152Bに登録する。また、いずれかのサブフローが削除された場合(例えば無線LANが通信圏外となり、サブフローが切断された場合)、このサブフローに係るサブフロー情報を、API152A,152Bから削除する。
In addition, when another subflow is generated, the
図7Bでは、アプリケーション制御部151A,151Bは、API152A,152Bを参照し、サブフロー情報を監視する(S54)。
7B, the
そして、アプリケーション制御部151A,151Bは、API152A,152Bのサブフロー情報が更新されているか否かを判定する(S55)。
And
例えば、携帯端末100Aが無線LANの通信圏外になると、MPTCPによりサブフローsf12が切断される。切断されたサブフローsf12に係るIPアドレスの情報は、API152A,152Bから削除される。また、例えば、携帯端末100Aが新たに無線LANの通信圏内となると、MPTCPによりサブフローsf32が追加される。追加されたサブフローsf32に係るIPアドレスの情報は、API152A,152Bに登録される。
For example, when the
アプリケーション制御部151A,151Bは、API152A,152Bのサブフロー情報が更新されていた場合、アプリケーションが有するサブフロー情報(例えばアプリケーションが通信先として認識するIPアドレスの情報)を更新する(S56)。アプリケーションが有するサブフロー情報は、例えば、アプリケーションプログラムのパラメータの情報として含まれ得る。
When the subflow information of the
例えば、S53において、サブフロー情報として、サブフローsf22に用いるIPアドレス「YY」,「Y’Y’」が、API152A,152Bに保持されている。アプリケーション制御部151A,151Bは、変更前にサブフローsf12に係るIPアドレス「XX」,「X’X’」を通信先として指定していた場合、API152A,152Bのサブフロー情報を参照することで、IPアドレスとして「XX」,「X’X’」ではなく「YY」,「Y’Y’」が使用可能であることを認識する。そこで、アプリケーション制御部151A,151Bは、変更後のサブフローsf22に係るIPアドレス「YY」,「Y’Y’」を通信先とするよう、アプリケーションを更新する。
For example, in S53, the IP addresses “YY” and “Y′Y ′” used for the subflow sf22 are held in the
図7Cでは、アプリケーション制御部151A,151Bは、AMQPに係るデータ通信の可否チェックを実施する(S57)。尚、図7Cの開始時には、API152Bが保持するサブフロー情報には、更新後のサブフロー情報に係る「YY」,「Y’Y’」が登録されている。また、アプリケーションが有するサブフロー情報には、通信先としてIPアドレス「XX」,「X’X’」が登録されている。
In FIG. 7C, the
アプリケーション制御部151Bは、アプリケーションの実行中に、通信先からの応答が無いか否かを判定する(S58)。通信先の応答が無い要因としては、例えば無線LANの通信圏外となったことが考えられる。
The
通信先からの応答が無い場合、アプリケーション制御部151Bは、API152に保持されたサブフロー情報を参照する(S59)。前述のように、API152Bの更新後のサブフロー情報には、例えば、サブフローsf22に用いるIPアドレス「YY」,「Y’Y’」が含まれる。
If there is no response from the communication destination, the
アプリケーション制御部151Bは、アプリケーションが有するサブフローに係るIPアドレスを、API152Bに保持されたサブフロー情報に含まれる他のIPアドレスで置換することで、通信先からの応答を取得可能か否かを判定する(S60)。例えば、アプリケーション制御部151A,151Bは、通信先のIPアドレス「XX」,「X’X’」を「YY」,「Y’Y’」に置換することで、通信先においてデータを取得可能か否かを判定する。
The
IPアドレスの置換により通信先において応答を取得可能な場合、アプリケーション制御部151Bは、アプリケーションに係るデータ(AMQPデータ)の送信宛先を、API152Bを参照して更新する。具体的には、アプリケーション制御部151Bは、アプリケーションに係るデータの送信宛先を、IPアドレス「XX」,「X’X’」から「YY」,「Y’Y’」に書き換える(S61)。アプリケーションに係るデータは、例えばport openの指示を含む。
When the response can be acquired at the communication destination by replacing the IP address, the
S56又はS61によりアプリケーションが有するサブフロー情報(ここではアプリケーションに係る送信宛先の情報)が更新されると、アプリケーション制御部151Bは、更新されたサブフロー情報を用いて、AMQPデータを通信する。つまり、図6のS42のように、サーバ100Bが、AMQPデータ(例えばPort Open要求)を送信する際、アプリケーション制御部151Bは、更新後のサブフロー情報のIPアドレス「YY」,「Y’Y’」のサブフローsf22を介して、携帯端末100Aへ送信することになる。これにより、サーバ100Bは、携帯端末100AにおいてAMQPデータを受信させることができる。よって、サーバ100Bは、携帯端末100AからAMQPデータに対するACKデータを受信でき、AMQPデータの通信が停止することを抑制できる。
When the subflow information (in this case, the transmission destination information related to the application) included in the application is updated in S56 or S61, the
このように、MPTCPに従ってAMQPを実行する場合、通信装置100は、API152を参照することで、アプリケーションが有するサブフローの情報を更新できる。通信装置100は、更新されたサブフロー情報を用いて通信することで、送信先において受信不可となりエラーが発生することを抑制でき、通信効率を向上できる。また、通信装置100は、MPTCPにより複数のサブフローを用いて通信できるので、各サブフローで通信可能な場合には、通信を高速化できる。
As described above, when AMQP is executed according to MPTCP, the
[効果等]
このように、通信システム10では、アプリケーションが、MPTCPの第1のサブフローが消失した場合、APIを参照することで、アプリケーションが用いるべきアドレスが遷移したことを把握できる。そのため、例えばFTPやAMQPで発生し得る制御ポートとアドレスポートとの不整合による異常検出によるいずれかのサブフローの切断を、アプリケーション側で異常と取り扱わないように除外できる。従って、通信システム10は、MPTCPセッションの切断を抑制し、通信を継続できる。
[Effects]
As described above, in the
また、AMQP等のコールバック関数を使用するアプリケーションの場合、MPTCPの第1のサブフロー消失後に、MPTCPセッション及びサブフローの設立時に指定したコールバック関数の呼び出し宛先が消失し、不具合が生じることを抑制できる。具体的には、MPTCPが、第1のサブフロー消失時に、第1のサブフローの消失の旨をAPIを介してアプリケーションに通知する。これにより、通信システム10は、アプリケーションが、MPTCPセッション及びサブフローを再設立し、コールバック関数が呼び出される前に、制御ポートとアドレスポートとの整合を図り、不具合の発生を抑制できる。
In addition, in the case of an application using a callback function such as AMQP, it is possible to suppress the occurrence of a malfunction due to the disappearance of the call destination of the callback function specified when the MPTCP session and the subflow are established after the disappearance of the first subflow of MPTCP. . Specifically, MPTCP notifies the application of the disappearance of the first subflow to the application via the API when the first subflow disappears. As a result, the
このように、本実施形態の通信装置100は、MPTCPに従って他の通信装置100と通信する。通信装置100は、アプリケーションを制御するアプリケーション制御部151と、MPTCPの少なくとも2つのサブフローを制御するMPTCP制御部153と、IPアドレスを用いてサブフローを介してデータを通信する少なくとも2つのTCP通信部154,155と、サブフローに用いられるIPアドレスを含むサブフローの情報を保持するAPI152と、を備える。API152は、サブフローが変更された場合、変更後のサブフローの情報を保持する。アプリケーション制御部151は、変更後のサブフローの情報を参照する。
Thus, the
通信装置100は、例えば携帯端末100A又はサーバ100Bである。他の通信装置100は、サーバ100B又は携帯端末100Aである。TCP通信部154,155は、通信部の一例である。MPTCP制御部153は、通信制御部の一例である。API152は、情報保持部の一例である。
The
これにより、通信装置100は、アプリケーション制御部151が、API152を介してMPTCPのサブフローの情報を参照することで、変更(例えば追加又は削除)されたサブフローの情報を認識できる。よって、変更されたサブフローの情報を用いて通信元又は通信先のIPアドレスを認識でき、アプリケーションの実行における通信エラーを抑制できる。また、通信装置100は、MPTCPに従った通信が可能であるので、通信を高速化できる。
Thus, the
また、アプリケーション制御部151は、API152が保持する変更後のサブフローの情報を参照し、アプリケーションが有するサブフローの情報を更新してもよい。
Further, the
これにより、通信装置100は、MPTCPのサブフローの情報の変更に応じて、アプリケーションに係るサブフローの情報を変更できる。よって、通信装置100は、通信装置100が置かれた周囲の通信環境や電波状況に合わせて、アプリケーションがMPTCPに従って通信できる。
Thereby, the
また、TCP通信部154又は155は、転送要求を受信してもよい。アプリケーション制御部151は、転送要求の送信元のIPアドレスがアプリケーションが有するサブフローの情報に係るIPアドレスと異なる場合、転送要求の送信元のIPアドレスをセキュリティチェックの対象から除外してもよい。
Further, the
これにより、通信装置100は、一部のTCP通信部による通信が切断された場合には、このTCP通信部に係るIPアドレスを、アプリケーションが有するセキュリティチェックの対象から除外できる。この場合、通信装置100は、転送要求を受けたIPアドレスを用いたサブフローを介して、通信を継続できる。よって、受信側としての通信装置100は、アプリケーションに係るエラーの発生を抑制でき、通信効率を向上できる。
Thereby, when communication by some TCP communication units is disconnected, the
また、アプリケーション制御部151は、他の通信装置100へ第1のデータを送信し、他の通信装置100から第1のデータに対する第2のデータを受信しなかった場合、アプリケーションに係る第1のデータの送信先を、API152が保持するサブフローの情報に係る複数のIPアドレスのうち、第2のデータを受信されなかったサブフローに係るIPアドレスを除くいずれかのIPアドレスに変更してもよい。第1のデータは、例えばport open要求である。第2のデータは、port open要求に応じたACKである。
In addition, when the
これにより、通信装置100は、API152を参照して、設立した複数のサブフローのうち、データ通信に失敗したサブフロー以外のサブフローを用いて、アプリケーションに係るデータを送信できる。よって、アプリケーションに係るデータ通信が停止することを抑制でき、MPTCPの通信効率を向上できる。
Thus, the
また、アプリケーション制御部151は、FTPのアプリケーションを実行してもよい。これにより、通信装置100は、一部のサブフローが切断された場合でも、FTPに係るエラーメッセージ「Bad IP Connecting」が発生することを抑制でき、MPTCPに係る通信の継続性を向上でき、通信効率を向上できる。
Further, the
また、アプリケーション制御部151は、AMQPのアプリケーションを実行してもよい。これにより、通信装置100は、一部のサブフローが切断された場合でも、他のサブフローを用いて、キューに蓄積されたAMQPデータを他の通信装置100へ送信できる。よって、通信装置100は、MPTCPに係る通信の継続性を向上でき、通信効率を向上できる。
Further, the
また、API152は、OSI参照モデルの階層においてアプリケーション制御部151とMPTCP制御部153との間に位置してもよい。
Also, the
これにより、アプリケーション制御部151とMPTCP制御部153とは、直接に相互にデータを参照できないが、API152を介してデータを参照できる。よって、アプリケーション制御部151及びMPTCP制御部153の一方は、アプリケーション制御部151及びMPTCP制御部153の他方のデータを加味して、アプリケーション制御や通信制御を実施できる。
Thereby, the
(他の実施形態)
以上のように、本開示における技術の例示として、第1の実施形態を説明した。しかし、本開示における技術は、これに限定されず、変更、置き換え、付加、省略などを行った実施形態にも適用できる。
(Other embodiments)
As described above, the first embodiment has been described as an example of the technique in the present disclosure. However, the technology in the present disclosure is not limited to this, and can also be applied to embodiments in which changes, replacements, additions, omissions, and the like are performed.
第1の実施形態では、通信装置100が、API152を備えることを例示したが、API152の代わりに他の機能を備えるようにしてもよい。例えば、図8に示すように、通信装置100では、アプリケーション制御部151α(151αA,151αB)が、MPTCPに係る情報を監視する機能(MPTCP情報監視機能)を有するようにしてもよい。つまり、API152が有するMPTCPに係るサブフローの情報をアプリケーション側に実装し、アプリケーション制御部151が、MPTCPの状態管理に係る情報(サブフローの情報等)を参照可能にしてもよい。この場合、通信装置100がAPI152を有する場合と比較すると、アプリケーション側に対する対応で済むので、処理負荷を軽減できる。
In the first embodiment, it is exemplified that the
第1の実施形態では、通信システム10がFTPを実施するデータ通信システムやAMQPを実施するロボット制御システム以外のシステムでもよい。例えば、通信システム10は、コンテンツ配信システムでもよいし、監視システムでもよい。
In the first embodiment, the
第1の実施形態では、通信装置100が2つの通信方式に従って通信可能であることを例示したが、2つ以上の通信方式に従って通信可能でもよい。
In the first embodiment, it is exemplified that the
第1の実施形態では、CPU101を一例として説明したが、CPU101以外のプロセッサでもよい。プロセッサは、物理的にどのように構成されてもよい。また、プログラム可能なプロセッサを用いれば、プログラムの変更により処理内容を変更できるので、プロセッサの設計の自由度を高めることができる。プロセッサは、1つの半導体チップで構成してもよいし、物理的に複数の半導体チップで構成してもよい。複数の半導体チップで構成する場合、第1の実施形態の各制御をそれぞれ別の半導体チップで実現してもよい。この場合、それらの複数の半導体チップで1つのプロセッサを構成すると考えることができる。また、プロセッサは、半導体チップと別の機能を有する部材(コンデンサ等)で構成してもよい。また、プロセッサが有する機能とそれ以外の機能とを実現するように、1つの半導体チップを構成してもよい。
In the first embodiment, the
本開示は、変更されたTCPサブフローの情報をアプリケーションが認識でき、アプリケーションの実行における通信エラーを抑制できる通信装置及び通信方法等に有用である。 This disclosure is useful for a communication apparatus, a communication method, and the like that allow an application to recognize changed TCP subflow information and suppress communication errors during execution of the application.
10 通信システム
100 通信装置
100A 携帯端末
100B サーバ
101,101A,101B CPU
102,102A,102B メモリ
103,103A,103B 通信制御I/F
104,104A,104B 通信I/F
105,105A,105B 通信制御I/F
106,106A,106B 通信I/F
151,151A,151B,151α,151αA,151αB アプリケーション制御部
152,152A,152B API
153,153A,153B MPTCP制御部
154,154A,154B TCP通信部
155,155A,155B TCP通信部
NT ネットワーク
DESCRIPTION OF
102, 102A,
104, 104A, 104B Communication I / F
105, 105A, 105B Communication control I / F
106, 106A, 106B Communication I / F
151, 151A, 151B, 151α, 151αA, 151αB
153, 153A, 153B
Claims (8)
アプリケーションを制御するアプリケーション制御部と、
前記MPTCPの少なくとも2つのサブフローを制御する通信制御部と、
IPアドレスを用いて前記サブフローを介してデータを通信する少なくとも2つの通信部と、
前記サブフローに用いられるIPアドレスを含む前記サブフローの情報を保持する情報保持部と、
を備え、
前記情報保持部は、前記サブフローが変更された場合、変更後のサブフローの情報を保持し、
前記アプリケーション制御部は、前記変更後のサブフローの情報を参照する、通信装置。 A communication device that communicates with other communication devices according to MPTCP,
An application control unit for controlling the application;
A communication control unit for controlling at least two subflows of the MPTCP;
At least two communication units for communicating data via the subflow using an IP address;
An information holding unit for holding information on the subflow including an IP address used for the subflow;
With
When the subflow is changed, the information holding unit holds information on the changed subflow,
The application control unit refers to information on the changed subflow.
前記アプリケーション制御部は、前記情報保持部が保持する変更後のサブフローの情報を参照し、前記アプリケーションが有する前記サブフローの情報を更新する、通信装置。 The communication device according to claim 1,
The communication control device, wherein the application control unit refers to information on the changed subflow held by the information holding unit and updates information on the subflow held by the application.
前記通信部は、転送要求を受信し、
前記アプリケーション制御部は、前記転送要求の送信元のIPアドレスが前記アプリケーションが有する前記サブフローの情報に係るIPアドレスと異なる場合、前記転送要求の送信元のIPアドレスをセキュリティチェックの対象から除外する、通信装置。 The communication device according to claim 1 or 2,
The communication unit receives a transfer request,
The application control unit excludes the IP address of the transmission source of the transfer request from the security check target when the IP address of the transmission source of the transfer request is different from the IP address related to the information of the subflow possessed by the application. Communication device.
前記アプリケーション制御部は、前記他の通信装置へ第1のデータを送信し、前記他の通信装置から前記第1のデータに対する第2のデータを受信しなかった場合、前記アプリケーションに係る前記第1のデータの送信先を、前記情報保持部が保持するサブフローの情報に係るIPアドレスのうち、前記第2のデータを受信されなかったサブフローに係るIPアドレスを除くいずれかのIPアドレスに変更する、通信装置。 The communication device according to claim 2,
When the application control unit transmits the first data to the other communication device and does not receive the second data for the first data from the other communication device, the first application related to the application The data transmission destination is changed to any IP address excluding the IP address related to the subflow in which the second data is not received among the IP addresses related to the subflow information held by the information holding unit, Communication device.
前記アプリケーション制御部は、FTP(File Transfer Protocol)のアプリケーションを実行する、通信装置。 The communication device according to claim 3,
The application control unit is a communication device that executes an application of FTP (File Transfer Protocol).
前記アプリケーション制御部は、AMQP(Advanced Message Queuing Protocol)のアプリケーションを実行する、通信装置。 The communication device according to claim 4,
The application control unit is a communication device that executes an application of AMQP (Advanced Message Queuing Protocol).
前記情報保持部は、OSI参照モデルの階層において前記アプリケーション制御部と前記通信制御部との間に位置するAPI(Application Programming Interface)である、通信装置。 The communication device according to any one of claims 1 to 6,
The communication apparatus, wherein the information holding unit is an API (Application Programming Interface) located between the application control unit and the communication control unit in a hierarchy of an OSI reference model.
IPアドレスを用いた前記MPTCPの少なくとも2つのサブフローを制御し、
前記サブフローに用いられるIPアドレスを含む前記サブフローの情報を情報保持部に保持し、
前記サブフローを介してデータを通信し、
前記サブフローが変更された場合、変更後の前記サブフローの情報を前記情報保持部に保持し、
アプリケーションを制御するアプリケーション制御部が、前記変更後のサブフローの情報を参照する、通信方法。 A communication method for communicating according to MPTCP,
Controlling at least two subflows of the MPTCP using an IP address;
Holding the information of the subflow including the IP address used for the subflow in an information holding unit;
Communicate data via the subflow,
When the subflow is changed, the information holding unit stores information on the changed subflow,
A communication method in which an application control unit that controls an application refers to information on the changed subflow.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016174906A JP6731618B2 (en) | 2016-09-07 | 2016-09-07 | Communication device and communication method |
| JP2016-174906 | 2016-09-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018047645A1 true WO2018047645A1 (en) | 2018-03-15 |
Family
ID=61561469
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2017/030646 Ceased WO2018047645A1 (en) | 2016-09-07 | 2017-08-28 | Communication device and communication method |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP6731618B2 (en) |
| WO (1) | WO2018047645A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012142105A1 (en) * | 2011-04-11 | 2012-10-18 | Interdigital Patent Holdings, Inc. | Session manager and source internet protocol (ip) address election |
| JP2014127790A (en) * | 2012-12-26 | 2014-07-07 | Univ Of Electro-Communications | Information processing device, method and program |
-
2016
- 2016-09-07 JP JP2016174906A patent/JP6731618B2/en not_active Expired - Fee Related
-
2017
- 2017-08-28 WO PCT/JP2017/030646 patent/WO2018047645A1/en not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012142105A1 (en) * | 2011-04-11 | 2012-10-18 | Interdigital Patent Holdings, Inc. | Session manager and source internet protocol (ip) address election |
| JP2014127790A (en) * | 2012-12-26 | 2014-07-07 | Univ Of Electro-Communications | Information processing device, method and program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018041269A (en) | 2018-03-15 |
| JP6731618B2 (en) | 2020-07-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20240121845A1 (en) | Unified networking system and device for heterogeneous mobile environments | |
| US11128521B2 (en) | Group communication device bypass connectivity | |
| EP2693336A1 (en) | Virtual machine administration system, and virtual machine administration method | |
| US10541926B2 (en) | Unified networking system and device for heterogeneous mobile environments | |
| TWI393401B (en) | System, apparatus, method and memory having computer program embodied thereon for managing multicast routing | |
| US8495244B2 (en) | System and method for dynamic automatic communication path selection, distributed device synchronization and task delegation | |
| CN113261247A (en) | Maintaining continuous network services | |
| US10425870B2 (en) | Wireless client traffic continuity across controller failover and load-balancing | |
| US11388138B2 (en) | Communication system, address notification apparatus, communication control apparatus, terminal, communication method, and program | |
| EP2340666A2 (en) | System and method for dynamic automatic communication path selection, distributed device synchronization and task delegation | |
| US11296978B2 (en) | Enablement of multi-path routing in virtual edge systems | |
| CN104094243B (en) | Information processor and information processing method | |
| CN104205741A (en) | Information processing device, information processing method, and program | |
| US10448253B2 (en) | Wireless terminal | |
| US20240311205A1 (en) | Private network and edge application provisioning management system, method and computer readable medium thereof | |
| JP2023510410A (en) | Provisioning traffic steering with multi-access related information | |
| KR100597405B1 (en) | Data relay system and data relay method using socket application program | |
| JP6731618B2 (en) | Communication device and communication method | |
| JP2014158225A (en) | Communication system | |
| US11310310B2 (en) | Communication device for peer-to-peer communication and a communication network using the same | |
| US20150156164A1 (en) | Communication system, communication control method, communication relay system, and communication relay control method | |
| US20250220491A1 (en) | Data traffic routing for internet service connectivity disruptions in a 5g communication network | |
| US12401591B2 (en) | DPU control/management offload system | |
| JP2015154382A (en) | PBX device, subscriber registration method, and subscriber registration program | |
| KR101583559B1 (en) | Distributed service system and method for constructing distributed service system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17848586 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 17848586 Country of ref document: EP Kind code of ref document: A1 |