JP5097620B2 - Multipath communication system - Google Patents

Multipath communication system Download PDF

Info

Publication number
JP5097620B2
JP5097620B2 JP2008145266A JP2008145266A JP5097620B2 JP 5097620 B2 JP5097620 B2 JP 5097620B2 JP 2008145266 A JP2008145266 A JP 2008145266A JP 2008145266 A JP2008145266 A JP 2008145266A JP 5097620 B2 JP5097620 B2 JP 5097620B2
Authority
JP
Japan
Prior art keywords
path
session
multipath
communication
server
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.)
Active
Application number
JP2008145266A
Other languages
Japanese (ja)
Other versions
JP2009296084A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008145266A priority Critical patent/JP5097620B2/en
Publication of JP2009296084A publication Critical patent/JP2009296084A/en
Application granted granted Critical
Publication of JP5097620B2 publication Critical patent/JP5097620B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は,複数のネットワークに接続されている通信装置において,複数の通信パスを利用する通信方法に関する。   The present invention relates to a communication method using a plurality of communication paths in a communication device connected to a plurality of networks.

無線ネットワーク技術の発展に伴い,通信装置において携帯電話,PHS,無線LANなど複数のネットワークを並行して利用することが可能となってきている。しかしながら,移動を前提としたモバイル端末のような通信装置において,複数のネットワークに接続し通信先との間に複数の通信パスが存在していても,アプリケーション層で使用する通信パスは,利用者が選択したいずれかのネットワークを経由する一つの通信パスに限られていた。これに対し,複数の通信パスを活用して通信を行うマルチパス通信を行っても,アプリケーション層には従来どおり一つの通信として提供するために,トランスポート層で複数の通信をまとめる技術がある(例えば特許文献1参照)。   With the development of wireless network technology, it has become possible to use multiple networks such as mobile phones, PHS, and wireless LANs in parallel in communication devices. However, in a communication device such as a mobile terminal on the premise of movement, even if there are multiple communication paths connected to multiple networks and the communication destination, the communication path used in the application layer is the user. Was limited to a single communication path via one of the selected networks. On the other hand, even if multipath communication is performed using multiple communication paths, the application layer has a technology that combines multiple communications in the transport layer in order to provide it as a single communication as before. (For example, see Patent Document 1).

特開2001-60956号公報Japanese Patent Laid-Open No. 2001-60956

特許文献1に記載の技術により,複数のネットワークに接続している通信装置において,通信先との通信において複数の通信パスを使用してもアプリケーション層には一つの通信として通信することが可能となる。しかしながら,トランスポート層で各々の通信を束ねるため,オペレーティングシステムに組み込まれているTCP(Transmission Control Protocol)やUDP(User Datagram Protocol)といったトランスポート層のプログラムを変更する必要があり,また,トランスポート層を使用しないICMP(Internet Control Message Protocol)といった通信が考慮されていない。   With the technology described in Patent Document 1, a communication device connected to a plurality of networks can communicate with the application layer as a single communication even if a plurality of communication paths are used for communication with a communication destination. Become. However, in order to bundle each communication in the transport layer, it is necessary to change the transport layer program such as TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) incorporated in the operating system. Communication such as Internet Control Message Protocol (ICMP) that does not use a layer is not considered.

また,通信装置が移動することが考慮されておらず,接続しているネットワークを変更し通信を行っているIPアドレスが変更された場合のアプリケーション層の通信継続方法について考慮されていない。   In addition, the movement of the communication device is not considered, and the communication continuation method in the application layer when the connected network is changed and the IP address for communication is changed is not considered.

本発明は,トランスポート層の変更を行うことなく,複数の通信パスを併用するマルチパス通信を可能とする通信装置を提供する。   The present invention provides a communication device that enables multipath communication using a plurality of communication paths together without changing the transport layer.

より具体的には,トランスポート層の変更を行うことなく,アプリケーション層が,マルチパス通信を一つの通信として処理可能な通信装置を提供する。   More specifically, a communication device is provided in which the application layer can process multipath communication as one communication without changing the transport layer.

また,通信装置が移動するなどして接続するネットワークが変更となっても,アプリケーション層が,継続して通信可能な通信装置を提供する。   Further, even if the network to be connected is changed due to movement of the communication device or the like, the application layer provides a communication device capable of continuing communication.

本発明は,より具体的には,送信側,受信側ともに通信装置において,複数のネットワークインターフェース装置とそれらのデバイスドライバとを,IP層処理部には1つに見せる仮想インターフェースを備え,アプリケーション層によるデータパケットの送受信は仮想インターフェースを経由して行う。   More specifically, the present invention comprises a virtual interface that allows a plurality of network interface devices and their device drivers to be viewed as one in the IP layer processing unit in the communication device on both the transmission side and the reception side, Data packets are transmitted and received via the virtual interface.

更に具体的には,それぞれが異なるネットワークアドレスが割り当てられている複数のネットワークインターフェース装置を備える端末は,
プロセッサにより実行される,オペレーティングシステムと,アプリケーションプログラムと,複数のネットワークインターフェース装置用のデバイスドライバと,オペレーティングシステムとデバイスドライバとを接続する仮想インターフェースプログラムと,を備え,
オペレーティングシステムは,アプリケーションプログラムが扱うデータと,ネットワーク上での送受信に適したIPパケットとの変換を行うIP層処理プログラムを備え,
仮想インターフェースを実現するプログラムは,
IP層処理プログラムとデバイスドライバとの間でやり取りされるIPパケットの中継処理と,
IP層処理プログラムに対する一つのデバイスドライバとしてのIP層処理インターフェースと,
デバイスドライバに対するデバイスドライバインターフェースと,
セッション毎に,一つのIP層処理インターフェースから受信した複数のIPパケットについて,複数のネットワークインターフェース装置のいずれかから送信されるように振り分け処理を行い,デバイスドライバへ送信する処理と,
複数のネットワークインターフェース装置が受信したIPパケットを,一つのIP層インターフェースからIP層処理プログラムへ送信する処理と,を実現する。
More specifically, a terminal having a plurality of network interface devices, each assigned a different network address,
An operating system, an application program, a device driver for a plurality of network interface devices, and a virtual interface program for connecting the operating system and the device driver, which are executed by the processor;
The operating system has an IP layer processing program that converts data handled by application programs and IP packets suitable for transmission and reception on the network.
The program that implements the virtual interface is
Relay processing of IP packets exchanged between the IP layer processing program and the device driver;
An IP layer processing interface as one device driver for the IP layer processing program;
A device driver interface for device drivers;
For each session, for a plurality of IP packets received from one IP layer processing interface, a distribution process is performed so as to be transmitted from any of a plurality of network interface devices, and a process for transmitting to a device driver;
A process for transmitting IP packets received by a plurality of network interface devices from one IP layer interface to an IP layer processing program is realized.

さらに,端末とサーバは,各々が備えるプロセッサにより実行されるマルチパス制御プログラムを備え,
端末とサーバのマルチパス制御プログラムは,互いに,通信相手となる装置がマルチパス通信に対応しているか,および/または,複数のネットワークアドレスを利用するマルチパス通信が可能かを調べるためのメッセージ交換を行う。
Furthermore, the terminal and the server are each provided with a multipath control program that is executed by a processor provided therein,
The terminal and server multipath control programs exchange messages with each other to check whether the communication partner device supports multipath communication and / or whether multipath communication using multiple network addresses is possible. I do.

すなわち,送信時,仮想インターフェースは,IP層処理部からのデータパケットを,複数のネットワークインターフェース装置のいずれかから送信されるように振り分け,受信時は複数のネットワークインターフェース装置で受信したデータパケットを,一つのネットワークインターフェース装置で受信したようにまとめてIP層処理部に渡す。これにより,IP層処理部以上に変更を加えなくても,一つの通信セッションに関して,複数の通信パスを使用しアプリケーションには一つの通信として提供することが可能となる。   That is, at the time of transmission, the virtual interface distributes the data packet from the IP layer processing unit so as to be transmitted from any of the plurality of network interface devices, and at the time of reception, the data packet received by the plurality of network interface devices Collectively and pass to the IP layer processing unit as received by one network interface device. As a result, it is possible to provide a single communication to an application as a single communication using a plurality of communication paths with respect to a single communication session without changing the IP layer processing unit.

また,通信先の通信装置がマルチパス通信に対応しているかどうか,および/または,複数の通信パスのうちどの通信パスで通信することが可能かを調べるために,アプリケーションの通信とは別に通信装置間でマルチパス通信可能かを各パスで調べるメッセージや,接続しているネットワークの変更を伝達するメッセージを交換する。このようなメッセージ交換により状態情報を共有することで,IPアドレスが変更された場合でもアプリケーション層の通信を継続することが可能となる。   In addition, communication is performed separately from application communication to check whether the communication device of the communication destination supports multipath communication and / or which communication path can be used for communication among multiple communication paths. Exchange messages for checking whether multipath communication is possible between devices, and messages for transmitting changes in the connected network. By sharing the status information through such message exchange, it becomes possible to continue communication in the application layer even when the IP address is changed.

本発明によれば,トランスポート層の変更を行うことなく,複数の通信パスを使用したマルチパス通信を行うことが可能になる。   According to the present invention, it is possible to perform multipath communication using a plurality of communication paths without changing the transport layer.

また,通信装置が移動するなどして接続するネットワークが変更となっても,マルチパス通信を継続することが可能となる。   In addition, even if the network to be connected is changed due to movement of the communication device or the like, multipath communication can be continued.

以下,本発明の実施形態を説明する。本実施形態では,複数のネットワークに接続する,移動によりIPアドレスが変わる可能のある通信装置を端末107と呼び,IPアドレスが固定的な通信装置をサーバ108と呼ぶ。   Hereinafter, embodiments of the present invention will be described. In the present embodiment, a communication device that is connected to a plurality of networks and whose IP address may change due to movement is called a terminal 107, and a communication device with a fixed IP address is called a server 108.

図1は本実施形態におけるシステム構成と,そのプログラム構成を例示している。   FIG. 1 illustrates a system configuration and its program configuration in the present embodiment.

端末107にはアプリケーションプログラムとしてクライアントアプリケーション102とマルチパス制御117が搭載されており,端末107を制御するためのオペレーティングシステム121には,アプリケーションプログラムから出されたデータにTCP(Transmission Control Protocol)もしくはUDP(User Datagram Protocol)といったトランスポートプロトコルの処理を行うトランスポート層処理部103と,データをIPパケット化するIP層処理部119が搭載されている。   The terminal 107 is equipped with a client application 102 and a multipath control 117 as application programs. The operating system 121 for controlling the terminal 107 includes TCP (Transmission Control Protocol) or UDP for data output from the application program. A transport layer processing unit 103 that performs transport protocol processing such as (User Datagram Protocol) and an IP layer processing unit 119 that converts data into IP packets are mounted.

また,端末107は,物理的にネットワークに接続するネットワークインターフェース装置を3つ備え,さらに,それぞれのネットワークインターフェース装置の制御を行うデバイスドライバを備える。すなわち,デバイスドライバA109はネットワークA112(例えば携帯電話ネットワーク),デバイスドライバB110はネットワークB113(例えばPHSネットワーク),デバイスドライバC111はネットワークC114(例えば無線LANネットワーク),への接続を制御する。これらのネットワークA112,B113,C114は,ネットワークD101(例えばインターネット)に接続されている。また,デバイスドライバ109には,ネットワークA112のIPアドレスI/F Aが,デバイスドライバ110には,ネットワークB113のIPアドレスI/F Bが,デバイスドライバ111には,ネットワークC114のIPアドレスI/F Cが,それぞれ割り当てられているものとする。   The terminal 107 includes three network interface devices that are physically connected to the network, and further includes a device driver that controls each network interface device. That is, the device driver A109 controls connection to the network A112 (for example, a cellular phone network), the device driver B110 controls the connection to the network B113 (for example, PHS network), and the device driver C111 controls the connection to the network C114 (for example, wireless LAN network). These networks A112, B113, and C114 are connected to a network D101 (for example, the Internet). The device driver 109 has an IP address I / FA of the network A112, the device driver 110 has an IP address I / FB of the network B113, the device driver 111 has an IP address I / FC of the network C114, Assume that each is assigned.

なお,ネットワークインターフェース装置数は3つに限定されず,複数であれば本発明は適用できる。また,一つのデバイスドライバで,上述のように一つのネットワークインターフェース装置を制御してもよいし,同じ通信媒体を扱う複数のネットワークインターフェース装置を制御しても良いし,異なる通信媒体を扱う複数のネットワークインターフェース装置を制御しても良い。   Note that the number of network interface devices is not limited to three, and the present invention can be applied to a plurality of network interface devices. Also, one device driver may control one network interface device as described above, or may control a plurality of network interface devices that handle the same communication medium, or a plurality of devices that handle different communication media. The network interface device may be controlled.

本実施形態では,実際にネットワークに接続されているネットワークインターフェース装置を制御するデバイスドライバA109,B110,C111と,IP処理部119と,を接続するプログラムを仮想インターフェース104として実装する。仮想インターフェース104には端末107を一意に特定可能なIPアドレスであるコグニティブIP Aが割り当てる。コグニティブIP Aは端末107が接続しているネットワークに属している必要はない。IPアドレスI/F A,IPアドレスI/F B,IPアドレスI/F Cは,ネットワークに属するIPアドレスであり,ネットワークの割り当てポリシー(例えばDHCP)で決まるのでネットワークに接続する度に変更になる可能性があるが,コグニティブIPはネットワークの接続に関係なく固定(少なくとも通信を行っている間は変更されない)アドレスである。以降,仮想インターフェース104に割り当てられているIPアドレスをコグニティブIPアドレスと呼ぶ。   In the present embodiment, a program for connecting the device drivers A 109, B 110, and C 111 that control network interface devices actually connected to the network and the IP processing unit 119 is implemented as the virtual interface 104. The virtual interface 104 is assigned a cognitive IP A that is an IP address that can uniquely identify the terminal 107. The cognitive IP A does not need to belong to the network to which the terminal 107 is connected. The IP address I / FA, IP address I / FB, and IP address I / FC are IP addresses that belong to the network, and are determined by the network allocation policy (for example, DHCP). There is a cognitive IP address that is fixed (at least not changed during communication) regardless of network connection. Hereinafter, the IP address assigned to the virtual interface 104 is referred to as a cognitive IP address.

サーバ108にはアプリケーションプログラムとしてサーバアプリケーション105と,マルチパス制御118と,端末107と同様のオペレーティングシステム122が搭載されており,オペレーティングシステム122はトランスポート層処理部116,IP層処理部120を搭載している。サーバ108は物理的なネットワークD101(例えばインターネット)に接続する一つのネットワークインターフェース装置と,そのデバイスドライバD115と備える。また,デバイスドライバD115にはIPアドレスI/F Dが割り当てられているとする。   The server 108 includes a server application 105 as an application program, a multipath control 118, and an operating system 122 similar to the terminal 107. The operating system 122 includes a transport layer processing unit 116 and an IP layer processing unit 120. is doing. The server 108 includes one network interface device connected to a physical network D101 (for example, the Internet) and its device driver D115. Further, it is assumed that an IP address I / FD is assigned to the device driver D115.

上記端末107,サーバ108は,CPU(プロセッサとも称する)とメモリ,固定記憶装置,入出力インターフェース,を有する一般的なコンピュータを用いて実現することができる。さらに,以下に説明する,端末107,サーバ108が実現する機能は,CPUが固定記憶装置またはメモリに格納されているプログラムを実行することにより,上記端末107,サーバ108に具現化される。   The terminal 107 and the server 108 can be realized using a general computer having a CPU (also referred to as a processor), a memory, a fixed storage device, and an input / output interface. Further, the functions realized by the terminal 107 and the server 108 described below are realized in the terminal 107 and the server 108 by the CPU executing a program stored in a fixed storage device or memory.

各プログラムは,あらかじめ,上記コンピュータ内の記憶装置に格納されていても良いし,必要なときに,入出力インターフェースと上記コンピュータが利用可能な媒体を介して,他の装置から上記記憶部に導入されてもよい。媒体とは,たとえば,入出力インターフェースに着脱可能な記憶媒体,または通信媒体(すなわちネットワークまたはネットワークを伝搬する搬送波やディジタル信号)を指す。なお,以下の実施形態では,便宜上,プログラムを実行主体として説明する。   Each program may be stored in advance in a storage device in the computer, or introduced into the storage unit from another device via an input / output interface and a medium usable by the computer when necessary. May be. The medium refers to, for example, a storage medium that can be attached to and detached from the input / output interface, or a communication medium (that is, a network or a carrier wave or a digital signal that propagates through the network). In the following embodiments, the program will be described as an execution subject for convenience.

サーバ108も端末107と同様に,デバイスドライバ115とIP処理部120とを接続するデバイスドライバプログラムを仮想インターフェース106として実装する。仮想インターフェース106には,デバイスドライバD115に割り当てられているIPアドレスI/F Dと同じアドレスが,コグニティブIP Bとして割り当てられているものとする。   Similarly to the terminal 107, the server 108 also implements a device driver program that connects the device driver 115 and the IP processing unit 120 as the virtual interface 106. It is assumed that the same address as the IP address I / FD assigned to the device driver D115 is assigned to the virtual interface 106 as the cognitive IP B.

ネットワークA112,ネットワークB113,ネットワークC114もネットワークD101と接続しており,端末107とサーバ108の間には,ネットワークA112もしくはネットワークB113もしくはネットワークC114を経由する3つの通信パスが存在する。端末107が移動する場合,デバイスドライバに割り当てられているIPアドレスが変更になったり,ネットワークと切断されたりすることがある。   A network A112, a network B113, and a network C114 are also connected to the network D101, and there are three communication paths between the terminal 107 and the server 108 via the network A112, the network B113, or the network C114. When the terminal 107 moves, the IP address assigned to the device driver may be changed or disconnected from the network.

端末107内のクライアントアプリケーション102と,サーバ108内のサーバアプリケーション105とがデータの交換を行うことで通信を行う。クライアントアプリケーション102からサーバアプリケーション105に向けデータを送信することで,通信が開始することを前提としているが,通信開始後はサーバアプリケーション105からクライアントアプリケーション102へもデータが送られる。   The client application 102 in the terminal 107 and the server application 105 in the server 108 communicate by exchanging data. Although it is assumed that communication is started by transmitting data from the client application 102 to the server application 105, data is also transmitted from the server application 105 to the client application 102 after the communication is started.

クライアントアプリケーション102から送信されたデータはTCP,UDPといったトランスポートプロトコルを使用する通信である場合トランスポート層処理部103に渡される。クライアントアプリケーション102がトランスポートプロトコルを使用しないICMP(Internet Control Message Protocol)のような通信を使用する場合は,トランスポート層処理部103を経由せずIP層処理部119に送られる。   The data transmitted from the client application 102 is transferred to the transport layer processing unit 103 when the communication uses a transport protocol such as TCP or UDP. When the client application 102 uses communication such as ICMP (Internet Control Message Protocol) that does not use the transport protocol, the message is sent to the IP layer processing unit 119 without passing through the transport layer processing unit 103.

本実施形態ではトランスポートプロトコルを使用した通信を説明するが,本発明は,トランスポートプロトコルを使用しない場合でも,トランスポート層処理部103での処理を行わない,という違いを考慮すれば適用可能であり,トランスポートプロトコルを使用した通信に限定するものではない。トランスポート層処理部103で処理されたデータはIP層処理部119に渡され,IPパケット化される。本実施形態ではクライアントアプリケーション102もしくはサーバアプリケーション105からのデータをIPパケット化したものをデータパケットと呼ぶ。   In this embodiment, communication using a transport protocol will be described. However, the present invention can be applied even when the transport protocol is not used, considering the difference that the processing in the transport layer processing unit 103 is not performed. However, it is not limited to communication using a transport protocol. The data processed by the transport layer processing unit 103 is transferred to the IP layer processing unit 119 and converted into IP packets. In this embodiment, data obtained by converting data from the client application 102 or the server application 105 into an IP packet is called a data packet.

データパケットは仮想インターフェース104に送られ,仮想インターフェース104にてどの通信パスを使って送信を行うか決定され,実際にネットワークを流すことの出来るようにデータパケットのカプセル化が行われる。どの通信パスを使って送信するかは,端末107に,通信パス毎の送信レートを設定しておき,使用可能な通信パスの送信レートに従った割合で決定される。カプセル化されたデータパケットはネットワークを経由しサーバ108へと送られる。   The data packet is sent to the virtual interface 104, which communication path is used for transmission through the virtual interface 104, and the data packet is encapsulated so that it can actually flow through the network. Which communication path is used for transmission is determined at a rate according to the transmission rate of the available communication path by setting a transmission rate for each communication path in the terminal 107. The encapsulated data packet is sent to the server 108 via the network.

カプセル化されたデータパケットは,サーバ108のデバイスドライバD115で受信され,仮想インターフェース106へと渡される。仮想インターフェース106ではでカプセル化を解き(デカプセル化),データパケットを取り出す。データパケットはトランスポート層処理部116へと渡され,処理された後,サーバアプリケーション105へ渡されることによって通信が行われる。サーバアプリケーション105からクライアントアプリケーション102へのデータパケットの送信も,同様に行われる。   The encapsulated data packet is received by the device driver D115 of the server 108 and passed to the virtual interface 106. The virtual interface 106 decapsulates (decapsulates) and takes out the data packet. The data packet is transferred to the transport layer processing unit 116, processed, and then transferred to the server application 105 for communication. Transmission of data packets from the server application 105 to the client application 102 is performed in the same manner.

クライアントアプリケーション102から最初のデータが送信される通信開始時において,どのネットワークを経由して通信先であるサーバ108と通信が可能であるか,また,マルチパス通信が可能であるかが不明である。よって,端末107のマルチパス制御117とサーバ108のマルチパス制御118のプログラムが通信を行い,端末107とサーバ108に間のマルチパスセッションの確立可否を調べ,可の場合にマルチパスセッションを確立する。仮想インターフェース104と仮想インターフェース106はマルチパスセッションの状態を把握し,データパケットの送信先ネットワークの決定,送信先ネットワークも合わせたカプセル化を行う。   At the start of communication when the first data is transmitted from the client application 102, it is unclear which network can communicate with the server 108 that is the communication destination and whether multipath communication is possible. . Therefore, the program of the multipath control 117 of the terminal 107 and the program of the multipath control 118 of the server 108 communicate to check whether or not a multipath session can be established between the terminal 107 and the server 108, and if so, establish the multipath session. To do. The virtual interface 104 and the virtual interface 106 grasp the state of the multipath session, determine the destination network of the data packet, and encapsulate the destination network together.

端末107のマルチパス制御117は図2の状態遷移フローに従い状態を管理し,サーバ108のマルチパス制御118は図3の状態遷移フローに従い状態を管理する。   The multipath control 117 of the terminal 107 manages the state according to the state transition flow of FIG. 2, and the multipath control 118 of the server 108 manages the state according to the state transition flow of FIG.

マルチパスセッションとは,通信を行う通信装置間でマルチパス通信の開始から終了,すなわち,通信装置間でマルチパス通信を行える状態を指す。また,パスとは,通信装置間において、パケットを送受信可能な状態にあるネットワークを指す。複数あるパスのうち,いずれか一つ以上のパスで通信が可能であり,マルチパス通信に対応していることが判明していればマルチパスセッションが確立しているとする。   A multipath session refers to a state in which multipath communication can be performed between the communication apparatuses that perform communication from the start to the end of the multipath communication, that is, between the communication apparatuses. A path refers to a network in a state where packets can be transmitted and received between communication devices. It is assumed that a multipath session has been established if it is known that communication is possible on any one or more of a plurality of paths, and that multipath communication is supported.

マルチパスセッションの状態として,通信相手毎に「未確立」,「確立中」,「確立済」,「不可」の4つの状態を定義する。「未確立」はセッションの確立が行われていない状態であり,通信相手との間に通信パスが存在するか,マルチパス通信に対応しているかが不明な状態(パス管理テーブルには載っていないが,パケットを送受信可能なパスが存在する可能性がある)である。「確立中」は,通信相手に対しセッションの確立を開始しているがまだ完了していない状態であり,通信パスが存在するか,マルチパス通信に対応しているかは不明な状態である。「確立済」は通信相手とマルチパスセッションの確立が完了しており,通信パスが存在し,マルチパス通信に対応している状態である。「不可」は通信相手との間に通信パスが存在しない,もしくは,マルチパス通信に対応していない状態である。なお,パスが存在していても,アプリケーションからの通信がなくなり,所定の時間が経過するとセッションの終了と判断する。また,マルチパスセッションを構成するすべてのパスが存在しなくなった場合にも,終了処理は行わずにセッション終了と判断する。   As the status of the multipath session, four states are defined for each communication partner: “Not established”, “Established”, “Established”, and “Not possible”. “Unestablished” is a state in which no session has been established, and it is unknown whether a communication path exists with the communication partner or multipath communication is supported (it is listed in the path management table). There is a possibility that there is a path through which packets can be transmitted and received). “Established” is a state in which session establishment has started for the communication partner but has not yet been completed, and it is unknown whether a communication path exists or multipath communication is supported. “Established” is a state in which the establishment of a multipath session with the communication partner has been completed, a communication path exists, and multipath communication is supported. “Not possible” is a state in which no communication path exists with the communication partner or multipath communication is not supported. Even if the path exists, it is determined that the session ends when there is no communication from the application and a predetermined time elapses. Also, even when all the paths constituting the multipath session no longer exist, it is determined that the session is terminated without performing the termination process.

上記マルチパスセッションの状態は,図4に例示するセッション管理テーブル400に保持される。列401には通信相手のIPアドレスを記載する。IPアドレスとしてクライアント102が送信要求をするアドレスを記載する。このアドレスは,マルチパス通信に対応している装置,たとえば端末107もしくはサーバ108であればコグニティブIPアドレスとなるが,対応していない通信装置であれば通信相手のデバイスドライバに割り当てられているアドレスとなる。列402にはセッション状態を記載し,列403にはセッション残り時間を記載する。セッション残り時間は確立済であれば最後にデータパケットの送信を行ってから,あらかじめ規定されているセッション保持時間までの残り時間を記載する。セッション状態が不可であれば,あらかじめ規定されているセッション再確立時間までの残り時間を記載する。   The state of the multipath session is held in the session management table 400 illustrated in FIG. Column 401 describes the IP address of the communication partner. An address to which the client 102 requests transmission is described as an IP address. This address is a cognitive IP address for a device that supports multipath communication, such as the terminal 107 or the server 108, but for a communication device that does not support it, the address assigned to the device driver of the communication partner It becomes. Column 402 describes the session state, and column 403 describes the remaining session time. If the session remaining time is already established, the remaining time from the last data packet transmission until the session holding time specified in advance is described. If the session status is not possible, enter the remaining time until the session re-establishment time specified in advance.

行404に通信相手がサーバA 108である例を記載している。セッション状態は確立済でセッション残り時間は30秒である。行405には通信相手がサーバB 108である場合の例を記載している。セッション状態は不可でセッション再確立時間までは20秒である。   Line 404 describes an example in which the communication partner is server A 108. The session state is established and the remaining session time is 30 seconds. Line 405 describes an example in which the communication partner is server B 108. The session state is not possible and the session re-establishment time is 20 seconds.

図2は,端末107のマルチパス制御117の状態遷移フローを説明する。   FIG. 2 illustrates a state transition flow of the multipath control 117 of the terminal 107.

セッション状態は未確立201とするステップ201から始まる。通信開始要求が来るまでステップ202で待機し,通信開始要求が来るとステップ203に進みセッション管理テーブルに当該行を追加し,セッション状態を確立中とし,ステップ204でセッション開始処理を行う。セッション開始処理は,デバイスドライバごとに並列に行う。セッション開始処理の対象となるデバイスドライバは,端末107に実装されており,ネットワークへの接続を制御しているデバイスドライバすべて(図1では,ネットワークA112〜C114への接続を制御するデバイスドライバA〜C)とする。   The session state starts from step 201 where the state is not established 201. The process waits at step 202 until a communication start request is received. When a communication start request is received, the process proceeds to step 203, the row is added to the session management table, the session state is being established, and session start processing is performed at step 204. Session start processing is performed in parallel for each device driver. The device driver that is the target of session start processing is installed in the terminal 107, and all device drivers that control connection to the network (in FIG. 1, device drivers A to C that control connection to the networks A112 to C114). C).

セッション開始処理では端末107のマルチパス制御117とサーバ108のマルチパス制御118の間でメッセージと呼ぶパケットを交換する。本実施形態ではすべてのメッセージはUDPパケットであるとする。メッセージのポート番号はあらかじめ定められたポート番号を使用するものとする。セッション開始処理では端末107からセッション開始要求メッセージ700をサーバ108に対し送信し,セッション開始要求メッセージ700を受信したサーバ108のマルチパス制御118はセッション開始応答メッセージ900を端末107に返信する。端末107のマルチパス制御117は,セッション開始応答メッセージ900を受信すると,セッション開始要求メッセージ700の送信からセッション開始応答メッセージ900の受信までの時間であるラウンドトリップタイム(以下RTTと記す)を計算し,サーバ108に対しセッション確立メッセージ1000を送信する。サーバ108がセッション確立メッセージ1000を受信すると,セッション開始シーケンスは終了である。   In the session start process, packets called messages are exchanged between the multipath control 117 of the terminal 107 and the multipath control 118 of the server 108. In the present embodiment, it is assumed that all messages are UDP packets. It is assumed that a predetermined port number is used as the message port number. In the session start processing, a session start request message 700 is transmitted from the terminal 107 to the server 108, and the multipath control 118 of the server 108 that has received the session start request message 700 returns a session start response message 900 to the terminal 107. When the multipath control 117 of the terminal 107 receives the session start response message 900, the multipath control 117 calculates a round trip time (hereinafter referred to as RTT) that is a time from transmission of the session start request message 700 to reception of the session start response message 900. , A session establishment message 1000 is transmitted to the server 108. When the server 108 receives the session establishment message 1000, the session start sequence ends.

端末107のマルチパス制御117のセッション開始処理フローを図5に示す。クライアントアプリケーション102から通信開始要求が来ると,ステップ501で,端末107に装着されているデバイスドライバのうち,セッション開始処理を行っていないデバイスドライバを指定し,セッション開始要求メッセージ700を送信させる。   A session start processing flow of the multipath control 117 of the terminal 107 is shown in FIG. When a communication start request is received from the client application 102, in step 501, a device driver that has not been subjected to session start processing is specified from device drivers installed in the terminal 107, and a session start request message 700 is transmitted.

本実施形態では,ネットワークに接続しているすべてのデバイスドライバに対して,セッション開始処理を行うが,かならずしもすべてのデバイスドライバに対して,セッション開始処理を行わせる必要はなく,あらかじめ指定されたデバイスドライバに対してセッション開始処理を行わせてもよい。ステップ501が終了すると,ステップ502に進み,セッション開始応答メッセージ900の受信待ちタイマーをセットする。   In this embodiment, session start processing is performed for all device drivers connected to the network, but it is not always necessary to perform session start processing for all device drivers. The driver may be allowed to perform session start processing. When step 501 ends, the process proceeds to step 502 where a reception wait timer for the session start response message 900 is set.

ここで,図7に,セッション開始要求メッセージ700のパケットフォーマットを例示する。701にメッセージタイプを格納し,702にコグニティブIPアドレスを格納する。703に通信パスごとに端末107内で一意に定めるパスIDを格納し,704には送信に用いるデバイスドライバに従った送信レートを格納する。705には端末107によるセッション開始要求メッセージ700の送信時刻を格納する。送信レート704はマルチパス制御117が保持する図8に示す送信レート設定テーブル800に従い格納する。   Here, FIG. 7 illustrates a packet format of the session start request message 700. 701 stores the message type and 702 stores the cognitive IP address. A path ID uniquely determined in the terminal 107 for each communication path is stored in 703, and a transmission rate according to a device driver used for transmission is stored in 704. 705 stores the transmission time of the session start request message 700 by the terminal 107. The transmission rate 704 is stored according to the transmission rate setting table 800 shown in FIG.

送信レート設定テーブル800に設定されている値は,マルチパス制御117が起動するときにユーザによりあらかじめ設定されている送信レート設定ファイルを読み込むことにより設定する。送信レート設定テーブル800の801にはデバイスドライバ名を記載し,802には送信レートを記載する。   The values set in the transmission rate setting table 800 are set by reading a transmission rate setting file set in advance by the user when the multipath control 117 is activated. A device driver name is described in 801 of the transmission rate setting table 800, and a transmission rate is described in 802.

次に,図9に,セッション開始応答メッセージ900のパケットフォーマットを例示する。901にはメッセージタイプとして「セッション開始応答メッセージ」を格納し,902にはサーバ108のコグニティブIPアドレスを格納する。903にはセッション開始要求メッセージ700のパスID703に格納されていたパスIDが格納されている。904には送信時刻1として,セッション開始要求メッセージ700の送信時刻列705に格納されていた端末107からの送信時刻を格納する。905には送信時刻2として,サーバ108のセッション開始応答メッセージ900の送信時刻が格納されている。   Next, FIG. 9 illustrates a packet format of the session start response message 900. 901 stores “session start response message” as a message type, and 902 stores the cognitive IP address of the server 108. In 903, the path ID stored in the path ID 703 of the session start request message 700 is stored. In 904, the transmission time from the terminal 107 stored in the transmission time column 705 of the session start request message 700 is stored as the transmission time 1. 905 stores the transmission time of the session start response message 900 of the server 108 as the transmission time 2.

図5の説明に戻り,ステップ503ではサーバ108からセッション開始応答メッセージ900を受信したかチェックを行い,受信していない場合はステップ504に進む。ステップ504ではセッション開始応答メッセージ受信待ちタイマーの時間が経過したかチェックを行い,経過していればステップ505に進む。ステップ505では本セッション開始シーケンスの中でセッション開始メッセージの送信回数があらかじめ定められた一定回数以下であるかのチェックを行い,一定回数を越えていればステップ508に進みセッション開始処理を失敗とし終了する。一定回数を越えていなければステップ506にてセッション開始要求メッセージ700を再送させる。ステップ507ではステップ502と同様にセッション開始応答メッセージ900の受信待ちタイマーをセットし,ステップ503に戻る。ステップ503でセッション開始応答メッセージ900を受信すると,ステップ509に進み,セッション確立メッセージ1000を送信させるデバイスドライバを,セッション開始処理を行っているデバイスドライバに指定し,送信させる。   Returning to the explanation of FIG. 5, in step 503, it is checked whether the session start response message 900 is received from the server 108. If not received, the process proceeds to step 504. In step 504, it is checked whether the time of the session start response message reception waiting timer has elapsed, and if it has elapsed, the process proceeds to step 505. In step 505, it is checked in this session start sequence whether the number of transmissions of the session start message is equal to or less than a predetermined number. If the number exceeds the predetermined number, the process proceeds to step 508 and the session start process is failed and terminated. To do. If the predetermined number of times has not been exceeded, in step 506, the session start request message 700 is retransmitted. In step 507, similarly to step 502, a reception waiting timer for the session start response message 900 is set, and the process returns to step 503. When the session start response message 900 is received in step 503, the process proceeds to step 509, in which the device driver that transmits the session establishment message 1000 is designated and transmitted to the device driver that is performing the session start processing.

ここで,図10に,セッション確立メッセージ1000のパケットフォーマットを例示する。1001のメッセージタイプにセッション確立メッセージ1000を格納し,1002に端末107のコグニティブIPアドレスを格納する。1003にパスIDを格納し,1004にサーバ108からのセッション開始応答メッセージ900の送信時刻(2)905に格納されていた時刻を格納する。   Here, FIG. 10 illustrates a packet format of the session establishment message 1000. The session establishment message 1000 is stored in the message type 1001, and the cognitive IP address of the terminal 107 is stored in 1002. The path ID is stored in 1003, and the time stored in the transmission time (2) 905 of the session start response message 900 from the server 108 is stored in 1004.

図5の説明に戻り,ステップ510ではサーバ108からのセッション開始応答メッセージ900の送信時刻(1)904に格納されている時刻と端末107の現在時刻を比較することで,セッション開始要求メッセージ700の送信からセッション開始応答メッセージ900の受信にかかった時間を計算し,RTTを計算する。セッション開始応答メッセージ900を受信したサーバ108とのパスは,マルチパス通信が可能なパスとして,ステップ511で,パス管理テーブル1100に追加する。   Returning to the description of FIG. 5, in step 510, the session start request message 700 is sent by comparing the time stored in the transmission time (1) 904 of the session start response message 900 from the server 108 with the current time of the terminal 107. Calculate the RTT by calculating the time taken from sending to receiving the session start response message 900. The path with the server 108 that has received the session start response message 900 is added to the path management table 1100 in step 511 as a path capable of multipath communication.

ここで,図11に,端末107のパス管理テーブル1100を例示する。列1101には宛先としてサーバ108のコグニティブIPアドレスを記載する。列1102にはパスIDを格納する。列1103には送信先の物理IPアドレスを記載する。列1104には端末107の送信元アドレスを記載する。列1105にはパスに対する振り分け率を記載する。振り分け率は,パス管理テーブル1100に記載され使用されている通信パスの送信レート802に基づいて計算する。例えば,デバイスドライバAを使用しているパスの振り分け率は以下の式に従って計算できる。   Here, FIG. 11 illustrates the path management table 1100 of the terminal 107. A column 1101 describes the cognitive IP address of the server 108 as a destination. A column 1102 stores a path ID. A column 1103 describes the physical IP address of the transmission destination. A column 1104 describes the source address of the terminal 107. A column 1105 describes the distribution rate for the path. The distribution rate is calculated based on the transmission rate 802 of the communication path described and used in the path management table 1100. For example, the distribution rate of paths using device driver A can be calculated according to the following formula.

「デバイスドライバAへの振り分け率」 = 100×「デバイスドライバAの送信レート」/「パスすべての送信レートの和」
図8に例示された送信レートによれば,I/F Aの送信レートは60であり,パスすべての送信レートの和はI/F Aの送信レート60,I/F Bの送信レート30,I/F Cの送信レート10の和であるので100である。よって,I/F Aへの振り分け率は100×60/100=60%となる。
"Distribution rate to device driver A" = 100 x "transmission rate of device driver A" / "sum of transmission rates of all paths"
According to the transmission rate illustrated in FIG. 8, the transmission rate of I / FA is 60, and the sum of the transmission rates of all paths is I / FA transmission rate 60, I / FB transmission rate 30, and I / FC. 100 because it is the sum of the transmission rates of 10. Therefore, the allocation rate to I / FA is 100 × 60/100 = 60%.

列1105にはサーバ108とのRTTを記載する。列1107は各パスが,RTTが最短なプライマリパスであるかどうかを記載する。プライマリパスである場合は1,プライマリパスでない場合は0を記載する。列1108にはパス確認タイマーの残り時間を記載する。各行に,パスに関する情報を記載する。例として,セッション開始処理を行っているのが端末107のデバイスドライバAAであり,通信先がサーバA108である場合の行1109を説明する。列1101にサーバA108を記載し,パスIDが例えば1だったとすると列1102にパスID1を記載する。サーバA108のデバイスドライバDのアドレスはサーバ108からのセッション開始応答メッセージ900を含んだパケットのIPヘッダーの送信元アドレスを調べることによりわかる。本実施形態ではサーバ108のコグニティブIPアドレスとデバイスドライバDのIPアドレスは同じであるとしているので,サーバA108のデバイスドライバDのIPアドレスもサーバA108である。IPヘッダーの送信元アドレスより取得したサーバA108のデバイスドライバDのアドレスを列1103に記載し,列1104に端末107の送信元のアドレスとしてI/F Aを記載する。ステップ510で計算したRTTは列1106に格納する。列1107には列1109で示されるパスがサーバA108に対するプライマリパスであるかどうかを格納するが,ステップ511の時点ではまだ不明であるので0を記載する。列1108にはパス確認処理を行うまでのタイマーとしてパス確認タイマーの残り時間を記載する。パス確認タイマーの時間はあらかじめ定められた値(例えば30秒)を記載する。   A column 1105 describes the RTT with the server 108. Column 1107 describes whether each path is a primary path with the shortest RTT. If it is a primary path, 1 is entered, and if it is not a primary path, 0 is entered. A column 1108 describes the remaining time of the pass confirmation timer. Write information about the path in each line. As an example, a line 1109 in which the session start process is performed by the device driver AA of the terminal 107 and the communication destination is the server A108 will be described. If the server A108 is described in the column 1101, and the path ID is 1, for example, the path ID1 is described in the column 1102. The address of the device driver D of the server A 108 can be found by examining the source address of the IP header of the packet including the session start response message 900 from the server 108. In this embodiment, since the cognitive IP address of the server 108 and the IP address of the device driver D are the same, the IP address of the device driver D of the server A 108 is also the server A 108. The address of the device driver D of the server A 108 acquired from the source address of the IP header is described in column 1103, and I / F A is described as the source address of the terminal 107 in column 1104. The RTT calculated in step 510 is stored in column 1106. The column 1107 stores whether or not the path shown in the column 1109 is a primary path for the server A108, but 0 is entered because it is still unknown at the time of step 511. A column 1108 describes the remaining time of the path confirmation timer as a timer until the path confirmation process is performed. For the time of the pass confirmation timer, a predetermined value (for example, 30 seconds) is described.

図5の説明に戻り,ステップ512ではステップ511で追加したパスがサーバA108に対するパスのうち,もっともRTTが短いかどうかを検索し,もっともRTTが短ければ,ステップ513でプライマリパスに設定し列1107に1を記載する。RTTが最も短くなければ何もしない。以上の処理を持ってセッション開始処理は成功とし(ステップ514),処理を終了する。   Returning to the description of FIG. 5, in step 512, it is searched whether or not the path added in step 511 is the shortest RTT among the paths to the server A108, and if the RTT is the shortest, the primary path is set in step 513 to the column 1107. 1 should be entered. If RTT is the shortest, nothing is done. With the above processing, the session start processing is successful (step 514), and the processing is terminated.

図2の説明に戻り,ステップ204でセッション開始処理が終了すると,ステップ205でセッション開始処理が成功したかのチェックを行い,デバイスドライバごとに行ったセッション開始処理のうち,いずれかの処理で成功すればステップ209へ,すべてのセッション開始処理が失敗すればステップ206に進む。失敗した場合,ステップ206にてセッション管理テーブルの当該行のセッション状態を不可とし,ステップ207でセッション再確立タイマーをセッション管理テーブルの当該行に記載する。再確立タイマーの時間はあらかじめ定められている値を記載すればよい。ステップ208でセッション再確立タイマーの時間が経過すると,ステップ201に戻りセッション状態を未確立とする。セッション開始処理が成功すると,ステップ209でセッション管理テーブルの当該行のセッション状態を確立済とし,イベントの発生まで待つ。発生待ちを行うイベントには,パス確認タイマーの時間が経過するステップ211,新しいネットワークへ接続されるなどでパスが追加されるステップ212,ネットワークとの切断が検知されパスが削除されるステップ213がある。ステップ211で,パス管理テーブル1100に記載されているパス確認タイマーが経過すると,ステップ217で,経過したパスに対しパス確認処理を行う。   Returning to the explanation of FIG. 2, when the session start process is completed in step 204, it is checked in step 205 whether the session start process is successful, and one of the session start processes performed for each device driver is successful. If so, the process proceeds to step 209. If all the session start processes fail, the process proceeds to step 206. If unsuccessful, the session state of the corresponding row of the session management table is disabled in step 206, and the session re-establishment timer is described in the corresponding row of the session management table in step 207. The reestablishment timer time may be a predetermined value. When the time of the session re-establishment timer has elapsed in step 208, the process returns to step 201 and the session state is not established. If the session start process is successful, in step 209, the session state of the relevant row in the session management table is established, and the process waits until an event occurs. The events waiting for occurrence include step 211 in which the time of the path confirmation timer elapses, step 212 in which a path is added due to connection to a new network, etc., and step 213 in which disconnection from the network is detected and the path is deleted. is there. When the path confirmation timer described in the path management table 1100 elapses in step 211, path confirmation processing is performed for the elapsed path in step 217.

パス確認処理(ステップ217)では,端末107のマルチパス制御117からサーバ108に対しパス確認要求メッセージ1200を送信させる。パス確認要求メッセージ1200を受信したサーバ108のマルチパス制御118はパス応答メッセージを端末107に送信させる。パス確認応答メッセージを受信した端末107のマルチパス制御117はパス確認通知メッセージをサーバ108に送信させる。メッセージを送信するデバイスドライバはパス確認を行うデバイスドライバである。   In the path confirmation process (step 217), the multipath control 117 of the terminal 107 transmits a path confirmation request message 1200 to the server 108. The multipath control 118 of the server 108 that has received the path confirmation request message 1200 causes the terminal 107 to transmit a path response message. The multipath control 117 of the terminal 107 that has received the path confirmation response message causes the server 108 to transmit a path confirmation notification message. The device driver that transmits the message is a device driver that performs path confirmation.

図12に,パス確認要求メッセージ1200のパケットフォーマットを例示する。列1201にメッセージタイプとしてパス確認要求メッセージ1200を格納し,1202に端末107のコグニティブIPアドレスを格納する。1203にパス確認を行うパスIDを格納し,1204にパス確認要求メッセージ1200の送信時刻を格納する。次に,パス確認応答メッセージのパケットフォーマット例は図9に示すフォーマットと同じである。901のメッセージタイプにパス確認応答メッセージを格納し,902にサーバ108のコグニティブIPアドレスを格納する。903にパス確認要求メッセージ1200の1203に格納されていたパスIDを格納する。送信時刻(1) 904にパス確認要求メッセージ1200の1204に格納されていた送信時刻を格納し,送信時刻(2)905にパス確認応答メッセージの送信時刻を格納する。パス確認通知メッセージのパケットフォーマット例は図10に示すパケットフォーマットと同じである。メッセージタイプ1001にパス確認通知メッセージを格納し,端末107の1002に端末107のコグニティブIPアドレスを格納する。1003にパス確認を行ったパスIDを格納し1004にパス確認応答メッセージ1307の1005に格納されていたパス確認応答メッセージの送信時刻を格納する。   FIG. 12 illustrates a packet format of the path confirmation request message 1200. A column 1201 stores a path confirmation request message 1200 as a message type, and 1202 stores a cognitive IP address of the terminal 107. A path ID for performing path confirmation is stored in 1203, and a transmission time of the path confirmation request message 1200 is stored in 1204. Next, the packet format example of the path confirmation response message is the same as the format shown in FIG. The path confirmation response message is stored in the message type 901, and the cognitive IP address of the server 108 is stored in 902. In 903, the path ID stored in 1203 of the path confirmation request message 1200 is stored. The transmission time stored in 1204 of the path confirmation request message 1200 is stored in transmission time (1) 904, and the transmission time of the path confirmation response message is stored in transmission time (2) 905. An example of the packet format of the path confirmation notification message is the same as the packet format shown in FIG. A path confirmation notification message is stored in the message type 1001, and the cognitive IP address of the terminal 107 is stored in 1002 of the terminal 107. The path ID for which path confirmation has been performed is stored in 1003, and the transmission time of the path confirmation response message stored in 1005 of the path confirmation response message 1307 is stored in 1004.

端末107のマルチパス制御117によるパス確認処理のフローチャートを図13に示す。ステップ1301でパス確認要求メッセージ1200を送信すると,ステップ1302でパス確認応答メッセージの受信待ちタイマーをセットする。ステップ1303で,パス確認応答メッセージを受信したか否かチェックを行い,パス確認応答メッセージを受信していればステップ1310へ,受信していなければステップ1304へ進む。ステップ1304ではパス確認応答メッセージ受信タイマーが経過したかチェックを行い,経過していなければステップ1303に戻る。経過していればステップ1305で,パス確認要求メッセージ1200の送信回数があらかじめ定められている一定回数以下かチェックを行い,一定回数以下でなければ,パスが切断されているのでステップ1308でパス管理テーブル1100の当該行を削除する。ステップ1309で他にもパスが残っていれば,最もRTTの短い別のパスをプライマリパスとして再設定し処理を終了する。一定回数以下であれば,ステップ1306でパス確認要求メッセージ1200を再送し,ステップ1307でパス確認応答待ちタイマーをステップ1302と同様に設定し,ステップ1303に戻る。   FIG. 13 shows a flowchart of the path confirmation processing by the multipath control 117 of the terminal 107. When the path confirmation request message 1200 is transmitted in step 1301, a reception waiting timer for the path confirmation response message is set in step 1302. In step 1303, it is checked whether a path confirmation response message has been received. If a path confirmation response message has been received, the process proceeds to step 1310, and if not, the process proceeds to step 1304. In step 1304, it is checked whether the path confirmation response message reception timer has elapsed. If not, the flow returns to step 1303. If it has passed, in step 1305, it is checked whether the number of transmissions of the path confirmation request message 1200 is a predetermined number or less. If it is not less than the predetermined number, the path is disconnected, so the path is managed in step 1308. Delete the row in table 1100. If there are other paths remaining in step 1309, another path with the shortest RTT is reset as the primary path and the process is terminated. If it is equal to or smaller than the predetermined number, the path confirmation request message 1200 is retransmitted in step 1306, the path confirmation response wait timer is set in the same manner as in step 1302 in step 1307, and the process returns to step 1303.

ステップ1303でパス確認応答メッセージを受信した場合,ステップ1310でサーバ108に向けパス確認通知メッセージを送信し,ステップ1311で,パス確認応答メッセージの送信時刻(1) 1004と現在時刻の比較によりRTTを計算し,当該パス管理テーブル1100の列のRTTを更新する。ステップ1312ではパス管理テーブル1100の当該行のパス確認タイマーを再設定する。ステップ1313で,サーバ108との間でパス確認処理を行ったパスのRTTがもっとも短いかチェックを行い,もっとも短ければステップ1314でプライマリパスに設定する。他に短いパスがあればなにもしない。以上の処理をもって,ステップ1315でパス確認処理は成功とし処理を終了する。   If a path confirmation response message is received in step 1303, a path confirmation notification message is sent to the server 108 in step 1310. In step 1311, the RTT is calculated by comparing the transmission time (1) 1004 of the path confirmation response message with the current time. Calculate and update the RTT in the column of the path management table 1100. In step 1312, the path confirmation timer for the relevant line in the path management table 1100 is reset. In step 1313, it is checked whether the RTT of the path for which the path confirmation processing has been performed with the server 108 is the shortest, and if it is the shortest, the primary path is set in step 1314. If there are other short paths, do nothing. With the above processing, the path confirmation processing is determined to be successful in step 1315 and the processing is terminated.

図2の説明に戻り,ステップ217でのパス確認処理の結果をステップ218でチェックし,パス切断であればステップ215に進む。パス切断でなければステップ209に戻る。ステップ210で発生したイベントがパス追加ステップ212であれば,ステップ216で,追加されたパスによるセッション開始処理を行う。パスが追加される場合には,端末107に新たにデバイスドライバとネットワークインターフェース装置とが装着された場合と,デバイスドライバとネットワークインターフェース装置がこれまで接続していなかったネットワークに接続した場合が考えられる。   Returning to the explanation of FIG. 2, the result of the path confirmation process in step 217 is checked in step 218. If the path is disconnected, the process proceeds to step 215. If the path is not disconnected, the process returns to step 209. If the event generated in step 210 is the path addition step 212, in step 216, session start processing is performed using the added path. When a path is added, a device driver and a network interface device are newly attached to the terminal 107, and a case where the device driver and the network interface device are connected to a network that has not been connected before. .

ステップ210で発生したイベントがパス削除ステップ213であれば,ステップ214でパス削除処理を行う。パス削除とは,端末107に装着されていたデバイスドライバが取り外されたり,接続していたネットワークが無線であれば圏外になったりなどしてネットワークが切断されたことを検知した場合に行う処理である。パス削除処理では,パス削除を検知した端末107のマルチパス制御117はパス削除要求メッセージをサーバ108にプライマリパスを用いて送信する。パス削除要求メッセージを受信したサーバ108のマルチパス制御118はパス削除応答メッセージを端末107に返信する。経路削除処理で使用するメッセージはプライマリパスとなっているデバイスドライバを送信先として指定し送信する。   If the event generated in step 210 is the path deletion step 213, path deletion processing is performed in step 214. Path deletion is processing performed when it is detected that the network has been disconnected, such as when a device driver attached to the terminal 107 is removed, or if the connected network is out of service if it is wireless. is there. In the path deletion process, the multipath control 117 of the terminal 107 that has detected the path deletion transmits a path deletion request message to the server 108 using the primary path. The multipath control 118 of the server 108 that has received the path deletion request message returns a path deletion response message to the terminal 107. The message used in the route deletion process is transmitted by specifying the device driver that is the primary path as the transmission destination.

図14に,パス削除要求メッセージとパス削除応答メッセージ1400のパケットフォーマットを例示する。メッセージタイプ1401にそれぞれ,「パス削除要求メッセージ」または,「パス削除応答メッセージ」を格納する。コグニティブIPアドレス1402にはパス削除要求メッセージであれば端末107のコグニティブIPアドレスをパス削除応答メッセージであればサーバ108のコグニティブIPアドレスを格納し,パスID1403には削除を行うパスのIDを格納する。   FIG. 14 illustrates packet formats of a path deletion request message and a path deletion response message 1400. Each message type 1401 stores a “path deletion request message” or a “path deletion response message”. In the case of a path deletion request message, the cognitive IP address 1402 stores the cognitive IP address of the terminal 107, and in the case of a path deletion response message, the cognitive IP address of the server 108 is stored, and the path ID 1403 stores the ID of the path to be deleted. .

図15に,端末107のマルチパス制御117のパス削除処理フローチャートを例示する。ステップ1501でパス管理テーブル1100から当該パスの行を削除し,ステップ1502で同一通信先に別パスが存在するかのチェックを行う。別パスが存在していなければ,処理を終了する。別パスが存在した場合,ステップ1503で,削除を行ったパスがプライマリパスであるかチェックし,プライマリパスでなければステップ1505に進む。プライマリパスであればステップ1504で,残っているパスでもっともRTTの短いパスをプライマリパスに設定する。   FIG. 15 illustrates a path deletion processing flowchart of the multipath control 117 of the terminal 107. In step 1501, the row of the path is deleted from the path management table 1100, and in step 1502, it is checked whether another path exists at the same communication destination. If another path does not exist, the process ends. If another path exists, it is checked in step 1503 if the deleted path is a primary path. If not, the process proceeds to step 1505. If it is the primary path, in step 1504, the path with the shortest RTT is set as the primary path in the remaining paths.

ステップ1505ではパス削除要求メッセージ1400をプライマリパスより送信を行う。送信を行う送信先は,パス管理テーブル1100の宛先に記載されている通信先の中で削除したパスで通信可能であった通信先すべてに対して行う。ステップ1506でパス削除応答メッセージ1400の受信待ちタイマーをセットする。タイマーの時間は予め定められている値とする。ステップ1507ではパス削除応答メッセージ1400を受信したかチェックを行い,受信すれば処理を終了する。   In step 1505, a path deletion request message 1400 is transmitted from the primary path. The transmission destination for transmission is performed for all communication destinations that can communicate with the deleted path among the communication destinations described in the destination of the path management table 1100. In step 1506, a reception wait timer for the path deletion response message 1400 is set. The timer time is a predetermined value. In step 1507, it is checked whether or not a path deletion response message 1400 has been received.

受信していなければ,ステップ1508でパス削除応答メッセージ受信待ちタイマーが経過したかチェックを行い,経過していなければステップ1507に戻る。経過していればステップ1509で,パス削除要求の送信回数があらかじめ定められた一定数以下かのチェックを行い,一定数以下でなければ処理を終了する。一定数以下であれば,ステップ1510でパス削除要求メッセージ1400の再送を行い,ステップ1511で,パス削除応答メッセージ受信待ちタイマーをステップ1506と同様にセットしステップ1507に戻る。以上が端末107のパス削除処理である。   If it has not been received, it is checked in step 1508 whether the path deletion response message reception waiting timer has elapsed, and if not, the process returns to step 1507. If it has elapsed, it is checked in step 1509 if the number of transmissions of the path deletion request is less than a predetermined number, and if not less than the predetermined number, the process is terminated. If it is less than or equal to a certain number, the path deletion request message 1400 is retransmitted in step 1510, the path deletion response message reception waiting timer is set in step 1511 in the same manner as in step 1506, and the process returns to step 1507. The above is the path deletion process of the terminal 107.

図2の説明に戻り,パス削除処理ステップ214を終了すると,ステップ215でパス管理テーブル1100をチェックし,セッション管理テーブル400においてセッション状態が確立済である通信先に対し,パスが存在しているかのチェックを行う。パスが存在していなければ,セッション管理テーブル400から当該行を削除し,ステップ201に戻る。パスが存在していれば,ステップ209に戻る。   Returning to the description of FIG. 2, when the path deletion processing step 214 is completed, the path management table 1100 is checked in step 215, and whether a path exists for the communication destination whose session state has been established in the session management table 400. Perform the check. If the path does not exist, the relevant line is deleted from the session management table 400, and the process returns to step 201. If the path exists, the process returns to step 209.

ステップ210で発生したイベントがステップ211〜ステップ213のいずれでもない場合,セッション管理テーブル400のセッション残り時間が経過もしくはセッション終了要求メッセージを受信したイベントであり,ステップ219でセッション終了処理を行う。セッション終了処理では,端末107のマルチパス制御117は,サーバ108に対しセッション終了要求メッセージを送信する。サーバ108のマルチパス制御118はセッション終了要求メッセージを受信するとセッション終了応答メッセージを端末107に返信する。端末107のマルチパス制御117は,セッション終了応答メッセージを受信すると,セッション終了確認メッセージ1600をサーバ108に送信する。セッション終了処理で使用するメッセージは,プライマリパスとなっているデバイスドライバを送信先として指定し送信する。   If the event generated in step 210 is not any of steps 211 to 213, the session remaining time in the session management table 400 has elapsed or a session end request message has been received. In step 219, session end processing is performed. In the session end process, the multipath control 117 of the terminal 107 transmits a session end request message to the server 108. When the multipath control 118 of the server 108 receives the session end request message, it returns a session end response message to the terminal 107. Upon receiving the session end response message, the multipath control 117 of the terminal 107 transmits a session end confirmation message 1600 to the server 108. The message used in session termination processing is sent by specifying the device driver that is the primary path as the destination.

図16に,セッション終了確認メッセージのパケットフォーマットを例示する。メッセージタイプ1601に各メッセージのタイプを格納し,コグニティブIPアドレス1602にメッセージの送信元のコグニティブIPアドレスを格納する。   FIG. 16 illustrates the packet format of the session end confirmation message. The message type 1601 stores the type of each message, and the cognitive IP address 1602 stores the cognitive IP address of the message transmission source.

次に,図17に,端末107のマルチパス制御117とサーバ108のマルチパス制御118のセッション終了処理のフローチャートを例示する。ステップ1701で,セッション終了タイマーの経過による終了処理の開始か,セッション終了要求メッセージ1600の受信による開始かをチェックする。セッション終了要求受信であれば,ステップ1710に進む。セッション終了タイマーの経過であれば,ステップ1702に進み,セッション終了要求メッセージ1600をプライマリパスより送信する。ステップ1703で,セッション終了応答メッセージ受信タイマーをあらかじめ定められた時間にセットする。   Next, FIG. 17 illustrates a flowchart of session end processing of the multipath control 117 of the terminal 107 and the multipath control 118 of the server 108. In step 1701, it is checked whether the end process starts due to the elapse of the session end timer or the start is due to reception of the session end request message 1600. If a session end request is received, the process proceeds to step 1710. If the session end timer has elapsed, the process proceeds to step 1702, and a session end request message 1600 is transmitted from the primary path. In step 1703, a session end response message reception timer is set to a predetermined time.

ステップ1704で,セッション終了応答メッセージを受信したかチェックを行い,受信していればステップ1709に進む。受信していなければステップ1705に進みセッション終了応答メッセージ受信待ちタイマーが経過したかチェックする。経過していなければ,ステップ1704に戻り,経過していなければステップ1706で,セッション終了要求メッセージの送信回数があらかじめ定められた一定回数以下かのチェックを行う。送信回数が一定回数以下でないなら,ステップ1716に進む。一定回数以下であればステップ1707で,セッション終了要求メッセージを再送し,ステップ1708で,セッション終了応答メッセージ受信待ちタイマーをステップ1703と同様にセットしステップ1704に戻る。ステップ1704でセッション終了応答メッセージを受信すると,ステップ1709でセッション終了確認メッセージ1600をプライマリパスより送信し,ステップ1716に進む。   In step 1704, it is checked whether or not a session end response message has been received. If not received, the process proceeds to step 1705 to check whether the session end response message reception waiting timer has elapsed. If it has not elapsed, the process returns to step 1704. If it has not elapsed, in step 1706, it is checked whether the number of transmissions of the session end request message is equal to or less than a predetermined number. If the number of transmissions is not less than a certain number, the process proceeds to step 1716. If it is equal to or smaller than the predetermined number of times, the session end request message is retransmitted in step 1707. In step 1708, the session end response message reception waiting timer is set in the same manner as in step 1703, and the process returns to step 1704. When the session end response message is received in step 1704, a session end confirmation message 1600 is transmitted from the primary path in step 1709, and the process proceeds to step 1716.

ステップ1701でセッション終了要求を受信した場合,ステップ1710で,セッション終了応答メッセージをプライマリパスよりセッション終了要求を送信してきた送信元に対し送信する。次に,ステップ1711で,セッション終了確認メッセージ1600の受信待ちタイマーをあらかじめ定められている値にセットする。ステップ1712で,セッション終了確認メッセージ1600を受信したかチェックを行い,受信していればステップ1716に進む。受信していなければ,ステップ1713に進み,セッション終了確認メッセージ受信待ちタイマーが経過したかチェックする。経過していれば,ステップ1716に進む。   If a session end request is received in step 1701, in step 1710, a session end response message is transmitted from the primary path to the transmission source that has transmitted the session end request. Next, in step 1711, the reception waiting timer of the session end confirmation message 1600 is set to a predetermined value. In step 1712, it is checked whether or not a session end confirmation message 1600 has been received. If not received, the process proceeds to step 1713 to check whether the session end confirmation message reception waiting timer has elapsed. If it has elapsed, the process proceeds to Step 1716.

経過していなければ,ステップ1714でセッション終了要求メッセージが再送されて来ていないかチェックを行い,再送されて来ていなければ,ステップ1702に戻る。再送してきていれば,ステップ1715でセッション終了応答の再送を行い,ステップ1702に戻る。ステップ1706では経管理テーブルよりセッション終了処理を行った通信先を宛先とするパスすべてを削除し,ステップ1717でセッション管理テーブルより当該通信先のセッションに関する行を削除し,処理を終了する。   If it has not elapsed, it is checked in step 1714 whether the session end request message has been retransmitted. If it has not been retransmitted, the process returns to step 1702. If it has been resent, the session end response is resent in step 1715, and the process returns to step 1702. In step 1706, all paths destined to the communication destination for which the session termination processing has been performed are deleted from the transaction management table. In step 1717, the line relating to the session of the communication destination is deleted from the session management table, and the processing is terminated.

図2の説明に戻り,ステップ219でセッション終了処理が終了すると,ステップ201に戻る。   Returning to the description of FIG. 2, when the session end processing is completed in step 219, the process returns to step 201.

以上の状態遷移フローチャートに従い,端末107のマルチパス制御117は通信先サーバ108のマルチパス制御118とのセッション状態を管理することが出来る。   According to the above state transition flowchart, the multipath control 117 of the terminal 107 can manage the session state with the multipath control 118 of the communication destination server 108.

次に,図3を用いて,サーバ108のマルチパス制御118の状態遷移フローを説明する。   Next, a state transition flow of the multipath control 118 of the server 108 will be described with reference to FIG.

セッション状態を未確立とするステップ301から始め,セッション開始要求が来るまでステップ302で待機し,セッション開始要求が来るとステップ303に進みセッション管理テーブルに当該行を追加し,セッション状態を確立中とし,ステップ304でセッション開始処理を行う。セッション開始処理は,複数並行して行ってもよい。   The process starts from step 301 in which the session state is not established, and waits in step 302 until a session start request is received. If a session start request is received, the process proceeds to step 303 and the corresponding row is added to the session management table. In step 304, session start processing is performed. A plurality of session start processes may be performed in parallel.

図6に,サーバ108のマルチパス制御118のセッション開始処理のフローチャートを例示する。ステップ601で端末107よりセッション開始要求メッセージ700を受信すると,ステップ602に進み,セッション開始応答メッセージ900を送信する。セッション開始応答メッセージの宛先は,セッション開始要求メッセージの送信元アドレスとする。ステップ603ではセッション確立メッセージ1000の受信待ちタイマーをあらかじめ定められた値にセットし,ステップ604でセッション確立メッセージ1000を受信したかどうかのチェックを行う。受信していればステップ610に進む。受信していなければ,ステップ605に進みセッション確立メッセージ受信待ちタイマーが経過していないかチェックを行う。   FIG. 6 illustrates a flowchart of the session start process of the multipath control 118 of the server 108. When the session start request message 700 is received from the terminal 107 in step 601, the process proceeds to step 602 and a session start response message 900 is transmitted. The destination of the session start response message is the source address of the session start request message. In step 603, a reception waiting timer for the session establishment message 1000 is set to a predetermined value, and in step 604, it is checked whether the session establishment message 1000 has been received. If received, go to step 610. If not received, the process proceeds to step 605 to check whether the session establishment message reception waiting timer has elapsed.

経過していなければステップ604に戻る。経過していれば,ステップ606に進みセッション開始応答メッセージ900の送信回数があらかじめ定められた一定回数以下かのチェックを行う。一定回数以下でなければ,セッション開始処理は失敗とし処理を終了する。一定回数以下であれば,ステップ607でセッション開始応答メッセージ900の再送を行う。ステップ608ではステップ603と同様に,セッション確立メッセージ受信待ちタイマーのセットを行い,ステップ604に戻る。ステップ610では,セッション確立メッセージ1000に格納されているセッション開始応答メッセージ900の送信時刻と現在時刻との比較を行いRTTの計算を行う。ステップ611ではパス管理テーブル1100にセッション開始要求メッセージ700の送信元へのパスを追加する。   If not, the process returns to step 604. If it has elapsed, the process proceeds to step 606, where it is checked whether the number of transmissions of the session start response message 900 is equal to or less than a predetermined number. If it is not less than a certain number of times, the session start process will fail and the process will end. If it is equal to or smaller than the predetermined number of times, the session start response message 900 is retransmitted in step 607. In step 608, similarly to step 603, a session establishment message reception waiting timer is set, and the process returns to step 604. In step 610, the RTT is calculated by comparing the transmission time of the session start response message 900 stored in the session establishment message 1000 with the current time. In step 611, the path to the transmission source of the session start request message 700 is added to the path management table 1100.

サーバ108のパス管理テーブル1100も図11に示す端末107のパス管理テーブル1100と同じであるが,列1108にはあらかじめ定められているパス確認の受信待ちタイマーを記載する。パス確認の受信待ちタイマーは,図5のステップ511で記載する端末107のパス確認タイマーの3倍といったように端末107のパス確認タイマーより長めに設定しておく必要がある。また,列1105の振り分け率の計算に使用する各パスの送信レートは図7に示すセッション開始要求メッセージ700に格納されている送信レート704を使用する。ステップ612では,ステップ611で追加したパスがもっともRTTの短いパスであるかチェックを行い,最もRTTの短いパスであればステップ613でプライマリパスに設定し,最もRTTの短いパスでなければ,プライマリパスとはせず,ステップ614に進みセッション開始処理は成功とし処理を終了する。   The path management table 1100 of the server 108 is the same as the path management table 1100 of the terminal 107 shown in FIG. 11. However, a predetermined waiting confirmation timer for path confirmation is described in the column 1108. The path confirmation reception waiting timer needs to be set longer than the path confirmation timer of the terminal 107, such as three times the path confirmation timer of the terminal 107 described in step 511 of FIG. Further, the transmission rate 704 stored in the session start request message 700 shown in FIG. 7 is used as the transmission rate of each path used for calculating the distribution rate in the column 1105. In step 612, it is checked whether the path added in step 611 is the path with the shortest RTT. If the path has the shortest RTT, the path is set as the primary path in step 613. Without passing, the process proceeds to step 614, where the session start process is successful and the process ends.

図3の説明に戻り,ステップ305にてセッション開始処理の結果をチェックし,すべてのセッション開始処理が失敗となればステップ306に進みセッション管理テーブルのセッション状態を不可とし,図2のステップ207と同様にセッション再確立タイマーを設定する。ステップ308にてセッション再確立タイマーが経過したかチェックを行い,経過すればステップ301に戻る。セッション開始処理のうちひとつでも成功していれば,ステップ309でセッション管理テーブルのセッション状態を確立済とし,ステップ310でイベントの派生を待つ。ステップ310で発生するイベントにはパス確認要求メッセージ1200の受信ステップ311,パス確認受信タイマーの経過ステップ312,パス追加要求メッセージの受信ステップ313,パス削除要求メッセージ1400の受信ステップ314のいずれかである。発生したイベントがパス確認要求メッセージ1200の受信ステップ311であれば,ステップ318に進みパス確認処理を行う。   Returning to the description of FIG. 3, the result of the session start process is checked in step 305. If all the session start processes fail, the process proceeds to step 306 to disable the session state of the session management table. Similarly, a session re-establishment timer is set. In step 308, it is checked whether the session re-establishment timer has elapsed. If even one of the session start processes is successful, the session state of the session management table is established in step 309, and an event derivation is waited in step 310. The event generated in step 310 is one of a step 311 for receiving a path confirmation request message 1200, a step 312 for passing a path confirmation reception timer, a step 313 for receiving a path addition request message, and a step 314 for receiving a path deletion request message 1400. . If the generated event is the step 311 for receiving the path confirmation request message 1200, the process proceeds to step 318 to perform path confirmation processing.

図18に,サーバ108のマルチパス制御118のパス確認処理のフローチャートを例示する。ステップ1801でパス確認要求メッセージ1200を受信すると,ステップ1802でパス確認応答メッセージを要求メッセージの送信元に返信する。ステップ1803でパス確認通知メッセージの受信待ちタイマーをあらかじめ定められた値にセットする。ステップ1804でパス確認通知メッセージを受信したかチェックし,受信していればステップ1811に進む。受信していなければステップ1805に進む。ステップ1805ではパス確認通知メッセージ受信待ちタイマーが経過したかチェックを行い,経過してればステップ1809に進みパス切断とし処理を終了する。パス確認通知メッセージ受信待ちタイマーが経過していなければ,ステップ1806で,パス確認要求メッセージ1200が再送されてきていないかチェックを行い,再送を受信していなければステップ1804に戻る。   FIG. 18 illustrates a flowchart of the path confirmation processing of the multipath control 118 of the server 108. When the path confirmation request message 1200 is received in step 1801, a path confirmation response message is returned to the transmission source of the request message in step 1802. In step 1803, the reception waiting timer for the path confirmation notification message is set to a predetermined value. In step 1804, it is checked whether a path confirmation notification message has been received. If it has been received, the process proceeds to step 1811. If not received, the process proceeds to step 1805. In step 1805, it is checked whether the path confirmation notification message reception waiting timer has elapsed. If it has elapsed, the process proceeds to step 1809, where the path is disconnected and the process is terminated. If the path confirmation notification message reception wait timer has not elapsed, it is checked in step 1806 whether the path confirmation request message 1200 has been retransmitted. If no retransmission has been received, the process returns to step 1804.

受信していれば,ステップ1807でパス確認応答メッセージを再送し,ステップ1808で,ステップ1803と同様にパス確認通知メッセージの受信待ちタイマーをセットしステップ1804に戻る。パス確認通知メッセージを受信したら,ステップ1810で,パス確認通知メッセージに格納されているパス確認応答メッセージの送信時刻と現在時刻を比較しパスのRTTを計算する。ステップ1811ではパス管理テーブル1100のパス確認受信タイマーを再設定する。ステップ1812で,パス確認処理を行ったパスがもっともRTTの短いパスがチェックし,もっとも短いパスであればステップ1813でプライマリパスに設定をし,パス確認処理は成功とし処理を終了する。   If it has been received, the path confirmation response message is resent in step 1807. In step 1808, the reception waiting timer for the path confirmation notification message is set in the same manner as in step 1803, and the process returns to step 1804. When the path confirmation notification message is received, in step 1810, the RTT of the path is calculated by comparing the transmission time of the path confirmation response message stored in the path confirmation notification message with the current time. In step 1811, the path confirmation reception timer of the path management table 1100 is reset. In step 1812, the path having undergone the path confirmation process is checked for the path with the shortest RTT. If the path is the shortest, the primary path is set in step 1813, the path confirmation process is successful, and the process ends.

図3の説明に戻り,ステップ319でパスが切断されたかのチェックを行い,パスが切断されていなければステップ309に戻る。パスが切断されていればステップ316に進む。ステップ310で発生したイベントがパス確認受信タイマーの経過ステップ312であれば,ステップ316に進みパス削除処理を行う。   Returning to the description of FIG. 3, it is checked in step 319 whether the path is disconnected. If the path is not disconnected, the process returns to step 309. If the path is disconnected, the process proceeds to step 316. If the event that occurred in step 310 is step 312 of the path confirmation reception timer, the process proceeds to step 316 to perform path deletion processing.

図19に,サーバ108のパス削除処理のフローチャートを例示する。ステップ1901でパス削除要求メッセージ1400による受信であるかチェックを行い,パス削除要求メッセージ1400の受信であれば,ステップ1902で要求メッセージの送信元にパス削除応答メッセージ1400を返信し,ステップ1903に進む。パス削除要求メッセージ1400の受信でなく,パス確認処理によるパス切断,もしくはパス確認受信タイマーの経過であれば,ステップ1902を実行せずにステップ1903に進む。ステップ1903ではパス管理テーブル1100より当該パスを削除し,ステップ1904に進む。ステップ1904では削除を行ったパスと同一の宛先に別パスがあるかチェックを行い,なければ処理を終了する。別パスがあれば,ステップ1905に進み削除したパスがプライマリパスであったかチェックを行い,プライマリパスでなければ処理を終了する。プライマリパスであったならば,ステップ1906に進み,別パスの中で最もRTTの短いパスをプライマリパスとした後,処理を終了する。   FIG. 19 illustrates a flowchart of the path deletion process of the server 108. In step 1901, it is checked whether the reception is a path deletion request message 1400. If the path deletion request message 1400 is received, a path deletion response message 1400 is returned to the request message sender in step 1902, and the process proceeds to step 1903. . If the path deletion request message 1400 is not received but the path is cut by the path confirmation process or if the path confirmation reception timer has elapsed, the process proceeds to step 1903 without executing step 1902. In step 1903, the path is deleted from the path management table 1100, and the process proceeds to step 1904. In step 1904, it is checked whether there is another path at the same destination as the path that has been deleted. If not, the process ends. If there is another path, the process proceeds to step 1905, where it is checked whether the deleted path is the primary path. If it is not the primary path, the process is terminated. If it is the primary path, the process proceeds to step 1906, and the path having the shortest RTT among the other paths is set as the primary path, and the process is terminated.

図3の説明に戻り,パス削除処理の結果,通信可能なパスが残っているかステップ317でチェックを行いパスが残っていれば,ステップ309に戻る。残っていなければ,セッション管理テーブルより当該セッションを削除し,ステップ301に戻る。ステップ310で発生したイベントが,パス追加要求メッセージの受信ステップ313であった場合,ステップ315に進みセッション開始処理を行った後,ステップ309に戻る。ステップ310で発生したイベントがパス削除要求メッセージ1400の受信ステップ314であれば,ステップ316に進む。ステップ310で発生したイベントがステップ311〜ステップ314のいずれでもない場合,セッション管理テーブルに記載されたセッション残り時間が経過もしくはセッション終了要求メッセージを受信したイベントであり,ステップ320でセッション終了処理を行う。セッションの終了処理は図17に示すフローチャートと同じである。   Returning to the description of FIG. 3, as a result of the path deletion process, it is checked in step 317 whether a communicable path remains. If a path remains, the process returns to step 309. If not, delete the session from the session management table and return to step 301. If the event generated in step 310 is the step 313 for receiving a path addition request message, the process proceeds to step 315 to perform session start processing, and then returns to step 309. If the event generated in step 310 is the step 314 for receiving the path deletion request message 1400, the process proceeds to step 316. If the event generated in step 310 is not one of steps 311 to 314, the session remaining time described in the session management table has elapsed or a session end request message has been received, and the session end process is performed in step 320 . The session termination process is the same as the flowchart shown in FIG.

以上の状態遷移フローに従うことで,サーバ108のマルチパス制御118は通信先端末107のマルチパス制御117とのセッション状態管理を行うことが出来る。   By following the above state transition flow, the multipath control 118 of the server 108 can perform session state management with the multipath control 117 of the communication destination terminal 107.

端末107のクライアントアプリケーション102とサーバ108のサーバアプリケーション105間の通信のデータパケットの送信処理はマルチパス通信のセッション状態に従って行われる。データパケットは仮想インターフェース104もしくは106に渡され,送信処理が行われる。   Data packet transmission processing for communication between the client application 102 of the terminal 107 and the server application 105 of the server 108 is performed according to the session state of multipath communication. The data packet is transferred to the virtual interface 104 or 106, and transmission processing is performed.

図20に,仮想インターフェース104または106による,データパケットとメッセージの送信処理のフローチャートを例示する。ステップ2001でパケットの送信要求を受けると,ステップ2013でメッセージかデータパケットか判別する。メッセージであるかどうかはポート番号により判別可能である。メッセージであれば,送信に用いるデバイスドライバをマルチパス制御117または118が指定したデバイスドライバに決定し,ステップ2008に進む。   FIG. 20 illustrates a flowchart of data packet and message transmission processing by the virtual interface 104 or 106. When a packet transmission request is received in step 2001, it is determined in step 2013 whether it is a message or a data packet. Whether it is a message can be determined by the port number. If it is a message, the device driver used for transmission is determined as the device driver designated by the multipath control 117 or 118, and the process proceeds to step 2008.

メッセージでなければ,マルチパス制御117または118が管理しているセッション管理テーブルを参照し,データパケットの宛先とマッチする通信相手を検索する。検索が終了すると,ステップ2002に進む。ステップ2002で,検索の結果,マッチする通信相手がなければセッション状態は未確立であるとしステップ2003に進み,データパケットを破棄する。ステップ2005で,仮想インターフェース104または106はマルチパス制御117または118にデータパケットの宛先に対する通信開始要求を出し,処理を終了する。ステップ2002で,マッチした通信相手のセッション状態が確立済であれば,ステップ2006に進み,以降の振り分け処理を行う。   If it is not a message, the session management table managed by the multipath control 117 or 118 is referred to search for a communication partner that matches the destination of the data packet. When the search ends, the process proceeds to step 2002. In step 2002, if there is no matching communication partner as a result of the search, it is determined that the session state has not been established, and the process proceeds to step 2003 to discard the data packet. In step 2005, the virtual interface 104 or 106 issues a communication start request for the destination of the data packet to the multipath control 117 or 118, and ends the processing. In step 2002, if the session state of the matched communication partner is already established, the process proceeds to step 2006, and the subsequent distribution process is performed.

振り分け処理として,ステップ2006ではマルチパス制御117または118が管理するパス管理テーブル1100を参照し,宛先にマッチするパスの振り分け率に従い,送信を行うデバイスドライバを決定し,ステップ2007に進む。ステップ2007ではセッション管理テーブルの当該行のセッション残り時間を予め定められた値まで延長し,ステップ2008に進む。ステップ2008ではデータパケットを,送信を行うデバイスドライバから送信するためのカプセル化を行う。本実施形態では,端末107にグローバルIPアドレスが割り当てられていない場合に使用されるNAPT技術に対応するためUDPパケットのペイロード部分にIP層処理部でデータパケット化されたパケットをIPヘッダーごと格納することによるカプセル化を行う。NAPT技術に関してはIETFより公開されている技術文書RFC2663(http://www.ietf.org/rfc/rfc2663.txt)に記載されている。カプセル化後データパケットのIPヘッダーには,デバイスドライバから送信するためのIPヘッダーを従来どおりに格納する。IPヘッダーに格納される送信元アドレスはデバイスドライバに従う。カプセル化後パケットのUDPヘッダーに格納される宛先ポート番号は本通信用に決まった値を用いてもよい。カプセル化後パケットのペイロード部分に格納されている,IP層処理部から受信したデータパケットのIPヘッダーは,仮想インターフェースを送信元とした場合のIPヘッダーであり,宛先アドレスとして宛先のコグニティブIPアドレス,送信元アドレスとして,自装置に割り当てられているコグニティブIPアドレスを格納する。   As a distribution process, in step 2006, the path management table 1100 managed by the multipath control 117 or 118 is referred to, a device driver to be transmitted is determined according to the distribution ratio of the path matching the destination, and the process proceeds to step 2007. In step 2007, the session remaining time of the row in the session management table is extended to a predetermined value, and the process proceeds to step 2008. In step 2008, the data packet is encapsulated for transmission from the device driver that performs transmission. In this embodiment, in order to support the NAPT technology used when a global IP address is not assigned to the terminal 107, the packet packetized by the IP layer processing unit is stored in the payload portion of the UDP packet together with the IP header. Encapsulation. The NAPT technology is described in the technical document RFC2663 (http://www.ietf.org/rfc/rfc2663.txt) published by the IETF. The IP header to be sent from the device driver is stored in the IP header of the encapsulated data packet as before. The source address stored in the IP header follows the device driver. The destination port number stored in the UDP header of the encapsulated packet may be a value determined for this communication. The IP header of the data packet received from the IP layer processing unit stored in the payload part of the encapsulated packet is the IP header when the virtual interface is the source, the destination cognitive IP address as the destination address, The cognitive IP address assigned to the local device is stored as the source address.

データパケットのカプセル化が終了し,振り分け処理が終了すると,ステップ2009に進みデバイスドライバからネットワークに対し送信を行う。送信を行う際のルーティングは端末107もしくはサーバ108のオペレーティングシステムが保持するルーティングテーブルに従い送信を行い,処理を終了する。   When the encapsulation of the data packet is completed and the distribution process is completed, the process proceeds to step 2009 and the device driver transmits to the network. Routing for transmission is performed according to the routing table held by the operating system of the terminal 107 or the server 108, and the process is terminated.

ステップ2005で宛先のセッション状態が確立済でなければ,ステップ2010に進みセッション状態が不可でないかチェックを行う。セッション状態が不可であれば,宛先はマルチパス通信に対応していないノードであるので,仮想インターフェース104または106に渡されたパケットをカプセル化せずに,そのままデバイスドライバから送信を行う。送信を行うデバイスドライバは,端末107もしくはサーバ108のオペレーティングシステムが保持するルーティングテーブルに従って決定される。ステップ2010で宛先のセッション状態が不可でなければ,ステップ2012に進みパケットを破棄して処理を終了する。   If the destination session state has not been established in step 2005, the process proceeds to step 2010 to check whether the session state is not possible. If the session state is not possible, the destination is a node that does not support multipath communication. Therefore, the packet passed to the virtual interface 104 or 106 is not encapsulated and is transmitted as it is from the device driver. A device driver that performs transmission is determined according to a routing table held by the operating system of the terminal 107 or the server 108. If the destination session state is not impossible in step 2010, the process proceeds to step 2012, where the packet is discarded and the process is terminated.

図21に,端末107とサーバ108におけるデータパケットとメッセージの受信処理のフローチャートを例示する。ステップ2101においてデバイスドライバで受信されたパケットはすべて仮想インターフェース104または106に処理を引き渡すと,ステップ2106でメッセージであるかどうかの判定を行い,メッセージであればステップ2105,メッセージでなければステップ2102に進む。メッセージであるかどうかはポート番号により判別可能である。ステップ2102ではデータパケットがマルチパス通信用にカプセル化されているかチェックを行い,カプセル化パケットであればステップ2103に進みデータパケットのデカプセル化を行う。   FIG. 21 illustrates a flowchart of data packet and message reception processing in the terminal 107 and the server 108. When all the packets received by the device driver in step 2101 are handed over to the virtual interface 104 or 106, it is determined in step 2106 whether or not it is a message. move on. Whether it is a message can be determined by the port number. In step 2102, it is checked whether the data packet is encapsulated for multipath communication. If it is an encapsulated packet, the process proceeds to step 2103 to decapsulate the data packet.

デカプセル化とは,2601のIPヘッダーと2602のUDPヘッダーを取り除き,送信元の仮想インターフェース104または106から送信されたデータパケットとして取り出す処理のことである。カプセル化パケットでなければ,ステップ2104に進み,データパケットの宛先を受信した端末107もしくはサーバ108のコグニティブIPアドレスに変換を行う。変換を行うことにより,マルチパス通信に対応していないノードからのデータパケットもコグニティブIPアドレス宛に送信されているとして処理することが可能となる。処理が行われたデータパケットは,ステップ2105で,端末107もしくはサーバ108のオペレーティングシステムに処理が引き渡され従来と同じ受信処理が行われた後,アプリケーションへと渡される。   Decapsulation is a process of removing the IP header 2601 and the UDP header 2602 and taking out the data packet transmitted from the virtual interface 104 or 106 of the transmission source. If it is not an encapsulated packet, the process proceeds to step 2104, where the destination of the data packet is converted into the cognitive IP address of the terminal 107 or server 108 that received it. By performing the conversion, it is possible to process data packets from a node that does not support multipath communication as if they were transmitted to a cognitive IP address. The processed data packet is handed over to the operating system of the terminal 107 or the server 108 in step 2105 and subjected to the same receiving process as before, and then passed to the application.

以上により,複数の通信パスを使用したマルチパス通信をトランスポート層処理部の変更を行うことなくアプリケーション層に一つの通信として提供することが可能になる。また,通信装置が移動するなどして接続するネットワークが変更となってもアプリケーション層のプログラムは通信を継続することが可能となる。   As described above, multipath communication using a plurality of communication paths can be provided as one communication to the application layer without changing the transport layer processing unit. Further, even when the network to be connected is changed due to movement of the communication device, the application layer program can continue communication.

本実施形態のシステム構成の一例である。It is an example of the system configuration | structure of this embodiment. 端末107のマルチパス制御117の状態遷移フロー例である。10 is an example of a state transition flow of multipath control 117 of terminal 107. サーバ108のマルチパス制御117の状態遷移フロー例である。4 is an example of a state transition flow of multipath control 117 of the server 108. セッションの管理テーブルの一例である。It is an example of the management table of a session. 端末107のマルチパス制御117のセッション開始処理フロー例である。12 is an example of a session start processing flow of multipath control 117 of terminal 107. サーバ108のマルチパス制御117のセッション開始処理フロー例である。6 is a session start processing flow example of multipath control 117 of the server 108. セッション開始要求メッセージ700のパケットフォーマット例である。4 is a packet format example of a session start request message 700. 送信レート設定テーブル800の一例である。4 is an example of a transmission rate setting table 800. セッション開始応答メッセージ900のパケットフォーマット例である。10 is a packet format example of a session start response message 900. セッション確立メッセージ1000のパケットフォーマット例である。10 is a packet format example of a session establishment message 1000. パス管理テーブル1100の例である。4 is an example of a path management table 1100. パス確認要求メッセージ1200のパケットフォーマット例である。4 is a packet format example of a path confirmation request message 1200. 端末107のマルチパス制御117のパス確認処理フロー例である。10 is an example of a flow of a path confirmation process of a multipath control 117 of the terminal 107. パス削除要求メッセージ,パス削除応答メッセージのパケットフォーマットの例である。It is an example of a packet format of a path deletion request message and a path deletion response message. 端末107のマルチパス制御117のパス削除処理フロー例である。12 is an example of a path deletion process flow of multipath control 117 of terminal 107. セッション終了処理で使用するメッセージのパケットフォーマット例である。It is a packet format example of a message used in session termination processing. サーバ108のマルチパス制御117のパス削除処理フロー例である。12 is an example of a path deletion process flow of the multipath control 117 of the server. サーバ108のマルチパス制御117のパス確認処理フロー例である。10 is an example of a path confirmation processing flow of a multipath control 117 of the server 108. サーバ108のマルチパス制御117のパス削除処理フロー例である。12 is an example of a path deletion process flow of the multipath control 117 of the server. 仮想インターフェースのデータパケット送信フロー例であるIt is a data packet transmission flow example of a virtual interface 仮想インターフェースのデータパケット受信フロー例であるIt is a data packet reception flow example of the virtual interface

符号の説明Explanation of symbols

107:端末,108:サーバ,400:セッション管理テーブル,700:セッション管理開始要求メッセージ,900:セッション開始応答メッセージ,1000:セッション確立メッセージ,1100:パス管理テーブル,1200:パス確認要求メッセージ,1400:パス削除要求メッセージ/パス削除応答メッセージ,1600:セッション終了確認メッセージ。 107: terminal, 108: server, 400: session management table, 700: session management start request message, 900: session start response message, 1000: session establishment message, 1100: path management table, 1200: path confirmation request message, 1400: Path deletion request message / path deletion response message, 1600: Session end confirmation message.

Claims (5)

ネットワークを介して接続される端末とサーバとを含んで構成されるマルチパス通信システムであって、
前記端末は、それぞれが異なるネットワークアドレスが割り当てられている複数のネットワークインターフェース装置を備え、
前記サーバは、一つのネットワークインターフェース装置を備え、
前記端末は、プロセッサにより実行される、オペレーティングシステムと、アプリケーションプログラムと、前記複数のネットワークインターフェース装置用のデバイスドライバと、前記オペレーティングシステムと前記デバイスドライバとを接続する仮想インターフェースプログラムと、を備え、
前記オペレーティングシステムは、前記アプリケーションプログラムが扱うデータと、前記ネットワーク上での送受信に適したIPパケットとの変換を行うIP層処理プログラムを備え、
前記仮想インターフェースプログラムは、前記IP層処理プログラムと前記デバイスドライバとの間でやり取りされるIPパケットの中継処理と、前記IP層処理プログラムに対する一つのデバイスドライバとしての、一つのIP層処理インターフェースと、前記デバイスドライバに対するデバイスドライバインターフェースと、セッション毎に、前記一つのIP層処理インターフェースから受信した複数のIPパケットについて、前記複数のネットワークインターフェース装置のいずれかから送信されるように振り分け処理を行い、前記デバイスドライバへ送信する処理と、前記複数のネットワークインターフェース装置が受信したIPパケットを、前記一つのIP層処理インターフェースから前記IP層処理プログラムへ送信する処理と、を実現し、
前記端末と前記サーバは、各々が備えるプロセッサにより実行されるマルチパス制御プログラムを備え、
前記端末と前記サーバの前記マルチパス制御プログラムは、互いに、通信相手となる装置がマルチパス通信に対応しているか、および/または、前記複数のネットワークアドレスを利用するマルチパス通信が可能かを調べるためのメッセージ交換を行い、
通信相手装置毎に、セッションが確立されていないセッション未確立の状態、通信相手装置に対しセッションの確立を開始しているがまだ完了していないセッション確立中の状態、通信相手装置との間で、セッション確立済の状態、通信相手装置との間に通信パスが存在しない、または、通信相手装置がマルチパス通信に対応していない状態である不可の状態、を管理し、セッション未確立の状態または、セッション確立済みの状態で所定の時間が経過した場合に、前記サーバの前記マルチパス制御プログラムを通信相手とするメッセージ交換を行い、パス追加処理またはパス削除処理を行い、
前記デバイスドライバを用いて、前記サーバの前記マルチパス制御プログラムへのセッション開始要求メッセージの送信と、前記サーバの前記マルチパス制御プログラムからのセッション開始応答メッセージの受信と、を行い、ラウンドトリップタイムの計算と、を行い、最もラウンドトリップタイムの小さいパスを利用するセッションをプライマリパスとする
ことを特徴とするマルチパス通信システム。
A multipath communication system including a terminal and a server connected via a network,
The terminal includes a plurality of network interface devices each assigned a different network address,
The server includes one network interface device,
The terminal includes an operating system, an application program, a device driver for the plurality of network interface devices, and a virtual interface program that connects the operating system and the device driver, and is executed by a processor.
The operating system includes an IP layer processing program that converts data handled by the application program and an IP packet suitable for transmission / reception on the network,
The virtual interface program is a relay process of an IP packet exchanged between the IP layer processing program and the device driver, one IP layer processing interface as one device driver for the IP layer processing program, The device driver interface for the device driver, and for each session, for a plurality of IP packets received from the one IP layer processing interface, performing a distribution process to be transmitted from any of the plurality of network interface devices, A process for transmitting to a device driver and a process for transmitting an IP packet received by the plurality of network interface devices from the one IP layer processing interface to the IP layer processing program are realized.
The terminal and the server each include a multipath control program executed by a processor included in each of the terminals and the server,
The multipath control program of the terminal and the server mutually checks whether a communication partner device supports multipath communication and / or whether multipath communication using the plurality of network addresses is possible. Exchange messages for
For each communication partner device, the session has not been established, the session has not been established, the session has been established for the communication partner device but has not yet been established, and the communication partner device Manages the session established state, communication path does not exist with the communication partner device, or the communication partner device does not support multipath communication, and the session is not established Or, when a predetermined time has passed in a session established state, perform message exchange with the multipath control program of the server as a communication partner, perform path addition processing or path deletion processing,
The device driver is used to transmit a session start request message to the multipath control program of the server and receive a session start response message from the multipath control program of the server. The session that uses the path with the shortest round trip time is used as the primary path.
A multipath communication system.
請求項1に記載のマルチパス通信システムであって、
前記マルチパス制御プログラムは、さらに、前記複数のネットワークインターフェース装置への振り分け率を算出し、
前記仮想インターフェースプログラムは、
セッション毎に、前記一つのIP層処理インターフェースから受信した複数のIPパケットを、算出された前記振り分け率に従い、前記複数のネットワークインターフェース装置への前記振り分け処理を行うことを特徴とするマルチパス通信システム。
The multipath communication system according to claim 1,
The multipath control program further calculates a distribution ratio to the plurality of network interface devices,
The virtual interface program is
A multipath communication system characterized in that, for each session, a plurality of IP packets received from the one IP layer processing interface are subjected to the distribution processing to the plurality of network interface devices according to the calculated distribution ratio. .
請求項に記載のマルチパス通信システムであって、
前記仮想インターフェースプログラムは、
UDPパケットのペイロード部分に前記IP層処理インターフェースから受信したIPパケットを格納することにより、カプセル化を行うことを特徴とするマルチパス通信システム。
The multipath communication system according to claim 2 , wherein
The virtual interface program is
A multipath communication system, wherein encapsulation is performed by storing an IP packet received from the IP layer processing interface in a payload portion of a UDP packet.
請求項に記載のマルチパス通信システムであって、
前記端末の前記マルチパス制御プログラムは、
通信相手となる装置が備える前記仮想インターフェースプログラムに割り当てられている前記ネットワークアドレスと、
パスごとに当該端末内で一意に定めるパスIDと、
自装置と通信相手となる装置とが備えるネットワークインターフェース装置に割り当てられているネットワークアドレスと、
前記複数のパスへの前記振り分け率と、を含むパス管理テーブルを管理することを特徴とするマルチパス通信システム。
The multipath communication system according to claim 2 , wherein
The multipath control program of the terminal is
The network address assigned to the virtual interface program provided in a device to be a communication partner;
For each path, a path ID uniquely determined in the terminal,
A network address assigned to a network interface device included in the device and the device to be communicated with;
A multipath communication system, characterized by managing a path management table including the distribution ratio to the plurality of paths.
請求項に記載のマルチパス通信システムであって、
前記端末と前記サーバの前記仮想インターフェースは、前記デバイスドライバが受信したデータパケットが、前記カプセル化が行われたものか否かを調べ、
前記カプセル化が行われていれば、前記IPパケットを取り出し、
前記カプセル化が行われていなければ、前記データパケットの宛先を、受信した当該端末もしくは当該サーバを前記ネットワークで一意に特定する前記ネットワークアドレスに変換することを特徴とするマルチパス通信システム。
The multipath communication system according to claim 4 , wherein
The virtual interface of the terminal and the server checks whether the data packet received by the device driver has been encapsulated,
If the encapsulation has been performed, take out the IP packet,
If the encapsulation is not performed, the destination of the data packet is converted to the network address that uniquely identifies the received terminal or the server in the network.
JP2008145266A 2008-06-03 2008-06-03 Multipath communication system Active JP5097620B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008145266A JP5097620B2 (en) 2008-06-03 2008-06-03 Multipath communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008145266A JP5097620B2 (en) 2008-06-03 2008-06-03 Multipath communication system

Publications (2)

Publication Number Publication Date
JP2009296084A JP2009296084A (en) 2009-12-17
JP5097620B2 true JP5097620B2 (en) 2012-12-12

Family

ID=41543912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008145266A Active JP5097620B2 (en) 2008-06-03 2008-06-03 Multipath communication system

Country Status (1)

Country Link
JP (1) JP5097620B2 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8964757B2 (en) 2009-12-18 2015-02-24 Qualcomm Incorporated HTTP optimization, multi-homing, mobility and priority
US20110314129A1 (en) * 2009-12-18 2011-12-22 Ramin Rezaiifar Binding/aggregating multiple interfaces at application layer
US9455897B2 (en) * 2010-04-06 2016-09-27 Qualcomm Incorporated Cooperative bandwidth aggregation using multipath transport
WO2011153618A2 (en) 2010-06-09 2011-12-15 Pravala Inc. Transmitting data over a plurality of different networks
WO2012165809A2 (en) 2011-06-03 2012-12-06 에스케이 텔레콤주식회사 Device and method for simultaneous data transmission service in heterogeneous network
KR101260456B1 (en) 2011-06-29 2013-05-06 에스케이텔레콤 주식회사 Apparatus and method for simultaneously transmitting data in heterogeneous network
US9451415B2 (en) 2011-06-17 2016-09-20 Qualcomm Incorporated Cooperative data transport
KR101306305B1 (en) 2011-06-28 2013-09-09 에스케이텔레콤 주식회사 Apparatus and method for simultaneously transmitting data in heterogeneous network
US9264353B2 (en) * 2011-09-22 2016-02-16 Qualcomm Incorporated Dynamic subflow control for a multipath transport connection in a wireless communication network
CN102665109A (en) * 2012-04-19 2012-09-12 中兴通讯股份有限公司 Transmitting and receiving method of multimedia video data and corresponding devices
JPWO2015087508A1 (en) * 2013-12-12 2017-03-16 パナソニックIpマネジメント株式会社 COMMUNICATION METHOD, COMMUNICATION SYSTEM, AND COMMUNICATION DEVICE
KR102248148B1 (en) * 2014-07-08 2021-05-04 애플 인크. Devices for packet system bearer splitting
WO2016163032A1 (en) * 2015-04-10 2016-10-13 富士通株式会社 Wireless communication system, base station, mobile station, and processing method
EP3297322B1 (en) * 2016-09-15 2022-06-22 Alcatel Lucent Multiple path transmission of data
JP6801409B2 (en) 2016-12-02 2020-12-16 富士通株式会社 Route search system, route search method and route search program
JP7119461B2 (en) * 2018-03-19 2022-08-17 株式会社リコー Information processing device and information processing method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049528A (en) * 1997-06-30 2000-04-11 Sun Microsystems, Inc. Trunking ethernet-compatible networks
EP1690372B1 (en) * 2003-12-01 2009-10-21 Telefonaktiebolaget LM Ericsson (publ) Traffic control method
US20050243857A1 (en) * 2004-04-30 2005-11-03 Padcom, Inc. Simultaneously routing data over multiple wireless networks
JP3828559B2 (en) * 2004-09-27 2006-10-04 株式会社東芝 Communication method
JP2007088857A (en) * 2005-09-22 2007-04-05 Denso Corp Communication controller

Also Published As

Publication number Publication date
JP2009296084A (en) 2009-12-17

Similar Documents

Publication Publication Date Title
JP5097620B2 (en) Multipath communication system
JP4794312B2 (en) Automatic detection of pseudowire peer addresses in Ethernet-based networks
JP3665622B2 (en) Source address selection system, router device, communication node, and source address selection method
KR20140070426A (en) Method and multi-homed equipment for establishing a multipath connection
WO2018128597A1 (en) Cross-device segmentation offload
JP2008098813A (en) Information communication device, information communication method, and program
JP2004080543A (en) Communication apparatus, communication system and communication method
JP5941887B2 (en) Edge router switching method and system, edge router and redundancy management device
WO2008038390A1 (en) Mobile ip communication system
JP4806364B2 (en) Router switching method and router device
JP4830879B2 (en) Wireless data communication system
JP2005217626A (en) Packet data exchange node through wireless access network, terminal and its program
CN110381007B (en) TCP acceleration method and device
JP4591338B2 (en) Communications system
JP2009246614A (en) Communication system, terminal, relay device, communication mode determination method, and program
JP4776330B2 (en) BRIDGE DEVICE AND BRIDGE DEVICE CONTROL METHOD
WO2011044835A1 (en) Method and access router for route optimization
KR101410510B1 (en) Method and apparatus for data transferring using Stream Control Transfer Protocol
JP4926113B2 (en) Mobile router ad hoc network communication system
JP3808882B2 (en) Gateway device and wireless terminal device
JP4570551B2 (en) Distributed control communication system and method
JP2020102692A (en) Medium adapter device, distribution communication management method, and distribution communication management program
JP4220530B2 (en) Gateway device and wireless terminal device
JP5535757B2 (en) Client device and program
JP2006094105A (en) Method and apparatus of tunneling, and program thereof and recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

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: 20120828

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120924

R151 Written notification of patent or utility model registration

Ref document number: 5097620

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150928

Year of fee payment: 3