JP2004222271A - Transmission control method, communication equipment, communication system and program - Google Patents

Transmission control method, communication equipment, communication system and program Download PDF

Info

Publication number
JP2004222271A
JP2004222271A JP2003430449A JP2003430449A JP2004222271A JP 2004222271 A JP2004222271 A JP 2004222271A JP 2003430449 A JP2003430449 A JP 2003430449A JP 2003430449 A JP2003430449 A JP 2003430449A JP 2004222271 A JP2004222271 A JP 2004222271A
Authority
JP
Japan
Prior art keywords
acknowledgment
transmitted
receiving device
data blocks
data segment
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.)
Granted
Application number
JP2003430449A
Other languages
Japanese (ja)
Other versions
JP3784801B2 (en
Inventor
Motoharu Miyake
基治 三宅
Hiroshi Inamura
浩 稲村
Osamu Takahashi
修 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003430449A priority Critical patent/JP3784801B2/en
Publication of JP2004222271A publication Critical patent/JP2004222271A/en
Application granted granted Critical
Publication of JP3784801B2 publication Critical patent/JP3784801B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide technology for appropriately discriminating whether a confirmation response data segment received in a transmitter is corresponding to an original data segment or to a resent data segment without increasing information quantity of data segments and without requiring a considerable design change for the transmitter and a receiver. <P>SOLUTION: With respect to a confirmation response that is received after a data segment is resent, a confirmation response number contained in the relevant confirmation response is compared with a confirmation response number predicted to be contained in a confirmation response to the resent data segment and when the former is greater than the latter, it is discriminated that the relevant confirmation response corresponds to the original data segment. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

本発明は、通信網を介して行われるデータ通信における再送制御のための技術に関する。   The present invention relates to a technique for controlling retransmission in data communication performed via a communication network.

近年、TCP(Transmission Control Protocol)に従ってデータの送受信を行う装置が一般的に普及している。TCPは、OSI参照モデルにおけるトランスポート層の通信プロトコルの代表的なものとして周知である。このTCPでは、上位層から渡されたデータストリームをセグメントに分割し、通信相手である受信装置に送信する。TCPは、分割されたデータのセグメントを順番どおり確実に受信装置まで送り届けるための機能を提供している。具体的には、TCPでは、各データセグメントにデータの順番を示す番号(以下、シーケンス番号という)を付与する。送信装置は、データセグメントを送信する際にはこのシーケンス番号をヘッダにセットして送信する。また、送信装置は各データセグメントを送信するとき、これと同時にタイマをセットする。そして、このタイマがタイムアウト値に到達するまでに確認応答を受信しなかった場合には、送信装置はデータセグメントが受信装置まで到達することなく喪失したと一応の判断を行い、当該喪失したとみなされたデータセグメントを同受信装置に対して再送するようになっている。ここで、タイムアウト値は、データセグメントを送信してから、当該データセグメントに対する確認応答を受け取ると期待する時間(データセグメントの予測往復時間)に基づいて定められる。   In recent years, devices that transmit and receive data according to TCP (Transmission Control Protocol) have become widespread. TCP is well known as a typical transport layer communication protocol in the OSI reference model. In this TCP, a data stream passed from an upper layer is divided into segments and transmitted to a receiving device that is a communication partner. The TCP provides a function for reliably sending the divided data segments to the receiving device in order. Specifically, in TCP, a number (hereinafter, referred to as a sequence number) indicating the order of data is assigned to each data segment. When transmitting the data segment, the transmitting device sets the sequence number in the header and transmits the data segment. The transmitting device sets a timer at the same time as transmitting each data segment. If the acknowledgment is not received before the timer reaches the timeout value, the transmitting device makes a tentative determination that the data segment has been lost without reaching the receiving device, and considers that the data segment has been lost. The received data segment is retransmitted to the receiving device. Here, the timeout value is determined based on a time (a predicted round-trip time of the data segment) that is expected to receive an acknowledgment for the data segment after transmitting the data segment.

送信装置において、受信した確認応答がどのデータセグメントに対する確認応答であるかは、確認応答のヘッダに含まれる確認応答番号を参照して判断される。以下、この判断について説明する。まず、受信装置がデータセグメントを受信し、これに対する確認応答を送信する際には、受信装置が次に受信を期待するシーケンス番号(以下、確認応答番号という)を確認応答のヘッダにセットする。例えば、500から始まり、1000、1500・・・と続くシーケンス番号が用いられる場合に、シーケンス番号500を持つデータセグメントを受信したときに送信装置に送信する確認応答番号は1000となる。送信装置は、このような確認応答番号を有する確認応答を受信することにより、送信装置が送信したデータセグメントが無事受信装置によって受信されたと判定し、後続のデータセグメントを送信する。   The transmitting device determines which data segment the received acknowledgment is for the acknowledgment by referring to the acknowledgment number included in the header of the acknowledgment. Hereinafter, this determination will be described. First, when the receiving device receives a data segment and transmits an acknowledgment for the data segment, the receiving device sets a sequence number expected to be received next (hereinafter referred to as an acknowledgment number) in a header of the acknowledgment. For example, when a sequence number starting from 500 and continuing to 1000, 1500,... Is used, the acknowledgment number transmitted to the transmitting device when a data segment having the sequence number 500 is received is 1000. By receiving the acknowledgment having such an acknowledgment number, the transmitting device determines that the data segment transmitted by the transmitting device has been successfully received by the receiving device, and transmits the subsequent data segment.

尚、このように送信装置が確認応答番号1000を有する確認応答を受信する場合とは、送信装置がシーケンス番号1000を有するデータセグメントを未送信であるか、送信済みであってもそのデータセグメントが受信装置に届いていない場合である。この確認応答番号は、受信装置が、シーケンス番号1000を有するデータセグメントを受信するまでは常に1000となる。例えば、シーケンス番号1000を有するデータセグメントが喪失されたなどの理由により、その後続セグメントであるシーケンス番号1500を有するデータセグメントの方が先に受信装置に到着している場合であっても、受信装置がシーケンス番号1000を有するデータセグメントを受信するまでは、受信装置から送信される確認応答の確認応答番号には1000がセットされる。つまり、確認応答番号には、受信装置が未だ受信していないデータセグメントの最も若いセグメントのシーケンス番号が常にセットされる。   Note that the case where the transmitting device receives the acknowledgment having the acknowledgment number 1000 as described above means that the data segment having the sequence number 1000 has not been transmitted or the data segment has been transmitted even if the data segment has been transmitted. This is the case when it has not reached the receiving device. This acknowledgment number is always 1000 until the receiving device receives the data segment having the sequence number 1000. For example, even if the data segment having the sequence number 1500, which is the subsequent segment, has arrived at the receiving device earlier because the data segment having the sequence number 1000 has been lost, etc. Until receiving the data segment having the sequence number 1000, the acknowledgment number of the acknowledgment transmitted from the receiving apparatus is set to 1000. That is, the acknowledgment number is always set to the sequence number of the youngest segment of the data segment that the receiving device has not yet received.

以上説明したデータセグメントの伝送において、各データセグメントを確実に送信するためには、ひとつのデータセグメントを送信した後に、それに対する確認応答を受信してから次のデータセグメントを送信する方式を採用するのが好ましい。しかし、この方式は確実ではあるがデータの伝送効率が悪くなってしまう。伝送効率を高めるため、TCPでは、ウィンドウによって定められる数のデータセグメントを一度に送信する方式を採用している。ウィンドウとは、確認応答を受信する前に受信装置に対して送信することが許されているデータのバイト数、つまりデータセグメントの数である。このウィンドウのサイズは、受信装置におけるバッファの空き容量を超えない範囲で送信装置によって定められる。送信装置が送信済みのデータセグメントに対して確認応答を受信すると、ウィンドウはその時に確認応答を受信したデータセグメントの数だけスライドし、ウィンドウがスライドした数だけ後続のデータセグメントが送信される。これが、「スライディングウィンドウ方式」である。このスライディングウィンドウ方式では、ウィンドウのサイズを制御することによりデータの流量を制御することができる。   In the transmission of the data segments described above, in order to surely transmit each data segment, a method of transmitting one data segment, receiving an acknowledgment response thereto, and then transmitting the next data segment is adopted. Is preferred. However, although this method is reliable, the data transmission efficiency deteriorates. In order to improve transmission efficiency, TCP adopts a method of transmitting a number of data segments determined by a window at a time. The window is the number of bytes of data allowed to be transmitted to the receiving device before receiving the acknowledgment, that is, the number of data segments. The size of this window is determined by the transmitting device within a range not exceeding the free space of the buffer in the receiving device. When the transmitting device receives an acknowledgment for the transmitted data segment, the window slides by the number of data segments for which the acknowledgment was received at that time, and subsequent data segments are transmitted by the number of sliding windows. This is the “sliding window method”. In the sliding window method, the data flow rate can be controlled by controlling the size of the window.

ところで、このスライディングウィンドウ方式に従って複数のデータセグメントが受信装置に対して送信された後、送信装置と受信装置間の通信路が輻輳状態になるなどして、通信が停止状態となることがある。特に、通信路が無線区間を含むような場合には、電波環境が悪化する可能性が高い。このような状況下で送信装置がデータセグメントを送信しても、当該データセグメントは受信装置へ届かず中途で喪失してしまうか、通信網の通信状態が復元されるまで通信網のどこかのノードに一時的に保存されることになる。その後、無線環境が改善したりして通信が再開されると、網内に一時的に保存されていたデータセグメントが遅延した後に受信装置に届く場合がある。   By the way, after a plurality of data segments are transmitted to the receiving device according to the sliding window method, communication may be stopped due to a congestion state of a communication path between the transmitting device and the receiving device. In particular, when the communication path includes a wireless section, the radio wave environment is highly likely to deteriorate. Even if the transmitting device transmits a data segment in such a situation, the data segment does not reach the receiving device and is lost in the middle, or somewhere in the communication network until the communication state of the communication network is restored. It will be temporarily stored in the node. Thereafter, when the wireless environment is improved or communication is resumed, the data segment temporarily stored in the network may reach the receiving device after being delayed.

ここで、通信路の状態が悪化している時間が長い場合には次のような事態が発生する。まず、送信装置では、データセグメント送信後、タイムアウト発生前に確認応答が受信されない場合には、送信済みであり且つ確認応答を未受信であるデータセグメントの先頭セグメントが再送される。その結果、受信装置には、網内に滞留していたデータセグメント(以下、オリジナルデータセグメントという)と、再送されたデータセグメント(以下、再送データセグメントという)との両方が届くことになる。そして、受信装置は、オリジナルデータセグメントを受信したときに、これに対する確認応答を送信し、再送データセグメントを受信したときに、これに対する確認応答を送信する。   Here, if the time during which the state of the communication path is deteriorated is long, the following situation occurs. First, after transmitting the data segment, if the acknowledgment is not received before the time-out occurs, the head segment of the data segment that has been transmitted and has not received the acknowledgment is retransmitted. As a result, both the data segment staying in the network (hereinafter, referred to as the original data segment) and the retransmitted data segment (hereinafter, referred to as the retransmission data segment) reach the receiving device. Then, the receiving device transmits an acknowledgment response to the original data segment when receiving the original data segment, and transmits an acknowledgment response to the retransmission data segment when receiving the retransmitted data segment.

このオリジナルデータセグメントに対する確認応答と再送データセグメントに対する確認応答は、通常の場合、同一の確認応答番号を有する。このため、送信装置がひとつめの確認応答を受信した時点では、当該確認応答がオリジナルデータセグメントに対するものなのか又は再送データセグメントに対するものなのかを判別することができない。このような場合、送信装置は、再送データセグメント送信後最初に確認応答を受信すると、当該確認応答は再送データセグメントに対する確認応答であるとみなし、オリジナルデータセグメントは受信装置に届かなかったものと判断する。以下、2つの事例を挙げ、このような判断が行われる理由について詳述する。   The acknowledgment for the original data segment and the acknowledgment for the retransmitted data segment usually have the same acknowledgment number. For this reason, when the transmitting device receives the first acknowledgment, it cannot determine whether the acknowledgment is for the original data segment or the retransmission data segment. In such a case, when the transmitting device receives an acknowledgment for the first time after transmitting the retransmitted data segment, the transmitting device regards the acknowledgment as an acknowledgment for the retransmitted data segment and determines that the original data segment did not reach the receiving device. I do. Hereinafter, the reason why such determination is performed will be described in detail with reference to two cases.

図10は、従来のサーバ装置10'(送信装置)とクライアント装置50(受信装置)との間でパケット通信を行う場合の一例を示すシーケンスチャートである。尚、同図において、サーバ装置10'における各矢印の始点の右側に示される4桁の番号は、サーバ装置10'からパケット通信により送信されるデータセグメントのシーケンス番号である。また、クライアント装置50における各矢印の始点の左側に示される4桁の番号は、クライアント装置50から送信される確認応答に含まれる確認応答番号である。ここでは、初期ウィンドウサイズは「3」であると仮定する。つまり、送信装置は、確認応答の受信を待たずに3つのデータセグメントを送信可能である。   FIG. 10 is a sequence chart illustrating an example of a case where packet communication is performed between a conventional server device 10 ′ (transmitting device) and a client device 50 (receiving device). In the figure, the four-digit number shown to the right of the start point of each arrow in the server device 10 'is the sequence number of the data segment transmitted from the server device 10' by packet communication. The four-digit number shown on the left side of the starting point of each arrow in the client device 50 is an acknowledgment number included in the acknowledgment transmitted from the client device 50. Here, it is assumed that the initial window size is “3”. That is, the transmitting device can transmit three data segments without waiting for the reception of the acknowledgment.

図10において、サーバ装置10'からクライアント装置50へシーケンス番号0、1000、2000を有するそれぞれのオリジナルデータセグメントS1、S2、S3が送信される。この際、サーバ装置10'ではタイマがセットされる。   In FIG. 10, original data segments S1, S2, and S3 having sequence numbers 0, 1000, and 2000 are transmitted from the server device 10 'to the client device 50. At this time, a timer is set in the server device 10 '.

図示の例では、網内の通信環境の悪化により、当該オリジナルデータセグメントS1、S2、S3は、クライアント装置50により遅延して順次受信される。クライアント装置50は、オリジナルデータセグメントS1を受信すると確認応答番号1000を有する確認応答R1が送信される。同様に、クライアント装置50は、オリジナルデータセグメントS2を受信すると確認応答番号2000を有する確認応答R2を送信し、オリジナルデータセグメントS3を受信すると確認応答番号3000を有する確認応答R3を送信する。   In the illustrated example, the original data segments S1, S2, and S3 are sequentially received with a delay by the client device 50 due to the deterioration of the communication environment in the network. Upon receiving the original data segment S1, the client device 50 transmits an acknowledgment R1 having an acknowledgment number 1000. Similarly, the client device 50 transmits an acknowledgment R2 having an acknowledgment number 2000 when receiving the original data segment S2, and transmits an acknowledgment R3 having an acknowledgment number 3000 when receiving the original data segment S3.

図10に示す例において、サーバ装置10'では、タイマによって測定される経過時間がタイムアウト値に到達しても確認応答が受信されない。このため、サーバ装置10'では、タイムアウトとなった時点で、オリジナルデータセグメントS1はクライアント装置50に受信されなかったと判定されて、シーケンス番号0を有するデータセグメント(再送データセグメントS′1)が再送される。この時、タイムアウトが発生した時点でウインドウサイズが最小値に縮小されるため、再送データセグメントS′1のみが送信されている。
その後、サーバ装置10'では、確認応答R1が受信されるが、上述の事情で当該確認応答R1がオリジナルデータセグメントS1に対応するものなのか又は再送データセグメントS′1に対応するものなのかを判定することができない。その結果、再送データセグメントS′1に対応するものであるとみなされて、シーケンス番号1000を有するデータセグメント(再送データセグメントS′2)が送信される。また、確認応答R1を受信することにより、ウィンドウサイズが1データセグメント分増加するため、後続のシーケンス番号2000を有するデータセグメント(再送データセグメントS′3)も送信される。
In the example shown in FIG. 10, in the server device 10 ', an acknowledgment is not received even if the elapsed time measured by the timer reaches the timeout value. For this reason, in the server device 10 ′, when the timeout occurs, it is determined that the original data segment S1 has not been received by the client device 50, and the data segment having the sequence number 0 (retransmission data segment S′1) is retransmitted. Is done. At this time, since the window size is reduced to the minimum value when the timeout occurs, only the retransmission data segment S'1 is transmitted.
Thereafter, the server device 10 'receives the acknowledgment R1. In the above-described situation, it is determined whether the acknowledgment R1 corresponds to the original data segment S1 or the retransmission data segment S'1. Cannot be determined. As a result, the data segment having the sequence number 1000 (retransmission data segment S'2) is transmitted as being regarded as corresponding to the retransmission data segment S'1. In addition, receiving the acknowledgment R1 increases the window size by one data segment, so that a data segment having the subsequent sequence number 2000 (retransmission data segment S'3) is also transmitted.

次いで、サーバ装置10'では、クライアント装置50から送信された確認応答番号2000を有する確認応答R2が受信され後続のデータセグメント(オリジナルデータセグメントS4以降のデータセグメント)が順次送信される。   Next, in the server device 10 ', the acknowledgment R2 having the acknowledgment number 2000 transmitted from the client device 50 is received, and subsequent data segments (data segments subsequent to the original data segment S4) are sequentially transmitted.

この例では、オリジナルデータセグメントS2とS3が実際は受信装置に無事受信されているにもかかわらず、再送されている(再送データセグメントS'2およびS'3)。すなわち、データセグメントS2とS3はいずれも2回ずつ受信装置に受信されているので、結果的に無駄なデータセグメントの再送が行われてしまったと云える。また、図10からも明らかなように、再送データセグメントS'2およびS'3に対する確認応答R'2およびR'3が送られるので、合計で4つのデータセグメントの送信が結果的には無駄であった。   In this example, the original data segments S2 and S3 are retransmitted (retransmission data segments S'2 and S'3) even though they are actually successfully received by the receiving device. That is, since both the data segments S2 and S3 are received twice by the receiving device, it can be said that as a result, useless retransmission of the data segment has been performed. Also, as is clear from FIG. 10, since acknowledgments R'2 and R'3 for retransmission data segments S'2 and S'3 are sent, transmission of a total of four data segments is wasteful as a result. Met.

図11は、無駄なセグメントの再送が起こりうる別の事例について説明する図である。TCPでは、受信装置が過度の確認応答を送信しないように、確認応答の送信を所定の時間内であれば遅らせ、次のデータ送信に相乗りできることが規定されている(遅延確認応答、RFC 2581)。しかし、その所定の時間内であっても、受信装置は2個のフルサイズのデータセグメントを連続受信した場合には次のデータ送信を待つことなく即座に確認応答を送信するべきとなっている。つまり、2個のデータセグメントが例えば200ミリ秒などの短い時間差で連続して受信された場合は、2個のデータセグメントの受信を通知する確認応答を1個の確認応答で代用することになっており、具体的には、受信装置は、2番目に受信したデータセグメントの確認応答を送信することにより、2個のデータセグメントの受信を送信装置に通知する。図11に示す事例はこの取り決めが適用された場合を想定している。   FIG. 11 is a diagram for explaining another case in which useless segment retransmission can occur. In TCP, it is specified that the transmission of the acknowledgment is delayed within a predetermined time so that the receiving device can not transmit an excessive acknowledgment, and that the receiver can piggyback on the next data transmission (delay acknowledgment, RFC 2581). . However, even within the predetermined time, when the receiving apparatus continuously receives two full-size data segments, it should transmit an acknowledgment immediately without waiting for the next data transmission. . That is, when two data segments are continuously received with a short time difference of, for example, 200 milliseconds, the acknowledgment for notifying the reception of the two data segments is substituted by one acknowledgment. Specifically, the receiving device notifies the transmitting device of the reception of the two data segments by transmitting an acknowledgment of the data segment received second. The example shown in FIG. 11 assumes that this agreement is applied.

図11において、図10の場合と同様にオリジナルデータセグメントS1、S2、S3がサーバ装置10'から送信され、通信路の障害が理由で遅延した後、クライアント装置50に順次受信される。次いで、上記取り決めによりクライアント装置50は確認応答R2を送信する。一方、サーバ装置10'では、タイムアウト発生により再送データセグメントS'1を送信する。この時、タイムアウト発生により、ウィンドウサイズが1データセグメント分に縮小されるので、再送データセグメントS'1のみが送信されている。
次に、サーバ装置10'は、クライアント装置50から送信された確認応答R2を受信する。サーバ装置10'は、確認応答R2に含まれる確認応答番号2000を参照し、同シーケンス番号を有するセグメント、即ち、オリジナルデータセグメントS3を再送する。また、この時、確認応答R2を受信することによりウィンドウサイズが1データセグメント分増加するので、後続のオリジナルデータセグメントS4(シーケンス番号3000)も送信される。
In FIG. 11, the original data segments S1, S2, and S3 are transmitted from the server device 10 ', and are sequentially received by the client device 50 after being delayed due to a failure in the communication path, as in the case of FIG. Next, the client device 50 transmits an acknowledgment R2 according to the above agreement. On the other hand, the server device 10 'transmits the retransmission data segment S'1 due to the occurrence of a timeout. At this time, the window size is reduced to one data segment due to the occurrence of a timeout, so that only the retransmission data segment S'1 is transmitted.
Next, the server device 10 'receives the confirmation response R2 transmitted from the client device 50. The server device 10 'refers to the acknowledgment number 2000 included in the acknowledgment R2 and retransmits the segment having the same sequence number, that is, the original data segment S3. At this time, since the window size is increased by one data segment by receiving the acknowledgment R2, the subsequent original data segment S4 (sequence number 3000) is also transmitted.

次いで、サーバ装置10'では、クライアント装置50から送信された確認応答番号3000を有する確認応答R3が受信される。この確認応答R3の受信により、サーバ装置10'では、後続のシーケンス番号4000を有するオリジナルデータセグメントS5以降のデータセグメントが順次送信される。   Next, in the server device 10 ′, the acknowledgment R3 having the acknowledgment number 3000 transmitted from the client device 50 is received. By receiving the confirmation response R3, the server device 10 'sequentially transmits data segments subsequent to the original data segment S5 having the subsequent sequence number 4000.

この事例においては、オリジナルデータセグメントS3がクライアント装置50に既に受信されているにもかかわらず再送され、図11に示すようにそれに対する確認応答R′3も送信される。つまり、再送データセグメントS′3及び確認応答R′3が無駄に送られることが分かる。   In this case, the original data segment S3 is retransmitted even though it has already been received by the client device 50, and an acknowledgment R'3 for it is also transmitted as shown in FIG. That is, it is understood that the retransmission data segment S'3 and the acknowledgment R'3 are sent needlessly.

データセグメント再送後最初の確認応答がオリジナルデータセグメントに対するものなのか又は再送データセグメントに対するものなのかを判別することができない場合に、仮にオリジナルデータセグメントに対するものであると判断すると、このような無駄な再送は行われない。
しかし、このような判断をすると、実際は再送データセグメントに対する確認応答であるのにオリジナルデータセグメントに対する確認応答であるとみなしてしまう場合が生じる。この場合、データセグメントの並びの後方にウィンドウがスライドされ、後続のオリジナルデータセグメントが送信される。このようなことが繰り返し発生すると、サーバ装置10'から送信され、クライアント装置50に到着していないデータセグメントの数が累増するおそれがある。
このような事態に陥るリスクを避けるため、確認応答がオリジナルデータセグメントに対するものなのか又は再送データセグメントに対するものなのかを判別することができない場合に、オリジナルデータセグメントに対するものであると判断することにしているのである。
しかし、このような判断手法を採った場合、データセグメントの無駄な再送が行われるのを回避することができない。
If it is not possible to determine whether the first acknowledgment after the data segment retransmission is for the original data segment or for the retransmitted data segment, if it is determined that it is for the original data segment, such a wasteful No retransmission is performed.
However, if such a determination is made, there may be a case where an acknowledgment to the original data segment is regarded as an acknowledgment to the retransmitted data segment in fact. In this case, the window is slid behind the arrangement of the data segments, and the subsequent original data segments are transmitted. If this occurs repeatedly, the number of data segments transmitted from the server device 10 'and not arriving at the client device 50 may increase.
To avoid the risk of such a situation, if it cannot be determined whether the acknowledgment is for the original data segment or for the retransmitted data segment, it is determined that the acknowledgment is for the original data segment. -ing
However, when such a determination method is adopted, useless retransmission of the data segment cannot be avoided.

このような問題を解決する技術が非特許文献1及び非特許文献2に記載されている。非特許文献1には、タイムスタンプオプション(RFC 1323)を利用することにより、確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものかについての判別を正確に行うことを可能とさせる技術が記載されている。   Techniques for solving such a problem are described in Non-Patent Documents 1 and 2. Non-Patent Document 1 discloses a technology that makes it possible to accurately determine whether an acknowledgment is for an original data segment or a retransmission data segment by using a time stamp option (RFC 1323). Has been described.

また、非特許文献2には、有線パケット通信網を介するパケット通信において、統計情報を用いて、確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものかを推定する技術が記載されている。
この文献では、送信装置と受信装置との間の通信コネクションが確立されているときにデータセグメントを送信してから確認応答が届くまでの時間を実測して得られるラウンドトリップタイムのうち最小のラウンドトリップタイムの1/2を閾値として上記の推定を行うことが提案されている。つまり、再送データセグメントを送信してからひとつめの確認応答を受信するまでの経過時間が閾値以上の場合(又は閾値を超過した場合)には再送データセグメントに対する確認応答とみなし、閾値未満の場合(又は閾値以下の場合)にはオリジナルデータセグメントに対する確認応答とみなす。
Non-Patent Document 2 discloses a technique for estimating whether an acknowledgment is for an original data segment or a retransmission data segment using statistical information in packet communication via a wired packet communication network. .
In this document, the smallest round-trip time among round-trip times obtained by actually measuring the time from when a data segment is transmitted to when an acknowledgment arrives when a communication connection between a transmitting device and a receiving device is established is obtained. It has been proposed to perform the above estimation using 1/2 of the trip time as a threshold value. In other words, if the elapsed time from the transmission of the retransmission data segment to the reception of the first acknowledgment is equal to or greater than the threshold (or exceeds the threshold), it is regarded as an acknowledgment for the retransmission data segment. (Or below the threshold) is considered a confirmation response to the original data segment.

最小のラウンドトリップタイムの1/2を閾値とすることは、以下に列記する事情に基づいて提案されている。
[事情1] 統計をとったところ、再送データセグメントを送信してから最小のラウンドトリップタイムの1/2が経過するまでの期間、3/4が経過するまでの期間、及び1/1が経過するまでの期間内にオリジナルデータセグメントに対する確認応答を受信する確率に大差はないことが分かった。
[事情2] 統計をとったところ、再送データセグメントを送信してから最小のラウンドトリップタイムの1/2が経過した辺りから再送データセグメントに対する確認応答を受信する確率が急激に増加することが分かった。
The use of a threshold value of を of the minimum round trip time has been proposed based on the circumstances listed below.
[Situation 1] When the statistics are obtained, the period from the transmission of the retransmission data segment to the elapse of 1/2 of the minimum round trip time, the period of 3/4, and the elapse of 1/1 It has been found that there is no great difference in the probability of receiving an acknowledgment for the original data segment within the time period before the acknowledgment.
[Situation 2] When statistics are obtained, it is found that the probability of receiving an acknowledgment for the retransmitted data segment rapidly increases after about half of the minimum round trip time has elapsed since the retransmitted data segment was transmitted. Was.

アール・ルドウィグ、外1名 (R. Ludwig, et. al),“TCPにおけるアイフル検知アルゴリズム”("The Eifel Detection Algorithm for TCP" <draft-ietf-tsvwg-tcp-eifel-alg-04.txt>),[online],2002年7月24日,インターネット<URL:http://www.watersprings.org/pub/id/draft−ietf−tsvwg−tcp−eifel−alg−04.txt>R. Ludwig, et. Al., "The Eifel Detection Algorithm for TCP" (draft-ietf-tsvwg-tcp-eifel-alg-04.txt) ), [Online], July 24, 2002, Internet <URL: http: // www. watersprings. org / pub / id / draft-ietf-tsvwg-tcp-eifel-alg-04. txt> マーク・アルマン、外1名 (Mark Allman, et. al),“エンドトゥエンドのネットワークパス特性の推測について」("On Estimating End-To-End Network Path Properties"),ACM SIGCOMM '99,1999年10月,第29巻,第4号, p.263−274,(2.8節)Mark Allman, et. Al., "On Estimating End-To-End Network Path Properties", ACM SIGCOMM '99, 1999 October, Vol. 29, No. 4, p. 263-274, (Section 2.8)

しかしながら、非特許文献1の技術においては、通信環境が良好であっても、送信装置においてはオリジナルデータセグメントに対してタイムスタンプ情報が付加され、受信装置においては確認応答に対してタイムスタンプ情報が付加される。つまり、どちらのデータセグメントについてもその情報量が増加する。したがって、この技術を、通信量に応じて通信料金が変化する従量制課金を前提としている移動パケット通信網を介したパケット通信に適用した場合、通信料の上昇を招いてしまう。データの再送が必要となるケースが少ない良好な通信環境においては、これは不要な通信量の上昇である。また、言うまでもなく、通信料の上昇は受信装置の使用者や送信装置の使用者の望むところではない。   However, in the technique of Non-Patent Document 1, even in a good communication environment, the transmitting device adds time stamp information to the original data segment, and the receiving device adds time stamp information to the acknowledgment. Will be added. That is, the information amount of both data segments increases. Therefore, if this technique is applied to packet communication via a mobile packet communication network on the premise of pay-as-you-go billing, in which the communication fee changes according to the traffic, the communication fee will increase. This is an unnecessary increase in the amount of communication in a favorable communication environment in which retransmission of data is rarely required. Needless to say, the increase in the communication fee is not what the user of the receiving device or the user of the transmitting device desires.

代わりに、当該技術を応用して、データセグメントに対して情報を付加するのではなく、通信時に使用されるTCPヘッダ内の予約ビットに情報を設定する方法も考えられる。しかし、このような方法を用いる場合、既存の通信システムでは対応できず、従って、送信装置及び受信装置に対して、当該方法を用いるための大幅な設計変更が必要となってしまう。   Instead, a method is also conceivable in which the technique is applied to set information in reserved bits in a TCP header used at the time of communication, instead of adding information to a data segment. However, when such a method is used, the existing communication system cannot cope with it, and therefore, a significant design change is required for the transmitting device and the receiving device in order to use the method.

また、非特許文献2の技術を、移動通信網を介する移動通信環境のように無線区間でのデータセグメントの遅延が非常に大きい通信環境に用いても、最適な判別結果を得ることはできない。   Further, even if the technique of Non-Patent Document 2 is used in a communication environment in which the delay of a data segment in a wireless section is extremely large, such as a mobile communication environment via a mobile communication network, an optimum determination result cannot be obtained.

本発明は、以上説明した事情に鑑みてなされたものであり、送信装置に受信される確認応答データセグメントがオリジナルデータセグメントに対するのものであるか又は再送データセグメントに対するものであるのかを適切に判別することができる技術を提供することを目的としている。この技術によれば、データセグメントの情報量を増加させることなく、且つ受信装置の設計変更を必要とせず、また送信装置に対しては軽微な設計変更を行えば済む。   The present invention has been made in view of the circumstances described above, and appropriately determines whether an acknowledgment data segment received by a transmission device is for an original data segment or a retransmission data segment. The aim is to provide technology that can do it. According to this technique, it is not necessary to change the design of the receiving device without increasing the information amount of the data segment, and it is sufficient to make a minor design change to the transmitting device.

上記課題を解決するため、本発明は、送信装置から受信装置に連続的に送信されるべき各データブロックにシーケンス情報を割り当てる割り当て過程と、複数のデータブロックに前記シーケンス情報を付加し、前記受信装置に対して順次送信する送信過程と、前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送する再送過程と、前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置が未だ受信していない先頭のデータブロックのシーケンス情報を含む確認応答信号を、前記受信装置から受信する受信過程と、前記再送が行われたデータブロックのシーケンス情報および前記確認応答信号に含まれる前記シーケンス情報に基づいて、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であるか否かを判断する判断過程とを有し、前記送信過程は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合に、前記受信装置に対して送信された複数のデータブロックに後続するデータブロックを送信することを特徴とする通信網における伝送制御方法を提供する。前記データブロックの一例としては、TCPにおけるデータセグメントがある。また、好ましくは、前記受信装置は、移動通信網を介してパケット通信を行う移動通信端末である。   In order to solve the above problem, the present invention provides an allocation step of allocating sequence information to each data block to be continuously transmitted from a transmitting device to a receiving device, and adding the sequence information to a plurality of data blocks, A transmitting step of sequentially transmitting to the apparatus, a retransmitting step of retransmitting a data block which has not received an acknowledgment signal from the receiving apparatus among a plurality of data blocks transmitted to the receiving apparatus; A receiving step of receiving, from the receiving apparatus, an acknowledgment signal including sequence information of a first data block not yet received by the receiving apparatus, among the plurality of data blocks transmitted to the apparatus; and Based on the sequence information of the performed data block and the sequence information included in the acknowledgment signal, Determining whether an acknowledgment signal is an acknowledgment for one of the plurality of transmitted data blocks, wherein the transmitting step comprises: transmitting the acknowledgment signal to the plurality of transmitted data blocks. And transmitting a data block subsequent to the plurality of data blocks transmitted to the receiving device when the acknowledgment is determined to be one of the following: An example of the data block is a data segment in TCP. Also, preferably, the receiving device is a mobile communication terminal that performs packet communication via a mobile communication network.

好ましい態様において、前記再送されたデータブロックの直後に後続するデータブロックのシーケンス情報を記憶手段に記憶する過程を更に有し、前記判断過程において、前記記憶手段に記憶された前記シーケンス情報および前記確認応答信号に含まれる前記シーケンス情報を比較することにより前記判断を行うようにしてもよい。この場合、前記確認応答信号に含まれる前記シーケンス情報により特定されるデータブロックが、前記記憶手段に記憶されている前記シーケンス情報によって特定されるデータブロックに後続するデータブロックの1である場合に、前記確認応答信号が前記送信済みである複数のデータブロックの1に対する確認応答であると判断する。   In a preferred aspect, the method further comprises a step of storing sequence information of a data block immediately following the retransmitted data block in a storage unit, and in the determining step, the sequence information and the confirmation stored in the storage unit are stored. The determination may be made by comparing the sequence information included in the response signal. In this case, when the data block specified by the sequence information included in the acknowledgment signal is one of the data blocks subsequent to the data block specified by the sequence information stored in the storage unit, It is determined that the acknowledgment signal is an acknowledgment for one of the transmitted data blocks.

上記伝送制御方法の別の好ましい態様において、前記伝送制御方法は、前記送信過程において送信される前記複数のデータブロックの数は、確認応答信号を受信することなく送信できるデータブロックの数であるウィンドウサイズに従って定められ、前記再送過程において、予測時間内に確認応答が受信されていないデータブロックの再送を行う場合には、前記ウィンドウサイズを最小値に変更し、変更後のウィンドウサイズにより定められる数のデータブロックを再送し、前記送信過程は、前記判断過程において前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合には、前記再送過程において前記ウィンドウサイズが最小値に変更される前のウィンドウサイズと等しいかまたはより大きくなるように前記ウィンドウサイズを増加させ、増加後のウィンドウサイズにより定められる数の前記後続するデータブロックを送信する。   In another preferred aspect of the transmission control method, in the transmission control method, the number of the plurality of data blocks transmitted in the transmission process is a number of data blocks that can be transmitted without receiving an acknowledgment signal. When retransmitting a data block for which an acknowledgment has not been received within the estimated time in the retransmission process, the window size is changed to a minimum value, and the number determined by the changed window size is determined. Retransmitting the data block, and in the transmitting step, when it is determined in the determining step that the acknowledgment signal is an acknowledgment for one of the plurality of transmitted data blocks, the window is retransmitted in the retransmitting step. Window size equal to or larger than the window size before the size was changed to the minimum Increasing the window size so as to transmit the subsequent data block number defined by the window size after increase.

また、本発明は、受信装置に対して連続的に送信されるべき各データブロックにシーケンス情報を割り当てる割り当て手段と、複数のデータブロックに前記シーケンス情報を付加し、前記受信装置に対して順次送信する送信手段と、前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送する再送手段と、前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置が未だ受信していない先頭のデータブロックのシーケンス情報を含む確認応答信号を、前記受信装置から受信する受信手段と、前記再送が行われたデータブロックのシーケンス情報および前記確認応答信号に含まれる前記シーケンス情報に基づいて、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であるか否かを判断する判断手段とを有する通信装置を提供する。前記送信手段は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合に、前記受信装置に対して送信された複数のデータブロックに後続するデータブロックを送信することを特徴としている。   Also, the present invention provides an assigning means for allocating sequence information to each data block to be continuously transmitted to a receiving device, and adding the sequence information to a plurality of data blocks, and sequentially transmitting the sequence information to the receiving device. Transmitting means for retransmitting a data block which has not received an acknowledgment signal from the receiving apparatus among a plurality of data blocks transmitted to the receiving apparatus; Receiving means for receiving, from the receiving device, an acknowledgment signal including sequence information of a first data block that the receiving device has not yet received, among the plurality of data blocks, The acknowledgment signal is transmitted based on the sequence information and the sequence information included in the acknowledgment signal. A communications device and a determining means for determining whether the acknowledgment for one of the plurality of data blocks. The transmitting means, when it is determined that the acknowledgment signal is an acknowledgment for one of the plurality of transmitted data blocks, a data block subsequent to the plurality of data blocks transmitted to the receiving device. Is transmitted.

好ましい態様において、前記再送されたデータブロックの直後に後続するデータブロックのシーケンス情報を記憶する記憶手段を有し、前記判断手段は、前記記憶手段に記憶された前記シーケンス情報および前記確認応答信号に含まれる前記シーケンス情報を比較することにより前記判断を行う。この場合、前記判断手段は、前記確認応答信号に含まれる前記シーケンス情報により特定されるデータブロックが、前記記憶手段に記憶されている前記シーケンス情報によって特定されるデータブロックに後続するデータブロックの1である場合に、前記確認応答信号が前記送信済みである複数のデータブロックの1に対する確認応答であると判断する。   In a preferred aspect, the information processing apparatus further includes a storage unit that stores sequence information of a data block that immediately follows the retransmitted data block, wherein the determination unit stores the sequence information and the acknowledgment signal stored in the storage unit. The determination is made by comparing the included sequence information. In this case, the determination unit determines that the data block specified by the sequence information included in the acknowledgment signal is one of data blocks subsequent to the data block specified by the sequence information stored in the storage unit. In the case of, it is determined that the acknowledgment signal is an acknowledgment for one of the transmitted data blocks.

別の好ましい態様において、前記通信装置は、前記送信手段により送信される前記複数のデータブロックの数は、確認応答信号を受信することなく送信できるデータブロックの数であるウィンドウサイズに従って定められ、前記再送手段は、予測時間内に確認応答が受信されていないデータブロックの再送を行う場合には、前記ウィンドウサイズを最小値に変更し、変更後のウィンドウサイズにより定められる数のデータブロックを再送し、前記送信手段は、前記判断手段により前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合には、前記再送手段において前記ウィンドウサイズが最小値に変更される前のウィンドウサイズと等しいかまたはより大きくなるように前記ウィンドウサイズを増加させ、増加されたウィンドウサイズにより定められる数の前記後続するデータブロックを送信するようにしてもよい。   In another preferred aspect, the communication device is configured such that the number of the plurality of data blocks transmitted by the transmitting unit is determined according to a window size that is the number of data blocks that can be transmitted without receiving an acknowledgment signal, The retransmitting means, when retransmitting a data block for which an acknowledgment has not been received within the predicted time, changes the window size to a minimum value, and retransmits a number of data blocks determined by the changed window size. The transmitting unit changes the window size to the minimum value in the retransmitting unit when the determining unit determines that the acknowledgment signal is an acknowledgment for one of the transmitted data blocks. The window size to be equal to or larger than the window size before Is increased, it may be transmitted to the subsequent data block number defined by increased window size.

さらに、本発明は、上記通信装置が有する手段を、少なくとも2の装置に具備させることにより上記様々な態様における伝送制御方法を実現可能な通信システムを提供する。
加えて、上述した様々な態様における伝送制御方法をコンピュータに実行させるためのプログラムを提供する。このプログラムは、当該プログラムが記憶された磁気テープ、磁気ディスク、フロッピー(登録商標)ディスク、光記録媒体、光磁気記録媒体、DVD(Digital Video Disk)、RAM等、その他記録媒体に記録され得る。
Further, the present invention provides a communication system capable of realizing the transmission control methods in the above various aspects by providing at least two devices with the means of the communication device.
In addition, a program is provided for causing a computer to execute the transmission control methods according to the various aspects described above. This program can be recorded on other recording media such as a magnetic tape, a magnetic disk, a floppy (registered trademark) disk, an optical recording medium, a magneto-optical recording medium, a DVD (Digital Video Disk), a RAM, and the like in which the program is stored.

本発明によれば、送信装置に受信される確認応答がオリジナルデータセグメントに対するのものであるか又は再送データセグメントに対するものであるのかを適切に判別することができ、この結果、データセグメントの不必要な送信を防ぐことが可能となる。この技術によれば、データセグメントの情報量を増加させることなく、且つ受信装置に対する設計変更を一切必要とせず、また送信装置に対しては軽微な設計変更で済む。   According to the present invention, it is possible to appropriately determine whether the acknowledgment received by the transmitting device is for the original data segment or for the retransmitted data segment. Transmission can be prevented. According to this technique, the information amount of the data segment is not increased, no design change is required for the receiving device, and a small design change is required for the transmitting device.

以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、実施の形態を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In all the drawings for describing the embodiments, components having the same function are denoted by the same reference numerals, and repeated description thereof will be omitted.

[第1実施形態]
(1.構成)
<通信システム1の構成>
図1は、この発明の第1実施形態に係る通信システム1の構成を例示する図である。
通信端末40は、クライアント装置50と接続され、クライアント装置50と通信を行う。移動パケット通信網30は、当該移動パケット通信網30に収容される通信端末40に対して、パケット通信サービスを提供する。サーバ装置10は、インターネット20、移動パケット通信網30、通信端末40を介してクライアント装置50とパケット通信を行う。なお、本実施形態においては、TCP(Transmission Control Protocol)に従って、パケット通信を行うことによりデータセグメントを送信するものとする。
[First Embodiment]
(1. Configuration)
<Configuration of Communication System 1>
FIG. 1 is a diagram illustrating a configuration of a communication system 1 according to the first embodiment of the present invention.
The communication terminal 40 is connected to the client device 50 and communicates with the client device 50. The mobile packet communication network 30 provides a packet communication service to the communication terminals 40 accommodated in the mobile packet communication network 30. The server device 10 performs packet communication with the client device 50 via the Internet 20, the mobile packet communication network 30, and the communication terminal 40. In the present embodiment, it is assumed that the data segment is transmitted by performing packet communication according to TCP (Transmission Control Protocol).

<サーバ装置10の構成>
次に、サーバ装置10の構成について説明する。サーバ装置10の構成は一般的なコンピュータと同様であるから、本発明に係る構成のみについて図2を参照しながら説明する。
CPU100は、記憶部105に記憶されるプログラムを実行することにより、サーバ装置10の装置各部の制御を行う。また、CPU100は、タイマ100aを備える。タイマ100aは、CPU100によりセットされた一定時間が経過すると、トリガ信号を出力する。
<Configuration of server device 10>
Next, the configuration of the server device 10 will be described. Since the configuration of the server device 10 is the same as that of a general computer, only the configuration according to the present invention will be described with reference to FIG.
The CPU 100 controls each unit of the server device 10 by executing a program stored in the storage unit 105. Further, the CPU 100 includes a timer 100a. The timer 100a outputs a trigger signal when a certain time set by the CPU 100 elapses.

記憶部105は、RAM(Random Access Memory)102と、ROM(Read Only Memory)103と、HD(Hard Disk)104とから構成される。
ROM103には、CPU100にデータセグメントの送信制御処理を行わせるためのプログラムが記憶されている。このデータセグメント送信制御処理において、CPU100は、クライアント装置50へデータを送信する場合、当該データをセグメント単位に分割し、分割したデータセグメントの各々にヘッダを付加し、これらを順次クライアント装置50へ送信する。
なお、本実施形態においては、CPU100は、データセグメントをクライアント装置50へ送信する場合、HD104に記憶したパラメータ変数(第2実施形態に詳述する)に基づいて上述したスライディングウィンドウ方式による制御を行うものとする。
The storage unit 105 includes a random access memory (RAM) 102, a read only memory (ROM) 103, and a hard disk (HD) 104.
The ROM 103 stores a program for causing the CPU 100 to perform a data segment transmission control process. In the data segment transmission control process, when transmitting data to the client device 50, the CPU 100 divides the data into segment units, adds a header to each of the divided data segments, and sequentially transmits these to the client device 50. I do.
In the present embodiment, when transmitting the data segment to the client device 50, the CPU 100 performs the above-described sliding window control based on the parameter variables (described in detail in the second embodiment) stored in the HD 104. Shall be.

データセグメントに付加されるヘッダのデータ構造は、図3に示されるような構造になっている。CPU100は、同図におけるシーケンス番号に当該データセグメントがデータのどの位置にあたるのかを相対的に示す情報をセットし、その他必要な情報を各データエリアにセットして、これを当該データセグメントに付加する。   The data structure of the header added to the data segment has a structure as shown in FIG. The CPU 100 sets information indicating relative positions of the data segment in the sequence number in the figure, sets other necessary information in each data area, and adds it to the data segment. .

CPU100は、クライアント装置50へデータセグメントを送信した後、当該データセグメントがクライアント装置50に受信されたことを示す確認応答の受信を待機する。なお、確認応答のヘッダのデータ構造も、図3に示されるような構造になっている。同図における確認応答番号には、クライアント装置50が次に受信を期待するデータセグメントのシーケンス番号がクライアント装置50によりセットされる。   After transmitting the data segment to the client device 50, the CPU 100 waits for reception of an acknowledgment indicating that the data segment has been received by the client device 50. The data structure of the header of the acknowledgment also has a structure as shown in FIG. The sequence number of the data segment that the client device 50 expects to receive next is set by the client device 50 as the acknowledgment number in FIG.

CPU100は、このような確認応答の受信を待機するため、タイマ100aに一定時間(以下、タイムアウト値という)をセットし、タイマ100aにその後の経過時間を計測させる。この計測の間、確認応答を受信する前に、タイマ100aからタイムアウト値が経過したことを示すトリガ信号が出力されると、CPU100は、当該データセグメントがクライアント装置50に受信されなかったと判定する。そして、タイマ100aの値をリセットするとともに、当該データセグメントを再送する。このデータセグメント再送後に確認応答を受信すると、当該確認応答がオリジナルデータセグメントに対するものであるのか又は再送データセグメントに対するものであるのかの判定処理を以下のように行う。   The CPU 100 sets a certain period of time (hereinafter referred to as a timeout value) in the timer 100a and causes the timer 100a to measure the elapsed time thereafter in order to wait for the reception of such an acknowledgment. If a trigger signal indicating that the timeout value has elapsed is output from the timer 100a before receiving the confirmation response during this measurement, the CPU 100 determines that the data segment has not been received by the client device 50. Then, the value of the timer 100a is reset, and the data segment is retransmitted. When an acknowledgment is received after retransmission of this data segment, a process of determining whether the acknowledgment is for the original data segment or for the retransmitted data segment is performed as follows.

この判定処理において、CPU100は、再送したデータセグメントに対する確認応答が有すると予測される確認応答番号(以下、予測確認応答番号という)の値と、受信した確認応答の確認応答番号(以下、比較対象確認応答番号という)の値とを比較する。ここで、再送データセグメントに対する予測確認応答番号の値とは、当該再送データセグメントに後続するデータセグメントのシーケンス番号の値と同じである。本実施形態では、データセグメントを再送した際に、その後続データセグメントのシーケンス番号の値を予測確認応答番号としてRAM102に記憶しておき、確認応答を受信することにより判定処理を実行する際には記憶しておいた予測確認応答番号を読み出して比較のために用いるようになっている。尚、後述の第2実施形態において説明するが、サーバ装置10は複数種類のパラメータ変数を記憶し、輻輳制御に用いている。この変数のうち、次に送信するデータセグメントのシーケンス番号を記憶する変数snd_nxtの値は、再送されたデータセグメントに後続する値となっているはずである。従って、予測確認応答番号をRAM102に記憶しておくのではなく、snd_nxtの値を用いて上記判定を行ってもよい。   In this determination processing, the CPU 100 determines the value of an acknowledgment number (hereinafter referred to as a predicted acknowledgment number) predicted to have an acknowledgment for the retransmitted data segment and the acknowledgment number of the received acknowledgment (hereinafter referred to as a comparison target). Acknowledgment number). Here, the value of the predicted acknowledgment number for the retransmission data segment is the same as the value of the sequence number of the data segment subsequent to the retransmission data segment. In the present embodiment, when the data segment is retransmitted, the value of the sequence number of the subsequent data segment is stored in the RAM 102 as the predicted acknowledgment number, and when the acknowledgment is received to execute the determination process, The stored predicted acknowledgment number is read and used for comparison. As will be described in a second embodiment described later, the server device 10 stores a plurality of types of parameter variables and uses them for congestion control. Among these variables, the value of the variable snd_nxt that stores the sequence number of the data segment to be transmitted next should be the value following the retransmitted data segment. Therefore, instead of storing the predicted acknowledgment number in the RAM 102, the above determination may be made using the value of snd_nxt.

そして、比較対象確認応答番号が予測確認応答番号よりも大きい場合には、当該確認応答がオリジナルデータセグメントに対応するものであると判定する。即ち、オリジナルデータセグメントはクライアント装置50に受信されたと判定し、続いて、後続のオリジナルデータセグメントを送信する。
また、比較対象確認応答番号の値が予測確認応答番号の値と同じである場合には、当該確認応答がオリジナルデータセグメントに対応するものであるか又は再送データセグメントに対応するものであるか判定できない。そのため、CPU100は、当該確認応答は再送データセグメントに対応するものだと推定する。即ち、オリジナルデータセグメントはクライアント装置50に受信されなかったと判定し、続いて、当該再送データセグメントに後続する再送データセグメントが有るか否かを判定する。この判定結果が肯定的で有れば、後続の再送データセグメントを送信し、この判定結果が否定的で有れば、後続のオリジナルデータセグメントを送信する。
以上のようにして、CPU100は判定処理を行う。
When the comparison target acknowledgment number is larger than the predicted acknowledgment number, it is determined that the acknowledgment corresponds to the original data segment. That is, it is determined that the original data segment has been received by the client device 50, and subsequently, the subsequent original data segment is transmitted.
If the value of the acknowledgment number to be compared is the same as the value of the predicted acknowledgment number, it is determined whether the acknowledgment corresponds to the original data segment or the retransmission data segment. Can not. Therefore, CPU 100 estimates that the acknowledgment corresponds to the retransmission data segment. That is, it is determined that the original data segment has not been received by the client device 50, and then it is determined whether or not there is a retransmission data segment following the retransmission data segment. If the determination result is affirmative, the subsequent retransmission data segment is transmitted. If the determination result is negative, the subsequent original data segment is transmitted.
As described above, the CPU 100 performs the determination processing.

<クライアント装置50の構成>
クライアント装置50は、一般的なコンピュータと同様であるから、本実施形態に係る機能についてのみ説明する。
クライアント装置50は、サーバ装置10からデータセグメントを受信すると、当該データセグメントを受信したことを示す確認応答をサーバ装置10へ送信する。具体的には、確認応答に含まれる確認応答番号に、当該データセグメントに後続するデータ位置を示すシーケンス番号をセットして、これをサーバ装置10へ送信する。
しかし、クライアント装置50がサーバ装置10とパケット通信を行っている際、例えば通信端末40と移動パケット通信網30との間の無線通信環境が悪化したとする。この場合、クライアント装置50はサーバ装置10から送信されたデータセグメントを遅延して順次受信することになる。このとき、例えば、2個のデータセグメントを受信する間隔が所定の時間よりも短い場合には、2つめのデータセグメントに対する確認応答により、2個のデータセグメントを受信したことをサーバ装置10に通知する。具体的には、確認応答の確認応答番号に、2つ目に受信したデータセグメントに後続するデータのシーケンス番号をセットし、これをサーバ装置10へ送信する。
<Configuration of Client Device 50>
Since the client device 50 is the same as a general computer, only the functions according to the present embodiment will be described.
Upon receiving the data segment from the server device 10, the client device 50 transmits an acknowledgment indicating that the data segment has been received to the server device 10. Specifically, a sequence number indicating a data position following the data segment is set to the acknowledgment number included in the acknowledgment, and the sequence number is transmitted to the server device 10.
However, it is assumed that when the client device 50 is performing packet communication with the server device 10, for example, the wireless communication environment between the communication terminal 40 and the mobile packet communication network 30 has deteriorated. In this case, the client device 50 sequentially receives the data segments transmitted from the server device 10 with a delay. At this time, for example, if the interval for receiving the two data segments is shorter than a predetermined time, the server device 10 is notified of the reception of the two data segments by an acknowledgment for the second data segment. I do. Specifically, the sequence number of the data following the data segment received secondly is set to the acknowledgment number of the acknowledgment, and this is transmitted to the server device 10.

(2.動作)
次に本実施形態の動作について説明する。
図4は、サーバ装置10とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。また、図5は、サーバ装置10の本実施形態に係るデータセグメントの送信動作及び受信動作を示すフローチャートである。なお、本実施形態の動作においては、スライディングウィンドウ方式を用いて、データセグメントを送信するものとする。本実施形態において、通信開始時点でのウィンドウサイズを「3」とし、クライアント装置50が受信可能なデータセグメントの容量は送信装置が設定するウィンドウのサイズに対して十分に大きいと仮定する。また、説明の簡易のため、ウィンドウサイズは「3」のまま固定とし、輻輳制御によるウィンドウの増加は行わない。また、再送タイムアウトが発生した場合には、再送タイムアウトの発生を検出する直前のウィンドウサイズをRAM102に記憶する。
(2. Operation)
Next, the operation of the present embodiment will be described.
FIG. 4 is a sequence chart illustrating an example of a case where packet communication is performed between the server device 10 and the client device 50. FIG. 5 is a flowchart illustrating a data segment transmission operation and a reception operation of the server device 10 according to the present embodiment. In the operation of the present embodiment, it is assumed that the data segment is transmitted using the sliding window method. In the present embodiment, it is assumed that the window size at the start of communication is “3”, and the capacity of the data segment that can be received by the client device 50 is sufficiently larger than the size of the window set by the transmitting device. Further, for simplicity of explanation, the window size is fixed at “3” and the window is not increased by the congestion control. If a retransmission timeout occurs, the window size immediately before detecting the occurrence of the retransmission timeout is stored in the RAM 102.

まず、図4において、サーバ装置10から、シーケンス番号0、1000、2000をそれぞれ有するデータセグメント(オリジナルデータセグメントS1、S2、S3)がクライアント装置50へ送信される。
しかし、図示の例では、通信端末40と移動パケット通信網30との間の無線通信環境が悪化し、当該オリジナルデータセグメントS1、S2、S3の送信が一時的に中断されてしまう。その後、無線通信環境が良好となり、通信が再開されると、オリジナルデータセグメントS1、S2、S3はクライアント装置50に送信される。
First, in FIG. 4, data segments having the sequence numbers 0, 1000, and 2000 (original data segments S1, S2, and S3) are transmitted from the server device 10 to the client device 50.
However, in the illustrated example, the wireless communication environment between the communication terminal 40 and the mobile packet communication network 30 deteriorates, and the transmission of the original data segments S1, S2, and S3 is temporarily interrupted. Thereafter, when the wireless communication environment is improved and the communication is resumed, the original data segments S1, S2, S3 are transmitted to the client device 50.

一方、クライアント装置50では、オリジナルデータセグメントS1、S2、S3が順次遅延して受信される。ここでは、オリジナルデータセグメントS1及びS2の受信間隔が所定の時間より短かったとし、確認応答番号2000を有する確認応答R2が、オリジナルデータセグメントS1に対応する確認応答とオリジナルデータセグメントS2に対応する確認応答としてサーバ装置10へ送信される。   On the other hand, in the client device 50, the original data segments S1, S2, and S3 are sequentially received with a delay. Here, it is assumed that the reception interval of the original data segments S1 and S2 is shorter than a predetermined time, and that the acknowledgment R2 having the acknowledgment number 2000 includes the acknowledgment corresponding to the original data segment S1 and the acknowledgment corresponding to the original data segment S2. It is transmitted to the server device 10 as a response.

次に、以上説明したところまでのサーバ装置10の動作について、図5を参照しながら説明する。
サーバ装置10のCPU100は、ステップS300において、オリジナルデータセグメントS1、S2、S3の送信を行う。次いで、オリジナルデータセグメントS1に対してクライアント装置50から送信される確認応答の受信を待機する。このため、CPU100は、タイマ100aにタイムアウト値をセットし、タイマ100aにその後の経過時間の計測をさせる(ステップS301)。
Next, the operation of the server device 10 up to the point described above will be described with reference to FIG.
In step S300, the CPU 100 of the server device 10 transmits the original data segments S1, S2, and S3. Next, it waits for an acknowledgment transmitted from the client device 50 to the original data segment S1. For this reason, the CPU 100 sets the timeout value in the timer 100a and causes the timer 100a to measure the elapsed time thereafter (step S301).

そして、CPU100は、何らかの確認応答を受信したか否かを判断し(ステップS302)、この判断結果が「NO」である場合にはタイマ100aのタイムアウトが発生したか否かを判断する(ステップS303)。そして、ステップS303の判断結果が「NO」である場合には、ステップS302に戻る。以後、CPU100は、タイマ100aにタイムアウトが発生するまでの間、確認応答が受信されない限り、ステップS302およびS303の判断を繰り返す。   Then, the CPU 100 determines whether or not any confirmation response has been received (step S302), and if the determination result is “NO”, determines whether or not the timeout of the timer 100a has occurred (step S303). ). If the result of the determination in step S303 is "NO", the flow returns to step S302. Thereafter, the CPU 100 repeats the determination of steps S302 and S303 until a timeout is generated in the timer 100a, unless an acknowledgment is received.

ここで、データセグメントS1〜S3のクライアント装置50への到達が遅れ、クライアント装置50から送信された確認応答R2を受信する前に、タイムアウト値が経過したとする。
この場合、確認応答を受信することなく、タイマ100aによって測定される経過時間がタイムアウト値に達し、トリガ信号が出力される(ステップS302;NO、ステップS303;YES)。この場合、CPU100は、タイマ100aの値をリセットするとともに、処理をステップS304へ進める。
Here, it is assumed that the arrival of the data segments S1 to S3 to the client device 50 is delayed, and the timeout value has elapsed before the acknowledgment R2 transmitted from the client device 50 is received.
In this case, without receiving an acknowledgment, the elapsed time measured by the timer 100a reaches the timeout value, and a trigger signal is output (step S302; NO, step S303; YES). In this case, CPU 100 resets the value of timer 100a and advances the process to step S304.

ステップS304において、CPU100は、オリジナルデータセグメントS1がクライアント装置50に受信されなかったと判定し、シーケンス番号0を有するデータセグメント(図4における再送データセグメントS′1)をクライアント装置50へ再送するとともに、タイマ100aにタイムアウト値をセットし、タイマ100aに経過時間の計測をさせる。この時、タイムアウト発生により、ウィンドウサイズは最小値に縮小されるので、1データセグメントのみが再送される。   In step S304, the CPU 100 determines that the original data segment S1 has not been received by the client device 50, and retransmits the data segment having the sequence number 0 (retransmission data segment S'1 in FIG. 4) to the client device 50. A timeout value is set in the timer 100a, and the timer 100a measures the elapsed time. At this time, the window size is reduced to the minimum value due to the occurrence of the timeout, so that only one data segment is retransmitted.

そして、CPU100は、何らかの確認応答を受信したか否かを判断し(ステップS305)、この判断結果が「NO」である場合にはタイマ100aのタイムアウトが発生したか否かを判断する(ステップS306)。そして、ステップS306の判断結果が「NO」である場合には、ステップS305に戻る。以後、CPU100は、タイマ100aにタイムアウトが発生するまでの間、確認応答が受信されない限り、ステップS305およびS306の判断を繰り返す。
その後、タイムアウト値が経過する前に、即ちタイマ100aからトリガ信号が出力される前に、上述の確認応答R2を受信したとする。この場合、ステップS305に進んだとき、その判断結果が「YES」となって、処理はステップS307に移行する。
Then, the CPU 100 determines whether or not any confirmation response has been received (step S305), and when the determination result is “NO”, determines whether or not the timeout of the timer 100a has occurred (step S306). ). If the result of the determination in step S306 is "NO", the flow returns to step S305. Thereafter, the CPU 100 repeats the determinations in steps S305 and S306 until an acknowledgment is received until the timer 100a times out.
Thereafter, it is assumed that the above-described acknowledgment R2 is received before the timeout value elapses, that is, before the trigger signal is output from the timer 100a. In this case, when the process proceeds to step S305, the determination result is “YES”, and the process proceeds to step S307.

ステップS307において、CPU100は、タイマ100aの値をリセットする。そして、確認応答R2の有する確認応答番号(比較対象確認応答番号)の値(2000)と、RAM102に記憶しておいた、ステップS304で再送した再送データセグメントに対する確認応答の予測確認応答番号の値(1000)とを比較する。この例では、比較対象確認応答番号の値が予測確認応答番号の値よりも大きい。このため、CPU100は、当該確認応答R2はオリジナルデータセグメントS1及びS2に対応するものであると判定する。即ち、オリジナルデータセグメントS1、S2はクライアント装置50に受信され、パケットロスは発生していなかったと判定する。この結果、ウィンドウサイズが、RAM102の記憶情報に基づいてタイムアウト発生前の「3」に復元するとともに、ウィンドウがオリジナルデータセグメントS1、S2の分だけスライドし、送信済みのデータセグメントS3に後続する2個のデータセグメントの送信が可能になる。   In step S307, the CPU 100 resets the value of the timer 100a. Then, the value (2000) of the acknowledgment number (comparison target acknowledgment number) included in the acknowledgment R2 and the value of the predicted acknowledgment number of the acknowledgment for the retransmission data segment retransmitted in step S304 and stored in the RAM 102 (1000). In this example, the value of the comparison target acknowledgment number is larger than the value of the predicted acknowledgment number. Therefore, the CPU 100 determines that the confirmation response R2 corresponds to the original data segments S1 and S2. That is, the original data segments S1 and S2 are received by the client device 50, and it is determined that no packet loss has occurred. As a result, the window size is restored to “3” before the occurrence of the timeout based on the storage information in the RAM 102, and the window slides by the amount of the original data segments S1 and S2 to follow the data segment S3 that has been transmitted. The transmission of data segments becomes possible.

そこで、ステップS309において、サーバ装置10のCPU100は、オリジナルデータセグメントS3に後続するオリジナルデータセグメントS4およびS5を送信する。
図4においては、ステップS309に対応する処理として、サーバ装置10からクライアント装置50へオリジナルデータセグメントS4およびS5が送信される。そして、処理は、ステップS301に戻り、タイマ100aによる経過時間の測定が開始される。
Therefore, in step S309, the CPU 100 of the server device 10 transmits the original data segments S4 and S5 following the original data segment S3.
In FIG. 4, as processing corresponding to step S309, the original data segments S4 and S5 are transmitted from the server device 10 to the client device 50. Then, the process returns to step S301, and measurement of the elapsed time by the timer 100a is started.

その後、CPU100は、タイマ100aにタイムアウトが発生するまでの間、確認応答が受信されない限り、上述したステップS302およびS303の判断を繰り返す。
一方、サーバ装置10で上述の処理が行われている間、クライアント装置50にオリジナルデータセグメントS3が受信され、当該オリジナルデータセグメントS3に対応する、確認応答番号3000を有する確認応答R3が、サーバ装置10へ送信される。
Thereafter, the CPU 100 repeats the determinations in steps S302 and S303 described above until an acknowledgment is received until the timer 100a times out.
On the other hand, while the above-described processing is being performed in the server device 10, the original data segment S3 is received by the client device 50, and an acknowledgment R3 having an acknowledgment number 3000 corresponding to the original data segment S3 is sent to the server device 10. Sent to 10.

この確認応答番号3000を有する確認応答R3がサーバ装置10に到達すると、図5において、サーバ装置10のCPU100によるステップS302の判断結果は「YES」となる。この結果、ウィンドウがさらに1つ分スライドされ、送信済みデータセグメントの最後尾であるオリジナルデータセグメントS5に後続するデータセグメントが1個送信可能となる。そこで、ステップS300において、後続のシーケンス番号5000を有するオリジナルデータセグメントS6を送信する。
図4においては、ステップS302に対応する処理として、サーバ装置10からオリジナルデータセグメントS6がクライアント装置50へ送信される。
以上のようにして、サーバ装置10からクライアント装置50へデータセグメントが送信される。
When the acknowledgment R3 having the acknowledgment number 3000 reaches the server device 10, the determination result of the CPU 100 of the server device 10 in step S302 becomes “YES” in FIG. As a result, the window is further slid by one, and one data segment following the original data segment S5, which is the last of the transmitted data segments, can be transmitted. Therefore, in step S300, the original data segment S6 having the subsequent sequence number 5000 is transmitted.
In FIG. 4, as a process corresponding to step S302, an original data segment S6 is transmitted from the server device 10 to the client device 50.
As described above, the data segment is transmitted from the server device 10 to the client device 50.

[第2実施形態]
次に、サーバ装置10とクライアント装置50との間でパケット通信を行う場合の他の例について説明する。以下、上記第1実施形態と共通する部分については、その説明を省略したり、同一の符号を使用して説明したりする。
(1.構成)
<サーバ装置10の構成>
サーバ装置10の本実施形態に係る構成のみについて説明する。
サーバ装置10のROM103には、CPU100にデータセグメント送信制御処理を行わせるためのプログラムが記憶されている。本実施形態に係る送信制御処理とは、以下の処理のことであるが、上述の第1実施形態の送信制御処理と共通する部分についての説明は省略する。
[Second embodiment]
Next, another example in which packet communication is performed between the server device 10 and the client device 50 will be described. Hereinafter, the description of the same parts as those in the first embodiment will be omitted or the same reference numerals will be used.
(1. Configuration)
<Configuration of server device 10>
Only the configuration of the server device 10 according to the present embodiment will be described.
The ROM 103 of the server device 10 stores a program for causing the CPU 100 to perform a data segment transmission control process. The transmission control processing according to the present embodiment is the following processing, but the description of the parts common to the transmission control processing of the above-described first embodiment will be omitted.

本実施形態においては、CPU100は、データセグメントをクライアント装置50へ送信する場合、第1実施形態におけるスライディングウィンドウ方式による制御の他に、輻輳制御を行うことによりデータセグメントの通信速度を制御する。簡単にいうと、CPU100は、通信の状態に応じて、確認応答の受信を待たずに一度に送信することができるデータセグメント数、つまりウィンドウサイズを増減させる。このウィンドウサイズの変更は、送信済みデータセグメントに対する確認応答を受信する度に行われる。なお、通信状態に応じて、輻輳ウィンドウをどのように設定するかという情報も予めROM103に記憶されている。   In the present embodiment, when transmitting the data segment to the client device 50, the CPU 100 controls the communication speed of the data segment by performing congestion control in addition to the control by the sliding window method in the first embodiment. In brief, the CPU 100 increases or decreases the number of data segments that can be transmitted at one time without waiting for the receipt of an acknowledgment, that is, the window size, according to the state of communication. This change in the window size is performed each time an acknowledgment for the transmitted data segment is received. Information on how to set the congestion window according to the communication state is also stored in the ROM 103 in advance.

ここで、輻輳制御について詳述する。本実施形態によるサーバ装置10は、少なくともsnd_max、snd_nxt、snd_una、snd_wndおよびsnd_cwndの5種類のパラメータ変数をHD104に記憶しており、これら5種類のパラメータ変数に基づいて算出される数のデータセグメントをクライアント装置50へ送信することにより、輻輳制御を行っている。図6は、これら5種類のパラメータ変数の関係を説明するための図である。snd_maxには、次に送信するべきオリジナルデータセグメントのシーケンス番号のうちで最大のシーケンス番号(図6では、シーケンス番号5000)が格納されている。snd_nxtには、サーバ装置10が次に送信するデータセグメントのシーケンス番号(図6では、シーケンス番号5000)が格納されている。snd_unaには、送信済みデータセグメントのうち、確認応答を受信していないデータセグメントが有するシーケンス番号のうちで最小のシーケンス番号(図6では、シーケンス番号2000)が格納されている。   Here, the congestion control will be described in detail. The server device 10 according to the present embodiment stores at least five types of parameter variables snd_max, snd_nxt, snd_una, snd_wnd, and snd_cwnd in the HD 104, and stores the number of data segments calculated based on these five types of parameter variables. Congestion control is performed by transmitting to the client device 50. FIG. 6 is a diagram for explaining the relationship between these five types of parameter variables. In snd_max, the largest sequence number (sequence number 5000 in FIG. 6) among the sequence numbers of the original data segment to be transmitted next is stored. In snd_nxt, the sequence number (sequence number 5000 in FIG. 6) of the data segment to be transmitted next by the server device 10 is stored. In snd_una, the smallest sequence number (sequence number 2000 in FIG. 6) among the sequence numbers of the data segments that have not received the acknowledgment among the transmitted data segments is stored.

snd_cwndには、サーバ装置10が先に送信したデータセグメントに対して確認応答を受信することなく送信可能なセグメントの数を示す値が格納されている。1個のセグメントは、最大セグメントサイズ(Maximum Segment Size:以下、「MSS」という)の単位で表され、デフォルトでは1MSS=1,460バイトと定められている。snd_cwndには、例えば、初期値として3MSSが格納されており、サーバ装置10のCPU100はデータセグメントの送信が正常に行われている限り、スロースタートと呼ばれるアルゴリズムに従って、snd_cwndの値を増加させていく。具体的には、送信したデータセグメントに対する確認応答を受信する度に、snd_cwndが所定の閾値(例えば、65535バイト)に達するまで、その値を指数関数的に増加させていく。尚、snd_cwndは、サーバ装置10が設定する値であり、輻輳ウィンドウサイズと呼ばれる。   In snd_cwnd, a value indicating the number of segments that can be transmitted without receiving an acknowledgment for the data segment previously transmitted by the server device 10 is stored. One segment is expressed in a unit of a maximum segment size (hereinafter, referred to as “MSS”), and by default, 1 MSS = 1,460 bytes. For example, 3MSS is stored in snd_cwnd as an initial value, and the CPU 100 of the server device 10 increases the value of snd_cwnd according to an algorithm called slow start as long as the data segment is transmitted normally. . Specifically, every time an acknowledgment for the transmitted data segment is received, the value is exponentially increased until snd_cwnd reaches a predetermined threshold value (for example, 65535 bytes). Note that snd_cwnd is a value set by the server device 10 and is called a congestion window size.

一方、snd_wndには、クライアント装置50から通知された広告ウィンドウサイズが格納されている。この広告ウィンドウサイズとは、クライアント装置50の受信バッファの空き容量を示す値であり、バイト単位で表される。
サーバ装置10は、広告ウィンドウサイズ(snd_wnd)と輻輳ウィンドウサイズ(snd_cwnd)の値のより小さい方を送信ウィンドウサイズとして定め、これにより輻輳制御を実現する。このように、送信ウィンドウサイズは広告ウィンドウサイズを超えることがないため、クライアント装置50のバッファの空き容量を超える数のデータセグメントがクライアント装置50に対して送信されることはない。本実施形態では、広告ウィンドウサイズが、輻輳ウィンドウサイズに対して十分大きい値であると仮定し、説明の便宜上、送信ウィンドウサイズを「輻輳ウィンドウサイズ」と称する。
On the other hand, snd_wnd stores the advertisement window size notified from the client device 50. The advertisement window size is a value indicating the free space of the reception buffer of the client device 50, and is expressed in bytes.
The server device 10 determines the smaller of the values of the advertisement window size (snd_wnd) and the congestion window size (snd_cwnd) as the transmission window size, thereby implementing congestion control. As described above, since the transmission window size does not exceed the advertisement window size, the number of data segments exceeding the free space of the buffer of the client device 50 is not transmitted to the client device 50. In the present embodiment, it is assumed that the advertisement window size is a sufficiently large value with respect to the congestion window size, and for convenience of description, the transmission window size is referred to as “congestion window size”.

本実施形態において、サーバ装置10のCPU100は、再送タイムアウトの発生を検出すると、まず、snd_cwndの値を1MSSに設定するとともに、再送タイムアウトの発生を検出する直前のsnd_cwndの値をRAM102に格納する。また、CPU100は、snd_nxtをsnd_unaの値で書き換えて、snd_nxtで示されるデータセグメントから再送信を開始するとともに、再送信したデータセグメントに対して確認応答を受信する毎にsnd_cwndに格納されている値を上述したスロースタートにしたがって1MSSずつ増加させる。   In the present embodiment, when detecting the occurrence of the retransmission timeout, the CPU 100 of the server device 10 first sets the value of snd_cwnd to 1 MSS, and stores the value of snd_cwnd immediately before detecting the occurrence of the retransmission timeout in the RAM 102. Also, the CPU 100 rewrites snd_nxt with the value of snd_una, starts retransmission from the data segment indicated by snd_nxt, and sets the value stored in snd_cwnd every time an acknowledgment is received for the retransmitted data segment. Is increased by 1 MSS in accordance with the slow start described above.

本実施形態では、データセグメントの再送後確認応答を受信した場合には、第1実施形態で説明した判定処理(図5のステップS307、第2実施形態では図8のステップS307)を行う。その結果、受信した確認応答がオリジナルデータセグメントに対するものであると判定された場合には、輻輳ウィンドウサイズを、再送データセグメントを送信する前に設定されていた輻輳ウィンドウサイズに復元する。つまり、輻輳ウィンドウサイズの値を、再送タイムアウト検出時にRAM102に記憶しておいたsnd_cwndの値で更新する。また、この際、CPU100は、snd_nxtをsnd_maxのシーケンス番号で書き換えて、snd_nxtで示されるデータセグメントから送信を開始する。
本実施形態においては、CPU100は、以上のような輻輳制御を行うことにより、タイムアウト発生前のデータの流量を即座に回復できる。
In the present embodiment, when an acknowledgment after retransmission of the data segment is received, the determination processing described in the first embodiment (step S307 in FIG. 5, and in the second embodiment, step S307 in FIG. 8) is performed. As a result, if it is determined that the received acknowledgment is for the original data segment, the congestion window size is restored to the congestion window size set before transmitting the retransmission data segment. That is, the value of the congestion window size is updated with the value of snd_cwnd stored in the RAM 102 when the retransmission timeout is detected. At this time, the CPU 100 rewrites snd_nxt with the sequence number of snd_max and starts transmission from the data segment indicated by snd_nxt.
In the present embodiment, by performing the congestion control as described above, the CPU 100 can immediately recover the data flow rate before the occurrence of the timeout.

(2.動作)
図7は、サーバ装置10とクライアント装置50との間でパケット通信を行う場合の他の例を示すシーケンスチャートである。図8は、サーバ装置10の本実施形態に係るセグメント送信動作及び受信動作を示すフローチャートである。また、図9(a)から図9(c)は、輻輳ウィンドウサイズの遷移例を説明するための概念図である。なお、上述の第1実施形態と共通するステップについては同一の符号を使用し、その詳細な説明を省略する。
(2. Operation)
FIG. 7 is a sequence chart showing another example of the case where packet communication is performed between the server device 10 and the client device 50. FIG. 8 is a flowchart illustrating the segment transmission operation and the reception operation of the server device 10 according to the present embodiment. FIGS. 9A to 9C are conceptual diagrams for explaining an example of transition of the congestion window size. The same steps as those in the first embodiment are denoted by the same reference numerals, and detailed description thereof will be omitted.

まず、図7において、サーバ装置10から、シーケンス番号0、1000、2000、3000,4000を有するそれぞれのデータセグメント(オリジナルデータセグメントS11、S12、S13、S14、S15)がクライアント装置50へ送信される。この時点での輻輳ウィンドウサイズsnd_cwndは、5MSSである。ここで、図9(a)に示すように、確認応答未受信のデータセグメントの最小シーケンス番号0(S11)がsnd_unaの値として記憶される。また、次に送信されるオリジナルデータセグメントのシーケンス番号5000がsnd_maxに記憶され、次に送信されるべきデータセグメント(S16)のシーケンス番号5000がsnd_nxtに記憶される。   First, in FIG. 7, each data segment (original data segments S11, S12, S13, S14, S15) having the sequence numbers 0, 1000, 2000, 3000, 4000 is transmitted from the server device 10 to the client device 50. . The congestion window size snd_cwnd at this point is 5 MSS. Here, as shown in FIG. 9A, the minimum sequence number 0 (S11) of the data segment for which the acknowledgment has not been received is stored as the value of snd_una. The sequence number 5000 of the original data segment to be transmitted next is stored in snd_max, and the sequence number 5000 of the data segment to be transmitted next (S16) is stored in snd_nxt.

図示の例では、例えば通信端末40と移動パケット通信網30との間の無線通信環境が悪化し、当該オリジナルデータセグメントS11〜S15が一時的にネットワーク内に滞留したとする。その後、無線通信環境が良好となり、通信が再開されると、オリジナルデータセグメントS11〜S15はクライアント装置50に順次到着する。即ち、オリジナルデータセグメントS11〜S15は、各々の送信時から大きく遅延してクライアント装置50に到着することとなる。
クライアント装置50では、まず、オリジナルデータセグメントS11が受信されると、当該オリジナルデータセグメントS11に対応する、確認応答番号1000を有する確認応答R11が送信される。
In the illustrated example, it is assumed that, for example, the wireless communication environment between the communication terminal 40 and the mobile packet communication network 30 has deteriorated, and the original data segments S11 to S15 have temporarily stayed in the network. Thereafter, when the wireless communication environment is improved and communication is resumed, the original data segments S11 to S15 sequentially arrive at the client device 50. That is, the original data segments S11 to S15 arrive at the client device 50 with a large delay from the time of transmission.
In the client device 50, first, when the original data segment S11 is received, an acknowledgment R11 having an acknowledgment number 1000 corresponding to the original data segment S11 is transmitted.

一方、サーバ装置10では、上述のデータセグメントS11〜S15の受信遅延があったため、クライアント装置50から送信された確認応答R11を受信する前に、タイムアウト値が経過したとする。即ち、ステップS301の後タイムアウト値が経過してタイマ100aからトリガ信号が出力されても、CPU100は、確認応答を受信することができなかったとする(ステップS302;NO、ステップS303;YES)。ここで、図9(a)に示すように、サーバ装置10は、輻輳ウィンドウサイズを1MSSに書き換えるとともに、snd_nxtの値をsnd_unaの値で置き換える。   On the other hand, in the server device 10, it is assumed that the timeout value has elapsed before receiving the acknowledgment R11 transmitted from the client device 50 due to the reception delay of the data segments S11 to S15 described above. That is, it is assumed that even if the timeout value has elapsed after step S301 and the trigger signal is output from timer 100a, CPU 100 has not been able to receive an acknowledgment (step S302; NO, step S303; YES). Here, as shown in FIG. 9A, the server device 10 rewrites the congestion window size to 1 MSS and replaces the value of snd_nxt with the value of snd_una.

次に、ステップS'304において、CPU100は、オリジナルデータセグメントS11がクライアント装置50に受信されなかったと判定し、snd_nxtが示すシーケンス番号0を有するデータセグメント(図7における再送データセグメントS′11)をクライアント装置50へ再送するとともに、タイマ100aにタイムアウト値をセットし、タイマ100aにタイムアウト値の計測をさせる。
その後、タイムアウト値が経過する前に即ちタイマ100aからトリガ信号が出力される前に、上述の確認応答R11を受信すると、処理はステップS307に移行する。
Next, in step S′304, the CPU 100 determines that the original data segment S11 has not been received by the client device 50, and replaces the data segment having the sequence number 0 indicated by snd_nxt (retransmission data segment S′11 in FIG. 7). At the same time as resending to the client device 50, a timeout value is set in the timer 100a, and the timer 100a measures the timeout value.
Thereafter, if the above-described acknowledgment R11 is received before the timeout value elapses, that is, before the trigger signal is output from the timer 100a, the process proceeds to step S307.

次に、以上説明したところまでのサーバ装置10の動作について、図8を参照しながら説明する。
サーバ装置10のCPU100は、ステップS300において、輻輳ウィンドウサイズを5MSSとして、5つのオリジナルデータセグメントS11〜S15を送信する。次いで、S301〜S303の処理を行い、続いて、ステップS′304に進んだとする。ステップS′304では、CPU100は、輻輳ウィンドウサイズを1MSSとして、輻輳制御を行い、シーケンス番号0を有するデータセグメント(再送データセグメントS′11)を再送する。次いで、サーバ装置10は確認応答R11を受信するので(ステップS305;YES)、続いて、ステップS307の処理を行う。
Next, the operation of the server device 10 up to the point described above will be described with reference to FIG.
In step S300, the CPU 100 of the server device 10 transmits five original data segments S11 to S15 with a congestion window size of 5 MSS. Next, it is assumed that the processes of S301 to S303 are performed, and then the process proceeds to step S'304. In step S′304, CPU 100 sets the congestion window size to 1 MSS, performs congestion control, and retransmits the data segment having sequence number 0 (retransmission data segment S′11). Next, the server device 10 receives the confirmation response R11 (Step S305; YES), and subsequently performs the process of Step S307.

このステップS307において、CPU100は、確認応答R11の有する確認応答番号(比較対象確認応答番号)の値(1000)と、ステップS304で再送した再送データセグメントに対する確認応答の予測確認応答番号の値(1000)とを比較する。この場合、snd_nxtの値を参照することにより予測確認応答番号の値を取得してもよいし、第1実施形態で示したように、RAM102の記憶情報を参照するようにしてもよい。ここでは、比較対象確認応答番号の値が予測確認応答番号の値と一致するため、当該確認応答R11がオリジナルデータセグメントS11に対応するものであるか又は再送データセグメントS′11に対応するものであるか判定できない。そのため、CPU100は、確認応答R11は再送データセグメントS′11に対応するものだと推定する。即ち、セグメントが喪失し、オリジナルデータセグメントS11はクライアント装置50に受信されなかったと判定し、ステップS308へ進む。   In step S307, the CPU 100 determines the value (1000) of the acknowledgment number (comparison target acknowledgment number) included in the acknowledgment R11 and the predicted acknowledgment number (1000) of the acknowledgment for the retransmitted data segment retransmitted in step S304. ) And compare. In this case, the value of the predicted acknowledgment number may be obtained by referring to the value of snd_nxt, or the storage information of the RAM 102 may be referred to as described in the first embodiment. Here, since the value of the comparison acknowledgment number matches the value of the predicted acknowledgment number, the acknowledgment R11 corresponds to the original data segment S11 or corresponds to the retransmission data segment S'11. It cannot be determined whether there is. Therefore, CPU 100 estimates that acknowledgment R11 corresponds to retransmission data segment S'11. That is, it is determined that the segment has been lost and the original data segment S11 has not been received by the client device 50, and the process proceeds to step S308.

ステップS308では、再送データセグメントS′11に後続する再送データセグメントが有るか否かの判定を行う。この時のsnd_nxtの値は、送信済みデータセグメントS12のシーケンス番号1000なので(図9(a)参照)、再送データセグメントは有ると判定して、次いでステップS′304に進む。ステップS′304においては、確認応答R11を受信したことからウィンドウサイズを2MSSとして輻輳制御を行い、後続のシーケンス番号1000、2000を有するそれぞれのデータセグメントを2つ(S′12、S′13)再送するとともに、タイマ100aをセットする。   In step S308, it is determined whether or not there is a retransmission data segment following the retransmission data segment S'11. Since the value of snd_nxt at this time is the sequence number 1000 of the transmitted data segment S12 (see FIG. 9A), it is determined that there is a retransmission data segment, and the process proceeds to step S'304. In step S'304, since the acknowledgment R11 has been received, congestion control is performed with the window size set to 2 MSS, and two data segments each having the subsequent sequence numbers 1000 and 2000 (S'12, S'13). At the same time as resending, the timer 100a is set.

図7においては、サーバ装置10から再送データセグメントS′12、S′13が送信される。
一方、クライアント装置50では、オリジナルデータセグメントS12、S13、S14に対応する、確認応答番号2000,3000,4000を有するそれぞれの確認応答R12、R13、R14が送信されるが、無線通信環境の悪化により、確認応答R12、R13が喪失されたとする。この結果、確認応答R14のみがサーバ装置10へ送信される。
In FIG. 7, retransmission data segments S′12 and S′13 are transmitted from server device 10.
On the other hand, in the client device 50, acknowledgments R12, R13, and R14 having acknowledgment numbers 2000, 3000, and 4000 corresponding to the original data segments S12, S13, and S14 are transmitted. Assume that the acknowledgments R12 and R13 have been lost. As a result, only the confirmation response R14 is transmitted to the server device 10.

図8に戻って、タイマ100aによって計測される経過時間がタイムアウト値を経過することなく、サーバ装置10が確認応答R14を受信する(ステップS305;YES)と、ステップS307へ進む。
ステップS307においては、CPU100は、確認応答R14の有する確認応答番号(比較対象確認応答番号)の値(4000)と、再送データセグメントS′13に対する確認応答の予測確認応答番号の値(3000)とを比較する。ここでは、比較対象確認応答番号が予測確認応答番号の値より大きくなるため、CPU100は、セグメントの喪失は発生せずオリジナルデータセグメントS11〜S14はクライアント装置50に受信されたと判定し、ステップS′309へ進む。
Returning to FIG. 8, when the server device 10 receives the acknowledgment R14 without the elapsed time measured by the timer 100a exceeding the timeout value (step S305; YES), the process proceeds to step S307.
In step S307, the CPU 100 determines the value (4000) of the acknowledgment number (comparison target acknowledgment number) of the acknowledgment R14 and the value (3000) of the predicted acknowledgment number of the acknowledgment for the retransmission data segment S'13 To compare. Here, since the comparison target acknowledgment number is larger than the value of the predicted acknowledgment number, the CPU 100 determines that the loss of the segment has not occurred and the original data segments S11 to S14 have been received by the client device 50, and step S ′ Proceed to 309.

ステップS′309では、CPU100は、RAM102の記憶情報を参照して、輻輳ウィンドウサイズを、再送タイムアウト発生直前の輻輳ウィンドウサイズに復元する。即ち、ステップS′309では、輻輳ウィンドウサイズを、RAM102に記憶しておいた輻輳ウィンドウサイズ5MSSにまず復元し、確認応答R14を受信したことにより更に1MSS増分して、輻輳ウィンドウサイズを6MSSとする。この際、図9(b)に示すように、snd_nxtの値をsnd_maxの値で書き換える。また、オリジナルデータセグメントS15に対する確認応答は未受信なので、snd_unaの値はオリジナルデータセグメントS15のシーケンス番号である4000となる。輻輳ウィンドウはsnd_unaの値から6MSS分であるので、輻輳ウィンドウ内であり且つ未送信である5つのオリジナルデータセグメントS16〜S20を続けて送信する。   In step S′309, the CPU 100 refers to the information stored in the RAM 102 and restores the congestion window size to the congestion window size immediately before the occurrence of the retransmission timeout. That is, in step S'309, the congestion window size is first restored to the congestion window size of 5 MSS stored in the RAM 102, and by receiving the confirmation response R14, the congestion window size is further increased by 1 MSS to set the congestion window size to 6 MSS. . At this time, as shown in FIG. 9B, the value of snd_nxt is rewritten with the value of snd_max. Since the acknowledgment for the original data segment S15 has not been received, the value of snd_una is 4000, which is the sequence number of the original data segment S15. Since the congestion window is equivalent to 6 MSS from the value of snd_una, the five original data segments S16 to S20 which are within the congestion window and have not been transmitted are continuously transmitted.

図8においては、シーケンス番号5000、6000,7000,8000、9000を有するそれぞれのオリジナルデータセグメントS16、S17、S18、S19、S20がサーバ装置10からクライアント装置50へ送信される。
これらオリジナルデータセグメントの送信を行っている間、CPU100は、確認応答R15を受信する。これにより、CPU100は、オリジナルデータセグメントS15がクライアント装置50により受信されたと判定し、snd_unaの値をオリジナルデータセグメントS16に対応するシーケンス番号5000とする。更に、輻輳ウィンドウサイズが1MSS増分され、7MSSとなる(図9(c)参照)。この結果、後続するオリジナルデータセグメントS21、S22の送信が可能となり、これらのデータセグメントがサーバ装置10からクライアント装置50へ送信される。
In FIG. 8, original data segments S16, S17, S18, S19, and S20 having sequence numbers 5000, 6000, 7000, 8000, and 9000 are transmitted from the server device 10 to the client device 50.
While transmitting these original data segments, the CPU 100 receives the confirmation response R15. Accordingly, the CPU 100 determines that the original data segment S15 has been received by the client device 50, and sets the value of snd_una to the sequence number 5000 corresponding to the original data segment S16. Further, the congestion window size is increased by 1 MSS to 7 MSS (see FIG. 9C). As a result, the subsequent original data segments S21 and S22 can be transmitted, and these data segments are transmitted from the server device 10 to the client device 50.

以上のような構成により、データセグメントの不必要な再送を防ぐと共に、データセグメントの通信速度の不必要な減速を防ぐことができる。また、通信速度を再送タイムアウト発生前の速度から求められる値に復元するため、不必要な再送により生じた通信速度の低下を、すばやく補正することができる。   With the above configuration, unnecessary retransmission of the data segment can be prevented, and unnecessary reduction in the communication speed of the data segment can be prevented. Further, since the communication speed is restored to a value obtained from the speed before the occurrence of the retransmission timeout, a decrease in the communication speed caused by unnecessary retransmission can be quickly corrected.

[変形例]
以上、本発明の実施形態について説明したが、本発明はその主要な特徴から逸脱することなく他の様々な形態で実施することが可能である。なお、変形例としては、例えば、以下のようなものが考えられる。
[Modification]
As described above, the embodiments of the present invention have been described, but the present invention can be embodied in various other forms without departing from the main features. Note that, for example, the following modifications are possible.

上述の実施形態においては、TCPに従ってパケット通信を行うようにしたが、本発明は、データセグメントまたはデータブロックの再送制御を行うプロトコルであれば、TCP以外の通信プロトコルにも適用可能である。また、他のプロトコルを用いる場合、TCPが採用しているスライディングウィンドウ方式と類似のウィンドウを用いて、データセグメントを送信しても良い。   In the above embodiment, the packet communication is performed according to the TCP. However, the present invention is applicable to communication protocols other than the TCP as long as the protocol performs retransmission control of a data segment or a data block. When another protocol is used, the data segment may be transmitted using a window similar to the sliding window method adopted by TCP.

また、サーバ装置10で行った確認応答に対するデータセグメントの上述の判定は、他のサーバ装置で行っても良い。このような構成において、サーバ装置10は、再送データセグメント送信後に確認応答を受信すると、この他のサーバ装置に当該確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものかを問い合わせる。他のサーバ装置は、上述のサーバ装置10が行った判定処理を行い、この判定結果をサーバ装置10へ送信する。サーバ装置10は、送信された判定結果に基づいて、確認応答に対するデータセグメントを判定することができる。   Further, the above-described determination of the data segment in response to the confirmation response performed by the server device 10 may be performed by another server device. In such a configuration, upon receiving the acknowledgment after transmitting the retransmission data segment, the server device 10 inquires of the other server devices whether the acknowledgment is for the original data segment or the retransmission data segment. The other server device performs the determination process performed by the server device 10 described above, and transmits the determination result to the server device 10. The server device 10 can determine the data segment corresponding to the acknowledgment based on the transmitted determination result.

なお、上述の実施形態においては、クライアント装置50は通信端末40を介してサーバ装置10とパケット通信を行った。しかし、クライアント装置50が無線通信機能を備え、通信端末40を介することなく、移動パケット通信網30、インターネット20を介してサーバ装置10とパケット通信を行う構成であっても良い。   In the embodiment described above, the client device 50 performs the packet communication with the server device 10 via the communication terminal 40. However, the client device 50 may have a wireless communication function and perform packet communication with the server device 10 via the mobile packet communication network 30 and the Internet 20 without using the communication terminal 40.

本発明の第1実施形態に係る通信システム1の構成を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration of a communication system 1 according to a first embodiment of the present invention. 同実施形態に係るサーバ装置10の構成を示すブロック図である。FIG. 2 is a block diagram showing a configuration of a server device 10 according to the same embodiment. 同実施形態に係るデータセグメントに付加されるヘッダのデータ構成を示す図である。FIG. 3 is a diagram showing a data configuration of a header added to a data segment according to the embodiment. 同実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。4 is a sequence chart illustrating an example of a case where packet communication is performed between a server device 10 and a client device 50 according to the embodiment. 同実施形態に係るサーバ装置10のデータセグメントの送信及び受信動作を示すフローチャートである。4 is a flowchart illustrating a data segment transmission and reception operation of the server device 10 according to the same embodiment. 本発明の第2実施形態に係る送信ウィンドウを説明するための図である。FIG. 9 is a diagram for explaining a transmission window according to a second embodiment of the present invention. 同2実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。9 is a sequence chart illustrating an example of a case where packet communication is performed between a server device 10 and a client device 50 according to the second embodiment. 同実施形態に係るサーバ装置10のデータセグメントの送信及び受信動作を示すフローチャートである。4 is a flowchart illustrating a data segment transmission and reception operation of the server device 10 according to the same embodiment. 同実施形態に係る輻輳ウィンドウの遷移を説明するための図である。It is a figure for explaining transition of a congestion window concerning the embodiment. 同実施形態に係る輻輳ウィンドウの遷移を説明するための図である。It is a figure for explaining transition of a congestion window concerning the embodiment. 同実施形態に係る輻輳ウィンドウの遷移を説明するための図である。It is a figure for explaining transition of a congestion window concerning the embodiment. 従来のサーバ装置10'とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。10 is a sequence chart showing an example of a case where packet communication is performed between a conventional server device 10 ′ and a client device 50. 従来のサーバ装置10'とクライアント装置50との間でパケット通信を行う場合の別の一例を示すシーケンスチャートである。11 is a sequence chart illustrating another example of a case where packet communication is performed between a conventional server device 10 ′ and a client device 50.

符号の説明Explanation of reference numerals

1・・・通信システム、10・・・サーバ装置、100・・・CPU、100a・・・タイマ、101・・・通信部、102・・・RAM、103・・・ROM、104・・・HD、105・・・記憶部、111・・・バス、20・・・インターネット、30・・・移動パケット通信網、40・・・通信端末、50・・・クライアント装置。   DESCRIPTION OF SYMBOLS 1 ... Communication system, 10 ... Server apparatus, 100 ... CPU, 100a ... Timer, 101 ... Communication part, 102 ... RAM, 103 ... ROM, 104 ... HD , 105: storage unit, 111: bus, 20: Internet, 30: mobile packet communication network, 40: communication terminal, 50: client device.

Claims (8)

送信装置から受信装置に連続的に送信されるべき各データブロックにシーケンス情報を割り当てる割り当て過程と、
複数のデータブロックに前記シーケンス情報を付加し、前記受信装置に対して順次送信する送信過程と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送する再送過程と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置が未だ受信していない先頭のデータブロックのシーケンス情報を含む確認応答信号を、前記受信装置から受信する受信過程と、
前記再送が行われたデータブロックのシーケンス情報および前記確認応答信号に含まれる前記シーケンス情報に基づいて、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であるか否かを判断する判断過程とを有し、
前記送信過程は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合に、前記送信過程において送信された複数のデータブロックに後続するデータブロックを送信する
ことを特徴とする通信網における伝送制御方法。
An allocation step of allocating sequence information to each data block to be continuously transmitted from the transmitting device to the receiving device,
A transmitting step of adding the sequence information to a plurality of data blocks and sequentially transmitting the sequence to the receiving device;
Of the plurality of data blocks transmitted to the receiving device, a retransmission process of retransmitting a data block that has not received an acknowledgment signal from the receiving device,
Among the plurality of data blocks transmitted to the receiving device, the receiving device receives an acknowledgment signal including sequence information of a first data block that the receiving device has not yet received, from the receiving device,
Based on the sequence information of the retransmitted data block and the sequence information included in the acknowledgment signal, determine whether the acknowledgment signal is an acknowledgment for one of the transmitted data blocks. Having a judgment process of judging,
The transmitting step includes transmitting a data block subsequent to the plurality of data blocks transmitted in the transmitting step, when the acknowledgment signal is determined to be an acknowledgment for one of the plurality of transmitted data blocks. A transmission control method in a communication network.
前記送信過程において送信される前記複数のデータブロックの数は、確認応答信号を受信することなく送信できるデータブロックの数であるウィンドウサイズに従って定められ、
前記再送過程において、予測時間内に確認応答が受信されていないデータブロックの再送を行う場合には、前記ウィンドウサイズを最小値に変更し、変更後のウィンドウサイズにより定められる数のデータブロックを再送し、
前記送信過程は、前記判断過程において前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合には、前記再送過程において前記ウィンドウサイズが最小値に変更される前のウィンドウサイズと等しいかまたはより大きくなるように前記ウィンドウサイズを増加させ、増加後のウィンドウサイズにより定められる数の前記後続するデータブロックを送信する
ことを特徴とする請求項1に記載の伝送制御方法。
The number of the plurality of data blocks transmitted in the transmission process is determined according to a window size that is the number of data blocks that can be transmitted without receiving an acknowledgment signal,
In the retransmission process, when retransmitting a data block for which an acknowledgment has not been received within the predicted time, change the window size to a minimum value and retransmit the number of data blocks determined by the changed window size. And
In the transmitting step, if it is determined in the determining step that the acknowledgment signal is an acknowledgment for one of the transmitted data blocks, the window size is changed to a minimum value in the retransmitting step. 2. The method of claim 1, further comprising increasing the window size to be equal to or larger than the previous window size, and transmitting a number of the subsequent data blocks defined by the increased window size. Transmission control method.
受信装置に対して連続的に送信されるべき各データブロックにシーケンス情報を割り当てる割り当て手段と、
複数のデータブロックに前記シーケンス情報を付加し、前記受信装置に対して順次送信する送信手段と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送する再送手段と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置が未だ受信していない先頭のデータブロックのシーケンス情報を含む確認応答信号を、前記受信装置から受信する受信手段と、
前記再送が行われたデータブロックのシーケンス情報および前記確認応答信号に含まれる前記シーケンス情報に基づいて、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であるか否かを判断する判断手段とを有し、
前記送信手段は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合に、前記受信装置に対して送信された複数のデータブロックに後続するデータブロックを送信する
ことを特徴とする通信装置。
Allocating means for allocating sequence information to each data block to be continuously transmitted to the receiving device,
Transmitting means for adding the sequence information to a plurality of data blocks, and sequentially transmitting to the receiving device,
Among the plurality of data blocks transmitted to the receiving device, a retransmitting unit that retransmits a data block that has not received an acknowledgment signal from the receiving device,
Among the plurality of data blocks transmitted to the receiving device, a receiving unit that receives, from the receiving device, an acknowledgment signal including sequence information of a first data block that the receiving device has not yet received,
Based on the sequence information of the retransmitted data block and the sequence information included in the acknowledgment signal, determine whether the acknowledgment signal is an acknowledgment for one of the transmitted data blocks. Judgment means for judging,
The transmitting means, when it is determined that the acknowledgment signal is an acknowledgment for one of the plurality of transmitted data blocks, a data block subsequent to the plurality of data blocks transmitted to the receiving device. A communication device, which transmits a message.
前記再送されたデータブロックの直後に後続するデータブロックのシーケンス情報を記憶する記憶手段を更に有し、
前記判断手段は、前記記憶手段に記憶された前記シーケンス情報および前記確認応答信号に含まれる前記シーケンス情報を比較することにより前記判断を行う
ことを特徴とする請求項3に記載の通信装置。
Further comprising a storage means for storing sequence information of a data block immediately following the retransmitted data block,
The communication device according to claim 3, wherein the determination unit performs the determination by comparing the sequence information stored in the storage unit and the sequence information included in the acknowledgment signal.
前記判断手段は、前記確認応答信号に含まれる前記シーケンス情報により特定されるデータブロックが、前記記憶手段に記憶されている前記シーケンス情報によって特定されるデータブロックに後続するデータブロックの1である場合に、前記確認応答信号が前記送信手段により送信された前記複数のデータブロックの1に対する確認応答であると判断する
ことを特徴とする請求項4に記載の通信装置。
The determination unit may determine that the data block specified by the sequence information included in the acknowledgment signal is one of data blocks subsequent to the data block specified by the sequence information stored in the storage unit The communication device according to claim 4, wherein the communication device determines that the acknowledgment signal is an acknowledgment for one of the plurality of data blocks transmitted by the transmission unit.
前記送信手段により送信される前記複数のデータブロックの数は、確認応答信号を受信することなく送信できるデータブロックの数であるウィンドウサイズに従って定められ、
前記再送手段は、予測時間内に確認応答が受信されていないデータブロックの再送を行う場合には、前記ウィンドウサイズを最小値に変更し、変更後のウィンドウサイズにより定められる数のデータブロックを再送し、
前記送信手段は、前記判断手段により前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合には、前記再送手段において前記ウィンドウサイズが最小値に変更される前のウィンドウサイズと等しいかまたはより大きくなるように前記ウィンドウサイズを増加させ、増加されたウィンドウサイズにより定められる数の前記後続するデータブロックを送信する
ことを特徴とする請求項3乃至5のいずれかに記載の通信装置。
The number of the plurality of data blocks transmitted by the transmission means is determined according to a window size that is the number of data blocks that can be transmitted without receiving an acknowledgment signal,
The retransmitting means, when retransmitting a data block for which an acknowledgment has not been received within the predicted time, changes the window size to a minimum value and retransmits the number of data blocks determined by the changed window size. And
The transmitting unit changes the window size to the minimum value in the retransmitting unit when the determining unit determines that the acknowledgment signal is an acknowledgment for one of the transmitted data blocks. 6. The method according to claim 3, further comprising increasing the window size to be equal to or larger than the previous window size, and transmitting a number of the subsequent data blocks defined by the increased window size. The communication device according to any one of the above.
送信装置から受信装置に連続的に送信されるべき各データブロックにシーケンス情報を割り当てる割り当て手段と、
複数のデータブロックに前記シーケンス情報を付加し、前記受信装置に対して順次送信する送信手段と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送する再送手段と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置が未だ受信していない先頭のデータブロックのシーケンス情報を含む確認応答信号を、前記受信装置から受信する受信手段と、
前記再送が行われたデータブロックのシーケンス情報および前記確認応答信号に含まれる前記シーケンス情報に基づいて、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であるか否かを判断する判断手段とを有し、
前記送信手段は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合に、前記受信装置に対して送信された複数のデータブロックに後続するデータブロックを送信する
ことを特徴とする通信システム。
Assigning means for assigning sequence information to each data block to be continuously transmitted from the transmitting device to the receiving device,
Transmitting means for adding the sequence information to a plurality of data blocks, and sequentially transmitting to the receiving device,
Among the plurality of data blocks transmitted to the receiving device, a retransmitting unit that retransmits a data block that has not received an acknowledgment signal from the receiving device,
Among the plurality of data blocks transmitted to the receiving device, a receiving unit that receives, from the receiving device, an acknowledgment signal including sequence information of a first data block that the receiving device has not yet received,
Based on the sequence information of the retransmitted data block and the sequence information included in the acknowledgment signal, determine whether the acknowledgment signal is an acknowledgment for one of the transmitted data blocks. Judgment means for judging,
The transmitting means, when it is determined that the acknowledgment signal is an acknowledgment for one of the plurality of transmitted data blocks, a data block subsequent to the plurality of data blocks transmitted to the receiving device. A communication system comprising:
受信装置に連続的に送信されるべき各データブロックにシーケンス情報を割り当てる処理と、
複数のデータブロックに前記シーケンス情報を付加し、前記受信装置に対して順次送信する処理と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送する再送過程と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置が未だ受信していない先頭のデータブロックのシーケンス情報を含む確認応答信号を、前記受信装置から受信する処理と、
前記再送が行われたデータブロックのシーケンス情報および前記確認応答信号に含まれる前記シーケンス情報に基づいて、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であるか否かを判断する処理と
前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると判断された場合に、前記受信装置に対して送信された複数のデータブロックに後続するデータブロックを送信する処理と
をコンピュータに実行させるためのプログラム。
A process of allocating sequence information to each data block to be continuously transmitted to the receiving device;
A process of adding the sequence information to a plurality of data blocks and sequentially transmitting the data to the receiving device;
Of the plurality of data blocks transmitted to the receiving device, a retransmission process of retransmitting a data block that has not received an acknowledgment signal from the receiving device,
Among the plurality of data blocks transmitted to the receiving device, a process of receiving, from the receiving device, an acknowledgment signal including sequence information of a first data block that the receiving device has not yet received,
Based on the sequence information of the retransmitted data block and the sequence information included in the acknowledgment signal, determine whether the acknowledgment signal is an acknowledgment for one of the transmitted data blocks. Determining a data block following the plurality of data blocks transmitted to the receiving device when the acknowledgment signal is determined to be an acknowledgment response to one of the plurality of transmitted data blocks; A program that causes a computer to execute the process to be sent.
JP2003430449A 2002-12-27 2003-12-25 Transmission control method, communication apparatus, communication system, and program Expired - Fee Related JP3784801B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003430449A JP3784801B2 (en) 2002-12-27 2003-12-25 Transmission control method, communication apparatus, communication system, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002382222 2002-12-27
JP2003430449A JP3784801B2 (en) 2002-12-27 2003-12-25 Transmission control method, communication apparatus, communication system, and program

Publications (2)

Publication Number Publication Date
JP2004222271A true JP2004222271A (en) 2004-08-05
JP3784801B2 JP3784801B2 (en) 2006-06-14

Family

ID=32911355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003430449A Expired - Fee Related JP3784801B2 (en) 2002-12-27 2003-12-25 Transmission control method, communication apparatus, communication system, and program

Country Status (1)

Country Link
JP (1) JP3784801B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007053588A (en) * 2005-08-18 2007-03-01 Nec Corp Packet retransmission method, packet retransmission system, packet retransmission program, and program recording medium
JP2022500885A (en) * 2018-09-25 2022-01-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America User equipment and base stations involved in data transmission

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3664398A1 (en) * 2018-12-06 2020-06-10 InterDigital CE Patent Holdings Network equipment and method for delivering data packets

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007053588A (en) * 2005-08-18 2007-03-01 Nec Corp Packet retransmission method, packet retransmission system, packet retransmission program, and program recording medium
JP2022500885A (en) * 2018-09-25 2022-01-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America User equipment and base stations involved in data transmission
JP7446247B2 (en) 2018-09-25 2024-03-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ User equipment and base stations involved in transmitting data
US11973604B2 (en) 2018-09-25 2024-04-30 Panasonic Intellectual Property Corporation Of America User equipment and base station involved in transmission of data

Also Published As

Publication number Publication date
JP3784801B2 (en) 2006-06-14

Similar Documents

Publication Publication Date Title
EP1434380B1 (en) Data transmission control method and system
JP4283589B2 (en) COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM
KR100785293B1 (en) System and Method for TCP Congestion Control Using Multiple TCP ACKs
JP4589764B2 (en) Response to spurious timeout
JP4708978B2 (en) Communication system, communication terminal, session relay device, and communication protocol realizing high throughput
JP4961480B2 (en) Apparatus and method for improving the performance of a transmission control protocol via path recovery notification over a wireless network
JP2004537218A (en) Reliable and efficient method of congestion control in NACK based protocol
JP2012227953A (en) Communication device and method
US7593338B2 (en) Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol
JP2008508817A (en) High performance TCP suitable for low frequency ACK system
EP1787419A1 (en) Signalling a state of a transmission link via a transport control protocol
US20030128672A1 (en) Transmission and flow control
KR100912178B1 (en) Congestion control method over wireless link
US7738395B2 (en) Communication system for improving data transmission efficiency of TCP in a wireless network environment and a method thereof
EP1435704B1 (en) Transmission control method and system
Thubert IPv6 over low-power Wireless Personal Area network (6LoWPAN) selective fragment recovery
JP4186893B2 (en) Packet communication device, packet communication method, data receiving device, and data receiving method
US20030137948A1 (en) Retransmission control in wireless packet data networks
JP2006101428A (en) Wireless network control device and its method, control program and recording medium
JP3784801B2 (en) Transmission control method, communication apparatus, communication system, and program
Gui et al. A conditional retransmission enabled transport protocol for real-time networked control systems
Zeng et al. TCP packet control for wireless networks
KR100913897B1 (en) Method for controlling congestion of TCP for reducing the number of retransmission timeout
JP3727941B2 (en) Transmission control method, communication apparatus, communication system, and program
Thubert RFC 8931: IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Selective Fragment Recovery

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050711

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060315

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090324

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100324

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100324

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees