JP2013121028A - Data packet transmission method and system - Google Patents
Data packet transmission method and system Download PDFInfo
- Publication number
- JP2013121028A JP2013121028A JP2011267526A JP2011267526A JP2013121028A JP 2013121028 A JP2013121028 A JP 2013121028A JP 2011267526 A JP2011267526 A JP 2011267526A JP 2011267526 A JP2011267526 A JP 2011267526A JP 2013121028 A JP2013121028 A JP 2013121028A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transmission
- tcp connection
- unit
- divided data
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は、データパケット伝送方法及びシステムに係り、特に、データ送信側とデータ受信側の間の伝送路が物理帯域すべてを使用もしくは帯域保障された上限帯域において輻輳が無いシステムにおいて、TCP(Transmission Control Protocol)の並列コネクションを用いて高速且つ安定的にデータ伝送するデータパケット伝送方法及びシステムに関する。 The present invention relates to a data packet transmission method and system, and more particularly to a TCP (Transmission) in a system in which a transmission path between a data transmission side and a data reception side uses the entire physical band or is not congested in an upper limit band in which bandwidth is guaranteed. The present invention relates to a data packet transmission method and system for performing high-speed and stable data transmission using a parallel connection of (Control Protocol).
非特許文献1に示されるように、TCPによるデータ伝送では、送信側が独自に持つ輻輳ウィンドウのサイズに基づいてデータ送信のレートを決定し、この輻輳ウィンドウサイズはデータ伝送開始時点では非常に小さい値で、受信側からの確認応答パケットが返ってくる毎に僅かずつ増加させる(スロースタート)という方法をとっている。従って、データ送信の開始時点からのパケット数が一定数を超えないと理論値に近いスループットは得られない。また、一定期間データ伝送が行われなかった場合も輻輳ウィンドウサイズを初期値にするよう推奨されている。
As shown in Non-Patent
[HTTP1.1 Keep Alive 機能]に示されるように、アプリケーションからの要求ごとにTCPのコネクションを確立/終了するのではなく、最初にセッションを確立した後はすぐに終了せずに再利用することで、TCPのコネクションの確立/終了にかかる時間を省く工夫がなされてきた。[HTTP1.1 Keep Alive 機能]は結果的に比較的短い間隔でデータ転送要求があった場合には輻輳ウィンドウサイズが維持されるが、TCPのコネクションを確立直後やデータ転送要求の間隔が長い場合にはTCPのスロースタートの機能が働く。 As shown in [HTTP1.1 Keep Alive Function], instead of establishing / terminating a TCP connection for each request from an application, the session should be reused without being immediately terminated after the first session is established. Thus, a device has been devised to save time for establishing / ending a TCP connection. [HTTP1.1 Keep Alive function] results in the congestion window size being maintained when there is a data transfer request at a relatively short interval, but immediately after establishing a TCP connection or when the interval between data transfer requests is long. TCP has a slow start function.
データ送信側とデータ受信側を直結もしくは帯域が厳密に管理された伝送路などで輻輳によるパケット消失が起こらない場合において本来輻輳制御は不要であるが、伝送開始時もしくは一定期間データ伝送が行われなかった場合にはスロースタートの機能が働く。また、伝送エラーによりパケットが消失しても輻輳制御が働き輻輳ウィンドウサイズの減少により帯域が半分に制限されてしまう。 When packet loss due to congestion does not occur in a transmission path where the data transmission side and data reception side are directly connected or the bandwidth is strictly controlled, congestion control is not necessary, but data transmission is performed at the start of transmission or for a certain period of time. If not, the slow start function works. Even if a packet is lost due to a transmission error, congestion control works and the bandwidth is limited to half due to a decrease in the congestion window size.
本発明は、輻輳によるパケット消失が起こらない伝送路において、輻輳制御による伝送レートの低下を抑制することを目的とする。 An object of the present invention is to suppress a decrease in transmission rate due to congestion control in a transmission path in which packet loss due to congestion does not occur.
上記目的を達成するために、本願発明のデータパケット伝送システムは、1以上の物理リンク上でTCPコネクションを用いて対向装置間でデータ伝送を行うデータパケット伝送システムであって、送信側の前記対向装置は、TCPコネクションを確立して待機中状態である旨を通知する複数のTCP接続部と、前記TCP接続部からの通知を受信することによって前記TCP接続部の使用状態を管理する管理部と、前記管理部から待機中状態にあるTCPコネクションのソケットを取得し、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して前記待機中状態の複数のソケットに割り振る送信部と、を備え、受信側の前記対向装置は、TCPコネクションを確立して前記分割データを受信する複数のTCP接続部と、前記分割データの先頭位置を示すポインタに対応した位置から受信バッファに書き込み、全ての前記分割データの前記受信バッファへの書き込みの完了後に前記オリジナルデータを出力する受信部を備える。 In order to achieve the above object, a data packet transmission system according to the present invention is a data packet transmission system that performs data transmission between opposing devices using a TCP connection on one or more physical links, wherein A plurality of TCP connection units that establish a TCP connection and notify that the TCP connection unit is in a waiting state; and a management unit that manages a usage state of the TCP connection unit by receiving a notification from the TCP connection unit The socket of the TCP connection in the standby state is acquired from the management unit, the original data to be transmitted is divided, the divided data and the start position of the divided data are packetized, and the plurality of sockets in the standby state A transmitting unit for allocating the divided data to the receiving side, the opposite device on the receiving side establishes a TCP connection and A plurality of TCP connection units to be received and a reception that writes to the reception buffer from a position corresponding to a pointer indicating the start position of the divided data, and outputs the original data after completion of writing all the divided data to the reception buffer A part.
本願発明のデータパケット伝送システムは、送信側の対向装置が複数のTCP接続部、管理部及び送信部を備え、受信側の対向装置がTCP接続部及び受信部を備えるため、伝送対象となる分割されたオリジナルデータを含むパケットを複数のTCPコネクションに割り振り、TCP層で並列伝送を行い、伝送後にオリジナルデータに戻すことができる。したがって、本願発明のデータパケット伝送システムは、輻輳によるパケット消失が起こらない伝送路において、輻輳制御による伝送レートの低下を抑制することができる。 In the data packet transmission system according to the present invention, the transmission-side counter device includes a plurality of TCP connection units, a management unit, and a transmission unit, and the reception-side counter device includes a TCP connection unit and a reception unit. Packets including the original data can be allocated to a plurality of TCP connections, and can be transmitted in parallel in the TCP layer, and returned to the original data after transmission. Therefore, the data packet transmission system of the present invention can suppress a decrease in transmission rate due to congestion control in a transmission path where packet loss due to congestion does not occur.
本願発明のデータパケット伝送システムでは、前記送信側のTCP接続部は、輻輳ウィンドウの所定値以下への低下又はリンクの異常を検出し、前記管理部は、輻輳ウィンドウの低下又はリンクの異常を検出した前記送信側のTCP接続部にソケット異常が発生した旨を前記送信部に通知し、前記送信部は、ソケット異常の発生したソケットに割り振っていた前記分割データを、前記待機中状態のソケットに割り振る。
本発明により、複数のTCPコネクションのいずれかで輻輳ウィンドウの所定値以下への低下又はリンクの異常が発生すると、予め設定しているが実際のデータ伝送に用いていない待機中状態のTCPコネクションに切り替えることができる。これにより、輻輳ウィンドウの所定値以下への低下又はリンクの異常への対応を迅速に行うことができるとともに、未転送データの発生を防ぐことができる。
In the data packet transmission system according to the present invention, the TCP connection unit on the transmission side detects a decrease in a congestion window to a predetermined value or a link abnormality, and the management unit detects a decrease in the congestion window or a link abnormality. The transmission unit notifies the transmission unit that a socket abnormality has occurred in the TCP connection unit on the transmission side, and the transmission unit assigns the divided data allocated to the socket in which the socket abnormality has occurred to the standby socket. Allocate.
According to the present invention, when a congestion window falls below a predetermined value or a link abnormality occurs in any of a plurality of TCP connections, a TCP connection in a standby state that is set in advance but is not used for actual data transmission is set. Can be switched. As a result, it is possible to quickly cope with a decrease in the congestion window to a predetermined value or lower or a link abnormality, and it is possible to prevent occurrence of untransferred data.
本願発明のデータパケット伝送システムでは、前記送信側のTCP接続部は、輻輳ウィンドウが設定値を超えるまでダミーデータパケットを送出することによって前記待機中状態とする。
本発明により、分割されたオリジナルデータを割り振る複数のTCPコネクションの送信側の輻輳ウィンドウサイズを大きくしておくことができる。
In the data packet transmission system according to the present invention, the TCP connection unit on the transmission side enters the waiting state by sending a dummy data packet until the congestion window exceeds a set value.
According to the present invention, it is possible to increase the congestion window size on the transmission side of a plurality of TCP connections to which divided original data is allocated.
上記目的を達成するために、本願発明のデータパケット伝送方法は、1以上の物理リンク上でTCPコネクションを用いて対向装置間でデータ伝送を行うデータパケット伝送方法であって、送信側のTCP接続部が、輻輳ウィンドウが所定値超となった待機中状態である旨を管理部に通知することによって、管理部が送信側のTCP接続部の使用状態を管理する使用状態管理手順と、送信部が、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して前記待機中状態の複数のソケットに割り振り、送信側のTCP接続部が送信部からの指示に従って前記分割データを送信する分割データ送信手順と、受信側のTCP接続部がTCPコネクションを確立して前記分割データを受信し、受信部が、前記分割データの先頭位置を示すポインタに対応した位置から前記分割データを受信バッファに書き込む分割データ受信手順と、受信部が、全ての前記分割データの前記受信バッファへの書き込みの完了後に前記オリジナルデータを読み出すオリジナルデータ読み出し手順と、を順に有する。 In order to achieve the above object, a data packet transmission method of the present invention is a data packet transmission method for performing data transmission between opposing devices using a TCP connection on one or more physical links, and a TCP connection on the transmission side The management unit manages the usage state of the TCP connection unit on the transmission side by notifying the management unit that the congestion window has exceeded the predetermined value, and the transmission unit The original data to be transmitted is divided, the divided data and the head position of the divided data are packetized and allocated to the plurality of standby sockets, and the TCP connection unit on the transmission side follows the instruction from the transmission unit. A divided data transmission procedure for transmitting the divided data, and a TCP connection unit on the receiving side establishes a TCP connection to receive the divided data, and a receiving unit A divided data reception procedure for writing the divided data into a reception buffer from a position corresponding to a pointer indicating a head position of the divided data, and a receiving unit after the writing of all the divided data into the reception buffer is completed An original data reading procedure for reading data in order.
本願発明のデータパケット伝送方法は、使用状態管理手順と、分割データ送信手順と、分割データ受信手順と、オリジナルデータ読み出し手順と、を順に有するため、伝送対象となる分割されたオリジナルデータを含むパケットを複数のTCPコネクションに割り振り、TCP層で並列伝送を行い、伝送後にオリジナルデータに戻すことができる。したがって、本願発明のデータパケット伝送方法は、輻輳によるパケット消失が起こらない伝送路において、輻輳制御による伝送レートの低下を抑制することができる。 Since the data packet transmission method of the present invention has a use state management procedure, a divided data transmission procedure, a divided data reception procedure, and an original data reading procedure in order, a packet including divided original data to be transmitted Can be allocated to a plurality of TCP connections, parallel transmission can be performed in the TCP layer, and the original data can be restored after transmission. Therefore, the data packet transmission method of the present invention can suppress a decrease in transmission rate due to congestion control in a transmission path where packet loss due to congestion does not occur.
本願発明のデータパケット伝送方法では、送信側のTCP接続部が、輻輳ウィンドウの所定値以下への低下又はリンクの異常を検出するソケット異常検出手順と、前記送信部が、ソケット異常の発生したソケットに割り振っていた前記分割データを、前記待機中状態のソケットに割り振るソケット代替手順と、を前記分割データ送信手順と前記分割データ受信手順の間にさらに有してもよい。
本発明により、複数のTCPコネクションのいずれかで輻輳ウィンドウの低下又はリンクの異常が発生すると、予め設定しているが実際のデータ伝送に用いていない他のTCPコネクションに切り替えることができる。これにより、パケット損失の対応を迅速に行うことができるとともに、未転送データの発生を防ぐことができる。
In the data packet transmission method of the present invention, the TCP connection unit on the transmission side detects a decrease in the congestion window to a predetermined value or lower or a link abnormality detection procedure, and the transmission unit is a socket in which a socket abnormality has occurred. A socket replacement procedure for allocating the divided data allocated to the socket in the waiting state between the divided data transmission procedure and the divided data reception procedure.
According to the present invention, when a congestion window decreases or a link abnormality occurs in any of a plurality of TCP connections, it is possible to switch to another TCP connection that is set in advance but is not used for actual data transmission. As a result, packet loss can be dealt with quickly, and occurrence of untransferred data can be prevented.
本願発明のデータパケット伝送方法では、前記使用状態管理手順において、輻輳ウィンドウが設定値を超えるまで送信側のTCP接続部がダミーデータパケットを送出することによって前記待機中状態とする。
本発明により、分割されたオリジナルデータを割り振る複数のTCPコネクションの送信側の輻輳ウィンドウサイズを大きくしておくことができる。
In the data packet transmission method of the present invention, in the use state management procedure, the TCP connection unit on the transmission side transmits the dummy data packet until the congestion window exceeds a set value, thereby setting the standby state.
According to the present invention, it is possible to increase the congestion window size on the transmission side of a plurality of TCP connections to which divided original data is allocated.
なお、上記各発明は、可能な限り組み合わせることができる。 The above inventions can be combined as much as possible.
本発明によれば、輻輳の起きない伝送路において、伝送エラー等によるパケットの消失による輻輳ウィンドウの低下が起きる状況においてもTCP輻輳制御によるスループット低下の影響を低減することが可能になる。 According to the present invention, it is possible to reduce the influence of a decrease in throughput due to TCP congestion control even in a situation where a congestion window decreases due to packet loss due to a transmission error or the like in a transmission path in which congestion does not occur.
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。 Embodiments of the present invention will be described with reference to the accompanying drawings. The embodiments described below are examples of the present invention, and the present invention is not limited to the following embodiments. In the present specification and drawings, the same reference numerals denote the same components.
(第一の実施形態)
図1に、本発明の第一の実施形態に係るデータパケット伝送システムの一例を示す。本実施形態に係るデータパケット伝送システムは、任意のアプリケーション10が対向装置20を用いてデータを送信し、任意のアプリケーション40が対向装置30を用いてデータを受信する。送信側の対向装置20は、複数のTCP接続部21と、管理部22と、送信部23と、を備える。受信側の対向装置30は、複数のTCP接続部31と、受信部32と、を備える。本実施形態に係るデータ伝送方法は、使用状態管理手順と、分割データ送信手順と、分割データ受信手順と、オリジナルデータ読み出し手順と、を順に有する。
(First embodiment)
FIG. 1 shows an example of a data packet transmission system according to the first embodiment of the present invention. In the data packet transmission system according to the present embodiment, an
使用状態管理手順では、TCP接続部21は、TCPコネクションを確立してパケットを送信し、輻輳ウィンドウが所定値超となった場合は待機中状態である旨を通知する。そして、管理部22は、TCP接続部21からの通知を受信することによってTCP接続部21の使用状態を管理する。ここで、TCP接続部21は、輻輳ウィンドウが設定値を超えるまでダミーデータパケットを送出することで待機中状態とする。
In the usage state management procedure, the TCP
分割データ送信手順では、送信部23が、送信側のアプリケーションから送信要求を受信し、管理部22から待機中状態にあるTCPコネクションのソケットを取得し、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して待機中状態の複数のソケットに割り振る。本実施形態では、送信部23が送信側の対向装置20に備わる例について説明するが、アプリケーションが送信部23の機能を有していてもよい。
In the divided data transmission procedure, the
分割データ受信手順では、受信部32が、TCP接続部31を介して分割データを受信し、分割データの先頭位置を示すポインタに対応した位置から受信バッファ321に書き込む。全ての分割データの受信バッファ321への書き込みの完了後に、オリジナルデータ読み出し手順を実行する。
In the divided data reception procedure, the receiving
オリジナルデータ読み出し手順では、受信部32が、オリジナルデータを受信側のアプリケーション40に出力する。
In the original data reading procedure, the receiving
以上の手順を順に実行することで、輻輳ウィンドウサイズが大きい状態でソケットを送信部23に渡すことができるため、TCPのスロースタートの影響を無くす事が出来る。これにより、輻輳の起きない伝送路において、伝送エラー等によるパケットの消失による輻輳ウィンドウの低下が起きる状況においてもTCP輻輳制御によるスループット低下の影響を低減することが可能になる。
By executing the above procedure in order, the socket can be passed to the
ここで、分割データ送信手順と分割データ受信手順の間に、ソケット異常検出手順及びソケット代替手順をさらに有していてもよい。 Here, a socket abnormality detection procedure and a socket replacement procedure may be further provided between the divided data transmission procedure and the divided data reception procedure.
ソケット異常検出手順では、TCP接続部21が、輻輳ウィンドウの所定値以下への低下又はリンクの異常を検出する。管理部22が、輻輳ウィンドウの低下又はリンクの異常を検出したTCP接続部にソケット異常が発生した旨を送信部23に通知する。
ソケット代替手順では、送信部23が、ソケット異常の発生したソケットに割り振っていた分割データを、待機中状態にある別のソケットに割り振る。
In the socket abnormality detection procedure, the
In the socket replacement procedure, the
ここで、パケット損失の際にTCPコネクションを切り替える場合、切り替え前のコネクションにおいて転送が完了していない分割データを伝送する必要がある。この場合、以下の動作のいずれかを行う必要がある。
(A)転送が完了していない分割データ全体を転送。
(B)受信側が分割データの受信済みの領域、もしくは未受信の領域を送信側に通知して完了していない分割データを伝送する。
(A)もしくは(B)の動作を行うことで、未転送データの発生を防ぐことができる。
Here, when the TCP connection is switched in the event of packet loss, it is necessary to transmit the divided data that has not been transferred in the connection before the switching. In this case, one of the following operations needs to be performed.
(A) The entire divided data that has not been transferred is transferred.
(B) The receiving side notifies the transmitting side of the area where the divided data has been received or has not been received, and transmits the divided data that has not been completed.
By performing the operation (A) or (B), generation of untransferred data can be prevented.
以上のソケット異常検出手順及びソケット代替手順を有することで、輻輳ウィンドウの低下又はリンクの異常が起こった場合に、別の待機中状態のソケットと交換することができる。これにより、パケット消失による輻輳ウィンドウサイズ半減の影響を無くす事が可能になる。 By having the socket abnormality detection procedure and the socket replacement procedure described above, when a congestion window is lowered or a link abnormality occurs, the socket can be replaced with another waiting socket. This makes it possible to eliminate the influence of halving the congestion window size due to packet loss.
(第二の実施形態)
図2は本発明の第二の実施形態の概略の構成を示している。
装置間の接続において各装置では接続開始要求に基づき複数のコネクションスレッド100及び管理スレッド110が生成される。各コネクションスレッドはコネクション開始101として対向装置とTCPコネクションを確立する。
(Second embodiment)
FIG. 2 shows a schematic configuration of the second embodiment of the present invention.
In connection between devices, each device generates a plurality of
ここで、コネクションスレッド100はTCP接続部21として機能し、管理スレッド110は管理部22として機能する。コネクションスレッド100は、コネクション開始部101と、ウォームアップ状態部102と、待機中状態部103と、使用中状態部104と、異常検出状態部105と、コネクション終了状態部106と、を備える。管理スレッド110は、待機中コネクションリスト111と、使用中コネクションリスト112と、を備える。
Here, the
コネクション開始部101がTCPコネクションを確立すると、ウォームアップ状態部102の動作によってウォームアップ状態に移行し、対向装置との間で高頻度にダミーデータを交換して、輻輳ウィンドウを拡大させる。設定値以上に輻輳ウィンドウを拡大したら待機中状態部103に移行し、管理スレッド110に通知を行う。管理スレッド110は待機中コネクションリスト111にそのコネクションスレッドを登録する。待機中状態103のコネクションスレッド100は、輻輳ウィンドウが縮小しないように待機中状態部103が低頻度にダミーデータを交換する。これにより、TCPコネクションの送信側の輻輳ウィンドウサイズを大きくしておくことができる。
When the
管理スレッド110は、送信側のアプリケーションからソケットの要求を受けると待機中コネクションリスト111から必要数のコネクション情報(ソケット等)をアプリケーションに渡し、該当コネクションスレッド100への通知および待機コネクションリスト111からの削除・使用中コネクションリスト112への登録を行う。送信側のアプリケーションは、送信部23としての機能を有する。管理スレッド110から通知を受けたコネクションスレッド100は、使用中状態部104に移行する。
When the
管理スレッド110は、アプリケーションからソケット解放を受けると、該当コネクションスレッド100への通知および使用中コネクションリスト112からの削除・待機コネクションリスト111への登録を行う。通知を受けたコネクションスレッド100は使用中状態部103に移行する。各コネクションスレッド100では通信の異常を検出した場合、異常検出状態部105に移行する。
When the
使用中状態部103において異常検出した場合には管理スレッド110に通知し、管理スレッド110はアプリケーションにソケット異常を通知する。異常検出状態部105はコネクション回復可能な場合にはウォームアップ状態部102に移行し、回復不可能な場合にはコネクション終了状態部106に移行する。対向装置間の接続終了時には使用しているすべてのコネクションスレッド100がコネクション終了状態部106に移行後、すべてのスレッドを終了する。
When an abnormality is detected in the in-
(第三の実施形態)
図3は本発明の第三の実施形態の概略の動作を示している。
この例では、装置A(201)、装置B(221)間が物理リンクLA1(202)〜LB1(222)、LA2(203)〜LB2(223)で接続され、LA1〜LB1にはTCPコネクション(204,224)CA1〜CB1,CA2〜CB2,CA3〜CB3、LA2〜LB2にはCA4〜CB4,CA5〜CB5が張られているものとする。また、縦軸は時間の進行を示している。
(Third embodiment)
FIG. 3 shows the schematic operation of the third embodiment of the present invention.
In this example, apparatus A (201) and apparatus B (221) are connected by physical links LA1 (202) to LB1 (222) and LA2 (203) to LB2 (223), and TCP connections ( 204, 224) CA1 to CB1, CA2 to CB2, CA3 to CB3, and LA2 to LB2 are stretched with CA4 to CB4 and CA5 to CB5. The vertical axis shows the progress of time.
この例での初期状態においてはCA1〜CB1,CA2〜CB2が使用中状態(205、225)、CA3〜CB3,CA4〜CB4,CA5〜CB5はウォームアップ状態(206、226)から待機中状態(207、227)に移行する。TCPコネクションCA2〜CB2で輻輳ウィンドウの低下(208)が検出されると、待機中状態のコネクションのうちCA2〜CB2の物理リンクLA1〜LB1ではない物理リンクLA2〜LB2から優先的に選択される(ここではCA4〜CB4が選択)。これは物理リンク障害の前兆として伝送エラー率上昇によるパケット消失が起こりやすいことを考慮している。リンク障害(209)の場合にはすべての使用中状態のコネクションを別のリンクの待機中状態のコネクションに移行し、使用中状態(210,230)とする。リンクの障害が回復した段階で直ちにウォームアップ状態(211,231)に移行する。 In the initial state in this example, CA1 to CB1, CA2 to CB2 are in use (205, 225), and CA3 to CB3, CA4 to CB4, CA5 to CB5 are in a standby state from the warm-up state (206, 226) ( 207, 227). When a decrease in the congestion window (208) is detected in the TCP connections CA2 to CB2, the connections are preferentially selected from the physical links LA2 to LB2 that are not the physical links LA1 to LB1 of the CA2 to CB2 among the waiting connections ( Here, CA4 to CB4 are selected). This takes into account that packet loss is likely to occur due to an increase in the transmission error rate as a precursor to a physical link failure. In the case of a link failure (209), all the connections in use are transferred to connections in the standby state of another link, and are set in use (210, 230). Immediately after the failure of the link is recovered, the state shifts to the warm-up state (211, 231).
(第四の実施形態)
図4は本発明の第四の実施形態の概略の動作を示している。
この例ではアプリケーションの送信バッファ(310)がTCPコネクション(320)を介して、対向装置のアプリケーションの受信バッファ(330)にデータを送信する様子を示している。
(Fourth embodiment)
FIG. 4 shows the schematic operation of the fourth embodiment of the present invention.
In this example, the transmission buffer (310) of the application transmits data to the reception buffer (330) of the application of the opposite apparatus via the TCP connection (320).
アプリケーションは転送するデータを書き込み済データ(313)の最後から送信バッファ空き領域(314)に追記していく。送信済データ(311)の次の領域に書込み済データ(313)が存在する場合、使用中状態(320a)のTCPコネクションに分割して受け渡し、送信中データ(312)とする。各コネクションに渡された分割データ(312a〜312c)はデータの開始位置を示すポインタを付加してパケット化して(322a〜322c)受信側に転送される。 The application appends the data to be transferred to the transmission buffer empty area (314) from the end of the written data (313). When written data (313) is present in the area next to transmitted data (311), the data is divided and transferred to a TCP connection in use (320a) to be transmitted data (312). The divided data (312a to 312c) passed to each connection is packetized with a pointer indicating the start position of the data (322a to 322c) and transferred to the receiving side.
転送中に輻輳ウィンドウの低下(324)を検出した場合、待機中状態(320b)のTCPコネクションを代替として割り当て、データパケットの再送(323b)を行う。 When a decrease in congestion window (324) is detected during transfer, the TCP connection in the waiting state (320b) is assigned as an alternative, and the data packet is retransmitted (323b).
対向装置のアプリケーションではパケットに含まれる分割データの開始位置を示すポインタに対応した位置から分割データを受信バッファに書込み、受信済データ(331)とする。 In the application of the opposite apparatus, the divided data is written into the reception buffer from the position corresponding to the pointer indicating the start position of the divided data included in the packet, and is set as received data (331).
受信側のアプリケーションは受信バッファ(330)から受信済データ(331)を読み出した後、受信バッファ空き領域(334)とする。 The application on the reception side reads the received data (331) from the reception buffer (330) and sets it as a reception buffer free area (334).
以上、第一の実施形態〜第四の実施形態において説明したように、本発明の第一の観点によると、対向装置間で輻輳が起こらない1以上の物理リンクで接続されるTCPの並列コネクションによるデータ伝送において、ユーザーデータの伝送が開始されるよりも前に各TCPコネクションを確立して管理スレッドにおいて待機中状態とする。アプリケーションから管理スレッドにソケット要求があると待機中状態のTCPコネクションを選択し、そのソケットをアプリケーションに渡す。輻輳ウィンドウの低下やリンク異常を検出した場合、管理スレッドはアプリケーションにソケット異常を通知して、アプリケーションは該当ソケットを解放し、代替えのソケットをアプリケーションに渡して未送信データの送信を行う。 As described above in the first embodiment to the fourth embodiment, according to the first aspect of the present invention, the parallel connection of TCP connected by one or more physical links that do not cause congestion between the opposing devices. In the data transmission according to the above, each TCP connection is established before the transmission of user data is started, and the management thread is set to a waiting state. When there is a socket request from the application to the management thread, the TCP connection in the waiting state is selected and the socket is passed to the application. When a congestion window drop or link abnormality is detected, the management thread notifies the application of the socket abnormality, the application releases the corresponding socket, passes the alternative socket to the application, and transmits unsent data.
輻輳ウィンドウの取得・監視は非特許文献2にある[TCP Extended Statistics MIB]に対応したOS/プロダクトであれば直接行う事が出来る。間接的には通信遅延時間(RTT)を基にTCPの読み出し側のタイムアウトを設定することでパケット消失もしくは輻輳ウィンドウの低下を知る事が出来る。また、RTO(Retransmission Time Out)や遅延ACK等のTCPのフロー制御で用いるタイマと同等のタイマや、重複ACKを用いるか、或いは受信側で所定のバイト数の転送に要する時間を計測し実効的なスループットに換算して送信側に通知することで、輻輳ウィンドウの低下を知る事が出来る。 The acquisition / monitoring of the congestion window can be directly performed by any OS / product corresponding to [TCP Extended Statistics MIB] in Non-Patent Document 2. Indirectly, it is possible to know the packet loss or the decrease in the congestion window by setting a timeout on the reading side of the TCP based on the communication delay time (RTT). In addition, the timer equivalent to the timer used in TCP flow control such as RTO (Retransmission Time Out) and delayed ACK, duplicate ACK is used, or the time required for transferring a predetermined number of bytes on the receiving side is measured and effective. It is possible to know a decrease in the congestion window by converting to a proper throughput and notifying the transmission side.
異常検出されたコネクションは障害事由によりダミーデータのパケットの伝送を開始して待機中状態とするか、コネクションを終了させ使用不可とする。待機中状態のコネクションは輻輳ウィンドウを維持するために低頻度でダミーデータパケットの送出を行う。 The connection in which the abnormality is detected starts transmission of dummy data packets due to a failure reason and enters a waiting state, or terminates the connection and disables the connection. The connection in the waiting state transmits dummy data packets at a low frequency in order to maintain the congestion window.
このように、輻輳ウィンドウサイズが大きい状態でソケットをアプリケーションに渡すことで、TCPのスロースタートの影響を無くす事が出来る。また、パケット消失が起こった場合、別の待機中状態のソケットと交換することで、パケット消失による輻輳ウィンドウサイズ半減の影響を無くす事が可能になる。 In this way, the influence of the TCP slow start can be eliminated by passing the socket to the application in a state where the congestion window size is large. In addition, when packet loss occurs, it is possible to eliminate the influence of the congestion window size halving due to packet loss by exchanging with another waiting socket.
本発明はTCP輻輳制御方式とは独立であるので、TCP輻輳制御方式を複数の中から選択できる場合には、実使用環境において最も輻輳ウィンドウサイズが大きい方式を採用する。TCP輻輳制御方式の選択により平均スループットの向上が期待される。本発明において輻輳ウィンドウの低下検出閾値を平均スループットに設定することにより、輻輳ウィンドウサイズが変動する環境においても平均スループットの最低帯域保証を行うことが可能になる。 Since the present invention is independent of the TCP congestion control method, when the TCP congestion control method can be selected from a plurality of methods, the method having the largest congestion window size in the actual use environment is adopted. The average throughput is expected to be improved by selecting the TCP congestion control method. In the present invention, by setting the congestion window lowering detection threshold value to the average throughput, it is possible to guarantee the minimum bandwidth of the average throughput even in an environment where the congestion window size varies.
本発明の第二の観点によると、2以上の物理リンクを使用している場合、第一の観点に加えてソケット異常を通知した場合に別の物理リンク上のTCPコネクションのソケットを優先的に選択して代替えとしてアプリケーションに渡す。このように、別の物理リンクのTCPコネクションを選択することで、物理リンク自体に障害の原因があった場合に、代替えのソケットも輻輳ウィンドウの低下が起こることを回避する事が出来る。 According to the second aspect of the present invention, when two or more physical links are used, the socket of the TCP connection on another physical link is given priority when notifying the socket abnormality in addition to the first aspect. Select and pass to the application as an alternative. In this way, by selecting a TCP connection of another physical link, it is possible to avoid the congestion window from being lowered in the alternative socket when there is a cause of failure in the physical link itself.
本発明の第三の観点によると、第一の観点における管理スレッドとアプリケーションの中間に送信スレッド及び受信スレッドを配置する。送信スレッドでは送信バッファを用意してアプリケーションから送信要求があるとデータを送信バッファの空き領域に未送信データとして書き込む。一方、必要数のソケットを管理スレッドから受け取り、送信バッファ内に未送信データが存在する場合にそのデータを分割し、分割したデータの先頭位置と分割データをパケット化してそれぞれソケットを介して送信する。輻輳ウィンドウの低下等送信異常が検出された場合そのソケットを解放し、代替えのソケットを管理スレッドから受け取り該当する分割データを再送信する。受信スレッドでは受信バッファを用意して、ソケットを介してパケットを受信すると、パケットに含まれる分割データの先頭位置に対応する受信バッファアドレスから受信した分割データを書き込み、受信済データとする。アプリケーションから受信要求があると受信済データを渡し、対応する受信バッファを解放する。このように、受信スレッド及び送信スレッドを用いることで、並列コネクションであることを意識することなくアプリケーションを構成する事が出来る。また、ソケットを直接的に使用することで、輻輳ウィンドウの低下をより早く検出することが可能になる。 According to the third aspect of the present invention, the transmission thread and the reception thread are arranged between the management thread and the application in the first aspect. In the transmission thread, a transmission buffer is prepared, and when there is a transmission request from the application, the data is written in the empty area of the transmission buffer as untransmitted data. On the other hand, the necessary number of sockets are received from the management thread, and when there is unsent data in the transmission buffer, the data is divided, and the start position of the divided data and the divided data are packetized and transmitted through the sockets. . When a transmission abnormality such as a decrease in the congestion window is detected, the socket is released, an alternative socket is received from the management thread, and the corresponding divided data is retransmitted. In the reception thread, a reception buffer is prepared, and when a packet is received via a socket, the divided data received from the reception buffer address corresponding to the head position of the divided data included in the packet is written and used as received data. When there is a reception request from the application, the received data is passed and the corresponding reception buffer is released. As described above, by using the reception thread and the transmission thread, it is possible to configure an application without being aware of the parallel connection. Further, by directly using the socket, it becomes possible to detect a decrease in the congestion window earlier.
本発明の第四の観点によると、第三の観点に第二の観点と同様に、送信異常が検出された場合代替えとして別の物理リンクのTCPコネクションを選択することで、物理リンク自体に障害の原因があった場合に、代替えのソケットも輻輳ウィンドウの低下が起こることを回避する事が出来る。 According to the fourth aspect of the present invention, when a transmission abnormality is detected in the third aspect, the TCP connection of another physical link is selected as an alternative when the transmission abnormality is detected. If there is a cause of the problem, the alternative socket can also avoid the decrease in the congestion window.
本発明は情報通信産業に適用することができる。 The present invention can be applied to the information communication industry.
10:送信側のアプリケーション
20:送信側の対向装置
21:コネクションスレッド
22:管理スレッド
23:送信スレッド
24:送信バッファ
31:コネクションスレッド
32:受信スレッド
33:受信バッファ
40:受信側のアプリケーション
100:コネクションスレッド
101:コネクション開始状態部
102:ウォームアップ状態部
103:待機中状態部
104:使用中状態部
105:異常検出状態部
106:コネクション終了状態部
110:管理スレッド
111:待機中コネクションリスト
112:使用中コネクションリスト
120:アプリケーション
201:装置A
202:物理リンクLA1
203:物理リンクLA2
204:TCPコネクション(CA1〜CA5)
205:使用中状態(CA1〜CA2)
206:ウォームアップ状態(CA3〜CA5)
207:待機中状態(CA3〜CA5)
208:パケット消失、209リンク障害
210:使用中状態(CA4〜CA5)
211:ウォームアップ状態(CA1〜CA3)
221:装置B
222:物理リンクLB1
223:物理リンクLB2
224:TCPコネクション(CB1〜CB5)
225:使用中状態(CB1〜CB2)
226:ウォームアップ状態(CB3〜CB5)
227:待機中状態(CB3〜CB5)
230:使用中状態(CB4〜CB5)
231:ウォームアップ状態(CB1〜CB3)
310:送信バッファ
311:送信済データ
312(312a〜312c):送信中データ
313:書込済データ
314:送信データ空領域
320:TCPコネクション
321:送信済パケット
322(322a〜322c):送信中パケット
323b:再送信中パケット
324:伝送障害
330:受信バッファ
331:受信済データ
332:受信中データ(332a〜332c)
334:受信バッファ空き領域
10: Transmission-side application 20: Transmission-side counter device 21: Connection thread 22: Management thread 23: Transmission thread 24: Transmission buffer 31: Connection thread 32: Reception thread 33: Reception buffer 40: Reception-side application 100: Connection Thread 101: Connection start state portion 102: Warm-up state portion 103: Waiting state portion 104: In-use state portion 105: Abnormality detection state portion 106: Connection end state portion 110: Management thread 111: Waiting connection list 112: Use Medium connection list 120: Application 201: Device A
202: Physical link LA1
203: Physical link LA2
204: TCP connection (CA1 to CA5)
205: State in use (CA1 to CA2)
206: Warm-up state (CA3 to CA5)
207: Waiting state (CA3 to CA5)
208: Packet loss, 209 link failure 210: Busy state (CA4 to CA5)
211: Warm-up state (CA1 to CA3)
221: Device B
222: Physical link LB1
223: Physical link LB2
224: TCP connection (CB1 to CB5)
225: State in use (CB1 to CB2)
226: Warm-up state (CB3 to CB5)
227: Waiting state (CB3 to CB5)
230: State in use (CB4 to CB5)
231: Warm-up state (CB1 to CB3)
310: transmission buffer 311: transmitted data 312 (312a to 312c): transmitting data 313: written data 314: transmission data empty area 320: TCP connection 321: transmitted packet 322 (322a to 322c): transmitting
334: Receive buffer free area
Claims (6)
送信側の前記対向装置は、
TCPコネクションを確立して待機中状態である旨を通知する複数のTCP接続部と、
前記TCP接続部からの通知を受信することによって前記TCP接続部の使用状態を管理する管理部と、
前記管理部から待機中状態にあるTCPコネクションのソケットを取得し、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して前記待機中状態の複数のソケットに割り振る送信部と、
を備え、
受信側の前記対向装置は、
TCPコネクションを確立して前記分割データを受信する複数のTCP接続部と、
前記分割データの先頭位置を示すポインタに対応した位置から受信バッファに書き込み、全ての前記分割データの前記受信バッファへの書き込みの完了後に前記オリジナルデータを出力する受信部を備える、
データパケット伝送システム。 A data packet transmission system that performs data transmission between opposing devices using a TCP (Transmission Control Protocol) connection on one or more physical links,
The opposite device on the transmission side is
A plurality of TCP connections for establishing a TCP connection and notifying that it is in a standby state;
A management unit that manages a usage state of the TCP connection unit by receiving a notification from the TCP connection unit;
Obtains a TCP connection socket in the standby state from the management unit, divides the original data to be transmitted, packetizes the divided data and the start position of the divided data, and sends it to the plurality of sockets in the standby state. A transmitter to allocate;
With
The opposite device on the receiving side is
A plurality of TCP connection units for establishing a TCP connection and receiving the divided data;
A receiving unit that writes to the reception buffer from a position corresponding to a pointer indicating the start position of the divided data, and outputs the original data after completion of writing all the divided data to the reception buffer,
Data packet transmission system.
前記管理部は、輻輳ウィンドウの低下又はリンクの異常を検出した前記送信側のTCP接続部にソケット異常が発生した旨を前記送信部に通知し、
前記送信部は、ソケット異常の発生したソケットに割り振っていた前記分割データを、前記待機中状態のソケットに割り振る
請求項1に記載のデータパケット伝送システム。 The TCP connection unit on the transmission side detects a decrease in the congestion window to a predetermined value or less or a link abnormality,
The management unit notifies the transmission unit that a socket abnormality has occurred in the TCP connection unit on the transmission side that has detected a decrease in congestion window or link abnormality,
The data packet transmission system according to claim 1, wherein the transmission unit allocates the divided data allocated to the socket in which the socket abnormality has occurred to the standby socket.
送信側のTCP接続部が、輻輳ウィンドウが所定値超となった待機中状態である旨を管理部に通知することによって、管理部が送信側のTCP接続部の使用状態を管理する使用状態管理手順と、
送信部が、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して前記待機中状態の複数のソケットに割り振り、送信側のTCP接続部が送信部からの指示に従って前記分割データを送信する分割データ送信手順と、
受信側のTCP接続部がTCPコネクションを確立して前記分割データを受信し、受信部が、前記分割データの先頭位置を示すポインタに対応した位置から前記分割データを受信バッファに書き込む分割データ受信手順と、
受信部が、全ての前記分割データの前記受信バッファへの書き込みの完了後に前記オリジナルデータを読み出すオリジナルデータ読み出し手順と、
を順に有するデータパケット伝送方法。 A data packet transmission method for performing data transmission between opposing devices using a TCP connection on one or more physical links,
Usage state management in which the management unit manages the usage state of the TCP connection unit on the transmission side by notifying the management unit that the TCP connection unit on the transmission side is in a standby state in which the congestion window exceeds a predetermined value Procedure and
The transmission unit divides the original data to be transmitted, packetizes the divided data and the start position of the divided data, and allocates the packets to the plurality of standby sockets. A divided data transmission procedure for transmitting the divided data according to an instruction;
A divided data reception procedure in which a TCP connection unit on the receiving side establishes a TCP connection to receive the divided data, and the receiving unit writes the divided data into a reception buffer from a position corresponding to a pointer indicating the head position of the divided data When,
An original data reading procedure in which the receiving unit reads the original data after completing the writing of all the divided data to the reception buffer;
A data packet transmission method comprising:
前記送信部が、ソケット異常の発生したソケットに割り振っていた前記分割データを、前記待機中状態のソケットに割り振るソケット代替手順と、
を前記分割データ送信手順と前記分割データ受信手順の間にさらに有する
ことを特徴とする請求項4に記載のデータパケット伝送方法。 A socket abnormality detection procedure in which the TCP connection unit on the transmission side detects a decrease in the congestion window below a predetermined value or a link abnormality;
A socket replacement procedure for allocating the divided data allocated to the socket in which the socket abnormality has occurred to the socket in the waiting state;
The data packet transmission method according to claim 4, further comprising: between the divided data transmission procedure and the divided data reception procedure.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011267526A JP2013121028A (en) | 2011-12-07 | 2011-12-07 | Data packet transmission method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011267526A JP2013121028A (en) | 2011-12-07 | 2011-12-07 | Data packet transmission method and system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013121028A true JP2013121028A (en) | 2013-06-17 |
Family
ID=48773491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011267526A Pending JP2013121028A (en) | 2011-12-07 | 2011-12-07 | Data packet transmission method and system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013121028A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015155996A1 (en) * | 2014-04-10 | 2015-10-15 | 日本電気株式会社 | Communication control apparatus, communication control method, and recording medium on which communication control program has been stored |
JP2015204466A (en) * | 2014-04-10 | 2015-11-16 | 株式会社東芝 | Data transfer device, data transfer method, and communication device |
JP2016152569A (en) * | 2015-02-19 | 2016-08-22 | 株式会社シミュラティオ | File transfer method and file transfer program |
JP2018061287A (en) * | 2017-12-12 | 2018-04-12 | 株式会社東芝 | Data transfer device, data transfer method, and communication apparatus |
JP2019520745A (en) * | 2016-05-31 | 2019-07-18 | アンカーフリー, インク.Anchorfree Inc. | System and method for improving the total throughput of simultaneous connections |
-
2011
- 2011-12-07 JP JP2011267526A patent/JP2013121028A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015155996A1 (en) * | 2014-04-10 | 2015-10-15 | 日本電気株式会社 | Communication control apparatus, communication control method, and recording medium on which communication control program has been stored |
JP2015204466A (en) * | 2014-04-10 | 2015-11-16 | 株式会社東芝 | Data transfer device, data transfer method, and communication device |
JP2016152569A (en) * | 2015-02-19 | 2016-08-22 | 株式会社シミュラティオ | File transfer method and file transfer program |
US10241929B2 (en) | 2015-02-19 | 2019-03-26 | Simulatio Corporation | Data transfer method for parallel transfer of data divided into a plurality of data groups over multiple TCP connections simultaneously |
JP2019520745A (en) * | 2016-05-31 | 2019-07-18 | アンカーフリー, インク.Anchorfree Inc. | System and method for improving the total throughput of simultaneous connections |
JP2018061287A (en) * | 2017-12-12 | 2018-04-12 | 株式会社東芝 | Data transfer device, data transfer method, and communication apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6875545B2 (en) | Providing communication for mobile communication devices using aggregated unit nodes and distributed unit nodes | |
JP2013121028A (en) | Data packet transmission method and system | |
US9577791B2 (en) | Notification by network element of packet drops | |
JP6094357B2 (en) | COMMUNICATION METHOD, COMMUNICATION SYSTEM, AND COMMUNICATION DEVICE | |
WO2014092779A1 (en) | Notification by network element of packet drops | |
JP2009147786A (en) | Communication apparatus, data frame transmission control method, and program | |
Zhang et al. | Taming TCP incast throughput collapse in data center networks | |
WO2015169057A1 (en) | Packet transmission method and device, and interconnection interface | |
JPWO2008023656A1 (en) | Communication device | |
CN102801508A (en) | Control method for processing network packet loss | |
CN108632869B (en) | Transmission control method and device | |
US9876727B2 (en) | Physical-layer signaling of flow control updates | |
JP2010011255A (en) | Wireless communication apparatus, and packet transfer method thereof | |
WO2016119415A1 (en) | Method, apparatus and system for handling wlan link anomaly in msa | |
JP2011077795A (en) | Ethernet transfer device | |
WO2018082603A1 (en) | Information processing method and device | |
WO2008116399A1 (en) | Dynamically adjusting method and apparatus for link state and bundled link state | |
WO2011155392A1 (en) | Congestion control system, congestion control method and signalling device | |
BR112019015070A2 (en) | METHOD AND APPLIANCES FOR DATA TRANSMISSION AND EQUIPMENT OF CUSTOMER FACILITIES | |
EP3202213A1 (en) | Rlc delivery failure resolution | |
JP2012170014A (en) | Controlling and monitoring high-speed millimeter wave link using out-of-band wireless channel | |
JP4645839B2 (en) | Security communication apparatus and sequence number management method | |
WO2010045798A1 (en) | Method and apparatus for setting the path state | |
WO2021249190A1 (en) | Protocol data unit processing method and apparatus, sending device and storage medium | |
JP5558436B2 (en) | Network system and network failure avoidance method |