JP6101046B2 - Packet transmission apparatus and program thereof - Google Patents
Packet transmission apparatus and program thereof Download PDFInfo
- Publication number
- JP6101046B2 JP6101046B2 JP2012240283A JP2012240283A JP6101046B2 JP 6101046 B2 JP6101046 B2 JP 6101046B2 JP 2012240283 A JP2012240283 A JP 2012240283A JP 2012240283 A JP2012240283 A JP 2012240283A JP 6101046 B2 JP6101046 B2 JP 6101046B2
- Authority
- JP
- Japan
- Prior art keywords
- window size
- packet
- function
- congestion window
- increase
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
本発明は、パケット通信によってデータを送信するパケット送信装置およびそのプログラムに関する。 The present invention relates to a packet transmission apparatus that transmits data by packet communication and a program thereof.
品質の保証がされていないベストエフォートタイプのIPネットワークでは、ネットワーク機器内部でのバッファ漏れ、伝送中のビットエラー等によって、送信パケットの廃棄(パケットロス)が発生する。そのため、従来、IPネットワーク上で、確実にデータを伝送するための送達確認を行うプロトコルとしてTCP(Transmission Control Protocol)が幅広く利用されている(非特許文献1参照)。 In a best-effort type IP network in which quality is not guaranteed, transmission packets are discarded (packet loss) due to buffer leaks in the network equipment, bit errors during transmission, and the like. Therefore, conventionally, TCP (Transmission Control Protocol) has been widely used as a protocol for confirming delivery for reliably transmitting data on an IP network (see Non-Patent Document 1).
このTCPでは、受信装置がパケットを受信すると、受信した旨の報告として、次に送信を要求するパケットの番号を送信装置に通知する。そして、送信装置は、受信装置から通知される報告に基づいて、パケットが正常に受信装置に到達したことを確認する。また、送信装置は、受信装置から通知される報告でパケットロスを検出した場合、当該パケットを再送するとともに、送達確認応答なしに送出可能なパケットの数(セグメント数)を表す輻輳ウインドウサイズ(CWND:Congestion Window Size)を調整する。
一般的に、TCPは、CWNDを用いて輻輳を制御するための輻輳制御アルゴリズムとして、スロースタートフェーズと、輻輳回避フェーズと呼ばれる2つのフェーズで動作する。
In this TCP, when a receiving device receives a packet, it notifies the transmitting device of the number of the packet to be transmitted next as a report indicating that it has been received. Then, the transmission device confirms that the packet has normally reached the reception device based on the report notified from the reception device. When the transmitting apparatus detects a packet loss in the report notified from the receiving apparatus, the transmitting apparatus resends the packet and also displays a congestion window size (CWND) indicating the number of packets (number of segments) that can be transmitted without a delivery confirmation response. : Congestion Window Size).
Generally, TCP operates in two phases called a slow start phase and a congestion avoidance phase as a congestion control algorithm for controlling congestion using CWND.
まず、スロースタートフェーズにおいて、送信装置は、CWNDを最小値(“2”)に設定し、受信装置から送信パケットに対するACK(送達確認応答)が通知されるごとに、CWNDを指数的に増加(CWND=CWND+1)させる。そして、送信装置は、パケットロスを検出した段階で、スロースタートフェーズにおいて増加させるCWNDの上限閾値であるスロースタート閾値(ssthresh)をパケットロス発生時のCWNDの2分の1に設定し、輻輳回避フェーズに移行する。なお、パケットの送信時に、再送タイムアウト(RTO:Retransmission Time Out)が発生したとき、送信装置は、どのフェーズで動作している場合であっても、CWNDを最小値(“2”)に設定するとともに、ssthreshを直前のCWNDの2分の1に設定し、再度、スロースタートフェーズで動作する。 First, in the slow start phase, the transmitting device sets CWND to the minimum value (“2”), and increases CWND exponentially every time an ACK (delivery confirmation response) for a transmission packet is notified from the receiving device ( CWND = CWND + 1). Then, when the packet loss is detected, the transmitter sets the slow start threshold (ssthresh), which is the upper limit threshold of CWND to be increased in the slow start phase, to one half of the CWND at the time of packet loss, thereby avoiding congestion. Transition to the phase. When a retransmission timeout (RTO) occurs during packet transmission, the transmitting apparatus sets CWND to the minimum value (“2”) regardless of the phase of operation. At the same time, ssthresh is set to one half of the immediately preceding CWND, and the operation starts again in the slow start phase.
一方、輻輳回避フェーズにおいて、送信装置は、CWNDを徐々に増加させる。例えば、TCPの一種類であるReno(非特許文献2参照)では、受信装置から送信装置にACK(送達確認応答)が通知されるごとに、CWNDを線形的に増加させる。具体的には、往復遅延時間(RTT:Round Trip Time)に対して1パケットの割合でCWNDを増加(CWND=CWND+1/CWND)させる。そして、送信装置は、パケットロスを検出した段階で、CWNDを2分の1に削減するとともに、その値をssthreshに設定する。これによって、送信装置は、パケットロスが発生した場合、スロースタートフェーズには移行せず、輻輳回避フェーズから動作を継続する。 On the other hand, in the congestion avoidance phase, the transmission apparatus gradually increases CWND. For example, in Reno (see Non-Patent Document 2), which is one type of TCP, CWND is linearly increased every time an ACK (delivery confirmation response) is notified from the receiving device to the transmitting device. Specifically, CWND is increased (CWND = CWND + 1 / CWND) at a rate of one packet with respect to the round trip time (RTT). Then, at the stage where the packet loss is detected, the transmitting device reduces CWND by half and sets the value to ssthresh. As a result, when a packet loss occurs, the transmission device does not enter the slow start phase and continues to operate from the congestion avoidance phase.
なお、この輻輳回避フェーズの動作については、TCPにおいて、Reno以外にも種々の手法がある。例えば、NewReno(非特許文献2参照)、Vegas(非特許文献3参照)、CUBIC(非特許文献4参照)等が知られている。 Regarding the operation of this congestion avoidance phase, there are various methods other than Reno in TCP. For example, NewReno (see non-patent document 2), Vegas (see non-patent document 3), CUBIC (see non-patent document 4), and the like are known.
NewRenoは、Renoと同様、受信装置から送信装置にACKが通知されるごとに、CWNDを線形的に増加させる。具体的には、RTTに対して1パケットの割合でCWNDを増加させる。また、NewRenoも、パケットロスを検出した場合、CWNDを半分に削減する。 Similar to Reno, NewReno linearly increases CWND every time an ACK is notified from the reception device to the transmission device. Specifically, CWND is increased at a rate of one packet with respect to RTT. Also, NewReno reduces CWND by half when packet loss is detected.
Vegasは、送信装置がRTTを計測し、その期待値と実測値との差が予め定めた定数よりも小さいときには、Renoと同様、1RTTごとにCWNDを1増加させる。また、Vegasは、RTTの期待値と実測値との差が予め定めた定数よりも大きいときには1RTTごとにCWNDを1減少させる。また、Vegasは、RTTの期待値と実測値との差が予め定めた定数の範囲内であれば、CWNDを維持する。また、Vegasは、パケットロスを検出した場合、Renoと同様、CWNDを半分に削減する。 Vegas increases the CWND by 1 every 1 RTT, similar to Reno, when the transmitter measures the RTT and the difference between the expected value and the measured value is smaller than a predetermined constant. Also, Vegas decreases CWND by 1 every RTT when the difference between the expected value of RTT and the actual measurement value is larger than a predetermined constant. Also, Vegas maintains CWND if the difference between the expected value of RTT and the actual measurement value is within a predetermined constant range. Also, Vegas, when detecting packet loss, reduces CWND by half, as with Reno.
CUBICは、RenoやVegasとは異なり、RTTを基準にCWNDを増加させるのではなく、経過時間の3乗に比例してCWNDを増加させる。なお、CUBICは、パケットロスを検出した場合に、CWNDを2分の1に削減するのではなく、予め定めた割合でCWNDを削減する。このCUBICは、Linux(登録商標) kernel 2.6.19から、TCPのデフォルトのCWND調整手法として用いられている(非特許文献5参照)。 Unlike Reno and Vegas, CUBIC does not increase CWND based on RTT, but increases CWND in proportion to the cube of elapsed time. When CUBIC detects packet loss, CUBIC does not reduce CWND by half, but reduces CWND at a predetermined rate. This CUBIC is used as a default CWND adjustment method for TCP from Linux (registered trademark) kernel 2.6.19 (see Non-Patent Document 5).
このCUBICを使用した発明としては、後に通信を開始したフローが、先に通信を開始していたフローの帯域を獲得して公平に帯域を分け合う状態になるまでに時間がかかるという問題を改善した手法が開示されている(特許文献1参照)。
また、CWNDを調整する他の手法として、パケットロスが発生した際に、パケットの再々送、パケットの到着間隔の伸び方等によって、ネットワークの輻輳状態を判定し、その判定結果に応じてCWNDの増減を切り変える手法が開示されている(特許文献2参照)。
The invention using this CUBIC has improved the problem that it takes a long time for a flow that has started communication later to acquire the bandwidth of the flow that has started communication and to share the bandwidth fairly. A technique is disclosed (see Patent Document 1).
As another method for adjusting CWND, when a packet loss occurs, the congestion state of the network is determined based on how the packet is re-transmitted, how the packet arrival interval is extended, and the CWND is determined according to the determination result. A technique for switching between increase and decrease is disclosed (see Patent Document 2).
しかし、前記したReno、NewReno、Vegasは、1RTTごとにCWNDを増加させるため、CWNDの増加速度が、1パケット/RTTに制限されてしまう。そのため、前記したReno等は、RTTが大きい遠隔地との通信では、CWNDの増加速度が鈍く、たとえ広帯域の回線を用いた場合であっても、その回線を有効に利用することができないという問題があった。 However, since Reno, NewReno, and Vegas described above increase CWND every 1 RTT, the increase rate of CWND is limited to 1 packet / RTT. Therefore, the above-mentioned Reno and the like have a problem that the CWND increase rate is slow in communication with a remote place having a large RTT, and even if a broadband line is used, the line cannot be used effectively. was there.
また、前記したCUBIC(特許文献1の技術を含む)は、1RTTごとにCWNDを増加させるのではなく、経過時間の3乗に比例する増加関数でCWNDを増加させるため、RTTが大きな回線であっても短時間でCWNDを増加させることができ、広帯域の回線をReno等よりも有効に利用することができる。 Further, the above-described CUBIC (including the technique of Patent Document 1) does not increase CWND every 1 RTT, but increases CWND with an increasing function proportional to the cube of the elapsed time. However, CWND can be increased in a short time, and a broadband line can be used more effectively than Reno or the like.
しかし、CUBICは、パケットロスを検出した場合、一様にCWNDを削減してしまう。すなわち、CUBICは、パケットロスが、輻輳以外の原因、例えば、ビット誤り等によって生じたランダムロスが原因であっても、輻輳発生時と同様にCWNDを削減してしまう。また、CUBICは、ネットワーク内のバッファが少ない回線であっても、バッファが多い回線と同様に、CWNDを削減してしまう。
このように、CUBICは、必要以上にCWNDを削減する場合があり、ネットワーク内のバッファが帯域遅延積(BDP)に対して小さい回線や、ランダムロスが多発する回線では、通信帯域を有効に活用することができないという問題があった。
However, when CUBIC detects packet loss, CWND is reduced uniformly. That is, CUBIC reduces CWND in the same way as when congestion occurs even if the packet loss is caused by a cause other than congestion, for example, a random loss caused by a bit error or the like. In addition, CUBIC reduces CWND even for a line with a small number of buffers in the network, like a line with a large number of buffers.
In this way, CUBIC may reduce CWND more than necessary, and the communication bandwidth is effectively used in circuits where the buffer in the network is smaller than the bandwidth delay product (BDP) or in which random loss occurs frequently. There was a problem that could not be done.
なお、前記した特許文献2に記載の手法は、ネットワークの輻輳状態に応じてCWNDを調整することで、帯域の活用を図っている。しかし、この手法は、CUBICのような経過時間に伴う増加関数によってCWNDを制御する輻輳制御方法を想定したものでない。すなわち、特許文献2に記載の手法では、パケットロスによるCWNDの不要な削減を抑えることはできても、輻輳発生後、CWNDの増加速度が低下するため、やはりランダムロスが多発する回線では、CWNDを高速に回線状態に適したサイズに増加させることができず、回線を有効に利用することができないという問題があった。 Note that the technique described in Patent Document 2 described above uses the bandwidth by adjusting CWND according to the congestion state of the network. However, this method does not assume a congestion control method for controlling CWND by an increasing function with elapsed time, such as CUBIC. That is, with the technique described in Patent Document 2, although the CWND reduction due to packet loss can be suppressed, the CWND increase rate decreases after congestion occurs. Cannot be increased to a size suitable for the line condition at high speed, and the line cannot be used effectively.
本発明は、このような問題に鑑みてなされたものであり、輻輳ウインドウサイズ(CWND)を制御するウインドウ制御方式によってパケットのデータ送信量を制御する際に、通信帯域を有効に活用することが可能なパケット送信装置およびそのプログラムを提供することを課題とする。 The present invention has been made in view of such problems, and it is possible to effectively utilize a communication band when controlling the data transmission amount of a packet by a window control method for controlling a congestion window size (CWND). It is an object of the present invention to provide a possible packet transmission device and a program thereof.
前記課題を解決するため、請求項1に記載のパケット送信装置は、送達確認応答なしに送信可能なパケット数を示す輻輳ウインドウサイズを予め定めた増加関数によって増加させ、パケットロスが発生したときに前記輻輳ウインドウサイズを削減するウインドウ制御方式によってパケットを送信するパケット送信装置において、往復遅延時間計測手段と、輻輳ウインドウサイズ削減手段と、パケットロス原因判定手段と、増加関数パラメータ決定手段と、輻輳ウインドウサイズ増加手段と、を備える構成とした。
In order to solve the above problem, the packet transmission device according to
かかる構成において、パケット送信装置は、パケットロスが発生したときに、輻輳ウインドウサイズ削減手段によって、輻輳ウインドウサイズを削減する。ここで、輻輳ウインドウサイズ削減手段は、予め定めた割合で輻輳ウインドウサイズを削減したサイズと、パケットロス発生時の往復遅延時間に対する往復遅延時間の最小時間の割合を輻輳ウインドウサイズに乗算したサイズのうちで、大きい方のサイズを新たな輻輳ウインドウサイズとする。
これによって、輻輳ウインドウサイズ削減手段は、少なくとも往復遅延時間が増加した分に相当するデータ量以上、すなわち、ネットワーク上にバッファされているパケット量よりも、輻輳ウインドウサイズを削減することがないため、ネットワーク上の空きの発生を抑えることができる。
In such a configuration, the packet transmission device reduces the congestion window size by the congestion window size reduction means when packet loss occurs. Here, the congestion window size reduction means is a size obtained by multiplying the congestion window size by a size obtained by reducing the congestion window size by a predetermined ratio and a ratio of the minimum round-trip delay time to the round-trip delay time when a packet loss occurs. Among them, the larger size is set as a new congestion window size.
As a result, the congestion window size reduction means does not reduce the congestion window size more than the amount of data corresponding to at least the increase in the round trip delay time, that is, the amount of packets buffered on the network. The occurrence of free space on the network can be suppressed.
また、パケット送信装置は、パケットロス原因判定手段によって、往復遅延時間の増加量に応じてパケットロスの原因を判定する。ここで、パケットロス原因判定手段は、往復遅延時間の増加量が予め定めた基準よりも大きい場合に、パケットロスがネットワークの輻輳によって発生した輻輳ロスであると判定し、それ以外の場合に、パケットロスがランダムに発生するランダムロスであると判定する。 In addition, the packet transmission apparatus determines the cause of the packet loss by the packet loss cause determination unit according to the increase amount of the round trip delay time. Here, the packet loss cause determination means determines that the packet loss is a congestion loss caused by network congestion when the increase amount of the round-trip delay time is larger than a predetermined reference, and otherwise, It is determined that the packet loss is a random loss that occurs randomly.
そして、パケット送信装置は、増加関数パラメータ決定手段によって、輻輳ウインドウサイズを増加させる増加関数のパラメータを決定する。
ここで、増加関数パラメータ決定手段は、輻輳ウインドウサイズの増加速度を初期化した関数となるように第1増加関数のパラメータを決定する。
Then, the packet transmission apparatus determines an increase function parameter for increasing the congestion window size by the increase function parameter determination means.
Here, the increasing function parameter determining means determines the parameter of the first increasing function so as to be a function in which the increasing speed of the congestion window size is initialized.
また、増加関数パラメータ決定手段は、パケットロスが輻輳ロスと判定された場合に、第1増加関数と同じ関数となるように第2増加関数のパラメータを決定し、パケットロスがランダムロスと判定された場合に、輻輳ウインドウサイズの増加速度がパケットロス発生時から継続して増加する関数となるように第2増加関数のパラメータを決定する。 The increase function parameter determination means determines the parameter of the second increase function so that the packet loss is the same function as the first increase function when the packet loss is determined as the congestion loss, and the packet loss is determined as the random loss. In this case, the parameter of the second increase function is determined so that the increase rate of the congestion window size becomes a function that continuously increases from the time of occurrence of the packet loss.
そして、パケット送信装置は、輻輳ウインドウサイズ増加手段によって、送達確認応答を受信するたびに、輻輳ウインドウサイズを増加させる。ここで、輻輳ウインドウサイズ増加手段は、増加関数パラメータ決定手段で決定されたパラメータで特定される第1増加関数および第2増加関数により演算される輻輳ウインドウサイズのうちで、大きい方のサイズを新たな輻輳ウインドウサイズとする。
これによって、輻輳ウインドウサイズ増加手段は、パケットロスがランダムロスであれば、少なくともパケットロス発生時の増加速度を落とすことなく、輻輳ウインドウサイズを増加させることができる。
Then, the packet transmission device increases the congestion window size by the congestion window size increasing means every time a delivery confirmation response is received. Here, the congestion window size increasing means newly calculates the larger one of the congestion window sizes calculated by the first increasing function and the second increasing function specified by the parameter determined by the increasing function parameter determining means. A large congestion window size.
As a result, the congestion window size increasing means can increase the congestion window size without reducing the increase rate at the time of occurrence of the packet loss if the packet loss is a random loss.
なお、請求項1に記載のパケット送信装置は、パケット送信装置のコンピュータを、データ入力手段、データ送信手段、送達応答確認受信手段、フロー制御手段、往復遅延時間計測手段、輻輳ウインドウサイズ削減手段、パケットロス原因判定手段、増加関数パラメータ決定手段、輻輳ウインドウサイズ増加手段、として機能させるためのパケット送信プログラムで動作させることで実現することができる(請求項2)。
Note that the packet transmission device according to
本発明は、以下に示す優れた効果を奏するものである。
請求項1,2に記載の発明によれば、輻輳ウインドウサイズを削減する際に、往復遅延時間に基づいて求められる輻輳ウインドウサイズよりも、予め定めた割合で削減した方が、輻輳ウインドウサイズが大きければ、それを適用し、輻輳ウインドウサイズを増加させる際に、増加関数を初期化せずに演算した輻輳ウインドウサイズよりも、増加関数を初期化して演算した輻輳ウインドウサイズの方が大きければ、それを適用するため、従来の手法で制御した輻輳ウインドウサイズを下回ることがなく、効率的に回線を使用することができる。
The present invention has the following excellent effects.
According to the invention described in
以下、本発明の実施形態について図面を参照して説明する。
〔パケット送信装置の構成〕
まず、図1を参照して、本発明の実施形態に係るパケット送信装置1の構成について説明する。
Embodiments of the present invention will be described below with reference to the drawings.
[Configuration of packet transmitter]
First, the configuration of the
パケット送信装置1は、図示を省略したデータ送信装置等から入力されたデータ(パケットデータ)を、ウインドウ制御方式によって、そのデータ送信量を制御して、パケット受信装置2に送信するものである。このパケット送信装置1は、パケット受信装置2との間で、送達確認応答なしに送出可能なパケットの数(セグメント数)である輻輳ウインドウサイズ(CWND:Congestion Window Size、以下、単にCWNDという。)を制御し、そのCWNDに応じてフロー制御を行うことで、送信するパケット数(量)を調整する。
ここでは、パケット送信装置1は、図1に示すように、データ入力手段10と、データバッファ(一時記憶手段)11と、フロー制御手段12と、データ送信手段13と、送達確認応答受信手段14と、往復遅延時間計測手段15と、輻輳制御手段16と、を備える。
The
Here, as shown in FIG. 1, the
データ入力手段10は、外部からパケット受信装置2に送信するためのデータ(パケットデータ)を入力するものである。このパケットデータは、例えば、IPパケットである。このデータ入力手段10は、入力されたパケットを逐次データバッファ11に記憶するとともに、フロー制御手段12に対して、パケットを入力した旨の通知を行う。
The data input means 10 is for inputting data (packet data) to be transmitted to the packet receiving device 2 from the outside. This packet data is, for example, an IP packet. The data input means 10 sequentially stores the input packets in the
データバッファ(一時記憶手段)11は、データ入力手段10を介して入力されたパケットデータを一時的に記憶しておくもので、例えば、半導体メモリ等の記憶媒体である。このデータバッファ11に記憶されたパケットデータは、データ送信手段13によって読み出され、データバッファ11は、FIFO(First-In First-Out)として機能する。
The data buffer (temporary storage means) 11 temporarily stores packet data input via the data input means 10 and is a storage medium such as a semiconductor memory. The packet data stored in the
フロー制御手段12は、輻輳制御手段16によって制御されるCWNDに応じて、フロー制御を行うものである。すなわち、フロー制御手段12は、一般的なウインドウ制御方式によって、データ送信手段13から送信するパケット数を制御する。
The
具体的には、フロー制御手段12は、データ入力手段10を介してデータバッファ11に記憶されたパケットを、データ送信手段13に対して送信する旨を指示する。そして、フロー制御手段12は、送達確認応答受信手段14から、送信したパケットに対する送達確認応答(ACK)を受信した段階で、データバッファ11における次に送信すべきパケットの送信番号を更新する。このとき、フロー制御手段12は、輻輳制御手段16から通知されるCWNDのパケット数までは、ACKを受信することなく一度に、データ送信手段13に対して送信を指示することができる。
このように、フロー制御手段12は、輻輳制御手段16によって制御されるCWNDによって、一度にパケット受信装置2に送信するパケット数を制御する。
なお、フロー制御手段12は、送信したパケットに対するACKが所定時間内に受信されない場合(再送タイムアウト)、当該パケットを再送するとともに、再送タイムアウトが発生したことを、輻輳制御手段16に通知する。
Specifically, the
As described above, the
If the ACK for the transmitted packet is not received within a predetermined time (retransmission timeout), the
データ送信手段13は、フロー制御手段12の指示により、データバッファ11に記憶されているパケットを、通信回線を介して、パケット受信装置2に送信するものである。なお、パケットデータには、パケットの宛先が記述されており、データ送信手段13は、その宛先に対してパケットを送信する。例えば、パケットが、IPパケットの場合、IPヘッダに宛先のIPアドレスが記述されている。
The
送達確認応答受信手段14は、データ送信手段13を介して送信されたパケットに対応する送達確認応答(ACK)を、送信先のパケット受信装置2から、通信回線を介して、受信するものである。この送達確認応答受信手段14は、ACKを受信したことをフロー制御手段12、往復遅延時間計測手段15および輻輳制御手段16に通知(ACK受信通知)する。
The delivery confirmation
また、送達確認応答受信手段14は、データ送信手段13から順次送信されたパケットに対するACKが欠落した場合、その旨(パケットロス通知)を、輻輳制御手段16に通知する。なお、パケットロスの検出は、例えば、同一シーケンス番号のACKを3つ連続して受信した場合にロスが発生したとみなす等の一般的な手法により行うことができる。
In addition, the delivery confirmation
往復遅延時間計測手段15は、パケットの送信時刻と、当該パケットに対するACKの受信時刻との差であるパケットの往復遅延時間(RTT)を計測するものである。この往復遅延時間計測手段15は、計測したRTTを輻輳制御手段16に出力する。
このRTTの計測は、一般的な手法を用いればよく、例えば、往復遅延時間計測手段15は、データ送信手段13からパケットの送信時刻を取得し、当該パケットに対するACKの受信時刻との差を演算することで、RTTを求めることができる。あるいは、データ送信手段13が、送信パケットのヘッダに予め送信時刻を書き込み、送達確認応答受信手段14が、当該送信時刻がコピーされたACKを受信することで、RTTを計測することとしてもよい。
The round-trip delay time measuring means 15 measures a round-trip delay time (RTT) of a packet, which is the difference between the packet transmission time and the ACK reception time for the packet. The round trip time measuring means 15 outputs the measured RTT to the congestion control means 16.
The RTT may be measured by using a general method. For example, the round-trip delay
なお、往復遅延時間計測手段15は、計測するRTT(RTTnow)については、予め定めた時間内で平滑化することとする。また、RTTnow以外にも、往復遅延時間計測手段15は、計測中のRTTの最小値(RTTmin)や、予め定めた時間内のRTTのジッタ移動平均(RTTvar)も計測することとする。 The round trip time measuring means 15 smoothes the RTT (RTT now ) to be measured within a predetermined time. In addition to RTT now , the round-trip delay time measuring means 15 measures the minimum value of RTT being measured (RTT min ) and the jitter moving average (RTT var ) of RTT within a predetermined time. .
輻輳制御手段16は、ネットワークの輻輳状態を検出し、その輻輳状態に応じてフロー制御手段12がフロー制御を行う際の輻輳ウインドウサイズ(CWND)を制御するものである。この輻輳制御手段16は、CWNDを指数的に増加させるスロースタートフェーズと、輻輳を考慮してCWNDを増加させる輻輳制御フェーズとの2つのフェーズで動作する。なお、スロースタートフェーズについては、一般的なTCPの動作と同様であるため、以降の説明においては説明を簡略化する。
The
この輻輳制御手段16は、輻輳ウインドウサイズ削減手段160と、パケットロス原因判定手段161と、輻輳ウインドウサイズ増加手段162と、増加関数パラメータ決定手段163と、を備える。
The
輻輳ウインドウサイズ削減手段160は、送達確認応答受信手段14から、パケットロスが発生した旨(パケットロス通知)を通知された段階で、CWNDを削減するものである。この輻輳ウインドウサイズ削減手段160は、削減したCWNDをフロー制御手段12に出力する。
具体的には、輻輳ウインドウサイズ削減手段160は、以下の式(1)により、新たなCWND(CWNDnew)を算出する。
The congestion window
Specifically, the congestion window
この式(1)において、「CWNDloss*(1−β)」は、従来のCUBICと同様、予め定めた割合でCWNDを削減するための計算式である。ここで、CWNDlossは、パケットロスが発生した時点のCWNDである。また、(1−β)は、予め定めた割合であって、βは、例えば、“0.3”である。 In this formula (1), “CWND loss * (1−β)” is a calculation formula for reducing CWND at a predetermined rate, similarly to the conventional CUBIC. Here, CWND loss is the CWND at the time when the packet loss occurs. (1-β) is a predetermined ratio, and β is, for example, “0.3”.
一方、式(1)において、「CWNDloss*RTTmin/RTTnow」は、ネットワーク上にバッファされたパケットのデータ量に応じてCWNDを削減するための計算式である。ここで、CWNDlossは、パケットロスが発生した時点のCWNDである。また、RTTminは、往復遅延時間計測手段15で計測されたRTTの中で最小のRTTである。また、RTTnowは、パケットロスが発生した時点の平滑化したRTTである。
On the other hand, in Expression (1), “CWND loss * RTT min / RTT now ” is a calculation expression for reducing CWND according to the data amount of packets buffered on the network. Here, CWND loss is the CWND at the time when the packet loss occurs. RTT min is the smallest RTT among the RTTs measured by the round trip
すなわち、輻輳ウインドウサイズ削減手段160は、CUBICのように、単に、予め定めた割合でCWNDを削減するのではなく、RTTの増加比の逆比に応じて削減したCWNDの方が、予め定めた割合で削減したCWNDよりも大きければ、大きい値を採用する。
これによって、輻輳ウインドウサイズ削減手段160は、ネットワーク上にバッファされているパケット量よりも、CWNDを削減しないため、パケット送信装置1とパケット受信装置2との間のネットワーク内のバッファが少ない回線であっても、ネットワークの空きの発生を抑え、ネットワークを有効に利用することが可能になる。
That is, the congestion window size reduction means 160 does not simply reduce CWND at a predetermined rate as in CUBIC, but CWND reduced according to the inverse ratio of the RTT increase ratio is predetermined. If it is larger than the CWND reduced by the ratio, a larger value is adopted.
As a result, the congestion window size reduction means 160 does not reduce CWND more than the amount of packets buffered on the network. Therefore, the congestion window size reduction means 160 uses a line with a small buffer in the network between the
また、輻輳ウインドウサイズ削減手段160は、パケットロスが通知された場合、スロースタートフェーズに移行した場合のCWNDの上限値を示すスロースタート閾値であるssthresh(ssthreshnew)を、以下の式(2)に示すように、式(1)で演算されたCWNDnewで更新する。
In addition, the congestion window
この輻輳ウインドウサイズ削減手段160は、更新前のCWND(CWNDloss)と更新後のCWND(CWNDnew)とを、増加関数パラメータ決定手段163に出力する。また、輻輳ウインドウサイズ削減手段160は、更新後のssthreshnewを、輻輳ウインドウサイズ増加手段162に出力する。
The congestion window
パケットロス原因判定手段161は、送達確認応答受信手段14から、パケットロスが発生した旨(パケットロス通知)を通知された段階で、パケットロスの原因を判定するものである。ここでは、パケットロス原因判定手段161は、往復遅延時間計測手段15で計測されるRTTの増加が大きい場合、輻輳によりパケットロスが発生したと判定し、増加が小さい場合、ランダムロスによりパケットロスが発生したと判定する。
具体的には、パケットロス原因判定手段161は、以下の式(3)の大小関係により、パケットロスの原因を判定する。
The packet loss
Specifically, the packet loss
ここで、式(3)の左辺は、往復遅延時間計測手段15で計測されるRTTのジッタ移動平均RTTvar(より正確には、その定数倍)である。この式(3)において、αは予め定めた定数(例えば、α=4)である。 Here, the left side of Equation (3) is the jitter moving average RTT var of RTT measured by the round trip delay time measuring means 15 (more precisely, a constant multiple thereof). In this formula (3), α is a predetermined constant (for example, α = 4).
また、式(3)の右辺は、RTTの遅延増加量を表している。この式(3)において、RTTnowは、パケットロスが発生した時点のRTTである。また、RTTminは、計測されたRTTの最小値である。
すなわち、パケットロス原因判定手段161は、式(3)の左辺で演算した値を基準として、式(3)の右辺で演算したRTTの遅延増加量の方が大きければ、ネットワーク全体に影響のある輻輳によってパケットのロス(輻輳ロス)が発生したと判定する。また、その逆に、パケットロス原因判定手段161は、式(3)の右辺で演算したRTTの遅延増加量が式(3)の左辺で演算した値以下であれば、単発でパケットのロス(ランダムロス)が発生したと判定する。このパケットロス原因判定手段161は、パケットロスの原因の判定結果を増加関数パラメータ決定手段163に出力する。
In addition, the right side of Equation (3) represents the amount of increase in RTT delay. In this equation (3), RTT now is the RTT at the time when packet loss occurs. RTT min is the minimum value of the measured RTT.
That is, the packet loss
輻輳ウインドウサイズ増加手段162は、送達確認応答受信手段14から、ACKを受信した旨(ACK受信通知)を通知された段階で、CWNDを増加させるものである。
この輻輳ウインドウサイズ増加手段162は、スロースタートフェーズにおいて、CWNDに“2”を設定し、ACK受信通知を通知されるたびに、CWNDに“1”を加算して、フロー制御手段12にCWNDを出力する。
そして、送達確認応答受信手段14からパケットロスが発生した旨(パケットロス通知)を通知された段階で、輻輳回避フェーズに移行する。
The congestion window
In the slow start phase, the congestion window
Then, at the stage of notification that a packet loss has occurred (packet loss notification) from the delivery confirmation response receiving means 14, the process proceeds to the congestion avoidance phase.
この輻輳回避フェーズにおいて、輻輳ウインドウサイズ増加手段162は、予め定めたCWNDの増加関数を用いて、CWNDの値を演算し、フロー制御手段12に出力する。この増加関数は、1つの変曲点を有する3次関数である。ここでは、増加関数は、パケットロスが発生したときのCWNDで変曲点に達する3次関数とする。これによって、輻輳ウインドウサイズ増加手段162は、増加関数の変曲点、すなわち、前回のパケットロスが発生した際のCWNDまでは素早く回復させ、増加がほとんどない水平状態をある程度維持した後、再度、CWNDを増加させる。
具体的には、輻輳ウインドウサイズ増加手段162は、CWNDの値として、以下の式(4)に示すように2つの増加関数の演算結果で大きい方を適用する。
In this congestion avoidance phase, the congestion window
Specifically, the congestion window
この式(4)において、「C*(t−k)3+Wmax」は、従来のCUBICと同様、経過時間tの3乗に比例してCWNDを増加させるための増加関数(以下、第1増加関数という。)である。ここで、Cは、予め定めた定数で、例えば、“0.4”である。また、tは、前回パケットロスが発生したときからの経過時間である。また、Wmaxは前回パケットロスが発生したときのCWNDの値である。また、kは、一旦削減されたCWNDをWmaxまで増加させるための時間幅を示す。ここでは、Wmax,kは、増加関数パラメータ決定手段163で決定される。
これによって、第1増加関数「C*(t−k)3+Wmax」のグラフ形状は、図2に示したような関数形となる。すなわち、第1増加関数は、パケットロスが発生した時刻t1から、時間がk経過(時刻tp)するまでにおいて、CWNDを、前回のパケットロスが発生したCWND(Wmax)になるように素早く回復させ、増加関数の変曲点の後、さらにCWNDを増加させるような関数となる。
In this equation (4), “C * (t−k) 3 + W max ” is an increase function (hereinafter referred to as the first function) for increasing CWND in proportion to the cube of the elapsed time t, as in the conventional CUBIC. It is called an increasing function.) Here, C is a predetermined constant, for example, “0.4”. Further, t is an elapsed time from when the previous packet loss occurred. W max is the value of CWND when the previous packet loss occurred. K represents a time width for increasing CWND once reduced to W max . Here, W max , k is determined by the increase function parameter determination means 163.
Accordingly, the graph shape of the first increase function “C * (tk) 3 + W max ” becomes a function shape as shown in FIG. That is, the first increase function quickly recovers CWND from C1 when the packet loss occurred until Clapses (time tp) until CWND (W max ) when the previous packet loss occurred. Then, after the inflection point of the increasing function, the function further increases CWND.
一方、前記式(4)において、「C*(t−n+G)3+Wdiff」は、基本的にはCUBICと同様の増加関数であるが、パケットロスがランダムロスである場合に、パケットロスが発生した際のCWNDの増加速度を継続して再開させる関数(以下、第2増加関数という。)となる。この第2増加関数における第1増加関数と異なるパラメータであるWdiff,G,nは、増加関数パラメータ決定手段163で決定された値であり、その内容については、後記する増加関数パラメータ決定手段163の説明で行うこととする。 On the other hand, in the equation (4), “C * (t−n + G) 3 + W diff ” is basically an increase function similar to that of CUBIC. However, when the packet loss is a random loss, the packet loss is This is a function (hereinafter referred to as a second increase function) for continuously restarting the increase rate of CWND when it occurs. W diff , G, n, which are parameters different from the first increase function in the second increase function, are values determined by the increase function parameter determination means 163, and the contents thereof will be described later as an increase function parameter determination means 163. This will be done in the explanation.
なお、輻輳ウインドウサイズ増加手段162は、フロー制御手段12から、再送タイムアウトが通知された場合、スロースタートフェーズに移行する。すなわち、輻輳ウインドウサイズ増加手段162は、再送タイムアウトが通知された場合、CWNDを“2”に設定し、ACK受信通知を通知されるたびに、CWNDに“1”を加算し、フロー制御手段12にCWNDを出力する。そして、輻輳ウインドウサイズ増加手段162は、CWNDがssthreshに達した段階、あるいは、パケットロスが発生した段階で、輻輳制御フェーズに移行する。
The congestion window
増加関数パラメータ決定手段163は、パケットロス原因判定手段161で判定されたパケットロスの判定結果に基づいて、輻輳ウインドウサイズ増加手段162で使用する増加関数(前記式(4)参照)のパラメータを決定するものである。この増加関数パラメータ決定手段163は、式(4)の第1増加関数のパラメータであるWmax,kと、第2増加関数のパラメータであるWdiff,G,nを決定する。
なお、増加関数パラメータ決定手段163は、パケットロスの判定結果に関わらず、以下の式(5)に示すように、第1増加関数のパラメータであるWmax(Wmax_new)、k(knew)を更新する。
The increase function
It should be noted that the increase function parameter determination means 163, regardless of the packet loss determination result, shows W max (W max_new ), k (k new ), which are parameters of the first increase function, as shown in the following equation (5). Update.
ここで、CWNDlossは、輻輳ウインドウサイズ削減手段160から通知されるパケットロス発生時のCWNDである。また、βは、予め定めた定数であって、例えば、“0.3”である。また、Cは、予め定めた定数で、例えば、“0.4”である。
これによって、第1増加関数におけるCWNDの増加速度は初期化されることになる。
Here, CWND loss is CWND at the time of occurrence of a packet loss notified from the congestion window
As a result, the increasing speed of CWND in the first increasing function is initialized.
また、増加関数パラメータ決定手段163は、第2増加関数のパラメータについては、パケットロス原因判定手段161から通知される判定結果に基づいて、異なる値とする。具体的には、増加関数パラメータ決定手段163は、パケットロス原因判定手段161から、ランダムロスが通知された場合、以下の式(6)に示すように、第2増加関数のパラメータであるWdiff(Wdiff_new),G(Gnew),n(nnew)を決定する。
Further, the increase function
ここで、Wdiff_lastは、直近のパケットロスが発生した際の第2増加関数の変曲点におけるCWND(Wdiff)である。また、CWNDlossおよびCWNDnewは、それぞれ、輻輳ウインドウサイズ削減手段160から通知されるパケットロス発生時のCWNDおよび更新後のCWNDである。また、tlastは、パケットロス発生時のt、つまり前回のパケットロスから今回のパケットロスが発生するまでの経過時間である。また、nloss、Glossは、直近のパケットロスが発生した際のパラメータn,Gである。
なお、スロースタートフェーズから輻輳回避フェーズへ移行した際は、必ず第1増加関数によるCWND計算が実施される。
このように、増加関数パラメータ決定手段163は、図3に示すように、第2増加関数L2において経過時間t1でランダムロスが発生したとすると、CWNDの減少分(CWNDloss−CWNDnew)だけ、Wdiffを減少させるとともに、経過時間t1以降において、第2増加関数L2と同様の傾き(増加速度)でCWNDを継続して増加させる第2増加関数L2′のパラメータを生成する。
Here, W diff — last is CWND (W diff ) at the inflection point of the second increasing function when the most recent packet loss occurs. CWND loss and CWND new are the CWND at the time of packet loss notified from the congestion window
It should be noted that CWND calculation using the first increase function is always performed when the slow start phase is shifted to the congestion avoidance phase.
In this way, as shown in FIG. 3, the increase function
一方、増加関数パラメータ決定手段163は、パケットロス原因判定手段161から、輻輳ロスが通知された場合、以下の式(7)に示すように、第2増加関数のパラメータであるWdiff(Wdiff_new),G(Gnew),n(nnew)を初期化する。
On the other hand, when the congestion loss is notified from the packet loss
ここで、CWNDlossは、輻輳ウインドウサイズ削減手段160から通知されるパケットロス発生時のCWNDである。また、βは、予め定めた定数であって、例えば、“0.3”である。また、Cは、予め定めた定数で、例えば、“0.4”である。
これによって、第2増加関数におけるCWNDの増加速度は初期化されることになる。
この式(7)に示すように、パケットロス原因判定手段161から、輻輳ロスが通知された場合、第2増加関数のパラメータの値は、式(5)に示した第1増加関数のパラメータの値と同じになり、第1増加関数の値および第2増加関数の値は同一となる。
このように、増加関数パラメータ決定手段163は、輻輳ウインドウサイズ増加手段162が用いる増加関数(第1増加関数、第2増加関数)のパラメータを生成する。
Here, CWND loss is CWND at the time of occurrence of a packet loss notified from the congestion window
As a result, the increasing speed of CWND in the second increasing function is initialized.
As shown in the equation (7), when the congestion loss is notified from the packet loss
As described above, the increase function
以上説明したようにパケット送信装置1を構成することで、パケット送信装置1は、パケットロス発生時におけるCWNDの削減量を抑えるとともに、CWNDを高速に回線状態に適したサイズに増加させることができる。
すなわち、パケット送信装置1は、輻輳ウインドウサイズ削減手段160によって、パケットロス発生時おいて、式(1)に示すように、予め定めた割合でCWNDを削減したCWNDと、RTTの増加比の逆比に応じて削減したCWNDとで、大きい方のCWNDを採用するため、バッファが少ない回線であっても、ネットワークの空きの発生を抑え、ネットワークを有効に利用することができる。
By configuring the
In other words, the
また、パケット送信装置1は、輻輳ウインドウサイズ増加手段162によって、パケットロス発生時に、CWND削減後、式(4)に示すように、CWNDの増加速度を初期化した増加関数(第1増加関数)と、CWNDの増加速度を継続して再開させた増加関数(第2増加関数)とで、CWNDが大きい方の関数を適用してCWNDを増加させるため、CWNDを高速に増加させることができる。
例えば、輻輳ウインドウサイズ増加手段162は、図4に示すように、増加関数の変曲点後、高速にCWNDを増加させている段階(経過時間t1)でランダムロスが発生した場合、増加速度を初期化した増加関数である第1増加関数L1よりも、増加速度を継続して再開させた第2増加関数L2を適用することで、CWNDを高速に増加させることができる。
Further, the
For example, as shown in FIG. 4, the congestion window size increasing means 162 increases the increasing speed when a random loss occurs at a stage where the CWND is increased at a high speed (elapsed time t1) after the inflection point of the increasing function. The CWND can be increased at high speed by applying the second increase function L2 that is continuously increased and restarted, rather than the first increase function L1 that is the increased function that has been initialized.
また、例えば、輻輳ウインドウサイズ増加手段162は、図5に示すように、経過時間t1でランダムロスが発生し、経過時間t1から経過時間t2の間、第1増加関数L1の方が第2増加関数L2よりもCWNDが大きくなる場合、第1増加関数で演算されたCWNDを採用し、経過時間t2以降、第2増加関数L2の方が第1増加関数L1よりもCWNDが大きくなる場合、第2増加関数で演算されたCWNDを採用する。そのため、パケット送信装置1は、従来のCUBICのように、単に、増加関数L1のみでCWNDを増加させるよりも高速にCWNDを増加させることができる。
Further, for example, as shown in FIG. 5, the congestion window
以上、パケット送信装置1の構成について説明したが、パケット送信装置1は、コンピュータを、前記した各手段として機能させるためのプログラム(パケット送信プログラム)で動作させることができる。
Although the configuration of the
〔パケット送信装置の動作〕
次に、図6および図7を参照(構成については適宜図1参照)して、本発明の実施形態に係るパケット送信装置1の動作について説明する。
なお、パケット送信装置1におけるフロー制御や、輻輳制御におけるスロースタートフェーズの動作については、一般的なものであるため、ここでは、本発明の特徴である輻輳制御アルゴリズムにおける輻輳制御フェーズの動作、特に、CWNDを制御する動作について説明する。
図6は、送達確認応答受信手段14によって、パケットロスが検出された際のCWNDの削減処理を示す。また、図7は、送達確認応答受信手段14によって、ACKを受信した際のCWNDの増加処理を示す。
[Operation of packet transmission device]
Next, the operation of the
Since the flow control in the
FIG. 6 shows CWND reduction processing when a packet loss is detected by the delivery confirmation response receiving means 14. FIG. 7 shows CWND increase processing when an ACK is received by the delivery confirmation response receiving means 14.
(パケットロス検出に伴うCWND削減処理)
図6に示すように、パケット送信装置1は、送達確認応答受信手段14においてパケットロスが検出されると(ステップS1)、輻輳制御手段16の輻輳ウインドウサイズ削減手段160によって、CWNDを削減する(ステップS2)。
このステップS2では、輻輳ウインドウサイズ削減手段160は、式(1)に示すように、予め定めた割合でCWNDを削減した場合(CWNDloss*(1−β))と、往復遅延時間計測手段15で計測されたRTTを用いて、ネットワーク上にバッファされたパケットのデータ量に応じてCWNDを削減した場合(CWNDloss*RTTmin/RTTnow)とで、大きい方のCWNDを採用する。
これによって、ネットワークの空きの発生を抑え、ネットワークを有効に利用することができる。
(CWND reduction processing associated with packet loss detection)
As shown in FIG. 6, when a packet loss is detected in the delivery confirmation response receiving means 14 (step S1), the
In this step S2, the congestion window
As a result, it is possible to suppress the occurrence of network vacancy and effectively use the network.
その後、パケット送信装置1は、輻輳制御手段16のパケットロス原因判定手段161によって、RTTの増加量に基づいて、パケットロスの原因がランダムロスであるのか、輻輳ロスであるのかを判定する(ステップS3)。
このステップS3では、パケットロス原因判定手段161は、式(3)の左辺に示した往復遅延時間計測手段15で計測されるRTTのジッタ移動平均の定数倍(α*RTTvar)よりも、式(3)の右辺に示したRTTの遅延増加量(RTTnow−RTTmin)の方が大きい場合に、パケットロスが輻輳によって発生した輻輳ロスであると判定する。
また、パケットロス原因判定手段161は、RTTのジッタ移動平均の定数倍(α*RTTvar)が、RTTの遅延増加量(RTTnow−RTTmin)以上であれば、パケットロスがランダムロスであると判定する。
Thereafter, the
In this step S3, the packet loss cause determination means 161 uses an equation that is a constant multiple (α * RTT var ) of the jitter moving average of the RTT measured by the round trip delay time measurement means 15 shown on the left side of the equation (3). When the RTT delay increase amount (RTT now −RTT min ) shown on the right side of (3) is larger, it is determined that the packet loss is a congestion loss caused by congestion.
Further, the packet loss cause determination means 161 indicates that the packet loss is a random loss if the constant multiple of the RTT jitter moving average (α * RTT var ) is equal to or greater than the RTT delay increase amount (RTT now −RTT min ). Is determined.
ここで、パケットロスが輻輳ロスであると判定された場合(ステップS3でYes)、パケット送信装置1は、輻輳制御手段16の増加関数パラメータ決定手段163によって、輻輳ウインドウサイズ増加手段162で用いる増加関数(第1増加関数、第2増加関数)について、輻輳ロス用のパラメータを決定する(ステップS4)。
このステップS4では、増加関数パラメータ決定手段163は、式(5)によって、第1増加関数のパラメータであるWmax,kを決定する。さらに、増加関数パラメータ決定手段163は、式(7)によって、第2増加関数のパラメータであるWdiff,G,nを決定する。
Here, when it is determined that the packet loss is a congestion loss (Yes in step S3), the
In this step S4, the increasing function parameter determining means 163 determines W max , k that is a parameter of the first increasing function, using Equation (5). Further, the increasing function parameter determining means 163 determines W diff , G, n, which are parameters of the second increasing function, according to the equation (7).
一方、パケットロスがランダムロスであると判定された場合(ステップS3でNo)、パケット送信装置1は、輻輳制御手段16の増加関数パラメータ決定手段163によって、輻輳ウインドウサイズ増加手段162で用いる増加関数(第1増加関数、第2増加関数)について、ランダムロス用のパラメータを決定する(ステップS5)。
このステップS5では、増加関数パラメータ決定手段163は、式(5)によって、第1増加関数のパラメータであるWmax,kを決定する。さらに、増加関数パラメータ決定手段163は、式(6)によって、第2増加関数のパラメータであるWdiff,G,nを決定する。
この第2増加関数のパラメータによって、第2増加関数において、CWNDの増加速度を再開し、継続してCWNDを増加させることができる。
以上の動作によって、輻輳制御手段16は、パケットロスが検出された際のCWNDの削減処理を行う。
On the other hand, when it is determined that the packet loss is a random loss (No in step S3), the
In this step S5, the increasing function parameter determining means 163 determines W max , k that is a parameter of the first increasing function, according to the equation (5). Further, the increasing function parameter determining means 163 determines W diff , G, n, which are parameters of the second increasing function, according to the equation (6).
With the parameter of the second increase function, the CWND increase rate can be restarted and continuously increased in the second increase function.
With the above operation, the
(ACK受信に伴うCWND増加処理)
一方、図7に示すように、パケット送信装置1は、送達確認応答受信手段14においてACKが受信されると(ステップS10)、輻輳制御手段16の輻輳ウインドウサイズ増加手段162によって、CWNDを増加させる(ステップS11)。
このステップS11では、輻輳ウインドウサイズ増加手段162は、式(4)に示すように、図6のステップS4またはステップS5で決定されたパラメータで特定される第1増加関数および第2増加関数で、CWNDを演算し、大きい方のCWNDを採用する。
(CWND increase processing associated with ACK reception)
On the other hand, as shown in FIG. 7, when the ACK is received by the delivery confirmation response receiving means 14 (step S10), the
In this step S11, the congestion window
図6および図7で説明したように、パケット送信装置1は、輻輳制御手段16によって、逐次、CWNDの増減制御を行う。そして、このように制御されたCWNDに基づいて、フロー制御手段12が、パケットのウインドウ制御方式に基づくフロー制御を行う。
As described with reference to FIGS. 6 and 7, the
以上、本発明の実施形態に係るパケット送信装置1の構成および動作について説明したが、本発明はこの実施形態に限定されるものではない。
例えば、ここでは、輻輳ウインドウサイズ削減手段160は、式(1)により、「CWNDloss*(1−β)」または「CWNDloss*RTTmin/RTTnow」の大きい方を、新たなCWNDとしたが、「CWNDloss*RTTmin/RTTnow」のみを用いて、新たなCWNDを求めることとしてもよい。
少なくとも、輻輳ウインドウサイズ削減手段160は、RTTの増加比の逆比に応じて削減したCWNDを採用することで、ネットワークの空きの発生を抑え、ネットワークを有効に利用することが可能になる。
The configuration and operation of the
For example, here, the congestion window
At least, the congestion window size reduction means 160 employs CWND reduced in accordance with the inverse ratio of the increase rate of RTT, thereby suppressing the occurrence of network vacancy and making effective use of the network.
また、ここでは、輻輳ウインドウサイズ増加手段162は、式(4)により、第1増加関数「C*(t−k)3+Wmax」と、第2増加関数「C*(t−n+G)3+Wdiff」とで、演算結果が大きい方のCWNDを新たなCWNDとしたが、第1増加関数を用いずに、第2増加関数の演算結果のみを用いて新たなCWNDとしてもよい。
少なくとも、輻輳ウインドウサイズ増加手段162は、第2増加関数のみを用いることで、例えば、図5に示した増加関数の変曲点の前でパケットロスが発生した場合、従来のCUBICに比べてCWNDの増加は減少するが、その差は僅少である。それに比べ、図4に示した高速にCWNDが増加していく途中でパケットロスが発生した場合、パケットロス時点の増加速度を保って、高速にCWNDを増加させることができる。これによって、従来のCUBICに比べてCWNDを高速に増加させることができる。
Further, here, the congestion window
At least, the congestion window size increasing means 162 uses only the second increasing function. For example, when a packet loss occurs before the inflection point of the increasing function shown in FIG. 5, the CWND is compared with the conventional CUBIC. The increase will decrease, but the difference is small. In contrast, when a packet loss occurs while CWND increases at a high speed as shown in FIG. 4, the CWND can be increased at a high speed while maintaining the increasing speed at the time of packet loss. As a result, the CWND can be increased at a higher speed than the conventional CUBIC.
以上、本発明の実施形態や変形例に係るパケット送信装置1について説明したが、パケット送信装置1が送信するパケットデータを受信するパケット受信装置2については、一般的な装置を用いることができる。
The
〔パケット受信装置〕
ここで、図8を参照して、パケット送信装置1が送信するパケットデータを受信する一般的なパケット受信装置2について簡単に説明しておく。
パケット受信装置2は、データ受信手段20と、データバッファ(一時記憶手段)21と、データ出力手段22と、フロー制御手段23と、送達確認応答送信手段24と、を備える。
[Packet receiving device]
Here, with reference to FIG. 8, a general packet receiver 2 that receives packet data transmitted by the
The packet receiving device 2 includes a
データ受信手段20は、通信回線を介して、パケット送信装置1から送信されるパケットデータを受信するものである。このデータ受信手段20は、受信したパケットを逐次データバッファ21に書き込むとともに、フロー制御手段23に対して、パケットを受信した旨の通知を行う。
The
データバッファ(一時記憶手段)21は、データ受信手段20を介して受信されたパケットデータを一時的に記憶しておくもので、例えば、半導体メモリ等の記憶媒体である。このデータバッファ21に記憶されたパケットデータは、データ出力手段22によって読み出され、データバッファ21は、FIFOとして機能する。
The data buffer (temporary storage means) 21 temporarily stores packet data received via the data receiving means 20, and is a storage medium such as a semiconductor memory. The packet data stored in the
データ出力手段22は、データバッファ21に記憶されているパケットを、順次読み出して外部に出力するものである。なお、データ出力手段22は、パケットを読み出した旨をフロー制御手段23に通知する。
The data output means 22 sequentially reads out the packets stored in the
フロー制御手段23は、パケット送信装置1との間でフロー制御を行うものである。
このフロー制御手段23は、データバッファ21の容量で予め定めた最大パケット数(受信ウインドウサイズ)を管理し、データバッファ21に記憶されるパケット数が、受信ウインドウサイズを超過しないように、フロー制御を行う。なお、データバッファ21に記憶されるパケット数は、データ受信手段20で受信されたパケットと、データ出力手段22で出力されるパケットの数で把握することができる。
ここで、フロー制御手段23は、データ受信手段20が受信したパケットに対して、受信した旨と、次に受信すべきパケットを特定する情報を含んだ送達確認応答(ACK)を送達確認応答送信手段24に出力する。
The
The flow control means 23 manages the maximum number of packets (reception window size) determined in advance by the capacity of the
Here, for the packet received by the
送達確認応答送信手段24は、フロー制御手段23から出力される送達確認応答(ACK)を、通信回線を介して、パケット送信装置1に送信するものである。
パケット送信装置1は、以上説明したように、一般的なパケット受信装置2に対して、パケットを送信する場合であっても、ネットワーク上の空きの発生を抑えることができ、帯域が狭くても、効率よくネットワークを使用することができる。また、ランダムロスが多発するようなネットワークであっても、高速にCWNDを増加させることができ、ネットワークを有効に使用することができる。
The delivery confirmation
As described above, the
1 パケット送信装置
10 データ入力手段
11 データバッファ(一時記憶手段)
12 フロー制御手段
13 データ送信手段
14 送達確認応答受信手段
15 往復遅延時間計測手段
16 輻輳制御手段
160 輻輳ウインドウサイズ削減手段
161 パケットロス原因判定手段
162 輻輳ウインドウサイズ増加手段
163 増加関数パラメータ決定手段
1
DESCRIPTION OF
Claims (2)
前記パケットの往復遅延時間を計測する往復遅延時間計測手段と、
前記パケットロスが発生したときに、予め定めた割合で前記輻輳ウインドウサイズを削減したサイズと、当該パケットロス発生時の往復遅延時間に対する往復遅延時間の最小時間の割合を前記輻輳ウインドウサイズに乗算したサイズのうちで、大きい方のサイズを新たな輻輳ウインドウサイズとする輻輳ウインドウサイズ削減手段と、
前記往復遅延時間の増加量が予め定めた基準よりも大きい場合に、前記パケットロスがネットワークの輻輳によって発生した輻輳ロスであると判定し、それ以外の場合に、前記パケットロスがランダムに発生するランダムロスであると判定するパケットロス原因判定手段と、
前記パケットロスが発生したときに、前記輻輳ウインドウサイズを演算する増加関数として、第1増加関数および第2増加関数のそれぞれのパラメータを決定する増加関数パラメータ決定手段と、
送達確認応答を受信するたびに、前記第1増加関数および前記第2増加関数により演算される輻輳ウインドウサイズのうちで、大きい方のサイズを新たな輻輳ウインドウサイズとする輻輳ウインドウサイズ増加手段と、を備え、
前記増加関数パラメータ決定手段は、
前記輻輳ウインドウサイズの増加速度を初期化した関数として前記第1増加関数のパラメータを決定するとともに、
前記パケットロスが輻輳ロスの場合に、前記第1増加関数と同じ関数となるように前記第2増加関数のパラメータを決定し、前記パケットロスがランダムロスの場合に、前記輻輳ウインドウサイズの増加速度が前記パケットロス発生時から継続して増加する関数として前記第2増加関数のパラメータを決定することを特徴とするパケット送信装置。 A packet transmission device that increases a congestion window size indicating the number of packets that can be transmitted without a delivery confirmation response by a predetermined increase function, and transmits a packet by a window control method that reduces the congestion window size when a packet loss occurs In
Round-trip delay time measuring means for measuring round-trip delay time of the packet;
When the packet loss occurs, the congestion window size is multiplied by a size obtained by reducing the congestion window size at a predetermined rate and a ratio of a minimum round-trip delay time to a round-trip delay time at the time of the packet loss occurrence. Congestion window size reduction means that uses a larger one of the sizes as a new congestion window size,
When the increase amount of the round trip delay time is larger than a predetermined reference, it is determined that the packet loss is a congestion loss caused by network congestion, and in other cases, the packet loss occurs randomly. A packet loss cause determination means for determining a random loss;
An increase function parameter determining means for determining respective parameters of the first increase function and the second increase function as an increase function for calculating the congestion window size when the packet loss occurs;
Each time it receives the acknowledgment, among the congestion window size is calculated by the first increasing function and the second increasing function, and the congestion window size increasing means to larger sizes of new congestion window size, equipped with a,
The increasing function parameter determining means includes
Determining a parameter of the first increase function as a function of initializing the increase rate of the congestion window size;
When the packet loss is a congestion loss, the parameter of the second increase function is determined so as to be the same function as the first increase function, and when the packet loss is a random loss, the increase rate of the congestion window size Determining a parameter of the second increasing function as a function that continuously increases from the time of occurrence of the packet loss .
パケットのデータを入力してデータバッファに記憶するデータ入力手段、
前記データバッファに記憶されたパケットのデータを読み出し、通信回線を介して、送信するデータ送信手段、
送信したパケットに対する送達確認応答を受信する送達応答確認受信手段、
前記輻輳ウインドウサイズに基づいて、送信するパケットのデータ量を制御するフロー制御手段、
前記パケットの往復遅延時間を計測する往復遅延時間計測手段、
前記パケットロスが発生したときに、予め定めた割合で前記輻輳ウインドウサイズを削減したサイズと、当該パケットロス発生時の往復遅延時間に対する往復遅延時間の最小時間の割合を前記輻輳ウインドウサイズに乗算したサイズのうちで、大きい方のサイズを新たな輻輳ウインドウサイズとする輻輳ウインドウサイズ削減手段、
前記往復遅延時間の増加量が予め定めた基準よりも大きい場合に、前記パケットロスがネットワークの輻輳によって発生した輻輳ロスであると判定し、それ以外の場合に、前記パケットロスがランダムに発生するランダムロスであると判定するパケットロス原因判定手段、
前記パケットロスが発生したときに、前記輻輳ウインドウサイズを演算する増加関数として、第1増加関数および第2増加関数のそれぞれのパラメータを決定する増加関数パラメータ決定手段、
送達確認応答を受信するたびに、前記第1増加関数および前記第2増加関数により演算される輻輳ウインドウサイズのうちで、大きい方のサイズを新たな輻輳ウインドウサイズとする輻輳ウインドウサイズ増加手段、として機能させ、
前記増加関数パラメータ決定手段は、
前記輻輳ウインドウサイズの増加速度を初期化した関数として前記第1増加関数のパラメータを決定するとともに、
前記パケットロスが輻輳ロスの場合に、前記第1増加関数と同じ関数となるように前記第2増加関数のパラメータを決定し、前記パケットロスがランダムロスの場合に、前記輻輳ウインドウサイズの増加速度が前記パケットロス発生時から継続して増加する関数として前記第2増加関数のパラメータを決定することを特徴とするパケット送信プログラム。 In order to increase the congestion window size indicating the number of packets that can be transmitted without a delivery confirmation response by a predetermined increase function, and to transmit a packet by a window control method that reduces the congestion window size when a packet loss occurs, The packet transmission device computer
Data input means for inputting packet data and storing it in a data buffer;
Data transmission means for reading out the packet data stored in the data buffer and transmitting the data via a communication line;
A delivery response confirmation receiving means for receiving a delivery confirmation response to the transmitted packet;
Flow control means for controlling the data amount of packets to be transmitted based on the congestion window size;
Round-trip delay time measuring means for measuring round-trip delay time of the packet;
When the packet loss occurs, the congestion window size is multiplied by a size obtained by reducing the congestion window size at a predetermined rate and a ratio of a minimum round-trip delay time to a round-trip delay time at the time of the packet loss occurrence. Congestion window size reduction means that uses the larger one of the sizes as a new congestion window size,
When the increase amount of the round trip delay time is larger than a predetermined reference, it is determined that the packet loss is a congestion loss caused by network congestion, and in other cases, the packet loss occurs randomly. A packet loss cause determination means for determining a random loss;
An increasing function parameter determining means for determining respective parameters of the first increasing function and the second increasing function as increasing functions for calculating the congestion window size when the packet loss occurs;
Each time it receives the acknowledgment, the among the congestion window size is computed by first increasing function and the second increasing function, the congestion window size increasing means to larger sizes of new congestion window size, as to function,
The increasing function parameter determining means includes
Determining a parameter of the first increase function as a function of initializing the increase rate of the congestion window size;
When the packet loss is a congestion loss, the parameter of the second increase function is determined so as to be the same function as the first increase function, and when the packet loss is a random loss, the increase rate of the congestion window size Determining a parameter of the second increasing function as a function that continuously increases from the time of occurrence of the packet loss .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012240283A JP6101046B2 (en) | 2012-10-31 | 2012-10-31 | Packet transmission apparatus and program thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012240283A JP6101046B2 (en) | 2012-10-31 | 2012-10-31 | Packet transmission apparatus and program thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014090367A JP2014090367A (en) | 2014-05-15 |
JP6101046B2 true JP6101046B2 (en) | 2017-03-22 |
Family
ID=50791942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012240283A Expired - Fee Related JP6101046B2 (en) | 2012-10-31 | 2012-10-31 | Packet transmission apparatus and program thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6101046B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017038297A (en) | 2015-08-12 | 2017-02-16 | キヤノン株式会社 | Communication device, communication method and communication system |
JP6727107B2 (en) * | 2016-08-17 | 2020-07-22 | 日本電信電話株式会社 | Packet communication system, congestion control method therefor, and congestion control program |
JP2021061454A (en) * | 2017-12-21 | 2021-04-15 | 日本電気株式会社 | Information processing device |
CN113708985B (en) | 2020-05-20 | 2023-01-06 | 华为技术有限公司 | Flow detection method, device and system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4599554B2 (en) * | 2004-12-15 | 2010-12-15 | 広島市 | TCP congestion control method for broadband, high-delay wireless networks |
JP4147534B2 (en) * | 2005-02-03 | 2008-09-10 | 日本電気株式会社 | Communication apparatus and communication method |
JP4654926B2 (en) * | 2006-02-01 | 2011-03-23 | 日本電気株式会社 | COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND CONgestion Control Method Used In Them |
JP5652388B2 (en) * | 2009-03-06 | 2015-01-14 | 日本電気株式会社 | COMMUNICATION RATE CONTROL METHOD, TRANSMITTER, AND COMMUNICATION SYSTEM |
-
2012
- 2012-10-31 JP JP2012240283A patent/JP6101046B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014090367A (en) | 2014-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11876714B2 (en) | Method and apparatus for network congestion control based on transmission rate gradients | |
Bensley et al. | Data center TCP (DCTCP): TCP congestion control for data centers | |
US9883013B2 (en) | Receive window auto-tuning | |
JP5258938B2 (en) | Communication device | |
JP4778453B2 (en) | Communication terminal, congestion control method, and congestion control program | |
US20070223395A1 (en) | Methods and apparatus for optimizing a TCP session for a wireless network | |
US20070121511A1 (en) | Transmission control protocol (TCP) congestion control using transmission delay components | |
JP5625748B2 (en) | COMMUNICATION DEVICE, COMMUNICATION SYSTEM, PROGRAM, AND COMMUNICATION METHOD | |
WO2011137773A1 (en) | Network packet loss processing method and apparatus | |
US20070223529A1 (en) | Methods and apparatus for estimating bandwidth of a data network | |
US20060227708A1 (en) | Compound transmission control protocol | |
JP6101046B2 (en) | Packet transmission apparatus and program thereof | |
JP4831366B2 (en) | Communication system, communication terminal, relay node, communication method used therefor, and program thereof | |
US8279756B2 (en) | Communication terminal, communication control method, and communication control program | |
JP6173826B2 (en) | Packet transmission apparatus and program thereof | |
JP4435817B2 (en) | Communication terminal, communication control method, and communication control program | |
JP6613742B2 (en) | Data communication control method for performing highly reliable communication on LFN transmission line with load fluctuation and packet transmission loss | |
JP5308364B2 (en) | Transmission device, transmission method, and program | |
US9130843B2 (en) | Method and apparatus for improving HTTP adaptive streaming performance using TCP modifications at content source | |
Bensley et al. | RFC 8257: Data center TCP (DCTCP): TCP congestion control for data centers | |
JP2007013823A (en) | Congestion control method and its communication terminal | |
KR101240312B1 (en) | Methods and apparatus for optimizing a tcp session for a wireless network | |
JP6280680B2 (en) | Packet transmission apparatus, communication terminal and slow start control method in packet communication | |
KR102131427B1 (en) | Method and apparatus for performing a congestion control in stream control transmission protocol | |
JP2005244517A (en) | Unit, method, and program for data transmission control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140328 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150901 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160712 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160902 |
|
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: 20170131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170224 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6101046 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |