JP6417225B2 - Packet transmission apparatus, communication terminal and slow start control method in packet communication - Google Patents

Packet transmission apparatus, communication terminal and slow start control method in packet communication Download PDF

Info

Publication number
JP6417225B2
JP6417225B2 JP2015007501A JP2015007501A JP6417225B2 JP 6417225 B2 JP6417225 B2 JP 6417225B2 JP 2015007501 A JP2015007501 A JP 2015007501A JP 2015007501 A JP2015007501 A JP 2015007501A JP 6417225 B2 JP6417225 B2 JP 6417225B2
Authority
JP
Japan
Prior art keywords
packet
congestion window
window size
time
slow start
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015007501A
Other languages
Japanese (ja)
Other versions
JP2016134712A (en
Inventor
智史 小山
智史 小山
青木 勝典
勝典 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting Corp
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 Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2015007501A priority Critical patent/JP6417225B2/en
Publication of JP2016134712A publication Critical patent/JP2016134712A/en
Application granted granted Critical
Publication of JP6417225B2 publication Critical patent/JP6417225B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、パケット通信によってデータを伝送する技術に関し、特に、送達確認に基づいて輻輳ウインドウサイズを決定しパケット送信に関するスロースタート制御を行うパケット送信装置、通信端末及びスロースタート制御方法に関する。   The present invention relates to a technique for transmitting data by packet communication, and more particularly to a packet transmission device, a communication terminal, and a slow start control method for determining a congestion window size based on delivery confirmation and performing slow start control related to packet transmission.

品質の保証がされていないベストエフォートタイプのIP(Internet Protocol)ネットワークでは、ネットワーク機器内部でのバッファ溢れや、伝送中のビットエラー等によって送信パケットの廃棄が発生する。そのため、確実にデータを伝送するための送達確認を行うプロトコルとしてTCP(Transmission Control Protocol)が幅広く利用されている(例えば、非特許文献1参照)。   In a best effort type IP (Internet Protocol) network whose quality is not guaranteed, a transmission packet is discarded due to a buffer overflow in a network device, a bit error during transmission, or the like. For this reason, TCP (Transmission Control Protocol) is widely used as a protocol for confirming delivery for reliably transmitting data (see, for example, Non-Patent Document 1).

例えば、図12に示すように、TCPを利用して相互通信接続を行う通信端末10,20において、通信端末10にはパケット送信装置11及びパケット受信装置12が設けられ、通信端末20にはパケット送信装置22及びパケット受信装置21が設けられる。パケット送信装置11及びパケット受信装置21とパケット送信装置22及びパケット受信装置12はそれぞれ同様の機能を有し、代表してパケット送信装置11及びパケット受信装置21に注目して説明する。パケット送信装置11は、データ送信用パケットを所定の通信路を介してパケット受信装置21に送信すると、パケット受信装置21は、受信した旨の報告として送達確認応答用パケットをパケット送信装置11に送信する。   For example, as illustrated in FIG. 12, in communication terminals 10 and 20 that perform mutual communication connection using TCP, the communication terminal 10 is provided with a packet transmission device 11 and a packet reception device 12, and the communication terminal 20 includes a packet. A transmitter 22 and a packet receiver 21 are provided. The packet transmission device 11 and the packet reception device 21, the packet transmission device 22 and the packet reception device 12 have the same functions, respectively, and will be described by paying attention to the packet transmission device 11 and the packet reception device 21 as representatives. When the packet transmission device 11 transmits a data transmission packet to the packet reception device 21 via a predetermined communication path, the packet reception device 21 transmits a delivery confirmation response packet to the packet transmission device 11 as a report indicating that the packet has been received. To do.

より具体的には、TCPでは、パケット受信装置21がパケットを受信すると、受信した旨の報告として、次に送信を要求するパケットの番号をパケット送信装置11に通知する。そして、パケット送信装置11は、パケット受信装置21から通知される報告に基づいて、パケットが正常にパケット受信装置21に到達したことを確認する。パケット送信装置11は、パケット受信装置21から通知される報告に基づいて、送達確認応答なしに送出可能なパケットの数を表す輻輳ウインドウサイズ(cwnd: congestion window size)を調整する。例えばパケットが正常に受信された場合はcwndを拡大し、パケットロスが検出された場合はcwndを縮小する。   More specifically, in TCP, when the packet reception device 21 receives a packet, the packet transmission device 11 is notified of the number of the packet to be transmitted next as a report indicating that the packet has been received. Then, the packet transmission device 11 confirms that the packet has normally reached the packet reception device 21 based on the report notified from the packet reception device 21. The packet transmission device 11 adjusts a congestion window size (cwnd: congestion window size) indicating the number of packets that can be transmitted without a delivery confirmation response based on the report notified from the packet reception device 21. For example, cwnd is expanded when a packet is normally received, and cwnd is reduced when a packet loss is detected.

このcwndを調整する技法は輻輳制御技法と呼ばれ、通信の状態によってその制御技法が切り替えられる。一般的には通信開始時やタイムアウト後に適用される「スロースタートフェーズ」、通信が安定している際に適用される「輻輳回避フェーズ」、ロスパケットを再送するための「ロスリカバリフェーズ」といったフェーズに応じて輻輳制御技法を切り替える。RFC5681には一般的なTCPが用いる輻輳制御技法が記載されている(例えば、非特許文献2参照)。RFC5681に記載されているスロースタートフェーズの動作では、cwndがスロースタート閾値(ssthresh)未満である場合、式(1)によりcwndを拡大する。ssthreshは、スロースタートフェーズと輻輳回避フェーズの切り替えを決定する閾値である。   This technique for adjusting cwnd is called a congestion control technique, and the control technique is switched depending on the state of communication. Phases such as “slow start phase” generally applied at the start of communication or after timeout, “congestion avoidance phase” applied when communication is stable, and “loss recovery phase” to retransmit lost packets The congestion control technique is switched according to the situation. RFC5681 describes a congestion control technique used by a general TCP (for example, see Non-Patent Document 2). In the operation of the slow start phase described in RFC5681, when cwnd is less than the slow start threshold value (ssthresh), cwnd is expanded by Expression (1). ssthresh is a threshold value that determines switching between the slow start phase and the congestion avoidance phase.

cwnd = min(N, MSS) (1)        cwnd = min (N, MSS) (1)

Nは新たに送達確認されたバイト数、MSSはパケットに含まれるデータの最大バイト数である。cwndがssthresh以上になるか、パケットロスが発生した時点でスロースタートフェーズでの動作を終了する。   N is the number of bytes newly confirmed for delivery, and MSS is the maximum number of bytes of data included in the packet. When cwnd exceeds ssthresh or packet loss occurs, the operation in the slow start phase ends.

TCP CUBIC(例えば、非特許文献3参照)やCTCP(例えば、非特許文献4参照)など様々なTCPが提案されているが、「スロースタートフェーズ」での動作はRFC5681と同じであり、「輻輳回避フェーズ」に独自の輻輳制御アルゴリズムが組み込まれている。   Various TCPs such as TCP CUBIC (for example, see Non-Patent Document 3) and CTCP (for example, see Non-Patent Document 4) have been proposed, but the operation in the “slow start phase” is the same as that of RFC5681, and “congestion” A unique congestion control algorithm is incorporated in the “avoidance phase”.

一例のスロースタートフェーズでの動作として、Limited Slow‐Startが提案されている(例えば、非特許文献5参照)。RFC5681では、cwndがssthreshより大きくなるまで式(1)によりcwndを拡大するが、Limited Slow‐Startでは新たにmax_ssthreshという閾値を導入し、cwndがmax_ssthreshより大きくなると1往復遅延時間(rtt:Round Trip Time)辺りに増加するcwndをmax_ssthresh/2に制限する。   As an example of the operation in the slow start phase, Limited Slow-Start has been proposed (see Non-Patent Document 5, for example). In RFC5681, cwnd is expanded by Equation (1) until cwnd becomes larger than ssthresh. However, Limited Slow-Start introduces a new threshold value max_ssthresh, and when cwnd becomes larger than max_ssthresh, one round trip delay time (rtt: Round Trip) Cwnd increasing around (Time) is limited to max_ssthresh / 2.

他例のスロースタートフェーズでの動作として、Hystartが提案されている(例えば、非特許文献6参照)。Hystartでは、スロースタート終了条件についてRFC5681に加えて2つの新しい条件を定義している。1つは、1往復遅延時間(rtt)中に送信するパケット列の送信にかかる時間が閾値を超えた場合に終了する。もう1つは、所定の1計測期間中に送信するパケット列の先頭の数パケットで計測した最小のrttであるrttminが、それまでに計測した最小のrttであるrttbaseよりも閾値以上に大きくなっている場合に終了する。ここに、rttbaseは通信を開始してから現時点までに計測した最小のrttである。 Hystart has been proposed as an operation in the slow start phase of another example (see, for example, Non-Patent Document 6). Hystart defines two new conditions for the slow start end condition in addition to RFC5681. One is ended when the time taken to transmit a packet sequence transmitted during one round-trip delay time (rtt) exceeds a threshold value. The other is that rtt min , which is the minimum rtt measured by the first few packets of the packet sequence transmitted during a predetermined measurement period, is greater than the threshold value than the rtt base, which is the minimum rtt measured so far. Exit if it is larger. Here, the rtt base is the minimum rtt measured from the start of communication until the present time.

また、スロースタートフェーズの前に、独自の帯域測定を行う技法が提案されている(例えば、特許文献1参照)。この技法では、通信開始時にTCPの輻輳ウインドウサイズにはよらず予め決められた数のパケットを送信し、その結果をTCPの輻輳制御方式にフィードバックすることで、より高速に輻輳ウインドウサイズを拡大可能としている。   In addition, a technique for performing a unique band measurement before the slow start phase has been proposed (see, for example, Patent Document 1). With this technique, a predetermined number of packets are sent at the start of communication, regardless of the TCP congestion window size, and the result is fed back to the TCP congestion control method, allowing the congestion window size to be increased more quickly. It is said.

これらのスロースタートフェーズに関する動作を適用可能な従来技術のRFC5681やRFC3742等に基づくパケット送信装置を総括するに、そのパケット送信装置11の概略構成を示すと、図13のようになる。尚、図13に示すパケット送信装置11は、後述する本発明との対比に係る機能ブロックのみを図示したものであり、送達確認を行うパケット通信方式のパケット送信装置としてその他の必要な機能は、従来から知られている既知の技術と同様の構成とすることができ、その詳細な説明は省略する。図13に示す従来技術に基づくパケット送信装置11は、送信時刻書込部111、パケット送信部112、送達確認応答受信部113、パケットロス判定部114及びパケット送信制御部115を備え、パケット送信制御部115は、ロス再送動作部116、ロスリカバリ動作部117、輻輳回避動作部118及びスロースタート動作部119からなる。   To summarize packet transmitting apparatuses based on RFC5681 and RFC3742 of the prior art to which operations relating to these slow start phases can be applied, a schematic configuration of the packet transmitting apparatus 11 is shown in FIG. Note that the packet transmission device 11 shown in FIG. 13 illustrates only functional blocks related to comparison with the present invention described later, and other necessary functions as a packet transmission device of the packet communication method for performing delivery confirmation are as follows: It can be set as the structure similar to the known technique conventionally known, The detailed description is abbreviate | omitted. 13 includes a transmission time writing unit 111, a packet transmission unit 112, a delivery confirmation response reception unit 113, a packet loss determination unit 114, and a packet transmission control unit 115, and includes packet transmission control. The unit 115 includes a loss retransmission operation unit 116, a loss recovery operation unit 117, a congestion avoidance operation unit 118, and a slow start operation unit 119.

送信時刻書込部111は、パケット送信時に送信時刻を記録する。この送信時刻は、パケット送信装置11の本体内メモリ(図示せず)にパケット番号とともに記録することができる。或いは、TCPのタイムスタンプオプションを用いて記録することもできる。   The transmission time writing unit 111 records the transmission time at the time of packet transmission. This transmission time can be recorded together with the packet number in an internal memory (not shown) of the packet transmission device 11. Alternatively, recording can be performed using a TCP time stamp option.

パケット送信部112は、パケット受信装置21に向けてパケットを送信する。その後、送達確認応答受信部113は、パケット受信装置21から通知される送達確認応答用パケットを受信すると、次の処理を開始する。   The packet transmission unit 112 transmits a packet toward the packet reception device 21. Thereafter, when receiving the delivery confirmation response packet notified from the packet receiving device 21, the delivery confirmation response receiving unit 113 starts the next process.

送達確認応答受信部113は、送達確認応答用パケットを受信すると、パケット送信部112からのパケット送信から送達確認応答用パケットを受信するまでにかかったrttを計算する。rttの計算は、本体内メモリに記録した送信時刻と受信時刻の差とすることができる。或いは、TCPタイムスタンプオプションを用いることができる。rttの計算後、送達確認応答受信部113は、パケットロス判定部114へ送達確認応答用パケットとrttを通知する。   When the delivery confirmation response receiving unit 113 receives the delivery confirmation response packet, the delivery confirmation response reception unit 113 calculates an rtt required from the packet transmission from the packet transmission unit 112 to the reception of the delivery confirmation response packet. The calculation of rtt can be the difference between the transmission time and the reception time recorded in the internal memory. Alternatively, a TCP timestamp option can be used. After calculating rtt, the delivery confirmation response receiving unit 113 notifies the packet loss determination unit 114 of the delivery confirmation response packet and rtt.

パケットロス判定部114は、送達確認応答部113から送達確認応答用パケットとrttを受信すると、rttbaseを更新し、パケットロスの発生の有無を判定する。パケットロスが発生している場合には、パケットロス判定部114は、ロス再送動作部116へ送達確認応答用パケットとrttを通知し、所定のパケットロス再送動作を実行させる。パケットロスが発生していない場合は、パケットロス判定部114は、現在の動作フェーズがロスリカバリフェーズの場合はロスリカバリ動作部117へ、輻輳回避フェーズの場合は輻輳回避動作部118へ、送達確認応答用パケットとrttを通知する。また、パケットロス判定部114は、スロースタートフェーズの場合はスロースタート動作部119へ、式(1)に関する所定のスロースタートの動作指示を通知する。 When the packet loss determination unit 114 receives the delivery confirmation response packet and the rtt from the delivery confirmation response unit 113, the packet loss determination unit 114 updates the rtt base and determines whether or not a packet loss has occurred. When a packet loss has occurred, the packet loss determination unit 114 notifies the loss retransmission operation unit 116 of the delivery confirmation response packet and the rtt, and executes a predetermined packet loss retransmission operation. If no packet loss occurs, the packet loss determination unit 114 confirms the delivery to the loss recovery operation unit 117 when the current operation phase is the loss recovery phase, and to the congestion avoidance operation unit 118 when the current operation phase is the congestion avoidance phase. Notify the response packet and rtt. Further, in the slow start phase, the packet loss determination unit 114 notifies the slow start operation unit 119 of a predetermined slow start operation instruction related to the equation (1).

ロス再送動作部116は、送達確認応答用パケットとrttを基に送信パケットの再送処理を実行する。   The loss retransmission operation unit 116 executes transmission packet retransmission processing based on the delivery confirmation response packet and the rtt.

ロスリカバリ動作部117は、送達確認応答用パケットとrttを基にパケットロスの発生後の通信状況の回復を行うようcwndの値の拡大又は縮小の調整処理を実行する。   The loss recovery operation unit 117 performs adjustment processing for increasing or reducing the value of cwnd so as to recover the communication state after occurrence of packet loss based on the delivery confirmation response packet and the rtt.

輻輳回避動作部118は、送達確認応答用パケットとrttを基に通信路の輻輳を回避するようcwndの値を更新する。   The congestion avoiding operation unit 118 updates the value of cwnd so as to avoid congestion of the communication path based on the delivery confirmation response packet and the rtt.

ただし、ロス再送動作部116、ロスリカバリ動作部117及び輻輳回避動作部118は、一般的なTCPなどを含み既知の輻輳制御技法に基づいたレート制御処理を実行するように構成すればよく、その動作の更なる詳細については省略する。   However, the loss retransmission operation unit 116, the loss recovery operation unit 117, and the congestion avoidance operation unit 118 may be configured to execute a rate control process based on a known congestion control technique including general TCP. Further details of the operation are omitted.

スロースタート動作部119は、パケットロスが発生していない間、式(1)を基にcwndの値を拡大するよう更新する。   The slow start operation unit 119 updates the value of cwnd to be enlarged based on Expression (1) while no packet loss occurs.

このようにして、パケット送信制御部115は、パケットロスの発生の有無に応じて各種の動作フェーズに基づいたレート制御を実行する。   In this way, the packet transmission control unit 115 executes rate control based on various operation phases according to whether or not packet loss has occurred.

特許第4367505号明細書Japanese Patent No. 4367505

“RFC793-Transmission Control Protocol”、[online]、昭和56(西暦1981)年9月策定、DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION、[平成26年12月19日検索]、インターネット〈URL:http://www.rfc-base.org/txt/rfc-793.txt〉“RFC793-Transmission Control Protocol”, [online], formulated in September 1981, DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION, [searched on December 19, 2014], Internet <URL: http: // www. rfc-base.org/txt/rfc-793.txt> “RFC5681-TCP Congestion Control”、[online]、平成21(西暦2009)年9月策定、Network Working Group、[平成26年12月19日検索]、インターネット〈URL:http://tools.ietf.org/search/rfc5681〉“RFC5681-TCP Congestion Control”, [online], formulated in September 2009, Network Working Group, [searched on December 19, 2014], Internet <URL: http: //tools.ietf. org / search / rfc5681> Sangtae Ha, Injong Rhee and Lisong Xu,“CUBIC: A New TCP-Friendly High-Speed TCP Variant,”[online]、ACM SIGOPS Operating System Review, Volume 42, Issue 5, July 2008、[平成26年12月19日検索]、インターネット〈URL:http://dl.acm.org/citation.cfm?id=1400105〉Sangtae Ha, Injong Rhee and Lisong Xu, “CUBIC: A New TCP-Friendly High-Speed TCP Variant,” [online], ACM SIGOPS Operating System Review, Volume 42, Issue 5, July 2008, [December 19, 2014 Day search], Internet <URL: http://dl.acm.org/citation.cfm?id=1400105> kun Tan, Jingmin Song, Qian Zhang and Murari Sridharan,“A Compound TCP Approach for High-speed and Long Distance Networks,” [online]、 INFOCOM 2006. 25th IEEE International Conference on Computer Communications. Proceedings, April 2006, [平成26年12月19日検索]、インターネット〈URL:http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4146841&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4146841〉kun Tan, Jingmin Song, Qian Zhang and Murari Sridharan, “A Compound TCP Approach for High-speed and Long Distance Networks,” [online], INFOCOM 2006. 25th IEEE International Conference on Computer Communications. Proceedings, April 2006, [Heisei 26 December 19th]], Internet <URL: http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4146841&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all. jsp% 3Farnumber% 3D4146841> “RFC3742-Limited Slow-Start for TCP with Large Congestion windows”、[online]、平成16(西暦2004)年3月策定、Network Working Group、[平成26年12月19日検索]、インターネット〈URL:https://tools.ietf.org/html/rfc3742〉“RFC3742-Limited Slow-Start for TCP with Large Congestion windows”, [online], formulated in March 2004, Network Working Group, [searched on December 19, 2014], Internet <URL: https : //tools.ietf.org/html/rfc3742> Sangtae Ha and Injong Rhee, “Hybrid slow start for high-bandwidth and long-distance networks,” [online]、 PFLDnet, 2008,[平成26年12月19日検索]、インターネット〈URL:http://netsrv.csc.ncsu.edu/export/hybridstart_pfldnet08.pdf〉Sangtae Ha and Injong Rhee, “Hybrid slow start for high-bandwidth and long-distance networks,” [online], PFLDnet, 2008, [searched on December 19, 2014], Internet <URL: http: // netsrv. csc.ncsu.edu/export/hybridstart_pfldnet08.pdf>

RFC5681では、通信開始時にはssthreshは十分に大きい値(例えば取りうる最大の値)に設定されることが推奨されており、結果的にパケットロスが発生するまでスロースタートフェーズが継続する。パケットロスが発生するまで急速にcwndを拡大しネットワークにパケットを送出するため、他のトラフィックに影響を与えてしまう。また、パケットロスが発生すると損失したパケットを再度送り直す必要があるため、自身の通信効率も低下する。   In RFC5681, it is recommended that ssthresh be set to a sufficiently large value (for example, the maximum value that can be taken) at the start of communication. As a result, the slow start phase continues until a packet loss occurs. Since cwnd is expanded rapidly and packets are sent to the network until packet loss occurs, other traffic is affected. In addition, when packet loss occurs, it is necessary to resend the lost packet, so that its own communication efficiency also decreases.

そこで、パケットロスを発生させずにスロースタートフェーズから輻輳回避フェーズへ移行することで上記の問題を解決することができる。ただし、非特許文献5に開示されるLimited Slow‐Startではロスが発生する前にcwndの増加速度を落とすことで一度に多くのパケットロスが発生すること避けるが、パケットロスが発生するまではスロースタートフェーズが終了しないため、最終的にパケットロスが発生してしまう。また、通信開始時にはmax_ssthreshの値は不明であり、RFC5681と同じ挙動となってしまうという問題がある。   Thus, the above problem can be solved by shifting from the slow start phase to the congestion avoidance phase without causing packet loss. However, the Limited Slow-Start disclosed in Non-Patent Document 5 avoids many packet losses at once by reducing the increase rate of cwnd before the loss occurs, but it is slow until the packet loss occurs. Since the start phase does not end, packet loss eventually occurs. Further, the value of max_ssthresh is unknown at the start of communication, and there is a problem that the behavior is the same as RFC5681.

また、非特許文献6に開示されるHystartではスロースタートフェーズにおいて送信されるパケットのrttを用い、パケットロスが発生する前に輻輳を検知することで輻輳回避フェーズへ移行する技法を提示している。しかし、Hystartでは有線ネットワークのように伝搬遅延が安定した環境を前提にしており、各rtt期間に計測するrttのうち、先頭の数サンプルのみを用いて輻輳検知を実施しているため、無線ネットワークのように輻輳とは無関係に伝搬遅延が変化するネットワークでは、cwndが拡大する前に輻輳回避フェーズへ移行してしまうことがある。   In addition, Hystart disclosed in Non-Patent Document 6 presents a technique of using the rtt of a packet transmitted in the slow start phase and shifting to the congestion avoidance phase by detecting congestion before packet loss occurs. . However, Hystart assumes an environment in which propagation delay is stable like a wired network, and performs congestion detection using only the first few samples of rtt measured during each rtt period. In a network in which the propagation delay changes regardless of congestion as described above, a transition to the congestion avoidance phase may occur before cwnd expands.

また、特許文献1に開示される技法では、通信開始時に回線状況が不明なまま、予め定められた負荷をかけるため、輻輳を引き起こし回線の品質を下げる可能性がある。   Also, with the technique disclosed in Patent Document 1, since a predetermined load is applied while the line status is unknown at the start of communication, there is a possibility of causing congestion and lowering the line quality.

本発明は、上述の問題に鑑みてなされたものであり、本発明の目的は、送達確認を行うパケット通信において、無線ネットワークのような遅延変動が起きやすい環境でも通信開始時におけるパケットロスを抑制し、高速な通信を可能にするパケット通信におけるパケット送信装置、通信端末及びスロースタート制御方法を提供することにある。   The present invention has been made in view of the above-described problems, and an object of the present invention is to suppress packet loss at the start of communication even in an environment in which delay fluctuation is likely to occur in packet communication for confirming delivery. Then, it is providing the packet transmitter in the packet communication which enables high-speed communication, a communication terminal, and the slow start control method.

本発明によるパケット送信装置は、スロースタートフェーズにおいて、パケットの送受信結果から輻輳ウインドウサイズの上限値を決定し、スロースタートフェーズ終了判定に用いるよう構成する。   The packet transmission device according to the present invention is configured to determine the upper limit value of the congestion window size from the packet transmission / reception result in the slow start phase and use it for the end determination of the slow start phase.

即ち、本発明のパケット送信装置は、送達確認に基づいて輻輳ウインドウサイズを決定しパケット送信に関するスロースタート制御を行うパケット送信装置であって、パケット送信の送達確認として通知される送達確認応答用パケットを受信し、該パケット送信の送信時刻と該送達確認応答用パケットの受信時刻との差から当該パケット送信の送達確認に基づく往復遅延時間を算出する送達確認応答受信手段と、通信開始から輻輳ウインドウサイズを拡大しつつ輻輳判定を行って、輻輳と判定した際にスロースタートフェーズから輻輳回避フェーズへ遷移させるように動作するスロースタート制御手段とを備え、前記スロースタート制御手段は、スロースタートフェーズで動作中に、前記往復遅延時間について継続して計測した最小の往復遅延時間と、輻輳ウインドウサイズの更新が為される度に所定の更新式に基づいて更新される輻輳ウインドウサイズの最大値と、当該受信した送達確認応答用パケットに対して最近時に受信したパケット群の送信時刻及び受信時刻とに基づいて、予め定めたパケット遅延量に関する計測期間毎に前記輻輳ウインドウサイズの上限値を決定する輻輳ウインドウ上限算出手段と、前記送達確認応答用パケットを受信する度に直前の1計測期間の経過時に決定された当該輻輳ウインドウサイズの上限値以下で前記輻輳ウインドウサイズを所定幅で拡大し、当該計測期間毎に該輻輳ウインドウサイズの上限値と当該拡大した輻輳ウインドウサイズとを比較して、前記拡大した輻輳ウインドウサイズが該輻輳ウインドウサイズの上限値以上となる際に、スロースタートフェーズから輻輳回避フェーズへ遷移させるように動作する輻輳ウインドウ増加手段と、を有することを特徴とする。   That is, the packet transmission device of the present invention is a packet transmission device that determines the congestion window size based on the delivery confirmation and performs slow start control related to packet transmission, and is a delivery confirmation response packet notified as a delivery confirmation of packet transmission. A delivery confirmation response receiving means for calculating a round trip delay time based on the delivery confirmation of the packet transmission from the difference between the transmission time of the packet transmission and the reception time of the delivery confirmation response packet, and a congestion window from the start of communication Congestion determination is performed while increasing the size, and when it is determined that there is congestion, a slow start control means that operates to transition from the slow start phase to the congestion avoidance phase, the slow start control means, in the slow start phase During operation, the minimum round-trip delay measured continuously for the round-trip delay time. Time, the maximum value of the congestion window size that is updated based on a predetermined update formula each time the congestion window size is updated, and the packet group received at the most recent time relative to the received acknowledgment packet Congestion window upper limit calculation means for determining an upper limit value of the congestion window size for each measurement period related to a predetermined packet delay amount based on the transmission time and the reception time, and immediately before receiving the delivery confirmation response packet The congestion window size is expanded by a predetermined width below the upper limit value of the congestion window size determined when one measurement period elapses, and the upper limit value of the congestion window size and the increased congestion window size for each measurement period When the expanded congestion window size is greater than or equal to the upper limit value of the congestion window size, And having a congestion window increasing means which operates to transition from over-start phase to the congestion avoidance phase.

また、本発明のパケット送信装置において、前記輻輳ウインドウ上限算出手段は、前記送達確認応答用パケットを受信する度に、該送達確認応答用パケットに対応する送信パケットの送信レートが前記輻輳ウインドウサイズの最大値から求められる送信レート以上であるか否かを判定する第1判定手段と、前記送達確認応答用パケットを受信する度に、最近時に受信したパケット群に含まれるか否かの判定を行う第2判定手段と、前記第1判定手段及び前記第2判定手段の双方の判定を満たすときは当該最近時に受信したパケット群の受信バイト数に該送達確認応答用パケットにより送達確認したバイト数を加えた受信バイト数を定め、前記第1判定手段及び前記第2判定手段のいずれか一方の判定を満たさないときには、該受信バイト数から求められる当該最近時に受信したパケット群の受信レートを基準にした輻輳ウインドウサイズを算出して当該計測期間毎に更新し、当該更新した輻輳ウインドウサイズを前記輻輳ウインドウサイズの上限値として決定する輻輳ウインドウ上限決定手段と、を有することを特徴とする。   In the packet transmission device according to the present invention, the congestion window upper limit calculation unit may determine that the transmission rate of the transmission packet corresponding to the delivery confirmation response packet is equal to the congestion window size each time the delivery confirmation response packet is received. First determination means for determining whether the transmission rate is equal to or higher than a transmission rate obtained from the maximum value, and each time the delivery confirmation response packet is received, it is determined whether the packet is included in the recently received packet group. When satisfying the determination of both the second determination means and the first determination means and the second determination means, the number of bytes confirmed by the delivery confirmation response packet is added to the number of received bytes of the recently received packet group. When the number of received bytes is determined and the determination of either one of the first determination means and the second determination means is not satisfied, A congestion window that calculates a congestion window size based on a reception rate of a packet group received at the latest time required, updates the window every measurement period, and determines the updated congestion window size as an upper limit value of the congestion window size And an upper limit determining means.

また、本発明のパケット送信装置において、前記輻輳ウインドウサイズの最大値は、前記所定の更新式として、更新された輻輳ウインドウサイズの2倍の値か、又は更新された輻輳ウインドウサイズの2倍の値と、直前の1計測期間の経過時に決定された前記輻輳ウインドウサイズの上限値のうち小さい方の値により更新されることを特徴とする。   In the packet transmission apparatus of the present invention, the maximum value of the congestion window size is a value that is twice the updated congestion window size or twice the updated congestion window size as the predetermined update formula. The value is updated with the smaller value of the congestion window size determined at the time of the immediately preceding one measurement period.

また、本発明のパケット送信装置において、前記スロースタート制御手段は、受信する送達確認応答用パケット毎の往復遅延時間の変動量を監視して連続する往復遅延時間パケットのパケット列の最大の変動量を計測し、当該計測期間毎に当該最大の変動量について移動平均した値を往復遅延時間の平均変動量として算出する遅延変動量推定手段を更に備え、前記輻輳ウインドウ上限算出手段は、前記平均変動量を加味して当該輻輳ウインドウの上限値を決定する手段を有し、前記輻輳ウインドウ増加手段は、前記往復遅延時間について継続して計測した最小の往復遅延時間に当該平均変動量を加えた値と、直前の1計測期間で最小の値として計測した計測期間内最小の往復遅延時間とを比較して、該計測期間内最小の往復遅延時間が前記往復遅延時間について継続して計測した最小の往復遅延時間に当該平均変動量を加えた値を超える際に、スロースタートフェーズから輻輳回避フェーズへ遷移させるように動作する手段を更に有することを特徴とする。   In the packet transmission apparatus of the present invention, the slow start control means monitors the fluctuation amount of the round-trip delay time for each received acknowledgment packet and monitors the maximum fluctuation amount of the packet sequence of successive round-trip delay packets. And a delay fluctuation amount estimating means for calculating a moving average value of the maximum fluctuation amount for each measurement period as an average fluctuation amount of a round-trip delay time, and the congestion window upper limit calculating means includes the average fluctuation A means for determining the upper limit value of the congestion window in consideration of the amount, and the congestion window increasing means is a value obtained by adding the average fluctuation amount to the minimum round-trip delay time continuously measured for the round-trip delay time. And the minimum round-trip delay time in the measurement period measured as the minimum value in the immediately preceding measurement period, the minimum round-trip delay time in the measurement period It further has means for operating to transition from the slow start phase to the congestion avoidance phase when exceeding the value obtained by adding the average fluctuation amount to the minimum round-trip delay time continuously measured for the delay time. .

更に、本発明の通信端末は、本発明のパケット送信装置を備えることを特徴とする。   Furthermore, the communication terminal of the present invention is characterized by including the packet transmission device of the present invention.

更に、本発明のスロースタート制御方法は、送達確認に基づいて輻輳ウインドウサイズを決定しパケット送信に関するスロースタート制御を行うスロースタート制御方法であって、スロースタートフェーズで動作中に、パケット送信の送信時刻と送達確認応答用パケットの受信時刻との差から当該パケット送信の送達確認に基づく往復遅延時間について継続して計測した最小の往復遅延時間と、輻輳ウインドウサイズの更新が為される度に所定の更新式に基づいて更新される輻輳ウインドウサイズの最大値と、当該受信した送達確認応答用パケットに対して最近時に受信したパケット群の送信時刻及び受信時刻とに基づいて、予め定めたパケット遅延量に関する計測期間毎に前記輻輳ウインドウサイズの上限値を決定するステップと、前記送達確認応答用パケットを受信する度に直前の1計測期間の経過時に決定された当該輻輳ウインドウサイズの上限値以下で前記輻輳ウインドウサイズを所定幅で拡大し、当該計測期間毎に該輻輳ウインドウサイズの上限値と当該拡大した輻輳ウインドウサイズとを比較して、前記拡大した輻輳ウインドウサイズが該輻輳ウインドウサイズの上限値以上となる際に、スロースタートフェーズから輻輳回避フェーズへ遷移させるように動作するステップと、を含むことを特徴とする。   Furthermore, the slow start control method of the present invention is a slow start control method for determining a congestion window size based on delivery confirmation and performing slow start control related to packet transmission, and transmitting packet transmission during operation in the slow start phase. The minimum round-trip delay time continuously measured for the round-trip delay time based on the delivery confirmation of the packet transmission based on the difference between the time and the reception time of the delivery confirmation response packet, and predetermined every time the congestion window size is updated A packet delay determined in advance based on the maximum value of the congestion window size updated based on the update formula and the transmission time and reception time of the packet group received at the latest time with respect to the received acknowledgment packet Determining an upper limit value of the congestion window size for each measurement period relating to the amount; Each time an acknowledgment packet is received, the congestion window size is expanded by a predetermined width below the upper limit value of the congestion window size determined at the time of the immediately preceding measurement period, and the congestion window size is increased for each measurement period. A step of comparing an upper limit value with the expanded congestion window size and operating to transition from the slow start phase to the congestion avoidance phase when the expanded congestion window size is equal to or greater than the upper limit value of the congestion window size. It is characterized by including these.

送達確認を行うパケット通信において、無線ネットワークのような遅延変動が起きやすい環境で生じうる輻輳とは無関係の遅延による輻輳の誤検出を抑制し、また、バースト的なパケットロスの発生を抑制し、これにより通信開始時のスロースタートフェーズにおける輻輳ウインドウサイズを拡大させる前の輻輳回避フェーズへの移行を効率よく抑制することができるので、高速な通信が可能となる。   In packet communication that confirms delivery, suppress false detection of congestion due to delay unrelated to congestion that can occur in environments where delay fluctuations are likely to occur, such as wireless networks, and suppress occurrence of bursty packet loss, As a result, the transition to the congestion avoidance phase prior to increasing the congestion window size in the slow start phase at the start of communication can be efficiently suppressed, thus enabling high-speed communication.

本発明による一実施形態のパケット送信装置におけるブロック図である。It is a block diagram in the packet transmitter of one Embodiment by this invention. 本発明による一実施形態のパケット送信装置における送達確認応答受信部の処理を示すフローチャートである。It is a flowchart which shows the process of the delivery confirmation response receiver in the packet transmitter of one Embodiment by this invention. 本発明による一実施形態のパケット送信装置におけるパケットロス判定部の処理を示すフローチャートである。It is a flowchart which shows the process of the packet loss determination part in the packet transmission apparatus of one Embodiment by this invention. (A),(B)は、本発明による一実施形態のパケット送信装置に係るパケット遅延量に関する計測期間の説明図である。(A), (B) is explanatory drawing of the measurement period regarding the packet delay amount which concerns on the packet transmitter of one Embodiment by this invention. 本発明による一実施形態のパケット送信装置における実施例1のスロースタート動作部の構成を示すブロック図である。It is a block diagram which shows the structure of the slow start operation | movement part of Example 1 in the packet transmission apparatus of one Embodiment by this invention. 本発明による一実施形態のパケット送信装置における実施例1のスロースタート動作部の輻輳ウインドウ増加処理を示すフローチャートである。It is a flowchart which shows the congestion window increase process of the slow start operation | movement part of Example 1 in the packet transmitter of one Embodiment by this invention. 本発明による一実施形態のパケット送信装置における実施例1のスロースタート動作部の輻輳ウインドウ上限算出処理を示すフローチャートである。It is a flowchart which shows the congestion window upper limit calculation process of the slow start operation | movement part of Example 1 in the packet transmitter of one Embodiment by this invention. 本発明による一実施形態のパケット送信装置における実施例2のスロースタート動作部の構成を示すブロック図である。It is a block diagram which shows the structure of the slow start operation | movement part of Example 2 in the packet transmission apparatus of one Embodiment by this invention. 本発明による一実施形態のパケット送信装置における実施例2のスロースタート動作部の輻輳ウインドウ増加処理を示すフローチャートである。It is a flowchart which shows the congestion window increase process of the slow start operation | movement part of Example 2 in the packet transmitter of one Embodiment by this invention. 本発明による一実施形態のパケット送信装置における実施例2のスロースタート動作部の遅延変動量算出処理を示すフローチャートである。It is a flowchart which shows the delay variation calculation process of the slow start operation | movement part of Example 2 in the packet transmitter of one Embodiment by this invention. 本発明による一実施形態のパケット送信装置における実施例2のスロースタート動作部の輻輳ウインドウ上限算出処理を示すフローチャートである。It is a flowchart which shows the congestion window upper limit calculation process of the slow start operation | movement part of Example 2 in the packet transmitter of one Embodiment by this invention. TCPを利用して相互通信接続を行う通信端末のネットワーク接続例を説明する図である。It is a figure explaining the network connection example of the communication terminal which performs mutual communication connection using TCP. 従来技術に基づくパケット送信装置におけるブロック図である。It is a block diagram in the packet transmitter based on a prior art.

以下、図面を参照して、本発明による一実施形態のパケット送信装置、通信端末及びスロースタート制御方法を説明する。   Hereinafter, a packet transmission device, a communication terminal, and a slow start control method according to an embodiment of the present invention will be described with reference to the drawings.

図1は、本発明による一実施形態のパケット送信装置11aにおけるブロック図である。パケット送信装置11aは、図13に示すパケット送信装置11に置き換えて、図12に示す通信端末10に設ける装置である。同様に、通信端末20に対しても、パケット送信装置22に置き換えてパケット送信装置11aと同様の構成を設けることができる。したがって、図12に示すように、TCPを利用して相互通信接続を行う通信端末10,20において、パケット送信装置11aは、データ送信用パケットを所定の通信路を介してパケット受信装置21に送信すると、パケット受信装置21は、受信した旨の報告として送達確認応答用パケットをパケット送信装置11aに送信する。尚、図1に示すパケット送信装置11aは、本発明に係る機能ブロックのみを図示したものであり、送達確認を行うパケット通信方式のパケット送信装置としてその他の必要な機能は、従来から知られている既知の技術と同様の構成とすることができ、その詳細な説明は省略する。   FIG. 1 is a block diagram of a packet transmission device 11a according to an embodiment of the present invention. The packet transmission device 11a is a device provided in the communication terminal 10 shown in FIG. 12 in place of the packet transmission device 11 shown in FIG. Similarly, the communication terminal 20 can be replaced with the packet transmission device 22 and provided with the same configuration as the packet transmission device 11a. Therefore, as shown in FIG. 12, in the communication terminals 10 and 20 that perform mutual communication connection using TCP, the packet transmission device 11a transmits the data transmission packet to the packet reception device 21 via a predetermined communication path. Then, the packet reception device 21 transmits a delivery confirmation response packet to the packet transmission device 11a as a report indicating that the packet has been received. Note that the packet transmission device 11a shown in FIG. 1 illustrates only the functional blocks according to the present invention, and other necessary functions as a packet transmission device of a packet communication method for confirming delivery have been conventionally known. The configuration can be the same as that of the known technology, and detailed description thereof is omitted.

図1に示すように、本実施形態のパケット送信装置11aは、送信時刻書込部111、パケット送信部112、送達確認応答受信部113、パケットロス判定部114及びパケット送信制御部115を備え、パケット送信制御部115は、ロス再送動作部116、ロスリカバリ動作部117、輻輳回避動作部118及びスロースタート動作部119aからなる。尚、図13に示すパケット送信装置11と比較して、本実施形態のパケット送信装置11aは、スロースタート動作部119の代わりに、スロースタート動作部119aを備える点で相違しており、同様な構成要素には同一の参照番号を付している。   As shown in FIG. 1, the packet transmission device 11a of the present embodiment includes a transmission time writing unit 111, a packet transmission unit 112, a delivery confirmation response reception unit 113, a packet loss determination unit 114, and a packet transmission control unit 115. The packet transmission control unit 115 includes a loss retransmission operation unit 116, a loss recovery operation unit 117, a congestion avoidance operation unit 118, and a slow start operation unit 119a. Compared with the packet transmission device 11 shown in FIG. 13, the packet transmission device 11a of this embodiment is different in that it includes a slow start operation unit 119a instead of the slow start operation unit 119. Components are given the same reference numbers.

送信時刻書込部111は、データ送信用パケットの送信時の送信時刻を記録する。この送信時刻は、パケット送信装置11の本体内メモリ(図示せず)にパケット番号とともに記録することができる。或いは、TCPのタイムスタンプオプションを用いて記録することもできる。   The transmission time writing unit 111 records the transmission time when transmitting the data transmission packet. This transmission time can be recorded together with the packet number in an internal memory (not shown) of the packet transmission device 11. Alternatively, recording can be performed using a TCP time stamp option.

パケット送信部112は、パケット受信装置21に向けてパケットを送信する。その後、送達確認応答受信部113は、パケット受信装置21から通知される送達確認応答用パケット(以下、「ACKパケット」と表記する。)を受信すると、次の処理を開始する。   The packet transmission unit 112 transmits a packet toward the packet reception device 21. Thereafter, when receiving a delivery confirmation response packet (hereinafter referred to as “ACK packet”) notified from the packet reception device 21, the delivery confirmation response receiving unit 113 starts the next process.

送達確認応答受信部113は、ACKパケットを受信すると、パケット送信部112からのパケット送信からACKパケットを受信するまでにかかった往復遅延時間(rtt)を計算する。rttの計算は、本体内メモリに記録した当該ACKパケットに対応する送信パケットの送信時刻(以下、「sndtime」と表記する。)と当該ACKパケットの受信時刻(以下、「rcvtime」と表記する。)の差とすることができる。或いは、本体内メモリに記録する代わりに、TCPタイムスタンプオプションを用いることができる。rttの計算後、送達確認応答受信部113は、パケットロス判定部114へACKパケットとrtt,sndtime,rcvtimeを通知する。より具体的には、図2に示すように、送達確認応答受信部113は、ACKパケットを受信すると(ステップS11)、送信時刻(sndtime)と受信時刻(rcvtime)の差から往復遅延時間(rtt)を求め(ステップS12)、rttの計算後、パケットロス判定部114へACKパケット及びrtt,sndtime,rcvtimeを通知する(ステップS13)。   When receiving the ACK packet, the delivery confirmation response receiving unit 113 calculates a round trip delay time (rtt) required from the packet transmission from the packet transmission unit 112 to the reception of the ACK packet. The calculation of rtt is expressed as the transmission time (hereinafter referred to as “sndtime”) of the transmission packet corresponding to the ACK packet recorded in the internal memory and the reception time (hereinafter referred to as “rcvtime”) of the ACK packet. ) Difference. Alternatively, a TCP timestamp option can be used instead of recording in the internal memory. After calculating rtt, the delivery confirmation response receiving unit 113 notifies the packet loss determination unit 114 of the ACK packet and the rtt, sndtime, and rcvtime. More specifically, as shown in FIG. 2, when receiving the ACK packet (step S11), the delivery confirmation response receiving unit 113 calculates the round-trip delay time (rtt) from the difference between the transmission time (sndtime) and the reception time (rcvtime). ) (Step S12), and after calculating rtt, the packet loss determination unit 114 is notified of the ACK packet and the rtt, sndtime, and rcvtime (step S13).

パケットロス判定部114は、送達確認応答部113からACKパケットと、rtt,sndtime,rcvtimeを受信すると、ACKパケット内の送達確認番号(「ACK番号」とも称される。)によりパケットロス判定を行う。パケットロスが発生している場合には、パケットロス判定部114は、ロス再送動作部116へACKパケットとrttを通知する。パケットロスが発生していない場合は、パケットロス判定部114は、現在の動作フェーズがロスリカバリフェーズの場合はロスリカバリ動作部117へACKパケットとrttを通知し、輻輳回避フェーズの場合は輻輳回避動作部118へACKパケットとrttを通知し、スロースタートフェーズの場合はスロースタート動作部119aへACKパケットとrtt、sndtime、rcvtimeを通知する。より具体的には、図3に示すように、パケットロス判定部114は、送達確認応答受信部113から送達確認応答用パケットとrttを受信すると(ステップS21)、パケットロスが発生しているか否かの判定を行う(ステップS22)。パケットロスの判定には、例えばACKパケットに含まれるACK番号が同じパケットを3回受信した場合とする方法がある。   When the packet loss determination unit 114 receives the ACK packet and the rtt, sndtime, and rcvtime from the delivery confirmation response unit 113, the packet loss determination unit 114 performs the packet loss determination based on the delivery confirmation number (also referred to as “ACK number”) in the ACK packet. . When a packet loss has occurred, the packet loss determination unit 114 notifies the loss retransmission operation unit 116 of the ACK packet and rtt. If no packet loss has occurred, the packet loss determination unit 114 notifies the loss recovery operation unit 117 of the ACK packet and rtt if the current operation phase is the loss recovery phase, and congestion avoidance if the current operation phase is the congestion avoidance phase. The ACK packet and rtt are notified to the operation unit 118, and in the slow start phase, the ACK packet and rtt, sndtime, and rcvtime are notified to the slow start operation unit 119a. More specifically, as shown in FIG. 3, when the packet loss determination unit 114 receives a delivery confirmation response packet and rtt from the delivery confirmation response reception unit 113 (step S21), whether or not a packet loss has occurred. Is determined (step S22). For example, the packet loss may be determined when a packet having the same ACK number included in the ACK packet is received three times.

パケットロスが発生している場合には(ステップS22:Yes)、パケットロス判定部114は、ロス再送動作部116へACKパケットとrttを通知し、所定のパケットロス再送動作を実行させる(ステップS23)。パケットロスが発生していない場合は(ステップS22:No)、パケットロス判定部114は、現在の動作フェーズがロスリカバリフェーズの場合はロスリカバリ動作部117へ(ステップS24,S25)、輻輳回避フェーズの場合は輻輳回避動作部118へ(ステップS24,S26)、ACKパケットとrttを通知する。また、パケットロス判定部114は、スロースタートフェーズの場合は本発明に係るスロースタート動作部119aへ、ACKパケットとrtt、sndtime、rcvtimeを通知する(ステップS24,S27)。   When packet loss has occurred (step S22: Yes), the packet loss determination unit 114 notifies the loss retransmission operation unit 116 of the ACK packet and rtt, and executes a predetermined packet loss retransmission operation (step S23). ). If no packet loss has occurred (step S22: No), the packet loss determination unit 114 proceeds to the loss recovery operation unit 117 (steps S24 and S25) if the current operation phase is the loss recovery phase (step S24, S25). In this case, the ACK packet and rtt are notified to the congestion avoiding operation unit 118 (steps S24 and S26). In the slow start phase, the packet loss determination unit 114 notifies the slow start operation unit 119a according to the present invention of the ACK packet and the rtt, sndtime, and rcvtime (steps S24 and S27).

パケット送信制御部115は、パケットロスの発生の有無に応じて各種の動作フェーズに基づいたレート制御を実行する。尚、ロス再送動作部116、ロスリカバリ動作部117及び輻輳回避動作部118は、一般的なTCPなどを含み既知の輻輳制御技法に基づいたレート制御処理を実行するように構成すればよく、その動作の更なる詳細については省略する。特に、パケット送信制御部115は、スロースタート動作部119aによる比較的高速に輻輳ウインドウサイズを拡大するスロースタートフェーズと、輻輳回避動作部118による比較的緩やかに輻輳ウインドウサイズを調整する輻輳回避フェーズとを遷移しながらレート制御を実行するよう動作する。   The packet transmission control unit 115 executes rate control based on various operation phases according to whether or not packet loss has occurred. The loss retransmission operation unit 116, the loss recovery operation unit 117, and the congestion avoidance operation unit 118 may be configured to execute rate control processing based on a known congestion control technique including general TCP. Further details of the operation are omitted. In particular, the packet transmission control unit 115 includes a slow start phase in which the congestion window size is increased at a relatively high speed by the slow start operation unit 119a, and a congestion avoidance phase in which the congestion window size is adjusted relatively slowly by the congestion avoidance operation unit 118. It operates to execute rate control while transitioning.

詳細に後述するが、本発明に係る実施例1のスロースタート動作部119aは、通信を開始してから現時点までに計測した最小のrttであるrttbaseを用い、このrttbaseを比較・監視しつつ、パケットの送受信結果から輻輳ウインドウサイズの上限値(以下、「cwndlimit」と表記する。)を決定し、スロースタートフェーズの終了判定に用いるよう構成される。また、本発明に係る実施例2のスロースタート動作部119aは、通信を開始してから現時点までに計測した最小のrttであるrttbaseと、受信したACKパケットに対応するrttに関して予め定めた1計測期間毎に計測する全てのrttの中で最小のrttであるrttminを算出・更新し、このrttbase及びrttminを比較・監視しつつ、パケット遅延の変動量を考慮してパケットの送受信結果から輻輳ウインドウサイズの上限値(cwndlimit)を決定し、スロースタートフェーズの終了判定に用いるよう構成される。尚、本発明に係るrttminは、非特許文献6に開示されるHystartにおける最小のrtt(rttmin)とは相違する点に留意する。 As will be described in detail later, the slow start operation unit 119a according to the first embodiment of the present invention uses an rtt base which is the minimum rtt measured from the start of communication until the present time, and compares and monitors this rtt base. On the other hand, an upper limit value of the congestion window size (hereinafter referred to as “cwnd limit ”) is determined from the packet transmission / reception result, and is used for determining the end of the slow start phase. In addition, the slow start operation unit 119a according to the second embodiment of the present invention determines a predetermined 1 for the rtt base that is the minimum rtt measured from the start of communication until the present time and the rtt corresponding to the received ACK packet. Calculate and update rtt min , which is the minimum rtt among all the rtts measured for each measurement period, compare and monitor this rtt base and rtt min , and send and receive packets in consideration of the amount of packet delay variation An upper limit value (cwnd limit ) of the congestion window size is determined from the result, and is used to determine the end of the slow start phase. It should be noted that the rtt min according to the present invention is different from the minimum rtt (rtt min ) in Hystart disclosed in Non-Patent Document 6.

ここで、「計測期間」に関して説明する。例えば、図4(A)に示すように、通信端末10が連続的に送信するデータ送信用パケットD1,D2,D3を通信端末20に向けて送信するとともに、データ送信用パケットD1,D2,D3の各々に対応するACKパケットACK1,ACK2,ACK3を受信する場合を考えたとき、1計測期間は、計測期間の計測の開始から通信端末10(パケット送信装置11a)が最初に送信するパケットに対する送達確認応答(ACK)が到着するまで、とすることができる。   Here, the “measurement period” will be described. For example, as shown in FIG. 4A, the data transmission packets D1, D2, and D3 transmitted continuously by the communication terminal 10 are transmitted to the communication terminal 20, and the data transmission packets D1, D2, and D3 are transmitted. Considering the case of receiving ACK packets ACK1, ACK2, and ACK3 corresponding to each of the packets, one measurement period is a delivery to a packet that is first transmitted by the communication terminal 10 (packet transmission apparatus 11a) from the start of measurement of the measurement period Until an acknowledgment (ACK) arrives.

或いは、図4(B)に示すように、1計測期間は、計測期間の計測の開始から所定時間経過時まで(例えば、直前の1計測期間における最小のrtt(rttmin)経過時まで)、とすることができる。尚、計測期間は、IPデータフローに対して連続的に定めてもよいし、間欠的に定めてもよく、計測期間で求めたrttminは少なくとも次回の計測期間でrttminを求めるまで保持するように構成し、rttminを用いるcwnd等の更新にはその更新時点で保持するrttminを用いるようにする。 Alternatively, as shown in FIG. 4B, one measurement period is from the start of measurement in the measurement period until a predetermined time has elapsed (for example, until the minimum rtt (rtt min ) has elapsed in the immediately preceding measurement period), It can be. The measurement period may be continuously determined for IP data flow, may be determined intermittently, rtt min as determined by the measurement period is maintained until obtaining a rtt min at least the next measurement period configured as, to update such cwnd using rtt min to allow use rtt min holding at that update time.

(実施例1のスロースタート動作部)
まず、本発明に係る実施例1のスロースタート動作部119aについて、図5乃至図7を参照して説明する。図5は、本発明に係る実施例1のスロースタート動作部119aの構成を示すブロック図である。図6は、本発明に係る実施例1のスロースタート動作部119aの輻輳ウインドウ増加処理を示すフローチャートである。図7は、本発明に係る実施例1のスロースタート動作部119aの輻輳ウインドウ上限算出処理を示すフローチャートである。
(Slow start operation part of Example 1)
First, the slow start operation unit 119a according to the first embodiment of the present invention will be described with reference to FIGS. FIG. 5 is a block diagram illustrating a configuration of the slow start operation unit 119a according to the first embodiment of the present invention. FIG. 6 is a flowchart showing the congestion window increasing process of the slow start operation unit 119a according to the first embodiment of the present invention. FIG. 7 is a flowchart illustrating the congestion window upper limit calculation process of the slow start operation unit 119a according to the first embodiment of the present invention.

図5に示すように、実施例1のスロースタート動作部119aは、輻輳ウインドウ増加処理を実行する輻輳ウインドウ増加部1191と、輻輳ウインドウ上限算出処理を実行する輻輳ウインドウ上限算出部1192とを備える。   As illustrated in FIG. 5, the slow start operation unit 119a according to the first embodiment includes a congestion window increasing unit 1191 that executes a congestion window increasing process and a congestion window upper limit calculating unit 1192 that executes a congestion window upper limit calculating process.

まず、図6を参照して、輻輳ウインドウ増加部1191による輻輳ウインドウ増加処理を説明する。   First, the congestion window increasing process by the congestion window increasing unit 1191 will be described with reference to FIG.

輻輳ウインドウ増加部1191は、パケットロス判定部114からACKパケットと、rtt,sndtime,rcvtimeを受信すると(ステップS31)、式(2)によりrttbaseを更新する(ステップS32,S33)。rttbaseは通信開始から通信中に計測したrttの最小値である。rttbaseの通信開始時における初期値は、とりうる最大の値など、或る決まった値とすることができる。 When the congestion window increasing unit 1191 receives the ACK packet and the rtt, sndtime, and rcvtime from the packet loss determining unit 114 (step S31), the congestion window increasing unit 1191 updates the rtt base according to the equation (2) (steps S32 and S33). rtt base is the minimum value of rtt measured during communication from the start of communication. The initial value at the start of rtt base communication can be a certain value such as the maximum possible value.

if rttbase > rtt (2)
then rttbase = rtt
if rtt base > rtt (2)
then rtt base = rtt

次に、輻輳ウインドウ増加部1191は、ACKパケットと、rttbase,sndtime,rcvtime,cwndmaxを輻輳ウインドウ上限算出部1192に通知する(ステップS34)。cwndmaxは、輻輳ウインドウ上限算出部1192において輻輳ウインドウサイズの上限値(cwndlimit)の算出に用いる値である。cwndmaxの値の計算方法(更新方法)や、輻輳ウインドウサイズの上限値(cwndlimit)の算出手順については後述する。 Next, the congestion window increasing unit 1191 notifies the congestion window upper limit calculating unit 1192 of the ACK packet and the rtt base , sndtime, rcvtime, and cwnd max (step S34). cwnd max is a value used by the congestion window upper limit calculation unit 1192 to calculate the upper limit value (cwnd limit ) of the congestion window size. The calculation method (update method) of the cwnd max value and the calculation procedure of the upper limit value (cwnd limit ) of the congestion window size will be described later.

続いて、輻輳ウインドウ増加部1191は、輻輳ウインドウ上限算出部1192からcwndlimitを受信すると(ステップS35)、1計測期間を経過していたか否かを判定する(ステップS36)。1計測期間の判定方法として、前述した図4のように、例えば1計測期間の測定を開始してから最初に送信したパケットに対する送達確認応答を受信した時とする方法や、1計測期間の開始時から所定時間が経過した時とする方法がある。この1計測期間が経過していた場合(ステップS36:Yes)、輻輳ウインドウ増加部1191は、スロースタートフェーズを終了するか否かの判定を行う(ステップS38〜S40)。この判定は現在の輻輳ウインドウサイズ(cwnd)と輻輳ウインドウサイズの上限値(cwndlimit)の比較によって行われ、即ち式(3)によって行う。 Subsequently, when the congestion window increasing unit 1191 receives the cwnd limit from the congestion window upper limit calculating unit 1192 (step S35), the congestion window increasing unit 1191 determines whether one measurement period has elapsed (step S36). As a determination method for one measurement period, for example, as shown in FIG. 4 described above, for example, a method in which a delivery confirmation response to a packet transmitted first after starting measurement in one measurement period is received, or start of one measurement period There is a method in which a predetermined time has elapsed from the time. When this one measurement period has elapsed (step S36: Yes), the congestion window increasing unit 1191 determines whether or not to end the slow start phase (steps S38 to S40). This determination is made by comparing the current congestion window size (cwnd) and the upper limit value (cwnd limit ) of the congestion window size, that is, by equation (3).

if cwnd ≧ cwndlimit (3)
then スロースタートフェーズを終了、
else スロースタートフェーズを継続。
if cwnd ≧ cwnd limit (3)
then end the slow start phase,
else Continue the slow start phase.

そして、スロースタートフェーズを終了する場合(ステップS38:Yes)、式(4)に示す処理を行う(ステップS40)。   When the slow start phase is finished (step S38: Yes), the process shown in the equation (4) is performed (step S40).

ssthresh = cwnd (4)
cwnd = cwnd + MSS
ssthresh = cwnd (4)
cwnd = cwnd + MSS

一方、スロースタートフェーズを継続する場合(ステップS38:No)、式(5)に示す処理を行う(ステップS39)。   On the other hand, when the slow start phase is continued (step S38: No), the processing shown in the equation (5) is performed (step S39).

cwnd = min(cwnd + γ,cwndlimit) (5) cwnd = min (cwnd + γ, cwnd limit ) (5)

γは、1回のACKパケットの受信で増加させる輻輳ウインドウサイズ(cwnd)の大きさであり、MSS、又は今回受信したACKパケットにより送達確認が行われたバイト数とすることができる。   γ is the size of the congestion window size (cwnd) that is increased by receiving one ACK packet, and can be MSS or the number of bytes that have been acknowledged by the ACK packet received this time.

また、スロースタートフェーズを継続する場合(ステップS38:No)、cwndmaxの更新も行う(ステップS39)。cwndmaxは、輻輳ウインドウ上限算出部1192において輻輳ウインドウサイズの上限値(cwndlimit)の算出に用いる値であり、より具体的には次回のスロースタートフェーズ終了判定までに取りうる輻輳ウインドウの最大値であり、cwndmaxの初期値として、通信開始時には取りうる最大の値とすることができる。また、通信開始後にスロースタート閾値(ssthresh)を用いてスロースタートフェーズと輻輳回避フェーズの切り替えが為されていたときは、今回のスロースタートフェーズに用いるcwndmaxの初期値をスロースタート閾値(ssthresh)の値とすることができる。 Further, when the slow start phase is continued (step S38: No), cwnd max is also updated (step S39). cwnd max is a value used by the congestion window upper limit calculation unit 1192 to calculate the upper limit value (cwnd limit ) of the congestion window size, more specifically, the maximum value of the congestion window that can be taken until the next slow start phase end determination. The initial value of cwnd max can be the maximum value that can be taken at the start of communication. In addition, when the slow start threshold (ssthresh) is used to switch between the slow start phase and the congestion avoidance phase after the start of communication, the initial value of cwnd max used for the current slow start phase is set to the slow start threshold (ssthresh) Value.

cwndmaxは、今回のスロースタートフェーズにてcwndが更新される度に所定の更新式に基づいて更新され、より具体的な更新式の例として、輻輳ウインドウ増加部1191は、例えば更新するcwndmaxを、更新されたcwndの2倍の値とすることや、更新されたcwndの2倍の値と、直前の1計測期間の経過時に決定された輻輳ウインドウサイズの上限値cwndlimitのうち小さい方の値として決定する。 The cwnd max is updated based on a predetermined update formula every time cwnd is updated in the current slow start phase. As an example of a more specific update formula, the congestion window increasing unit 1191 updates, for example, cwnd max Is the smaller of the updated value of cwnd, the updated value of cwnd, and the upper limit value cwnd limit of the congestion window size determined at the end of the previous measurement period. Determined as the value of.

そして、1計測期間が経過していないと判定した場合(ステップS36:No)、輻輳ウインドウ増加部1191は、式(5)に示す処理を行う(ステップS37)。   If it is determined that one measurement period has not elapsed (step S36: No), the congestion window increasing unit 1191 performs the process shown in equation (5) (step S37).

次に、図7を参照して、輻輳ウインドウ上限算出部1192による輻輳ウインドウ上限算出処理を説明する。   Next, a congestion window upper limit calculation process performed by the congestion window upper limit calculation unit 1192 will be described with reference to FIG.

輻輳ウインドウ上限算出部1192は、輻輳ウインドウ増加部1191からACKパケットと、rttbase,sndtime,rcvtime,cwndmaxを受信すると(ステップS41)、輻輳ウインドウサイズの上限値cwndlimitを下記の手順で計算する。cwndlimitは、今回のスロースタートフェーズ中に輻輳ウインドウサイズを増加させる場合の上限値であり、ACKパケットから受信レートを算出し計算を行う。cwndlimitの初期値は、事前に想定した予め定めた最大値(取りうる最大の値)とすることができる。 When the congestion window upper limit calculation unit 1192 receives the ACK packet and the rtt base , sndtime, rcvtime, and cwnd max from the congestion window increase unit 1191 (step S41), the congestion window upper limit calculation unit 1192 calculates the upper limit value cwnd limit of the congestion window size according to the following procedure. . The cwnd limit is an upper limit value when the congestion window size is increased during the current slow start phase, and the reception rate is calculated from the ACK packet and calculated. The initial value of cwnd limit can be a predetermined maximum value assumed in advance (the maximum value that can be taken).

輻輳ウインドウサイズの上限値cwndlimitの算出は、ACKパケットを受信する度に行い、まず、cwndmaxから求められる送信レートと、今回受信したACKパケットに対応する送信パケットの送信レートとの比較を行う(ステップS42)。 The upper limit value cwnd limit of the congestion window size is calculated every time an ACK packet is received. First, the transmission rate obtained from cwnd max is compared with the transmission rate of the transmission packet corresponding to the ACK packet received this time. (Step S42).

今回受信したACKパケットに対応する送信パケットの送信レートが、cwndmaxから求められる送信レート以上であるときに(ステップS42:Yes)、続いて、今回受信したACKパケットが最近時に受信したパケット群(即ち、一連の送信パケットに対応するものとしてみなすACKパケット群)に含まれるか否かの判定を行う(ステップS43)。これにより、無線ネットワークのような遅延変動が起きやすい環境でスロースタートフェーズ時に生じうる輻輳による遅延変動を有して受信するACKパケットが一連の送信パケットに対応するものとして扱うか否かを判定する。この判定には、以下の二例の判定方法が有効である。 When the transmission rate of the transmission packet corresponding to the ACK packet received this time is equal to or higher than the transmission rate obtained from cwnd max (step S42: Yes), subsequently, the packet group ( That is, it is determined whether or not the packet is included in an ACK packet group regarded as corresponding to a series of transmission packets (step S43). This determines whether or not an ACK packet received with delay variation due to congestion that can occur during the slow start phase in an environment where delay variation is likely to occur, such as a wireless network, is handled as a series of transmission packets. . For this determination, the following two determination methods are effective.

第1例の判定方法は、式(6)により行う。尚、sndtimelastは、直前に受信したACKパケットに対応する送信パケットの送信時刻である。 The determination method of the first example is performed by equation (6). Note that sndtime last is the transmission time of the transmission packet corresponding to the ACK packet received immediately before.

if sndtime−sndtimelast ≦ (MSS/cwndmax)×rttbase (6)
then 最近時に受信したパケット群に含まれる。
else 最近時に受信したパケット群に含まれない。
if sndtime−sndtime last ≦ (MSS / cwnd max ) × rtt base (6)
then included in the recently received packet group.
else Not included in recently received packets.

第2例の判定方法は、式(7)により行う。尚、rcvbyteは最近時に受信したパケット群(即ち、一連の送信パケットに対応するものとしてみなしたACKパケット群)で受信したバイト数、sndtimefirstは最近時に受信したパケット群の先頭のACKパケットに対応する送信パケットの送信時刻である。 The determination method of the second example is performed by Expression (7). Rcvbyte is the number of bytes received in the recently received packet group (that is, the ACK packet group regarded as corresponding to a series of transmitted packets), and sndtime first corresponds to the first ACK packet of the recently received packet group. This is the transmission time of the transmission packet to be transmitted.

if sndtime−sndtimefirst
((rcvbyte + 送達確認バイト数)/cwndmax)×rttbase (7)
then 最近時に受信したパケット群に含まれる。
else 最近時に受信したパケット群に含まれない。
if sndtime−sndtime first
((rcvbyte + delivery confirmation byte count) / cwnd max ) x rtt base (7)
then included in the recently received packet group.
else Not included in recently received packets.

今回受信したACKパケットに対応する送信パケットの送信レートが、cwndmaxから求められる送信レート以上でないとき(ステップS42:No)、及び、今回受信したACKパケットが最近時に受信したパケット群(即ち、一連の送信パケットに対応するものとしてみなすACKパケット群)に含まれないと判定したとき(ステップS43:No)、最近時に受信したパケット群の記録から式(8)により、最近時に受信したパケット群(即ち、一連の送信パケットに対応するものとしてみなしたACKパケット群)の受信レートを基準にして、この受信レートを満たす輻輳ウインドウサイズcwndestを算出する(ステップS45)。 When the transmission rate of the transmission packet corresponding to the ACK packet received this time is not equal to or higher than the transmission rate obtained from cwnd max (step S42: No), and the packet group (that is, a series of packets received recently) ACK packet group that is regarded as corresponding to the transmission packet of No. (step S43: No), the packet group received recently (from the record of the packet group received recently) according to equation (8) ( That is, a congestion window size cwnd est that satisfies this reception rate is calculated on the basis of the reception rate of an ACK packet group that is regarded as corresponding to a series of transmission packets (step S45).

cwndest = rcvbyte × rttbase/(rcvtimelast−rcvtimefirst) (8) cwnd est = rcvbyte x rtt base / (rcvtime last -rcvtime first ) (8)

ここに、rcvbyteは最近時に受信したパケット群(即ち、一連の送信パケットに対応するものとしてみなしたACKパケット群)で受信したバイト数、rcvtimelastは最近時に受信したパケット群のうち最後のACKパケットを受信した時刻、rcvtimefirstは最近時に受信したパケット群のうち先頭のACKパケットを受信した時刻である。 Here, rcvbyte is the number of bytes received in the recently received packet group (that is, the ACK packet group regarded as corresponding to a series of transmission packets), rcvtime last is the last ACK packet in the recently received packet group Rcvtime first is the time when the first ACK packet was received among the group of packets received recently.

また、1rtt以上に輻輳ウインドウサイズの算出に要する計測状態が継続することを防ぐことを意図して、1rtt未満で定期的に、輻輳ウインドウサイズの算出を行うようにするために、式(9)に示すように、今回受信したACKパケットに対応する送信パケットに対して連続した送信の期間(sndtime - sndtimefirst)が所定の閾値(本例では、rttbase /2)を超える場合も、式(8)による輻輳ウインドウサイズcwndestを算出するようにする。 Further, in order to prevent the measurement state required for calculating the congestion window size from continuing for 1 rtt or more, in order to calculate the congestion window size periodically at less than 1 rtt, Equation (9) As shown in FIG. 5, even when the continuous transmission period (sndtime-sndtime first ) for the transmission packet corresponding to the ACK packet received this time exceeds a predetermined threshold value (rtt base / 2 in this example) The congestion window size cwnd est according to 8) is calculated.

if sndtime−sndtimefirst > rttbase /2 (9)
then 式(8)による輻輳ウインドウサイズの算出。
if sndtime-sndtime first > rtt base / 2 (9)
Then, the congestion window size is calculated by equation (8).

cwndestを算出すると、式(10)により1計測期間でのcwndestの最大値cwndlimit-tmpを更新する(ステップS46,S47)。尚、cwndlimit-tmpの初期値は、cwndlimit-tmp = 0である。 When cwnd est is calculated, the maximum value cwnd limit-tmp of cwnd est in one measurement period is updated by equation (10) (steps S46 and S47). The initial value of cwnd limit-tmp is cwnd limit-tmp = 0.

if cwndlimit-tmp < cwndest (10)
then cwndlimit-tmp = cwndest
if cwnd limit-tmp <cwnd est (10)
then cwnd limit-tmp = cwnd est

更に、次に受信するACKパケットに関するステップS44の判定や、輻輳ウインドウサイズの算出のために、式(11)のように各変数をリセットする(ステップS48)。   Further, each variable is reset as shown in Expression (11) in order to determine in step S44 regarding the ACK packet to be received next and to calculate the congestion window size (step S48).

rcvbyte = 0 (11)
sndtimefirst = sndtime
rcvtimefirst = rcvtime
rcvbyte = 0 (11)
sndtime first = sndtime
rcvtime first = rcvtime

今回受信したACKパケットに対応する送信パケットの送信レートが、cwndmaxから求められる送信レート以上であり(ステップS42:Yes)、今回受信したACKパケットが最近時に受信したパケット群(即ち、一連の送信パケットに対応するものとしてみなすACKパケット群)に含まれると判定したとき(ステップS43:Yes)、即ち送信間隔に基づく判定で連続したパケット列とみなし、且つ連続したパケット列に関する送信パケットの所定の送信期間が予め定めた閾値を超えない場合、式(12)により、当該連続したパケット列の受信バイト数を更新する(ステップS44)。 The transmission rate of the transmission packet corresponding to the ACK packet received this time is equal to or higher than the transmission rate obtained from cwnd max (step S42: Yes), and the ACK packet received this time is the group of packets received recently (that is, a series of transmissions). (ACK packet group regarded as corresponding to a packet)) (step S43: Yes), that is, it is regarded as a continuous packet sequence based on the determination based on the transmission interval, and a predetermined number of transmission packets related to the continuous packet sequence If the transmission period does not exceed a predetermined threshold, the number of received bytes of the continuous packet sequence is updated by equation (12) (step S44).

rcvbyte = rcvbyte + 送達確認バイト数 (12)       rcvbyte = rcvbyte + delivery confirmation byte count (12)

次に、1計測期間が経過したか否かを判定し(ステップS49)、1計測期間が経過していたと判定するときは(ステップS49:Yes)、cwndlimit-tmpの更新が行われているか否かを判定する(ステップS50)。 Next, it is determined whether or not one measurement period has elapsed (step S49). When it is determined that one measurement period has elapsed (step S49: Yes), is cwnd limit-tmp being updated? It is determined whether or not (step S50).

cwndlimit-tmpの更新が行われている場合に(ステップS50:Yes)、式(13)によりcwndlimitを更新する(ステップS51)。 When the cwnd limit-tmp is updated (step S50: Yes), the cwnd limit is updated by the equation (13) (step S51).

if cwndlimit-tmp > 0 (13)
then cwndlimit = cwndlimit-tmp
cwndlimit-tmp = 0
if cwnd limit-tmp > 0 (13)
then cwnd limit = cwnd limit-tmp ,
cwnd limit-tmp = 0

1計測期間を経過していないと判定したとき(ステップS49:No)、及び、cwndlimit-tmpの更新が行われていないとき(ステップS50:No)、cwndlimitは前回値のままである。 When it is determined that one measurement period has not elapsed (step S49: No) and when cwnd limit-tmp is not updated (step S50: No), cwnd limit remains the previous value.

ステップS50を経てcwndlimitの値が決定されると、式(14)によりsndtimelast, rcvtimelastを更新する(ステップS52)。尚、実施例1では、式(6)による場合のみ、sndtimelastを利用する。 When the value of cwnd limit is determined through step S50, sndtime last and rcvtime last are updated by equation (14) (step S52). In the first embodiment, sndtime last is used only in the case of Expression (6).

sndtimelast = sndtime (14)
rcvtimelast = rcvtime
sndtime last = sndtime (14)
rcvtime last = rcvtime

最後に、輻輳ウインドウ上限算出部1192は、cwndlimitを輻輳ウインドウ増加部1191へ通知する(ステップS53)。したがって、輻輳ウインドウ上限算出部1192は、ステップS42及びステップS43の双方の判定を満たすときは当該最近時に受信したパケット群の受信バイト数に今回受信したACKパケットにより送達確認したバイト数を加えた受信バイト数を定め(ステップS44)、ステップS42及びステップS43のいずれか一方の判定を満たさないときには、該受信バイト数から求められる当該最近時に受信したパケット群の受信レートを基準にした輻輳ウインドウサイズ(cwndlimit-tmp)を算出して1計測期間毎に更新し、1計測期間毎に更新した該輻輳ウインドウサイズ(cwndlimit-tmp)を輻輳ウインドウサイズの上限値(cwndlimit)として決定する。そして、輻輳ウインドウ増加部1191は、ACKパケットを受信する度に1計測期間の経過時に決定されたcwndlimit以下で輻輳ウインドウサイズ(cwnd)を所定幅で拡大し、計測期間毎に、1計測期間の経過時に決定されたcwndlimitと当該拡大したcwndとを比較してスロースタートフェーズから輻輳回避フェーズへの遷移を判定する。 Finally, the congestion window upper limit calculation unit 1192 notifies the congestion window increase unit 1191 of cwnd limit (step S53). Accordingly, the congestion window upper limit calculation unit 1192 receives the sum of the number of bytes received confirmed by the ACK packet received this time to the number of received bytes of the packet group received at the latest time when both determinations of step S42 and step S43 are satisfied. If the number of bytes is determined (step S44) and one of the determinations of step S42 and step S43 is not satisfied, the congestion window size based on the reception rate of the packet group received at the latest time obtained from the number of received bytes ( cwnd limit-tmp ) is calculated and updated every measurement period, and the congestion window size (cwnd limit-tmp ) updated every measurement period is determined as the upper limit value (cwnd limit ) of the congestion window size. Then, every time an ACK packet is received, the congestion window increasing unit 1191 increases the congestion window size (cwnd) by a predetermined width below the cwnd limit determined when one measurement period has elapsed, and for each measurement period, one measurement period. The transition from the slow start phase to the congestion avoidance phase is determined by comparing the cwnd limit determined when elapses with the expanded cwnd.

このように、輻輳ウインドウ増加部1191及び輻輳ウインドウ上限算出部1192を備える実施例1のスロースタート動作部119aを構成し、パケット送信装置11aに具備させることで、バースト的なパケットロスの発生を抑制し、これにより通信開始時のスロースタートフェーズにおける輻輳ウインドウサイズを拡大させる前の輻輳回避フェーズへの移行を効率よく抑制することができるので、高速な通信が可能となる。   As described above, the slow start operation unit 119a of the first embodiment including the congestion window increasing unit 1191 and the congestion window upper limit calculating unit 1192 is configured and included in the packet transmission device 11a, thereby suppressing occurrence of bursty packet loss. As a result, the transition to the congestion avoidance phase prior to increasing the congestion window size in the slow start phase at the start of communication can be efficiently suppressed, thus enabling high-speed communication.

(実施例2のスロースタート動作部)
次に、本発明に係る実施例1のスロースタート動作部119aについて、図8乃至図11を参照して説明する。図8は、本発明に係る実施例2のスロースタート動作部119aの構成を示すブロック図である。図9は、本発明に係る実施例2のスロースタート動作部119aの輻輳ウインドウ増加処理を示すフローチャートである。図10は、本発明に係る実施例2のスロースタート動作部119aの遅延変動量算出処理を示すフローチャートである。図11は、本発明に係る実施例2のスロースタート動作部119aの輻輳ウインドウ上限算出処理を示すフローチャートである。尚、図8は、実施例1と同様な構成要素には同一の参照番号を付している。
(Slow start operation part of Example 2)
Next, the slow start operation unit 119a according to the first embodiment of the present invention will be described with reference to FIGS. FIG. 8 is a block diagram illustrating a configuration of the slow start operation unit 119a according to the second embodiment of the present invention. FIG. 9 is a flowchart showing the congestion window increasing process of the slow start operation unit 119a according to the second embodiment of the present invention. FIG. 10 is a flowchart showing the delay variation calculation processing of the slow start operation unit 119a according to the second embodiment of the present invention. FIG. 11 is a flowchart illustrating the congestion window upper limit calculation process of the slow start operation unit 119a according to the second embodiment of the present invention. In FIG. 8, the same reference numerals are assigned to the same components as those in the first embodiment.

図8に示すように、実施例2のスロースタート動作部119aは、輻輳ウインドウ増加処理を実行する輻輳ウインドウ増加部1191と、輻輳ウインドウ上限算出処理を実行する輻輳ウインドウ上限算出部1192と、輻輳とは無関係の遅延変動量を推定する遅延変動量推定部1193を備える。   As illustrated in FIG. 8, the slow start operation unit 119a according to the second embodiment includes a congestion window increasing unit 1191 that performs a congestion window increasing process, a congestion window upper limit calculating unit 1192 that performs a congestion window upper limit calculating process, and congestion. Includes a delay variation estimation unit 1193 for estimating an irrelevant delay variation.

実施例2において、遅延変動量推定部1193は、受信するACKパケット毎のrttの変動量を監視して連続するACKパケットのパケット列の最大の変動量を計測し、1計測期間毎に当該最大の変動量について移動平均した値をrttの平均変動量として算出する。そして、輻輳ウインドウ上限算出部1192は、このrttの平均変動量を加味して輻輳ウインドウの上限値(cwndlimit)を決定する。そして、輻輳ウインドウ増加部1191は、通信を開始してから現時点までに計測した最小のrtt(rttbase)に当該平均変動量を加えた値と、計測期間内におけるrttについて直前の1計測期間で計測した最小のrtt(rttmin)との比較によってスロースタート終了判定を行い、終了と判定された場合にはスロースタートフェーズから輻輳回避フェーズへ遷移させる。したがって、実施例2は、当該rttの平均変動量を加味してスロースタートフェーズの終了判定を行うことを可能とする点で、実施例1とは相違する。 In the second embodiment, the delay variation estimation unit 1193 monitors the variation amount of the rtt for each received ACK packet, measures the maximum variation amount of the packet sequence of consecutive ACK packets, and calculates the maximum variation for each measurement period. A moving average value of the fluctuation amount is calculated as the average fluctuation amount of the rtt. Then, the congestion window upper limit calculation unit 1192 determines the upper limit value (cwnd limit ) of the congestion window in consideration of the average fluctuation amount of the rtt. The congestion window increasing unit 1191 then adds a value obtained by adding the average fluctuation amount to the minimum rtt (rtt base ) measured from the start of communication until the present time, and rtt within the measurement period in the immediately preceding measurement period. The slow start end determination is performed by comparison with the measured minimum rtt (rtt min ), and when it is determined to end, the transition is made from the slow start phase to the congestion avoidance phase. Therefore, the second embodiment is different from the first embodiment in that the end determination of the slow start phase can be performed in consideration of the average fluctuation amount of the rtt.

まず、図9を参照して、輻輳ウインドウ増加部1191による輻輳ウインドウ増加処理を説明する。   First, the congestion window increasing process by the congestion window increasing unit 1191 will be described with reference to FIG.

輻輳ウインドウ増加部1191は、パケットロス判定部114からACKパケットと、rtt,sndtime,rcvtimeを受信すると(ステップS61)、式(15)によりrttminを更新する(ステップS62,S63)。rttminは直前の1計測期間で決定したrttの最小値である。尚、通信を開始してから1計測期間を経過する前のrttminの値は、通信を開始してから現時点までに計測した最小のrttであるrttbaseと同じ値とすることができる。尚、rttbaseの通信開始時における初期値は、とりうる最大の値など、或る決まった値とすることができる。また、1計測期間の開始から最初に計測したrttについては、その大きさに関わらずrttminに代入する。 When the congestion window increasing unit 1191 receives the ACK packet and the rtt, sndtime, and rcvtime from the packet loss determining unit 114 (step S61), the congestion window increasing unit 1191 updates the rtt min according to the equation (15) (steps S62 and S63). rtt min is the minimum value of rtt determined in the immediately preceding one measurement period. Note that the value of rtt min before the elapse of one measurement period from the start of communication can be set to the same value as the rtt base which is the minimum rtt measured from the start of communication to the present time. Note that the initial value at the start of communication of the rtt base can be a certain value such as the maximum possible value. In addition, the first measured rtt from the start of one measurement period is substituted for rtt min regardless of the size.

if (1計測期間で最初に計測したrtt) or (rttmin > rtt) (15)
then rttmin = rtt
if (rtt first measured in one measurement period) or (rtt min > rtt) (15)
then rtt min = rtt

式(15)によりrttminを更新した場合(ステップS63)、続けて式(2)によりrttbaseを更新する(ステップS64,S65)。rttbaseは通信中に計測したrttの最小値である。通信開始時には、とりうる最大の値など、或る決まった値に初期化することができる。 When rtt min is updated by equation (15) (step S63), the rtt base is updated by equation (2) (steps S64 and S65). rtt base is the minimum value of rtt measured during communication. At the start of communication, it can be initialized to a certain value such as the maximum possible value.

次に、輻輳ウインドウ増加部1191は、遅延変動量推定部1193へACKパケットと、rtt,sndtimeを通知し(ステップS66)、遅延変動量推定部1193からjitteraveを受信する(ステップS67)。jitteraveは輻輳とは無関係の遅延変動量であり、その算出方法は図10を参照して後述する。 Next, the congestion window increasing unit 1191 notifies the delay variation estimation unit 1193 of the ACK packet and the rtt and sndtime (step S66), and receives jitter ave from the delay variation estimation unit 1193 (step S67). Jitter ave is a delay fluctuation amount unrelated to congestion, and a calculation method thereof will be described later with reference to FIG.

次に、輻輳ウインドウ増加部1191は、ACKパケットと、rttbase,jitterave,sndtime,rcvtime,cwndmaxを輻輳ウインドウ上限算出部1192に通知する(ステップS68)。cwndmaxは、輻輳ウインドウ上限算出部1192において輻輳ウインドウサイズの上限値(cwndlimit)の算出に用いる送信パケットを決定するために用いる値である。cwndmaxの値の計算方法(更新方法)は実施例1と同様であり、輻輳ウインドウサイズの上限値(cwndlimit)の算出手順については後述する。 Next, the congestion window increasing unit 1191 notifies the congestion window upper limit calculating unit 1192 of the ACK packet and the rtt base , jitter ave , sndtime, rcvtime, cwnd max (step S68). cwnd max is a value used by the congestion window upper limit calculation unit 1192 to determine a transmission packet used to calculate the upper limit value (cwnd limit ) of the congestion window size. The calculation method (updating method) of the cwnd max value is the same as that of the first embodiment, and the calculation procedure of the upper limit value (cwnd limit ) of the congestion window size will be described later.

続いて、輻輳ウインドウ増加部1191は、輻輳ウインドウ上限算出部1192からcwndlimitを受信すると(ステップS69)、1計測期間を経過しているか否かを判定する(ステップS70)。この1計測期間が経過していた場合(ステップS70:Yes)、輻輳ウインドウ増加部1191は、スロースタートフェーズを終了するか否かの判定を行う(ステップS72)。この判定は式(16)によって行う。 Subsequently, when the congestion window increasing unit 1191 receives the cwnd limit from the congestion window upper limit calculating unit 1192 (step S69), the congestion window increasing unit 1191 determines whether one measurement period has elapsed (step S70). When the one measurement period has elapsed (step S70: Yes), the congestion window increasing unit 1191 determines whether or not to end the slow start phase (step S72). This determination is made according to equation (16).

if rttmin > rttbase + jitterave (16)
then スロースタートフェーズを終了、
else 式(3)によりスロースタートフェーズの終了判定へ移行。
if rtt min > rtt base + jitter ave (16)
then end the slow start phase,
else Shift to the end of the slow start phase by Equation (3).

式(3)によるスロースタートフェーズの終了判定は、現在の輻輳ウインドウサイズcwndと輻輳ウインドウサイズの上限値(cwndlimit)との比較によって行い(ステップS73)、スロースタートフェーズを終了する場合(ステップS72:Yes、又はステップS73:Yes)、実施例1と同様に、式(4)に示す処理を行う(ステップS75)。 The end of the slow start phase is determined by the expression (3) by comparing the current congestion window size cwnd with the upper limit value (cwnd limit ) of the congestion window size (step S73), and the slow start phase is ended (step S72). : Yes, or step S73: Yes), the process shown by Formula (4) is performed similarly to Example 1 (step S75).

一方、スロースタートフェーズを継続する場合(ステップS72:No、且つステップS73:No)、実施例1と同様に、式(5)に示す処理を行う(ステップS74)。   On the other hand, when the slow start phase is continued (step S72: No, and step S73: No), the processing shown in Expression (5) is performed as in the first embodiment (step S74).

また、スロースタートフェーズを継続する場合(ステップS72:No、且つステップS73:No)、cwndmaxの更新も行い、rttminは直前の1計測期間で決定したrttの最小値で初期化する(ステップS74)。 When the slow start phase is continued (step S72: No, and step S73: No), cwnd max is also updated, and rtt min is initialized with the minimum value of rtt determined in the immediately preceding one measurement period (step S74).

そして、1計測期間が経過していないと判定した場合(ステップS70:No)、輻輳ウインドウ増加部1191は、式(5)に示す処理を行う(ステップS71)。   If it is determined that one measurement period has not elapsed (step S70: No), the congestion window increasing unit 1191 performs the process shown in equation (5) (step S71).

次に、図10を参照して、遅延変動量推定部1193による遅延変動量算出処理を説明する。   Next, the delay variation calculation processing by the delay variation estimation unit 1193 will be described with reference to FIG.

遅延変動量推定部1193は、輻輳ウインドウ増加部1191からACKパケットと、rtt,sndtimeを受信すると(ステップS81)、式(17)による最近時に受信したパケット群(ACKパケットのパケット列)と連続したパケットであるか否かの判定を行う(ステップS82)。   When the delay variation estimation unit 1193 receives the ACK packet and the rtt and sndtime from the congestion window increase unit 1191 (step S81), the delay variation estimation unit 1193 continues to the recently received packet group (packet sequence of the ACK packet) according to the equation (17). It is determined whether or not it is a packet (step S82).

if sndtime−sndtimelast ≦ β (17)
then 連続したパケット、
else 連続していないパケット。
if sndtime−sndtime last ≦ β (17)
then consecutive packets,
else Packets that are not consecutive.

sndtimelastは、直前に受信したACKパケットに対応する送信パケットの送信時刻であり、βは定数である。βは、パケット送信装置11aが計測可能な最小時間の整数倍や、パケット送信装置11aが1MSSの長さを持つTCPパケットを1つ送信するために必要な時間の整数倍とすることができる。 sndtime last is the transmission time of the transmission packet corresponding to the ACK packet received immediately before, and β is a constant. β can be an integral multiple of the minimum time that can be measured by the packet transmission device 11a or an integral multiple of the time required for the packet transmission device 11a to transmit one TCP packet having a length of 1 MSS.

連続したパケットと判定した場合(ステップS82:Yes)、式(18)により当該ACKパケットに関するパケット間のジッタ(jitter)を計算する(ステップS83)。rttlastは、前回受信したACKパケットで計測したrttである。 When it is determined that the packets are continuous (step S82: Yes), the jitter (jitter) between the packets related to the ACK packet is calculated by the equation (18) (step S83). rtt last is the rtt measured with the previously received ACK packet.

jitter = |rtt−rttlast| (18) jitter = | rtt−rtt last | (18)

jitterの計算後、式(19)の処理を行い、1計測期間中の最大のjitterを表すjittermaxを更新する(ステップS84)。 After calculating jitter, the processing of equation (19) is performed to update jitter max representing the maximum jitter during one measurement period (step S84).

if jittermax < jitter (19)
then jittermax = jitter
if jitter max <jitter (19)
then jitter max = jitter

一方、連続していないパケットと判定した場合(ステップS82:No)や、1計測期間中の最大のjitterを表すjittermaxを更新しないとき(ステップS84:No)、ステップS86に移行する。 On the other hand, when it is determined that the packets are not continuous (step S82: No), or when the jitter max representing the maximum jitter during one measurement period is not updated (step S84: No), the process proceeds to step S86.

そして、jittermaxの値を確定後、1計測期間が経過しているか判定し(ステップS86)、1計測期間が経過している場合(ステップS86:Yes)、jittermaxの値が0より大きいとして算出されていたときは(ステップS89:Yes)、式(20)により平均ジッタ(jitterave)を更新し(ステップS90)、jittermaxの値を0にリセットする(ステップS91)。jittermaxの値を0にリセットしたとき(ステップS91)、及び、1計測期間が経過している場合でもjittermaxの値が0のときは(ステップS89:No)、ステップS87に移行する。jitteraveの初期値は0である。尚、αは1未満の重み付け定数であり、例えば0.5とするなど予め定めた値とすることができる。 Then, after determining the value of jitter max , it is determined whether one measurement period has elapsed (step S86). If one measurement period has elapsed (step S86: Yes), it is assumed that the value of jitter max is greater than zero. If it has been calculated (step S89: Yes), the average jitter (jitter ave ) is updated by equation (20) (step S90), and the value of jitter max is reset to 0 (step S91). When the jitter max value is reset to 0 (step S91), and when the jitter max value is 0 even when one measurement period has elapsed (step S89: No), the process proceeds to step S87. The initial value of jitter ave is 0. Α is a weighting constant less than 1, and may be a predetermined value such as 0.5.

jitterave = (1−α)×jitterave +α×jittermax (20) jitter ave = (1-α) x jitter ave + α x jitter max (20)

次に、今回のACKパケットの受信時に1計測期間が経過していないと判定した場合(ステップS86:No)や、jittermaxの値を0にリセットしたとき(ステップS91)、或いは1計測期間が経過していると判定した場合でもjittermaxの値が0のときは(ステップS89:No)、rttlast, sndtimelastを式(21)により更新する(ステップS87)。 Next, when it is determined that one measurement period has not elapsed when the current ACK packet is received (step S86: No), when the value of jitter max is reset to 0 (step S91), or when one measurement period is Even when it is determined that the time has elapsed, if the value of jitter max is 0 (step S89: No), rtt last and sndtime last are updated by equation (21) (step S87).

rttlast = rtt (21)
sndtimelast = sndtime
rtt last = rtt (21)
sndtime last = sndtime

jitteraveの値を確定後、遅延変動量推定部1193は、輻輳ウインドウ増加部1191へ通知する(ステップS88)。 After determining the value of jitter ave , the delay variation estimation unit 1193 notifies the congestion window increase unit 1191 (step S88).

次に、図11を参照して、輻輳ウインドウ上限算出部1192による輻輳ウインドウ上限算出処理を説明する。   Next, a congestion window upper limit calculation process performed by the congestion window upper limit calculation unit 1192 will be described with reference to FIG.

輻輳ウインドウ上限算出部1192は、輻輳ウインドウ増加部1191からACKパケットと、rttbase,jitterave,sndtime,rcvtime,cwndmaxを受信すると(ステップS101)、輻輳ウインドウサイズの上限値cwndlimitを下記の手順で計算する。cwndlimitは、スロースタートフェーズ中に輻輳ウインドウサイズを増加させる場合の上限値であり、ACKパケットから受信レートを算出し計算を行う。cwndlimitの初期値は、事前に想定した予め定めた最大値(取りうる最大の値)とすることができる。尚、実施例2は、式(6)の処理を式(22)に、式(7)の処理を式(23)に、式(8)の処理を式(24)に、式(9)の処理を式(25)とする以外は、実施例1と同一の処理である。 When the congestion window upper limit calculation unit 1192 receives the ACK packet and the rtt base , jitter ave , sndtime, rcvtime, and cwnd max from the congestion window increase unit 1191 (step S101), the congestion window size upper limit value cwnd limit is set as follows. Calculate with The cwnd limit is an upper limit value when the congestion window size is increased during the slow start phase, and the reception rate is calculated from the ACK packet and calculated. The initial value of cwnd limit can be a predetermined maximum value assumed in advance (the maximum value that can be taken). In the second embodiment, the processing of equation (6) is converted into equation (22), the processing of equation (7) is converted into equation (23), the processing of equation (8) is converted into equation (24), and equation (9). The process is the same as that of the first embodiment except that the process of (2) is changed to the expression (25).

輻輳ウインドウサイズの上限値cwndlimitの算出動作は、ACKパケットを受信すると、まず、cwndmaxから求められる送信レートと、今回受信したACKパケットに対応する送信パケットの送信レートとの比較を行う(ステップS102)。 When the ACK packet is received, the calculation operation of the congestion window size upper limit value cwnd limit first compares the transmission rate obtained from cwnd max with the transmission rate of the transmission packet corresponding to the ACK packet received this time (step S102).

今回受信したACKパケットに対応する送信パケットの送信レートが、cwndmaxから求められる送信レート以上であるときに(ステップS102:Yes)、続いて、今回受信したACKパケットが最近時に受信したパケット群(即ち、一連の送信パケットに対応するものとしてみなすACKパケット群)に含まれるか否かの判定を行う(ステップS103)。これにより、無線ネットワークのような遅延変動が起きやすい環境でスロースタートフェーズ時に生じうる輻輳及びジッタによる遅延変動を有して受信するACKパケットが一連の送信パケットに対応するものとして扱うか否かを判定する。この判定には、以下の二例の判定方法が有効である。 When the transmission rate of the transmission packet corresponding to the ACK packet received this time is equal to or higher than the transmission rate obtained from cwnd max (step S102: Yes), subsequently, the packet group ( That is, it is determined whether or not the packet is included in an ACK packet group regarded as corresponding to a series of transmission packets (step S103). As a result, whether or not an ACK packet received with delay variation due to congestion and jitter that may occur during the slow start phase in an environment where delay variation is likely to occur, such as a wireless network, is handled as a series of transmission packets. judge. For this determination, the following two determination methods are effective.

第1例の判定方法は、式(22)により行う。尚、sndtimelast及びcwndmaxは、実施例1と同様である。 The determination method of the first example is performed according to Equation (22). Note that sndtime last and cwnd max are the same as those in the first embodiment.

if sndtime−sndtimelast ≦(MSS/cwndmax)×(rttbase+jitterave) (22)
then 最近時に受信したパケット群に含まれる。
else 最近時に受信したパケット群に含まれない。
if sndtime-sndtime last ≤ (MSS / cwnd max ) x (rtt base + jitter ave ) (22)
then included in the recently received packet group.
else Not included in recently received packets.

第2例の判定方法は、式(23)により行う。尚、sndtimefirstは、実施例1と同様である。 The determination method of the second example is performed by Expression (23). The sndtime first is the same as that in the first embodiment.

if sndtime−sndtimefirst
((rcvbyte+送達確認バイト数)/cwndmax)×(rttbase+jitterave) (23)
then 最近時に受信したパケット群に含まれる。
else 最近時に受信したパケット群に含まれない。
if sndtime−sndtime first
((rcvbyte + delivery confirmation byte count) / cwnd max ) x (rtt base + jitter ave ) (23)
then included in the recently received packet group.
else Not included in recently received packets.

今回受信したACKパケットに対応する送信パケットの送信レートが、cwndmaxから求められる送信レート以上でないとき(ステップS102:No)、及び、今回受信したACKパケットが最近時に受信したパケット群(即ち、一連の送信パケットに対応するものとしてみなすACKパケット群)に含まれないと判定したとき(ステップS103:No)、最近時に受信したパケット群の記録から式(24)により、その受信レートを満たす輻輳ウインドウサイズcwndestを算出する(ステップS105)。 When the transmission rate of the transmission packet corresponding to the ACK packet received this time is not equal to or higher than the transmission rate obtained from cwnd max (step S102: No), and the group of packets received recently (that is, a series of ACK packets received this time) ACK packet group that is regarded as corresponding to the transmission packet of No. (step S103: No), a congestion window that satisfies the reception rate according to equation (24) from the record of the recently received packet group The size cwnd est is calculated (step S105).

cwndest=rcvbyte×(rttbase+jitterave)/(rcvtimelast−rcvtimefirst) (24) cwnd est = rcvbyte x (rtt base + jitter ave ) / (rcvtime last -rcvtime first ) (24)

また、1rtt以上に輻輳ウインドウサイズの算出に要する計測状態が継続することを防ぐことを意図して、1rtt未満で定期的に、輻輳ウインドウサイズの算出を行うようにするために、式(25)に示すように、今回受信したACKパケットに対応する送信パケットに対して連続した送信の期間(sndtime - sndtimefirst)が所定の閾値(本例では、(rttbase+jitterave)/2)を超える場合も、式(24)による輻輳ウインドウサイズcwndestを算出するようにする。 Further, in order to prevent the measurement state required for calculation of the congestion window size from continuing for 1 rtt or more, in order to calculate the congestion window size periodically at less than 1 rtt, Expression (25) As shown in the above, when the continuous transmission period (sndtime-sndtime first ) exceeds the predetermined threshold ((rtt base + jitter ave ) / 2 in this example) for the transmission packet corresponding to the ACK packet received this time Also, the congestion window size cwnd est according to the equation (24) is calculated.

if sndtime−sndtimefirst > (rttbase+jitterave) /2 (25)
then 式(24)による輻輳ウインドウサイズの算出。
if sndtime-sndtime first > (rtt base + jitter ave ) / 2 (25)
Then, calculation of the congestion window size by the equation (24).

cwndestを算出すると、式(10)により1計測期間でのcwndestの最大値cwndlimit-tmpを更新する(ステップS106,S107)。 When cwnd est is calculated, the maximum value cwnd limit-tmp of cwnd est in one measurement period is updated by equation (10) (steps S106 and S107).

更に、次に受信するACKパケットに関するステップS44の判定や、輻輳ウインドウサイズの算出のために、式(11)のように各変数をリセットする(ステップS108)。   Further, each variable is reset as shown in Expression (11) in order to determine step S44 regarding the ACK packet to be received next and to calculate the congestion window size (step S108).

今回受信したACKパケットに対応する送信パケットの送信レートが、cwndmaxから求められる送信レート以上であり(ステップS102:Yes)、今回受信したACKパケットが最近時に受信したパケット群(即ち、一連の送信パケットに対応するものとしてみなすACKパケット群)に含まれると判定したとき(ステップS103:Yes)、即ち送信間隔に基づく判定で連続したパケット列とみなし、且つ連続したパケット列に関する送信パケットの所定の送信期間が予め定めた閾値を超えない場合、式(12)により、当該連続したパケット列の受信バイト数を更新する(ステップS104)。 The transmission rate of the transmission packet corresponding to the ACK packet received this time is equal to or higher than the transmission rate calculated from cwnd max (step S102: Yes), and the ACK packet received this time is the group of packets received recently (ie, a series of transmissions). A group of ACK packets regarded as corresponding to a packet) (step S103: Yes), that is, it is regarded as a continuous packet sequence in the determination based on the transmission interval, and a predetermined number of transmission packets related to the continuous packet sequence If the transmission period does not exceed a predetermined threshold, the number of received bytes of the continuous packet sequence is updated by equation (12) (step S104).

次に、1計測期間を経過しているか否かを判定し(ステップS109)、1計測期間を経過していると判定したときは(ステップS109:Yes)、cwndlimit-tmpの更新が行われているか否かを判定する(ステップS110)。 Next, it is determined whether or not one measurement period has elapsed (step S109). When it is determined that one measurement period has elapsed (step S109: Yes), cwnd limit-tmp is updated. It is determined whether or not (step S110).

cwndlimit-tmpの更新が行われている場合に(ステップS110:Yes)、式(13)によりcwndlimitを更新する(ステップS111)。 When the cwnd limit-tmp is updated (step S110: Yes), the cwnd limit is updated by the equation (13) (step S111).

今回受信したACKパケットが1計測期間を経過していないとき(ステップS109:No)、及び、cwndlimit-tmpの更新が行われていないとき(ステップS110:No)、cwndlimitは前回値のままである。 When the ACK packet received this time has not passed one measurement period (step S109: No), and when cwnd limit-tmp is not updated (step S110: No), cwnd limit remains the previous value. It is.

ステップS110を経てcwndlimitの値が決定されると、式(14)によりsndtimelast, rcvtimelastを更新する(ステップS112)。 When the value of cwnd limit is determined through step S110, sndtime last and rcvtime last are updated by equation (14) (step S112).

最後に、輻輳ウインドウ上限算出部1192は、cwndlimitを輻輳ウインドウ増加部1191へ通知する(ステップS113)。したがって、実施例2において、輻輳ウインドウ上限算出部1192は、輻輳とは無関係に生じるジッタをも考慮し、ステップS102及びステップS103の双方の判定を満たすときは当該最近時に受信したパケット群の受信バイト数に今回受信したACKパケットにより送達確認したバイト数を加えた受信バイト数を定め(ステップS104)、ステップS102及びステップS103のいずれか一方の判定を満たさないときには、該受信バイト数から求められる当該最近時に受信したパケット群の受信レートを基準にした輻輳ウインドウサイズ(cwndlimit-tmp)を算出して1計測期間毎に更新し、1計測期間毎に更新した該輻輳ウインドウサイズ(cwndlimit-tmp)を輻輳ウインドウサイズの上限値(cwndlimit)として決定する。そして、輻輳ウインドウ増加部1191は、ACKパケットを受信する度に1計測期間の経過時に決定されたcwndlimit以下で輻輳ウインドウサイズ(cwnd)を所定幅で拡大し、計測期間毎に、1計測期間の経過時に決定されたcwndlimitと当該拡大したcwndとを比較してスロースタートフェーズから輻輳回避フェーズへの遷移を判定する。 Finally, the congestion window upper limit calculation unit 1192 notifies the cwnd limit to the congestion window increase unit 1191 (step S113). Therefore, in the second embodiment, the congestion window upper limit calculation unit 1192 also considers jitter that occurs regardless of congestion, and when the determinations of both step S102 and step S103 are satisfied, the received byte of the packet group received at the latest time The number of received bytes is determined by adding the number of bytes confirmed by the ACK packet received this time to the number (step S104), and if either one of the determinations of step S102 and step S103 is not satisfied, the number of received bytes calculates the congestion window size relative to the receiving rate of packets received (cwnd limit-tmp) and updated for each measurement period during recently updated the congestion window size for each measurement period (cwnd limit-tmp ) Is determined as the upper limit value (cwnd limit ) of the congestion window size. Then, every time an ACK packet is received, the congestion window increasing unit 1191 increases the congestion window size (cwnd) by a predetermined width below the cwnd limit determined when one measurement period has elapsed, and for each measurement period, one measurement period. The transition from the slow start phase to the congestion avoidance phase is determined by comparing the cwnd limit determined when elapses with the expanded cwnd.

このように、輻輳ウインドウ増加部1191、輻輳ウインドウ上限算出部1192及び遅延変動量推定部1193を備える実施例2のスロースタート動作部119aを構成し、パケット送信装置11aに具備させることで、輻輳とは無関係に生じるジッタをも考慮してバースト的なパケットロスの発生を抑制し、これにより通信開始時のスロースタートフェーズにおける輻輳ウインドウサイズを拡大させる前の輻輳回避フェーズへの移行を効率よく抑制することができるので、高速な通信が可能となる。   As described above, the slow start operation unit 119a according to the second embodiment including the congestion window increasing unit 1191, the congestion window upper limit calculating unit 1192, and the delay variation estimating unit 1193 is configured and provided in the packet transmission device 11a, thereby causing congestion and Suppresses the occurrence of bursty packet loss in consideration of the jitter that occurs independently, thereby efficiently suppressing the transition to the congestion avoidance phase before expanding the congestion window size in the slow start phase at the start of communication. Therefore, high-speed communication is possible.

以上、特定の実施例を挙げて本発明を説明したが、本発明は前述の実施形態及び各実施例に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、送達確認に基づく遅延量を用いてパケット送信に関するスロースタート制御を行うパケット送信装置であれば、如何なる態様の装置でもよい。   The present invention has been described with reference to specific examples. However, the present invention is not limited to the above-described embodiments and examples, and various modifications can be made without departing from the technical concept thereof. For example, any apparatus may be used as long as it is a packet transmission apparatus that performs slow start control related to packet transmission using a delay amount based on delivery confirmation.

本発明によれば、送達確認を行うパケット通信において、無線ネットワークのような遅延変動が起きやすい環境で通信開始時のスロースタートフェーズにおける通信効率を高めることができるので、送達確認に基づく遅延量を用いてパケット送信に関するスロースタート制御を行う用途に有用である。   According to the present invention, in packet communication for confirming delivery, it is possible to increase the communication efficiency in the slow start phase at the start of communication in an environment in which delay variation is likely to occur as in a wireless network. This is useful for applications that perform slow start control related to packet transmission.

10 通信端末
11 従来技術に係るパケット送信装置
11a 本発明による一実施形態のパケット送信装置
12 パケット受信装置
20 通信端末
21 パケット受信装置
22 パケット送信装置
111 送信時刻書込部
112 パケット送信部
113 送達確認応答受信部
114 パケットロス判定部
115 パケット送信制御部
116 ロス再送動作部
117 ロスリカバリ動作部
118 輻輳回避動作部
119 従来技術に係るスロースタート動作部
119a 本発明に係るスロースタート動作部
1191 輻輳ウインドウ増加部
1192 輻輳ウインドウ上限算出部
1193 遅延変動量推定部
DESCRIPTION OF SYMBOLS 10 Communication terminal 11 Packet transmission apparatus 11a which concerns on prior art Packet transmission apparatus of one Embodiment by this invention 12 Packet reception apparatus 20 Communication terminal 21 Packet reception apparatus 22 Packet transmission apparatus 111 Transmission time writing part 112 Packet transmission part 113 Delivery confirmation Response reception unit 114 Packet loss determination unit 115 Packet transmission control unit 116 Loss retransmission operation unit 117 Loss recovery operation unit 118 Congestion avoidance operation unit 119 Slow start operation unit 119a according to prior art 1191 Slow start operation unit 1191 according to the present invention Increase in congestion window Unit 1192 congestion window upper limit calculation unit 1193 delay variation estimation unit

Claims (6)

送達確認に基づいて輻輳ウインドウサイズを決定しパケット送信に関するスロースタート制御を行うパケット送信装置であって、
パケット送信の送達確認として通知される送達確認応答用パケットを受信し、該パケット送信の送信時刻と該送達確認応答用パケットの受信時刻との差から当該パケット送信の送達確認に基づく往復遅延時間を算出する送達確認応答受信手段と、
通信開始から輻輳ウインドウサイズを拡大しつつ輻輳判定を行って、輻輳と判定した際にスロースタートフェーズから輻輳回避フェーズへ遷移させるように動作するスロースタート制御手段とを備え、
前記スロースタート制御手段は、
スロースタートフェーズで動作中に、前記往復遅延時間について継続して計測した最小の往復遅延時間と、輻輳ウインドウサイズの更新が為される度に所定の更新式に基づいて更新される輻輳ウインドウサイズの最大値と、当該受信した送達確認応答用パケットに対して最近時に受信したパケット群の送信時刻及び受信時刻とに基づいて、予め定めたパケット遅延量に関する計測期間毎に前記輻輳ウインドウサイズの上限値を決定する輻輳ウインドウ上限算出手段と、
前記送達確認応答用パケットを受信する度に直前の1計測期間の経過時に決定された当該輻輳ウインドウサイズの上限値以下で前記輻輳ウインドウサイズを所定幅で拡大し、当該計測期間毎に該輻輳ウインドウサイズの上限値と当該拡大した輻輳ウインドウサイズとを比較して、前記拡大した輻輳ウインドウサイズが該輻輳ウインドウサイズの上限値以上となる際に、スロースタートフェーズから輻輳回避フェーズへ遷移させるように動作する輻輳ウインドウ増加手段と、
を有することを特徴とするパケット送信装置。
A packet transmission device that determines a congestion window size based on delivery confirmation and performs slow start control related to packet transmission,
A packet for a delivery confirmation response notified as a delivery confirmation of packet transmission is received, and a round-trip delay time based on the delivery confirmation of the packet transmission is calculated from a difference between the transmission time of the packet transmission and the reception time of the delivery confirmation response packet. A delivery confirmation response receiving means for calculating;
It comprises a slow start control means that operates to make a transition from the slow start phase to the congestion avoidance phase when determining congestion while increasing the congestion window size from the start of communication,
The slow start control means includes:
During operation in the slow start phase, the minimum round-trip delay time continuously measured for the round-trip delay time and the congestion window size updated based on a predetermined update formula each time the congestion window size is updated. Based on the maximum value and the transmission time and reception time of the recently received packet group with respect to the received delivery confirmation response packet, the upper limit value of the congestion window size for each predetermined measurement period regarding the packet delay amount A congestion window upper limit calculating means for determining
Each time the acknowledgment packet is received, the congestion window size is expanded by a predetermined width below the upper limit value of the congestion window size determined at the time of the immediately preceding one measurement period, and the congestion window is increased for each measurement period. The upper limit value of the size is compared with the expanded congestion window size, and when the expanded congestion window size is equal to or larger than the upper limit value of the congestion window size, the operation is performed so as to shift from the slow start phase to the congestion avoidance phase. Means for increasing congestion window;
A packet transmission apparatus comprising:
前記輻輳ウインドウ上限算出手段は、
前記送達確認応答用パケットを受信する度に、該送達確認応答用パケットに対応する送信パケットの送信レートが前記輻輳ウインドウサイズの最大値から求められる送信レート以上であるか否かを判定する第1判定手段と、
前記送達確認応答用パケットを受信する度に、最近時に受信したパケット群に含まれるか否かの判定を行う第2判定手段と、
前記第1判定手段及び前記第2判定手段の双方の判定を満たすときは当該最近時に受信したパケット群の受信バイト数に該送達確認応答用パケットにより送達確認したバイト数を加えた受信バイト数を定め、前記第1判定手段及び前記第2判定手段のいずれか一方の判定を満たさないときには、該受信バイト数から求められる当該最近時に受信したパケット群の受信レートを基準にした輻輳ウインドウサイズを算出して当該計測期間毎に更新し、当該更新した輻輳ウインドウサイズを前記輻輳ウインドウサイズの上限値として決定する輻輳ウインドウ上限決定手段と、
を有することを特徴とする、請求項1に記載のパケット送信装置。
The congestion window upper limit calculation means includes:
The first time for determining whether or not the transmission rate of the transmission packet corresponding to the delivery confirmation response packet is equal to or higher than the transmission rate obtained from the maximum value of the congestion window size each time the delivery confirmation response packet is received. A determination means;
A second determination means for determining whether or not the packet is included in the recently received packet group each time the delivery confirmation response packet is received;
When the determinations of both the first determination unit and the second determination unit are satisfied, the number of received bytes is obtained by adding the number of bytes confirmed by the delivery confirmation response packet to the number of received bytes of the recently received packet group. If the determination of either one of the first determination means and the second determination means is not satisfied, the congestion window size is calculated based on the reception rate of the packet group received at the latest time obtained from the number of received bytes. Update for each measurement period, and a congestion window upper limit determination means for determining the updated congestion window size as an upper limit value of the congestion window size;
The packet transmission device according to claim 1, comprising:
前記輻輳ウインドウサイズの最大値は、前記所定の更新式として、更新された輻輳ウインドウサイズの2倍の値か、又は更新された輻輳ウインドウサイズの2倍の値と、直前の1計測期間の経過時に決定された前記輻輳ウインドウサイズの上限値のうち小さい方の値により更新されることを特徴とする、請求項1又は2に記載のパケット送信装置。   The maximum value of the congestion window size is a value that is twice the updated congestion window size or a value that is twice the updated congestion window size as the predetermined update formula, and the elapse of one measurement period immediately before. The packet transmission device according to claim 1, wherein the packet transmission device is updated with a smaller value of the upper limit value of the congestion window size determined at times. 前記スロースタート制御手段は、受信する送達確認応答用パケット毎の往復遅延時間の変動量を監視して連続する往復遅延時間パケットのパケット列の最大の変動量を計測し、当該計測期間毎に当該最大の変動量について移動平均した値を往復遅延時間の平均変動量として算出する遅延変動量推定手段を更に備え、
前記輻輳ウインドウ上限算出手段は、前記平均変動量を加味して当該輻輳ウインドウの上限値を決定する手段を有し、
前記輻輳ウインドウ増加手段は、前記往復遅延時間について継続して計測した最小の往復遅延時間に当該平均変動量を加えた値と、直前の1計測期間で最小の値として計測した計測期間内最小の往復遅延時間とを比較して、該計測期間内最小の往復遅延時間が前記往復遅延時間について継続して計測した最小の往復遅延時間に当該平均変動量を加えた値を超える際に、スロースタートフェーズから輻輳回避フェーズへ遷移させるように動作する手段を更に有することを特徴とする、請求項1に記載のパケット送信装置。
The slow start control means monitors the fluctuation amount of the round-trip delay time for each received acknowledgment packet and measures the maximum fluctuation amount of the packet sequence of successive round-trip delay time packets. A delay fluctuation amount estimating means for calculating a moving average value of the maximum fluctuation amount as an average fluctuation amount of the round trip delay time;
The congestion window upper limit calculating means includes means for determining an upper limit value of the congestion window in consideration of the average fluctuation amount.
The congestion window increasing means includes a value obtained by adding the average fluctuation amount to a minimum round-trip delay time continuously measured for the round-trip delay time, and a minimum in a measurement period measured as a minimum value in the immediately preceding measurement period. Compared with the round trip delay time, when the minimum round trip delay time within the measurement period exceeds the value obtained by adding the average fluctuation amount to the minimum round trip delay time continuously measured for the round trip delay time, the slow start The packet transmission device according to claim 1, further comprising means for operating to make a transition from the phase to the congestion avoidance phase.
請求項1から4のいずれか一項に記載のパケット送信装置を備えることを特徴とする通信端末。   A communication terminal comprising the packet transmission device according to any one of claims 1 to 4. 送達確認に基づいて輻輳ウインドウサイズを決定しパケット送信に関するスロースタート制御を行うスロースタート制御方法であって、
スロースタートフェーズで動作中に、パケット送信の送信時刻と送達確認応答用パケットの受信時刻との差から当該パケット送信の送達確認に基づく往復遅延時間について継続して計測した最小の往復遅延時間と、輻輳ウインドウサイズの更新が為される度に所定の更新式に基づいて更新される輻輳ウインドウサイズの最大値と、当該受信した送達確認応答用パケットに対して最近時に受信したパケット群の送信時刻及び受信時刻とに基づいて、予め定めたパケット遅延量に関する計測期間毎に前記輻輳ウインドウサイズの上限値を決定するステップと、
前記送達確認応答用パケットを受信する度に直前の1計測期間の経過時に決定された当該輻輳ウインドウサイズの上限値以下で前記輻輳ウインドウサイズを所定幅で拡大し、当該計測期間毎に該輻輳ウインドウサイズの上限値と当該拡大した輻輳ウインドウサイズとを比較して、前記拡大した輻輳ウインドウサイズが該輻輳ウインドウサイズの上限値以上となる際に、スロースタートフェーズから輻輳回避フェーズへ遷移させるように動作するステップと、
を含むことを特徴とするスロースタート制御方法。
A slow start control method for determining a congestion window size based on delivery confirmation and performing a slow start control on packet transmission,
During the operation in the slow start phase, the minimum round-trip delay time continuously measured for the round-trip delay time based on the delivery confirmation of the packet transmission from the difference between the transmission time of the packet transmission and the reception time of the delivery confirmation response packet; The maximum value of the congestion window size that is updated based on a predetermined update formula each time the congestion window size is updated, the transmission time of the packet group received recently with respect to the received acknowledgment packet, and Determining an upper limit value of the congestion window size for each measurement period related to a predetermined packet delay based on the reception time;
Each time the acknowledgment packet is received, the congestion window size is expanded by a predetermined width below the upper limit value of the congestion window size determined at the time of the immediately preceding one measurement period, and the congestion window is increased for each measurement period. The upper limit value of the size is compared with the expanded congestion window size, and when the expanded congestion window size is equal to or larger than the upper limit value of the congestion window size, the operation is performed so as to shift from the slow start phase to the congestion avoidance phase. And steps to
A slow start control method comprising:
JP2015007501A 2015-01-19 2015-01-19 Packet transmission apparatus, communication terminal and slow start control method in packet communication Expired - Fee Related JP6417225B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015007501A JP6417225B2 (en) 2015-01-19 2015-01-19 Packet transmission apparatus, communication terminal and slow start control method in packet communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015007501A JP6417225B2 (en) 2015-01-19 2015-01-19 Packet transmission apparatus, communication terminal and slow start control method in packet communication

Publications (2)

Publication Number Publication Date
JP2016134712A JP2016134712A (en) 2016-07-25
JP6417225B2 true JP6417225B2 (en) 2018-10-31

Family

ID=56434647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015007501A Expired - Fee Related JP6417225B2 (en) 2015-01-19 2015-01-19 Packet transmission apparatus, communication terminal and slow start control method in packet communication

Country Status (1)

Country Link
JP (1) JP6417225B2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9178789B2 (en) * 2011-08-19 2015-11-03 Futurewei Technologies, Inc. System and method for transmission control protocol slow-start
JP6280680B2 (en) * 2014-03-19 2018-02-14 日本放送協会 Packet transmission apparatus, communication terminal and slow start control method in packet communication

Also Published As

Publication number Publication date
JP2016134712A (en) 2016-07-25

Similar Documents

Publication Publication Date Title
Chowdhury et al. TP-CRAHN: A transport protocol for cognitive radio ad-hoc networks
JP4147534B2 (en) Communication apparatus and communication method
CN102468941B (en) Network packet loss processing method and device
CN109309934B (en) Congestion control method and related equipment
US7706269B2 (en) Method, system and device for controlling a transmission window size
JP4708978B2 (en) Communication system, communication terminal, session relay device, and communication protocol realizing high throughput
WO2005011187A1 (en) System and method for negative acknowledgement-based congestion control
US20060209838A1 (en) Method and system for estimating average bandwidth in a communication network based on transmission control protocol
US20130058212A1 (en) Optimization of the transmission control protocol particularly for wireless connections
KR100912178B1 (en) Congestion control method over wireless link
JP4726978B2 (en) Congestion control device and congestion control method
JP2008104018A (en) Communication system, communication equipment, and transmission control method
JP5387058B2 (en) Transmission device, transmission rate calculation method, and transmission rate calculation program
JP6417225B2 (en) Packet transmission apparatus, communication terminal and slow start control method in packet communication
Sinky et al. Cross-layer assisted TCP for seamless handoff in heterogeneous mobile wireless systems
JP2004357307A (en) PACKET TRANSMISSION CONTROL METHOD USING BIND-UPDATE MESSAGE AT MOBILE NODE HANDS OFF IN IPv6-BASED WIRELESS NETWORK, AND SYSTEM THEREOF
JP6280680B2 (en) Packet transmission apparatus, communication terminal and slow start control method in packet communication
JP6491521B2 (en) Packet transmission apparatus, communication terminal and congestion control method in packet communication
JP6280681B2 (en) Packet transmission apparatus, communication terminal and congestion control method in packet communication
Naguib et al. On the Transport Layer Throughput in Cognitive Mobile Ad Hoc Networks using Soft Sensing
Ullah et al. Improving network efficiency by selecting and modifying congestion control constraints
KR100915996B1 (en) Method and Terminal for Controlling Transmission according Bandwidth Change
Ahirwal et al. TCP Congestion Control through Bandwidth Estimation Mechanism in MANET
Medidi et al. Performance of Transport
Saedi Congestion control enhancement over wireless networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180829

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181005

R150 Certificate of patent or registration of utility model

Ref document number: 6417225

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees