JP2011223186A - Congestion controller and congestion control method - Google Patents
Congestion controller and congestion control method Download PDFInfo
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
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,
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.
しかし、特許文献1に開示されている従来技術にも課題がある。即ち、従来の方法は、特定のフローにパケット廃棄を集中させることで、その他のフローがパケット廃棄されずに済むようになり、TCP同期の回避という効果を生むというものであり、そのため、パケット廃棄するフロー数を最小限とし、パケット廃棄しないフロー数を最大限とすることが、効果を安定的、効率的に生じさせるために必要である。このことは、パケット廃棄するフローについては、RTO(Retransmission Time Out)の動作となり、通信速度が大きく低下してしまうという観点からも必要であるが、このような機能を持っていない。そのため、その時々で効果がばらついて安定せず、効果が低いときには、通信速度が大きく低下してフローも無駄に多く発生してしまうという課題があった。
本発明は、かかる課題に鑑みてなされたものであり、送信側のTCPにおいて、ウィンドウサイズ分のパケット群の中で、先頭パケットに、現時点のウィンドウサイズを情報として付加して、輻輳中のノードでは、先頭パケットに付加されたウィンドウサイズの情報を検出して、この情報を用いて、ウィンドウサイズ分のパケット群のうち、なるべく先頭に近いパケットを含むフローを選択して、このフローのパケットを連続的に廃棄することにより、効果を安定的・効率的に生じさせることができると共に、通信速度が大きく低下するフロー数を常に最小限にすることができる輻輳制御装置及び輻輳制御方法を提供することを目的とする。
However, the prior art disclosed in
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
本発明によれば、効果を安定的・効率的に生じさせることができると共に、通信速度が大きく低下するフロー数を常に最小限にすることができる。
また、送信側・受信側の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.
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。 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
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
図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
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
Claims (4)
ウィンドウサイズ分のパケット群の中で、先頭のパケットに現時点のウィンドウサイズを情報として付加するウィンドウサイズ付加手段と、
前記先頭パケットに付加されたウィンドウサイズの情報を検出するウィンドウサイズ情報検出手段と、
該ウィンドウサイズ情報検出手段により検出されたウィンドウサイズ情報を用いて、ウィンドウサイズ分のパケット群のうち、なるべく先頭に近いパケットを含むフローを選択するフロー選択手段と、
該フロー選択手段により選択されたフローのパケットを連続的に廃棄するパケット廃棄手段と、
前記各手段を制御する制御手段と、を備えたことを特徴とする輻輳制御装置。 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.
前記ウィンドウサイズ付加手段が、ウィンドウサイズ分のパケット群の中で、先頭のパケットに現時点のウィンドウサイズを情報として付加するステップと、
前記ウィンドウサイズ情報検出手段が、前記先頭パケットに付加されたウィンドウサイズの情報を検出するステップと、
前記フロー選択手段が、前記ウィンドウサイズ情報検出手段により解析されたウィンドウサイズの情報の中から最大のウィンドウサイズを含むフローを選択するステップと、
前記パケット廃棄手段が、前記フロー選択手段により選択されたフローの先頭パケット以外のパケットを廃棄するステップと、
前記制御手段が、前記各手段を制御するステップと、
を備えたことを特徴とする輻輳制御装置の輻輳制御方法。 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:
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)
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 |
-
2010
- 2010-04-07 JP JP2010088476A patent/JP5518549B2/en active Active
Patent Citations (3)
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 |