JP4435817B2 - Communication terminal, communication control method, and communication control program - Google Patents
Communication terminal, communication control method, and communication control program Download PDFInfo
- 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
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とすることができる。
ck (acknowledge number) + rcv_wnd seq (sequence
nce number) -1 from the
For example, when ack = 210 and rcv_wnd = 60, the
しかしながら、非特許文献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
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
また、非特許文献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
また、請求項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
以上説明したように、本発明によれば、受信側に到達したセグメントのバイト数を送信側で算出することにより、送信側の事情を考慮しながら、受信側に到達したセグメントのバイト数を送信側に伝える必要がなくなり、ネットワークへの過剰なセグメントの送信を効果的に抑制することが可能となる。 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
そして、最小時間計測部13は、TCPにて行われる方法と同様にしてRTTを計測することができる。すなわち、Timestamp Optionが利用可能な場合、最小時間計測部13は、ACK(Acknowledgement)の受信時に、(現在の時刻)−(Timestamp Echo)をRTTとすることができる。
一方、Timestamp Optionが利用できない場合、最小時間計測部13は、ACKの受信時に、(現在の時刻)−(Ackされたセグメントが送信された時刻)をRTTとすることができる。
Then, the minimum
On the other hand, when the Timestamp Option cannot be used, the minimum
そして、最小時間計測部13は、セグメントが送信されている間にRTTの計測を継続して行い、RTTの最小値(rtt_min)が計測されるごとにRTTの最小値(rtt_min)を更新しながら、RTTの最小値(rtt_min)を受信セグメントのバイト数(rcv_bytes)の計算に用いることができる。
また、ルートの切り替えや受信端末の移動などによってRTTが大きく変化する場合を考慮し、以下の場合にはRTTの最小値(rtt_min)を再設定することもできる。
Then, the minimum
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
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
Here, in the method of FIG. 5, the number of bytes of the
これに対して、本実施形態では、受信した時点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
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
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
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
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
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
(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
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
ここで、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
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
Here, the congestion
すなわち、パケットロス発生時には以下の様に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
なお、最小時間計測部13、受信バイト数計算部14およびターゲット計算部15は、これらの手段で行われる処理を遂行させる命令が記述されたプログラムをコンピュータに実行させることにより実現することができる。
そして、このプログラムをCD−ROMなどの記憶媒体に記憶しておけば、送信端末11のコンピュータに記憶媒体を装着し、そのプログラムをコンピュータにインストールすることにより、最小時間計測部13、受信バイト数計算部14およびターゲット計算部15で行われる処理を実現することができる。また、このプログラムをネットワークを介してダウンロードすることにより、このプログラムを容易に普及させることができる。
Note that the minimum
If this program is stored in a storage medium such as a CD-ROM, the minimum
また、図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
ここで、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
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
In the above-described embodiment, the method of performing segment transmission control based on the target calculated by the
11、111 送信端末
12 セグメント受信部
13 最小時間計測部
14 受信バイト数計算部
15 ターゲット計算部
16 送信セグメント制御部
17 セグメント送信部
18 輻輳ウィンドウ計算部
21 TCP送信側
22 TCP受信側
23 ネットワーク
24 セグメント
25 アプリケーション
26 受信バッファ
DESCRIPTION OF
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の最小値の期間内に受信側に到達したセグメントのバイト数を送信側で算出する受信バイト数計算部と、
前記受信バイト数計算部にて算出されたセグメントのバイト数に基づいて、送信セグメント数である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 .
前記送信セグメント制御部は、前記輻輳ウィンドウ計算部にて計算された輻輳ウィンドウまたはスロースタート閾値に基づいてセグメントの送信制御を行うことを特徴とする請求項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.
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)
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)
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 |
-
2007
- 2007-08-21 JP JP2007215080A patent/JP4435817B2/en not_active Expired - Fee Related
- 2007-08-28 CN CN2007101477728A patent/CN101141393B/en not_active Expired - Fee Related
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 |