Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4599554B2 - TCP congestion control method for broadband, high-delay wireless networks - Google Patents
[go: Go Back, main page]

JP4599554B2 - TCP congestion control method for broadband, high-delay wireless networks - Google Patents

TCP congestion control method for broadband, high-delay wireless networks Download PDF

Info

Publication number
JP4599554B2
JP4599554B2 JP2004362297A JP2004362297A JP4599554B2 JP 4599554 B2 JP4599554 B2 JP 4599554B2 JP 2004362297 A JP2004362297 A JP 2004362297A JP 2004362297 A JP2004362297 A JP 2004362297A JP 4599554 B2 JP4599554 B2 JP 4599554B2
Authority
JP
Japan
Prior art keywords
data
ack
window size
congestion
loss
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.)
Expired - Fee Related
Application number
JP2004362297A
Other languages
Japanese (ja)
Other versions
JP2006173961A (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.)
HIROSHIMA CITY
Original Assignee
HIROSHIMA CITY
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 HIROSHIMA CITY filed Critical HIROSHIMA CITY
Priority to JP2004362297A priority Critical patent/JP4599554B2/en
Publication of JP2006173961A publication Critical patent/JP2006173961A/en
Application granted granted Critical
Publication of JP4599554B2 publication Critical patent/JP4599554B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、広帯域かつ高遅延な無線ネットワークにおけるTCP通信を高速化する技術に関するものである。 The present invention relates to a technique for speeding up TCP communication in a broadband and high-delay wireless network.

現在、多くのOSに標準で実装されている従来のTCPの輻輳制御方式では、輻輳ウインドウサイズの増加を2つのアルゴリズム(スロースタートアルゴリズムと輻輳回避アルゴリズム)に基づいて行う。   In the conventional TCP congestion control method that is currently implemented as standard in many OSs, the congestion window size is increased based on two algorithms (slow start algorithm and congestion avoidance algorithm).

スロースタートアルゴリズムは、通信開始時から実行されるアルゴリズムで、輻輳ウインドウサイズがスロースタート閾値と呼ばれる値よりも小さい時に実行される。スロースタートアルゴリズムでは、輻輳ウインドウサイズの初期値を1セグメントサイズ分とし、送信したセグメントに対するACKが1つ戻る毎に1セグメントサイズ分だけ輻輳ウインドウサイズを増加させる。一方、輻輳回避アルゴリズムは、輻輳ウインドウサイズがスロースタート閾値以上の時、実行されるアルゴリズムである。輻輳回避アルゴリズムでは、輻輳ウインドウサイズ分のセグメントに対するACKが戻る毎に1セグメントサイズ分だけ輻輳ウインドウサイズを増加させる。従って、輻輳ウインドウサイズがスロースタート閾値になるまでは、スロースタートアルゴリズムにより指数的に輻輳ウインドウサイズを増加させ、その後は輻輳回避アルゴリズムにより線形的に輻輳ウインドウサイズを増加させる。 The slow start algorithm is executed from the start of communication, and is executed when the congestion window size is smaller than a value called a slow start threshold. In the slow start algorithm, the initial value of the congestion window size is set to one segment size, and the congestion window size is increased by one segment size every time one ACK for the transmitted segment is returned. On the other hand, the congestion avoidance algorithm is an algorithm that is executed when the congestion window size is greater than or equal to the slow start threshold. In the congestion avoidance algorithm, the congestion window size is increased by one segment size each time an ACK for a segment corresponding to the congestion window size is returned. Accordingly, the congestion window size is exponentially increased by the slow start algorithm until the congestion window size reaches the slow start threshold, and thereafter, the congestion window size is linearly increased by the congestion avoidance algorithm.

しかしながら、従来の輻輳ウインドウサイズ増加アルゴリズムには、次のような問題がある。伝搬遅延時間の小さいネットワークでは、データを送信してからACKが戻ってくるまでにかかる時間(ラウンドトリップ時間)が小さいため、迅速に輻輳ウインドウサイズが大きくなる。しかしながら、伝搬遅延時間が大きくなると、ラウンドトリップ時間も大きくなるため、輻輳ウインドウサイズの増加速度が非常に遅くなる。特に衛星回線のような非常に伝搬遅延時間が大きな回線がネットワーク内に存在すると、この増加速度の低下は顕著となる。さらに、利用可能な帯域が非常に大きい(数百Mbpsから数Gbps)場合、最大性能が得られる輻輳ウインドウサイズに増加するまでに非常に時間がかかることになる。   However, the conventional congestion window size increasing algorithm has the following problems. In a network having a small propagation delay time, since the time (round trip time) required from when data is transmitted until ACK returns is small, the congestion window size increases rapidly. However, when the propagation delay time is increased, the round trip time is also increased, so that the increase rate of the congestion window size is very slow. In particular, when a line having a very long propagation delay time such as a satellite line exists in the network, the decrease in the increase speed becomes remarkable. Furthermore, if the available bandwidth is very large (several hundred Mbps to several Gbps), it will take a very long time to increase to the congestion window size where maximum performance is obtained.

この解決策として、Dummyセグメントと呼ばれる特殊なセグメントを利用してネットワークの帯域を測定し、送信開始後すぐに測定帯域を用いて輻輳ウインドウサイズを増加させる改良方式が提案されている。(例えば、非特許文献1参照。)この改良方式で提案されているDummyセグメントは送信データセグメントの複製で、優先度が低く再送は行われない。従って、ルータで輻輳が発生した場合、Dummyセグメントは優先的にルータで破棄される。しかしながら改良方式は、送信側だけではなく受信側と中間に存在するすべてのルータでDummyセグメントを扱う制御を導入する必要がある。従って、インターネットに存在するルータ数は膨大であることを考慮すると、改良方式を実現することは非常に困難であるという問題がある。   As a solution to this problem, an improved method has been proposed in which a network segment is measured using a special segment called a dummy segment, and the congestion window size is increased using the measurement bandwidth immediately after the start of transmission. (For example, refer nonpatent literature 1.) The dummy segment proposed by this improved system is a duplication of a transmission data segment, and has a low priority and is not retransmitted. Accordingly, when congestion occurs in the router, the dummy segment is preferentially discarded by the router. However, in the improved method, it is necessary to introduce control for handling dummy segments not only on the transmitting side but also on all routers existing between the receiving side and the receiving side. Accordingly, considering that the number of routers existing on the Internet is enormous, there is a problem that it is very difficult to realize the improved method.

I.F.Akyildiz,G.Morabito,S.Palazzo:“TCP-Peach:A New Congestion Control Scheme for Satellite IP Newtorks,” IEEE/ACM Transactions of Networking,9,3,pp.307-321,June 2001.I. F. Akyildiz, G. Morabito, S. Palazzo: “TCP-Peach: A New Congestion Control Scheme for Satellite IP Newtorks,” IEEE / ACM Transactions of Networking, 9, 3, pp.307-321, June 2001.

次に、従来のTCPの輻輳制御方式ではデータロスが発生すると、輻輳が発生していると判断する。ただし、この場合データロスは、3つ以上の重複ACKの受信により判明する。するとTCPはネットワークの帯域を圧迫して更なる輻輳を発生させないために、輻輳ウインドウサイズをデータロスが発生した時の値の半分の値に設定する。しかしながら、データのロスは輻輳だけが原因ではなく、伝送路で発生するビット誤りによっても起こる。特に、無線ネットワークでは、途中経路における降雨や障害物などにより、有線ネットワークに比べて頻繁にビット誤りが発生する。ビット誤りによるデータロスが発生した場合、輻輳が発生している訳ではないため、ネットワークの帯域を圧迫しないよう輻輳ウインドウサイズを半減する必要はない。従って、従来のTCPを無線ネットワークに適用すると、ビット誤りによるデータロスが有線ネットワークと比較して頻繁に発生するため、性能が大きく劣化する問題がある。   Next, in the conventional TCP congestion control method, when data loss occurs, it is determined that congestion has occurred. In this case, however, the data loss is determined by receiving three or more duplicate ACKs. Then, the TCP sets the congestion window size to a value that is half of the value at the time of data loss in order not to cause further congestion by compressing the network bandwidth. However, data loss is caused not only by congestion but also by bit errors occurring in the transmission path. In particular, in a wireless network, bit errors occur more frequently than in a wired network due to rainfall or obstacles along the route. When data loss due to bit errors occurs, congestion does not occur, so there is no need to halve the congestion window size so as not to compress the network bandwidth. Therefore, when conventional TCP is applied to a wireless network, data loss due to bit errors occurs more frequently than in a wired network, and there is a problem that performance is greatly degraded.

このビット誤りによるデータロス発生時における性能劣化を防ぐために、ネットワークの帯域を測定し、帯域の測定値を基にデータロス後の輻輳ウインドウサイズを決定する改良方式が提案されている。(例えば、非特許文献2参照。)しかしながら、改良方式で提案されているネットワーク帯域の測定方式は、ある特定のネットワークでしか利用できず、様々なネットワークが混在するネットワークで利用すると帯域の追随性能が低下し、測定帯域の精度が下がる問題がある。   In order to prevent performance degradation when data loss occurs due to this bit error, an improved method has been proposed in which the network bandwidth is measured and the congestion window size after data loss is determined based on the measured bandwidth value. (For example, refer to Non-Patent Document 2.) However, the network bandwidth measurement method proposed in the improved method can be used only in a specific network, and the bandwidth tracking performance when used in a network in which various networks are mixed. Decreases and the accuracy of the measurement band decreases.

佐藤徳彦,國司光宣,寺岡文男:“TCP-J:無線ネットワークに適したトランスポートプロトコル,”情報処理学会論文誌,43,12,pp.38483858,Dec.2002.Tokuhiko Sato, Mitsunobu Kuniji, Fumio Teraoka: “TCP-J: Transport protocol suitable for wireless networks,” IPSJ Journal, 43, 12, pp.38483858, Dec. 2002.

また、従来のTCPの輻輳制御方式では、再送タイマーと呼ばれるタイマーを保持している。TCPは通信途中にラウンドトリップ時間を測定し、この測定時間を基に再送タイマーの値を設定している。再送タイマーは、データを送信するときにセットされ、再送タイマーが切れる(以下、再送タイムアウトと呼ぶ)とデータを再送するという動作を行う。再送タイムアウトが発生すると、TCPはネットワークに重い輻輳が発生していると判断し、輻輳ウインドウサイズを1セグメントサイズ分に設定し、スロースタートアルゴリズムでデータの送信を再開する。   In the conventional TCP congestion control method, a timer called a retransmission timer is held. TCP measures the round trip time during communication, and sets the value of the retransmission timer based on this measurement time. The retransmission timer is set when data is transmitted, and performs an operation of retransmitting data when the retransmission timer expires (hereinafter referred to as retransmission timeout). When a retransmission timeout occurs, TCP determines that heavy congestion has occurred in the network, sets the congestion window size to one segment size, and resumes data transmission using the slow start algorithm.

従来のTCP輻輳制御方式では再送タイムアウトの原因がすべて輻輳によるデータロスであると想定している。しかしながら、ACKがバースト的にロスするか、またはACKの到着が一時的にそれまでよりも大きく遅れる場合においても再送タイムアウトは発生する。ただし、この場合、データロスは発生しておらず、輻輳も発生していない。ACKのバースト的なロスは無線ネットワークにおけるビット誤りによって良く起こる。また、ACKの遅延によるタイムアウトは、衛星ネットワークのように高速で伝搬遅延時間が非常に安定しているネットワークで起こりやすいことが知られている。従来のTCP輻輳制御方式では、このようなACKのロスまたは遅延について考慮されていない。また、従来のTCP輻輳制御方式は、送信側主導で再送タイムアウトの原因を探る機能を持っていない。しかも、受信側からACKのロスまたは遅延が発生していることを送信側に通知する機能もない。従って、高速で遅延が安定している無線ネットワークにおいてよく発生するACKのロスまたは遅延が発生した場合、再送タイムアウトの原因は輻輳ではないにも関わらず、ACKのロスまたは遅延を検出する方法がないため、従来のTCP輻輳制御方式のようにスロースタートアルゴリズムを実行し転送レートを下げる。さらに、この場合ACKのロスまたは遅延が発生しただけで、データは受信されているにも関わらず、データが失われたと誤った判断を行い、データを誤再送することになる。その結果、著しい性能の低下が起こり問題となる。 In the conventional TCP congestion control method, it is assumed that the cause of retransmission timeout is all data loss due to congestion. However, a retransmission timeout occurs even when the ACK is lost in bursts or when the arrival of the ACK is temporarily delayed more than before. However, in this case, no data loss has occurred and no congestion has occurred. ACK burst loss is often caused by bit errors in wireless networks. Also, it is known that timeout due to ACK delay is likely to occur in a network such as a satellite network that has a high propagation delay time and is very stable. The conventional TCP congestion control method does not consider such ACK loss or delay. Further, the conventional TCP congestion control method does not have a function of searching for the cause of retransmission timeout on the initiative of the transmission side. Moreover, there is no function for notifying the transmission side that an ACK loss or delay has occurred from the reception side. Therefore, when a loss or delay of ACK that occurs frequently in a wireless network with high-speed and stable delay occurs, there is no way to detect the loss or delay of ACK even though the cause of retransmission timeout is not congestion. Therefore, the slow start algorithm is executed as in the conventional TCP congestion control method to lower the transfer rate. Furthermore, in this case, only when an ACK loss or delay occurs, it is erroneously determined that the data has been lost although the data has been received, and the data is erroneously retransmitted. As a result, significant performance degradation occurs and becomes a problem.

この解決策として、再送タイムアウトが発生しデータを再送した後に、再送データのラウンドトリップ時間と再送タイムアウトが発生するまでのラウンドトリップ時間の大小関係を見ることでACKの遅延を検出する改良方式が提案されている。(例えば、非特許文献3参照。)しかしながら、この改良方式はACKの遅延を考慮しているだけで、ACKがロスした場合に対応できないという問題がある。また、改良方式はACKの遅延を検出すると、再送タイムアウト後の輻輳ウインドウサイズを1セグメントサイズ分に設定するため、ACKの遅延を検出できてもスループットの低下を避けることができないという問題もある。   As a solution to this, an improved method for detecting the ACK delay by examining the relationship between the round trip time of the retransmitted data and the round trip time until the retransmission timeout occurs after the retransmission timeout occurs and the data is retransmitted is proposed. Has been. (For example, refer to Non-Patent Document 3.) However, this improved method has a problem that it can not cope with a loss of ACK only by considering the delay of ACK. In addition, when the ACK delay is detected in the improved method, the congestion window size after the retransmission timeout is set to one segment size, so that even if the ACK delay can be detected, a decrease in throughput cannot be avoided.

長谷川剛,村田正幸,宮原秀夫:“誤再送を考慮したTCPのふくそう制御方式/エラー回復方式の改善,”電子情報通信学会 論文誌 通信B,J82-B,11,pp.2074-2084.Nov.1999.Takeshi Hasegawa, Masayuki Murata, Hideo Miyahara: “Improvement of TCP congestion control / error recovery method considering erroneous retransmission,” IEICE Transactions B, J82-B, 11, pp.2074-2084. Nov. 1999.

本発明は、衛星回線を用いた衛星インターネットのように広帯域、高遅延な無線ネットワークにおいてTCPを利用した際に問題となる、大きな伝搬遅延による輻輳ウインドウ増加率の減少、ビット誤りによるデータロス時に輻輳ウインドウを不必要に低下させる問題、ACKのロスや遅延により発生する再送タイムアウト後にデータの誤再送と不必要な送信レートを低下させる問題すべてを解決し、TCP通信の高速化を実現するTCP輻輳制御方式を提供することを主たる課題とする。 The present invention is a problem when TCP is used in a broadband, high-delay wireless network such as a satellite Internet using a satellite line, a decrease in the increase rate of the congestion window due to a large propagation delay, and a congestion at the time of data loss due to a bit error. TCP congestion control that solves all the problems of unnecessarily reducing the window, the erroneous retransmission of data after the retransmission timeout caused by ACK loss and delay, and the unnecessary reduction of the transmission rate, and speeding up TCP communication The main challenge is to provide a method.

上記課題を解決するために、本発明では、まず、通信中にACKの到着間隔とACKが通知する受信データ量を基に利用可能帯域を測定し、この測定帯域を利用して帯域を最大限に利用できるウインドウサイズ(測定ウインドウサイズ)を導出し、導出した測定ウインドウサイズを、従来TCPのスロースタートアルゴリズムと輻輳回避アルゴリズムに基づく輻輳ウインドウサイズに足すことで、送信開始時から最大性能が得られる大きな輻輳ウインドウサイズでの通信が可能となることを特徴とするTCP輻輳制御方式を提案する。 In order to solve the above problems, the present invention first measures the available bandwidth based on the arrival interval of ACK and the amount of received data notified by ACK during communication, and uses this measurement bandwidth to maximize the bandwidth. The maximum performance can be obtained from the start of transmission by deriving the window size (measurement window size) that can be used for the transmission, and adding the derived measurement window size to the congestion window size based on the conventional TCP slow start algorithm and congestion avoidance algorithm This paper proposes a TCP congestion control method that enables communication with a large congestion window size.

また、本発明では、3つ以上の重複ACKの受信により判明するデータロス発生後の輻輳ウインドウサイズおよびスロースタート閾値の設定を、重複ACK受信時に測定した利用可能帯域から得られた測定ウインドウサイズを利用して設定することを特徴とするTCP輻輳制御方式を提案する。   Further, in the present invention, the setting of the congestion window size and the slow start threshold after occurrence of data loss determined by receiving three or more duplicate ACKs is set to the measurement window size obtained from the available bandwidth measured at the time of receiving the duplicate ACK. We propose a TCP congestion control method characterized by using and setting.

また、本発明では、通信中に行うネットワーク帯域の測定の際に、帯域を平滑化する係数をネットワークに合わせて動的に変化させることで、様々なネットワークに対応可能な追随性に優れた帯域測定方式を持つことを特徴とするTCP輻輳制御方式を提案する。   Also, in the present invention, when measuring the network bandwidth during communication, the bandwidth smoothing bandwidth can be adapted to various networks by dynamically changing the coefficient for smoothing the bandwidth according to the network. A TCP congestion control method characterized by having a measurement method is proposed.

また、本発明では、再送タイムアウトが発生した後、再送タイムアウトの原因がデータのロスであるのか、それとも、ACKのロスまたは遅延によるものかを判断するために、送信側がそれまでに送信した最大のシーケンス番号を持つデータをプローブパケットとして送信し、受信側からそれまでに連続で受信したデータの最大シーケンス番号をACKで通知させる。プローブパケットに対するACKの受信後、プローブパケットのシーケンス番号とプローブパケットに対するACKが通知するシーケンス番号を用いて、データのロス、ACKロスまたは遅延が発生しているかを判断させることを特徴とするTCP輻輳制御方式を提案する。   Further, in the present invention, after a retransmission timeout has occurred, in order to determine whether the cause of the retransmission timeout is a data loss or an ACK loss or delay, Data having a sequence number is transmitted as a probe packet, and the maximum sequence number of data continuously received from the receiving side is notified by ACK. TCP congestion characterized in that after receiving an ACK for a probe packet, it uses the sequence number of the probe packet and the sequence number notified by the ACK for the probe packet to determine whether data loss, ACK loss or delay has occurred A control method is proposed.

さらに、本発明では、上記TCP通信方式において、再送タイムアウトの原因がデータのロスであることが分かれば、従来のTCPの動作と同じく、データ再送後に輻輳ウインドウサイズを1データセグメントサイズ分に設定し、スロースタート閾値を測定ウインドウサイズに設定した後、スロースタートアルゴリズムで送信を再開し、ACKのロスまたは遅延が再送タイムアウトの原因であることが分かれば、輻輳ウインドウサイズとスロースタート閾値を再送タイムアウトが発生する前の値に設定し、続きの新しいデータの送信を行うことを特徴とするTCP輻輳制御方式を提案する。   Further, according to the present invention, if it is known that the cause of retransmission timeout is data loss in the above TCP communication method, the congestion window size is set to one data segment size after data retransmission as in the conventional TCP operation. After setting the slow start threshold to the measurement window size, restart the transmission with the slow start algorithm, and if the loss or delay of the ACK is the cause of the retransmission timeout, the congestion window size and the slow start threshold are set to the retransmission timeout. We propose a TCP congestion control method that is characterized by setting the previous value and transmitting new data.

本発明によれば、広帯域かつ大きな伝搬遅延時間を持つ無線ネットワークであっても、ネットワークの利用可能帯域を迅速にかつ最大限利用でき、高速なTCP通信が可能となる。また、輻輳ではなく無線ネットワークで頻繁に発生するビット誤りによるデータロス時に不要にデータ送信レートを下げることなく高速なTCP通信が可能となる。さらに、広帯域であるために遅延が安定しているネットワークで発生するACKの遅延や、無線ネットワークで発生し易いビット誤りによるACKのロスが原因で起こる不必要なデータの再送と送信レートの低下を防ぐことができ、データのロスだけではなく、ACKのロスまたは遅延が発生した場合にも、高速なTCP通信が可能となる。 According to the present invention, even in a wireless network having a wide band and a large propagation delay time, the available bandwidth of the network can be used quickly and to the maximum, and high-speed TCP communication is possible. In addition, high-speed TCP communication is possible without reducing the data transmission rate unnecessarily at the time of data loss due to bit errors that frequently occur in a wireless network rather than congestion. In addition, ACK delays that occur in networks where the delay is stable due to wide bandwidth, and unnecessary data retransmission and transmission rate reduction caused by ACK loss due to bit errors that are likely to occur in wireless networks. High-speed TCP communication is possible not only when data is lost, but also when ACK loss or delay occurs.

以下、図面を参照して本発明の実施形態を説明する。図1は、本発明に係るTCP輻輳制御方式の全体構成図である。本発明に係るTCP輻輳制御方式は、現在一般的に実装されているTCPの輻輳制御機構10の上に、4つの機構(11、12、13、14)を付け加えた構成となる。ただし、現在、広く一般的に利用されているTCPのバージョンはTCP Renoである。図1において、10は従来のTCPのバージョンであるTCP Renoの輻輳制御機構を示す。11はネットワークの帯域を測定するネットワーク帯域測定機構を示す。12は輻輳ウインドウサイズの増加速度を加速させるLWC(Lift Window Control)機構、13は重複ACKの受信により判明するデータロス発生後の輻輳ウインドウサイズとスロースタート閾値の設定を行うCWS(Congestion Window Setting)機構をそれぞれ示す。12のLWC機構と13のCWS機構は、11の機構から得られたネットワークの利用可能帯域を利用して動作する。また、14は再送タイムアウトの発生後、タイムアウトの原因がデータのロス、ACKロスまたは遅延によるものであるのかを検出し、再送タイムアウト後の輻輳ウインドウサイズとスロースタート閾値の設定を行うAEN(Acknowledgement Error Notification)機構を示す。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is an overall configuration diagram of a TCP congestion control method according to the present invention. The TCP congestion control method according to the present invention has a configuration in which four mechanisms (11, 12, 13, 14) are added to the TCP congestion control mechanism 10 that is generally implemented at present. However, the currently widely used version of TCP is TCP Reno. In FIG. 1, reference numeral 10 denotes a congestion control mechanism of TCP Reno, which is a conventional TCP version. Reference numeral 11 denotes a network bandwidth measuring mechanism for measuring a network bandwidth. 12 is an LWC (Lift Window Control) mechanism that accelerates the increase speed of the congestion window size, and 13 is a CWS (Congestion Window Setting) that sets the congestion window size and slow start threshold after data loss that is revealed by receiving duplicate ACKs. Each mechanism is shown. The 12 LWC mechanisms and the 13 CWS mechanisms operate using the available bandwidth of the network obtained from the 11 mechanisms. Reference numeral 14 denotes an AEN (Acknowledgement Error) which detects whether the cause of timeout is due to data loss, ACK loss or delay after the occurrence of retransmission timeout, and sets the congestion window size and slow start threshold after retransmission timeout. Notification) mechanism.

本発明方式における、図1のTCP(Original)の輻輳制御機構10は、現在、一般的に実装されているTCPのバージョンであるTCP Renoの輻輳制御機構を示す。また、本発明方式は受信側が複数のデータのロスを通知可能な選択確認応答(Selective ACKnowledgement、SACK)を用いる場合を想定している。ここで、SACKを利用しない通常のACKは、1つのデータのロスのみ通知可能である。従って、本発明では、TCP(Original)の輻輳制御機構10はスロースタートアルゴリズム、輻輳回避アルゴリズム、早期再送アルゴリズム、早期回復アルゴリズムの4つのアルゴリズムを含む。   The TCP (Original) congestion control mechanism 10 of FIG. 1 in the method of the present invention indicates a TCP Reno congestion control mechanism that is a generally installed version of TCP. Further, the system of the present invention assumes a case where a selective acknowledgment (Selective ACKnowledgement, SACK) that can notify the loss of a plurality of data on the receiving side is used. Here, a normal ACK that does not use SACK can be notified of only one data loss. Therefore, in the present invention, the congestion control mechanism 10 of TCP (Original) includes four algorithms: a slow start algorithm, a congestion avoidance algorithm, an early retransmission algorithm, and an early recovery algorithm.

ネットワーク帯域測定機構11では、受信側から送信されるACKを利用してネットワークの利用可能帯域を測定する。まず、送信側ホストがACKを受信した時刻をt(k)、1つ前のACK受信時刻をt(k-1)、送信データ量をd(k)とする。これらの情報を利用して、帯域のサンプル値BWsample(k)をACKを受信する毎に図2の式を利用して計算する。次に、計算した帯域サンプル値と過去の帯域値を利用し図3の式で平滑化することで、利用可能帯域BWkを導出する。図3において、ある時刻t(k)における利用可能帯域BWkは、過去の利用可能帯域BWk-1および時刻t(k)で取得した帯域のサンプル値BWsample(k)と前回測定の帯域サンプル値BWsample(k-1)の平均値から得られる。ただし、図3において、aは平滑化係数(0<a<1)を示し、通信を行うネットワーク毎に最適な値を設定する必要がある。また、平滑化係数aはネットワークの変動に敏感に反応させるときは、平滑化係数の値を小さくする(0に近づける)。逆にネットワークの激しい変動に対してあまり敏感に反応させたくないときは、平滑化係数を大きくする(1に近づける)。   The network bandwidth measuring mechanism 11 measures the available bandwidth of the network using ACK transmitted from the receiving side. First, let t (k) be the time at which the sending host received the ACK, t (k-1) the time at which the previous ACK was received, and d (k) the amount of transmission data. Using these pieces of information, the band sample value BWsample (k) is calculated using the formula of FIG. 2 every time an ACK is received. Next, the available band BWk is derived by using the calculated band sample value and the past band value and smoothing with the equation of FIG. In FIG. 3, the available bandwidth BWk at a certain time t (k) includes the past available bandwidth BWk-1 and the bandwidth sample value BWsample (k) acquired at time t (k) and the bandwidth sample value BWsample of the previous measurement. It is obtained from the average value of (k-1). However, in FIG. 3, a indicates a smoothing coefficient (0 <a <1), and it is necessary to set an optimum value for each network that performs communication. Further, when the smoothing coefficient a is made to react sensitively to changes in the network, the value of the smoothing coefficient is reduced (closer to 0). Conversely, when it is not desired to react very sensitively to a drastic change in the network, the smoothing coefficient is increased (closer to 1).

また、図3における平滑化係数aは、衛星回線のみを使った衛星ネットワークのような特定のネットワークのみを利用して通信する場合、それぞれのネットワークに適した固定値を利用する。インターネットのように、多種多様なネットワークを経由する場合は、ネットワークの状況に合わせて動的に平滑化係数aを設定すると、追随性が向上し、より精度の良い利用可能帯域が導出できる。また、利用可能帯域は平滑化係数が極限値(最大値1、最小値0)に近いと平滑化係数の変化に敏感となる。そこで、動的に平滑化係数aを設定する方法として、極限値に近づくにつれ増減が緩やかになり、それ以外の部分においては線形的に増減する曲線を描く数式の利用が考えられる。ただし、多種多様なネットワークを経由するインターネット上でTCP通信を行う際に、平滑化係数として固定値を利用しても、十分精度の良い帯域値を得ることは可能である。   Further, the smoothing coefficient a in FIG. 3 uses a fixed value suitable for each network when communication is performed using only a specific network such as a satellite network using only a satellite line. When passing through a variety of networks such as the Internet, if the smoothing coefficient a is dynamically set in accordance with the network conditions, the followability is improved and a usable bandwidth with higher accuracy can be derived. Also, the usable bandwidth becomes sensitive to changes in the smoothing coefficient when the smoothing coefficient is close to the limit value (maximum value 1, minimum value 0). Therefore, as a method of dynamically setting the smoothing coefficient a, it is conceivable to use a mathematical expression that draws a curve that gradually increases and decreases as it approaches the limit value, and linearly increases and decreases in other parts. However, when TCP communication is performed on the Internet via various networks, it is possible to obtain a sufficiently accurate band value even if a fixed value is used as the smoothing coefficient.

LWC機構12では、上記、ネットワーク帯域測定機構11により得られた利用可能帯域を用いて輻輳ウインドウサイズを増加させる。LWC機構は、まず、図4の式により、帯域を最大限利用できる測定ウインドウサイズcwnd_abeを導出する。図4において、BWは図3の式により得られる利用可能帯域(ただし、BWk=BWとしている。)、MSSは最大セグメントサイズ、RTTminはラウンドトリップ時間RTTの最小値を示す。ここで送信側は、送信開始時から、あるデータの送信時間とそのデータに対するACKの受信時間から得られるRTTを記録しておき、常に最小となる値をRTTminとして保持している。次に、TCP(Original)の輻輳制御機構(図1の10)のスロースタートアルゴリズムと輻輳回避アルゴリズムにより得られる輻輳ウインドウサイズcwnd_renoに、測定ウインドウサイズcwnd_abeを足すことで、輻輳ウインドウサイズcwndを図5で示される式で導出する。   The LWC mechanism 12 increases the congestion window size using the available bandwidth obtained by the network bandwidth measuring mechanism 11 described above. First, the LWC mechanism derives a measurement window size cwnd_abe that can use the bandwidth to the maximum by the equation of FIG. In FIG. 4, BW is an available bandwidth obtained by the equation of FIG. 3 (where BWk = BW), MSS is the maximum segment size, and RTTmin is the minimum value of the round trip time RTT. Here, the transmission side records the RTT obtained from the transmission time of certain data and the reception time of the ACK for the data from the start of transmission, and always holds the minimum value as RTTmin. Next, the congestion window size cwnd is obtained by adding the measurement window size cwnd_abe to the congestion window size cwnd_reno obtained by the slow start algorithm and the congestion avoidance algorithm of the TCP (Original) congestion control mechanism (10 in FIG. 1). Derived by the formula shown in.

LWC機構12において利用する、TCP(Original)の輻輳制御機構(図1の10)のスロースタートアルゴリズムと輻輳回避アルゴリズムでは、図6に示される式により輻輳ウインドウサイズcwnd_renoが設定される。図6において、スロースタートアルゴリズムは、データ送信開始時およびデータロスによる再送タイムアウトが発生したときに実行され、1つのACKを受信する毎に1セグメントサイズ分だけ輻輳ウインドウサイズcwnd_renoを増加させる。輻輳回避アルゴリズムは、輻輳ウインドウサイズcwnd_renoがスロースタート閾値ssthreshよりも大きくなると実行され、輻輳ウインドウサイズcwnd_reno分のACKを受信するごとに1セグメントサイズ分、輻輳ウインドウサイズcwnd_renoを増加させる。   In the slow start algorithm and congestion avoidance algorithm of the TCP (Original) congestion control mechanism (10 in FIG. 1) used in the LWC mechanism 12, the congestion window size cwnd_reno is set by the equation shown in FIG. In FIG. 6, the slow start algorithm is executed at the start of data transmission and when a retransmission timeout occurs due to data loss, and increases the congestion window size cwnd_reno by one segment size every time one ACK is received. The congestion avoidance algorithm is executed when the congestion window size cwnd_reno becomes larger than the slow start threshold ssthresh, and increases the congestion window size cwnd_reno by one segment size every time an ACK corresponding to the congestion window size cwnd_reno is received.

CWS機構13では、ネットワーク帯域測定機構11で導出された利用可能帯域から計算する測定ウインドウサイズcwnd_abeを利用して、3つ以上の重複ACKの受信により判明するデータロス発生後の輻輳ウインドウサイズcwndとスロースタート閾値ssthreshを設定する。図7はCWS機構における輻輳ウインドウサイズとスロースタート閾値の設定の式を示す。図7より、cwndがssthreshよりも小さい場合、ssthreshを測定ウインドウサイズcwnd_abeに設定し、cwndはそれまでの値を保持する。もしcwndがssthresh以上であれば、ssthreshを測定ウインドウサイズcwnd_abeに設定し、cwndはssthresh(つまり測定ウインドウサイズ)に設定する。また、データロスが発生し、上記の方法でcwndを設定した後、TCP(Original)の輻輳制御機構(図1の10)で保持されている輻輳ウインドウサイズcwnd_renoは、TCP Renoの通常の動作に従い、半分の値に設定される。   The CWS mechanism 13 uses the measurement window size cwnd_abe calculated from the available bandwidth derived by the network bandwidth measurement mechanism 11, and the congestion window size cwnd after occurrence of data loss that is found by receiving three or more duplicate ACKs. Set the slow start threshold ssthresh. FIG. 7 shows formulas for setting the congestion window size and the slow start threshold in the CWS mechanism. As shown in FIG. 7, when cwnd is smaller than ssthresh, ssthresh is set to the measurement window size cwnd_abe, and cwnd holds the previous value. If cwnd is greater than or equal to ssthresh, ssthresh is set to the measurement window size cwnd_abe, and cwnd is set to ssthresh (ie, the measurement window size). In addition, after data loss occurs and cwnd is set by the above method, the congestion window size cwnd_reno held by the congestion control mechanism of TCP (Original) (10 in FIG. 1) follows the normal operation of TCP Reno. , Half the value.

AEN機構14では、再送タイムアウトが発生すると、タイムアウトの原因がデータロスかまたは、ACKのロス/遅延によるもののどちらであるかを調査する。その結果、AEN機構は再送タイムアウトの原因が分かると、データロスの場合とACKロスまたは遅延の場合でそれぞれ別の動作を行う。   When a retransmission timeout occurs, the AEN mechanism 14 investigates whether the cause of the timeout is data loss or ACK loss / delay. As a result, when the cause of the retransmission timeout is known, the AEN mechanism performs different operations for data loss and ACK loss or delay.

まず、AENの動作概要を説明する。図8の(a)はデータロスにより再送タイムアウトが発生した場合、(b)はACKのロスまたは遅延により再送タイムアウトが発生した場合のAENの動作例をそれぞれ示す。図8において、RTOは再送タイムアウト時間、RTTはラウンドトリップ時間を示す。まず、時刻t0に送信したデータがロスまたは、送信したデータに対するACKがロス/遅延し、時刻t1に再送タイムアウトが発生すると、再送タイムアウトの原因を調査するために、プローブパケットを送信する。ここで、このプローブパケット(以下、AEN-Proveと呼ぶ)として、送信側がそれまでに送信しているデータの内、最大のシーケンス番号を持つデータを利用する。つまり、最新のシーケンス番号を持つ送信済みデータを再送することになる。なお、プローブパケットは、確実に送信するために複数個出すことも可能である。AEN-Proveを受け取った受信側は、それまでに連続して受信したデータの最大のシーケンス番号を示すACK(以下、AEN-ACKと呼ぶ)を送信側に返す。時刻t2でAEN−ACKを受信した送信側は、AEN-Proveのシーケンス番号PsegとAEN-ACKが通知するそれまでに連続して受信したデータの最大シーケンス番号Packを利用して、図9に示すように再送タイムアウトの原因がデータロスであるのか、そえともACKのロスまたは遅延であるのかを判断する。図9において、PsegはAEN-Probeのシーケンス番号、PackはAEN-ACKが通知するシーケンス番号を示す。図9より、PsegがPackよりも大きければ(Pseg>Pack)、データのロスが発生していると判断し、PsegがPack以下であれば(Pseg<=Pack)、ACKのロスまたは遅延が発生していると判断する。 First, an outline of AEN operation will be described. FIG. 8A shows an example of AEN operation when a retransmission timeout occurs due to data loss, and FIG. 8B shows an AEN operation example when a retransmission timeout occurs due to ACK loss or delay. In FIG. 8, RTO indicates a retransmission timeout time, and RTT indicates a round trip time. First, when the data transmitted at time t0 is lost or the ACK for the transmitted data is lost / delayed and a retransmission timeout occurs at time t1, a probe packet is transmitted to investigate the cause of the retransmission timeout. Here, as the probe packet (hereinafter referred to as AEN-Prove), data having the maximum sequence number among the data transmitted by the transmission side is used. That is, the transmitted data having the latest sequence number is retransmitted. It should be noted that a plurality of probe packets can be sent out for reliable transmission. The receiving side that has received AEN-Prove returns an ACK (hereinafter referred to as AEN-ACK) indicating the maximum sequence number of the data that has been received so far to the transmitting side. The transmitting side that has received the AEN-ACK at time t2 uses the sequence number Pseg of AEN-Prove and the maximum sequence number Pack of data that has been received continuously until then, as shown in FIG. In this way, it is determined whether the cause of the retransmission timeout is a data loss or an ACK loss or delay. In FIG. 9, Pseg indicates the sequence number of AEN-Probe, and Pack indicates the sequence number notified by AEN-ACK. From FIG. 9, if Pseg is larger than Pack (Pseg> Pack), it is judged that data loss has occurred. If Pseg is less than Pack (Pseg <= Pack), ACK loss or delay occurs. Judge that you are doing.

シーケンス番号を用いて判定を行った結果、再送タイムアウトの原因がデータロスである場合、AEN-ACKの通知するシーケンス番号が示すロスしたデータを再送し(図8(a)の時刻t3)、輻輳ウインドウサイズcwndを1セグメントサイズ分にし、スロースタートアルゴリズムで送信を再開する。ただし、スロースタート閾値はネットワーク帯域測定機構から得られる帯域から導出する測定ウインドウサイズに設定する。一方、再送タイムアウトの原因がACKのロスまたは遅延である場合、輻輳ウインドウサイズとスロースタート閾値はそのままの値で、新しい続きのデータ送信を開始する(図8(b)の時刻t3)。   As a result of the determination using the sequence number, if the cause of retransmission timeout is data loss, the lost data indicated by the sequence number notified by AEN-ACK is retransmitted (time t3 in FIG. 8 (a)), and congestion occurs. The window size cwnd is set to one segment size, and transmission is restarted with the slow start algorithm. However, the slow start threshold value is set to the measurement window size derived from the bandwidth obtained from the network bandwidth measurement mechanism. On the other hand, when the cause of the retransmission timeout is the loss or delay of ACK, the congestion window size and the slow start threshold value remain unchanged, and new continuous data transmission is started (time t3 in FIG. 8B).

また、上記の判定において、TCP(Original)の輻輳制御機構(図1の10)では、再送タイムアウトの原因がデータロスであった場合、輻輳ウインドウサイズcwnd_renoは1セグメントサイズ分に設定する。再送タイムアウトの原因がACKのロスまたは遅延である場合は、cwnd_renoの値は変化させない。   In the above determination, in the congestion control mechanism of TCP (Original) (10 in FIG. 1), when the cause of retransmission timeout is data loss, the congestion window size cwnd_reno is set to one segment size. When the cause of retransmission timeout is loss or delay of ACK, the value of cwnd_reno is not changed.

次に、AENの詳細な動作について図10の状態遷移図を用いて説明する。図10では、ある状態から別の状態に遷移するときの条件とその時に行う動作を(1)から(14)までの番号で示している。図10の(1)から(14)までの項目において、上段はある状態から別の状態に遷移するための条件、下段はある状態から別の状態に遷移する際に行う動作をそれぞれ示す。また、図10において、PsegはAEN-Probeのシーケンス番号、PackはAEN-ACKが通知するシーケンス番号、NackはAEN-ACKではない通常のACKのシーケンス番号を示す。   Next, the detailed operation of AEN will be described using the state transition diagram of FIG. In FIG. 10, conditions when transitioning from one state to another state and operations performed at that time are indicated by numbers from (1) to (14). In the items from (1) to (14) in FIG. 10, the upper stage shows the conditions for transitioning from one state to another state, and the lower stage shows the operations performed when transitioning from one state to another state. In FIG. 10, Pseg indicates the sequence number of AEN-Probe, Pack indicates the sequence number notified by AEN-ACK, and Nack indicates the sequence number of normal ACK that is not AEN-ACK.

ここで、AENで利用するプローブ用のデータ(AEN-Probe)およびプローブに応答するACK(AEN-ACK)は、通常のデータおよびACKとは異なることを示すために、TCPヘッダの予約フィールド(6ビット)の内1ビットを利用することを考える。つまり、TCPヘッダの予約フィールドの1ビットに1が立っていれば、このパケットはAENで利用されるパケット(AEN_ProbeまたはAEN_ACK)であることを示す。なお、通常のTCP通信では、TCPヘッダの予約フィールドの値はすべて0となっている。 Here, in order to indicate that the probe data (AEN-Probe) used in AEN and the ACK (AEN-ACK) in response to the probe are different from the normal data and ACK, a reserved field (6 in the TCP header) is used. Consider using one bit). That is, if 1 is set in 1 bit of the reserved field of the TCP header, this indicates that this packet is a packet (AEN_Probe or AEN_ACK) used in AEN. In normal TCP communication, the values of the reserved fields in the TCP header are all 0.

図10において、再送タイムアウトが発生していない時の通信状態をNORMAL_STATE20、AEN-Probeを送信した後の状態をAEN-ACK_WAIT21、AEN-ACK_WAIT21の状態で重複ACKを受信した後の状態をDUP-ACK_RCVD22とそれぞれ呼ぶ。ただし、図10において、図を分かり易く書く都合上NORMAL_STATE20を2ヶ所に書いているが、同じものを示す。まず、NORMAL_STATE20の状態からAEN-ACK_WAIT21の状態に遷移する場合を示す。NORMAL_STATE20の状態で再送タイムアウトが発生するとAEN-Probeを送信しAEN-ACK_WAIT21状態に遷移する(1)。次に、AEN-ACK_WAIT21の状態から遷移しない場合を示す。AEN-ACK_WAIT21の状態で、Pseg>Nackとなる通常のACKを受信した場合、何もせず(ACKは無視する)状態は遷移しない(2)。次に、AEN-ACK_WAIT21の状態から、NORMAL_STATE20の状態に戻る場合を示す。AEN-ACK_WAIT21の状態で、Pseg<=PackとなるAEN-ACKを受信した場合、ACKのロスまたは遅延が発生したと判断し、続きの新しいデータの送信を開始しNORMAL_STATE20に遷移する(3)。AEN-ACK_WAIT21の状態で、Pseg>PackとなるAEN-ACKを受信した場合、データがロスしたと判断し、AEN-ACKが示すロスしたデータを再送すると同時にスロースタートアルゴリズムを開始し、NORMAL_STATE20に遷移する(4)。AEN-ACK_WAIT21の状態で、AEN-Probeが再送タイムアウトを起こした場合、到達未確認データを再送すると同時にスロースタートアルゴリズムを開始し、NORMAL_STATE20に遷移する(5)。AEN-ACK_WAIT21の状態で、Pseg<=Nackとなる通常のACKを受信した場合、タイムアウトを起こしたデータはすでに受信されていると判断し、新しい続きのデータの送信をただちに開始し、NORMAL_STATE20に遷移する(6)。次に、AEN-ACK_WAIT21の状態から、DUP-ACK_RCVD22の状態に遷移する場合を示す。AEN-ACK_WAIT21の状態で、再送タイムアウトを起こしたデータ以外のデータに対する重複ACKを受信した場合、何もせず(ACKは無視する)DUP-ACK_RCVD22に遷移する(7)。次に、DUP-ACK_RCVD22の状態から遷移しない場合を示す。DUP-ACK_RCVD22の状態で、Pseg>Nackとなる通常のACKを受信した場合、何もせず(ACKは無視する)状態も遷移しない(8)。DUP-ACK_RCVD22の状態で、再送タイムアウトを起こしたデータ以外のデータに対する3つに達しない重複ACKを受信した場合、何もせず(ACKは無視する)状態も遷移しない(9)。DUP-ACK_RCVD22の状態で、再送タイムアウトを起こしたデータ以外のデータに対する3つに達する重複ACKを受信した場合、ただちに重複ACKが示すロスしたデータを再送し状態は遷移しない(10)。最後に、DUP-ACK_RCVD22の状態からNORMAL_STATE20の状態に遷移する場合を示す。DUP-ACK_RCVD22の状態で、Pseg<=PackとなるAEN-ACKを受信した場合、ACKのロスまたは遅延が発生したと判断し、続きの新しいデータの送信を開始しNORMAL_STATE20に遷移する(11)。DUP-ACK_RCVD22の状態で、Pseg>PackとなるAEN-ACKを受信した場合、データがロスしたと判断し、AEN-ACKが示すロスしたデータを再送すると同時にスロースタートアルゴリズムを開始し、NORMAL_STATE20に遷移する(12)。DUP-ACK_RCVD22の状態で、AEN-Probeが再送タイムアウトを起こした場合、到達未確認データを再送すると同時にスロースタートアルゴリズムを開始し、NORMAL_STATE20に遷移する(13)。DUP-ACK_RCVD22の状態で、Pseg<=Nackとなる、通常のACKを受信した場合、タイムアウトを起こしたデータはすでに受信されていると判断し、新しい続きのデータの送信を開始し、NORMAL_STATE20に遷移する(14)。 In FIG. 10, the communication state when retransmission timeout has not occurred is NORMAL_STATE 20, the state after transmitting AEN-Probe is AEN-ACK_WAIT 21, and the state after receiving a duplicate ACK in the state of AEN-ACK_WAIT 21 is DUP-ACK_RCVD22. Respectively. However, in FIG. 10, NORMAL_STATE 20 is written in two places for the sake of easy understanding of the drawing, but the same thing is shown. First, a case where the state transitions from the state of NORMAL_STATE 20 to the state of AEN-ACK_WAIT 21 is shown. When a retransmission timeout occurs in the state of NORMAL_STATE 20, an AEN-Probe is transmitted and a transition is made to the AEN-ACK_WAIT 21 state (1). Next, a case where no transition is made from the state of AEN-ACK_WAIT21 is shown. When a normal ACK with Pseg> Nack is received in the state of AEN-ACK_WAIT21, nothing is done (ACK is ignored), and the state does not change (2). Next, a case where the state returns from the state of AEN-ACK_WAIT21 to the state of NORMAL_STATE20 is shown. When an AEN-ACK with Pseg <= Pack is received in the state of AEN-ACK_WAIT21, it is determined that an ACK loss or delay has occurred, transmission of new data is started, and transition is made to NORMAL_STATE20 (3). When AEN-ACK with Pseg> Pack is received in the state of AEN-ACK_WAIT21, it is determined that the data has been lost, the slow data indicated by AEN-ACK is retransmitted, and at the same time, the slow start algorithm is started and transition to NORMAL_STATE20 (4). When the AEN-Probe causes a retransmission timeout in the state of AEN-ACK_WAIT21, the slow start algorithm is started simultaneously with retransmitting the unacknowledged data, and transits to NORMAL_STATE20 (5). When a normal ACK with Pseg <= Nack is received in the state of AEN-ACK_WAIT21, it is determined that the data that has timed out has already been received, and transmission of new data is started immediately, and transition to NORMAL_STATE20 (6). Next, a case will be described in which a transition is made from the state of AEN-ACK_WAIT 21 to the state of DUP-ACK_RCVD 22. If a duplicate ACK is received for data other than the data that has caused retransmission timeout in the state of AEN-ACK_WAIT21, nothing is done (ACK is ignored), and the process transits to DUP-ACK_RCVD22 (7). Next, a case where there is no transition from the state of DUP-ACK_RCVD 22 is shown. When a normal ACK with Pseg> Nack is received in the state of DUP-ACK_RCVD 22, nothing is done (the ACK is ignored), and the state does not change (8). In the state of DUP-ACK_RCVD22, when no more than three duplicate ACKs are received for data other than the data that has caused retransmission timeout, nothing is done (ACK is ignored), and the state does not change (9). In the state of DUP-ACK_RCVD22, when three duplicate ACKs are received for data other than the data that has caused retransmission timeout, the lost data indicated by the duplicate ACK is immediately retransmitted and the state does not change (10). Finally, a case where a transition from the state of DUP-ACK_RCVD 22 to the state of NORMAL_STATE 20 is shown. If an AEN-ACK with Pseg <= Pack is received in the state of DUP-ACK_RCVD 22, it is determined that an ACK loss or delay has occurred, transmission of new data is started, and a transition is made to NORMAL_STATE 20 (11). When AEN-ACK with Pseg> Pack is received in the state of DUP-ACK_RCVD22, it is determined that the data has been lost, the lost data indicated by AEN-ACK is retransmitted, and at the same time, the slow start algorithm is started and transition to NORMAL_STATE20 (12). If the AEN-Probe causes a retransmission timeout in the state of DUP-ACK_RCVD 22, the slow start algorithm is started simultaneously with the retransmission of unreachable data, and transition is made to NORMAL_STATE 20 (13). When a normal ACK is received with Pseg <= Nack in the state of DUP-ACK_RCVD22, it is determined that the data that has timed out has already been received, starts transmission of new data, and transitions to NORMAL_STATE20 (14).

次に、図10において、(1)から(14)までの状態遷移を行う際の、輻輳ウインドウサイズとスロースタート閾値の設定について説明する。まず、(4)(5)(12)(13)の場合は、輻輳ウインドウサイズを1つ分のデータセグメントサイズ、スロースタート閾値を帯域値から得られた測定ウインドウサイズに設定する。その他の場合については、輻輳ウインドウサイズとスロースタート閾値は変化させず状態遷移前の値を保持させる。   Next, setting of the congestion window size and the slow start threshold when performing the state transition from (1) to (14) in FIG. 10 will be described. First, in cases (4), (5), (12), and (13), the congestion window size is set to one data segment size, and the slow start threshold is set to the measurement window size obtained from the band value. In other cases, the congestion window size and the slow start threshold are not changed, and the values before the state transition are held.

また、上記AENの輻輳ウインドウサイズとスロースタート閾値の設定において、ACKロスまたは遅延が判明した時は、再送タイムアウトが発生する前の値を保持させている。しかしながら、プローブパケットを送信している間にネットワークの状態が急変(帯域が減少/増加)している可能性ある。このような場合においては、ACKロスまたは遅延が発生後の輻輳ウインドウサイズとスロースタート閾値を、ネットワークの帯域から得られた測定ウインドウサイズを利用して設定させることで、対応可能となる。   In addition, when the AEN congestion window size and slow start threshold are set, when an ACK loss or delay is found, the values before the occurrence of retransmission timeout are held. However, there is a possibility that the state of the network suddenly changes (bandwidth decreases / increases) while transmitting the probe packet. In such a case, the congestion window size after the occurrence of ACK loss or delay and the slow start threshold can be set by using the measurement window size obtained from the network bandwidth.

AEN機構において、AEN-ProbeとAEN_ACKはTCPヘッダの予約フィールド(6ビット)を使って通常のデータおよびACKと区別しているが、本発明方式は予約フィールドを利用しない場合においても動作することが可能である。この時、図10において、(1)(3)(4)(5)のみ利用すればよい。この場合、受信側はAENを扱うための実装の変更を行う必要がなく、送信側のみの変更で済む。   In the AEN mechanism, AEN-Probe and AEN_ACK are distinguished from normal data and ACK by using the reserved field (6 bits) in the TCP header, but the method of the present invention can operate even when the reserved field is not used. It is. At this time, only (1), (3), (4), and (5) are used in FIG. In this case, the receiving side does not need to change the implementation for handling AEN, and only the transmitting side needs to be changed.

上記までに説明した各機構の送信開始から送信終了までの動作について図11を利用して説明する。まず始めに、通信を開始するため、送信側と受信側の間にコネクションを設定する(S101)。コネクション設定が完了すると(C101)、データ送信を開始する(S102)。データ送信が開始されると、ACKを受信する毎にネットワーク帯域測定機構モジュール30によりネットワークの利用可能帯域を測定し、LWC機構モジュール31とCWS機構モジュール32の測定ウインドウサイズ計算処理(S103、S106)に測定帯域を通知する。データ送信処理(S102)を行う際に利用する輻輳ウインドウサイズの設定は、3つ以上の重複ACKにより判明するデータロスおよび再送タイムアウトが発生したとき以外は常にLWC機構モジュール31によって行われる。LWC機構モジュール31では、測定ウインドウサイズ計算処理(S103)から得られた測定ウインドウサイズとTCP(Original)の輻輳ウインドウサイズ設定処理(S104)から得られるTCP Renoに基づく輻輳ウインドウサイズを足して、送信ウインドウサイズを設定する(S105)。送信側はこの処理(S105)で得られた輻輳ウインドウサイズを用いて送信処理を行う。もし、3つの重複ACKを受信しデータロスを検出すると(C102)、CWS機構モジュール32において、測定ウインドウサイズ計算処理(S106)から得られる測定ウインドウサイズを利用して、スロースタート閾値と輻輳ウインドウサイズの設定を行う(S107)。CWS機構の処理が完了すると(C103)、データ再送処理を行い続きのデータ送信を再開する(S102)。また、データ送信中に、再送タイムアウトが発生すると(C104)、AEN機構モジュール33において、まず再送タイムアウトの原因がデータロスかまたはACKロス/遅延なのかを判定する(S108)。再送タイムアウトの原因の判明後、スロースタート閾値と輻輳ウインドウサイズの設定を行う(S109)。AEN機構の処理が完了すると(C105)、データロスが再送タイムアウトの原因であれば、ロスしたデータの再送後、データ送信を再開する(S102)。ACKロス/遅延が再送タイムアウトの原因であれば、ただちに新しい続きのデータ送信を再開する(S102)。すべてのデータ送信が完了すると(C106)、コネクションを切断し(S110)、通信を終了する。   The operation from the transmission start to the transmission end of each mechanism described above will be described with reference to FIG. First, in order to start communication, a connection is set between the transmission side and the reception side (S101). When the connection setting is completed (C101), data transmission is started (S102). When data transmission is started, every time an ACK is received, the network bandwidth measurement mechanism module 30 measures the available bandwidth of the network, and the measurement window size calculation processing of the LWC mechanism module 31 and the CWS mechanism module 32 (S103, S106) Notify the measurement band. The setting of the congestion window size used when performing the data transmission process (S102) is always performed by the LWC mechanism module 31 except when a data loss and a retransmission time-out determined by three or more duplicate ACKs occur. The LWC mechanism module 31 adds the measurement window size obtained from the measurement window size calculation process (S103) and the congestion window size based on the TCP Reno obtained from the TCP (Original) congestion window size setting process (S104) to transmit A window size is set (S105). The transmission side performs transmission processing using the congestion window size obtained in this processing (S105). If three duplicate ACKs are received and data loss is detected (C102), the CWS mechanism module 32 uses the measurement window size obtained from the measurement window size calculation process (S106), and the slow start threshold and the congestion window size. Is set (S107). When the process of the CWS mechanism is completed (C103), the data retransmission process is performed and the subsequent data transmission is resumed (S102). When a retransmission timeout occurs during data transmission (C104), the AEN mechanism module 33 first determines whether the cause of the retransmission timeout is data loss or ACK loss / delay (S108). After determining the cause of the retransmission timeout, the slow start threshold and the congestion window size are set (S109). When the processing of the AEN mechanism is completed (C105), if the data loss is the cause of the retransmission timeout, the data transmission is resumed after the lost data is retransmitted (S102). If the ACK loss / delay is the cause of the retransmission timeout, the new continuous data transmission is immediately resumed (S102). When all data transmission is completed (C106), the connection is disconnected (S110), and the communication is terminated.

以上、本発明方式によれば、広帯域かつ高遅延な無線ネットワークにおけるTCP通信を高速化することが可能である。さらに、同様なネットワーク特性を持つ、広帯域かつ高遅延な有線ネットワーク(ギガビットネットワーク等)においても、本発明方式は利用可能である。   As described above, according to the method of the present invention, it is possible to increase the speed of TCP communication in a broadband and high-delay wireless network. Furthermore, the system of the present invention can also be used in a wide-band and high-delay wired network (gigabit network or the like) having similar network characteristics.

本発明のTCP輻輳制御方式の構成図Configuration diagram of TCP congestion control method of the present invention サンプル帯域の計算式Sample bandwidth formula 利用可能帯域の計算式Available bandwidth formula 測定ウインドウサイズの計算式Calculation window size formula LWCによる輻輳ウインドウサイズの計算式Calculation formula of congestion window size by LWC スロースタートアルゴリズムと輻輳制御アルゴリズムに基づく輻輳ウインドウサイズの設定Congestion window size setting based on slow start algorithm and congestion control algorithm CWSによる輻輳ウインドウサイズの設定Setting of congestion window size by CWS AENによる再送タイムアウト原因の検出とその後の動作例Detection of retransmission timeout cause by AEN and subsequent operation example AENにおける再送タイムアウト原因の判定内容Determination contents of cause of retransmission timeout in AEN AEN動作の状態遷移図State transition diagram of AEN operation 本発明のTCP輻輳制御方式の動作Operation of the TCP congestion control method of the present invention

符号の説明Explanation of symbols

10: TCP(Original)の輻輳制御機構
11: ネットワーク帯域測定機構
12: LWC(Lift Window Control)機構
13: CWS(Congestion Window Setting)機構
14: AEN(Acknowledgement Error Notification)機構
20: AENが動作していない通常の通信状態
21: AEN-Probe送出後、AEN-ACKを待っている状態
22: AEN-Probe送出後、AEN-ACKを待っている状態で重複ACKを受信した後の状態
30: ネットワーク帯域測定機構モジュール
31: LWC機構モジュール
32: CWS機構モジュール
33: AEN機構モジュール
10: TCP (Original) congestion control mechanism 11: Network bandwidth measurement mechanism 12: LWC (Lift Window Control) mechanism 13: CWS (Congestion Window Setting) mechanism 14: AEN (Acknowledgement Error Notification) mechanism 20: AEN is operating Normal communication state 21: Waiting for AEN-ACK after sending AEN-Probe 22: State after receiving duplicate ACK after sending AEN-Probe and waiting for AEN-ACK 30: Network bandwidth Measuring mechanism module 31: LWC mechanism module 32: CWS mechanism module 33: AEN mechanism module

Claims (6)

通信中に通信ネットワークの帯域を測定し、測定した値から得られる、ネットワーク帯域を最大限利用できるウインドウサイズ(以下、測定ウインドウサイズと呼ぶ)を用いて輻輳ウインドウサイズの増加率を大きくする方式と、測定ウインドウサイズを利用して重複ACKにより判明するデータロス後のTCPの輻輳ウインドウサイズおよびスロースタート閾値を設定する方式と、再送タイムアウト後にデータセグメントの確認応答であるACKセグメントのロスおよび遅延を検出することによりデータの誤再送を防ぐと共に輻輳ウインドウサイズを減少させないことで、送信レートの低下を防ぐ方式からなる、広帯域かつ高遅延な無線ネットワークにおけるTCP通信を高速化することを特徴とするTCP輻輳制御方式。   A method of measuring the bandwidth of a communication network during communication and increasing the increase rate of the congestion window size using a window size (hereinafter referred to as a measurement window size) that can be obtained from the measured value to the maximum possible use of the network bandwidth; , A method to set the TCP congestion window size and slow start threshold after data loss found by duplicate ACK using the measurement window size, and detect the loss and delay of the ACK segment that is the acknowledgment of the data segment after retransmission timeout TCP congestion characterized by speeding up TCP communication in a wideband and high-delay wireless network, which prevents the retransmission of data by preventing erroneous retransmission of data and reducing the congestion window size control method. 請求項1において、TCPの輻輳ウインドウサイズの増加アルゴリズムである、スロースタートアルゴリズムと輻輳回避アルゴリズムに基づく輻輳ウインドウサイズの値に、通信中の測定帯域から得られた測定ウインドウサイズを足すことで、広帯域かつ高遅延ネットワークにおいて、通信開始時からの輻輳ウインドウの増加を加速させることを特徴とするTCP輻輳制御方式。   The broadband window according to claim 1, wherein the measurement window size obtained from the measurement band during communication is added to the value of the congestion window size based on the slow start algorithm and the congestion avoidance algorithm, which is an algorithm for increasing the congestion window size of TCP. A TCP congestion control method characterized by accelerating the increase in congestion window from the start of communication in a high-latency network. 請求項1において、ネットワーク帯域の測定を行うもので、帯域をACKの到着間隔とACKが通知するデータ受信量を利用して測定し、計測した帯域と過去の帯域およびネットワーク状況に合わせて動的に変化させる平滑化係数を利用して現在の帯域値を導出するため、様々なネットワーク環境に対応可能なことを特徴とするTCP輻輳制御方式。   2. The network bandwidth according to claim 1, wherein the bandwidth is measured using an ACK arrival interval and a data reception amount notified by the ACK, and dynamically according to the measured bandwidth, the past bandwidth, and the network status. A TCP congestion control method characterized by being able to cope with various network environments because the current bandwidth value is derived using the smoothing coefficient that changes. 請求項1において、再送タイムアウト後の輻輳ウインドウサイズとスロースタート閾値の設定を行うもので、再送タイムアウトの発生後、プローブパケットを送信し、その応答ACKからタイムアウトの原因がデータのロスかそれともACKのロスまたは遅延によるものかを判定し、再送タイムアウトの原因がデータのロスであれば、ネットワークが重い輻輳状態であると判断し、該当データの再送および輻輳ウインドウサイズを初期値に設定し、またスロースタート閾値を測定ウインドウサイズに設定した後に送信を再開し、再送タイムアウトの原因がACKロスまたは遅延であるならば、該当データの送信は行わず輻輳ウインドウサイズおよびスロースタート閾値を再送タイムアウト前の値に設定することで、ACKのロスまたは遅延により再送タイムアウトが発生した時の通信を高速化することを特徴とするTCP輻輳制御方式。   In Claim 1, the congestion window size after retransmission timeout and the slow start threshold value are set. After retransmission timeout occurs, a probe packet is transmitted, and from the response ACK, the cause of timeout is data loss or ACK. If the cause of the retransmission timeout is data loss, it is determined that the network is in a heavy congestion state, and the retransmission and congestion window size of the corresponding data is set to the initial value and thrown. If transmission is restarted after setting the start threshold to the measurement window size and the cause of retransmission timeout is ACK loss or delay, the corresponding data is not transmitted and the congestion window size and slow start threshold are set to the values before retransmission timeout. By setting this, retransmission time may be lost due to ACK loss or delay. TCP Congestion Control, characterized in that the speed of communication when the bets has occurred. 請求項4において、再送タイムアウトの原因調査に利用するプローブパケットとして、データ送信側がタイムアウト発生までに送信したデータの内、最大のシーケンス番号を持つデータを利用し、データ送信側主導でデータ受信側にそれまでに受信したデータの最大シーケンス番号を通知させることを特徴とするTCP輻輳制御方式。   In claim 4, as a probe packet used for investigating the cause of retransmission timeout, data having the largest sequence number among data transmitted by the data transmission side before the occurrence of the timeout is used, and the data transmission side leads the data reception side. A TCP congestion control method that notifies the maximum sequence number of data received so far. 請求項4において、データのロスとACKのロスまたは遅延を判定する際、プローブパケットのシーケンス番号(以下、Psegと呼ぶ)と、プローブパケットに対するACKにより通知されるデータ受信側がそれまでに受信した最新のデータのシーケンス番号(以下、Packと呼ぶ)を利用し、PsegがPackよりも大きい値(Pseg>Pack)であれば、データのロスが発生していると判断し、PsegがPack以下の値(Pseg<=Pack)であれば、ACKのロスまたは遅延が発生していると判断することを特徴とするTCP輻輳制御方式。
5. When determining the loss of data and the loss or delay of ACK in claim 4, the sequence number of the probe packet (hereinafter referred to as Pseg) and the latest data received by the data receiver notified by ACK for the probe packet. If the data sequence number (hereinafter referred to as Pack) is used and Pseg is greater than Pack (Pseg> Pack), it is determined that data loss has occurred and Pseg is less than Pack. If (Pseg <= Pack), it is determined that an ACK loss or delay has occurred.
JP2004362297A 2004-12-15 2004-12-15 TCP congestion control method for broadband, high-delay wireless networks Expired - Fee Related JP4599554B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004362297A JP4599554B2 (en) 2004-12-15 2004-12-15 TCP congestion control method for broadband, high-delay wireless networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004362297A JP4599554B2 (en) 2004-12-15 2004-12-15 TCP congestion control method for broadband, high-delay wireless networks

Publications (2)

Publication Number Publication Date
JP2006173961A JP2006173961A (en) 2006-06-29
JP4599554B2 true JP4599554B2 (en) 2010-12-15

Family

ID=36674249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004362297A Expired - Fee Related JP4599554B2 (en) 2004-12-15 2004-12-15 TCP congestion control method for broadband, high-delay wireless networks

Country Status (1)

Country Link
JP (1) JP4599554B2 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101523828B (en) 2006-10-05 2012-10-03 株式会社Ntt都科摩 Communication system, communication device, and communication method
JP4793580B2 (en) * 2006-12-04 2011-10-12 日本電気株式会社 Protocol type determination method, system and program thereof
JP4778453B2 (en) * 2007-01-24 2011-09-21 株式会社エヌ・ティ・ティ・ドコモ Communication terminal, congestion control method, and congestion control program
JP4367505B2 (en) 2007-03-06 2009-11-18 日本電気株式会社 Communication terminal, communication system, congestion control method, and congestion control program
JP4942040B2 (en) * 2007-07-18 2012-05-30 国立大学法人電気通信大学 Communication apparatus and communication method
CN101146033B (en) * 2007-10-31 2010-04-14 重庆邮电大学 A Method for Improving the Performance of Wireless Ad Hoc Networks Based on Cross-Layer Cooperation Mechanism
JP2009231857A (en) 2008-03-19 2009-10-08 Sony Corp Communication control apparatus, communication control method and communication control program
JP6101046B2 (en) * 2012-10-31 2017-03-22 日本放送協会 Packet transmission apparatus and program thereof
JP6515436B2 (en) * 2014-01-07 2019-05-22 株式会社リコー Transmission system, transmission terminal, and program
EP2961113B1 (en) * 2014-06-24 2017-05-24 Alcatel Lucent Control of protection switching in a communication network
CN111163120A (en) * 2018-11-08 2020-05-15 阿里巴巴集团控股有限公司 Data storage and transmission method and device for distributed database, and storage medium
CN115941617A (en) * 2022-12-08 2023-04-07 邵阳学院 A data transmission control method based on long delay and high bit error rate environment
CN119728030B (en) * 2024-12-17 2025-10-17 广西电网有限责任公司 RDMA storage network optimization method based on Go-Back-N retransmission mechanism

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3044658B1 (en) * 1999-01-18 2000-05-22 株式会社超高速ネットワーク・コンピュータ技術研究所 Flow control method
JP2001308939A (en) * 2000-02-17 2001-11-02 Fujitsu Ltd Communication system and method for controlling throughput
JP2001352339A (en) * 2000-06-07 2001-12-21 Nippon Telegr & Teleph Corp <Ntt> Communications system
JP2002152308A (en) * 2000-11-09 2002-05-24 Nec Corp Data communication system, data communication method, and recording medium with communication program recorded therein
JP2003198612A (en) * 2001-12-26 2003-07-11 Nippon Telegr & Teleph Corp <Ntt> File transfer method in packet communication network

Also Published As

Publication number Publication date
JP2006173961A (en) 2006-06-29

Similar Documents

Publication Publication Date Title
US10064073B2 (en) Optimizing bandwidth of cognitive radios
US7460472B2 (en) System and method for transmitting information in a communication network
US6535482B1 (en) Congestion notification from router
US8605590B2 (en) Systems and methods of improving performance of transport protocols
US7564792B2 (en) Transparent optimization for transmission control protocol flow control
CN103986548B (en) A kind of method and terminal for determining packet loss reason
US7489637B2 (en) Method of enhancing the efficiency of data flow in communication systems
JP5020076B2 (en) High performance TCP suitable for low frequency ACK system
JP4599554B2 (en) TCP congestion control method for broadband, high-delay wireless networks
Samaraweera et al. Reinforcement of TCP error recovery for wireless communication
KR100912178B1 (en) Congestion Control Method and Recording Media in Wireless Environment
Francis et al. Techniques for enhancing TCP performance in wireless networks
US20070076598A1 (en) Method and apparatus for preventing activation of a congestion control process
CN104580171B (en) Transmission method, device and system of TCP (Transmission control protocol)
Bassil TCP congestion control scheme for wireless networks based on tcp reserved field and snr ratio
Patel et al. TCP over Wireless Networks: Issues, Challenges and Survey of Solutions
Molia et al. A conceptual exploration of TCP variants
Ghaleb-Seddik et al. Coupling loss and delay differentiation to enhance TCP performance within wireless multi-hop ad-hoc networks
Kim et al. TCP CAE: an improved congestion control using comparative ACK-based estimator
Rani et al. Cross layer based schemes for improving the performance of TCP in wireless networks
KR20050013777A (en) Method for controlling congestion of TCP for reducing the number of retransmission timeout
Ahmed et al. Enhancing TCP performance in mobile ad hoc networks
Sreekumari et al. A Timestamp based Detection of fast retransmission loss for improving the performance of TCP NewReno over wireless networks
Lin et al. Enhanced Westwood+ TCP for wireless/heterogeneous networks
Ezil Sam Leni et al. Bandwidth Estimation in Wireless Networks (TCP-bwiw): to Improve TCP Performance in Wireless Communication Networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071213

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20071213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100624

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

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

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

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4599554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees