JP2003224547A - Method for controlling flow - Google Patents

Method for controlling flow

Info

Publication number
JP2003224547A
JP2003224547A JP2002062693A JP2002062693A JP2003224547A JP 2003224547 A JP2003224547 A JP 2003224547A JP 2002062693 A JP2002062693 A JP 2002062693A JP 2002062693 A JP2002062693 A JP 2002062693A JP 2003224547 A JP2003224547 A JP 2003224547A
Authority
JP
Japan
Prior art keywords
data
packet
sender
identifier
flow control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002062693A
Other languages
Japanese (ja)
Inventor
Tetsushi Uchiumi
哲史 内海
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2002062693A priority Critical patent/JP2003224547A/en
Publication of JP2003224547A publication Critical patent/JP2003224547A/en
Pending legal-status Critical Current

Links

Abstract

<P>PROBLEM TO BE SOLVED: To provide an efficient flow controlling method in a network having a radio link for retransmitting a packet of a portion of the packet when a link error occurs. <P>SOLUTION: A data sender attaches data to be attached to a packet and an identifier for identifying the number of times of transmitting the data to the packet to be transmitted. A data receiver attaches an identifier response being a value for identifying the identifier attached to the received packet to acknowledgment. Then, the data sender determines the existence/absence of a packet loss based on the identifier response attached to the acknowledgment and decides a data transmission rate. <P>COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、パケットによるデ
ータ通信におけるフロー制御方法に関する。
TECHNICAL FIELD The present invention relates to a flow control method in packet-based data communication.

【0002】[0002]

【従来の技術】パケットによるデータ通信において、通
信経路上でのパケットの損失によるデータ通信エラーを
回避し、信頼性を保証する、公平で効率のよいフロー制
御方法として、TCP(RFC−1122、RFC−1
123)が広く使用されている。TCPは、ウィンドウ
方式のフロー制御方法である。以下に、TCPについて
説明する。TCPは、データの送り手とデータの受け手
にコネクションを確立してからデータの転送を行う。デ
ータの送り手はそのコネクションを介して、データを付
加したパケットをデータの受け手に送信する。データの
受け手は、パケットを受信するごとに、確認応答(AC
K)をデータの送り手に送信する。データの送り手は、
送信するデータの順序をデータの受け手に同定させるた
め、パケットにシーケンス番号を付加する。また、デー
タの受け手は、次に受信すべきパケットの持つシーケン
ス番号を確認応答番号としてACKに付加する。
2. Description of the Related Art In packet data communication, TCP (RFC-1122, RFC) is used as a fair and efficient flow control method for avoiding data communication errors due to packet loss on a communication path and guaranteeing reliability. -1
123) is widely used. TCP is a window type flow control method. The TCP will be described below. TCP establishes a connection between a data sender and a data receiver before transferring data. The data sender sends the data-added packet to the data receiver via the connection. The data receiver receives an acknowledgment (AC
K) to the sender of the data. The sender of the data is
A sequence number is added to the packet so that the receiver of the data can identify the order of the data to be transmitted. Further, the data receiver adds the sequence number of the packet to be received next as an acknowledgment number to the ACK.

【0003】データの送り手は、(1)タイムアウト又
は(2)N個の重複ACKの受信(通常はN=3)によ
って、送信したパケットが通信経路上で損失したと判断
する。ここでタイムアウトとは、データの送り手がパケ
ットを送信してから、そのパケットの持つデータ又はそ
のデータ以降のデータに対するACKがない状態が時間
T続くことである。一般に、データの送り手は、パケッ
トの送信時刻とACKの受信時刻を測定し、その差分か
ら時間Tを決定する。また、N個の重複ACKの受信と
は、データの送り手が同一の確認応答番号を持つACK
を(N+1)個連続して受け取ることである。
The data sender determines that the transmitted packet is lost on the communication path due to (1) timeout or (2) reception of N duplicate ACKs (usually N = 3). Here, the time-out means that, after the sender of the data transmits the packet, a state in which there is no ACK for the data included in the packet or the data subsequent to the packet continues for a time T. In general, the data sender measures the packet transmission time and the ACK reception time, and determines the time T from the difference between them. Also, the reception of N duplicate ACKs means an ACK in which the sender of the data has the same acknowledgment number.
Is received continuously (N + 1).

【0004】データの送り手は、送信したパケットが通
信経路上で損失したと判断すると、そのパケットの持つ
データを再送信することでデータ通信エラーを回避す
る。また、通信経路上でのパケットの損失は、通信経路
上のあるリンクにおけるパケットの入力速度がそのリン
クの処理速度を超えたこと(ネットワーク輻輳)による
可能性があるので、そのリンクにおけるパケットの入力
速度を抑えるため、データの送り手はデータの送信速度
を下げる。TCPでは、データの送り手は、一度にネッ
トワークに注入できるデータの数を決定する輻輳ウィン
ドウサイズを小さくすることでデータの送信速度を下げ
る。
When the data sender determines that the transmitted packet is lost on the communication path, the data sender resends the data of the packet to avoid a data communication error. The packet loss on the communication path may be due to the fact that the input speed of the packet on a certain link on the communication path exceeds the processing speed of the link (network congestion). To keep the speed down, the data sender slows down the data transmission rate. In TCP, the data sender slows down the data transmission rate by reducing the congestion window size, which determines the number of data that can be injected into the network at one time.

【0005】ネットワークにおけるリンクとして、FI
FO(First−In First−Out)の有線
リンクのみを有するネットワークにおいては、TCPは
リンク帯域を効率的に利用できるフロー制御方法であ
る。
As a link in the network, FI
In a network having only FO (First-In First-Out) wired links, TCP is a flow control method capable of efficiently utilizing a link band.

【0006】通信経路上の無線リンク、特に伝搬遅延時
間の大きな無線リンクが、リンクエラー発生時にパケッ
ト又はパケットの一部を再送信した場合など、往復遅延
時間(RTT)が一時的に大きくなるとき、実際は通信
経路上においてパケットの損失が発生していないにも関
わらず、タイムアウトによって、データの送り手が通信
経路上での損失と誤認してしまう可能性がある。このよ
うに誤認した時、データの送り手は、ネットワーク輻輳
でないにも関わらず、データの送信速度を下げてしまう
ため、通信の効率が悪くなる。対策として、タイムアウ
トのパラメータ時間Tを大きめに決定することが考えら
れるが、時間Tを大きくすると、実際にパケットの損失
が起きたとき、データの送り手からの再送信が遅れるた
め、通信効率が悪くなる。
When the round-trip delay time (RTT) temporarily increases, such as when a wireless link on a communication path, particularly a wireless link with a large propagation delay time, retransmits a packet or a part of a packet when a link error occurs. Although there is actually no packet loss on the communication path, the sender of data may mistakenly recognize it as a loss on the communication path due to the time-out. When the data is misidentified in this way, the data sender reduces the data transmission speed even though the network is not congested, resulting in poor communication efficiency. As a countermeasure, it is conceivable to set the time-out parameter time T to a large value. However, if the time T is set to a large value, retransmission of data from the sender of the data will be delayed when packet loss actually occurs, so that communication efficiency will be improved. become worse.

【0007】また、通信経路上の無線リンク、特に帯域
幅の大きな無線リンクが、リンクエラー発生時にパケッ
ト又はパケットの一部を再送信した場合など、通信経路
上でのパケットの損失がないにも関わらず、データの送
り手からのパケットの送信順とデータの受け手でのパケ
ットの到着順が一致しないとき、データの送り手は、N
個の重複ACKの受信によって、通信経路上でのパケッ
トの損失と誤認してしまう可能性がある。このように誤
認した時、データの送り手は、ネットワーク輻輳でない
にも関わらず、データの送信速度を下げてしまうため、
通信の効率が悪くなる。対策として、データの受け手が
N番目以降の重複ACKの送信を時間dだけ待ち、時間
d以内に欠落していたパケットが到着したときはこれら
のN番目以降の重複ACKを送信しない、Delaye
d Duplecate Acks(DDA)技術(”
Delayed Duplicate Acknowl
edgements:A TCP−Unaware A
pproach to Improve Perfor
mance of TCP over Wireles
s“、Technical Report 99−00
3、Computer Science Dept.、
テキサスA&M大学、1999年2月)がある。しか
し、DDA技術は、最適な時間dの見積もりが難しい。
さらに、DDA技術を用いたとき、データの受け手は、
通信経路上でのパケットの損失時にも、N番目以降の重
複ACKの送信を時間dだけ待つため、通信経路上での
パケットの損失時、データ通信エラーからの回復が遅れ
る。
In addition, when a wireless link on a communication path, particularly a wireless link with a large bandwidth, retransmits a packet or a part of a packet when a link error occurs, there is no packet loss on the communication path. Regardless, when the transmission order of packets from the data sender and the arrival order of packets at the data receiver do not match, the data sender is
The reception of the duplicate ACKs may be mistaken for a packet loss on the communication path. When misidentified in this way, the sender of the data slows down the data transmission rate even though the network congestion is not present.
Communication efficiency becomes poor. As a countermeasure, the data receiver waits for transmission of the Nth and subsequent duplicate ACKs for time d, and does not transmit the Nth and subsequent duplicate ACKs when a missing packet arrives within the time d.
d Duplicate Acks (DDA) technology ("
Delayed Duplicate Acknowledge
edges: A TCP-Unaware A
pproach to Improv Perf
stance of TCP over Wireless
s ", Technical Report 99-00
3, Computer Science Dept. ,
Texas A & M University, February 1999). However, in the DDA technique, it is difficult to estimate the optimum time d.
Furthermore, when using DDA technology, the recipient of the data is
Even when the packet is lost on the communication path, the transmission of the Nth and subsequent duplicate ACKs is waited for the time d, so that the recovery from the data communication error is delayed when the packet is lost on the communication path.

【0008】なお、従来のTCP(TCP−Reno)
のデータの送り手の動作を示すフローチャートを図8に
示す。図8で用いている変数及び関数の意味は図1で用
いられている変数及び関数と同じであり、「発明の実施
の形態」で説明している。
Conventional TCP (TCP-Reno)
FIG. 8 is a flow chart showing the operation of the sender of this data. The meanings of the variables and functions used in FIG. 8 are the same as the variables and functions used in FIG. 1 and are described in “Embodiment of the Invention”.

【0009】[0009]

【発明が解決しようとする課題】従来技術では、RTT
が一時的に大きくなる場合や、通信経路上でのパケット
の損失がなく、データの送り手からのパケットの送信順
とデータの受け手でのパケットの到着順が一致しない場
合、データの送り手による通信経路上でのパケットの損
失の有無の判断が不正確になり、通信の効率が悪くな
る。
In the prior art, the RTT is used.
If the data transmission becomes large, or there is no packet loss on the communication path, and the packet transmission order from the data sender does not match the packet arrival order at the data receiver, the data sender The determination as to whether or not there is a packet loss on the communication path becomes inaccurate, resulting in poor communication efficiency.

【0010】本発明の目的は、これらの場合に、データ
の送り手による通信経路上でのパケットの損失の有無の
判断をより正確にし、効率の良いフロー制御方式を提供
することである。
An object of the present invention is to provide an efficient flow control system in these cases by making it more accurate for the data sender to judge whether or not there is a packet loss on the communication path.

【0011】特に、本発明の目的は、リンクエラー発生
時にパケット又はパケットの一部を再送信する無線リン
クを有するネットワークにおいて、これらの場合に、デ
ータの送り手による通信経路上でのパケットの損失の有
無の判断をより正確にし、効率の良いフロー制御方法を
提供することである。
In particular, it is an object of the present invention, in a network having a wireless link to retransmit a packet or part of a packet when a link error occurs, in these cases the loss of the packet on the communication path by the sender of the data. It is to provide a more efficient flow control method by making the presence / absence of judgment more accurate.

【0012】[0012]

【課題を解決するための手段】本発明では、データの送
り手は、パケットに付加するデータと、そのパケットの
送信時までにおけるそのデータの送信回数と、を同定で
きる値である識別子を送信するパケットに付加する。ま
た、データの受け手は、受信したパケットに付加された
識別子をデータの送り手が認識できるようにするため、
その識別子のコピーなど、その識別子を同定する値であ
る識別子応答を確認応答に付加する。そして、データの
送り手は、確認応答に付加された識別子応答によって同
定される、データと、送信回数に基づいて、通信経路上
でのパケットの損失の有無を判断する。すなわち、デー
タの送り手があるデータの再送信後でも、データの送り
手は識別子応答により、データの受け手が受信した、そ
のデータを持つパケットが、そのデータを持つパケット
において、何番目に送信したパケットであるかを認識で
きるため、より正確に、通信経路上でのそのデータを持
つパケットの損失の有無を判断できる。データの送り手
は、その判断に基づいてデータの送信速度を決定する。
According to the present invention, a data sender transmits an identifier which is a value capable of identifying data to be added to a packet and the number of times the data has been transmitted by the time the packet is transmitted. Add to packet. In addition, the data receiver can recognize the identifier added to the received packet by the data sender,
An identifier response, which is a value that identifies the identifier, such as a copy of the identifier, is added to the confirmation response. Then, the sender of the data determines whether there is a packet loss on the communication path based on the data identified by the identifier response added to the confirmation response and the number of times of transmission. In other words, even after the data sender has retransmitted the data, the data sender sends the packet with the data received by the data receiver in response to the identifier response in the packet with the data. Since it is possible to recognize whether the packet is a packet, it is possible to more accurately determine whether or not the packet having the data is lost on the communication path. The data sender determines the data transmission rate based on the judgment.

【0013】本発明では、データの送り手は、送信する
パケットに付加する識別子の値を放射線崩壊の計測や半
導体ダイオードからの熱ノイズの測定等によって得られ
る物理乱数に基づいて決定する。
In the present invention, the data sender determines the value of the identifier to be added to the packet to be transmitted, based on the physical random number obtained by measurement of radiation decay or measurement of thermal noise from the semiconductor diode.

【0014】本発明では、データの送り手が送信するパ
ケット及びデータの受け手が送信する確認応答は、TC
Pヘッダを持つ。また、データの送り手は、識別子をT
CPヘッダのタイムスタンプ・オプション部(RFC−
1323)に置く。また、データの受け手は、TCPの
受け手と同じタイムスタンプ・オプション機能を持つ。
In the present invention, the packet sent by the data sender and the acknowledgment sent by the data receiver are TC
It has a P header. Also, the sender of the data uses the identifier T
Time stamp option part of CP header (RFC-
1323). The data receiver has the same time stamp option function as the TCP receiver.

【0015】[0015]

【発明の実施の形態】本発明のフロー制御方法の1つの
実施の形態について、図を参照して説明する。この形態
はすべての請求項に対応する。図1は、本形態のフロー
制御方法を示すフローチャートであり、データの送り手
によって実行される。図2は、本発明が適用されるデー
タ通信システムを示すブロック図である。図3は、本形
態で利用されるTCPセグメントの形式である。図4
は、TCPヘッダにおけるTCPタイムスタンプ・オプ
ション部の形式である。図5は、図2の形態のデータ通
信システムで、無線リンクを有する一例である。図6
は、図5のデータ通信システムにおけるEnd−to−
endのスループットを示すグラフである。
BEST MODE FOR CARRYING OUT THE INVENTION One embodiment of a flow control method of the present invention will be described with reference to the drawings. This form corresponds to all the claims. FIG. 1 is a flowchart showing the flow control method of the present embodiment, which is executed by a data sender. FIG. 2 is a block diagram showing a data communication system to which the present invention is applied. FIG. 3 shows the format of the TCP segment used in this embodiment. Figure 4
Is the format of the TCP timestamp option part in the TCP header. FIG. 5 is an example of a data communication system of the form of FIG. 2 having a wireless link. Figure 6
Is End-to-in the data communication system of FIG.
It is a graph which shows the throughput of end.

【0016】図2のデータ通信システムにおいて、デー
タの送り手1とデータの受け手2は、複数のリンク4及
び中継ノード5からなるネットワーク3を介して接続さ
れており、ネットワーク3中のリンク4及び中継ノード
5を介してパケットによりデータ通信を行う。
In the data communication system of FIG. 2, a data sender 1 and a data receiver 2 are connected via a network 3 composed of a plurality of links 4 and relay nodes 5, and the links 4 and 4 in the network 3 are connected to each other. Data communication is performed by packets via the relay node 5.

【0017】本形態において、本発明のすべての請求項
における識別子は、データ識別子とセグメント識別子か
ら構成される。データ識別子は、データの送り手が送信
するデータ間で重複しない値である。また、セグメント
識別子は、同一のデータを持つパケット間で重複しない
値である。
In this embodiment, the identifier in all claims of the present invention is composed of a data identifier and a segment identifier. The data identifier is a value that does not overlap among the data transmitted by the data sender. Further, the segment identifier is a value that does not overlap between packets having the same data.

【0018】ここで、データ識別子間の大小関係は、そ
れらのデータ識別子が付加されるパケットの持つデータ
の順序の前後関係に等しい。つまり、データの送り手が
送信する2つのデータA、Bについて、(データAの順
番)<(データBの順番)であったとき、(データAを
持つパケットのデータ識別子の値)<(データBを持つ
パケットのデータ識別子の値)とする。
Here, the magnitude relation between the data identifiers is equal to the order relation of the data order of the packet to which the data identifiers are added. That is, for two data A and B transmitted by the data sender, when (order of data A) <(order of data B) <(value of data identifier of packet having data A) <(data The value of the data identifier of the packet having B).

【0019】また、本形態では、セグメント識別子の値
は、半導体ダイオードの熱ノイズの測定から得られる物
理乱数である。
Further, in the present embodiment, the value of the segment identifier is a physical random number obtained by measuring the thermal noise of the semiconductor diode.

【0020】さらに、本発明のすべての請求項における
識別子応答は、データ識別子応答とセグメント識別子応
答から構成される。データ識別子応答は、データの送り
手が送信したパケットに付加されたデータ識別子の値で
ある。また、セグメント識別子応答は、データの送り手
が送信したパケットの付加されたセグメント識別子の値
である。
Further, the identifier response in all claims of the present invention comprises a data identifier response and a segment identifier response. The data identifier response is the value of the data identifier added to the packet transmitted by the data sender. The segment identifier response is the value of the segment identifier added to the packet transmitted by the data sender.

【0021】図1で示されるフロー制御方法の一例は、
ウィンドウ方式のフロー制御方法である。以下に、図1
のフローチャートで用いられる変数及び関数について説
明する。なお、図1のフローチャートでは、変数名、配
列名及び関数名間で名前衝突を許している。
An example of the flow control method shown in FIG.
It is a window type flow control method. Below,
Variables and functions used in the flowchart of FIG. Note that in the flowchart of FIG. 1, name collision is allowed among variable names, array names, and function names.

【0022】ステップS1、S2、S10、S11、S
12、S13、S16、S22、S24の変数cwnd
は、輻輳ウィンドウサイズを示し、データの送り手は、
輻輳ウィンドウサイズだけ同時にネットワークにパケッ
トを注入できる。
Steps S1, S2, S10, S11, S
Variable cwnd of 12, S13, S16, S22, S24
Is the congestion window size, and the sender of the data is
You can inject packets into the network at the same time for the congestion window size.

【0023】また、ステップS1、S10、S22、S
24の変数ssthreshは、変数cwndの増加を
制御するための閾値である。変数ssthreshは、
ステップS1の初期値SSTHRESH_INITによ
って初期化される。
Further, steps S1, S10, S22, S
The 24 variable ssthresh is a threshold value for controlling the increase of the variable cwnd. The variable ssthresh is
It is initialized by the initial value SSTHRESH_INIT in step S1.

【0024】ステップS3、S13の関数next_s
eq()は、次に送信されるパケットがタイムアウト又
はN個の重複ACK受信後に初めて送信されるパケット
でないとき、そのパケットに付加されるシーケンス番号
を返す関数である。
Function next_s in steps S3 and S13
eq () is a function that returns the sequence number added to the packet when the packet to be transmitted next is not the packet transmitted for the first time after timeout or reception of N duplicate ACKs.

【0026】ステップS1、S9、S10、S13、S
22、S24の変数dupacks_flagは、N個
の重複ACKによってデータの送り手がデータを再送信
してから、データ通信エラーから回復するまでの間に立
つフラグである。ただし、ステップS24において、変
数dupacks_flagの値は、ステップS13、
S22で記憶した値に戻される。
Steps S1, S9, S10, S13, S
The variable dupacks_flag of S22 and S24 is a flag that is set between the time when the data sender retransmits the data by N duplicate ACKs and the time when the data communication error is recovered. However, in step S24, the value of the variable dupacks_flag is
It is returned to the value stored in S22.

【0027】ステップS2の関数int(x)は、xの
値を超えない最大の整数を返す関数である。
The function int (x) in step S2 is a function that returns the maximum integer that does not exceed the value of x.

【0028】ステップS2の変数unacked_se
g()は、データの送り手が送信したデータ(ただし、
シーケンス番号が関数next_seq()が返す値よ
り小さいデータ)で、まだデータの送り手が対応するA
CKを受け取っていないデータの数を返す関数である。
The variable unacked_se in step S2
g () is the data sent by the sender of the data (however,
The sequence number is smaller than the value returned by the function next_seq ()), and the sender of the data still corresponds to A
This function returns the number of data that has not received CK.

【0029】ステップS3、S13、S15、S20、
S23の変数i[x]は、データの送り手が、データ識
別子xのデータを持つパケットを送信した回数である。
Steps S3, S13, S15, S20,
The variable i [x] in S23 is the number of times the data sender has transmitted the packet having the data of the data identifier x.

【0030】ステップS3、S15、S20、S23、
S24の変数j[x,y]は、データ識別子xのデータ
とセグメント識別子yを持つパケットが、データ識別子
xのデータを持つパケットにおいて、何番目に送信した
パケットであるかを示す。
Steps S3, S15, S20, S23,
The variable j [x, y] of S24 indicates the number of the packet having the data of the data identifier x and the segment identifier y that is transmitted in the packet having the data of the data identifier x.

【0031】ステップS3、S13、S15、S20の
関数d_id(x)は、シーケンス番号xのデータを持
つパケットに付加するデータ識別子を返す関数である。
The function d_id (x) in steps S3, S13, S15 and S20 is a function for returning the data identifier to be added to the packet having the data of the sequence number x.

【0032】ステップS3、S15、S20の関数s_
id(x)は、次に送信するシーケンス番号xのデータ
を持つパケットに付加するセグメント識別子を返す関数
である。
Function s_ of steps S3, S15 and S20
id (x) is a function that returns a segment identifier to be added to a packet having the data of the sequence number x to be transmitted next.

【0033】ステップS8、S17、S18、S19の
変数dupackは、データの送り手が連続して受信し
ている重複ACKの数を示す。
The variable dupack in steps S8, S17, S18, and S19 indicates the number of duplicate ACKs that the sender of the data has continuously received.

【0034】ステップS13、S15、S20の関数r
tx_seq()は、タイムアウト又はN個の重複AC
K受信後に再送信するデータのシーケンス番号を返す関
数である。
Function r in steps S13, S15 and S20
tx_seq () is a timeout or N duplicate ACs
This function returns the sequence number of the data to be retransmitted after receiving K.

【0035】ステップS13、S22の関数max
(x,y)は、xとyで大きい方の値を返す関数であ
る。
Function max in steps S13 and S22
(X, y) is a function that returns the larger value of x and y.

【0036】ステップS13、S22、S24の変数s
sthresh[x]、cwnd[x]及びdupac
ks_flag[x]は、データの送り手が再送信して
いるデータの(x+1)回目の送信直前における変数s
sthresh、cwnd、dupacks_flag
の値である。
Variable s in steps S13, S22 and S24
sthresh [x], cwnd [x] and dupac
ks_flag [x] is a variable s immediately before the (x + 1) th transmission of the data retransmitted by the data sender.
sthresh, cwnd, dupacks_flag
Is the value of.

【0037】ステップS23、S24の関数d_id_
res()及びs_id_res()は、ステップS5
で受信したACKに付加されたデータ識別子応答の値及
びセグメント識別子応答の値を返す関数である。
Function d_id_ in steps S23 and S24
res () and s_id_res () are set in step S5.
It is a function that returns the value of the data identifier response and the value of the segment identifier response that are added to the ACK received in.

【0039】次に図1のフローチャートを用いて、本形
態におけるデータの送り手の動作を説明する。
Next, the operation of the data sender in this embodiment will be described with reference to the flowchart of FIG.

【0040】ステップS1において、輻輳ウィンドウの
パラメータ及びフラグを初期化する。
In step S1, the parameters and flags of the congestion window are initialized.

【0041】ステップS2において、輻輳ウィンドウに
空きがあるかを判定する。空きがあるとき、ステップS
3に進み、空きがないとき、ステップS5でACKの受
信を待つ。
In step S2, it is determined whether or not there is a free congestion window. If there is space, step S
If there is no free space, the process waits for the reception of ACK in step S5.

【0042】ステップS3において、関数呼び出しs_
id(next_seq())によって、次に送信する
データを持つパケットに付加するセグメント識別子を決
定する。
In step S3, the function call s_
A segment identifier to be added to a packet having data to be transmitted next is determined by id (next_seq ()).

【0043】ステップS4において、データの送り手が
パケットによってデータを送信する際、データ識別子及
びセグメント識別子をそのパケットに付加する。
In step S4, when the data sender transmits the data in the packet, the data identifier and the segment identifier are added to the packet.

【0044】ステップS5において、ACKの受信を待
つ。タイムアウト又はACKの受信によって、ステップ
S6に移る。
In step S5, the reception of ACK is awaited. Upon time-out or reception of ACK, the process moves to step S6.

【0045】ステップS6において、タイムアウトによ
りステップS5から抜けたとき、ステップS15に移
る。
In step S6, when the process exits step S5 due to a timeout, the process proceeds to step S15.

【0046】タイムアウト発生時、ステップS15にお
いて、関数呼び出しs_id(rtx_seq())に
よって、再送信するデータを持つパケットに付加するセ
グメント識別子を決定する。
When a timeout occurs, in step S15, the segment identifier to be added to the packet having the data to be retransmitted is determined by the function call s_id (rtx_seq ()).

【0047】また、ステップS14において、データの
送り手がパケットによってデータを再送信する際、デー
タ識別子及びセグメント識別子をそのパケットに付加す
る。
Further, in step S14, when the data sender retransmits the data in the packet, the data identifier and the segment identifier are added to the packet.

【0048】さらに、ステップS13において、その時
点における輻輳ウィンドウのパラメータ等の値を記憶
し、その後輻輳ウィンドウのパラメータ等の値を変更す
る。
Further, in step S13, the values of the parameters and the like of the congestion window at that time are stored, and thereafter the values of the parameters and the like of the congestion window are changed.

【0049】ステップS7において、重複ACKの受信
によってステップS5から抜けたとき、ステップS17
に移る。
When it is determined in step S7 that step S5 has been completed due to the reception of the duplicate ACK, step S17
Move on to.

【0050】N個の重複ACK受信時、ステップS20
において、関数呼び出しs_id(rtx_se
q())によって、次に再送信するデータを持つパケッ
トに付加するセグメント識別子を決定する。
Upon receiving N duplicate ACKs, step S20
, The function call s_id (rtx_se
q ()) determines the segment identifier to be added to the packet having the data to be retransmitted next.

【0051】また、ステップS21において、データの
送り手がパケットによってデータを再送信する際、デー
タ識別子及びセグメント識別子をそのパケットに付加す
る。
Further, in step S21, when the data sender retransmits the data in the packet, the data identifier and the segment identifier are added to the packet.

【0052】さらに、ステップS22において、その時
点における輻輳ウィンドウのパラメータ等の値を記憶
し、その後輻輳ウィンドウのパラメータ等の値を変更す
る。
Further, in step S22, the values of the parameters of the congestion window at that time are stored, and then the values of the parameters of the congestion window are changed.

【0053】ステップS7において、重複ACKでない
ACKの受信によりステップS5を抜けたとき、ステッ
プS8に移る。
When it is determined in step S7 that an ACK that is not a duplicate ACK is received and step S5 is exited, the process proceeds to step S8.

【0054】ステップS23において、ステップS5で
受信したACKに付加されたデータ識別子に対応するデ
ータを持つパケットのうち、最後に送信したパケットの
持つセグメント識別子の値とそのACKのセグメント識
別子応答の値が異なるとき、ステップS24に移る。
In step S23, among the packets having the data corresponding to the data identifier added to the ACK received in step S5, the value of the segment identifier of the last transmitted packet and the value of the segment identifier response of the ACK are If they are different, the process proceeds to step S24.

【0055】ステップS24では、ステップS13また
はS22で記憶した値を輻輳ウィンドウのパラメータ等
の値に戻す。
In step S24, the value stored in step S13 or S22 is returned to the value of the congestion window parameter or the like.

【0056】また、ステップS23において、ステップ
S5で受信したACKに付加されたデータ識別子に対応
するデータを持つパケットのうち、最後に送信したパケ
ットの持つセグメント識別子の値とそのACKのセグメ
ント識別子応答の値が同じとき、ステップS9に移る。
In step S23, of the packet having the data corresponding to the data identifier added to the ACK received in step S5, the value of the segment identifier of the last transmitted packet and the segment identifier response of the ACK When the values are the same, the process proceeds to step S9.

【0057】以下のステップS9、S10、S11及び
S12又はS16では、従来のTCPと同様に動作す
る。
In the following steps S9, S10, S11 and S12 or S16, the operation is similar to that of the conventional TCP.

【0058】データの受け手は、従来のTCPと同様
に、データの送り手から送信されたパケットを受け取る
と、データの送り手に対してACKを送信する。
The data receiver sends an ACK to the data sender when it receives the packet sent from the data sender, as in the conventional TCP.

【0059】データの受け手は、確認応答番号のほか
に、データ識別子応答及びセグメント識別子応答をAC
Kに付加する。
In addition to the confirmation response number, the data receiver receives the data identifier response and the segment identifier response as AC.
Append to K.

【0060】特に、本形態ではデータの受け手として、
タイムスタンプ・オプション機能を備えたTCPの受け
手を利用する。データの送り手は、TCPセグメントを
用いてデータを送信する。データの送り手は、図3のT
CPセグメントのオプション部10に、データ識別子と
セグメント識別子を置く。ただし、オプションの種類は
タイムスタンプ・オプションとする。図4にタイムスタ
ンプ・オプションの形式を示す。データの送り手は、タ
イムスタンプ値部11に、データ識別子とセグメント識
別子を、この順番で置く。このようにタイムスタンプ値
部11を構成することで、TCPの周回シーケンス番号
防止(PAWS)に対応できる。
In particular, in this embodiment, as a receiver of data,
Use a TCP recipient with a time stamp option feature. The data sender sends the data using the TCP segment. The sender of data is T in FIG.
A data identifier and a segment identifier are placed in the option part 10 of the CP segment. However, the option type is time stamp option. FIG. 4 shows the format of the time stamp option. The data sender places the data identifier and the segment identifier in the time stamp value portion 11 in this order. By configuring the time stamp value part 11 in this way, it is possible to cope with TCP Circular Sequence Number Prevention (PAWS).

【0061】タイムスタンプ・オプション機能を備えた
TCPの受け手は、データの送り手が送ったTCPセグ
メントのタイムスタンプ値部11を、データの送り手に
送信するACKのタイムスタンプ・エコー応答部12に
コピーする。すなわち、TCPの受け手はデータ識別子
応答の値とセグメント識別子応答の値をタイムスタンプ
・エコー応答部12に置く。
The TCP receiver equipped with the time stamp option function uses the time stamp value part 11 of the TCP segment sent by the data sender as the time stamp echo response part 12 of the ACK sent to the data sender. make a copy. That is, the TCP receiver places the value of the data identifier response and the value of the segment identifier response in the time stamp / echo response unit 12.

【0062】本形態の有効性を確認するため、図5に示
されるデータ通信システムにおいて、本形態のフロー制
御方法と従来のTCPのフロー制御方法のEnd−to
−endのスループットをシミュレーションによって測
定した。
In order to confirm the effectiveness of this embodiment, in the data communication system shown in FIG. 5, the flow control method of this embodiment and the End-to of the conventional TCP flow control method are used.
-End throughput was measured by simulation.

【0063】データの送り手1から送信されるパケット
は、有線リンク7、基地局6及び無線リンク8をこの順
に介してデータの受け手2に伝送される。また、データ
の受け手2から送信されるACKは、無線リンク8、基
地局6及び有線リンク7をこの順に介して伝送される。
The packet transmitted from the data sender 1 is transmitted to the data receiver 2 through the wired link 7, the base station 6 and the wireless link 8 in this order. The ACK transmitted from the data receiver 2 is transmitted via the wireless link 8, the base station 6, and the wired link 7 in this order.

【0064】無線リンク8において、データの送り手1
から送信されるパケットが、リンクエラーによって正し
く伝送されなかったとき、データの受け手2は、無線リ
ンク8を介して基地局6にNAK(Negative
Acknowledgement)を送信する。基地局
6はNAKを受け取ると、そのNAKに対応するパケッ
トをデータの受け手に再送信する。本シミュレーション
では、無線リンク8において再送信されるパケットは、
他のパケットに優先して送信される。NAKの受信によ
り基地局6がパケットを再送信するとき、データの受け
手でのパケットの到着順がデータの送り手での送信順と
一致しなくなる場合がある。
In the wireless link 8, the data sender 1
When the packet transmitted from the packet is not correctly transmitted due to a link error, the data receiver 2 transmits the NAK (Negative) to the base station 6 via the wireless link 8.
Acknowledgement) is transmitted. When the base station 6 receives the NAK, it retransmits the packet corresponding to the NAK to the data receiver. In this simulation, the packets retransmitted on the wireless link 8 are
It is sent with priority over other packets. When the base station 6 retransmits the packet by receiving the NAK, the arrival order of the packet at the data receiver may not match the transmission order at the data sender.

【0065】本シミュレーションにおけるネットワーク
の属性値は以下の通りである。有線リンク7について、
上り、下り両方向とも、伝搬遅延時間は10ミリ秒、帯
域幅は10Mbpsである。また、無線リンク8につい
て、上り、下り両方向とも、伝搬遅延時間は10ミリ
秒、帯域幅は2Mbpsである。無線リンク8のリンク
エラー率を変数としてシミュレーションを行った。ここ
で、リンクエラー率とは、データの送り手から送信され
るパケットのうち、リンクエラーによって正しく伝送さ
れないパケットの割合を指す。
The attribute values of the network in this simulation are as follows. About wired link 7,
The propagation delay time is 10 milliseconds and the bandwidth is 10 Mbps in both the up and down directions. The radio link 8 has a propagation delay time of 10 milliseconds and a bandwidth of 2 Mbps in both the up and down directions. The simulation was performed using the link error rate of the wireless link 8 as a variable. Here, the link error rate refers to a rate of packets that are not correctly transmitted due to a link error among packets transmitted from a data sender.

【0066】図6は、本形態のフロー制御方法と従来の
TCPのフロー制御方法によって、データの送り手1か
らデータの受け手2に40秒間データを送信し続けたと
きの、End−to−endの平均のスループットであ
る。無線リンク8におけるリンクエラー率を0%から1
0%まで、1%区切りにそれぞれ測定した。
FIG. 6 shows an end-to-end condition when data is continuously transmitted from the data sender 1 to the data receiver 2 for 40 seconds by the flow control method of this embodiment and the conventional TCP flow control method. Is the average throughput of. The link error rate in the wireless link 8 is 0% to 1
Each measurement was made up to 0% in 1% intervals.

【0067】無線リンク8におけるリンクエラー率が1
%のとき、従来のTCPに比べ20%のEnd−to−
endのスループット改善が見られた。リンクエラー率
が大きくなるにつれ、スループットの改善の程度も大き
くなり、リンクエラー率10%のときの改善率は100
%を超えた。
The link error rate in the wireless link 8 is 1
%, 20% End-to-compared to conventional TCP
An improvement in end throughput was seen. As the link error rate increases, the degree of improvement in throughput also increases, and when the link error rate is 10%, the improvement rate is 100.
% Exceeded.

【0068】[0068]

【発明の効果】RTTが一時的に大きくなるネットワー
ク及び、通信経路上でのパケットの損失がなく、データ
の送り手からのパケットの送信順とデータの受け手での
パケットの到着順が一致しないネットワークにおいて、
本発明のフロー制御方法を適用すると、適切なスループ
ットが得られる。
EFFECT OF THE INVENTION A network in which the RTT temporarily increases, and a network in which there is no packet loss on the communication path and the packet transmission order from the data sender does not match the packet arrival order at the data receiver. At
Appropriate throughput can be obtained by applying the flow control method of the present invention.

【0069】特に、リンクエラー発生時にパケット又は
パケットの一部を再送信する無線リンクを有するネット
ワークにおいて、本発明のフロー制御方法を適用する
と、適切なスループットが得られる。
In particular, when the flow control method of the present invention is applied to a network having a wireless link for retransmitting a packet or a part of a packet when a link error occurs, an appropriate throughput can be obtained.

【0070】本発明では、識別子の値を物理乱数に基づ
いて決定することで、データの受け手が、受信していな
いパケットの持つ識別子の値を予測することを困難に
し、不公平に大きなスループットを得ることを防ぐ。
In the present invention, by determining the value of the identifier based on the physical random number, it becomes difficult for the receiver of the data to predict the value of the identifier of the packet that has not been received, and unfairly large throughput is achieved. Prevent getting.

【0071】本発明では、TCPタイムスタンプ・オプ
ションを利用することで、データの受け手として、タイ
ムスタンプ・オプション機能を持つTCPの受け手を利
用できる。
In the present invention, by using the TCP time stamp option, a TCP receiver having a time stamp option function can be used as a data receiver.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の実施形態のフロー制御方法を示すフロ
ーチャートである。
FIG. 1 is a flowchart showing a flow control method according to an embodiment of the present invention.

【図2】本発明が適用されるデータ通信システムを示す
ブロック図である。
FIG. 2 is a block diagram showing a data communication system to which the present invention is applied.

【図3】本発明の実施形態で利用されるTCPセグメン
トの形式を示す図である。
FIG. 3 is a diagram showing a format of a TCP segment used in the embodiment of the present invention.

【図4】TCPヘッダにおけるTCPタイムスタンプ・
オプション部の形式を示す図である。
FIG. 4 is a TCP time stamp in a TCP header.
It is a figure which shows the format of an option part.

【図5】図2に形態のデータ通信システムで、無線リン
クを有する一例を示すブロック図である。
FIG. 5 is a block diagram showing an example of a data communication system of the form shown in FIG. 2 having a wireless link.

【図6】図5のデータ通信システムにおけるEnd−t
o−endのスループットを示すグラフである。
6 is an End-t in the data communication system of FIG.
It is a graph which shows the throughput of o-end.

【図7】従来のTCPのフロー制御方法を示すフローチ
ャートである。
FIG. 7 is a flowchart showing a conventional TCP flow control method.

【符号の説明】[Explanation of symbols]

1 データの送り手 2 データの受け手 3 ネットワーク 4 リンク 5 中継ノード 6 基地局 7 有線リンク 8 無線リンク 10 TCPオプション部 11 TCPタイムスタンプ・オプション部のタイムス
タンプ値部 12 TCPタイムスタンプ・オプション部のタイムス
タンプ・エコー応答部
1 data sender 2 data receiver 3 network 4 link 5 relay node 6 base station 7 wired link 8 wireless link 10 TCP option part 11 TCP time stamp option part time stamp value part 12 TCP time stamp option part time Stamp / Echo response part

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】データの送り手は、データをパケットに付
加してデータの受け手に送信し、データの受け手は、受
信したデータに対する確認応答をデータの送り手に送信
し、データの送り手は、確認応答に基づいてデータの送
信速度を決定するフロー制御方法において、データの送
り手は、パケットに付加するデータと、そのパケットの
送信時までにおけるそのデータの送信回数と、を同定す
る値である識別子を送信するパケットに付加し、データ
の受け手は、受信したパケットに付加された識別子のコ
ピーである識別子応答を確認応答に付加し、データの送
り手は、受信した確認応答に付加された識別子応答によ
って同定される、データと、送信回数と、に基づいて、
通信経路上における、送信したパケットの損失の有無を
判断し、その判断に基づいてデータの送信速度を決定す
ることを特徴とするフロー制御方法。
1. A data sender adds data to a packet and sends it to a data receiver, the data receiver sends an acknowledgment for the received data to the data sender, and the data sender In the flow control method of determining the data transmission rate based on the acknowledgment, the data sender uses a value that identifies the data to be added to the packet and the number of times the data has been transmitted until the packet is transmitted. An identifier is added to the packet to be sent, the receiver of the data adds an identifier response, which is a copy of the identifier added to the received packet, to the acknowledgment, and the sender of the data is added to the received acknowledgment. Based on the data and number of transmissions identified by the identifier response,
A flow control method characterized by determining whether or not a transmitted packet is lost on a communication path and determining a data transmission rate based on the determination.
【請求項2】請求項1記載のフロー制御方法において、
データの送り手は、物理乱数に基づいて識別子を決定す
ることを特徴とするフロー制御方法。
2. The flow control method according to claim 1, wherein
The flow control method, wherein the sender of the data determines the identifier based on a physical random number.
【請求項3】請求項1記載のフロー制御方法において、
データの送り手は、パケットにTCPヘッダを付加し、
識別子をTCPヘッダのタイムスタンプ・オプション部
に置き、データの受け手は、TCPの受け手と同じタイ
ムスタンプ・オプション機能を持つことを特徴とするフ
ロー制御方法。
3. The flow control method according to claim 1, wherein
The data sender adds a TCP header to the packet,
A flow control method characterized in that an identifier is placed in a time stamp option part of a TCP header, and a data receiver has the same time stamp option function as a TCP receiver.
【請求項4】データの送り手は、データをパケットに付
加してデータの受け手に送信し、データの受け手は、受
信したデータに対する確認応答をデータの送り手に送信
し、データの送り手は、確認応答に基づいてデータの送
信速度を決定するフロー制御方法において、データの送
り手は、パケットに付加するデータと、そのパケットの
送信時までにおけるそのデータの送信回数と、を同定す
る値である識別子を送信するパケットに付加し、データ
の受け手は、受信したパケットに付加された識別子を同
定する値である識別子応答を確認応答に付加し、データ
の送り手は、受信した確認応答に付加された識別子応答
によって同定される、データと、送信回数と、に基づい
て、通信経路上における、送信したパケットの損失の有
無を判断し、その判断に基づいてデータの送信速度を決
定することを特徴とするフロー制御方法。
4. A data sender adds data to a packet and sends it to a data receiver, and the data receiver sends a confirmation response to the received data to the data sender, and the data sender In the flow control method of determining the data transmission rate based on the acknowledgment, the data sender uses a value that identifies the data to be added to the packet and the number of times the data has been transmitted until the packet is transmitted. A certain identifier is added to the packet to be transmitted, the data receiver adds an identifier response, which is a value that identifies the identifier added to the received packet, to the confirmation response, and the data sender adds it to the received confirmation response. Based on the data and the number of times of transmission identified by the identified identifier response, the presence or absence of the loss of the transmitted packet on the communication path is determined, and Flow control method characterized by determining the transmission rate of the data based on the cross.
【請求項5】請求項4記載のフロー制御方法において、
データの送り手は、物理乱数に基づいて識別子を決定す
ることを特徴とするフロー制御方法。
5. The flow control method according to claim 4,
The flow control method, wherein the sender of the data determines the identifier based on a physical random number.
JP2002062693A 2002-01-30 2002-01-30 Method for controlling flow Pending JP2003224547A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002062693A JP2003224547A (en) 2002-01-30 2002-01-30 Method for controlling flow

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002062693A JP2003224547A (en) 2002-01-30 2002-01-30 Method for controlling flow

Publications (1)

Publication Number Publication Date
JP2003224547A true JP2003224547A (en) 2003-08-08

Family

ID=27751230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002062693A Pending JP2003224547A (en) 2002-01-30 2002-01-30 Method for controlling flow

Country Status (1)

Country Link
JP (1) JP2003224547A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006333898A (en) * 2005-05-31 2006-12-14 Canon Inc Radiographic imaging system
JP2008524942A (en) * 2004-12-22 2008-07-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Data flow control using duplicate receipt confirmation
US7764616B2 (en) 2003-11-28 2010-07-27 Ntt Docomo, Inc. Transmitter device for controlling data transmission
US8238348B2 (en) 2004-11-08 2012-08-07 Fujitsu Limited Frame transmitting apparatus and frame receiving apparatus
US10715282B2 (en) 2016-01-18 2020-07-14 Huawei Technologies Co., Ltd. Method and related device for improving TCP transmission efficiency using delayed ACK

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7764616B2 (en) 2003-11-28 2010-07-27 Ntt Docomo, Inc. Transmitter device for controlling data transmission
US8238348B2 (en) 2004-11-08 2012-08-07 Fujitsu Limited Frame transmitting apparatus and frame receiving apparatus
JP2008524942A (en) * 2004-12-22 2008-07-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Data flow control using duplicate receipt confirmation
JP2006333898A (en) * 2005-05-31 2006-12-14 Canon Inc Radiographic imaging system
JP4684747B2 (en) * 2005-05-31 2011-05-18 キヤノン株式会社 Radiation generator and control method
US10715282B2 (en) 2016-01-18 2020-07-14 Huawei Technologies Co., Ltd. Method and related device for improving TCP transmission efficiency using delayed ACK

Similar Documents

Publication Publication Date Title
EP1841118B1 (en) Communication terminal and retransmission control method
US8418016B2 (en) Communication system, communication device, and communication method
US7965698B2 (en) Method for preventing unnecessary retransmission due to delayed transmission in wireless network and communication device using the same
JP4708978B2 (en) Communication system, communication terminal, session relay device, and communication protocol realizing high throughput
US7460472B2 (en) System and method for transmitting information in a communication network
JP4654926B2 (en) COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND CONgestion Control Method Used In Them
WO2018121294A1 (en) Packet transmission method, terminal, network device, and communication system
CN112165355B (en) Satellite network-oriented UDP-based reliable data transmission method
TWI459768B (en) Communication system and method for assisting transmission of tcp packets
EP2144391B1 (en) Method for transmitting retransmission request and receiving side device
CN101119183A (en) Retransmission control method and transmission equipment
EP1344359B1 (en) Method of enhancing the efficiency of data flow in communication systems
CN101369877B (en) Wireless transmission control protocol processing method and equipment
WO2001097446A3 (en) Enhancement of explicit congestion notification (ecn) for wireless network applications
US20150304226A1 (en) Communication device, transmission data output control method, and program for same
Francis et al. Techniques for enhancing TCP performance in wireless networks
JP2008104018A (en) Communication system, communication equipment, and transmission control method
JP7067544B2 (en) Communication systems, communication devices, methods and programs
WO2017118239A1 (en) Cross-layer optimization method and device for wireless transmission of data package
JP2008053888A (en) Communication equipment, program, information storage medium and communication control method
JP2003224547A (en) Method for controlling flow
JP6011813B2 (en) COMMUNICATION DEVICE AND ITS COMMUNICATION CONTROL METHOD
CN116963175A (en) Data transmission method, device and system
Al-Hasanat et al. Enhanced TCPW's fast retransmission and fast recovery mechanism over high bit errors networks
JP3158357B2 (en) Retransmission control method