JP2019012866A - Control system, available band width estimation system, device, method and program - Google Patents

Control system, available band width estimation system, device, method and program Download PDF

Info

Publication number
JP2019012866A
JP2019012866A JP2015200326A JP2015200326A JP2019012866A JP 2019012866 A JP2019012866 A JP 2019012866A JP 2015200326 A JP2015200326 A JP 2015200326A JP 2015200326 A JP2015200326 A JP 2015200326A JP 2019012866 A JP2019012866 A JP 2019012866A
Authority
JP
Japan
Prior art keywords
warm
packet
transmission
packets
packet sequence
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.)
Pending
Application number
JP2015200326A
Other languages
Japanese (ja)
Inventor
崇 大芝
Takashi Oshiba
崇 大芝
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2015200326A priority Critical patent/JP2019012866A/en
Priority to PCT/JP2016/004265 priority patent/WO2017061075A1/en
Publication of JP2019012866A publication Critical patent/JP2019012866A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

To estimate an available band width on a network, where a protocol with no receipt acknowledgement cannot be used, with high accuracy by a simple configuration of application level.SOLUTION: In the inventive control system, a transmission side device 700 includes warming-up packet stream transmission means 701 for transmitting a warming-up packet stream to a reception side device 800, before transmission of a first packet stream such as a packet train, by using a protocol performing congestion control by receipt acknowledgement and a window, window size estimation means 703 for estimating the lowest value of the congestion window size in a protocol stack after transmission of the warming-up packet stream, based on the transmission time of each warming-up packet contained in the warming-up packet stream, and the reception time in the reception side device 800, acquired as a result of transmission of the warming-up packet stream, and number of warming-up packets determination means 702 for determining the number of warming-up packets contained in a warming-up packet stream to be retransmitted, based on the estimation result of the lowest value of the congestion window size.SELECTED DRAWING: Figure 8

Description

本発明は、可用帯域の推定を行う可用帯域推定システム並びに輻輳ウィンドウサイズを制御するための制御システム、通信装置、制御方法および制御プログラムに関する。   The present invention relates to an available bandwidth estimation system that estimates an available bandwidth, a control system, a communication device, a control method, and a control program for controlling a congestion window size.

通信回線の可用帯域(利用可能帯域とも呼ばれる)とは、通信回線のボトルネックリンクの物理帯域から、ネットワークに流れている他のトラヒック(以下、クロストラヒックと呼ぶ)を引いた空き帯域である。例えば、通信回線のボトルネックリンクの物理帯域が100Mbps、クロストラヒックが30Mbpsの場合には、可用帯域は100−30=70Mbpsとなる。   An available bandwidth (also referred to as an available bandwidth) of a communication line is a free bandwidth obtained by subtracting other traffic (hereinafter referred to as cross traffic) flowing through the network from the physical bandwidth of the bottleneck link of the communication line. For example, when the physical bandwidth of the bottleneck link of the communication line is 100 Mbps and the cross traffic is 30 Mbps, the available bandwidth is 100-30 = 70 Mbps.

時々刻々と変動する可用帯域の現在の値を推定することは、端末間で双方向に映像データを送り合ってコミュニケーションをするビデオチャットやテレビ電話、テレビ会議などにおいて重要である。その理由は、映像データを送信する際のパケットの送信レートを可用帯域の推定値以下に抑えることで、パケットの送信レートとクロストラヒックの合計が通信回線のボトルネックリンクの物理帯域を超過することを防止できるので、パケットの送信遅延による映像品質の劣化を防止できるためである。   Estimating the current value of the available bandwidth that fluctuates from time to time is important in video chat, videophone, videoconferencing, and the like in which video data is transmitted bidirectionally between terminals. The reason is that the total packet transmission rate and cross-traffic exceeds the physical bandwidth of the bottleneck link of the communication line by limiting the packet transmission rate when transmitting video data to less than the estimated available bandwidth. This is because degradation of video quality due to packet transmission delay can be prevented.

可用帯域の推定技術に関して、例えば、特許文献1には、可用帯域推定用のパケットである推定パケットを複数まとめて1つのパケットトレインと称し、パケットトレインに含まれる各推定パケットを所定の時間間隔で送信することで、受信装置側で可用帯域を推定する方法が記載されている。特許文献1に記載の方法は、送信側装置が、パケットが徐々に増加する複数の推定パケットからなるパケットトレインを用意し、該パケットトレインに含まれる推定パケットを順番に等間隔で送信する。そして、受信側装置が、各推定パケットの受信間隔の変化を検出することで、可用帯域を推定する。   Regarding the available bandwidth estimation technology, for example, in Patent Document 1, a plurality of estimated packets that are available bandwidth estimation packets are collectively referred to as one packet train, and each estimated packet included in the packet train is assigned at a predetermined time interval. A method is described in which the available bandwidth is estimated on the receiving device side by transmitting. In the method described in Patent Document 1, the transmission side device prepares a packet train including a plurality of estimated packets whose packets gradually increase, and transmits the estimated packets included in the packet train in order at equal intervals. Then, the receiving side apparatus estimates the available bandwidth by detecting a change in the reception interval of each estimated packet.

この方法によれば、パケットトレイン内で、各推定パケットの送信レートが線形に増加する。パケットトレインがネットワークを通過する際に、推定パケットの送信レートがネットワークの可用帯域を超えた場合には、ネットワーク上のルータやスイッチなどの装置において一時的にパケットがキューイングされる(以下、キューイングによる遅延をキューイング遅延と呼ぶ)。キューイング遅延が発生すると、受信側装置において、推定パケットの受信間隔が送信側装置での送信間隔よりも増加する。この性質を利用して、受信側装置は、受信間隔が送信側装置での送信間隔と比較して増加し始める推定パケットを特定し、その推定パケットのパケットサイズを送信間隔で除算することで、可用帯域を算出する。   According to this method, the transmission rate of each estimated packet increases linearly within the packet train. When the packet train passes through the network, if the estimated packet transmission rate exceeds the available bandwidth of the network, the packet is temporarily queued in a device such as a router or switch on the network (hereinafter referred to as the queue). The delay due to ing is called queuing delay). When the queuing delay occurs, the reception interval of the estimated packet is increased in the reception side device than the transmission interval in the transmission side device. Using this property, the receiving side device specifies an estimated packet whose reception interval starts to increase compared to the transmission interval at the transmitting side device, and divides the packet size of the estimated packet by the transmission interval, Calculate available bandwidth.

また、例えば、特許文献2には、送信側装置のマイクロプロセッサが輻輳ウィンドウのウィンドウサイズを変化させながらラウンドトリップタイム(Round-Trip Time;RTT)と、パケットロス率を測定して、これら測定値とパケット1つあたりのデータサイズとから可用帯域を推定する方法が記載されている。また、特許文献2には、さらに、再送タイムアウト(Retransmission TimeOut;RTO)が発生したか否かによって異なる計算式を用いて、可用帯域を推定する方法も記載されている。   Further, for example, in Patent Document 2, the microprocessor of the transmission side apparatus measures the round trip time (RTT) and the packet loss rate while changing the window size of the congestion window, and these measured values are measured. And a method for estimating the available bandwidth from the data size per packet. Further, Patent Document 2 further describes a method for estimating an available bandwidth using a calculation formula that varies depending on whether or not a retransmission timeout (RTO) has occurred.

また、トラフィックの輻輳が予想される場合など事前設定した時間帯に、予め準備用のパケットを流して他のトラフィックを押しのけておき、その後でアプリケーションの送信をする技術が特許文献3に記載されている。   Patent Document 3 describes a technique in which a preparatory packet is sent in advance and other traffic is pushed away in a preset time zone such as when traffic congestion is expected, and then an application is transmitted. Yes.

国際公開第2014/017140号パンフレットInternational Publication No. 2014/017140 Pamphlet 特開2014−165809号公報JP 2014-165809 A 特表2009−531912号公報Special table 2009-531912

特許文献1に記載の方法は、通信路におけるパケットフローの監視をしなくても、アプリケーション層で簡易に可用帯域を推定することができるため、様々な環境に導入しやすく、好ましい。例えば、特許文献2に記載の方法は、輻輳ウィンドウサイズの変更や、RTTやパケットロス率の計測、RTOの発生有無の判定など、アプリケーション層より下位における動作が必要であり、導入コストがかかるといった問題がある。また、計算式は、輻輳制御における一般的なパケット数の時間的推移を基に再送タイムアウトによる輻輳制御による送信遅延のみを考慮しているものであって、例えば、上記で示したような、キューイング遅延等は考慮されておらず、可用帯域の推定精度がよいとは言えない。   The method described in Patent Document 1 is preferable because it can easily be estimated in the application layer without monitoring the packet flow in the communication path, and can be easily introduced into various environments. For example, the method described in Patent Document 2 requires operations lower than the application layer, such as changing the congestion window size, measuring the RTT and packet loss rate, and determining whether or not RTO has occurred, and is expensive to introduce. There's a problem. The calculation formula considers only the transmission delay due to congestion control due to retransmission timeout based on the temporal transition of the general number of packets in congestion control. Ingress delay or the like is not taken into account, and it cannot be said that the estimation accuracy of the usable bandwidth is good.

なお、特許文献1に記載の方法も、送信側装置からの推定パケットの送信タイミングに誤差が生じると、推定精度が低下するという問題がある。高精度に可用帯域を推定するためには、推定値算出用のアプリケーションソフトウェアが指定したタイミングで正確に推定パケットが連続送信されなければならない。そのために、推定パケットとしては、アプリケーションから送信タイミングを制御しやすいUDP(User Datagram Protocol)パケットが利用される。また、可用帯域の時間的な推移や、一定以上の時間内における可用帯域の平均値を把握するために、パケットトレインは定期的に送信されることが多い。   Note that the method described in Patent Document 1 also has a problem that the estimation accuracy decreases when an error occurs in the transmission timing of the estimated packet from the transmission side device. In order to estimate the available bandwidth with high accuracy, the estimated packets must be continuously transmitted accurately at the timing specified by the application software for calculating the estimated value. For this purpose, a UDP (User Datagram Protocol) packet whose transmission timing can be easily controlled from an application is used as the estimation packet. In order to grasp the temporal transition of the available bandwidth and the average value of the available bandwidth within a certain time or more, the packet train is often transmitted periodically.

しかし、ファイアウォールなどによりUDPによる通信ができないネットワーク環境では、特許文献1に記載の方法が利用できない。そこで、UDP通信ができないネットワーク環境に対応するために、プロトコルを単純にUDPからTCP(Transmission Control Protocol)に変更することを考えてみる。この場合、通信自体はできるようになるものの、TCPの輻輳制御が「外乱」となり、パケットの連続送信が途中で一時中断する現象が発生する。   However, the method described in Patent Document 1 cannot be used in a network environment where communication by UDP is not possible due to a firewall or the like. Therefore, in order to cope with a network environment where UDP communication is not possible, consider simply changing the protocol from UDP to TCP (Transmission Control Protocol). In this case, although the communication itself can be performed, the TCP congestion control becomes “disturbance”, and a phenomenon occurs in which continuous transmission of packets is temporarily interrupted in the middle.

この現象を説明するための基礎知識として、TCP通信の概要を説明する。TCP通信では、OSが駆動するTCP用のプロトコルスタックによって輻輳制御が働く。以下、アプリケーション層との対比という意図で、TCP用のプロトコルスタックも含めてOSという。輻輳制御として、TCPの送信側のOSは、輻輳ウィンドウサイズ(以下、cwndと呼ぶ)を管理している。なお、cwndの値を保持する変数はOSが管理する内部変数であるため、アプリケーションから直接観測できない場合が多い。   An outline of TCP communication will be described as basic knowledge for explaining this phenomenon. In TCP communication, congestion control is performed by a TCP protocol stack driven by the OS. Hereinafter, the OS including the protocol stack for TCP is referred to as an OS for the purpose of comparison with the application layer. As congestion control, an OS on the TCP transmission side manages a congestion window size (hereinafter referred to as cwnd). In addition, since the variable holding the value of cwnd is an internal variable managed by the OS, it is often impossible to observe directly from the application.

TCPの送信側のOSは、cwndと同じ個数だけ、TCPの受信側のプロトコルスタックからのACK(肯定応答)を待たずにパケットを連続送信できる。例えば、cwndの値が10である場合には、TCPの送信側のOSは、パケットを10個まで連続送信でき、ACKが返って来ない場合には、ACKが返ってくるまで連続送信が一時中断される。ACKが返ってくるとcwndを増加させた上で、一時中断していた連続送信を再開する。TCP通信では、この連続送信と一時中断の繰り返しが発生するのが一般的である。   The OS on the TCP transmission side can continuously transmit packets by the same number as cwnd without waiting for an ACK (acknowledgment) from the protocol stack on the TCP reception side. For example, when the value of cwnd is 10, the OS on the TCP transmission side can continuously transmit up to 10 packets, and when ACK is not returned, continuous transmission is temporarily performed until ACK is returned. Interrupted. When ACK is returned, cwnd is increased, and the continuous transmission which has been temporarily suspended is resumed. In TCP communication, the continuous transmission and the temporary interruption are generally repeated.

また、TCPの送信側のOSは、各パケットの送信時刻と対応するACKの受信時刻から、各パケットのRTTを計測する。そして、各パケットのRTTを計測する度に、標準規格であるIETF RFC 6298(以下、非特許文献1という。)に記載の下記の数式により、再送タイムアウト値(以下、RTOが発生する時間をRTO−valという)を算出する。   Further, the OS on the TCP transmission side measures the RTT of each packet from the transmission time of each packet and the reception time of the ACK corresponding to the transmission time. Each time the RTT of each packet is measured, the retransmission timeout value (hereinafter referred to as RTO generation time) is calculated according to the following formula described in the standard IETF RFC 6298 (hereinafter referred to as non-patent document 1). -Val)).

まず、初回のパケットのRTTを計測したら、RTTの指数加重移動平均値SRTTと、RTTの平均偏差RTTVARと、RTO−valとを、以下のとおり初期化する。なお、左向きの矢印は、右辺の変数への左辺の値の代入を表す。また、max(A,B)はAとBのうちのより大きい方の値を取り出す関数である。   First, when the RTT of the first packet is measured, the RTT exponential weighted moving average value SRTT, the RTT average deviation RTTVAR, and the RTO-val are initialized as follows. The left-pointing arrow represents assignment of the value on the left side to the variable on the right side. Max (A, B) is a function for extracting the larger value of A and B.

・SRTT←RTT
・RTTVAR←RTT/2
・RTO−val←SRTT+max(G,K*RTTVER)
・ SRTT ← RTT
・ RTTVAR ← RTT / 2
・ RTO-val ← SRTT + max (G, K * RTTVER)

次に、2番目以降のパケットのRTTを計測する度に、SRTTと、RTTVARと、RTO−valとを、以下の通り更新する。   Next, every time the RTT of the second and subsequent packets is measured, the SRTT, RTTVAR, and RTO-val are updated as follows.

・RTTVAR←(1−beta)*RTTVAR+β*|SRTT−RTT|
・SRTT←(1−alpha)*SRTT+α*RTT
・RTO−val←SRTT+max(G,K*RTTVAR)
・ RTTVAR ← (1-beta) * RTTVAR + β * | SRTT-RTT |
・ SRTT ← (1-alpha) * SRTT + α * RTT
・ RTO-val ← SRTT + max (G, K * RTTVAR)

なお、G,K,α,βは、既定の定数である。TCPの送信側のOSは、各パケットの送信時に、このRTO−valをタイムアウト値とする再送タイマを起動する。   Note that G, K, α, and β are predetermined constants. The OS on the TCP transmission side activates a retransmission timer that uses this RTO-val as a timeout value when each packet is transmitted.

また、TCP通信では、TCPの送信側のOSが、パケットロスが発生したと判断すると、ネットワークの輻輳を回避するためにcwndの値を低下させる。パケットロスの発生の判断には2種類があり、軽度の輻輳によるパケットロスと、重度の輻輳によるパケットロスである。それらの間ではcwndの値の低下の挙動が異なる。   Further, in TCP communication, when the OS on the TCP transmission side determines that a packet loss has occurred, the value of cwnd is lowered in order to avoid network congestion. There are two types of determination of occurrence of packet loss: packet loss due to light congestion and packet loss due to heavy congestion. The behavior of the decrease in the value of cwnd differs between them.

図10は、軽度の輻輳によるパケットロス発生例を示す説明図である。また、図11は、重度の輻輳によるパケットロス発生例を示す説明図である。なお、両例とも100個のパケットの送信を、送信側装置のアプリケーション側から依頼されたものとする。また、送信側装置における送信前のcwndの値は100であるものとする。なお、図10および図11では、図の複雑さを避けるために意図的にパケットを送信してからACKが返ってくるまでの往復遅延に相当するRTTを短くして各パケットのやり取りの直線が重ならないようにしている。ただし、本来は、パケットの送信間隔よりもRTTの方が長い場合が多い。例えば、90番目のパケットのACKは、図11では91番目のパケットの送信前に返ってきているが、本来は、90番目のパケットだけでなくそれ以降の複数のパケットを連続送信した後で返ってくる場合が多い。   FIG. 10 is an explanatory diagram illustrating an example of occurrence of packet loss due to slight congestion. FIG. 11 is an explanatory diagram showing an example of packet loss caused by severe congestion. In both examples, it is assumed that transmission of 100 packets is requested from the application side of the transmission side device. Further, it is assumed that the value of cwnd before transmission in the transmission side apparatus is 100. In FIGS. 10 and 11, in order to avoid the complexity of the drawings, the RTT corresponding to the round-trip delay from when the packet is intentionally transmitted until the ACK is returned is shortened so that the straight line of each packet exchange I try not to overlap. However, originally, the RTT is often longer than the packet transmission interval. For example, the ACK of the 90th packet is returned before the transmission of the 91st packet in FIG. 11, but originally it is returned after continuously transmitting not only the 90th packet but also a plurality of subsequent packets. Often comes.

軽度の輻輳によるパケットロスの発生例を示す図10では、90番目のパケットが受信側装置に届くと、送信側装置に90番目まで届いたことを示すACKが返信される。本例では、91番目のパケットでパケットロスが発生したとする。そのような場合に、92番目のパケットが受信側装置に届くと、受信側装置は、91番目のパケットが届いていないので、送信側装置に90番目まで届いたことを示す2回目のACKを返信する。次いで、93番目のパケットが受信側装置に届くと、受信側装置は、91番目のパケットが届いていないので、送信側装置に再度90番目まで届いたことを示すACKを返信する。送信側装置は、90番目まで届いたことを示すACKが3回重複して届いた時点で、初めて91番目のパケットでパケットロスが発生したと判断する。所定回数の重複ACK受信によりパケットロスの発生を検知すると、送信側装置は、これまでにACKが帰ってきていない91番目のパケットを再送するとともに、cwndの値を変更する。この場合、送信側装置は、cwndの値を例えば0.7倍にする。なお、何倍にするかはTCPの実装によって異なる。例えば、Linux(登録商標) OSにおいてデフォルトで使われるCUBIC TCPの場合は0.7倍である。仮に、パケットロスの発生を検知した時点のcwndの値が190であったとすると、送信側装置は、cwndの値を190から133へと減少させる。以下、このような所定回数の重複ACKにより検知されるパケットロスを軽度の輻輳によるパケットロスと呼ぶ場合がある。   In FIG. 10 showing an example of occurrence of packet loss due to slight congestion, when the 90th packet reaches the receiving side device, an ACK indicating that the 90th packet has reached the transmitting side device is returned. In this example, it is assumed that a packet loss has occurred in the 91st packet. In such a case, when the 92nd packet arrives at the receiving side device, the receiving side device has not received the 91st packet, so a second ACK indicating that the 90th packet has reached the transmitting side device is received. Send back. Next, when the 93rd packet arrives at the receiving side device, the receiving side device returns an ACK indicating that it has reached the 90th time again because the 91st packet has not arrived. The transmission side apparatus determines that a packet loss has occurred in the 91st packet for the first time when ACK indicating that it has reached the 90th is received three times. When the occurrence of a packet loss is detected by receiving a predetermined number of duplicate ACKs, the transmission side apparatus retransmits the 91st packet for which ACK has not returned so far, and changes the value of cwnd. In this case, the transmission side apparatus increases the value of cwnd by, for example, 0.7 times. Note that the number of times depends on the TCP implementation. For example, in the case of CUBIC TCP used as a default in Linux (registered trademark) OS, it is 0.7 times. If the value of cwnd at the time when the occurrence of a packet loss is detected is 190, the transmission side apparatus decreases the value of cwnd from 190 to 133. Hereinafter, such packet loss detected by a predetermined number of duplicate ACKs may be referred to as packet loss due to slight congestion.

重度の輻輳によるパケットロスの発生例を示す図11では、90番目のパケットが受信側装置に届くと、送信側装置に90番目まで届いたことを示すACKが返信される。なお、送信側装置は、ACKを受信する度にRTOの値(RTO−val)を更新している。本例では、91、92、93番目のパケットでパケットロスが発生したとする。そして、送信側装置において、94番目のパケットを送信する前に、91番目のパケットの送信時に起動した再送タイマがタイムアウトする(RTO発生)。送信側装置は、RTO発生により、これまでにACKが返ってきていない91、92、93番目のパケットでパケットロスが発生したと判断する。RTO発生によりパケットロスの発生を検知すると、送信側装置は、これまでにACKが帰ってきていない91、92、93番目のパケットを再送するとともに、cwndの値を変更する。この場合、送信側装置は、cwndの値を例えば2にする。なお、いくつの値にするかはTCPの実装によって異なる。仮に、パケットロスの発生を検知した時点のcwndの値が190であったとすると、送信側装置は、cwndの値を190から2へと大きく減少させる。以下、このようなRTO発生により検知されるパケットロスを、重度の輻輳によるパケットロスと呼ぶ場合がある。   In FIG. 11 showing an example of occurrence of packet loss due to severe congestion, when the 90th packet reaches the receiving side device, an ACK indicating that the 90th packet has reached the transmitting side device is returned. The transmission side device updates the RTO value (RTO-val) every time an ACK is received. In this example, it is assumed that packet loss occurs in the 91st, 92nd, and 93rd packets. Then, before the transmission of the 94th packet, the transmission side device times out the retransmission timer that was started when the 91st packet was transmitted (RTO occurrence). The transmission side apparatus determines that packet loss has occurred in the 91st, 92nd, and 93rd packets for which no ACK has been returned so far due to the occurrence of RTO. When the occurrence of packet loss is detected due to the occurrence of RTO, the transmission side apparatus retransmits the 91st, 92nd, and 93rd packets for which ACK has not returned so far, and changes the value of cwnd. In this case, the transmission side apparatus sets the value of cwnd to 2, for example. The number of values depends on the TCP implementation. If the value of cwnd at the time when the occurrence of a packet loss is detected is 190, the transmission side apparatus greatly reduces the value of cwnd from 190 to 2. Hereinafter, such a packet loss detected by the occurrence of RTO may be referred to as a packet loss due to severe congestion.

なお、cwndと同様、TCPレベルのRTTやRTO−valなどは、OSが管理する内部変数であるため、アプリケーションから直接観測できない場合が多い。   As with cwnd, TCP level RTT, RTO-val, and the like are internal variables managed by the OS, and are often not directly observable from an application.

次に、TCPの輻輳制御が「外乱」となり、パケットの連続送信が途中で一時中断する現象について説明する。   Next, a description will be given of a phenomenon in which TCP congestion control becomes “disturbance” and continuous packet transmission is temporarily interrupted.

ここでは、100個の推定パケットを1つのパケットトレインとし、複数のパケットトレインを定期的に送信する場合を考える。まず、1つのパケットトレインを送信中に、軽度の輻輳によるパケットロスが発生したとする。軽度の輻輳によるパケットロスが1回程度であれば、パケットロス発生時またはパケットロス発生後のACK受信によりパケットトレイン送信終了時のcwndの値は十分に大きくなっていることが考えられる。しかし、軽度の輻輳によるパケットロスが複数回発生した場合には、パケットトレイン送信終了時のcwndの値が100を下回ることも考えられる。例えば、次回のパケットトレインの送信時のcwndの値が70であったとする。この場合、70番目の推定パケットまでは連続送信ができるものの、その直後に推定パケットの連続送信が一時中断してしまう。すると、送信側装置からの推定パケットの送信タイミングに誤差が生じ、推定精度が低下してしまう。   Here, a case is considered in which 100 estimated packets are defined as one packet train, and a plurality of packet trains are periodically transmitted. First, it is assumed that a packet loss due to slight congestion occurs during transmission of one packet train. If the packet loss due to slight congestion is about once, it is possible that the value of cwnd at the end of packet train transmission is sufficiently large due to the occurrence of packet loss or ACK reception after the occurrence of packet loss. However, when packet loss due to slight congestion occurs a plurality of times, the value of cwnd at the end of packet train transmission may be less than 100. For example, assume that the value of cwnd at the next packet train transmission is 70. In this case, although continuous transmission is possible up to the 70th estimated packet, continuous transmission of the estimated packet is temporarily interrupted immediately after that. Then, an error occurs in the transmission timing of the estimated packet from the transmission side device, and the estimation accuracy decreases.

また、1つのパケットトレインを送信中に、重度の輻輳によるパケットロスが発生したとする。この場合、次回のパケットトレインの送信時にはcwndの値が大幅に小さくなる。例えば、次回のパケットトレインの送信時のcwndの値が2とであったとする。この場合、2番目の推定パケットまでは連続送信ができるものの、その直後に推定パケットの連続送信が一時中断してしまい、やはり推定精度が低下してしまう。   Further, it is assumed that a packet loss due to severe congestion occurs during transmission of one packet train. In this case, the value of cwnd is greatly reduced at the next transmission of the packet train. For example, suppose that the value of cwnd at the time of the next packet train transmission is 2. In this case, although continuous transmission can be performed up to the second estimated packet, immediately after that, the continuous transmission of the estimated packet is temporarily interrupted, and the estimation accuracy also decreases.

したがって、TCPなどの、ACK送信(受信確認)およびウィンドウによる輻輳制御があるプロトコルを用いてパケットトレインを送信するに当たっては、毎回、何らかの方法によりcwndの値を十分大きくしておくことが重要である。そうしないと、送信途中で推定パケットの連続送信が一時中断し、推定精度が低下してしまうからである。   Therefore, when sending a packet train using a protocol such as TCP that has ACK transmission (acknowledgement) and window congestion control, it is important to make the value of cwnd sufficiently large by some method each time. . Otherwise, continuous transmission of the estimated packet is temporarily interrupted during transmission, and the estimation accuracy is reduced.

なお、特許文献3に記載の方法は、準備用パケットを送信することにより、わざと輻輳を起こさせ、それによりアプリケーションのパケットよりも優先度の低いパケットが送信されないようにする方法であり、それによりcwndを、アプリケーションのパケットの連続送信が可能な値まで十分に大きくしようといったことは全く考慮されていない。そもそも特許文献3では、アプリケーションのパケットは高精度な連続送信は要求されていないため、その必要もない。   Note that the method described in Patent Document 3 is a method of intentionally causing congestion by transmitting a preparation packet, thereby preventing a packet having a lower priority than an application packet from being transmitted. It is not considered at all that cwnd is made sufficiently large to a value that allows continuous transmission of packets of an application. In the first place, since Patent Document 3 does not require high-accuracy continuous transmission of application packets, it is not necessary.

そこで、上述した問題に鑑み、本発明は、アプリケーションレベルの簡易な構成で、受信確認のないプロトコルが使用できないネットワーク上の可用帯域の推定を高精度に行うことが可能な可用帯域推定システム、並びにそのための輻輳ウィンドウサイズの制御を行う制御システム、通信装置、制御方法および制御プログラムの提供を目的とする。   Accordingly, in view of the above-described problems, the present invention provides an available bandwidth estimation system capable of accurately estimating the available bandwidth on a network that cannot use a protocol without reception confirmation with a simple configuration at the application level, and An object of the present invention is to provide a control system, a communication device, a control method, and a control program for controlling the congestion window size.

また、本発明は、可用帯域の推定用途に限らず、受信確認およびウィンドウによる輻輳制御があるプロトコルを用いて所定のパケット列を送信する場合に、アプリケーションレベルの簡易な構成で、事前に輻輳ウィンドウを当該パケット列の連続送信が可能なサイズまで大きくすることができる制御システム、制御方法および制御プログラムを提供することを目的とする。   In addition, the present invention is not limited to the estimation of the available bandwidth, and when a predetermined packet sequence is transmitted using a protocol having reception confirmation and congestion control by a window, a congestion window is previously obtained with a simple configuration at an application level. An object of the present invention is to provide a control system, a control method, and a control program that can increase the size of the packet sequence to a size that allows continuous transmission of the packet sequence.

本発明による制御システムは、送信側の通信装置である送信側装置と、受信側の通信装置である受信側装置とを備え、送信側装置は、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、受信側装置に送信する暖機パケット列送信手段と、暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定するウィンドウサイズ推定手段とを含み、暖機パケット数決定手段は、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定することを特徴とする。   A control system according to the present invention includes a transmission side device that is a communication device on the transmission side and a reception side device that is a communication device on the reception side. The transmission side device has a protocol for performing reception confirmation and congestion control by a window. A plurality of warm-up packets, which are preparation packets transmitted using the protocol, are collected before transmission of the first packet sequence composed of a plurality of packets that are used and requested to be transmitted at a predetermined transmission interval. A warm-up packet sequence transmitting means for transmitting the warm-up packet sequence to the receiving side device; a warm-up packet number determining means for determining the number of warm-up packets to be included in the warm-up packet sequence; Based on the transmission time of each warm-up packet included in the warm-up packet sequence acquired as a result and the reception time at the receiving device, the protocol stack after transmission of the warm-up packet sequence Window size estimation means for estimating the minimum value of the congestion window size, and the warm-up packet number determination means is included in the warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size. The number of warm-up packets is determined.

本発明による可用帯域推定システムは、送信側の通信装置である送信側装置と、受信側の通信装置である受信側装置とを備え、送信側装置は、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、受信側装置に送信する暖機パケット列送信手段と、暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定するウィンドウサイズ推定手段と、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、第1のパケット列を、受信側装置に送信する第1パケット列送信手段とを含み、受信側装置は、第1のパケット列の受信結果に基づいて、送信側装置と受信側装置間の通信経路における可用帯域を推定する可用帯域推定手段を含み、暖機パケット数決定手段は、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定することを特徴とする。   The available bandwidth estimation system according to the present invention includes a transmission-side apparatus that is a transmission-side communication apparatus and a reception-side apparatus that is a reception-side communication apparatus, and the transmission-side apparatus performs reception confirmation and congestion control by a window. A plurality of warm-up packets, which are preparation packets transmitted using the protocol, are transmitted before the transmission of the first packet sequence including a plurality of packets requested to be transmitted at a predetermined transmission interval using the protocol. A warm-up packet sequence transmitting means for transmitting the combined warm-up packet sequence to the receiving side device; a warm-up packet number determining means for determining the number of warm-up packets included in the warm-up packet sequence; Based on the transmission time of each warm-up packet included in the warm-up packet sequence acquired as a result of transmission and the reception time at the receiving device, the protocol protocol after transmission of the warm-up packet sequence The number of warm-up packets to be included in the warm-up packet sequence to be retransmitted is determined based on the window size estimation means for estimating the minimum value of the congestion window size and the estimation result of the minimum value of the congestion window size. A warm-up packet number determining means; and a first packet string transmitting means for transmitting the first packet string to the receiving side apparatus, wherein the receiving side apparatus is configured to transmit the first packet string based on the reception result of the first packet string. A warm-up packet that includes retransmissions based on the estimation result of the minimum value of the congestion window size, including a usable bandwidth estimation unit that estimates a usable bandwidth in a communication path between the device and the receiving-side device. The number of warm-up packets included in the column is determined.

本発明による通信装置は、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、所定の受信側装置に送信する暖機パケット列送信手段と、暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定するウィンドウサイズ推定手段とを備え、暖機パケット数決定手段は、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定することを特徴する。   The communication apparatus according to the present invention uses a protocol in which reception confirmation and congestion control by a window are performed, and before the transmission of the first packet sequence including a plurality of packets requested to be transmitted at a predetermined transmission interval. And a warm-up packet train transmitting means for sending a warm-up packet sequence in which a plurality of warm-up packets, which are preparatory packets transmitted using a packet, to a predetermined receiving side device, and a warm-up to be included in the warm-up packet train Based on the warm-up packet number determining means for determining the number of packets, the transmission time of each warm-up packet included in the warm-up packet sequence, and the reception time at the receiving-side device, acquired as a result of transmission of the warm-up packet sequence Window size estimation means for estimating the minimum value of the congestion window size in the protocol stack after transmission of the warm-up packet sequence, Determining means characterized by determining based on the estimation result of the minimum value of the congestion window size, the number of warm-up packets to be included in the warm-up packet sequence to retransmit.

本発明による制御方法は、送信側の通信装置である送信側装置が、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、所定の受信側装置に向けて送信し、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定し、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定し、決定された暖機パケットの数が1以上である場合に、第1のパケット列の送信前に、決定された数の暖機パケットを含む暖機パケット列の再送信を行うことを特徴とする。   The control method according to the present invention comprises a plurality of packets in which a transmission side apparatus, which is a transmission side communication apparatus, uses a protocol in which reception confirmation and congestion control by a window are performed, and transmission is requested at a predetermined transmission interval. Before transmission of the first packet sequence, a warm-up packet sequence in which a plurality of warm-up packets, which are preparation packets transmitted using the protocol, are gathered is transmitted to a predetermined receiving device, Based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device acquired as a result of transmission of the packet sequence, the congestion window size of the protocol stack after transmission of the warm-up packet sequence Estimate the minimum value and determine the number of warm-up packets to be included in the warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size. When the determined number of warm-up packets is 1 or more, the warm-up packet sequence including the determined number of warm-up packets is retransmitted before transmitting the first packet sequence. .

本発明による制御プログラムは、コンピュータに、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、所定の受信側装置に送信する処理、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定する処理、および輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する処理を実行させることを特徴とする。   The control program according to the present invention uses a protocol in which reception confirmation and congestion control by a window are performed on a computer, and before transmission of the first packet sequence including a plurality of packets that are requested to be transmitted at a predetermined transmission interval. , A process of transmitting a warm-up packet sequence in which a plurality of warm-up packets, which are preparation packets transmitted using the protocol, are gathered to a predetermined receiving device, and acquired as a result of transmission of the warm-up packet sequence, Processing for estimating the minimum value of the congestion window size in the protocol stack after transmission of the warm-up packet sequence based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device, and the congestion window The number of warm-up packets to be included in the warm-up packet sequence to be retransmitted is determined based on the estimation result of the minimum size. Characterized in that to perform the management.

本発明によれば、アプリケーションレベルの簡易な構成で、受信確認のないプロトコルが使用できないネットワーク上の可用帯域の推定を高精度に行うことができる。また、本発明によれば、受信確認およびウィンドウによる輻輳制御があるプロトコルを用いて所定のパケット列を送信する場合に、アプリケーションレベルの簡易な構成で、事前に輻輳ウィンドウを当該パケット列の連続送信が可能なサイズまで大きくすることができる。   According to the present invention, it is possible to accurately estimate the available bandwidth on a network in which a protocol without reception confirmation cannot be used with a simple application level configuration. In addition, according to the present invention, when a predetermined packet sequence is transmitted using a protocol having reception confirmation and congestion control by a window, the congestion window is continuously transmitted in advance with a simple configuration at an application level. Can be increased to a possible size.

第1の実施形態の可用帯域推定システムのネットワーク構成の一例を示すネットワーク構成図である。It is a network block diagram which shows an example of the network structure of the available band estimation system of 1st Embodiment. 可用帯域推定システムに含まれる送信側装置1および受信側装置2のより詳細な構成例を示すブロック図である。It is a block diagram which shows the more detailed structural example of the transmission side apparatus 1 and the reception side apparatus 2 which are included in an available band estimation system. データ記憶手段17が記憶するデータのデータ構造の例を示す説明図である。It is explanatory drawing which shows the example of the data structure of the data which the data storage means 17 memorize | stores. データ記憶手段22が記憶するデータのデータ構造の例を示す説明図である。It is explanatory drawing which shows the example of the data structure of the data which the data storage means 22 memorize | stores. 第1の実施形態の可用帯域推定システムの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the available band estimation system of 1st Embodiment. 送信側装置1のアプリケーション層における軽度の輻輳によるパケットロスの判定方法の説明図である。It is explanatory drawing of the determination method of the packet loss by the mild congestion in the application layer of the transmission side apparatus. 送信側装置1のアプリケーション層における重度の輻輳によるパケットロスの判定方法の説明図である。It is explanatory drawing of the determination method of the packet loss by heavy congestion in the application layer of the transmission side apparatus. 本発明による制御システムの概要を示すブロック図である。It is a block diagram which shows the outline | summary of the control system by this invention. 本発明による制御システムの他の構成例を示すブロック図である。It is a block diagram which shows the other structural example of the control system by this invention. 軽度の輻輳によるパケットロス発生例を示す説明図である。It is explanatory drawing which shows the example of packet loss generation | occurrence | production by slight congestion. 重度の輻輳によるパケットロス発生例を示す説明図である。It is explanatory drawing which shows the example of packet loss generation | occurrence | production by heavy congestion.

次に、本発明の実施形態について図面を参照して説明する。図1は、本発明の第1の実施形態の可用帯域推定システムのネットワーク構成の一例を示すネットワーク構成図である。図1に示す可用帯域推定システムは、送信側装置1と、受信側装置2とが、ネットワーク3を介して接続されている。   Next, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a network configuration diagram illustrating an example of a network configuration of an available bandwidth estimation system according to the first embodiment of this invention. In the usable bandwidth estimation system shown in FIG. 1, a transmission side device 1 and a reception side device 2 are connected via a network 3.

送信側装置1と受信側装置2とはそれぞれ、パーソナルコンピュータ(PC)、携帯型コンピュータ(PDA)、携帯電話、スマートフォン、タブレット端末、固定電話、街頭マルチメディア端末、車載端末、ネットワーク接続機能付きテレビ、ネットワーク接続機能付きセットトップボックス、ゲーム機、ネットワーク接続機能付きプリンタ、ネットワーク接続機能付きスキャナ、外部と情報をやり取りする機能を備えたその他の類似装置であってよい。   The transmission side device 1 and the reception side device 2 are a personal computer (PC), a portable computer (PDA), a mobile phone, a smartphone, a tablet terminal, a landline phone, a street multimedia terminal, an in-vehicle terminal, a TV with a network connection function, respectively. It may be a set-top box with a network connection function, a game machine, a printer with a network connection function, a scanner with a network connection function, or another similar device having a function of exchanging information with the outside.

また、ネットワーク3には、送信側装置1と受信側装置2以外の図示しない装置が接続されていてもよく、これらの図示しない装置間でクロストラヒックが流れていてもよい。   In addition, a device (not shown) other than the transmitting device 1 and the receiving device 2 may be connected to the network 3, and cross traffic may flow between these devices (not shown).

次に、本実施形態の概要を説明する。本実施形態の可用帯域推定システムは、まず、送信側装置1が、パケットトレインの送信前に、複数のTCPパケットであり準備用のパケット(以下、暖機パケットと呼ぶ)を1つのまとまりとする暖機パケット列を送信する。そして、送信側装置1は、暖機パケット列の各暖機パケットに対する応答パケット等に記憶される受信時刻等を用いて、各暖機パケットの受信間隔を算出し、アプリケーションレベルのRTTを計測する。そして、送信側装置1は、計測したアプリケーションレベルのRTTからTCPレベルのRTO−valを推定し、上述の受信間隔とRTTとRTO−valを基に、TCPレベルでの重度の輻輳または軽度の輻輳によるパケットロスが発生したかどうかを判定する。ここで、上記のパケットロスが発生したと判定した場合には、送信側装置1は、輻輳の度合いに合わせて暖機パケット数を必要最小限の個数に調整した上で暖機パケット列を再度送信する。これにより、パケットトレインの送信前に、cwndを十分大きな値まで増大することができる。   Next, an outline of the present embodiment will be described. In the usable bandwidth estimation system according to the present embodiment, first, the transmission side apparatus 1 collects a plurality of TCP packets and preparation packets (hereinafter referred to as warm-up packets) as one group before transmitting the packet train. Send warm-up packet train. Then, the transmission-side apparatus 1 calculates the reception interval of each warm-up packet using the reception time stored in the response packet for each warm-up packet in the warm-up packet sequence, and measures the application level RTT. . Then, the transmission side apparatus 1 estimates the TCP level RTO-val from the measured application level RTT, and based on the reception interval, the RTT, and the RTO-val described above, severe congestion or minor congestion at the TCP level. It is determined whether or not packet loss has occurred. Here, when it is determined that the above packet loss has occurred, the transmitting-side apparatus 1 adjusts the number of warm-up packets to the minimum necessary number according to the degree of congestion, and then reopens the warm-up packet sequence. Send. As a result, cwnd can be increased to a sufficiently large value before transmission of the packet train.

加えて、本実施形態の送信側装置1は、パケットトレインの送信に際しても、各推定パケットの受信間隔の算出、アプリケーションレベルのRTTの計測、TCPレベルのRTO−valの推定を行って、これらに基づき推定されるパケットロスの発生有無に基づいて次回の暖機パケット列の暖機パケット数を調整してもよい。   In addition, the transmission-side apparatus 1 of the present embodiment also calculates the reception interval of each estimated packet, measures the application level RTT, and estimates the TCP level RTO-val when transmitting the packet train. The number of warm-up packets in the next warm-up packet sequence may be adjusted based on the occurrence or non-occurrence of packet loss estimated based on the above.

暖機パケット列の送信時とパケットトレインの送信時の両方においてTCPレベルでパケットロスが発生したかどうかを判定し、パケットロスの発生有無と輻輳の度合いに応じて、次に送るべき暖機パケット数を調整することで、暖機パケットの送信数を全体的に抑えることができる。なお、本実施形態では、パケットトレインの送信に用いるプロトコルがTCPである場合を例に説明するが、プロトコルは、TCPに限られず、受信確認およびウィンドウによる輻輳制御があるプロトコルであればよい。   It is determined whether a packet loss has occurred at the TCP level both when sending a warm-up packet train and when sending a packet train, and the warm-up packet to be sent next depends on whether or not packet loss has occurred and the degree of congestion By adjusting the number, the number of warm-up packets transmitted can be suppressed as a whole. In the present embodiment, a case where the protocol used for packet train transmission is TCP will be described as an example. However, the protocol is not limited to TCP, and any protocol that has reception confirmation and congestion control by a window may be used.

図2は、可用帯域推定システムに含まれる送信側装置1および受信側装置2のより詳細な構成例を示すブロック図である。   FIG. 2 is a block diagram illustrating a more detailed configuration example of the transmission side device 1 and the reception side device 2 included in the available bandwidth estimation system.

送信側装置1は、パケット送信手段10と、パケット列生成手段11と、暖機パケット数決定手段12と、受信間隔算出手段13と、タイマ値推定手段14と、パケットロス判定手段15と、輻輳ウィンドウサイズ推定手段16と、データ記憶手段17と、を含んでいてもよい。   The transmission side device 1 includes a packet transmission unit 10, a packet sequence generation unit 11, a warm-up packet number determination unit 12, a reception interval calculation unit 13, a timer value estimation unit 14, a packet loss determination unit 15, a congestion The window size estimation means 16 and the data storage means 17 may be included.

パケット送信手段10は、暖機パケット列やパケットトレインを送信する。以下では、暖機パケット列における各暖機パケットと、パケットトレインにおける各推定パケットとを特に区別する必要がない場合は、「パケット列における各パケット」または単に「各パケット」という場合がある。   The packet transmission means 10 transmits a warm-up packet train and a packet train. Hereinafter, when it is not necessary to particularly distinguish each warm-up packet in the warm-up packet sequence from each estimated packet in the packet train, it may be referred to as “each packet in the packet sequence” or simply “each packet”.

パケット列生成手段11は、暖機パケット列やパケットトレインを生成する。   The packet sequence generation unit 11 generates a warm-up packet sequence and a packet train.

暖機パケット数決定手段12は、暖機パケット列に含ませる暖機パケット数を決定する。   The warm-up packet number determining means 12 determines the number of warm-up packets included in the warm-up packet sequence.

受信間隔算出手段13は、受信側装置2で記録されたパケットの受信時刻を基に、パケット列の各パケットの受信間隔を算出する。   The reception interval calculation means 13 calculates the reception interval of each packet in the packet sequence based on the reception time of the packet recorded by the reception side device 2.

タイマ値推定手段14は、各パケットのアプリケーションレベルの送信時刻と、当該各パケットに対する応答パケットの受信時刻とから、アプリケーションレベルのRTTを算出し、それからTCPレベルのRTOのタイマ値であるRTO−valを推定する。   The timer value estimation means 14 calculates the application level RTT from the application level transmission time of each packet and the reception time of the response packet for each packet, and then RTO-val which is the timer value of the TCP level RTO. Is estimated.

パケットロス判定手段15は、パケット列の各パケットの受信間隔と、算出されたアプリケーションレベルのRTTと、推定されたRTO−valとを用いて、TCPレベルで重度の輻輳または軽度の輻輳によるパケットロスが発生したかどうかを判定する。   The packet loss determination unit 15 uses the reception interval of each packet in the packet sequence, the calculated application level RTT, and the estimated RTO-val to packet loss due to heavy congestion or light congestion at the TCP level. It is determined whether or not has occurred.

輻輳ウィンドウサイズ推定手段16は、上記のパケットロスの発生の判定結果に基づいて、cwndの値を推定する。   The congestion window size estimation means 16 estimates the value of cwnd based on the determination result of the occurrence of packet loss.

データ記憶手段17は、各種データを格納する。図3は、データ記憶手段17が記憶するデータのデータ構造の例を示す説明図である。図3に示すように、データ記憶手段17は、暖機パケット数30と、1つ以上の暖機パケット送信間隔31と、1つ以上の暖機パケット受信間隔32と、1つ以上のRTT計測値40と、1つ以上のRTO推定値41と、輻輳ウィンドウサイズ推定値42と、推定パケット数50と、1つ以上の推定パケット送信間隔51と、1つ以上の推定パケット受信間隔52とを記憶してもよい。   The data storage unit 17 stores various data. FIG. 3 is an explanatory diagram showing an example of the data structure of data stored in the data storage unit 17. As shown in FIG. 3, the data storage means 17 includes the number of warm-up packets 30, one or more warm-up packet transmission intervals 31, one or more warm-up packet reception intervals 32, and one or more RTT measurements. A value 40, one or more RTO estimation values 41, a congestion window size estimation value 42, an estimated number of packets 50, one or more estimated packet transmission intervals 51, and one or more estimated packet reception intervals 52. You may remember.

ここで、暖機パケット数30は、暖機パケット列に含まれる暖機パケットの個数である。暖機パケット送信間隔31は、各暖機パケットの送信間隔である。暖機パケット受信間隔32は、各暖機パケットの受信間隔である。RTT計測値40は、上述したアプリケーションレベルのRTTの算出値である。RTO推定値41は、上述したTCPレベルのRTO−valの推定値である。輻輳ウィンドウサイズ推定値42は、送信側装置1におけるTCPレベルのcwndの推定値である。   Here, the number of warm-up packets 30 is the number of warm-up packets included in the warm-up packet sequence. The warm-up packet transmission interval 31 is a transmission interval of each warm-up packet. The warm-up packet reception interval 32 is a reception interval of each warm-up packet. The RTT measurement value 40 is a calculated value of the above-described application level RTT. The RTO estimated value 41 is an estimated value of the above-described TCP level RTO-val. The congestion window size estimated value 42 is an estimated value of cwnd at the TCP level in the transmission side apparatus 1.

また、推定パケット数50は、パケットトレインに含まれる推定パケットの個数である。この個数は、システムの利用者や管理者が手動で設定する。推定パケット送信間隔51は、各推定パケットの送信間隔である。推定パケット受信間隔52は、各推定パケットの受信間隔である。   The estimated number of packets 50 is the number of estimated packets included in the packet train. This number is manually set by the system user or administrator. The estimated packet transmission interval 51 is a transmission interval of each estimated packet. The estimated packet reception interval 52 is a reception interval of each estimated packet.

また、受信側装置2は、図2に示すように、パケット受信手段20と、可用帯域推定手段21と、データ記憶手段22と、を含んでいてもよい。   Further, as shown in FIG. 2, the receiving-side device 2 may include a packet receiving unit 20, an available bandwidth estimation unit 21, and a data storage unit 22.

パケット受信手段20は、暖機パケットや推定パケットを受信した場合に、対応する応答パケットを、TCPレベルのACKパケットとともに返信する。   When receiving a warm-up packet or an estimated packet, the packet receiving means 20 returns a corresponding response packet together with a TCP level ACK packet.

可用帯域推定手段21は、可用帯域を推定する。可用帯域推定手段21は、例えば、パケットトレインとしてまとめられた所定の時間間隔で連続送信される複数の推定パケットを受信した際の各パケットの受信間隔の変化の有無等から、可用帯域を推定できる。   The available bandwidth estimation means 21 estimates the available bandwidth. The available bandwidth estimation means 21 can estimate the available bandwidth from, for example, whether there is a change in the reception interval of each packet when receiving a plurality of estimated packets continuously transmitted at a predetermined time interval collected as a packet train. .

データ記憶手段22は、各種データを格納する。図4は、データ記憶手段22が記憶するデータのデータ構造の例を示す説明図である。図4に示すように、データ記憶手段22は、可用帯域推定値59を記憶してもよい。   The data storage means 22 stores various data. FIG. 4 is an explanatory diagram showing an example of the data structure of data stored in the data storage unit 22. As shown in FIG. 4, the data storage unit 22 may store an available band estimated value 59.

可用帯域推定値59は、可用帯域の推定値である。   The available bandwidth estimated value 59 is an estimated value of the available bandwidth.

本実施形態において、パケット送信手段10、パケット列生成手段11、暖機パケット数決定手段12、受信間隔算出手段13、タイマ値推定手段14、パケットロス判定手段15および輻輳ウィンドウサイズ推定手段16は、例えば、送信側装置1が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。また、データ記憶手段17は、例えば、記憶装置によって実現される。また、可用帯域推定手段21は、例えば、受信側装置2が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。また、データ記憶手段22は、例えば、記憶装置によって実現される。   In the present embodiment, the packet transmission unit 10, the packet sequence generation unit 11, the warm-up packet number determination unit 12, the reception interval calculation unit 13, the timer value estimation unit 14, the packet loss determination unit 15, and the congestion window size estimation unit 16 For example, it is realized by an information processing apparatus that operates according to a program such as a CPU provided in the transmission side apparatus 1. Moreover, the data storage means 17 is implement | achieved by the memory | storage device, for example. In addition, the usable bandwidth estimation unit 21 is realized by an information processing device that operates according to a program such as a CPU provided in the reception-side device 2, for example. Moreover, the data storage means 22 is implement | achieved by the memory | storage device, for example.

次に、図5を参照して本実施形態の動作を説明する。図5は、本実施形態の可用帯域推定システムの動作の一例を示すフローチャートである。なお、図5に示す例において、推定パケット数50には、本システムの利用者や管理者により手動で100が設定されているものとする。換言すると、本例では、1つのパケットトレインに含まれる推定パケット数として100個が指定されているものとする。また、暖機パケット送信間隔31や、推定パケット送信間隔51には、本システムの利用者や管理者により手動で所望の値が設定されている。ここで、1つの暖機パケット列に含まれる各暖機パケットの送信間隔は同一でなくてもよい。同様に、1つのパケットトレインに含まれる各推定パケットの送信間隔は同一でなくてもよい。   Next, the operation of this embodiment will be described with reference to FIG. FIG. 5 is a flowchart showing an example of the operation of the available bandwidth estimation system of the present embodiment. In the example illustrated in FIG. 5, it is assumed that 100 is manually set to the estimated number of packets 50 by the user or administrator of the system. In other words, in this example, it is assumed that 100 is designated as the estimated number of packets included in one packet train. In addition, desired values are set manually for the warm-up packet transmission interval 31 and the estimated packet transmission interval 51 by a user or administrator of this system. Here, the transmission interval of each warm-up packet included in one warm-up packet sequence may not be the same. Similarly, the transmission intervals of the estimated packets included in one packet train may not be the same.

図5に示す例では、まず、ステップS60において、送信側装置1の暖機パケット数決定手段12が、暖機パケット列に含ませる暖機パケットの個数を、データ記憶手段17に保持されている暖機パケット数30と同じ値に設定する。初回のパケットトレインの送信時には、暖機パケット数30を推定パケット数50で上書きすることで、暖機パケット列とパケットトレインとにそれぞれ含ませるパケット数を同じにしてもよい。   In the example shown in FIG. 5, first, in step S60, the number of warm-up packets included in the warm-up packet sequence is stored in the data storage unit 17 by the warm-up packet number determining unit 12 of the transmission side apparatus 1. Set to the same value as 30 warm-up packets. When the first packet train is transmitted, the number of packets included in each of the warm-up packet sequence and the packet train may be made the same by overwriting the number of warm-up packets 30 with the estimated number of packets 50.

また、delayed ACKと呼ばれるTCPの仕組みが受信側装置2で働くことが想定される場合には、暖機パケット2つに対してTCPレベルのACKパケットが1つ返ってくるため、暖機パケット列の送信によって推定パケット数分のACKが受信されるように、暖機パケット数30を、推定パケット数50の2倍の値で上書きしてもよい。これは、暖機パケット列送信後のcwndの値を推定パケット数50以上にするためである。この場合、暖機パケット列に含ませる暖機パケット数は、パケットトレインに含ませる推定パケット数の2倍となる。   In addition, when it is assumed that a TCP mechanism called delayed ACK works in the receiving-side apparatus 2, one TCP level ACK packet is returned for two warm-up packets. The warm-up packet count 30 may be overwritten with a value twice the estimated packet count 50 so that ACKs for the estimated packet count are received by transmission. This is because the value of cwnd after transmission of the warm-up packet sequence is set to 50 or more estimated packets. In this case, the number of warm-up packets included in the warm-up packet sequence is twice the estimated number of packets included in the packet train.

次に、パケット列生成手段11が、暖機パケット数30が示す数の暖機パケットを含む暖機パケット列を生成する。そして、パケット送信手段10は、生成された暖機パケット列を送信する。パケット送信手段10は、例えば、OS層に順次、暖機パケット列に含まれる各暖機パケットの送信依頼を行うことで、暖機パケット列を送信してもよい。このとき、パケット送信手段10は、各暖機パケットの送信時刻を保持しておき、各暖機パケットの送信時刻から、各暖機パケットの送信間隔を算出し、暖機パケット送信間隔31としてデータ記憶手段17に保持させる。各暖機パケットの送信時刻は、例えば、OS層に対して送信依頼を行ったタイミングまたはOS層から送信完了を受けたタイミングとしてもよい。   Next, the packet sequence generation unit 11 generates a warm-up packet sequence including the number of warm-up packets indicated by the number of warm-up packets 30. Then, the packet transmission unit 10 transmits the generated warm-up packet sequence. For example, the packet transmission unit 10 may transmit the warm-up packet sequence by sequentially requesting the OS layer to transmit each warm-up packet included in the warm-up packet sequence. At this time, the packet transmission means 10 holds the transmission time of each warm-up packet, calculates the transmission interval of each warm-up packet from the transmission time of each warm-up packet, and stores the data as the warm-up packet transmission interval 31 It is held in the storage means 17. The transmission time of each warm-up packet may be, for example, a timing when a transmission request is made to the OS layer or a timing when a transmission completion is received from the OS layer.

続くステップS61では、まず、受信側装置2のパケット受信手段20が、暖機パケットを受信し、対応する応答パケットを返信する。なお、応答パケットの返信の前に、TCPレベルではACK返信が行われているか、もしくは応答パケット自体がTCPレベルのACK返信を兼ねている。ここで、各応答パケットには、対応する暖機パケットの受信側装置2における受信時刻が埋め込まれている。   In subsequent step S61, first, the packet receiving means 20 of the receiving side apparatus 2 receives the warm-up packet and returns a corresponding response packet. It should be noted that an ACK reply is made at the TCP level before the response packet is sent back, or the response packet itself also serves as a TCP level ACK reply. Here, in each response packet, the reception time of the corresponding warm-up packet in the reception-side device 2 is embedded.

次に、送信側装置1の受信間隔算出手段13は、受信側装置2が送信した応答パケットを受信すると、応答パケットに含まれる、対応する暖機パケットの受信時刻と一つ前の暖機パケットの受信時刻とから、当該対応する暖機パケットの受信間隔を算出する。そして、受信間隔算出手段13は、算出された受信間隔を、対応する暖機パケットの暖機パケット受信間隔32としてデータ記憶手段17に保持させる。   Next, when the reception interval calculation means 13 of the transmission side apparatus 1 receives the response packet transmitted from the reception side apparatus 2, the reception time of the corresponding warm-up packet and the previous warm-up packet included in the response packet are received. The reception interval of the corresponding warm-up packet is calculated from the reception time of. Then, the reception interval calculation unit 13 holds the calculated reception interval in the data storage unit 17 as the warm-up packet reception interval 32 of the corresponding warm-up packet.

続くステップS62では、送信側装置1のタイマ値推定手段14が、ステップS60で取得された各暖機パケットの送信時刻と、ステップS61で取得された応答パケットの受信時刻とから、暖機パケットごとにアプリケーションレベルのRTTを算出し、RTT計測値40としてデータ記憶手段17に保持させる。また、タイマ値推定手段14は、算出した暖機パケットごとのアプリケーションレベルのRTTから、暖機パケットごとにTCPレベルのRTO−valを推定し、RTO推定値41としてデータ記憶手段17に保持させる。TCPレベルのRTO−valの推定には、非特許文献1に記載の方法を用いてもよい。このとき、アプリケーションレベルのRTTをTCPレベルのRTTとして用いてRTO−valを求めてのよい。また、例えば、アプリケーションレベルのRTTからOS層からアプリケーション層にわたるまでのタイムラグが分かっている場合には、その値を差し引いた値を、TCPレベルのRTTとして用いて、RTO−valを求めてもよい。   In the subsequent step S62, the timer value estimating means 14 of the transmission side device 1 determines each warm-up packet from the transmission time of each warm-up packet acquired in step S60 and the reception time of the response packet acquired in step S61. Then, the RTT at the application level is calculated and stored in the data storage means 17 as the RTT measurement value 40. Further, the timer value estimating means 14 estimates the TCP level RTO-val for each warm-up packet from the calculated application-level RTT for each warm-up packet, and stores it in the data storage means 17 as the RTO estimated value 41. The method described in Non-Patent Document 1 may be used for estimating the TCP level RTO-val. At this time, the RTO-val may be obtained using the application level RTT as the TCP level RTT. Also, for example, when the time lag from the application level RTT to the OS layer to the application layer is known, the value obtained by subtracting the value may be used as the TCP level RTT to obtain the RTO-val. .

続くステップS63では、送信側装置1の輻輳ウィンドウサイズ推定手段16が、軽度の輻輳によるパケットロスが発生したかどうかを判定する。具体的には、輻輳ウィンドウサイズ推定手段16は、暖機パケットごとの暖機パケット受信間隔32を、当該暖機パケット列における先頭パケットから末尾パケットまで順に調べて行き、現在着目している暖機パケットの暖機パケット受信間隔32の値が、TCPレベルにおいて軽度の輻輳によるパケットロスの発生判断とされる所定の値(以下、第1の閾値という)以上になっているか否かを判定する。第1の閾値は、例えば、3回の重複ACK受信時により軽度の輻輳によるパケットロスの発生が認識される場合、着目しているパケットの送信時刻から当該パケットがロスして3回の重複ACKを受信するまでの時間とすればよい。より具体的には、現在着目している暖機パケットの暖機パケット送信間隔31または平均的な暖機パケット送信間隔31の3倍の値に、現在着目している暖機パケットのRTT計測値40または平均的なRTT計測値40の値を加えた値としてもよい。   In subsequent step S63, the congestion window size estimation means 16 of the transmission side apparatus 1 determines whether or not a packet loss due to slight congestion has occurred. Specifically, the congestion window size estimation unit 16 sequentially checks the warm-up packet reception interval 32 for each warm-up packet from the first packet to the last packet in the warm-up packet sequence, and It is determined whether or not the value of the warm-up packet reception interval 32 of the packet is equal to or greater than a predetermined value (hereinafter referred to as a first threshold value) that is determined to generate packet loss due to slight congestion at the TCP level. The first threshold value is, for example, when occurrence of packet loss due to slight congestion is recognized at the time of reception of 3 duplicate ACKs, and the packet is lost from the transmission time of the packet of interest and 3 duplicate ACKs are received. It may be the time until receiving. More specifically, the RTT measurement value of the warm-up packet currently focused on is a value that is three times the warm-up packet transmission interval 31 of the warm-up packet currently focused or the average warm-up packet transmission interval 31. 40 or an average RTT measurement value 40 may be added.

なお、輻輳ウィンドウサイズ推定手段16は、軽度の輻輳によるパケットロス発生の判定条件として、後続の暖機パケットの暖機パケット受信間隔32が極めて短い既定の第2の閾値以下であることを、上記の条件に加えてもよい。ここで、第2の閾値としては、OS層における、複数のパケットを一度に受信したときの各パケットに付す受信タイムスタンプの間隔を基に定めてもよい。例えば、平均値や最大値や最小値としてもよいし、OSの処理速度に応じた所定値(例えば、100μs等)としてもよい。   Note that the congestion window size estimation unit 16 determines that the warm-up packet reception interval 32 of the subsequent warm-up packet is equal to or less than a predetermined second threshold as a determination condition for occurrence of packet loss due to mild congestion. It may be added to the conditions. Here, the second threshold value may be determined based on an interval of reception time stamps attached to each packet when a plurality of packets are received at a time in the OS layer. For example, it may be an average value, a maximum value, a minimum value, or a predetermined value (for example, 100 μs) according to the processing speed of the OS.

以下、このような送信側装置1のアプリケーション層における軽度の輻輳によるパケットロスの判定条件について、図6を参照してより具体的に説明する。図6に示す例では、暖機パケット列の送信直前のcwndの値は、初期値とされた10以上であるとする。図6に示すように、90番目の暖機パケットがロスせずに届くと、受信側装置2のOS層は即座にアプリケーション側に90番目の暖機パケットが届いたことを通知するので、受信側装置2の可用帯域推定のアプリケーション(例えば、パケット受信手段20)は即座に90番目の暖機パケットを受信したことを認識する。そして、受信側装置2のOS層は90番目の暖機パケットに対するTCPレベルのACKパケットを返信する。   Hereinafter, conditions for determining packet loss due to slight congestion in the application layer of the transmission-side apparatus 1 will be described more specifically with reference to FIG. In the example shown in FIG. 6, it is assumed that the value of cwnd immediately before the transmission of the warm-up packet sequence is 10 or more, which is the initial value. As shown in FIG. 6, when the 90th warm-up packet arrives without loss, the OS layer of the receiving side device 2 immediately notifies the application side that the 90th warm-up packet has arrived. The application for estimating the available bandwidth of the side device 2 (for example, the packet receiving means 20) immediately recognizes that the 90th warm-up packet has been received. Then, the OS layer of the receiving side device 2 returns a TCP level ACK packet for the 90th warm-up packet.

送信側装置1のOS層は90番目の暖機パケットに対するACKパケットを受信すると、90番目の暖機パケットがロスせずに届いたことを認識する。そして、ACK受信により、cwnd値を+1する。このような処理が1番目の暖機パケットから90番目の暖機パケットまで問題なく続いた場合、90番目の暖機パケットに対するACKが届いた時点での送信側装置1のcwnd値は、10+90=100以上であると推測できる。   When the OS layer of the transmission side apparatus 1 receives the ACK packet for the 90th warm-up packet, it recognizes that the 90th warm-up packet has arrived without loss. Then, the cwnd value is incremented by 1 upon receipt of the ACK. If such a process continues without any problem from the first warm-up packet to the 90th warm-up packet, the cwnd value of the transmitting apparatus 1 at the time when the ACK for the 90th warm-up packet arrives is 10 + 90 = It can be estimated that it is 100 or more.

しかし、その後送信した91番目の暖機パケットが途中のネットワークでロスしたとする。また、92番目の暖機パケットは途中のネットワークでロスせずに届いたとする。受信側装置2のOS層は期待する91番目の暖機パケットが届いていないので、この時点ではアプリケーション側に暖機パケットが届いたことを通知せず、90番目の暖機パケットに対するTCPレベルのACKパケットを再度返信する。その後送信された93番目の暖機パケットも途中のネットワークでロスせずに届いた場合、受信側装置2のOS層は期待する91番目の暖機パケットが届いていないことから、92番目の暖機パケット受信時と同様の処理を行う。すなわち、受信側装置2のOS層は、この時点でもアプリケーション側に暖機パケットが届いたことを通知せずに、90番目の暖機パケットに対するTCPレベルのACKパケットを再度返信する。   However, it is assumed that the 91st warm-up packet transmitted thereafter is lost in the middle of the network. Further, it is assumed that the 92nd warm-up packet arrives without being lost in the network on the way. Since the OS layer of the receiving side apparatus 2 has not received the expected 91st warm-up packet, at this time, the application side is not notified that the warm-up packet has arrived, and the TCP level for the 90th warm-up packet The ACK packet is returned again. If the 93rd warm-up packet transmitted after that arrives without any loss in the network on the way, the OS layer of the receiving-side apparatus 2 has not received the expected 91st warm-up packet. Performs the same processing as when receiving a machine packet. That is, the OS layer of the receiving-side device 2 returns a TCP level ACK packet for the 90th warm-up packet again without notifying that the warm-up packet has arrived at the application side.

送信側装置1のOS層は、90番目の暖機パケットに対するTCPレベルの重複ACKパケットを合計3回受信したことを契機に、91番目の暖機パケットでパケットロスが発生したと判断し、91番目の暖機パケットを再送する。   The OS layer of the transmission-side apparatus 1 determines that a packet loss has occurred in the 91st warm-up packet when the TCP level duplicate ACK packet for the 90th warm-up packet has been received three times in total. Resend the th warm-up packet.

再送された91番目の暖機パケットが途中のネットワークでロスせずに届くと、受信側装置2のOS層は、即座にアプリケーション側にこれまでに受信した91,92,93番目の暖機パケットが届いたことを通知するとともに、対応する暖機パケットのACKパケットを送信側装置1に返信する。受信側装置2の可用帯域推定のアプリケーション(パケット受信手段20)は、OS層からの通知を受けて初めて91,92,93番目の暖機パケットを受信したことを認識する。   When the retransmitted 91st warm-up packet arrives without loss in the network on the way, the OS layer of the receiving side device 2 immediately receives the 91st, 92nd, and 93rd warm-up packets received so far by the application side. Is transmitted, and the corresponding warm-up packet ACK packet is returned to the transmitting-side apparatus 1. The application (packet receiving means 20) for estimating the available bandwidth of the receiving side apparatus 2 recognizes that it has received the 91st, 92nd, and 93rd warm-up packets only after receiving notification from the OS layer.

送信側装置1における各暖機パケットの受信時刻は、受信側装置2におけるアプリケーションからの応答パケットから得ている。このため、89番目とロスしなかった90番目の暖機パケット間の受信間隔(90番目の暖機パケットの暖機パケット受信間隔32)は、90番目からロスした91番目の暖機パケット間のそれ(91番目の暖機パケットの暖機パケット受信間隔32)と比べて、大きく異なる。より具体的には、89番目と90番目の暖機パケット間の受信間隔は、89番目と90番目の暖機パケット間の送信間隔に近い値になるが、90番目と91番目の暖機パケット間の受信間隔は、図6に示すように、90番目と91番目の暖機パケット間の送信間隔の3倍の値に、91番目の暖機パケットに対して求められたRTT計測値40または平均的なRTT計測値40の値を加えた値と同じかそれ以上の値に延びる。   The reception time of each warm-up packet in the transmission side apparatus 1 is obtained from the response packet from the application in the reception side apparatus 2. For this reason, the reception interval between the 89th and 90th warm-up packets that were not lost (the warm-up packet reception interval 32 of the 90th warm-up packet) is between the 91st warm-up packets lost from the 90th. Compared to it (warm-up packet reception interval 32 of the 91st warm-up packet), it is greatly different. More specifically, the reception interval between the 89th and 90th warm-up packets is close to the transmission interval between the 89th and 90th warm-up packets, but the 90th and 91st warm-up packets. As shown in FIG. 6, the reception interval between the RTT measurement value 40 obtained for the 91st warm-up packet is set to a value that is three times the transmission interval between the 90th and 91st warm-up packets. It extends to a value equal to or greater than the value obtained by adding the average RTT measurement value 40.

また、アプリケーション側から見ると、パケットロスした暖機パケット以降の所定数の暖機パケットである91,92,93番目の暖機パケットはほぼ同時に受信したように見えるので、91番目と92番目の暖機パケット間の受信間隔や、92番目と93番目の暖機パケット間の受信間隔は、極めて短い値になる。そのため、これら受信間隔の極端な短さを、軽度の輻輳によるパケットロス発生の判定条件に加えてもよい。   From the application side, the 91st, 92nd, and 93rd warm-up packets, which are a predetermined number of warm-up packets after the lost packet that was lost, appear to have been received almost simultaneously, so the 91st and 92nd The reception interval between warm-up packets and the reception interval between the 92nd and 93rd warm-up packets are extremely short values. Therefore, these extremely short reception intervals may be added to the determination conditions for occurrence of packet loss due to slight congestion.

図5に戻り、輻輳ウィンドウサイズ推定手段16は、軽度の輻輳によるパケットロスが発生したと判定した場合には(ステップS63のYes)、ステップS64に処理を進め、判定しなかった場合には(ステップS63のNo)、ステップS65に処理を進める。   Returning to FIG. 5, if the congestion window size estimation means 16 determines that a packet loss due to slight congestion has occurred (Yes in step S63), the process proceeds to step S64, and if not determined ( The process proceeds to step S65 (No in step S63).

ステップS64では、軽度の輻輳によるパケットロス発生有りの判定結果を受けて、輻輳ウィンドウサイズ推定手段16は、TCPレベルの輻輳ウィンドウサイズすなわちcwndの値を推定する。ここで、輻輳ウィンドウサイズ推定手段16は、厳密な値を推定する必要は無く、取り得る可能性として最も小さい値(以下、最低値という場合がある)を推定すればよい。例えば、cwndの最低値は、例えば、TCPレベルのcwndの初期値や、前回のパケット列の送信結果、特定されるパケットロスの発生有無および輻輳の度合いや、今回のパケット列の送信結果、特定されるパケットロスの発生有無および輻輳の度合いを基に、プロトコルスタックの輻輳ウィンドウの制御に倣う、すなわちプロトコルスタックにおいてcwndに対して行われるのと同様の数値計算を行うことで、算出してもよい。   In step S64, the congestion window size estimation means 16 estimates the TCP level congestion window size, that is, the value of cwnd in response to the determination result that the packet loss has occurred due to slight congestion. Here, the congestion window size estimation means 16 does not need to estimate a strict value, and may estimate the smallest possible value (hereinafter may be referred to as the minimum value). For example, the minimum value of cwnd is, for example, the initial value of TCP level cwnd, the transmission result of the previous packet sequence, the occurrence of the specified packet loss and the degree of congestion, the transmission result of the current packet sequence, the identification Based on the occurrence of packet loss and the degree of congestion, it follows the control of the congestion window of the protocol stack, that is, by performing the same numerical calculation as that performed for cwnd in the protocol stack. Good.

例えば、TCPのプロトコルスタックにおける輻輳ウィンドウの制御が、ACK受信の度に+1、軽度の輻輳によるパケットロス発生時には0.7倍するといった場合を考える。輻輳ウィンドウサイズ推定手段16は、例えば、TCPレベルのcwndの初期値と、パケットロス発生時までに暖機パケット列によって受信したACKの数とから直前のcwndを求め、それに対して0.7倍することで、パケットロス発生後のcwndを予想することができる。なお、その後、残りのパケット列が正常に受信されていれば、残りの暖機パケット数のACK受信により増加する分を足し合わせれば、暖機パケット列送信完了時点におけるcwndの値を推定できる。なお、暖機パケット送信前のcwndの値を初期値以上とせずに0としてもよい。なお、軽度の輻輳によるパケットロスの発生回数が1回であれば、暖機パケット列送信完了後のcwndの値は、パケットロス前およびパケットロス後のACK受信による増加分を考慮すると、おおよそ暖機パケット数の0.7倍以上となることが想定できるので、そのような単純計算により求めてもよい。   For example, consider a case where the congestion window control in the TCP protocol stack is +1 every time an ACK is received, and is multiplied by 0.7 when a packet loss occurs due to slight congestion. The congestion window size estimation means 16 obtains the immediately preceding cwnd from, for example, the initial value of cwnd at the TCP level and the number of ACKs received by the warm-up packet sequence until the occurrence of packet loss, and is 0.7 times larger than that. By doing so, it is possible to predict cwnd after occurrence of packet loss. After that, if the remaining packet sequence is normally received, the value of cwnd at the time when transmission of the warm-up packet sequence is completed can be estimated by adding the amount of increase due to ACK reception of the remaining number of warm-up packets. Note that the value of cwnd before warm-up packet transmission may be set to 0 without exceeding the initial value. If the number of occurrences of packet loss due to slight congestion is 1, the value of cwnd after completion of warm-up packet sequence transmission is approximately warm considering the increase due to ACK reception before and after packet loss. Since it can be assumed that the number of machine packets is 0.7 times or more, it may be obtained by such simple calculation.

今、1つの暖機パケット列を送信し終えた時点で、cwndの値が少なくとも70以上であると推定されたとする。その場合、cwndの値としては、パケットトレイン送信前に推定パケット数である100以上としたいことから、あと30増加させればよいことがわかる。   Now, it is assumed that the value of cwnd is estimated to be at least 70 or more when one warm-up packet sequence has been transmitted. In this case, the value of cwnd is set to 100 or more, which is the estimated number of packets before packet train transmission.

暖機パケット数決定手段12は、輻輳ウィンドウサイズ推定手段16による輻輳ウィンドウサイズの推定結果を基に、次の暖機パケット列のパケット数を決定する。ここでは、必要とされる最小の値に設置すればよい。本例の場合、100−70=30個の暖機パケットを送信すればよいので、暖機パケット数決定手段12は、暖機パケット数30を30個に設定する。そして、ステップS60に戻り、更新後のパケット数の暖機パケット列の送信を再度行わせる。   The warm-up packet number determination unit 12 determines the number of packets in the next warm-up packet sequence based on the congestion window size estimation result by the congestion window size estimation unit 16. Here, it may be set to the minimum required value. In this example, since 100−70 = 30 warm-up packets may be transmitted, the warm-up packet number determination unit 12 sets the warm-up packet number 30 to 30. Then, the process returns to step S60, and the transmission of the warm-up packet sequence with the updated number of packets is performed again.

一方、軽度の輻輳によるパケットロスが発生していないと判定された場合、ステップS65では、輻輳ウィンドウサイズ推定手段16が、さらに重度の輻輳によるパケットロスが発生したかどうかを判定する。具体的には、輻輳ウィンドウサイズ推定手段16は、暖機パケットごとの暖機パケット受信間隔32を、当該暖機パケット列における先頭パケットから末尾パケットまで順に調べて行き、現在着目している暖機パケットの暖機パケット受信間隔32の値が、TCPレベルにおいて重度の輻輳によるパケットロスの発生判断とされる所定の値(以下、第3の閾値という)以上になっているか否かを判定する。第3の閾値は、例えば、RTO発生により重度の輻輳によるパケットロスの発生が認識される場合、着目しているパケットの送信間隔にRTOのタイマ値とを加えた時間とすればよい。より具体的には、現在着目している暖機パケットの暖機パケット送信間隔31の値に、現在着目している暖機パケットのRTO推定値41または平均的なRTO推定値41の値を加えた値としてもよい。   On the other hand, if it is determined that no packet loss has occurred due to mild congestion, in step S65, the congestion window size estimation unit 16 determines whether or not a packet loss due to more severe congestion has occurred. Specifically, the congestion window size estimation unit 16 sequentially checks the warm-up packet reception interval 32 for each warm-up packet from the first packet to the last packet in the warm-up packet sequence, and It is determined whether or not the value of the warm-up packet reception interval 32 of the packet is equal to or greater than a predetermined value (hereinafter referred to as a third threshold) that is determined to be packet loss due to severe congestion at the TCP level. The third threshold value may be a time obtained by adding the RTO timer value to the transmission interval of the packet of interest when, for example, occurrence of packet loss due to severe congestion is recognized due to occurrence of RTO. More specifically, the value of the warm-up packet transmission interval 31 of the warm-up packet currently focused on is added to the value of the RTO estimated value 41 or the average RTO estimated value 41 of the warm-up packet currently focused on. It may be a value.

なお、輻輳ウィンドウサイズ推定手段16は、重度の輻輳によるパケットロス発生の判定条件として、後続の暖機パケットの暖機パケット受信間隔32が極めて短い既定の閾値(上記の第2の閾値と同様でよい)以下であることを、上記の条件に加えてもよい。   Note that the congestion window size estimation means 16 uses a predetermined threshold (similar to the above-described second threshold) as a determination condition for occurrence of packet loss due to severe congestion, in which the warm-up packet reception interval 32 of subsequent warm-up packets is extremely short. (Good) The following may be added to the above conditions.

以下、このような送信側装置1のアプリケーション層における重度の輻輳によるパケットロスの判定条件について、図7を参照してより具体的に説明する。図7に示す例でも、暖機パケット列の送信直前のcwndの値は、初期値とされた10以上であるとする。図7に示すように、90番目の暖機パケットがロスせずに届くと、図6に示す例と同様、受信側装置2のOS層は即座にアプリケーション側に90番目の暖機パケットが届いたことを通知するとともに、90番目の暖機パケットに対するTCPレベルのACKパケットを返信する。   Hereinafter, conditions for determining the packet loss due to severe congestion in the application layer of the transmission side apparatus 1 will be described more specifically with reference to FIG. Also in the example illustrated in FIG. 7, it is assumed that the value of cwnd immediately before transmission of the warm-up packet sequence is 10 or more which is an initial value. As shown in FIG. 7, when the 90th warm-up packet arrives without loss, as in the example shown in FIG. 6, the OS layer of the receiving device 2 immediately receives the 90th warm-up packet on the application side. And a TCP level ACK packet for the 90th warm-up packet is returned.

送信側装置1のOS層は90番目の暖機パケットに対するACKパケットを受信すると、90番目の暖機パケットがロスせずに届いたことを認識する。なお、本例でも、1番目の暖機パケットから90番目の暖機パケットまで問題なく続いた場合、90番目の暖機パケットに対するACKが届いた時点での送信側装置1のcwnd値は、10+90=100以上であると推測できる。   When the OS layer of the transmission side apparatus 1 receives the ACK packet for the 90th warm-up packet, it recognizes that the 90th warm-up packet has arrived without loss. Also in this example, when the first warm-up packet continues to the 90th warm-up packet without any problem, the cwnd value of the transmission side device 1 at the time when the ACK for the 90th warm-up packet arrives is 10 + 90 = 100 or more.

しかし、その後91,92,93番目の暖機パケットが途中のネットワークでロスし、91番目の暖機パケットに対するTCPレベルのACKパケットが、TCPにおけるRTOの値の時間長を超えても返って来なかったとする。その場合、送信側装置1のOS層は、91番目の暖機パケットの送信時に起動した再送タイマが満了(RTOが発生)したことを受けて、重度の輻輳によるパケットロスが発生したと判断し、これまでにACKが返ってきていない91,92,93番目の暖機パケットを再送する。   However, the 91st, 92nd, and 93rd warm-up packets are lost in the middle of the network, and the TCP level ACK packet for the 91st warm-up packet is returned even if it exceeds the time length of the RTO value in TCP. Suppose there wasn't. In that case, the OS layer of the transmitting side apparatus 1 determines that a packet loss due to heavy congestion has occurred in response to the expiration of the retransmission timer (RTO has occurred) that was started when the 91st warm-up packet was transmitted. The 91st, 92nd, and 93rd warm-up packets for which no ACK has been returned are retransmitted.

このとき再送された91,92,93番目の暖機パケットは、途中のネットワークでロスせずに届いたとする。受信側装置2のOS層は即座にアプリケーション側にこれまでに受信した91,92,93番目の暖機パケットが届いたことを通知するとともに、対応する暖機パケットのACKパケットを送信側装置1に返信する。受信側装置2の可用帯域推定のアプリケーション(パケット受信手段20)は、OS層からの通知を受けて初めて91,92,93番目の暖機パケットを受信したことを認識する。   It is assumed that the 91st, 92nd, and 93rd warm-up packets retransmitted at this time have arrived without loss in the middle network. The OS layer of the receiving apparatus 2 immediately notifies the application side that the 91st, 92nd, and 93rd warm-up packets received so far have arrived, and sends the corresponding ACK packet of the warm-up packet to the transmitting apparatus 1. Reply to The application (packet receiving means 20) for estimating the available bandwidth of the receiving side apparatus 2 recognizes that it has received the 91st, 92nd, and 93rd warm-up packets only after receiving notification from the OS layer.

本例の場合も、89番目とロスしなかった90番目の暖機パケット間の受信間隔(90番目の暖機パケットの暖機パケット受信間隔32)と、90番目からロスした91番目の暖機パケット間の受信間隔(91番目の暖機パケットの暖機パケット受信間隔32)とは、大きく異なる。より具体的には、89番目と90番目の暖機パケット間の受信間隔は、89番目と90番目の暖機パケット間の送信間隔に近い値になるが、90番目と91番目の暖機パケット間の受信間隔は、図7に示すように、90番目と91番目の暖機パケット間の送信間隔に、91番目の暖機パケットに対して求められたRTO推定値41または平均的なRTO推定値41の値を加えた値と同じかそれ以上の値に延びる。   Also in this example, the reception interval between the 89th and 90th warm-up packets that were not lost (the warm-up packet reception interval 32 of the 90th warm-up packet) and the 91st warm-up lost from the 90th The reception interval between packets (the warm-up packet reception interval 32 of the 91st warm-up packet) is greatly different. More specifically, the reception interval between the 89th and 90th warm-up packets is close to the transmission interval between the 89th and 90th warm-up packets, but the 90th and 91st warm-up packets. As shown in FIG. 7, the reception interval between the RTO estimated value 41 obtained for the 91st warm-up packet or the average RTO estimate is the transmission interval between the 90th and 91st warm-up packets. The value is equal to or greater than the value obtained by adding the value 41.

また、アプリケーション側から見ると、パケットロスした暖機パケット以降の所定数の暖機パケットである91,92,93番目の暖機パケットはほぼ同時に受信したように見えるので、軽度の輻輳によるパケットロスの場合と同様、後続する暖機パケットの受信間隔の極端な短さを、重度の輻輳によるパケットロス発生の判定条件に加えてもよい。   Further, when viewed from the application side, since the 91st, 92nd, and 93rd warm-up packets, which are a predetermined number of warm-up packets after the lost packet, appear to be received almost simultaneously, packet loss due to slight congestion As in the case of, the extremely short reception interval of the subsequent warm-up packet may be added to the determination condition for occurrence of packet loss due to severe congestion.

図5に戻り、輻輳ウィンドウサイズ推定手段16は、重度の輻輳によるパケットロスが発生したと判定した場合には(ステップS65のYes)、ステップS66に処理を進め、判定しなかった場合には(ステップS65のNo)、ステップS67に処理を進める。   Returning to FIG. 5, if the congestion window size estimation means 16 determines that a packet loss due to severe congestion has occurred (Yes in step S65), it proceeds to step S66, and if it does not determine ( The process proceeds to step S67 (No in step S65).

ステップS66では、重度の輻輳によるパケットロス発生有りの判定結果を受けて、輻輳ウィンドウサイズ推定手段16は、TCPレベルのcwndの値を推定する。ここでも、輻輳ウィンドウサイズ推定手段16は、厳密な値を推定する必要は無く、可能性として取り得る最も小さい値の予想が立てばよい。   In step S66, the congestion window size estimation means 16 estimates the value of cwnd at the TCP level in response to the determination result that packet loss has occurred due to severe congestion. Here again, the congestion window size estimating means 16 does not need to estimate a strict value, and it is only necessary to predict the smallest possible value.

例えば、TCPのプロトコルスタックにおける輻輳ウィンドウの制御が、重度の輻輳によるパケットロス発生時にはcwndの値を2にするといった場合を考える。輻輳ウィンドウサイズ推定手段16は、例えば、重度の輻輳によるパケットロス発生が起こった際には、パケットロス発生後のcwndを2と推定できる。なお、重度の輻輳によるパケットロスがどのタイミングで発生するかによって、暖機パケット列送信完了後のcwndの値として、99〜2までの値を取り得る。しかし、それらタイミングを考慮せずにcwndの最低値を、最悪のパターンである2としてもよい。また、輻輳ウィンドウサイズ推定手段16は、cwndの最低値を、軽度の輻輳によるパケットロスの判定方法と同様、例えば、各種計測値や推定値を基に、プロトコルスタックの輻輳ウィンドウの制御に倣うことで、算出してもよい。   For example, consider a case in which the congestion window control in the TCP protocol stack sets the value of cwnd to 2 when packet loss occurs due to severe congestion. The congestion window size estimation means 16 can estimate cwnd after occurrence of packet loss as 2, for example, when packet loss occurs due to severe congestion. Depending on the timing at which packet loss due to severe congestion occurs, the value of cwnd after completion of warm-up packet sequence transmission can take values from 99 to 2. However, the minimum value of cwnd may be set to 2 which is the worst pattern without considering these timings. The congestion window size estimation means 16 follows the control of the congestion window of the protocol stack based on various measured values and estimated values, for example, as in the packet loss determination method due to slight congestion, as in the method of determining packet loss due to slight congestion. And may be calculated.

今、1つの暖機パケット列を送信し終えた時点で、cwndの値が少なくとも2以上であると推定されたとする。その場合、cwndの値としては、パケットトレイン送信前に推定パケット数である100以上としたいことから、あと98増加させればよいことがわかる。   Now, it is assumed that the value of cwnd is estimated to be at least 2 or more when one warm-up packet sequence has been transmitted. In this case, since the value of cwnd is desired to be 100 or more, which is the estimated number of packets before packet train transmission, it can be seen that it is only necessary to increase 98 more.

暖機パケット数決定手段12は、輻輳ウィンドウサイズ推定手段16による輻輳ウィンドウサイズの推定結果を基に、次の暖機パケット列のパケット数を決定する。ここでは、必要とされる最小の値に設置すればよい。本例の場合、100−2=98個の暖機パケットを送信すればよいので、暖機パケット数決定手段12は、暖機パケット数30を98個に設定する。そして、ステップS60に戻り、更新後のパケット数の暖機パケット列の送信を再度行わせる。   The warm-up packet number determination unit 12 determines the number of packets in the next warm-up packet sequence based on the congestion window size estimation result by the congestion window size estimation unit 16. Here, it may be set to the minimum required value. In the case of this example, 100−2 = 98 warm-up packets may be transmitted, so the warm-up packet number determining means 12 sets the warm-up packet number 30 to 98. Then, the process returns to step S60, and the transmission of the warm-up packet sequence with the updated number of packets is performed again.

一方、重度の輻輳によるパケットロスが発生していないと判定された場合、ステップS67に進むが、ステップS67〜ステップS73の動作は、送信する対象が暖機パケット列からパケットトレインに変わるだけで、動作の内容はステップS60〜ステップS66と本質的に同じなので、説明は省略する。すなわち、パケットトレイン列の送信が完了すると、パケットトレイン列に対しても、送信中における軽度または重度の輻輳によるパケットロスの判定が行われる。なお、ステップS71およびステップS73における暖機パケット数の調整は、次回の暖機パケット列の送信時における暖機パケット数を決定するためのものであり、当該調整完了後はステップS75に進む。   On the other hand, if it is determined that packet loss due to severe congestion has not occurred, the process proceeds to step S67, but the operation of step S67 to step S73 is merely to change the transmission target from the warm-up packet sequence to the packet train. Since the contents of the operation are essentially the same as those in steps S60 to S66, the description thereof is omitted. That is, when transmission of the packet train train is completed, the packet loss due to light or severe congestion during transmission is also determined for the packet train train. Note that the adjustment of the number of warm-up packets in step S71 and step S73 is for determining the number of warm-up packets at the next transmission of the warm-up packet sequence, and after completion of the adjustment, the process proceeds to step S75.

また、ステップS74は、暖機パケット列の送信時もパケットトレインの送信時もパケットロスが一切発生しなかったと判定された場合に進む処理である。ステップS74では、暖機パケット数決定手段12は、暖機パケット数30の値を0個に設定してもよい。なお、暖機パケット列の送信時やパケットトレイン送信時におけるパケットロスの判定結果に関わらず、次回の暖機パケット列の送信時における暖機パケットに含ませる暖機パケット数を、推定パケット数としてもよい。   Step S74 is a process that proceeds when it is determined that no packet loss has occurred during the transmission of the warm-up packet train and the transmission of the packet train. In step S74, the warm-up packet number determining means 12 may set the value of the warm-up packet number 30 to zero. Note that the number of warm-up packets to be included in the warm-up packet at the next warm-up packet sequence transmission is the estimated number of packets, regardless of the packet loss determination result at the time of warm-up packet train transmission or packet train transmission. Also good.

ステップS75では、受信側装置2の可用帯域推定手段21が、送信側装置1から送信されたパケットトレインの受信結果を基に、可用帯域を推定する。そして、可用帯域推定手段21は、推定した可用帯域の値を、可用帯域推定値59としてデータ記憶手段22に保持させる。可用帯域の推定には、例えば、特許文献1に記載の方法を用いてもよい。   In step S <b> 75, the available bandwidth estimation unit 21 of the reception side device 2 estimates the available bandwidth based on the reception result of the packet train transmitted from the transmission side device 1. Then, the available bandwidth estimation means 21 stores the estimated available bandwidth value in the data storage means 22 as the available bandwidth estimation value 59. For example, the method described in Patent Document 1 may be used for estimating the available bandwidth.

なお、システムの単純化のために、ステップS64、ステップS66、ステップS71、ステップS73、ステップS74において、暖機パケット数30の値を、推定パケット数50と同じ値や、推定パケット数50の2倍の値に設定してもよい。   For simplification of the system, in step S64, step S66, step S71, step S73, and step S74, the value of the number of warm-up packets 30 is set to the same value as the estimated number of packets 50 or 2 of the estimated number of packets 50. A double value may be set.

以上のように、本実施形態によれば、暖機パケットの数を、パケットロスの発生有無および輻輳の度合いに応じて調整することで、パケットトレインの全推定パケットにわたって、指定された時刻で正確に送信するために必要な暖機パケットの個数をできるだけ少なくすることができる。このため、パケットトレインを指定された時刻で正確に送信できるだけでなく、暖機パケットの送信に伴う時間と通信負荷のオーバヘッドも低減できる。   As described above, according to the present embodiment, the number of warm-up packets is adjusted according to the presence / absence of packet loss and the degree of congestion, so that it can be accurately performed at a specified time over all estimated packets of the packet train. It is possible to minimize the number of warm-up packets required for transmission to the network. For this reason, not only can the packet train be transmitted accurately at the specified time, but also the time and transmission load overhead associated with the transmission of the warm-up packet can be reduced.

また、暖機パケット列の送信時とパケットトレインの送信時の両方において、暖機パケットの数を、パケットロスの発生有無および輻輳の度合いに応じて調整することで、複数回パケットトレインの送信を行う場合であっても、暖機パケットの個数を減らすことができ、暖機パケットの送信に伴う時間と通信負荷のオーバヘッドを低減できる。   In addition, during both warm packet transmission and packet train transmission, the number of warm packets is adjusted according to the occurrence of packet loss and the degree of congestion, thereby allowing multiple packet train transmissions. Even when it is performed, the number of warm-up packets can be reduced, and the time and communication load overhead associated with the transmission of warm-up packets can be reduced.

なお、上記の実施形態では、可用帯域の推定を行う可用帯域推定システムに、本発明による輻輳ウィンドウサイズの制御方法を適応した例を示したが、本発明による輻輳ウィンドウサイズの制御方法は、可用帯域の推定用途に限定されない。例えば、アプリケーション層にプロトコルスタックの輻輳ウィンドウサイズを所定値以上とする機能を提供する制御システムとしても適用可能である。その場合、送信側装置1におけるパケットトレインの送信に関する機能および受信側装置2における可用帯域の推定に関する機能は省略される。   In the above embodiment, the example in which the method for controlling the congestion window size according to the present invention is applied to the available bandwidth estimation system for estimating the available bandwidth is shown. However, the method for controlling the congestion window size according to the present invention is applicable. It is not limited to the band estimation application. For example, the present invention can be applied to a control system that provides a function for setting a congestion window size of a protocol stack to a predetermined value or more in the application layer. In that case, the function regarding the transmission of the packet train in the transmission side apparatus 1 and the function regarding the estimation of the available bandwidth in the reception side apparatus 2 are omitted.

次に、本発明による制御システムおよび可用帯域推定システムの概要を説明する。図8は、本発明による制御システムの概要を示すブロック図である。図8に示すように、本発明による制御システムは、送信側の通信装置である送信側装置700と、受信側の通信装置である受信側装置800とを備えている。   Next, an outline of the control system and the available bandwidth estimation system according to the present invention will be described. FIG. 8 is a block diagram showing an outline of a control system according to the present invention. As shown in FIG. 8, the control system according to the present invention includes a transmitting apparatus 700 that is a transmitting communication apparatus and a receiving apparatus 800 that is a receiving communication apparatus.

また、送信側装置700は、暖機パケット列送信手段701と、暖機パケット数決定手段702と、ウィンドウサイズ推定手段703とを含む。   Transmission-side apparatus 700 includes warm-up packet train transmission means 701, warm-up packet number determination means 702, and window size estimation means 703.

暖機パケット列送信手段701(例えば、パケット送信手段10、パケット列生成手段11等)は、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、受信側装置800に送信する。   The warm-up packet sequence transmission unit 701 (for example, the packet transmission unit 10, the packet sequence generation unit 11 and the like) uses a protocol that performs reception confirmation and congestion control by a window, and is requested to transmit at a predetermined transmission interval. Before transmitting the first packet sequence including a plurality of packets, a warm-up packet sequence in which a plurality of warm-up packets, which are preparation packets transmitted using a protocol, are collected is transmitted to the receiving-side device 800.

暖機パケット数決定手段702(例えば、暖機パケット数決定手段12)は、暖機パケット列に含ませる暖機パケットの数を決定する。暖機パケット数決定手段702は、後述するウィンドウサイズ推定手段703による輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する。   The warm-up packet number determining unit 702 (for example, the warm-up packet number determining unit 12) determines the number of warm-up packets included in the warm-up packet sequence. The warm-up packet number determining means 702 determines the number of warm-up packets to be included in the warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size by the window size estimating means 703 described later.

ウィンドウサイズ推定手段703(例えば、輻輳ウィンドウサイズ推定手段16)は、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置800における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定する。   The window size estimation unit 703 (for example, the congestion window size estimation unit 16) acquires the transmission time of each warm-up packet included in the warm-up packet sequence and the reception at the reception-side device 800, acquired as a result of the transmission of the warm-up packet sequence. Based on the time, the minimum value of the congestion window size in the protocol stack after transmission of the warm-up packet sequence is estimated.

このような構成によれば、受信確認およびウィンドウによる輻輳制御があるプロトコルを用いて所定のパケット列を送信する場合に、アプリケーションレベルの簡易な構成で、事前に輻輳ウィンドウを当該パケット列の連続送信が可能なサイズまで大きくすることができる。また、第1のパケット列が可用帯域推定用のパケットトレインである場合には、アプリケーションレベルの簡易な構成で、受信確認のないプロトコルが使用できないネットワーク上の可用帯域の推定を高精度に行うことができる。   According to such a configuration, when a predetermined packet sequence is transmitted using a protocol with reception confirmation and congestion control by a window, the congestion window is continuously transmitted in advance with a simple configuration at the application level. Can be increased to a possible size. In addition, when the first packet sequence is a packet train for estimating available bandwidth, it is possible to estimate the available bandwidth on a network with a simple application-level configuration that cannot use a protocol without reception confirmation with high accuracy. Can do.

また、図9は、本発明による制御システムの他の構成例を示すブロック図である。図9に示すように、本発明による制御システムは、上記の構成に加えて、送信側装置700が、送受信時刻取得手段704、タイマ値推定手段705、パケットロス判定手段706や、第1パケット列送信手段707を含んでいてもよい。また、受信側装置800が、可用帯域推定手段801を含んでいてもよい。   FIG. 9 is a block diagram showing another configuration example of the control system according to the present invention. As shown in FIG. 9, in the control system according to the present invention, in addition to the above configuration, the transmission-side apparatus 700 includes a transmission / reception time acquisition unit 704, a timer value estimation unit 705, a packet loss determination unit 706, and a first packet sequence. A transmission unit 707 may be included. Further, the receiving-side apparatus 800 may include an available band estimation unit 801.

送受信時刻取得手段704(例えば、受信間隔算出手段13、パケット送信手段10等)は、暖機パケット列に含まれる各暖機パケットの、送信時刻および受信側装置における受信時刻を取得する。   The transmission / reception time acquisition unit 704 (for example, the reception interval calculation unit 13 and the packet transmission unit 10) acquires the transmission time and the reception time at the reception side device of each warm-up packet included in the warm-up packet sequence.

タイマ値推定手段705(例えば、タイマ値推定手段14)は、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻から、暖機パケット列の送信中におけるアプリケーションレベルでのラウンドトリップタイムであるRTTおよびプロトコルスタックレベルでの再送タイマの値であるRTO−valを算出する。   The timer value estimating means 705 (for example, the timer value estimating means 14) is based on the application level during transmission of the warm-up packet sequence from the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device. RTT, which is the round trip time of R, and RTO-val, which is the value of the retransmission timer at the protocol stack level.

パケットロス判定手段706(例えば、パケットロス判定手段15)は、暖機パケット列に含まれる各暖機パケットの送信時刻から特定される暖機パケットの送信間隔と、暖機パケット列に含まれる各暖機パケットの受信時刻から特定される暖機パケットの受信間隔と、RTTと、RTO−valとに基づいて、パケットロスが発生したか否かおよびその際の輻輳の度合いが軽度か重度かを判定する。   The packet loss determination unit 706 (for example, the packet loss determination unit 15) includes a transmission interval of warm-up packets specified from the transmission time of each warm-up packet included in the warm-up packet sequence, and each of the warm-up packet sequences. Based on the reception interval of the warm-up packet specified from the reception time of the warm-up packet, RTT, and RTO-val, whether or not a packet loss has occurred and whether the degree of congestion at that time is mild or severe judge.

第1パケット列送信手段707(例えば、パケット送信手段10、パケット列生成手段11等)は、第1のパケット列を、受信側装置800に送信する。   The first packet sequence transmission unit 707 (for example, the packet transmission unit 10, the packet sequence generation unit 11, etc.) transmits the first packet sequence to the reception side device 800.

可用帯域推定手段801(例えば、可用帯域推定手段21)は、第1のパケット列の受信結果に基づいて、送信側装置と受信側装置間の通信経路における可用帯域を推定する。   The available bandwidth estimation unit 801 (for example, the available bandwidth estimation unit 21) estimates the available bandwidth in the communication path between the transmission side device and the reception side device based on the reception result of the first packet sequence.

なお、送信側装置1が第1パケット列送信手段707を含み、受信側装置2が可用帯域推定手段801を含む構成である場合、制御システムは可用帯域推定システムと呼ばれてもよい。   When the transmission side apparatus 1 includes the first packet sequence transmission unit 707 and the reception side apparatus 2 includes the usable bandwidth estimation unit 801, the control system may be referred to as an usable bandwidth estimation system.

また、上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。   Moreover, although a part or all of said embodiment can be described also as the following additional remarks, it is not restricted to the following.

(付記1)送信側の通信装置である送信側装置と、受信側の通信装置である受信側装置とを備え、送信側装置は、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、受信側装置に送信する暖機パケット列送信手段と、暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定するウィンドウサイズ推定手段とを含み、暖機パケット数決定手段は、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定することを特徴とする制御システム。   (Additional remark 1) It is provided with the transmission side apparatus which is a communication apparatus of a transmission side, and the reception side apparatus which is a communication apparatus of a reception side, and the transmission side apparatus uses the protocol by which reception confirmation and congestion control by a window are performed, and A warm-up packet in which a plurality of warm-up packets, which are preparation packets transmitted using the protocol, are collected before transmission of the first packet sequence including a plurality of packets that are requested to be transmitted at a predetermined transmission interval. As a result of transmission of the warm-up packet sequence, warm-up packet sequence transmission means for transmitting the sequence to the receiving side device, warm-up packet number determination means for determining the number of warm-up packets included in the warm-up packet sequence, and Based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device, the congestion window in the protocol stack after transmission of the warm-up packet sequence Window size estimating means for estimating the minimum value of the size, and the warm-up packet number determining means is a warm-up packet included in the warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size Control system, characterized by determining the number of.

(付記2)暖機パケット数決定手段は、第1のパケット列に含まれるパケット数から、推定された輻輳ウィンドウサイズの最低値を引いた値を、再送信を行う暖機パケット列に含ませる暖機パケットの数とする付記1に記載の制御システム。   (Supplementary Note 2) The warm-up packet number determination means includes a value obtained by subtracting the estimated minimum congestion window size from the number of packets included in the first packet sequence in the warm-up packet sequence to be retransmitted. The control system according to appendix 1, wherein the number of warm-up packets is used.

(付記3)ウィンドウサイズ推定手段は、第1のパケット列の暖機パケット列の送信の結果取得される、第1のパケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、第1のパケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定し、暖機パケット数決定手段は、輻輳ウィンドウサイズの最低値の推定結果を基に、次回の第1のパケットの送信前に送信を行う暖機パケット列に含ませる暖機パケットの数を決定する付記1または付記2に記載の制御システム。   (Supplementary Note 3) The window size estimation means obtains the transmission time of each warm-up packet included in the first packet sequence and the reception time at the receiving-side device acquired as a result of transmission of the warm-up packet sequence of the first packet sequence The warm-up packet number determining means estimates the minimum value of the congestion window size based on the estimation result of the minimum value of the congestion window size, and estimates the minimum value of the congestion window size in the protocol stack after transmission of the first packet sequence. The control system according to Supplementary Note 1 or Supplementary Note 2, wherein the number of warm-up packets to be included in a warm-up packet sequence that is transmitted before transmission of one packet is determined.

(付記4)暖機パケット数決定手段は、第1のパケット列の送信時およびその前の暖機パケット列の送信時にいずれのパケットロスも発生しなかった場合には、次回の第1のパケットの送信前に送信を行う暖機パケット列に含ませる暖機パケットの数を0に決定する付記3に記載の制御システム。   (Supplementary Note 4) The warm-up packet number determining means determines whether the first packet of the next time when no packet loss occurs during transmission of the first packet sequence and transmission of the previous warm-up packet sequence. 4. The control system according to supplementary note 3, wherein the number of warm-up packets included in the warm-up packet sequence to be transmitted is determined to be 0 before transmission.

(付記5)送信側装置は、暖機パケット列に含まれる各暖機パケットの、送信時刻および受信側装置における受信時刻を取得する送受信時刻取得手段と、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻から、暖機パケット列の送信中におけるアプリケーションレベルでのラウンドトリップタイムであるRTTおよびプロトコルスタックレベルでの再送タイマの値であるRTO−valを算出するタイマ値推定手段と、暖機パケット列に含まれる各暖機パケットの送信時刻から特定される暖機パケットの送信間隔と、暖機パケット列に含まれる各暖機パケットの受信時刻から特定される暖機パケットの受信間隔と、RTTと、RTO−valとに基づいて、パケットロスが発生したか否かおよびその際の輻輳の度合いが軽度か重度かを判定するパケットロス判定手段とを含み、ウィンドウサイズ推定手段は、パケットロス判定手段による判定結果に基づいて、輻輳ウィンドウサイズの最低値を推定する付記1から付記4のうちのいずれかに記載の制御システム。   (Supplementary Note 5) The transmission side device includes transmission / reception time acquisition means for acquiring the transmission time and the reception time at the reception side device of each warm-up packet included in the warm-up packet sequence, and each warm-up included in the warm-up packet sequence A timer that calculates RTT, which is a round trip time at the application level during transmission of a warm-up packet sequence, and RTO-val, which is a value of a retransmission timer at the protocol stack level, from the transmission time of the packet and the reception time at the receiving side device The warm-up packet transmission interval specified from the value estimation means, the transmission time of each warm-up packet included in the warm-up packet sequence, and the warm-up time specified from the reception time of each warm-up packet included in the warm-up packet sequence. Whether or not a packet loss has occurred based on the reception interval of the machine packet, the RTT, and the RTO-val. A packet loss determination unit that determines whether the degree of congestion is mild or severe, and the window size estimation unit estimates a minimum value of the congestion window size based on a determination result by the packet loss determination unit. The control system according to any one of the above.

(付記6)ウィンドウサイズ推定手段は、暖機パケット列の送信により受け取る受信確認の数と、軽度および重度の輻輳によるパケットロスの発生回数とに少なくとも基づいて、輻輳ウィンドウサイズの最低値を推定する付記5に記載の制御システム。   (Appendix 6) The window size estimation means estimates the minimum value of the congestion window size based at least on the number of reception confirmations received by transmission of the warm-up packet sequence and the number of occurrences of packet loss due to mild and severe congestion. The control system according to appendix 5.

(付記7)ウィンドウサイズ推定手段は、プロトコルスタックにおける輻輳ウィンドウの制御における軽度の輻輳時による輻輳ウィンドウサイズの減少率をjとすると、軽度の輻輳によるパケットロスが発生したと判定された場合に、現時点のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を、送信に用いた暖機パケット列に含まれる暖機パケット数のj倍と推定する付記5または付記6に記載の制御システム。   (Supplementary Note 7) The window size estimation means, when it is determined that a packet loss due to a slight congestion has occurred, where j is a decrease rate of the congestion window size due to a slight congestion in the congestion window control in the protocol stack, The control system according to appendix 5 or appendix 6, wherein the minimum value of the congestion window size in the current protocol stack is estimated to be j times the number of warm-up packets included in the warm-up packet sequence used for transmission.

(付記8)ウィンドウサイズ推定手段は、プロトコルスタックにおける輻輳ウィンドウの制御における重度の輻輳後の輻輳ウィンドウサイズの値をkとすると、重度の輻輳によるパケットロスが発生したと判定された場合に、現時点のプロトコルスタックにおける輻輳ウィンドウサイズの最低値をkと推定する付記5から付記7のうちのいずれかに記載の制御システム。   (Supplementary Note 8) The window size estimation means, when it is determined that a packet loss due to severe congestion has occurred, assuming that the value of the congestion window size after severe congestion in the congestion window control in the protocol stack is k, The control system according to any one of appendix 5 to appendix 7, wherein the minimum value of the congestion window size in the protocol stack is estimated as k.

(付記9)パケットロス判定手段は、プロトコルスタックが軽度の輻輳を検知するまでに受信する重複した受信確認の回数をnとすると、ある暖機パケットの受信間隔が、当該暖機パケットの送信間隔をn倍した値にRTTを加えた値以上である場合を、当該暖機パケットにおける軽度の輻輳によるパケットロス発生の判定条件として用いて、各暖機パケットに対して軽度の輻輳によるパケットロスの発生を判定する付記5から付記8のうちのいずれかに記載の制御システム。   (Supplementary note 9) The packet loss determination means is configured such that the reception interval of a certain warm-up packet is the transmission interval of the warm-up packet, where n is the number of duplicate reception confirmations received before the protocol stack detects a slight congestion Is equal to or greater than the value obtained by adding RTT to the value obtained by multiplying n by a value as a determination condition for occurrence of packet loss due to light congestion in the warm-up packet. The control system according to any one of appendix 5 to appendix 8 for determining occurrence.

(付記10)パケットロス判定手段は、ある暖機パケットの受信間隔が、当該暖機パケットの送信間隔にRTO−valを加えた値以上である場合を、当該暖機パケットにおける重度の輻輳によるパケットロス発生の判定条件として用いて、各暖機パケットに対して重度の輻輳によるパケットロスの発生を判定する付記5から付記9のいずれかに記載の制御システム。   (Supplementary Note 10) The packet loss determination means determines that a packet due to severe congestion in the warm-up packet when the reception interval of a warm-up packet is equal to or greater than a value obtained by adding RTO-val to the transmission interval of the warm-up packet. The control system according to any one of appendix 5 to appendix 9, which determines occurrence of packet loss due to severe congestion for each warm-up packet using the determination condition for loss occurrence.

(付記11)パケットロス判定手段は、軽度の輻輳によるパケットロス発生の判定条件または重度の輻輳によるパケットロス発生の判定条件として、さらに、着目している暖機パケットの後続の所定数の暖機パケットである後続暖機パケットの受信間隔が所定の閾値以下であることを条件に加える付記9または付記10に記載の制御システム。   (Supplementary Note 11) The packet loss determination means further includes a predetermined number of warm-ups following the warm-up packet of interest as a determination condition for occurrence of packet loss due to light congestion or as a determination condition for occurrence of packet loss due to heavy congestion. The control system according to appendix 9 or appendix 10, which is added on condition that a reception interval of a subsequent warm-up packet which is a packet is equal to or less than a predetermined threshold value.

(付記12)送信側の通信装置である送信側装置と、受信側の通信装置である受信側装置とを備え、送信側装置は、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、受信側装置に送信する暖機パケット列送信手段と、暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定するウィンドウサイズ推定手段と、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、第1のパケット列を、受信側装置に送信する第1パケット列送信手段とを含み、受信側装置は、第1のパケット列の受信結果に基づいて、送信側装置と受信側装置間の通信経路における可用帯域を推定する可用帯域推定手段を含み、暖機パケット数決定手段は、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定することを特徴とする可用帯域推定システム。   (Supplementary Note 12) A transmission-side device that is a communication device on the transmission side and a reception-side device that is a communication device on the reception side, the transmission-side device uses a protocol that performs reception confirmation and congestion control by a window, and A warm-up packet in which a plurality of warm-up packets, which are preparation packets transmitted using the protocol, are collected before transmission of the first packet sequence including a plurality of packets that are requested to be transmitted at a predetermined transmission interval. As a result of transmission of the warm-up packet sequence, warm-up packet sequence transmission means for transmitting the sequence to the receiving side device, warm-up packet number determination means for determining the number of warm-up packets included in the warm-up packet sequence, and Based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device, the congestion window in the protocol stack after transmission of the warm-up packet sequence The window size estimation means for estimating the minimum value of the size of the window and the number of warm-up packets for determining the number of warm-up packets to be included in the warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size Means and a first packet sequence transmitting means for transmitting the first packet sequence to the receiving side device, the receiving side device based on the reception result of the first packet sequence, the transmitting side device and the receiving side device The warm-up packet number determining means includes a warm-up packet number to be included in a warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size. An available bandwidth estimation system for determining the number of machine packets.

(付記13)受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、所定の受信側装置に送信する暖機パケット列送信手段と、暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定するウィンドウサイズ推定手段とを備え、暖機パケット数決定手段は、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定することを特徴する通信装置。   (Supplementary Note 13) Using a protocol in which reception confirmation and congestion control by a window are performed, and using the protocol before transmission of the first packet sequence including a plurality of packets that are requested to be transmitted at a predetermined transmission interval A warm-up packet sequence transmitting means for transmitting a warm-up packet sequence in which a plurality of warm-up packets, which are preparation packets to be transmitted, are collected to a predetermined receiving side device, and the number of warm-up packets included in the warm-up packet sequence Based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device, which is obtained as a result of transmission of the warm-up packet sequence, Window size estimation means for estimating the minimum value of the congestion window size in the protocol stack after transmission of the packet sequence, Based on the estimation result of the minimum value of the congestion window size, retransmission communication device, wherein the step of determining the number of warm-up packets to be included in the warm-up packet sequence to perform.

(付記14)送信側の通信装置である送信側装置が、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、所定の受信側装置に向けて送信し、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定し、輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定し、決定された暖機パケットの数が1以上である場合に、第1のパケット列の送信前に、決定された数の暖機パケットを含む暖機パケット列の再送信を行うことを特徴とする制御方法。   (Additional remark 14) The transmission side apparatus which is a transmission side communication apparatus uses the protocol in which the reception confirmation and the congestion control by the window are performed, and includes a first packet composed of a plurality of packets requested to be transmitted at a predetermined transmission interval. Before transmitting the packet sequence, a warm-up packet sequence in which a plurality of warm-up packets, which are preparation packets transmitted using the protocol, are gathered is transmitted to a predetermined receiving-side device. Based on the transmission time of each warm-up packet included in the warm-up packet sequence acquired as a result of transmission and the reception time at the receiving side device, the minimum congestion window size in the protocol stack after transmission of the warm-up packet sequence is determined. Estimate and determine the number of warm-up packets to be included in the warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size. If the number of machine packets is 1 or more, prior to transmission of the first packet sequence control method and performing retransmission of warm-up packet train including a determined number of warm-up packets.

(付記15)コンピュータに、受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、該プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、所定の受信側装置に送信する処理、暖機パケット列の送信の結果取得される、暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻に基づいて、暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定する処理、および輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する処理を実行させるための制御プログラム。   (Supplementary note 15) Before transmitting the first packet sequence composed of a plurality of packets that are requested to be transmitted at a predetermined transmission interval by using a protocol in which reception confirmation and congestion control by a window are performed in a computer, the protocol A process for transmitting a warm-up packet string, which is a group of warm-up packets, which are preparation packets transmitted using a packet, to a predetermined receiving device, and a warm-up packet acquired as a result of transmission of the warm-up packet stream Processing for estimating the minimum value of the congestion window size in the protocol stack after transmission of the warm-up packet sequence based on the transmission time of each warm-up packet included in the sequence and the reception time at the receiving side device, and the minimum of the congestion window size Based on the value estimation result, a process for determining the number of warm-up packets included in the warm-up packet sequence to be retransmitted is executed. Control program.

以上、本実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   While the present invention has been described with reference to the present embodiment and examples, the present invention is not limited to the above embodiment and examples. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

本発明は、端末間で双方向に映像を送り合ってコミュニケーションをするビデオチャットやテレビ電話、テレビ会議などを行う場合などにおいて映像品質を確保するために可用帯域を推定する用途に好適に適用可能である。また、本発明は、可用帯域の推定用途に限定されず、所定の時間間隔で精度良く複数のパケットを連続的に送信したい場合にも好適に適用可能である。また、連続送信用途に限らず、アプリケーション層からプロトコルスタックの輻輳ウィンドウサイズを増加、維持させたい場合にも好適に適用可能である。   INDUSTRIAL APPLICABILITY The present invention can be suitably applied to the use of estimating the available bandwidth in order to ensure video quality when performing video chat, videophone, video conference, etc., in which video is transmitted bidirectionally between terminals. It is. Further, the present invention is not limited to the usage estimation of the available bandwidth, and can be suitably applied to a case where a plurality of packets are continuously transmitted with high accuracy at a predetermined time interval. Further, the present invention is not limited to the continuous transmission application, and can be suitably applied to the case where it is desired to increase and maintain the congestion window size of the protocol stack from the application layer.

1、700 送信側装置
2、800 受信側装置
3 ネットワーク
10 パケット送信手段
11 パケット列生成手段
12 暖機パケット数決定手段
13 受信間隔算出手段
14 タイマ値推定手段
15 パケットロス判定手段
16 輻輳ウィンドウサイズ推定手段
17 データ記憶手段
20 パケット受信手段
21 可用帯域推定手段
22 データ記憶手段
30 暖機パケット数
31 暖機パケット送信間隔
32 暖機パケット受信間隔
40 RTT計測値
41 RTO推定値
42 輻輳ウィンドウサイズ推定値
50 推定パケット数
51 推定パケット送信間隔
52 推定パケット受信間隔
59 可用帯域推定値
701 暖機パケット列送信手段
702 暖機パケット数決定手段
703 ウィンドウサイズ推定手段
704 送受信時刻取得手段
705 タイマ値推定手段
706 パケットロス判定手段
707 第1パケット列送信手段
801 可用帯域推定手段
DESCRIPTION OF SYMBOLS 1,700 Transmission side apparatus 2,800 Reception side apparatus 3 Network 10 Packet transmission means 11 Packet sequence generation means 12 Warm-up packet number determination means 13 Reception interval calculation means 14 Timer value estimation means 15 Packet loss determination means 16 Congestion window size estimation Means 17 Data storage means 20 Packet reception means 21 Available bandwidth estimation means 22 Data storage means 30 Number of warm-up packets 31 Warm-up packet transmission interval 32 Warm-up packet reception interval 40 RTT measurement value 41 RTO estimation value 42 Congestion window size estimation value 50 Estimated number of packets 51 Estimated packet transmission interval 52 Estimated packet reception interval 59 Available bandwidth estimated value 701 Warm-up packet sequence transmission means 702 Warm-up packet number determination means 703 Window size estimation means 704 Transmission / reception time acquisition means 705 Timer Estimating means 706 packet loss determining unit 707 first packet train transmission means 801 usable bandwidth estimator

Claims (10)

送信側の通信装置である送信側装置と、受信側の通信装置である受信側装置とを備え、
前記送信側装置は、
受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、前記プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、前記受信側装置に送信する暖機パケット列送信手段と、
前記暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、
前記暖機パケット列の送信の結果取得される、前記暖機パケット列に含まれる各暖機パケットの送信時刻および前記受信側装置における受信時刻に基づいて、前記暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定するウィンドウサイズ推定手段とを含み、
前記暖機パケット数決定手段は、前記輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する
ことを特徴とする制御システム。
A transmission side device that is a communication device on the transmission side, and a reception side device that is a communication device on the reception side,
The transmitting device is:
Preparation using a protocol that performs reception confirmation and congestion control by a window, and before the transmission of the first packet sequence including a plurality of packets that are requested to be transmitted at a predetermined transmission interval. A warm-up packet sequence transmitting means for transmitting a warm-up packet sequence in which a plurality of warm-up packets, which are packets for use, to the receiving side device;
Warm-up packet number determining means for determining the number of warm-up packets to be included in the warm-up packet sequence;
A protocol after transmission of the warm-up packet sequence, obtained as a result of transmission of the warm-up packet sequence, based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device Window size estimating means for estimating a minimum value of the congestion window size in the stack,
The warming-up packet number determining means determines the number of warming-up packets to be included in the warming-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size.
暖機パケット数決定手段は、第1のパケット列に含まれるパケット数から、推定された輻輳ウィンドウサイズの最低値を引いた値を、再送信を行う暖機パケット列に含ませる暖機パケットの数とする
請求項1に記載の制御システム。
The warm-up packet number determining means includes a warm-up packet to be included in a warm-up packet sequence to be retransmitted by subtracting a minimum value of the estimated congestion window size from the number of packets included in the first packet sequence. The control system according to claim 1.
ウィンドウサイズ推定手段は、第1のパケット列の暖機パケット列の送信の結果取得される、前記第1のパケット列に含まれる各暖機パケットの送信時刻および前記受信側装置における受信時刻に基づいて、前記第1のパケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定し、
暖機パケット数決定手段は、前記輻輳ウィンドウサイズの最低値の推定結果を基に、次回の第1のパケットの送信前に送信を行う暖機パケット列に含ませる暖機パケットの数を決定する
請求項1または請求項2に記載の制御システム。
The window size estimation means is obtained based on the transmission time of each warm-up packet included in the first packet sequence and the reception time in the reception-side device, acquired as a result of transmission of the warm-up packet sequence of the first packet sequence. A minimum congestion window size in the protocol stack after transmission of the first packet sequence,
The warm-up packet number determining means determines the number of warm-up packets to be included in the warm-up packet sequence to be transmitted before the next transmission of the first packet based on the estimation result of the minimum value of the congestion window size. The control system according to claim 1 or 2.
暖機パケット数決定手段は、第1のパケット列の送信時およびその前の暖機パケット列の送信時にいずれのパケットロスも発生しなかった場合には、次回の第1のパケットの送信前に送信を行う暖機パケット列に含ませる暖機パケットの数を0に決定する
請求項3に記載の制御システム。
The warm-up packet number determining means, when no packet loss occurs at the time of transmission of the first packet sequence and at the time of transmission of the previous warm-up packet sequence, before transmission of the next first packet The control system according to claim 3, wherein the number of warm-up packets included in the warm-up packet sequence to be transmitted is determined to be zero.
送信側装置は、
暖機パケット列に含まれる各暖機パケットの、送信時刻および受信側装置における受信時刻を取得する送受信時刻取得手段と、
前記暖機パケット列に含まれる各暖機パケットの送信時刻および受信側装置における受信時刻から、前記暖機パケット列の送信中におけるアプリケーションレベルでのラウンドトリップタイムであるRTTおよびプロトコルスタックレベルでの再送タイマの値であるRTO−valを算出するタイマ値推定手段と、
前記暖機パケット列に含まれる各暖機パケットの送信時刻から特定される前記暖機パケットの送信間隔と、前記暖機パケット列に含まれる各暖機パケットの受信時刻から特定される前記暖機パケットの受信間隔と、前記RTTと、前記RTO−valとに基づいて、パケットロスが発生したか否かおよびその際の輻輳の度合いが軽度か重度かを判定するパケットロス判定手段とを含み、
ウィンドウサイズ推定手段は、前記パケットロス判定手段による判定結果に基づいて、輻輳ウィンドウサイズの最低値を推定する
請求項1から請求項4のうちのいずれか1項に記載の制御システム。
The sending device is
Transmission / reception time acquisition means for acquiring the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device;
From the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device, the RTT that is the round trip time at the application level during the transmission of the warm-up packet sequence and the retransmission at the protocol stack level Timer value estimating means for calculating RTO-val which is a timer value;
The warm-up specified by the transmission interval of the warm-up packet specified from the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time of each warm-up packet included in the warm-up packet sequence Packet loss determination means for determining whether or not a packet loss has occurred and whether the degree of congestion at that time is mild or severe based on the packet reception interval, the RTT, and the RTO-val;
The control system according to any one of claims 1 to 4, wherein the window size estimation unit estimates a minimum value of a congestion window size based on a determination result by the packet loss determination unit.
ウィンドウサイズ推定手段は、暖機パケット列の送信により受け取る受信確認の数と、軽度および重度の輻輳によるパケットロスの発生回数とに少なくとも基づいて、輻輳ウィンドウサイズの最低値を推定する
請求項5に記載の制御システム。
The window size estimation means estimates a minimum value of the congestion window size based at least on the number of reception confirmations received by transmission of the warm-up packet sequence and the number of occurrences of packet loss due to mild and severe congestion. The described control system.
送信側の通信装置である送信側装置と、受信側の通信装置である受信側装置とを備え、
前記送信側装置は、
受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、前記プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、前記受信側装置に送信する暖機パケット列送信手段と、
前記暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、
前記暖機パケット列の送信の結果取得される、前記暖機パケット列に含まれる各暖機パケットの送信時刻および前記受信側装置における受信時刻に基づいて、前記暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定するウィンドウサイズ推定手段と、
前記輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、
前記第1のパケット列を、前記受信側装置に送信する第1パケット列送信手段とを含み、
前記受信側装置は、
前記第1のパケット列の受信結果に基づいて、送信側装置と受信側装置間の通信経路における可用帯域を推定する可用帯域推定手段を含み、
前記暖機パケット数決定手段は、前記輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する
ことを特徴とする可用帯域推定システム。
A transmission side device that is a communication device on the transmission side, and a reception side device that is a communication device on the reception side,
The transmitting device is:
Preparation using a protocol that performs reception confirmation and congestion control by a window, and before the transmission of the first packet sequence including a plurality of packets that are requested to be transmitted at a predetermined transmission interval. A warm-up packet sequence transmitting means for transmitting a warm-up packet sequence in which a plurality of warm-up packets, which are packets for use, to the receiving side device;
Warm-up packet number determining means for determining the number of warm-up packets to be included in the warm-up packet sequence;
A protocol after transmission of the warm-up packet sequence, obtained as a result of transmission of the warm-up packet sequence, based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device Window size estimation means for estimating the minimum value of the congestion window size in the stack;
Based on the estimation result of the minimum value of the congestion window size, the number of warm-up packets determining means for determining the number of warm-up packets to be included in the warm-up packet sequence to be retransmitted,
First packet sequence transmitting means for transmitting the first packet sequence to the receiving side device;
The receiving side device
Based on the reception result of the first packet sequence, including an available bandwidth estimation means for estimating an available bandwidth in a communication path between the transmission side device and the reception side device;
The warm-up packet number determining means determines the number of warm-up packets to be included in the warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size. system.
受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、前記プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、所定の受信側装置に送信する暖機パケット列送信手段と、
前記暖機パケット列に含ませる暖機パケットの数を決定する暖機パケット数決定手段と、
前記暖機パケット列の送信の結果取得される、前記暖機パケット列に含まれる各暖機パケットの送信時刻および前記受信側装置における受信時刻に基づいて、前記暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定するウィンドウサイズ推定手段とを備え、
前記暖機パケット数決定手段は、前記輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する
ことを特徴する通信装置。
Preparation using a protocol that performs reception confirmation and congestion control by a window, and before the transmission of the first packet sequence including a plurality of packets that are requested to be transmitted at a predetermined transmission interval. A warm-up packet sequence transmitting means for transmitting a warm-up packet sequence in which a plurality of warm-up packets, which are packets for use, to a predetermined receiving device;
Warm-up packet number determining means for determining the number of warm-up packets to be included in the warm-up packet sequence;
A protocol after transmission of the warm-up packet sequence, obtained as a result of transmission of the warm-up packet sequence, based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device Window size estimation means for estimating the minimum value of the congestion window size in the stack,
The warm-up packet number determining means determines the number of warm-up packets included in the warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size.
送信側の通信装置である送信側装置が、
受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、前記プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、所定の受信側装置に向けて送信し、
前記暖機パケット列の送信の結果取得される、前記暖機パケット列に含まれる各暖機パケットの送信時刻および前記受信側装置における受信時刻に基づいて、前記暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定し、
前記輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定し、
決定された暖機パケットの数が1以上である場合に、前記第1のパケット列の送信前に、決定された数の暖機パケットを含む暖機パケット列の再送信を行う
ことを特徴とする制御方法。
A transmitting device that is a communication device on the transmitting side
Preparation using a protocol that performs reception confirmation and congestion control by a window, and before the transmission of the first packet sequence including a plurality of packets that are requested to be transmitted at a predetermined transmission interval. A warm-up packet sequence in which a plurality of warm-up packets, which are packets for use, are sent to a predetermined receiving device,
A protocol after transmission of the warm-up packet sequence, obtained as a result of transmission of the warm-up packet sequence, based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device Estimate the minimum congestion window size in the stack,
Based on the estimation result of the minimum value of the congestion window size, determine the number of warm-up packets to be included in the warm-up packet sequence to be retransmitted,
When the determined number of warm-up packets is 1 or more, the warm-up packet sequence including the determined number of warm-up packets is retransmitted before transmitting the first packet sequence. Control method to do.
コンピュータに、
受信確認およびウィンドウによる輻輳制御が行われるプロトコルを用い、かつ所定の送信間隔での送信が要求される複数のパケットからなる第1のパケット列の送信前に、前記プロトコルを用いて送信される準備用パケットである暖機パケットを複数個まとめた暖機パケット列を、所定の受信側装置に送信する処理、
前記暖機パケット列の送信の結果取得される、前記暖機パケット列に含まれる各暖機パケットの送信時刻および前記受信側装置における受信時刻に基づいて、前記暖機パケット列の送信後のプロトコルスタックにおける輻輳ウィンドウサイズの最低値を推定する処理、および
前記輻輳ウィンドウサイズの最低値の推定結果を基に、再送信を行う暖機パケット列に含ませる暖機パケットの数を決定する処理
を実行させるための制御プログラム。
On the computer,
Preparation using a protocol that performs reception confirmation and congestion control by a window, and before the transmission of the first packet sequence including a plurality of packets that are requested to be transmitted at a predetermined transmission interval. A process of transmitting a warm-up packet sequence in which a plurality of warm-up packets, which are packets for use, to a predetermined receiving device,
A protocol after transmission of the warm-up packet sequence, obtained as a result of transmission of the warm-up packet sequence, based on the transmission time of each warm-up packet included in the warm-up packet sequence and the reception time at the receiving side device Processing to estimate the minimum value of the congestion window size in the stack and processing to determine the number of warm-up packets included in the warm-up packet sequence to be retransmitted based on the estimation result of the minimum value of the congestion window size Control program to let you.
JP2015200326A 2015-10-08 2015-10-08 Control system, available band width estimation system, device, method and program Pending JP2019012866A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015200326A JP2019012866A (en) 2015-10-08 2015-10-08 Control system, available band width estimation system, device, method and program
PCT/JP2016/004265 WO2017061075A1 (en) 2015-10-08 2016-09-20 Control system, available bandwidth estimating system, device, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015200326A JP2019012866A (en) 2015-10-08 2015-10-08 Control system, available band width estimation system, device, method and program

Publications (1)

Publication Number Publication Date
JP2019012866A true JP2019012866A (en) 2019-01-24

Family

ID=58487418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015200326A Pending JP2019012866A (en) 2015-10-08 2015-10-08 Control system, available band width estimation system, device, method and program

Country Status (2)

Country Link
JP (1) JP2019012866A (en)
WO (1) WO2017061075A1 (en)

Also Published As

Publication number Publication date
WO2017061075A1 (en) 2017-04-13

Similar Documents

Publication Publication Date Title
JP4778453B2 (en) Communication terminal, congestion control method, and congestion control program
JP4708978B2 (en) Communication system, communication terminal, session relay device, and communication protocol realizing high throughput
KR102187810B1 (en) Apparatus and method for controlling data flow in a communication system
JP4654926B2 (en) COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND CONgestion Control Method Used In Them
JP5258938B2 (en) Communication device
JP5625748B2 (en) COMMUNICATION DEVICE, COMMUNICATION SYSTEM, PROGRAM, AND COMMUNICATION METHOD
US8565249B2 (en) Queue management system and methods
KR20060100512A (en) Method and system for estimating average bandwidth in a communication network based on transmission control protocol
CN112436924B (en) Data transmission method and electronic equipment
JP4402619B2 (en) Multicast communication flow control method and apparatus
EP2922241B1 (en) Methods and apparatus to determine network delay with location independence from retransmission delay and application response time
JP5506591B2 (en) Communication system and communication quality control method
US11153220B2 (en) Methods and apparatus to determine network delay with location independence
CA2940077C (en) Buffer bloat control
WO2017061075A1 (en) Control system, available bandwidth estimating system, device, method, and program
JP2008236709A (en) Communication quality control method, communication quality control apparatus, communication system, and program
JP2004140596A (en) Method and system for estimating quality in data transfer on transmission control protocol
Kato et al. Inferring TCP Congestion Control Algorithms by Correlating Congestion Window Sizes and their Differences
KR102131427B1 (en) Method and apparatus for performing a congestion control in stream control transmission protocol
KR100915996B1 (en) Method and Terminal for Controlling Transmission according Bandwidth Change
JP5436473B2 (en) Band calculation method and apparatus
KR20090050125A (en) Apparatus and method for tcp performance enhancement in wireless network
Rahman et al. Handling Realtime traffic using congestion control algorithms under Meanfield Domain
Magalhaes et al. Improving Performance of Rate-Based Transport Protocols in Wireless Environments
JP2005252638A (en) Network communication control method and apparatus thereof