JP4435817B2 - Communication terminal, communication control method, and communication control program - Google Patents

Communication terminal, communication control method, and communication control program Download PDF

Info

Publication number
JP4435817B2
JP4435817B2 JP2007215080A JP2007215080A JP4435817B2 JP 4435817 B2 JP4435817 B2 JP 4435817B2 JP 2007215080 A JP2007215080 A JP 2007215080A JP 2007215080 A JP2007215080 A JP 2007215080A JP 4435817 B2 JP4435817 B2 JP 4435817B2
Authority
JP
Japan
Prior art keywords
space
bytes
segment
target
received
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007215080A
Other languages
Japanese (ja)
Other versions
JP2008259164A (en
Inventor
憲一 山崎
和徳 山本
偉元 鈴木
健 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2007215080A priority Critical patent/JP4435817B2/en
Priority to CN2007101477728A priority patent/CN101141393B/en
Priority to EP07017450A priority patent/EP1898546A3/en
Priority to US11/851,064 priority patent/US8279756B2/en
Priority to KR1020070090793A priority patent/KR100922472B1/en
Publication of JP2008259164A publication Critical patent/JP2008259164A/en
Application granted granted Critical
Publication of JP4435817B2 publication Critical patent/JP4435817B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は通信端末、通信制御方法および通信制御プログラムに関し、特に、TCP(Transmission Control Protocol)における輻輳制御方法に適用して好適なものである。   The present invention relates to a communication terminal, a communication control method, and a communication control program, and is particularly suitable for application to a congestion control method in TCP (Transmission Control Protocol).

現在、インターネットで幅広く用いられているTCPでは、ネットワークの輻輳を回避するために、セグメントを送信する際に輻輳ウィンドウ(CWND)を利用して輻輳制御が行われている。
一般的にTCPの輻輳制御アルゴリズムでは、以下のようにして輻輳ウィンドウ(CWND)の設定が行なわれる。
Currently, in TCP widely used in the Internet, congestion control is performed using a congestion window (CWND) when transmitting a segment in order to avoid network congestion.
Generally, in the congestion control algorithm of TCP, a congestion window (CWND) is set as follows.

1.ACK(Acknowlegment)受信時
1.1.Slow Start時
CWND(n+1)=CWND(n)+a×MSSに設定する。
1.2.Cpngestion Avoidance時
CWND(n+1)=CWND(n)+a/CWND(n)に設定する。
2.パケットロス発生時
CWND(n+1)=(1−b)×CWND(n)に設定する。
1. When ACK (Acknowledgement) is received 1.1. At Slow Start, CWND (n + 1) = CWND (n) + a × MSS is set.
1.2. Cpndition Avoidance CWND (n + 1) = CWND (n) + a / CWND (n).
2. When packet loss occurs CWND (n + 1) = (1-b) × CWND (n).

ただし、MSS(Maximum Segment Size)は送信側が送信することができる最大セグメントサイズである。また、CWND(CONGESTION WINDOW)は、TCPの送信可能サイズを制限するTCPステート変数である。
通常のTCPでは、a=1、b=0.5が利用される。
このTCPの輻輳制御アルゴリズムでは、セグメントロスを契機としてCWNDを減少させて、輻輳制御が行われるため、セグメントロスが発生しない限り、CWNDが増加し続ける。このため、セグメントロスが発生しない限り、CWNDが増加し、中継ノードの受信バッファの利用率の上昇によってRTT(Round Trip Time)の増加を招く。
However, MSS (Maximum Segment Size) is the maximum segment size that can be transmitted by the transmitting side. CWND (CONGESTION WINDOW) is a TCP state variable that limits the TCP transmittable size.
In normal TCP, a = 1 and b = 0.5 are used.
In this TCP congestion control algorithm, CWND is decreased and triggered by segment loss, and congestion control is performed. Therefore, CWND continues to increase unless segment loss occurs. For this reason, unless a segment loss occurs, CWND increases, and an increase in the utilization rate of the reception buffer of the relay node causes an increase in RTT (Round Trip Time).

例えば、非特許文献1には、送信側のSlow Startを考慮し、受信側が1RTTの間にアプリケーションに読み込んだバイト数(rcv_bytes)の2倍を広告ウ
ィンドウとして送信側に伝え、送信側がセグメントの送信量をrcv_bytes×2に
抑えることで、余分なセグメントの送信を防止する方法が開示されている。
図7は、従来のRTTの計測方法を示す図である。各セグメントは10byteのデータを持つと想定し、各セグメントの最初のシーケンス番号をseqとして図に表している。
For example, in Non-Patent Document 1, taking into account the slow start on the transmitting side, the receiving side informs the transmitting side twice the number of bytes (rcv_bytes) read into the application during 1 RTT, and the transmitting side transmits the segment. A method for preventing transmission of an extra segment by limiting the amount to rcv_bytes × 2 is disclosed.
FIG. 7 is a diagram illustrating a conventional RTT measurement method. Assuming that each segment has 10 bytes of data, the first sequence number of each segment is represented as seq in the figure.

図7において、TCP受信側32では、広告ウィンドウ(rcv_wnd)を用いてa
ck(acknowledge number)+rcv_wndのseq(seque
nce number)−1をTCP送信側31から受け取るまでの時間を1RTTとすることができる。
例えば、ack=210、rcv_wnd=60とすると、TCP受信側32では、seq=210からseq=269(ack+rcv_wnd−1)をTCP送信側31から受け取るまでの時間を1RTTとすることができる。
Dynamic Right−Sizing in TCP Mike Fisk and W.Feng 2nd Annual Los Alamos Computer Science Institute Symposium(LACSI2001),Snta Fe,New Mexico,October 2001
In FIG. 7, the TCP receiving side 32 uses the advertisement window (rcv_wnd) to
ck (acknowledge number) + rcv_wnd seq (sequence
nce number) -1 from the TCP transmission side 31 can be set to 1 RTT.
For example, when ack = 210 and rcv_wnd = 60, the TCP reception side 32 can set the time from seq = 210 to seq = 269 (ack + rcv_wnd−1) from the TCP transmission side 31 to 1 RTT.
Dynamic Right-Sizing in TCP Mike Fish and W. Feng 2nd Annual Los Alamos Computer Science Institute Symposium (LACSI2001), Snta Fe, New Mexico, October 2001

しかしながら、非特許文献1に開示された方法では、RTTの計測やrcv_byte
sの算出がTCP受信側32で行われるため、RTTの計測精度の劣化を招いたり、過剰なセグメントの送出が行われたりするという問題があった。
図8は、従来のRTTの計測方法の問題点を示す図である。
図8において、CWNDがrcv_wndよりも小さいと、RTTが通常よりも長く計
測され、rcv_bytesが増加するため、過剰なセグメントの送出が行われる。例え
ば、ack=210、rcv_wnd=60とし、CWND=40とすると、seq=2
30が送信される時刻とseq=240が送信される時刻との間の間隔が大きくなる。このため、TCP受信側32では、seq=210からseq=269を受け取るまでの時間が1RTTとされるため、RTTが通常よりも長く計測される。
However, in the method disclosed in Non-Patent Document 1, RTT measurement and rcv_byte are performed.
Since the calculation of s is performed on the TCP receiving side 32, there is a problem in that the measurement accuracy of RTT is deteriorated and excessive segments are transmitted.
FIG. 8 is a diagram showing a problem of a conventional RTT measurement method.
In FIG. 8, when CWND is smaller than rcv_wnd, RTT is measured longer than usual, and rcv_bytes increases, so that an excessive segment is transmitted. For example, when ack = 210, rcv_wnd = 60, and CWND = 40, seq = 2
The interval between the time when 30 is transmitted and the time when seq = 240 is transmitted increases. For this reason, in the TCP receiving side 32, since the time from receiving seq = 210 to seq = 269 is set to 1 RTT, RTT is measured longer than usual.

また、非特許文献1に開示された方法では、rcv_bytesの2倍を広告ウィンドウとして送信側に伝えるとともに、計測されたrcv_bytesの最大値を利用するため、「1RTTの間に送信したバイト数=1RTTの間に受信したバイト数」という理想的な場合に比べると、過剰なセグメントの送出が行われるようになる。
そこで、本発明の目的は、ネットワークへの過剰なセグメントの送信を効果的に抑制することが可能な通信端末、通信制御方法および通信制御プログラムを提供することである。
Further, in the method disclosed in Non-Patent Document 1, twice the number of rcv_bytes is transmitted to the transmission side as an advertisement window, and the maximum value of the measured rcv_bytes is used. Compared to the ideal case of “the number of bytes received during the period”, an excessive number of segments are transmitted.
Accordingly, an object of the present invention is to provide a communication terminal, a communication control method, and a communication control program capable of effectively suppressing transmission of an excessive segment to a network.

上述した課題を解決するために、請求項1記載の通信端末によれば、一定期間内に受信側に到達したセグメントのバイト数を送信側で算出する受信バイト数計算部と、前記受信バイト数計算部にて算出されたセグメントのバイト数に基づいて、送信セグメント数であるtargetを制御する送信セグメント制御部と、を備え、前記送信セグメント制御部は、所定の設定値であるspaceが、通信プロトコル上の送信可能なデータサイズを制限する変数であるcwndおよび受信側が一度に受信可能なデータサイズであるrcv wndの最小値を下回る場合には、spaceに従ってセグメントを送信し、前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、送信側が送信可能な最大セグメントサイズであるMSSを2倍した値を前記spaceに加算した値に設定し、前記spaceが前記targetより大きい場合、前記spaceを、前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、前記spaceから前記MSSを減算した値に設定し、ACKされたバイト数が計算できる場合には、前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、前記spaceにACKされたバイト数を加算した値に設定し、前記spaceが前記targetより大きい場合には、前記spaceを前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、該spaceからACKされたバイト数の1/2を減算した値に設定することを特徴とする。
また、請求項2記載の通信端末によれば、RTTの最小値を計測する最小時間計測部と、前記最小時間計測部にて計測されたRTTの最小値の期間内に受信側に到達したセグメントのバイト数を送信側で算出する受信バイト数計算部と、前記受信バイト数計算部にて算出されたセグメントのバイト数に基づいて、送信セグメント数であるtargetを制御する送信セグメント制御部と、を備え、前記送信セグメント制御部は、所定の設定値であるspaceが、通信プロトコル上の送信可能なデータサイズを制限する変数であるcwndおよび受信側が一度に受信可能なデータサイズであるrcv wndの最小値を下回る場合には、spaceに従ってセグメントを送信し、前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、送信側が送信可能な最大セグメントサイズであるMSSを2倍した値を前記spaceに加算した値に設定し、前記spaceが前記targetより大きい場合、前記spaceを、前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、前記spaceから前記MSSを減算した値に設定し、ACKされたバイト数が計算できる場合には、前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、前記spaceにACKされたバイト数を加算した値に設定し、前記spaceが前記targetより大きい場合には、前記spaceを前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、該spaceからACKされたバイト数の1/2を減算した値に設定することを特徴とする。
In order to solve the above-described problem, according to the communication terminal according to claim 1, the received byte number calculating unit that calculates the number of bytes of the segment that has reached the receiving side within a certain period on the transmitting side, and the received byte number based on the number of bytes of segments calculated by calculation unit, and a transmission segment control unit for controlling the target is the number of transmission segment, the transmission segment control unit is space is a predetermined set value, the communication If the cwnd, which is a variable that limits the data size that can be transmitted on the protocol, and the minimum value of rcv wnd, which is the data size that can be received at one time, are below the minimum value, a segment is transmitted according to space, When the target is large, the space is set to the maximum segment size that can be transmitted by the transmission side every time an ACK is received. Set the value obtained by doubling the MSS that is equal to the value added to the space, and if the space is greater than the target, set the space to the same value as the target, or receive the ACK for the space Each time, the MSS is subtracted from the space, and when the number of ACKed bytes can be calculated, if the target is larger than the space, the space is set to the space every time an ACK is received. If the number of ACKed bytes is set, and the space is larger than the target, the space is set to the same value as the target, or the space is set from the space every time an ACK is received. by setting the ACK value obtained by subtracting the half of the number of bytes And features.
According to the communication terminal of claim 2, the minimum time measuring unit that measures the minimum value of RTT, and the segment that has reached the receiving side within the period of the minimum value of RTT measured by the minimum time measuring unit A received byte number calculating unit that calculates the number of bytes on the transmission side, a transmission segment control unit that controls a target that is the number of transmission segments based on the number of bytes of the segment calculated by the received byte number calculating unit, The transmission segment control unit includes a space having a predetermined setting value of cwnd, which is a variable that limits a data size that can be transmitted on a communication protocol, and rcv wnd, which is a data size that can be received at a time by the receiving side. If below the minimum value, send the segment according to space, and if the target is greater than the space, the sp For each ACK received, ace is set to a value obtained by adding MSS, which is the maximum segment size that can be transmitted by the transmitting side, to twice the space, and when the space is larger than the target, the space is set to the target Or the space is set to a value obtained by subtracting the MSS from the space every time an ACK is received, and the number of ACKed bytes can be calculated, the target is more than the space. If it is larger, the space is set to a value obtained by adding the number of bytes ACKed to the space every time an ACK is received. If the space is larger than the target, the space is set to the same value as the target. Alternatively, the space is set to the spa every time an ACK is received. and setting a value obtained by subtracting the half of the number of bytes ACK e. From

また、請求項3記載の通信端末によれば、前記最小時間計測部は、セグメントの送信が所定時間以上行われなかった場合、あるいは輻輳ウィンドウが初期ウィンドウサイズを下回った場合、あるいは所定の計測時間に渡って前記RTTの最小値にて規定される値以下のRTTが計測されなかった場合、前記RTTの最小値を再設定することを特徴とする。また、請求項4記載の通信端末によれば、前記受信バイト数計算部にて算出されたセグメントのバイト数を考慮することなく、ACK受信時またはパケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を計算する輻輳ウィンドウ計算部をさらに備え、前記送信セグメント制御部は、前記輻輳ウィンドウ計算部にて計算された輻輳ウィンドウまたはスロースタート閾値に基づいてセグメントの送信制御を行うことを特徴とする。
Further, according to the communication terminal of claim 3, the minimum time measurement unit is configured such that when the segment is not transmitted for a predetermined time or more, or when the congestion window is smaller than the initial window size, or for a predetermined measurement time. If the RTT below the value specified by the minimum value of the RTT is not measured over the period, the minimum value of the RTT is reset. According to the communication terminal of claim 4 , the congestion window or the slow start threshold value at the time of ACK reception or packet loss occurrence can be set without considering the number of bytes of the segment calculated by the received byte number calculation unit. It further comprises a congestion window calculation unit for calculating, wherein the transmission segment control unit performs segment transmission control based on a congestion window or a slow start threshold calculated by the congestion window calculation unit .

また、請求項5記載の通信制御方法によれば、一定期間内に受信側に到達したセグメントのバイト数を送信側で算出するステップと、前記送信側で算出されたセグメントのバイト数を、送信側が送信することができる最大セグメントサイズ、あるいはACKされたバイト数に基づいて制限しながら制御するステップと、を含み、前記制御するステップは、所定の設定値であるspaceが、通信プロトコル上の送信可能なデータサイズを制限する変数であるcwndおよび受信側が一度に受信可能なデータサイズであるrcv wndの最小値を下回る場合には、spaceに従ってセグメントを送信し、前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、送信側が送信可能な最大セグメントサイズであるMSSを2倍した値を前記spaceに加算した値に設定し、前記spaceが前記targetより大きい場合、前記spaceを、前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、前記spaceから前記MSSを減算した値に設定し、ACKされたバイト数が計算できる場合には、前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、前記spaceにACKされたバイト数を加算した値に設定し、前記spaceが前記targetより大きい場合には、前記spaceを前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、該spaceからACKされたバイト数の1/2を減算した値に設定することを特徴とする。 According to the communication control method of claim 5, the step of calculating the number of bytes of the segment that has reached the receiving side within a certain period on the transmitting side, and the number of bytes of the segment calculated on the transmitting side are transmitted. And controlling based on the maximum segment size that can be transmitted or the number of bytes that have been ACKed, and the step of controlling the transmission of a predetermined set value based on a communication protocol. When the variable is smaller than the minimum value of cwnd, which is a variable that limits the possible data size, and rcv wnd, which is the data size that can be received at one time, the segment is transmitted according to space, and the target is larger than the space , The maximum segment size that can be transmitted by the transmission side every time an ACK is received The value obtained by doubling the MSS is set to the value added to the space. If the space is larger than the target, the space is set to the same value as the target, or the space is set for each ACK received. In addition, if the MSS is subtracted from the space and the number of ACKed bytes can be calculated, and the target is larger than the space, the space is ACKed to the space every time an ACK is received. If the space is larger than the target, the space is set to the same value as the target, or the space is acknowledged from the space every time an ACK is received. Japanese to be set to the value obtained by subtracting the half of the number of bytes To.

また、請求項6記載の通信制御プログラムによれば、一定期間内に受信側に到達したセグメントのバイト数を送信側で算出するステップと、前記送信側で算出されたセグメントのバイト数を、送信側が送信することができる最大セグメントサイズ、あるいはACKされたバイト数に基づいて制限しながら制御するステップと、を含み、前記制御するステップは、所定の設定値であるspaceが、通信プロトコル上の送信可能なデータサイズを制限する変数であるcwndおよび受信側が一度に受信可能なデータサイズであるrcv wndの最小値を下回る場合には、spaceに従ってセグメントを送信し、前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、送信側が送信可能な最大セグメントサイズであるMSSを2倍した値を前記spaceに加算した値に設定し、前記spaceが前記targetより大きい場合、前記spaceを、前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、前記spaceから前記MSSを減算した値に設定し、ACKされたバイト数が計算できる場合には、前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、前記spaceにACKされたバイト数を加算した値に設定し、前記spaceが前記targetより大きい場合には、前記spaceを前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、該spaceからACKされたバイト数の1/2を減算した値に設定する処理をコンピュータに実行させることを特徴とする。 According to the communication control program of claim 6, the step of calculating the number of bytes of the segment that has reached the receiving side within a certain period on the transmitting side, and the number of bytes of the segment calculated on the transmitting side are transmitted. And controlling based on the maximum segment size that can be transmitted or the number of bytes that have been ACKed, and the step of controlling the transmission of a predetermined set value based on a communication protocol. When the variable is smaller than the minimum value of cwnd, which is a variable that limits the possible data size, and rcv wnd, which is the data size that can be received at one time, the segment is transmitted according to space, and the target is larger than the space , The maximum segment that the transmitting side can transmit for each ACK received A value obtained by doubling the size MSS is set to the value added to the space, and if the space is larger than the target, the space is set to the same value as the target, or the space is received by ACK. Each time, the MSS is subtracted from the space, and when the number of ACKed bytes can be calculated, if the target is larger than the space, the space is set to the space every time an ACK is received. If the number of ACKed bytes is set, and the space is larger than the target, the space is set to the same value as the target, or the space is set from the space every time an ACK is received. Set to a value obtained by subtracting 1/2 of the number of bytes that were acknowledged. And characterized by causing a computer to execute the.

以上説明したように、本発明によれば、受信側に到達したセグメントのバイト数を送信側で算出することにより、送信側の事情を考慮しながら、受信側に到達したセグメントのバイト数を送信側に伝える必要がなくなり、ネットワークへの過剰なセグメントの送信を効果的に抑制することが可能となる。   As described above, according to the present invention, by calculating the number of bytes of the segment that has reached the receiving side on the transmitting side, the number of bytes of the segment that has reached the receiving side can be transmitted while considering the circumstances on the transmitting side. Therefore, it is possible to effectively suppress transmission of an excessive segment to the network.

以下、本発明の実施形態に係る通信端末について図面を参照しながら説明する。
図1は、本発明の第1実施形態に係る送信端末の概略構成を示すブロック図である。
図1において、送信端末11には、インターネットなどのネットワークを介して送られたセグメントを受信するセグメント受信部12、RTTの最小値を計測する最小時間計測部13、最小時間計測部13にて計測されたRTTの最小値の期間内に受信側に到達したセグメントのバイト数を送信側で算出する受信バイト数計算部14、受信バイト数計算部14にて算出された受信セグメントのバイト数に基づいて、セグメントの送信制御に用いるターゲットを計算するターゲット計算部15、ターゲット計算部15にて計算されたターゲットに基づいて、セグメントの送信制御を行う送信セグメント制御部16およびインターネットなどのネットワークを介してセグメントを送信するセグメント送信部17が設けられている。
Hereinafter, a communication terminal according to an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram showing a schematic configuration of a transmission terminal according to the first embodiment of the present invention.
In FIG. 1, the transmission terminal 11 is measured by a segment receiving unit 12 that receives a segment sent via a network such as the Internet, a minimum time measuring unit 13 that measures a minimum value of RTT, and a minimum time measuring unit 13. Based on the number of bytes of the received segment calculated by the received byte number calculating unit 14 and the received byte number calculating unit 14 for calculating the number of bytes of the segment that has reached the receiving side within the period of the minimum value of the RTT The target calculation unit 15 that calculates a target used for segment transmission control, the transmission segment control unit 16 that performs segment transmission control based on the target calculated by the target calculation unit 15, and a network such as the Internet A segment transmission unit 17 for transmitting a segment is provided.

そして、最小時間計測部13は、TCPにて行われる方法と同様にしてRTTを計測することができる。すなわち、Timestamp Optionが利用可能な場合、最小時間計測部13は、ACK(Acknowledgement)の受信時に、(現在の時刻)−(Timestamp Echo)をRTTとすることができる。
一方、Timestamp Optionが利用できない場合、最小時間計測部13は、ACKの受信時に、(現在の時刻)−(Ackされたセグメントが送信された時刻)をRTTとすることができる。
Then, the minimum time measuring unit 13 can measure the RTT in the same manner as the method performed by TCP. That is, when the Timestamp Option is available, the minimum time measurement unit 13 can set (current time) − (Timestamp Echo) as an RTT when receiving an ACK (Acknowledgement).
On the other hand, when the Timestamp Option cannot be used, the minimum time measurement unit 13 can set (current time)-(time at which the acked segment is transmitted) as the RTT when ACK is received.

そして、最小時間計測部13は、セグメントが送信されている間にRTTの計測を継続して行い、RTTの最小値(rtt_min)が計測されるごとにRTTの最小値(rtt_min)を更新しながら、RTTの最小値(rtt_min)を受信セグメントのバイト数(rcv_bytes)の計算に用いることができる。
また、ルートの切り替えや受信端末の移動などによってRTTが大きく変化する場合を考慮し、以下の場合にはRTTの最小値(rtt_min)を再設定することもできる。
Then, the minimum time measuring unit 13 continuously performs RTT measurement while the segment is being transmitted, and updates the RTT minimum value (rtt_min) every time the RTT minimum value (rtt_min) is measured. , The minimum value of RTT (rtt_min) can be used to calculate the number of bytes (rcv_bytes) of the received segment.
In consideration of the case where the RTT changes greatly due to route switching or movement of the receiving terminal, the minimum value (rtt_min) of the RTT can be reset in the following cases.

(1)セグメントの送信が1RTT以上の時間行われなかった場合。
この場合には、1RTTとしては、RTTの最小値(rtt_min)の他に、TCP
においてRTTから計算されるRTO(Retransmission Timeout)を利用することができる。
(2)CWNDが初期ウィンドウサイズを下回った場合。
(3)数RTTに渡ってrtt_min×(target/rcv_bytes+1)(targetは後述)以下のRTTが計測されない場合。ここで、計測する期間としては、rcv_bytesの計測の1RTT、計測した値に基づいて送信セグメント数を制御する期間1RTTを考慮し、2RTT以上を設定する。
(1) When segment transmission is not performed for a time longer than 1 RTT.
In this case, as 1 RTT, in addition to the minimum value of RTT (rtt_min), TCP
RTO (Retransmission Timeout) calculated from RTT can be used.
(2) When CWND falls below the initial window size.
(3) When the following RTT is not measured over several RTTs: rtt_min × (target / rcv_bytes + 1) (target will be described later). Here, as the measurement period, 1 RTT for measurement of rcv_bytes, and 1 RTT for controlling the number of transmission segments based on the measured value are set to 2 RTT or more.

次に、受信バイト数計算部14は、最小時間計測部13にてRTTの最小値(rtt_
min)が計測されると、RTTの最小値(rtt_min)の時間内に受信したACK
またはSACK(Selective Acknowledgement)の情報から、受信セグメントのバイト数(rcv_bytes)を算出する。
図2は、本発明の一実施形態に係る受信セグメントのバイト数の計測ポイントを従来例と比較して示すブロック図である。
Next, the received byte count calculation unit 14 causes the minimum time measurement unit 13 to use the minimum value of RTT (rtt_
min)), the ACK received within the time of the minimum value of RTT (rtt_min)
Alternatively, the number of bytes (rcv_bytes) of the received segment is calculated from information of SACK (Selective Acknowledgment).
FIG. 2 is a block diagram illustrating a measurement point of the number of bytes of a reception segment according to an embodiment of the present invention in comparison with a conventional example.

図2において、TCP送信側21からは、セグメント24がネットワーク23を介してTCP受信側22に送られる。そして、TCP受信側22で受信されたセグメント24は受信バッファ26に保持され、受信バッファ26を介してアプリケーション25に読み込まれる。
ここで、図5の方法では、アプリケーション25に読み込まれる時点P2のセグメント24のバイト数が輻輳制御に用いられる。このため、セグメントの再送があった場合には、アプリケーション25に読み込まれる時点P2のセグメント数が過少/過大に評価されてしまい、正確な制御を行うことができない。
In FIG. 2, a segment 24 is sent from the TCP transmission side 21 to the TCP reception side 22 via the network 23. The segment 24 received by the TCP receiving side 22 is held in the reception buffer 26 and read into the application 25 via the reception buffer 26.
Here, in the method of FIG. 5, the number of bytes of the segment 24 at the time point P2 read by the application 25 is used for congestion control. For this reason, when the segment is retransmitted, the number of segments at the time point P2 read into the application 25 is underestimated / overestimated, and accurate control cannot be performed.

これに対して、本実施形態では、受信した時点P1のセグメント24のバイト数を輻輳制御に用いることにより、ネットワークへの過剰なセグメントの送信を効果的に抑制することが可能となる。
図3は、本発明の一実施形態に係る受信セグメントのバイト数の計測方法を示す図である。
図3において、TCP送信側21では、RTTの最小値(rtt_min)の時間内に
TCP受信側22から受信したACKの情報から、受信セグメントのバイト数(rcv_
bytes)が算出される。
On the other hand, in this embodiment, by using the number of bytes of the segment 24 at the time point P1 received for congestion control, it is possible to effectively suppress the transmission of excessive segments to the network.
FIG. 3 is a diagram illustrating a method for measuring the number of bytes of a received segment according to an embodiment of the present invention.
In FIG. 3, the TCP transmission side 21 determines the number of bytes (rcv__) of the received segment from the ACK information received from the TCP reception side 22 within the time of the minimum RTT value (rtt_min).
bytes) is calculated.

具体的には、受信セグメントのバイト数(rcv_bytes)は、以下のようにして
計測することができる。
・SACK Optionがサポートされている場合。
RTTの最小値(rtt_min)の時間内に受け取ったACKによって受信端末に受
信が通知された最大のシーケンス番号(rcv_ack)から、計測を開始した際にAC
Kを受信していない先頭セグメントのシーケンス番号数(drs_snd_una)を引いた値を利用することができる。
Specifically, the number of bytes (rcv_bytes) of the received segment can be measured as follows.
-When SACK Option is supported.
When the measurement is started from the maximum sequence number (rcv_ack) notified to the receiving terminal by the ACK received within the time of the minimum value of RTT (rtt_min), the AC
A value obtained by subtracting the number of sequence numbers (drs_snd_una) of the first segment not receiving K can be used.

また、セグメントの再送中においては、RTTの最小値(rtt_min)の時間内に
再送したセグメントの合計バイト数を考慮するために、受け取ったACKのSACK Optionによって通知されたセグメントの合計のバイト数(sack_end)から、
計測を開始した際にSACK Optionによって通知されたセグメントの合計のバイト数(sack_start)を引いた値を最初の値に加える。
すなわち、rcv_bytes=rcv_ack−drs_snd_una+(sack_
end−sack_start)となる。
In addition, during segment retransmission, in order to consider the total number of bytes of segments retransmitted within the time of the minimum value of RTT (rtt_min), the total number of bytes of segments notified by the SACK Option of the received ACK ( sack_end)
A value obtained by subtracting the total number of bytes (sack_start) of the segment notified by the SACK Option when the measurement is started is added to the first value.
That is, rcv_bytes = rcv_ack−drs_snd_una + (sack_
end-sack_start).

なお、セグメントロスが発生していない場合、sack_endおよびsack_startの双方とも0になるので、rcv_bytes=rcv_ack−drs_snd_unaとなる。また、RTTの最小値(rtt_min)の時間内にセグメントロスが解消さ
れた場合、sack_endは0になり、sack_startだけが有効になる。
・SACK Optionがサポートされていない場合。
この場合には、重複ACK(rcv_ackがACKを受信していない最小のセグメント
(snd_una)以下のACK)の数を考慮して受信セグメントのバイト数(rcv_bytes)を算出することができる。
If no segment loss occurs, both sack_end and sack_start are 0, so rcv_bytes = rcv_ack−drs_snd_una. Further, when the segment loss is resolved within the time of the minimum value of RTT (rtt_min), the suck_end becomes 0 and only the suck_start is valid.
-SACK Option is not supported.
In this case, the number of bytes (rcv_bytes) of the received segment can be calculated in consideration of the number of duplicate ACKs (rcv_ack is equal to or less than the smallest segment (snd_una) for which ACK has not been received).

すなわち、RTTの最小値(rtt_min)の時間内に最後に受け取ったACKによ
って受信端末に受信が通知されたシーケンス番号(rcv_ack)から、計測を開始し
た際にACKを受信していない先頭セグメントのシーケンス番号(drs_snd_una)を引いた値を利用することができる。
また、セグメントの再送中においては、再送したセグメントの合計バイト数を考慮するために、RTTの最小値(rtt_min)の時間内に受信した重複ACKの数×MSS
(dack_end)から、計測を開始した際に受信した重複ACKの数×MSS(da
ck_start)を引いた値を最初の値に加える。
That is, the sequence of the first segment that has not received ACK when measurement is started from the sequence number (rcv_ack) notified to the receiving terminal by the last received ACK within the time of the minimum value of RTT (rtt_min) A value obtained by subtracting the number (drs_snd_una) can be used.
Also, during segment retransmission, in order to consider the total number of bytes of the retransmitted segment, the number of duplicate ACKs received within the time of the minimum value of RTT (rtt_min) × MSS
From (dack_end), the number of duplicate ACKs received at the start of measurement × MSS (da
The value obtained by subtracting (ck_start) is added to the first value.

すなわち、rcv_bytes=rcv_ack−drs_snd_una+(dack_
end−dack_start)となる。
なお、受信セグメントのバイト数(rcv_bytes)が前回算出された受信セグメ
ントのバイト数(rcv_bytes)より増加した場合には、ACKの受信ごとに値を更新するようにしてもよい。
That is, rcv_bytes = rcv_ack−drs_snd_una + (dack_
end-dack_start).
When the number of received segment bytes (rcv_bytes) increases from the previously calculated number of received segment bytes (rcv_bytes), the value may be updated every time an ACK is received.

また、セグメントロスが発生していない場合、dack_endおよびdack_startの双方とも0になる。
ここで、ACKパスについてもキューイングディレイが発生する場合、状況によっては受信セグメントのバイト数(rcv_bytes)を精度よく計測できないことがある。
このため、ACKの送信時刻を用いることによってACKパスのキューイングディレイの影響をなくし、受信セグメントのバイト数(rcv_bytes)を精度よく計測するこ
とが可能となる。
Further, when no segment loss occurs, both dack_end and dack_start are 0.
Here, when a queuing delay also occurs for the ACK path, the number of received segment bytes (rcv_bytes) may not be accurately measured depending on the situation.
Therefore, by using the ACK transmission time, the influence of the ACK path queuing delay is eliminated, and the number of bytes (rcv_bytes) of the received segment can be accurately measured.

図4は、本発明の一実施形態に係る受信セグメントのバイト数の計測方法のその他の例を示す図である。
図4において、ACKにおいてTCP送信側21側と同様のTimestamp Optionが付加されている場合、RTTの最小値(rtt_min)の時間内に送信され
たACKの送信時刻を参照することにより、受信セグメントのバイト数(rcv_byt
es)を計測することができる。但し、受信側と送信側で用いられているTimestamp Optionの粒度が異なる場合、送信側でACKの送信時刻を補正する必要がある。
FIG. 4 is a diagram showing another example of a method for measuring the number of bytes of a received segment according to an embodiment of the present invention.
In FIG. 4, when the same Timestamp Option as that on the TCP transmission side 21 side is added to the ACK, by referring to the transmission time of the ACK transmitted within the time of the minimum value (rtt_min) of RTT, Number of bytes (rcv_byte
es) can be measured. However, when the granularity of Timestamp Option used on the receiving side and the transmitting side is different, it is necessary to correct the ACK transmission time on the transmitting side.

図5は、送信側においてACKの送信時刻を補正する例を示す図である。
図5において、tsはセグメントの送信時刻、ts_echoはTimestamp Echoを表す。送信側では、ACKを受信した際に、一定の期間計測を行い、その間に受信したACKのtsとts_echoの増加量を計算し、補正に利用する。図5においては、ts_echoの増加量が60であるに対して、tsの増加量は6なので、rcv_bytesは送信を開始した際のACKの送信時刻にrtt_minの10分の1を加えた時刻までのACKによって算出される。
FIG. 5 is a diagram illustrating an example in which the transmission time of the ACK is corrected on the transmission side.
In FIG. 5, ts represents the segment transmission time, and ts_echo represents Timestamp Echo. On the transmission side, when ACK is received, measurement is performed for a certain period, and the increase in ts and ts_echo of ACK received during that period is calculated and used for correction. In FIG. 5, the increase amount of ts_echo is 60, whereas the increase amount of ts is 6. Therefore, rcv_bytes is the time until the time when 1/10 of rtt_min is added to the transmission time of ACK when transmission is started. Calculated by ACK.

次に、図1のターゲット計算部15は、受信バイト数計算部14にて算出された受信セグメントのバイト数に基づいてターゲット(target)を計算する。
ここで、ターゲットの計算方法としては、以下の6種類の方法が考えられる。
(1)受信バイト数計算部14にて計測された受信セグメントのバイト数(rcv_by
tes)の最大値×2を利用する方法。
(2)受信バイト数計算部14にて計測された受信セグメントのバイト数(rcv_by
tes)×2を利用する方法。
(3)受信バイト数計算部14にて計測された直近の2回の受信セグメントのバイト数(rcv_bytes)の平均を利用する方法。
(4)受信バイト数計算部14にて計測された受信セグメントのバイト数(rcv_by
tes)の加重平均の2倍を利用する方法。
Next, the target calculation unit 15 in FIG. 1 calculates a target based on the number of bytes of the received segment calculated by the received byte number calculation unit 14.
Here, as the target calculation method, the following six methods can be considered.
(1) The number of received segment bytes (rcv_by) measured by the received byte number calculating unit 14
tes) using the maximum value × 2.
(2) Number of received segment bytes measured by the received byte number calculation unit 14 (rcv_by)
tes) × 2 method.
(3) A method of using the average of the number of bytes (rcv_bytes) of the last two received segments measured by the received byte count calculator 14.
(4) Number of bytes of the received segment measured by the received byte number calculation unit 14 (rcv_by
a method using twice the weighted average of tes).

例えば、target=(それまでに計測された受信セグメントのバイト数(rcv_bytes)の平均(av_rcv_bytes)×7/8+(rcv_bytes)×1/8)×2とすることができる。
(5)任意の定数αを利用する方法。
例えば、rcv_bytes+α×MSS≧cwnd
かつcwnd<Slowstart Threshold(ssthresh)の場合、target=rcv_bytes×2とすることができる。
For example, target = (average number of received segment bytes (rcv_bytes) measured so far (av_rcv_bytes) × 7/8 + (rcv_bytes) × 1/8) × 2.
(5) A method using an arbitrary constant α.
For example, rcv_bytes + α × MSS ≧ cwnd
If cwnd <Slowstart Threshold (ssthresh), then target = rcv_bytes × 2.

それ以外の場合は、
target=rcv_bytes+α×MSSとすることができる。
(6)受信バイト数計算部14にて計測された受信セグメントのバイト数(rcv_by
tes)の加重平均と、加重平均偏差を用いる方法。
例えば、受信セグメントのバイト数(rcv_bytes)の加重平均(avg_rcv_bytes)=(avg_rcv_bytes)×7/8+(rcv_bytes)×1/8として計算し、受信セグメントのバイト数(rcv_bytes)の加重平均偏差(var_rcv_bytes)=(var_rcv_bytes)×7/8+|rcv_bytes−avg_rcv_bytes|×1/8として計算し、求められたvar_rcv_bytesを利用し、target=avg_rcv_bytes+var_rcv_bytes×4とすることができる。
Otherwise,
target = rcv_bytes + α × MSS.
(6) The number of received segment bytes (rcv_by) measured by the received byte number calculation unit 14
tes) using a weighted average and a weighted average deviation.
For example, the weighted average of the number of bytes in the received segment (rcv_bytes) (avg_rcv_bytes) = (avg_rcv_bytes) × 7/8 + (rcv_bytes) × 1/8, and the weighted average deviation of the number of bytes in the received segment (rcv_bytes) _var_rcv_ = (Var_rcv_bytes) × 7/8 + | rcv_bytes−avg_rcv_bytes | × 1/8, and using the obtained var_rcv_bytes, target = avg_rcv_bytes + var_rcv_bytes can be set to 4 × 4.

なお、定数αは、ネットワークの状況に応じて任意に設定することができ、最低でも、cwnd≧ssthreshの場合に1RTTの間に最大限増加するcwndの値(TCPであれば1MSS)以上に設定することができる。
また、targetが所定値以下にならないように任意の定数βを利用し、β×MSSをtargetの下限値として用いることができる。定数βは任意に設定することができるが、例えば、初期ウィンドウサイズを用いることができる。
The constant α can be arbitrarily set according to the network conditions. At least, the constant α is set to be equal to or greater than the value of cwnd that increases to the maximum during 1 RTT when cwnd ≧ ssthresh (1MSS for TCP). can do.
Further, an arbitrary constant β can be used so that the target does not become a predetermined value or less, and β × MSS can be used as the lower limit value of the target. The constant β can be arbitrarily set, but for example, an initial window size can be used.

次に、図1の送信セグメント制御部16は、ターゲット計算部15にて計算されたtargetに基づいてセグメントの送信制御を行う。なお、送信セグメント制御部16は、targetが急激に増加した時にバースト的にセグメントが送出されるのを防止するために、spaceという値を利用して、実際のセグメントの送出を制限することができる。   Next, the transmission segment control unit 16 in FIG. 1 performs segment transmission control based on the target calculated by the target calculation unit 15. Note that the transmission segment control unit 16 can limit the actual segment transmission by using the value “space” in order to prevent the segment from being transmitted in bursts when the target increases rapidly. .

ここで、spaceは以下のように設定することができる。
space<targetの場合。
ACK受信ごとにspace=space+2MSSとする。
space>targetの場合には、以下の2種類の方法が考えられる。
(1)space=targetとする方法。
(2)ACK受信ごとにspace=space−MSSとする方法。
Here, the space can be set as follows.
If space <target.
It is assumed that space = space + 2MSS every time an ACK is received.
In the case of space> target, the following two methods are conceivable.
(1) A method of setting space = target.
(2) A method of setting space = space-MSS every time an ACK is received.

なお、ACKされたバイト数が計算できる場合には、
space<targetの場合。
ACK受信ごとにspace=space+ACKされたバイト数とする。
space>targetの場合には、以下の2種類の方法が考えられる。
(1)space=targetとする方法。
(2)ACK受信ごとにspace=space−ACKされたバイト数/2とする方法。
また、ACKが重複ACKの場合には、1MSSとして扱い、spaceを減少させる際にACKされたバイト数が1MSSに満たない場合には、ACKされたバイト数が1MSS以上になるまで、spaceを減少させない。
If the number of ACKed bytes can be calculated,
If space <target.
It is assumed that every time ACK is received, space = space + ACK number of bytes.
In the case of space> target, the following two methods are conceivable.
(1) A method of setting space = target.
(2) A method in which space = space−number of bytes ACKed / 2 for each ACK received.
If the ACK is a duplicate ACK, it is treated as 1 MSS. If the number of bytes ACKed when the space is reduced is less than 1 MSS, the space is decreased until the number of ACKed bytes is 1 MSS or more. I won't let you.

次に、図1のセグメント送信部17は、送信セグメント制御部16にて送信制御が行われたセグメントを送信する。具体的には、space、cwndおよびrcv_wndの
最小値に従ってセグメントを送信することができ、spaceの値がcwndおよびrcv_wndの最小値を下回る場合には、spaceに従ってセグメントを送信することが
できる。
これにより、送信側で算出された受信セグメントのバイト数(rcv_bytes)に
基づいて、セグメントの送信を抑制することが可能となり、ネットワークへの過剰なセグメントの送信を効果的に抑制することが可能となる。
Next, the segment transmission unit 17 in FIG. 1 transmits the segment whose transmission control is performed by the transmission segment control unit 16. Specifically, the segment can be transmitted according to the minimum values of space, cwnd, and rcv_wnd, and the segment can be transmitted according to the space when the value of space is lower than the minimum values of cwnd and rcv_wnd.
This makes it possible to suppress segment transmission based on the number of received segment bytes (rcv_bytes) calculated on the transmission side, and effectively suppress excessive segment transmission to the network. Become.

なお、cwndが小さい場合に通信速度を妨げないようにするために、受信セグメントのバイト数(rcv_bytes)が、受信セグメントのバイト数(rcv_bytes)の計測時のcwnd+α(定数)以下である場合、spaceを用いた制御は行わないようにすることもできる。
さらに、再送時にspaceによる制御を行っていないTCPとの公平性を保つために、spaceを用いた制御を行わないようにして得られたCWNDの値を用いてACK受信時またはパケットロスの発生時のCWNDおよびSSTHRESHを設定するようにしてもよい。
In addition, in order not to disturb the communication speed when cwnd is small, when the number of bytes of the received segment (rcv_bytes) is equal to or less than cwnd + α (constant) at the time of measuring the number of bytes of the received segment (rcv_bytes), space It is also possible not to perform control using.
Furthermore, in order to maintain fairness with TCP that is not controlled by space at the time of retransmission, when ACK is received or packet loss occurs using the value of CWND obtained by not performing control using space CWND and SSTHRESH may be set.

図6は、本発明の第2実施形態に係る送信端末の概略構成を示すブロック図である。
図6において、送信端末111には、図1の構成に加え、ACK受信時またはパケットロスの発生時のCWNDおよびSSTHRESHを計算する輻輳ウィンドウ計算部18が設けられている。
ここで、輻輳ウィンドウ計算部18は、ACK受信時またはパケットロスの発生時のCWNDおよびSSTHRESHを以下のようにして計算することができる。
FIG. 6 is a block diagram showing a schematic configuration of a transmission terminal according to the second embodiment of the present invention.
6, in addition to the configuration of FIG. 1, the transmission terminal 111 is provided with a congestion window calculation unit 18 for calculating CWND and SSTHRESH when an ACK is received or when a packet loss occurs.
Here, the congestion window calculation unit 18 can calculate CWND and SSTHRESH when ACK is received or when packet loss occurs as follows.

すなわち、パケットロス発生時には以下の様にWND(Window)を用いて、SSTHRESHおよびCWNDを決定する。
WND=Max(CWND,CWND_est)
ここで、CWND_estは、spaceを用いた制御を行わない場合に得られるであろうCWNDの値である。
That is, when packet loss occurs, SSTHRESH and CWND are determined using WND (Window) as follows.
WND = Max (CWND, CWND_est)
Here, CWND_est is a value of CWND that would be obtained when control using space is not performed.

2.1.FF(Fast Retransmit&Fast Recovery:高速再送および高速復帰)時
SSTHRESH=(1−b)×WND
CWND=SSTHRESHになるように設定する。
2.2.RTO(Retransmit Timeout:再送タイムアウト)発生時
SSTHRESH=(1−b)×WND
CWND=1×MSSになるように設定する。
2.1. FF (Fast Retransmit & Fast Recovery: Fast Retransmission and Fast Recovery) SSTHRESH = (1-b) × WND
Set so that CWND = SSTHRESH.
2.2. When RTO (Retransmission Timeout) occurs SSTHRESH = (1-b) × WND
CWND = 1 × MSS is set.

ただし,受信セグメントのバイト数(rcv_bytes)が、受信セグメントのバイ
ト数(rcv_bytes)の計測時のcwnd+α(定数)以下である場合、輻輳によ
るパケットロスではないと判断し、CWNDとSSTHRESHを減少させないことも出来る。
なお、MSS(Maximum Segment Size)は送信側が送信することができる最大セグメントサイズである。また、CWND(CONGESTION WINDOW)は、TCPの送信可能サイズを制限するTCPステート変数である。また、SSTHRESH(SLOWSTART THRESHOLD)はスロースタート閾値である。
通常のTCPでは、a=1、b=0.5が利用される。
However, if the number of received segment bytes (rcv_bytes) is less than or equal to cwnd + α (constant) at the time of measuring the number of received segment bytes (rcv_bytes), it is determined that there is no packet loss due to congestion and CWND and SSTHRESH are not decreased. You can also.
MSS (Maximum Segment Size) is the maximum segment size that can be transmitted by the transmission side. CWND (CONGESTION WINDOW) is a TCP state variable that limits the TCP transmittable size. SSTHRESH (SLOWSTART THRESHOLD) is a slow start threshold value.
In normal TCP, a = 1 and b = 0.5 are used.

そして、spaceを用いた制御を行わない場合、輻輳ウィンドウ計算部18は、ACK受信時またはパケットロスの発生時のCWNDおよびSSTHRESHを上記の式に従って計算する。そして、送信セグメント制御部16は、輻輳ウィンドウ計算部18にて計算されたCWNDおよびSSTHRESHに基づいてセグメントの送信制御を行いながら、セグメント送信部17を介してセグメントを送信する。   When control using space is not performed, the congestion window calculation unit 18 calculates CWND and SSTHRESH when ACK is received or when packet loss occurs according to the above formula. Then, the transmission segment control unit 16 transmits the segment via the segment transmission unit 17 while performing transmission control of the segment based on the CWND and SSTHRESH calculated by the congestion window calculation unit 18.

なお、最小時間計測部13、受信バイト数計算部14およびターゲット計算部15は、これらの手段で行われる処理を遂行させる命令が記述されたプログラムをコンピュータに実行させることにより実現することができる。
そして、このプログラムをCD−ROMなどの記憶媒体に記憶しておけば、送信端末11のコンピュータに記憶媒体を装着し、そのプログラムをコンピュータにインストールすることにより、最小時間計測部13、受信バイト数計算部14およびターゲット計算部15で行われる処理を実現することができる。また、このプログラムをネットワークを介してダウンロードすることにより、このプログラムを容易に普及させることができる。
Note that the minimum time measuring unit 13, the received byte number calculating unit 14, and the target calculating unit 15 can be realized by causing a computer to execute a program in which an instruction for performing processing performed by these means is executed.
If this program is stored in a storage medium such as a CD-ROM, the minimum time measuring unit 13, the number of received bytes is installed by installing the storage medium in the computer of the transmission terminal 11 and installing the program in the computer. The processing performed in the calculation unit 14 and the target calculation unit 15 can be realized. Moreover, this program can be easily spread by downloading this program via a network.

また、図7の方法では、図2のネットワーク23およびTCP受信側22の状況を考慮してrcv_bytesが決定されるのに対して、本実施形態では、ネットワーク23の状況を考慮してrcv_bytesが決定される。ただし、ネットワーク23のデータ伝送速度に比べてアプリケーション25がデータを読み込む速度が極端に遅い場合には、TCP受信側22に滞留しているセグメントのバイト数も考慮することが好ましい。   In the method of FIG. 7, rcv_bytes is determined in consideration of the status of the network 23 and the TCP receiver 22 in FIG. 2, whereas in this embodiment, rcv_bytes is determined in consideration of the status of the network 23. Is done. However, when the speed at which the application 25 reads data is extremely slow compared to the data transmission speed of the network 23, it is preferable to consider the number of bytes of the segment staying on the TCP receiving side 22.

ここで、rcv_bytesを決定する際に、TCP受信側22の状況を考慮する方法として、受信バッファ26に滞留しているセグメントのバイト数(buf_bytes)をACKから間接的に予測することができる。
具体的には、buf_bytes=(ACKで受け取った最大のrcv_wnd)−(現在のrcv_wnd)とすることができる。
Here, when determining the rcv_bytes, the number of bytes (buf_bytes) of the segment staying in the reception buffer 26 can be indirectly estimated from the ACK as a method of considering the state of the TCP reception side 22.
Specifically, buf_bytes = (maximum rcv_wnd received by ACK) − (current rcv_wnd).

rcv_bytesを算出する際にbuf_bytesを計算しておき、targetからbuf_bytesを引くことによって、TCP受信側22の受信バッファ26に滞留しているセグメントのバイト数を間接的に考慮することができる。ただし、セグメントを再送している場合には、受信バッファ26でのセグメントの滞留は順序待ちのセグメントにて引き起こされている可能性が高いので、buf_bytesを考慮することなく、targetを計算することが好ましい。
なお、上述した実施形態では、ターゲット計算部15にて計算されたtargetに基づいてセグメントの送信制御を行う方法について説明したが、targetの計算を受信側で行い、受信側で計算されたtargetを送信側に伝えることで、セグメントの送信制御を行うようにしてもよい。
By calculating buf_bytes when calculating rcv_bytes and subtracting buf_bytes from the target, it is possible to indirectly consider the number of bytes of the segment staying in the reception buffer 26 of the TCP reception side 22. However, if the segment is being retransmitted, the retention of the segment in the reception buffer 26 is likely to be caused by the segment waiting for the order, so that the target can be calculated without considering buf_bytes. preferable.
In the above-described embodiment, the method of performing segment transmission control based on the target calculated by the target calculation unit 15 has been described. However, the target is calculated on the reception side, and the target calculated on the reception side is calculated. The segment transmission control may be performed by transmitting to the transmission side.

本発明の第1実施形態に係る送信端末の概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the transmission terminal which concerns on 1st Embodiment of this invention. 本発明の一実施形態に係る受信セグメントのバイト数の計測ポイントを従来例と比較して示すブロック図である。It is a block diagram which shows the measurement point of the byte number of the receiving segment which concerns on one Embodiment of this invention compared with a prior art example. 本発明の一実施形態に係る受信セグメントのバイト数の計測方法を示す図である。It is a figure which shows the measuring method of the number of bytes of the receiving segment which concerns on one Embodiment of this invention. 本発明の一実施形態に係る受信セグメントのバイト数の計測方法のその他の例を示す図である。It is a figure which shows the other example of the measuring method of the byte number of the receiving segment which concerns on one Embodiment of this invention. 送信側においてACKの送信時刻を補正する例を示す図である。It is a figure which shows the example which correct | amends the transmission time of ACK in the transmission side. 本発明の第2実施形態に係る送信端末の概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the transmission terminal which concerns on 2nd Embodiment of this invention. 従来のRTTの計測方法を示す図である。It is a figure which shows the measuring method of the conventional RTT. 従来のRTTの計測方法の問題点を示す図である。It is a figure which shows the problem of the measuring method of the conventional RTT.

符号の説明Explanation of symbols

11、111 送信端末
12 セグメント受信部
13 最小時間計測部
14 受信バイト数計算部
15 ターゲット計算部
16 送信セグメント制御部
17 セグメント送信部
18 輻輳ウィンドウ計算部
21 TCP送信側
22 TCP受信側
23 ネットワーク
24 セグメント
25 アプリケーション
26 受信バッファ
DESCRIPTION OF SYMBOLS 11, 111 Transmission terminal 12 Segment receiving part 13 Minimum time measurement part 14 Received byte number calculation part 15 Target calculation part 16 Transmission segment control part 17 Segment transmission part 18 Congestion window calculation part 21 TCP transmission side 22 TCP reception side 23 Network 24 Segment 25 Application 26 Receive buffer

Claims (6)

一定期間内に受信側に到達したセグメントのバイト数を送信側で算出する受信バイト数計算部と、
前記受信バイト数計算部にて算出されたセグメントのバイト数に基づいて、送信セグメント数であるtargetを制御する送信セグメント制御部と、を備え、
前記送信セグメント制御部は、
所定の設定値であるspaceが、通信プロトコル上の送信可能なデータサイズを制限する変数であるcwndおよび受信側が一度に受信可能なデータサイズであるrcv wndの最小値を下回る場合には、spaceに従ってセグメントを送信し、
前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、送信側が送信可能な最大セグメントサイズであるMSSを2倍した値を前記spaceに加算した値に設定し、
前記spaceが前記targetより大きい場合、前記spaceを、前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、前記spaceから前記MSSを減算した値に設定し、
ACKされたバイト数が計算できる場合には、
前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、前記spaceにACKされたバイト数を加算した値に設定し、
前記spaceが前記targetより大きい場合には、
前記spaceを前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、該spaceからACKされたバイト数の1/2を減算した値に設定することを特徴とする通信端末。
A received byte count calculation unit that calculates the number of bytes of a segment that has reached the receiving side within a certain period of time,
A transmission segment control unit that controls a target that is the number of transmission segments based on the number of bytes of the segment calculated by the reception byte number calculation unit;
The transmission segment control unit
If the space that is the predetermined setting value is smaller than the minimum value of cwnd, which is a variable that limits the data size that can be transmitted on the communication protocol, and rcv wnd, which is the data size that can be received at one time, according to space Send a segment,
When the target is larger than the space, the space is set to a value obtained by adding the value obtained by doubling the MSS, which is the maximum segment size that can be transmitted by the transmitting side, to the space every time an ACK is received.
If the space is greater than the target, set the space to the same value as the target, or set the space to the value obtained by subtracting the MSS from the space for each ACK received,
If the number of ACKed bytes can be calculated,
When the target is larger than the space, the space is set to a value obtained by adding the number of bytes ACKed to the space every time an ACK is received,
If the space is greater than the target,
The communication terminal is characterized in that the space is set to the same value as the target, or the space is set to a value obtained by subtracting ½ of the number of bytes ACKed from the space every time an ACK is received .
RTTの最小値を計測する最小時間計測部と、
前記最小時間計測部にて計測されたRTTの最小値の期間内に受信側に到達したセグメントのバイト数を送信側で算出する受信バイト数計算部と、
前記受信バイト数計算部にて算出されたセグメントのバイト数に基づいて、送信セグメント数であるtargetを制御する送信セグメント制御部と、を備え、
前記送信セグメント制御部は、
所定の設定値であるspaceが、通信プロトコル上の送信可能なデータサイズを制限する変数であるcwndおよび受信側が一度に受信可能なデータサイズであるrcv wndの最小値を下回る場合には、spaceに従ってセグメントを送信し、
前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、送信側が送信可能な最大セグメントサイズであるMSSを2倍した値を前記spaceに加算した値に設定し、
前記spaceが前記targetより大きい場合、前記spaceを、前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、前記spaceから前記MSSを減算した値に設定し、
ACKされたバイト数が計算できる場合には、
前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、前記spaceにACKされたバイト数を加算した値に設定し、
前記spaceが前記targetより大きい場合には、
前記spaceを前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、該spaceからACKされたバイト数の1/2を減算した値に設定することを特徴とする通信端末。
A minimum time measurement unit for measuring the minimum value of RTT;
A received byte number calculating unit that calculates the number of bytes of the segment that has reached the receiving side within the period of the minimum value of the RTT measured by the minimum time measuring unit;
A transmission segment control unit that controls a target that is the number of transmission segments based on the number of bytes of the segment calculated by the reception byte number calculation unit;
The transmission segment control unit
If the space that is the predetermined setting value is less than the minimum value of cwnd, which is a variable that limits the data size that can be transmitted on the communication protocol, and rcv wnd, which is the data size that can be received at one time, according to space Send a segment,
When the target is larger than the space, the space is set to a value obtained by adding the value obtained by doubling the MSS, which is the maximum segment size that can be transmitted by the transmitting side, to the space every time an ACK is received.
If the space is greater than the target, set the space to the same value as the target, or set the space to the value obtained by subtracting the MSS from the space for each ACK received,
If the number of ACKed bytes can be calculated,
When the target is larger than the space, the space is set to a value obtained by adding the number of bytes ACKed to the space every time an ACK is received,
If the space is greater than the target,
The communication terminal is characterized in that the space is set to the same value as the target, or the space is set to a value obtained by subtracting ½ of the number of bytes ACKed from the space every time an ACK is received .
前記最小時間計測部は、セグメントの送信が所定時間以上行われなかった場合、あるいは輻輳ウィンドウが初期ウィンドウサイズを下回った場合、あるいは所定の計測時間に渡って前記RTTの最小値にて規定される値以下のRTTが計測されなかった場合、前記RTTの最小値を再設定することを特徴とする請求項2記載の通信端末。   The minimum time measurement unit is defined by the minimum value of the RTT when a segment is not transmitted for a predetermined time or more, or when the congestion window is smaller than the initial window size, or over a predetermined measurement time. The communication terminal according to claim 2, wherein when the RTT equal to or less than the value is not measured, the minimum value of the RTT is reset. 前記受信バイト数計算部にて算出されたセグメントのバイト数を考慮することなく、ACK受信時またはパケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を計算する輻輳ウィンドウ計算部をさらに備え、
前記送信セグメント制御部は、前記輻輳ウィンドウ計算部にて計算された輻輳ウィンドウまたはスロースタート閾値に基づいてセグメントの送信制御を行うことを特徴とする請求項1から3のいずれか1項記載の通信端末。
Without considering the number of bytes of the segment calculated by the received byte number calculation unit, further comprising a congestion window calculation unit for calculating a congestion window or a slow start threshold at the time of ACK reception or packet loss occurrence,
4. The communication according to claim 1, wherein the transmission segment control unit performs segment transmission control based on a congestion window or a slow start threshold calculated by the congestion window calculation unit. 5. Terminal.
一定期間内に受信側に到達したセグメントのバイト数を送信側で算出するステップと、
前記送信側で算出されたセグメントのバイト数を、送信側が送信することができる最大セグメントサイズ、あるいはACKされたバイト数に基づいて制限しながら制御するステップと、を含み、
前記制御するステップは、
所定の設定値であるspaceが、通信プロトコル上の送信可能なデータサイズを制限する変数であるcwndおよび受信側が一度に受信可能なデータサイズであるrcv wndの最小値を下回る場合には、spaceに従ってセグメントを送信し、
前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、送信側が送信可能な最大セグメントサイズであるMSSを2倍した値を前記spaceに加算した値に設定し、
前記spaceが前記targetより大きい場合、前記spaceを、前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、前記spaceから前記MSSを減算した値に設定し、
ACKされたバイト数が計算できる場合には、
前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、前記spaceにACKされたバイト数を加算した値に設定し、
前記spaceが前記targetより大きい場合には、
前記spaceを前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、該spaceからACKされたバイト数の1/2を減算した値に設定することを特徴とする通信制御方法。
Calculating the number of bytes of the segment that reached the receiving side within a certain period on the sending side;
Controlling the number of bytes of the segment calculated on the transmitting side while limiting based on the maximum segment size that can be transmitted by the transmitting side or the number of ACKed bytes ,
The controlling step includes
If the space that is the predetermined setting value is less than the minimum value of cwnd, which is a variable that limits the data size that can be transmitted on the communication protocol, and rcv wnd, which is the data size that can be received at one time, according to space Send a segment,
When the target is larger than the space, the space is set to a value obtained by adding the value obtained by doubling the MSS, which is the maximum segment size that can be transmitted by the transmitting side, to the space every time an ACK is received.
If the space is greater than the target, set the space to the same value as the target, or set the space to the value obtained by subtracting the MSS from the space for each ACK received,
If the number of ACKed bytes can be calculated,
When the target is larger than the space, the space is set to a value obtained by adding the number of bytes ACKed to the space every time an ACK is received,
If the space is greater than the target,
The communication control method is characterized in that the space is set to the same value as the target, or the space is set to a value obtained by subtracting 1/2 of the number of bytes ACKed from the space every time an ACK is received. .
一定期間内に受信側に到達したセグメントのバイト数を送信側で算出するステップと、
前記送信側で算出されたセグメントのバイト数を、送信側が送信することができる最大セグメントサイズ、あるいはACKされたバイト数に基づいて制限しながら制御するステップと、を含み、
所定の設定値であるspaceが、通信プロトコル上の送信可能なデータサイズを制限する変数であるcwndおよび受信側が一度に受信可能なデータサイズであるrcv wndの最小値を下回る場合には、spaceに従ってセグメントを送信し、
前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、送信側が送信可能な最大セグメントサイズであるMSSを2倍した値を前記spaceに加算した値に設定し、
前記spaceが前記targetより大きい場合、前記spaceを、前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、前記spaceから前記MSSを減算した値に設定し、
ACKされたバイト数が計算できる場合には、
前記spaceよりも前記targetが大きい場合、前記spaceを、ACK受信ごとに、前記spaceにACKされたバイト数を加算した値に設定し、
前記spaceが前記targetより大きい場合には、
前記spaceを前記targetと同じ値に設定する、または、前記spaceを、ACK受信ごとに、該spaceからACKされたバイト数の1/2を減算した値に設定する処理をコンピュータに実行させることを特徴とする通信制御プログラム。
Calculating the number of bytes of the segment that reached the receiving side within a certain period on the sending side;
Controlling the number of bytes of the segment calculated on the transmitting side while limiting based on the maximum segment size that can be transmitted by the transmitting side or the number of ACKed bytes ,
If the space that is the predetermined setting value is less than the minimum value of cwnd, which is a variable that limits the data size that can be transmitted on the communication protocol, and rcv wnd, which is the data size that can be received at one time, according to space Send a segment,
When the target is larger than the space, the space is set to a value obtained by adding the value obtained by doubling the MSS, which is the maximum segment size that can be transmitted by the transmitting side, to the space every time an ACK is received.
If the space is greater than the target, set the space to the same value as the target, or set the space to the value obtained by subtracting the MSS from the space every time an ACK is received,
If the number of ACKed bytes can be calculated,
When the target is larger than the space, the space is set to a value obtained by adding the number of bytes ACKed to the space every time an ACK is received,
If the space is greater than the target,
Causing the computer to execute a process of setting the space to the same value as the target, or setting the space to a value obtained by subtracting ½ of the number of bytes ACKed from the space every time an ACK is received. A featured communication control program.
JP2007215080A 2006-09-08 2007-08-21 Communication terminal, communication control method, and communication control program Expired - Fee Related JP4435817B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007215080A JP4435817B2 (en) 2006-09-08 2007-08-21 Communication terminal, communication control method, and communication control program
CN2007101477728A CN101141393B (en) 2006-09-08 2007-08-28 Communication terminal and communication control method
EP07017450A EP1898546A3 (en) 2006-09-08 2007-09-06 Communication terminal, comunication control method, and communication control program
US11/851,064 US8279756B2 (en) 2006-09-08 2007-09-06 Communication terminal, communication control method, and communication control program
KR1020070090793A KR100922472B1 (en) 2006-09-08 2007-09-07 Communication terminal, communication control method, and communication control program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006243853 2006-09-08
JP2007059618 2007-03-09
JP2007215080A JP4435817B2 (en) 2006-09-08 2007-08-21 Communication terminal, communication control method, and communication control program

Publications (2)

Publication Number Publication Date
JP2008259164A JP2008259164A (en) 2008-10-23
JP4435817B2 true JP4435817B2 (en) 2010-03-24

Family

ID=39982255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007215080A Expired - Fee Related JP4435817B2 (en) 2006-09-08 2007-08-21 Communication terminal, communication control method, and communication control program

Country Status (2)

Country Link
JP (1) JP4435817B2 (en)
CN (1) CN101141393B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5014281B2 (en) * 2008-07-30 2012-08-29 パナソニック株式会社 TCP transmission control apparatus and TCP transmission control method
JP5673841B2 (en) * 2011-09-21 2015-02-18 富士通株式会社 Data communication apparatus, data transmission method and computer system
JP6010502B2 (en) * 2013-05-07 2016-10-19 アンリツネットワークス株式会社 Packet processing method and packet processing apparatus
CN103475654B (en) * 2013-09-06 2016-10-05 北京奇虎科技有限公司 Network path optimization method, equipment and network system
CN106330406A (en) * 2015-06-16 2017-01-11 中兴通讯股份有限公司 Data transmission method and device based on TCP (Transmission Control Protocol)
US10433213B2 (en) * 2016-06-09 2019-10-01 Apple Inc. Apparatus, systems and methods for an adaptive segment size for data transmissions

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4433202B2 (en) * 2003-07-11 2010-03-17 日本電気株式会社 Transport layer relay method, transport layer relay device, and program

Also Published As

Publication number Publication date
JP2008259164A (en) 2008-10-23
CN101141393B (en) 2013-02-06
CN101141393A (en) 2008-03-12

Similar Documents

Publication Publication Date Title
JP4778453B2 (en) Communication terminal, congestion control method, and congestion control program
JP3789120B2 (en) RTT measurement method for receiving side in TCP
JP4016387B2 (en) Data flow control method
JP4407700B2 (en) Communication terminal, communication system, congestion control method, and congestion control program
US20070223395A1 (en) Methods and apparatus for optimizing a TCP session for a wireless network
US20130250767A1 (en) Method and Device for Data Transmission
US20060209838A1 (en) Method and system for estimating average bandwidth in a communication network based on transmission control protocol
JP5867188B2 (en) Information processing apparatus, congestion control method, and congestion control program
JP4435817B2 (en) Communication terminal, communication control method, and communication control program
KR100922472B1 (en) Communication terminal, communication control method, and communication control program
CN106789702B (en) Method and device for controlling transmission performance of TCP (Transmission control protocol)
JP2006506866A (en) Data unit transmitter and control method of the transmitter
JP2012095190A (en) Communication device, communication system, program, and communication method
KR100912178B1 (en) Congestion control method over wireless link
US7613976B2 (en) Method for setting the retransmission timeout period in a packet switched communication network
JPWO2010073979A1 (en) Communication quality monitoring apparatus, communication system, communication quality monitoring method and program thereof
EP2922241B1 (en) Methods and apparatus to determine network delay with location independence from retransmission delay and application response time
JP7067544B2 (en) Communication systems, communication devices, methods and programs
JP6011813B2 (en) COMMUNICATION DEVICE AND ITS COMMUNICATION CONTROL METHOD
JP4915415B2 (en) Communication terminal, communication system, congestion control method, and congestion control program
TWI308012B (en) Method for adaptive estimation of retransmission timeout in wireless communication systems
KR101334990B1 (en) Congestion window control method in Transmission Control Protocol
KR100915996B1 (en) Method and Terminal for Controlling Transmission according Bandwidth Change
WO2013011638A1 (en) Communication device and communication control method thereof
Pujeri et al. Survey of End-to-End TCP Congestion Control Protocols

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090416

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090826

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090903

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091224

R150 Certificate of patent or registration of utility model

Ref document number: 4435817

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees