JP2011223186A - Congestion controller and congestion control method - Google Patents

Congestion controller and congestion control method Download PDF

Info

Publication number
JP2011223186A
JP2011223186A JP2010088476A JP2010088476A JP2011223186A JP 2011223186 A JP2011223186 A JP 2011223186A JP 2010088476 A JP2010088476 A JP 2010088476A JP 2010088476 A JP2010088476 A JP 2010088476A JP 2011223186 A JP2011223186 A JP 2011223186A
Authority
JP
Japan
Prior art keywords
window size
packet
flow
size information
packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010088476A
Other languages
Japanese (ja)
Other versions
JP5518549B2 (en
Inventor
Ryosuke Yokobayashi
亮介 横林
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.)
Chugoku Electric Power Co Inc
Original Assignee
Chugoku Electric Power Co Inc
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 Chugoku Electric Power Co Inc filed Critical Chugoku Electric Power Co Inc
Priority to JP2010088476A priority Critical patent/JP5518549B2/en
Publication of JP2011223186A publication Critical patent/JP2011223186A/en
Application granted granted Critical
Publication of JP5518549B2 publication Critical patent/JP5518549B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a congestion controller and a congestion control method capable of producing an effect stably and efficiently, and always minimizing the number of flows where a communication rate drops sharply.SOLUTION: The congestion controller 1 comprises window size addition means 7 for adding the current window size, as information, to the head packet of a packet group for the window size, window size information detection means 3 for detecting the information of the window size added to the head packet, flow selection means 4 for selecting a flow containing the largest window size from the window size information detected by the window size information detection means 3, packet discard means 6 for discarding other packet than the head packet of the flow selected by the flow selection means 4, and a control unit (control means) 5 which controls each means. The congestion controller 1 is connected with an edge node 9 by a network 8 through an interface 2.

Description

本発明は、輻輳制御装置及び輻輳制御方法に関し、さらに詳しくは、TCP同期現象を効率的に回避する輻輳制御装置及び輻輳制御方法に関するものである。   The present invention relates to a congestion control device and a congestion control method, and more particularly to a congestion control device and a congestion control method that efficiently avoid a TCP synchronization phenomenon.

近年、低コストのTCP/IPに基づく汎用通信機器は、インターネットのみならず、企業内の閉域ネットワークへも適用が進んでいる。そして、ネットワークに様々なアプリケーションが取り込まれるに従って、輻輳への対策はますます重要となってきている。輻輳防止のための基本的な対策は、輻輳を発生させないように、ネットワーク設備の増強を行うことであるが、経済的な理由から増強の時期を遅らせざるを得ない場合、あるいは冗長化・負担分散化された通信経路で障害が発生した場合等には、トラフィックの集中するノードで輻輳が発生する可能性が高い。このため、輻輳の発生時においても、効率的に輻輳制御を行えるような対策を行う必要がある。
そこで、大部分のアプリケーションで転送用プロトコルとして用いられているTCPは、設備容量内にトラフィックを抑制するために、通信速度を抑制する輻輳制御の機能を備えている。即ち、通信経路内のノードにおいて輻輳が発生してパケットが廃棄された場合、送信元のTCPがそれを検出し、一度に送信できるパケット数を決めるウィンドウサイズを減少させることにより、ネットワークへのパケット送出速度を抑制して輻輳を解消するものである。
In recent years, general-purpose communication devices based on low-cost TCP / IP have been applied not only to the Internet but also to closed networks in companies. And as various applications are taken into the network, countermeasures against congestion are becoming more and more important. The basic measure to prevent congestion is to increase network equipment so that congestion does not occur. However, if it is unavoidable to delay the increase for economic reasons, or redundancy / burden is required. When a failure occurs in a distributed communication path, there is a high possibility that congestion will occur at a node where traffic is concentrated. For this reason, it is necessary to take measures to efficiently perform congestion control even when congestion occurs.
Therefore, TCP, which is used as a transfer protocol in most applications, has a congestion control function that suppresses the communication speed in order to suppress traffic within the equipment capacity. That is, when congestion occurs in a node in the communication path and a packet is discarded, the TCP of the transmission source detects it and reduces the window size that determines the number of packets that can be transmitted at one time, thereby reducing the packet to the network. It suppresses the transmission speed and eliminates congestion.

一方、ルータやスイッチの多くは、バッファにおいてTail Drop方式を採用している。Tail Drop方式では、到着順にパケットをバッファに蓄積するが、輻輳によりバッファが一杯になった場合は、到着するパケットを廃棄する。このとき、到着するパケットを無作為に廃棄するため、複数のフローにわたってパケットがほぼ連続的に廃棄される(ここで、フローとは、送信側と受信側を1対1でつないでいる通信コネクションのことをいう)。そのため、複数のフローで同時にTCPの輻輳制御機能が働き、そろってウィンドウサイズを半分(もしくは1パケット)まで減少させることから、一時的に通信効率が大きく低下する。また、この状態から、一斉にウィンドウサイズを増加させることとなるが、このときバッファ内のパケット量が減少しており、これに伴い、RTT(Round Trip Time)も低下していることから、ウィンドウサイズの増加は急激となる。このため、再び輻輳に陥り、パケット廃棄が発生する。この現象はTCP同期と呼ばれ、通信効率の低下を招くという問題がある。   On the other hand, many routers and switches employ a tail drop method for buffers. In the tail drop method, packets are stored in the buffer in the order of arrival, but when the buffer becomes full due to congestion, the arriving packet is discarded. At this time, since the arriving packets are randomly discarded, the packets are discarded almost continuously over a plurality of flows (here, the flow is a communication connection in which the transmission side and the reception side are connected one-to-one). ). For this reason, the TCP congestion control function works simultaneously on a plurality of flows, and the window size is reduced to half (or one packet), so that the communication efficiency is greatly reduced temporarily. Also, from this state, the window size is increased all at once. At this time, the amount of packets in the buffer has decreased, and accordingly, the RTT (Round Trip Time) has also decreased. The increase in size is abrupt. As a result, congestion occurs again and packet discard occurs. This phenomenon is called TCP synchronization and has a problem of causing a reduction in communication efficiency.

このようなTCP同期を解決する方法として特許文献1には、輻輳の発生により、バッファに到達するパケットを廃棄しなければならなくなったとき、無作為な廃棄ではなく、例えば、フローA、Bのパケットのみを集中的に廃棄する(フローはパケットヘッダ情報より識別できる)。なお、廃棄するフローの選択基準は、ちょうど到達したパケットのフロー、或いは、到着レートの大きなフロー、ランダムなフローとする等である。これにより、フローC、Dのパケットがバッファに入り、そのままバッファを通過する。
フローA、Bはパケットが廃棄された後、そろってウィンドウサイズを減少させるため、これらは速度が低下するものの、それを埋め合わせるように、フローC、Dは速度を増加させるので、全体として通信効率の低下は起こらない。また、フローA、Bはその後、そろってウィンドウサイズを増加させることとなるが、このときバッファ内のパケット量は減少しておらず、RTTも低下していないため、ウィンドウサイズの増加は緩やかになる。加えて、そろって増加するフロー数も少ないため、再び輻輳に陥ることは無い。このため、TCP同期が発生せず、通信効率の低下が回避できる。
As a method for solving such TCP synchronization, Patent Document 1 discloses that when packets that reach the buffer have to be discarded due to the occurrence of congestion, instead of random discarding, for example, the flow A and B Only packets are discarded intensively (flow can be identified from packet header information). The selection criterion for the flow to be discarded is a flow of a packet that has just arrived, a flow with a high arrival rate, a random flow, or the like. As a result, packets of flows C and D enter the buffer and pass through the buffer as they are.
Since the flows A and B all decrease the window size after the packets are discarded, they are reduced in speed, but the flows C and D increase the speed so as to make up for it. The decline does not occur. Flows A and B then increase the window size together. At this time, the amount of packets in the buffer has not decreased, and the RTT has not decreased. Become. In addition, since the number of flows that increase all together is small, congestion does not occur again. For this reason, TCP synchronization does not occur and a reduction in communication efficiency can be avoided.

特開平11−146013号公報Japanese Patent Laid-Open No. 11-146013

しかし、特許文献1に開示されている従来技術にも課題がある。即ち、従来の方法は、特定のフローにパケット廃棄を集中させることで、その他のフローがパケット廃棄されずに済むようになり、TCP同期の回避という効果を生むというものであり、そのため、パケット廃棄するフロー数を最小限とし、パケット廃棄しないフロー数を最大限とすることが、効果を安定的、効率的に生じさせるために必要である。このことは、パケット廃棄するフローについては、RTO(Retransmission Time Out)の動作となり、通信速度が大きく低下してしまうという観点からも必要であるが、このような機能を持っていない。そのため、その時々で効果がばらついて安定せず、効果が低いときには、通信速度が大きく低下してフローも無駄に多く発生してしまうという課題があった。
本発明は、かかる課題に鑑みてなされたものであり、送信側のTCPにおいて、ウィンドウサイズ分のパケット群の中で、先頭パケットに、現時点のウィンドウサイズを情報として付加して、輻輳中のノードでは、先頭パケットに付加されたウィンドウサイズの情報を検出して、この情報を用いて、ウィンドウサイズ分のパケット群のうち、なるべく先頭に近いパケットを含むフローを選択して、このフローのパケットを連続的に廃棄することにより、効果を安定的・効率的に生じさせることができると共に、通信速度が大きく低下するフロー数を常に最小限にすることができる輻輳制御装置及び輻輳制御方法を提供することを目的とする。
However, the prior art disclosed in Patent Document 1 also has a problem. That is, the conventional method concentrates packet discards on a specific flow, so that other flows can be prevented from being discarded, and the effect of avoiding TCP synchronization is produced. It is necessary to minimize the number of flows to be performed and maximize the number of flows not to discard packets in order to produce the effect stably and efficiently. This is necessary from the viewpoint of RTO (Retransmission Time Out) operation for the packet discarding flow, and the communication speed is greatly reduced, but it does not have such a function. For this reason, there is a problem that the effect varies from time to time and is not stable, and when the effect is low, the communication speed is greatly reduced and a lot of flows are generated unnecessarily.
The present invention has been made in view of such a problem, and in the TCP on the transmission side, the current window size is added to the head packet as information in the packet group for the window size, and the node in the congestion state Then, the window size information added to the head packet is detected, and using this information, a flow including a packet as close to the head as possible is selected from the packet group corresponding to the window size. Provided is a congestion control device and a congestion control method that can produce effects stably and efficiently by continuously discarding, and can always minimize the number of flows whose communication speed is greatly reduced. For the purpose.

本発明はかかる課題を解決するために、請求項1は、TCP同期現象を回避する輻輳制御装置であって、ウィンドウサイズ分のパケット群の中で、先頭のパケットに現時点のウィンドウサイズを情報として付加するウィンドウサイズ付加手段と、前記先頭パケットに付加されたウィンドウサイズの情報を検出するウィンドウサイズ情報検出手段と、該ウィンドウサイズ情報検出手段により検出されたウィンドウサイズ情報を用いて、ウィンドウサイズ分のパケット群のうち、なるべく先頭に近いパケットを含むフローを選択するフロー選択手段と、該フロー選択手段により選択されたフローのパケットを連続的に廃棄するパケット廃棄手段と、前記各手段を制御する制御手段と、を備えたことを特徴とする。
TCPでは、送信側が、受信側からの確認応答パケットの返信を待たずに、一度に送付するパケット数は、ウィンドウサイズ分だけである。そのため、一つのフローにつき、廃棄されるパケット数は、最大でもウィンドウサイズ分である。この廃棄されるパケット数は、到達するウィンドウサイズ分のパケット群の中のどの位置から廃棄を開始するかによって異なってくる。すなわち、パケット群の最初の方であれば、最大でウィンドウサイズ分のパケット数が廃棄されるが、パケット群の最後の方であれば、最小で1パケットとなる。即ち、一つのフローにつき、最大限のパケット数を廃棄するためには、到達するウィンドウサイズ分のパケット群の中で、なるべく最初の方のパケットから廃棄する必要がある。そこで本発明では、送信側のTCPにおいて、ウィンドウサイズ分のパケット群の中で、先頭パケットに、現時点のウィンドウサイズを情報として付加して、輻輳中のノードでは、先頭パケットに付加されたウィンドウサイズの情報を検出して、この情報を用いて、ウィンドウサイズ分のパケット群のうち、なるべく先頭に近いパケットを含むフローを選択して、このフローのパケットを連続的に廃棄する。これにより、パケット廃棄するフロー数を最小限とし、パケット廃棄しないフロー数を最大限とすることができる。
In order to solve such a problem, the present invention provides a congestion control apparatus for avoiding a TCP synchronization phenomenon, wherein a current window size is used as information for a leading packet in a packet group corresponding to a window size. The window size adding means to be added, the window size information detecting means for detecting the window size information added to the head packet, and the window size information detected by the window size information detecting means, Flow selection means for selecting a flow including a packet as close to the head as possible from the packet group, packet discarding means for continuously discarding packets of the flow selected by the flow selection means, and control for controlling each means Means.
In TCP, the number of packets sent at a time by the transmission side without waiting for a reply of an acknowledgment packet from the reception side is only the window size. For this reason, the number of packets discarded per flow is at most the window size. The number of discarded packets varies depending on the position in the packet group corresponding to the arrival window size from which discarding is started. That is, if it is the first in the packet group, the maximum number of packets corresponding to the window size is discarded, but if it is the last in the packet group, the number is one packet at the minimum. That is, in order to discard the maximum number of packets for one flow, it is necessary to discard the first packet as much as possible in the packet group for the window size to be reached. Therefore, in the present invention, in the TCP on the transmission side, the current window size is added to the head packet as information in the packet group corresponding to the window size, and the window size added to the head packet in the congested node. This information is used to select a flow including a packet as close to the head as possible from the packet group corresponding to the window size, and the packets of this flow are continuously discarded. This minimizes the number of flows that discard packets and maximizes the number of flows that do not discard packets.

請求項2は、前記制御手段は、送信側のTCPで前記ウィンドウサイズの情報を付加することができない場合、エッジノードにて前記送信側に対しては擬似ACKを返信し、受信側に対しては新たなTCPを張り直すようにした上で、新たに張り直すTCPにおいて先頭パケットに該ウィンドウサイズの情報を付加することを特徴とする。
様々な都合により、送信側のTCPでウィンドウサイズの情報を付加することができない場合がある。そのような場合、新たに張り直すTCPにおいて先頭パケットにウィンドウサイズの情報を付加する。これにより、送信側のTCPでウィンドウサイズの情報を付加することができない場合でも、新たなTCPでウィンドウサイズの情報を付加することができる。
In a second aspect of the present invention, when the window size information cannot be added by the TCP on the transmission side, the control means returns a pseudo ACK to the transmission side at the edge node, and Is characterized in that after adding a new TCP, the window size information is added to the first packet in the new TCP.
Due to various reasons, there may be a case where window size information cannot be added by TCP on the transmission side. In such a case, window size information is added to the top packet in the newly re-established TCP. As a result, even when the window size information cannot be added by the TCP on the transmission side, the window size information can be added by the new TCP.

請求項3は、前記制御手段は、前記ウィンドウサイズ情報検出手段によりウィンドウサイズの情報を検出したことを認識すると、該ウィンドウサイズの情報を消去することを特徴とする。
輻輳中のノードでは、先頭パケットに付加されたウィンドウサイズ情報を検出するが、そのウィンドウサイズ情報を付加したまま送信すると、受信側で不具合が出ないとも限らない。そこで本発明では、検出した後は消去することで、受信側に何ら影響を与えないようにする。
According to a third aspect of the present invention, when the control means recognizes that the window size information detecting means has detected the window size information, the control means deletes the window size information.
In the congested node, the window size information added to the head packet is detected. However, if the window size information is transmitted while the window size information is added, the reception side does not necessarily have a problem. Therefore, in the present invention, after the detection, it is erased so as not to affect the receiving side.

請求項4は、ウィンドウサイズ付加手段、ウィンドウサイズ情報検出手段、フロー選択手段、パケット廃棄手段、及び制御手段を備えた輻輳制御装置の輻輳制御方法であって、前記ウィンドウサイズ付加手段が、ウィンドウサイズ分のパケット群の中で、先頭のパケットに現時点のウィンドウサイズを情報として付加するステップと、前記ウィンドウサイズ情報検出手段が、前記先頭パケットに付加されたウィンドウサイズの情報を検出するステップと、前記フロー選択手段が、前記ウィンドウサイズ情報検出手段により解析されたウィンドウサイズの情報の中から最大のウィンドウサイズを含むフローを選択するステップと、前記パケット廃棄手段が、前記フロー選択手段により選択されたフローの先頭パケット以外のパケットを廃棄するステップと、前記制御手段が、前記各手段を制御するステップと、を備えたことを特徴とする。
請求項1と同様の作用効果を奏する。
4. A congestion control method for a congestion control apparatus comprising window size adding means, window size information detecting means, flow selecting means, packet discarding means, and control means, wherein the window size adding means Adding the current window size as information to the first packet in the packet group of minutes, the window size information detecting means detecting the window size information added to the first packet, A flow selecting unit selecting a flow including the maximum window size from the window size information analyzed by the window size information detecting unit; and the packet discarding unit selecting the flow selected by the flow selecting unit. Packets other than the first packet of And step, said control means, characterized by comprising the steps of: controlling said respective means.
There exists an effect similar to Claim 1.

本発明によれば、効果を安定的・効率的に生じさせることができると共に、通信速度が大きく低下するフロー数を常に最小限にすることができる。
また、送信側・受信側のTCPには何ら変更を加えず、ネットワーク中のノードの機能だけで対処することができるため、運用面や経済面における様々な現実的事情により、送信側・受信側のTCPを変更できない場合にも適用でき、実導入面で有利である。
According to the present invention, the effect can be generated stably and efficiently, and the number of flows whose communication speed is greatly reduced can always be minimized.
In addition, since there is no change in the TCP on the sending / receiving side, it can be dealt with only by the function of the node in the network. This method can also be applied to cases where the TCP cannot be changed, which is advantageous in terms of actual introduction.

本発明の一実施形態に係る輻輳制御装置の機能を示すブロック図である。It is a block diagram which shows the function of the congestion control apparatus which concerns on one Embodiment of this invention. ネットワーク図の一例を示す図である。It is a figure which shows an example of a network diagram. (a)は従来方法によるパケット廃棄を説明する図、(b)は本発明によるパケット廃棄を説明する図である。(A) is a figure explaining packet discard by a conventional method, (b) is a figure explaining packet discard by this invention.

以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。   Hereinafter, the present invention will be described in detail with reference to embodiments shown in the drawings. However, the components, types, combinations, shapes, relative arrangements, and the like described in this embodiment are merely illustrative examples and not intended to limit the scope of the present invention only unless otherwise specified. .

図1は本発明の一実施形態に係る輻輳制御装置の機能を示すブロック図である。この輻輳制御装置1は、ウィンドウサイズ分のパケット群の中で、先頭のパケットに現時点のウィンドウサイズを情報として付加するウィンドウサイズ付加手段7と、先頭パケットに付加されたウィンドウサイズの情報を検出するウィンドウサイズ情報検出手段3と、ウィンドウサイズ情報検出手段3により検出されたウィンドウサイズ情報の中から最大のウィンドウサイズを含むフローを選択するフロー選択手段4と、フロー選択手段4により選択されたフローの先頭パケットを除く他のパケットを廃棄するパケット廃棄手段6と、各手段を制御する制御部(制御手段)5と、を備え、輻輳制御装置1は、インターフェース2を介してネットワーク8によりエッジノード9と接続されている。尚、本実施形態の場合は、輻輳制御装置1は輻輳中のコアノード11内に備えられ、エッジノード9にも同様な構成の輻輳制御装置1が備えられている。従って、どこに備えられているかにより、機能する手段と機能しない手段がある。
即ち、TCPでは、送信側が、受信側からの確認応答パケット(以下、ACKという)の返信を待たずに、一度に送付するパケット数は、ウィンドウサイズ分だけである。そのため、一つのフローにつき、廃棄されるパケット数は、最大でもウィンドウサイズ分である。この廃棄されるパケット数は、到達するウィンドウサイズ分のパケット群の中のどの位置から廃棄を開始するかによって異なってくる。すなわち、パケット群の最初の方であれば、最大でウィンドウサイズ分のパケット数が廃棄されるが、パケット群の最後の方であれば、最小で1パケットとなる。即ち、一つのフローにつき、最大限のパケット数を廃棄するためには、到達するウィンドウサイズ分のパケット群の中で、なるべく最初の方のパケットから廃棄する必要がある。そこで本発明では、送信側のTCPにおいて、ウィンドウサイズ分のパケット群の中で、先頭パケットに、現時点のウィンドウサイズを情報として付加して、輻輳中のノードでは、先頭パケットに付加されたウィンドウサイズの情報を検出して、この情報の中から最大のウィンドウサイズを含むフローを選択して、このフローの先頭パケットを除いた全てのパケットを廃棄する。これにより、パケット廃棄するフロー数を最小限とし、パケット廃棄しないフロー数を最大限とすることができる(詳細は図3で説明する)。
FIG. 1 is a block diagram showing functions of a congestion control apparatus according to an embodiment of the present invention. This congestion control device 1 detects window size addition means 7 for adding the current window size as information to the first packet in the packet group for the window size, and window size information added to the first packet. A window size information detection unit 3, a flow selection unit 4 for selecting a flow including the maximum window size from the window size information detected by the window size information detection unit 3, and a flow selected by the flow selection unit 4. A packet discarding unit 6 for discarding other packets except the head packet and a control unit (control unit) 5 for controlling each unit are provided. The congestion control device 1 is connected to the edge node 9 by the network 8 via the interface 2. Connected with. In the case of this embodiment, the congestion control device 1 is provided in the congested core node 11, and the edge node 9 is also provided with the congestion control device 1 having the same configuration. Therefore, there are means that function and parts that do not function, depending on where they are provided.
That is, in TCP, the number of packets sent at one time without waiting for a reply of an acknowledgment packet (hereinafter referred to as ACK) from the receiving side is only the window size. For this reason, the number of packets discarded per flow is at most the window size. The number of discarded packets varies depending on the position in the packet group corresponding to the arrival window size from which discarding is started. That is, if it is the first in the packet group, the maximum number of packets corresponding to the window size is discarded, but if it is the last in the packet group, the number is one packet at the minimum. That is, in order to discard the maximum number of packets for one flow, it is necessary to discard the first packet as much as possible in the packet group for the window size to be reached. Therefore, in the present invention, in the TCP on the transmission side, the current window size is added to the head packet as information in the packet group corresponding to the window size, and the window size added to the head packet in the congested node. Is detected, a flow including the maximum window size is selected from the information, and all packets except the first packet of this flow are discarded. This minimizes the number of flows that discard packets and maximizes the number of flows that do not discard packets (details will be described in FIG. 3).

図2はネットワーク図の一例を示す図である。送信端10の回線を集約しているノードをエッジノード9、それ以外を輻輳中のノード11とする。エッジノード9はネットワーク8中に複数存在する。エッジノード9は、送信端10からパケットを受け取ると、すぐに確認応答(ACK)パケットを送信端10に返信する。一方、エッジノード9が受け取ったパケットは、輻輳中のノード11へ送られ、図示しない受信端へ到着すると、受信端から確認応答(ACK)パケットを受け取る。つまり、エッジノード9でTCPコネクションが張りなおされる形となる。このとき、エッジノード9から見て、送信端10側のネットワークはRTT(Round Trip Time)が小さいので通信速度は速く、逆に輻輳中のノード11側のネットワークはRTTが大きいので通信速度は遅い。そのため、この速度差によってエッジノード9のバッファには自然にパケットが蓄積される。これは、送信端10が持っていた送信データがエッジノード9のバッファに引っ張り出されるイメージとなる。このような原理上、バッファにパケットが蓄積されていても、通信遅延は発生していない。また、このバッファは、TCPコネクションで繋がったパケットを蓄積するものではないので、たとえ保持時間が長い場合でも、タイムアウトでTCPが切断されることはない。   FIG. 2 is a diagram illustrating an example of a network diagram. A node that aggregates the lines of the transmission end 10 is an edge node 9, and the other node is a congested node 11. There are a plurality of edge nodes 9 in the network 8. When the edge node 9 receives the packet from the transmitting end 10, it immediately returns an acknowledgment (ACK) packet to the transmitting end 10. On the other hand, the packet received by the edge node 9 is sent to the congested node 11, and when it arrives at a receiving end (not shown), an acknowledgment (ACK) packet is received from the receiving end. That is, the TCP connection is re-established at the edge node 9. At this time, when viewed from the edge node 9, the network on the transmitting end 10 side has a small RTT (Round Trip Time), so the communication speed is fast, and conversely, the network on the congested node 11 side has a large RTT, so the communication speed is slow. . Therefore, packets are naturally accumulated in the buffer of the edge node 9 due to this speed difference. This is an image in which the transmission data held by the transmission end 10 is pulled out to the buffer of the edge node 9. Based on this principle, no communication delay occurs even if packets are accumulated in the buffer. In addition, since this buffer does not accumulate packets connected by a TCP connection, even if the holding time is long, TCP is not disconnected due to a timeout.

図3は本発明の輻輳制御装置の動作を説明するために、従来方法との比較で例示した図である。図3(a)は従来方法によるパケット廃棄を説明する図、図3(b)は本発明によるパケット廃棄を説明する図である。
特定のフローにパケット廃棄を集中させることで、その他のフローがパケット廃棄されずに済むようになり、TCP同期の回避という効果を生むというものである。そのため、パケット廃棄するフロー数を最小限とし、パケット廃棄しないフロー数を最大限とすることが、効果を安定的、効率的に生じさせるために必要である。このことは、パケット廃棄するフローについては、RTO(Retransmission Time Out)の動作となり、通信速度が大きく低下してしまうという観点からも必要である(RTOとは、ウィンドウサイズ内で複数のパケット廃棄が発生した場合に、輻輳の度合いが大きいと判断し、送信側にて数秒間待ってからウィンドウサイズを1パケットまで減少させて再送を開始するというTCPの動作である)。しかし、従来の方法は、このような機能を持っていない。そのため、その時々で効果がばらついて安定せず、効果が低いときには、通信速度が大きく低下するフローも無駄に多く発生してしまうという課題があった。
FIG. 3 is a diagram illustrating the operation of the congestion control apparatus according to the present invention in comparison with the conventional method. FIG. 3A is a diagram for explaining packet discard according to the conventional method, and FIG. 3B is a diagram for explaining packet discard according to the present invention.
By concentrating packet discards on a specific flow, other flows can be prevented from being discarded, and the effect of avoiding TCP synchronization is produced. Therefore, it is necessary to minimize the number of flows that discard packets and maximize the number of flows that do not discard packets in order to produce the effect stably and efficiently. This is also necessary from the viewpoint of RTO (Retransmission Time Out) operation for the packet discarding flow, and the communication speed is greatly reduced (RTO is the discarding of multiple packets within the window size). When this occurs, it is determined that the degree of congestion is large, and after waiting several seconds on the transmission side, the window size is reduced to 1 packet and retransmission is started). However, the conventional method does not have such a function. For this reason, there is a problem that the flow of the communication speed greatly decreases unnecessarily when the effect is not stable because the effect varies from time to time and the effect is low.

図3(a)を用いて更に詳細に説明すると、フローA〜Dごとに所定のウィンドウサイズでパケットが到着した場合について説明する。図の右側が輻輳中のノードへのパケット到着順が先で、左側が後である。ここで廃棄パケット数が2の場合について説明する。ウィンドウサイズがP1−1〜P1−5のパケット群では、P1−1〜P1−3がフローAであり、P1−4〜P1−5までがフローBである。同じく、ウィンドウサイズがP2−1〜P2−12のパケット群では、P2−1〜P2−6がフローBであり、P2−7〜P2−12までがフローCである。同じく、ウィンドウサイズがP3−1〜P3−2のパケット群では、P3−1〜P3−2がフローCである。同じく、ウィンドウサイズがP4−1〜P4−8のパケット群では、P4−1〜P4−8がフローDである。ここで、パケットP1−1、P2−1、P3−1、P4−1がウィンドウサイズの最初のパケットとすると、パケットP1−1、P2−1、P3−1、P4−1には何ら情報が付加されておらず、ノードで識別することができない。その結果、フローAのパケットP1−2、P1−3、及びフローBのP2−2〜P2−6までが廃棄パケットとなると、廃棄パケット数が7で、廃棄フロー数は2となる。
それに対して本発明では、一つのフローにつき、最大限のパケットを廃棄することに取り組む。これにより、最小限のフロー数で、必要な廃棄パケット数を確保することができる。よって、パケット廃棄するフロー数を最小限とし、パケット廃棄しないフロー数を最大限とすることができる。
In more detail using FIG. 3A, a case where a packet arrives with a predetermined window size for each of the flows A to D will be described. The right side of the figure is the packet arrival order to the congested node, and the left side is the later. Here, a case where the number of discarded packets is 2 will be described. In a packet group with window sizes P1-1 to P1-5, P1-1 to P1-3 are a flow A, and P1-4 to P1-5 are a flow B. Similarly, in a packet group with window sizes P2-1 to P2-12, P2-1 to P2-6 are flow B, and P2-7 to P2-12 are flow C. Similarly, P3-1 to P3-2 are a flow C in a packet group having window sizes P3-1 to P3-2. Similarly, P4-1 to P4-8 are flow D in the packet group having window sizes P4-1 to P4-8. Here, if the packets P1-1, P2-1, P3-1, and P4-1 are the first packets of the window size, there is no information in the packets P1-1, P2-1, P3-1, and P4-1. It is not added and cannot be identified by a node. As a result, when the packets P1-2 and P1-3 of the flow A and the P2-2 to P2-6 of the flow B are discarded packets, the number of discarded packets is 7, and the number of discarded flows is 2.
In contrast, the present invention addresses the discarding of the maximum number of packets per flow. As a result, the necessary number of discarded packets can be secured with the minimum number of flows. Therefore, it is possible to minimize the number of flows that discard packets and maximize the number of flows that do not discard packets.

以下、詳細に説明する。
TCP通信では、送信側が受信側からの確認応答パケット(以下、ACKという)の返信を待たずに、一度に送付するパケット数は、ウィンドウサイズ分だけである。そのため、一つのフローにつき、廃棄されるパケット数は、最大でもウィンドウサイズ分である。この廃棄されるパケット数は、到達するウィンドウサイズ分のパケット群の中のどの位置から廃棄を開始するかによって異なってくる。即ち、パケット群の最初の方であれば、最大でウィンドウサイズ分のパケット数が廃棄されるが、パケット群の最後の方であれば、最小で1パケットとなる。
立ち返って、一つのフローにつき、最大限のパケット数を廃棄するためには、到達するウィンドウサイズ分のパケット群の中で、なるべく最初の方のパケットから廃棄する必要がある。しかし、ネットワーク中のノードは、到達したパケットがウィンドウサイズ分のパケット群の中で、どの位置にあるかを判別する機能を持っていない(パケットの順番はシーケンス番号から判別できるものの、ウィンドウサイズの端がどこなのか判別できない)。
Details will be described below.
In TCP communication, the number of packets sent at one time without waiting for a reply of an acknowledgment packet (hereinafter referred to as ACK) from the receiving side is only the window size. For this reason, the number of packets discarded per flow is at most the window size. The number of discarded packets varies depending on the position in the packet group corresponding to the arrival window size from which discarding is started. That is, if it is the first in the packet group, the maximum number of packets corresponding to the window size is discarded, but if it is the last in the packet group, the number is one packet at the minimum.
In order to return and discard the maximum number of packets per flow, it is necessary to discard from the first packet as much as possible in the packet group for the arrival window size. However, the nodes in the network do not have a function to determine where the arrived packet is in the window size packet group (although the packet order can be determined from the sequence number, the window size I ca n’t tell where the edge is).

そこで、送信側のTCPにおいて、ウィンドウサイズ分のパケット群の中で、先頭パケットに、現時点のウィンドウサイズを情報として付加することとする。ここで、現時点のウィンドウサイズとする理由は、ウィンドウサイズはパケット廃棄に伴い、TCPによって決められた最大値を上限として増減するため、その時々で、およびフロー毎で異なるためである。ウィンドウサイズは、パケット数で表してもよいし、バイト数で表してもよいが、ここでは前者として説明する。
この情報を付加するには、例えば、TCPヘッダのウィンドウサイズ・フィールドや、IPヘッダのオプション・フィールドなどを利用すればよい(前者は、通常、ACKで用いられている。つまり、受信側から送信側に対して、現状の受信バッファの空き容量を通知し、スライディング・ウィンドウ方式でパケットを受け取るために用いられている。後者は、通常、使用されていない)。
また、様々な都合により、送信側のTCPで情報を付加することができない場合は、例えば、エッジノード9にて、送信側に対しては疑似ACKを返信し、受信側に対しては新たにTCPを張り直すようにした上で、新たに張り直すTCPで先頭パケットにこの情報を付加すればよい。
Therefore, in the TCP on the transmission side, the current window size is added as information to the top packet in the packet group for the window size. Here, the reason why the window size is the current window size is that the window size increases and decreases with the maximum value determined by TCP as the upper limit with packet discard, and is different from time to time and from flow to flow. The window size may be represented by the number of packets or the number of bytes, but here it will be described as the former.
In order to add this information, for example, the window size field of the TCP header or the option field of the IP header may be used (the former is usually used for ACK. Is used to receive the packet in the sliding window method, and the latter is not normally used).
If information cannot be added by TCP on the transmission side for various reasons, for example, at the edge node 9, a pseudo ACK is returned to the transmission side, and a new one is sent to the reception side. After re-establishing TCP, this information may be added to the first packet by re-examining TCP.

一方、輻輳中のノード11では、先頭パケットに付加されたウィンドウサイズの情報を検出する。なお、検出した後は消去することで、受信側に何ら影響を与えないようにしてもよい。そして、検出したウィンドウサイズ(ここでは、パケット数で表されている)を初期値とする変数Nをフロー毎に管理テーブルで管理する。変数Nは、次々とそのフローのパケットが到達する度に、1ずつ減じていき、最後の到達パケットで1となるようにする。輻輳中のノードは、この変数Nを管理することにより、現時点での到達パケットがウィンドウサイズ分のパケット群の中で、どの位置にあって、あとどのくらいのパケットが送付されてくるかをフロー毎に知ることができる。
ここで、バッファが一杯になり、パケットを廃棄しなければならなくなったとする。本発明では、到着するパケットから廃棄するのではなく、現時点でバッファに蓄積されているパケットの中から、より変数Nが大きいパケットを含むフローを選択し、廃棄していく。以上により、一つのフローにつき、最大限のパケットを廃棄することができるようになる。この結果、パケット廃棄するフロー数を最小限とし、パケット廃棄しないフロー数を最大限とすることができる。
On the other hand, the congested node 11 detects window size information added to the head packet. It should be noted that, after detection, it may be deleted so as not to affect the receiving side. A variable N whose initial value is the detected window size (represented by the number of packets in this case) is managed in the management table for each flow. The variable N is decremented by 1 each time packets of that flow arrive one after another, and becomes 1 at the last arrived packet. The congested node manages this variable N so that the current arrival packet in the packet group for the window size is located at which position and how many packets are sent for each flow. Can know.
Now assume that the buffer is full and the packet has to be discarded. In the present invention, instead of discarding packets that arrive, a flow including a packet with a larger variable N is selected from the packets currently stored in the buffer and discarded. As described above, the maximum number of packets can be discarded per one flow. As a result, it is possible to minimize the number of flows that discard packets and maximize the number of flows that do not discard packets.

図3(b)を用いて更に詳細に説明すると、フローA〜Dごとに所定のウィンドウサイズでパケットが到着した場合について説明する。図の右側が輻輳中のノードへのパケット到着順が先で、左側が後である。ここで廃棄パケット数が2の場合について説明する。フローとウィンドウサイズの関係は図3(a)と同様であるので説明を省略する。ここで、パケットP1−1、P2−1、P3−1、P4−1がウィンドウサイズの最初のパケットとすると、パケットP1−1、P2−1、P3−1、P4−1にはウィンドウサイズの情報が付加されており、ノードで識別することができる。その結果、フローDのパケットP4−2〜P4−8までが廃棄パケットとなると、廃棄パケット数が7で、廃棄フロー数は1となり、図3と比較して、廃棄パケット数は同じであるが、廃棄フロー数を減少させることができる。   In more detail using FIG. 3B, a case where a packet arrives with a predetermined window size for each of the flows A to D will be described. The right side of the figure is the packet arrival order to the congested node, and the left side is the later. Here, a case where the number of discarded packets is 2 will be described. Since the relationship between the flow and the window size is the same as that in FIG. Here, if the packets P1-1, P2-1, P3-1 and P4-1 are the first packets having the window size, the packets P1-1, P2-1, P3-1 and P4-1 have the window size. Information is added and can be identified by the node. As a result, when the packets P4-2 to P4-8 of the flow D are discarded packets, the number of discarded packets is 7, the number of discarded flows is 1, and the number of discarded packets is the same as that in FIG. The number of discarded flows can be reduced.

1 輻輳制御装置、2 インターフェース、3 ウィンドウサイズ情報検出手段、4 フロー選択手段、5 制御部、6 パケット廃棄手段、7 ウィンドウサイズ付加手段、8 ネットワーク、9 エッジノード、10 送信端、11 輻輳中のノード DESCRIPTION OF SYMBOLS 1 Congestion control apparatus, 2 interface, 3 window size information detection means, 4 flow selection means, 5 control part, 6 packet discarding means, 7 window size addition means, 8 network, 9 edge node, 10 transmission end, 11 in congestion node

Claims (4)

TCP同期現象を回避する輻輳制御装置であって、
ウィンドウサイズ分のパケット群の中で、先頭のパケットに現時点のウィンドウサイズを情報として付加するウィンドウサイズ付加手段と、
前記先頭パケットに付加されたウィンドウサイズの情報を検出するウィンドウサイズ情報検出手段と、
該ウィンドウサイズ情報検出手段により検出されたウィンドウサイズ情報を用いて、ウィンドウサイズ分のパケット群のうち、なるべく先頭に近いパケットを含むフローを選択するフロー選択手段と、
該フロー選択手段により選択されたフローのパケットを連続的に廃棄するパケット廃棄手段と、
前記各手段を制御する制御手段と、を備えたことを特徴とする輻輳制御装置。
A congestion control device that avoids the TCP synchronization phenomenon,
A window size adding means for adding the current window size as information to the first packet in the packet group for the window size;
Window size information detecting means for detecting window size information added to the head packet;
Using the window size information detected by the window size information detection means, a flow selection means for selecting a flow including a packet as close to the head as possible from a packet group corresponding to the window size;
Packet discarding means for continuously discarding packets of the flow selected by the flow selection means;
And a control means for controlling each means.
前記制御手段は、送信側のTCPで前記ウィンドウサイズの情報を付加することができない場合、エッジノードにて前記送信側に対しては擬似ACKを返信し、受信側に対しては新たなTCPを張り直すようにした上で、新たに張り直すTCPにおいて先頭パケットに該ウィンドウサイズの情報を付加することを特徴とする請求項1に記載の輻輳制御装置。   If the window size information cannot be added by the TCP on the transmission side, the control means returns a pseudo ACK to the transmission side at the edge node and sends a new TCP to the reception side. 2. The congestion control apparatus according to claim 1, wherein the window size information is added to the first packet in the newly re-established TCP after re-stretching. 前記制御手段は、前記ウィンドウサイズ情報検出手段によりウィンドウサイズの情報を検出したことを認識すると、該ウィンドウサイズの情報を消去することを特徴とする請求項1又は2に記載の輻輳制御装置。   3. The congestion control apparatus according to claim 1, wherein the control unit deletes the window size information when the window size information detection unit recognizes that the window size information is detected. ウィンドウサイズ付加手段、ウィンドウサイズ情報検出手段、フロー選択手段、パケット廃棄手段、及び制御手段を備えた輻輳制御装置の輻輳制御方法であって、
前記ウィンドウサイズ付加手段が、ウィンドウサイズ分のパケット群の中で、先頭のパケットに現時点のウィンドウサイズを情報として付加するステップと、
前記ウィンドウサイズ情報検出手段が、前記先頭パケットに付加されたウィンドウサイズの情報を検出するステップと、
前記フロー選択手段が、前記ウィンドウサイズ情報検出手段により解析されたウィンドウサイズの情報の中から最大のウィンドウサイズを含むフローを選択するステップと、
前記パケット廃棄手段が、前記フロー選択手段により選択されたフローの先頭パケット以外のパケットを廃棄するステップと、
前記制御手段が、前記各手段を制御するステップと、
を備えたことを特徴とする輻輳制御装置の輻輳制御方法。
A congestion control method for a congestion control device comprising window size adding means, window size information detecting means, flow selecting means, packet discarding means, and control means,
The window size adding means adding the current window size as information to the first packet in the packet group for the window size; and
The window size information detecting means detects window size information added to the head packet;
The flow selecting means selecting a flow including the maximum window size from the window size information analyzed by the window size information detecting means;
The packet discarding unit discarding a packet other than the first packet of the flow selected by the flow selecting unit;
The control means controlling each means;
A congestion control method for a congestion control apparatus, comprising:
JP2010088476A 2010-04-07 2010-04-07 Congestion control device and congestion control method Active JP5518549B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010088476A JP5518549B2 (en) 2010-04-07 2010-04-07 Congestion control device and congestion control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010088476A JP5518549B2 (en) 2010-04-07 2010-04-07 Congestion control device and congestion control method

Publications (2)

Publication Number Publication Date
JP2011223186A true JP2011223186A (en) 2011-11-04
JP5518549B2 JP5518549B2 (en) 2014-06-11

Family

ID=45039619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010088476A Active JP5518549B2 (en) 2010-04-07 2010-04-07 Congestion control device and congestion control method

Country Status (1)

Country Link
JP (1) JP5518549B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11187031A (en) * 1997-12-19 1999-07-09 Fujitsu Ltd Atm exchange
JP2008193310A (en) * 2007-02-02 2008-08-21 Central Res Inst Of Electric Power Ind Buffer management method of router and router using the management method
JP2011193239A (en) * 2010-03-15 2011-09-29 Chugoku Electric Power Co Inc:The Apparatus and method for controlling congestion

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11187031A (en) * 1997-12-19 1999-07-09 Fujitsu Ltd Atm exchange
JP2008193310A (en) * 2007-02-02 2008-08-21 Central Res Inst Of Electric Power Ind Buffer management method of router and router using the management method
JP2011193239A (en) * 2010-03-15 2011-09-29 Chugoku Electric Power Co Inc:The Apparatus and method for controlling congestion

Also Published As

Publication number Publication date
JP5518549B2 (en) 2014-06-11

Similar Documents

Publication Publication Date Title
US10237153B2 (en) Packet retransmission method and apparatus
CN110661723B (en) Data transmission method, computing device, network device and data transmission system
Xu et al. CMT-QA: Quality-aware adaptive concurrent multipath data transfer in heterogeneous wireless networks
JP5544430B2 (en) Communication apparatus and communication system
Zhang et al. A Transport Layer Approach for Improving End-to-End Performance and Robustness Using Redundant Paths.
WO2018210117A1 (en) Congestion control method, network device, and network interface controller thereof
US9577791B2 (en) Notification by network element of packet drops
US20210211937A1 (en) Data Transmission Method, Apparatus, and System
Zhou et al. Goodput improvement for multipath TCP by congestion window adaptation in multi-radio devices
US9843525B2 (en) Apparatus and method
US20080159150A1 (en) Method and Apparatus for Preventing IP Datagram Fragmentation and Reassembly
WO2014092779A1 (en) Notification by network element of packet drops
CN107852371B (en) Data packet network
JP4911223B2 (en) Relay device and terminal device
JP5506591B2 (en) Communication system and communication quality control method
CN111224888A (en) Method for sending message and message forwarding equipment
Natarajan et al. Concurrent multipath transfer using transport layer multihoming: Performance under network failures
JP2008118281A (en) Communication device
Le et al. Reliable user datagram protocol for airborne network
JP5518549B2 (en) Congestion control device and congestion control method
Ayar et al. A transparent reordering robust TCP proxy to allow per-packet load balancing in core networks
JP5518534B2 (en) Congestion control device and congestion control method
Jungmaier et al. On SCTP multi-homing performance
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent
Raza et al. Persistent packet reordering attack in TCP based Ad hoc wireless networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140402

R150 Certificate of patent or registration of utility model

Ref document number: 5518549

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250