JP2004222270A - Transmission control method, communication device, communication system and program - Google Patents

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

Info

Publication number
JP2004222270A
JP2004222270A JP2003430448A JP2003430448A JP2004222270A JP 2004222270 A JP2004222270 A JP 2004222270A JP 2003430448 A JP2003430448 A JP 2003430448A JP 2003430448 A JP2003430448 A JP 2003430448A JP 2004222270 A JP2004222270 A JP 2004222270A
Authority
JP
Japan
Prior art keywords
probability distribution
acknowledgment
transmitting
data segment
data blocks
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
JP2003430448A
Other languages
Japanese (ja)
Other versions
JP3727941B2 (en
Inventor
Motoharu Miyake
基治 三宅
Hiroshi Inamura
浩 稲村
Taro Ishikawa
太朗 石川
Kazuhisa Yokota
和久 横田
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 JP2003430448A priority Critical patent/JP3727941B2/en
Publication of JP2004222270A publication Critical patent/JP2004222270A/en
Application granted granted Critical
Publication of JP3727941B2 publication Critical patent/JP3727941B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide technology for appropriately discriminating whether a confirmation response received in a transmitter is corresponding to an original data segment or to a resent data segment without increasing an information quantity of data segments and without requiring a considerable design change for the transmitter and a receiver of a server device. <P>SOLUTION: A first time from a transmission time point of a data segment to a receiving time point of the confirmation response to the transmission is measured, probability distribution of the first time with respect to a client device 50 is learnt on the basis of the statistic result totalizing the measured first times, and the learnt result is used to estimate a data segment corresponding to the confirmation response. <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 means that the transmitting device has not transmitted the data segment having the sequence number 1000, or the data segment is transmitted to the receiving device even if the data segment has been transmitted. It is when it has not arrived. 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.

このオリジナルデータセグメントに対する確認応答と再送データセグメントに対する確認応答は、通常の場合、同一の確認応答番号を有する。このため、送信装置がひとつめの確認応答を受信した時点では、当該確認応答がオリジナルデータセグメントに対するものなのか又は再送データセグメントに対するものなのかを判別することができない。このような場合、送信装置は、再送データセグメント送信後最初に確認応答を受信すると、当該確認応答は再送データセグメントに対する確認応答であるとみなし、オリジナルデータセグメントは受信装置に届かなかったものと判断する。以下、事例を挙げ、このような判断が行われる理由について詳述する。   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 a determination is made will be described in detail with reference to examples.

図9は、従来のサーバ装置10'(送信装置)とクライアント装置50(受信装置)との間でパケット通信を行う場合の一例を示すシーケンスチャートである。尚、同図において、サーバ装置10'における各矢印の始点の右側に示される4桁の番号は、サーバ装置10'からパケット通信により送信されるデータセグメントのシーケンス番号である。また、クライアント装置50における各矢印の始点の左側に示される4桁の番号は、クライアント装置50から送信される確認応答に含まれる確認応答番号である。ここでは、初期ウィンドウサイズは「3」であると仮定する。つまり、確認応答を受信する前に3つのデータセグメントを送信可能である。   FIG. 9 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, three data segments can be transmitted before receiving the acknowledgment.

図9において、サーバ装置10'からクライアント装置50へシーケンス番号0、1000、2000を有するそれぞれのオリジナルデータセグメントS1,S2,S3が送信される。この際、サーバ装置10'ではタイマがセットされる。   In FIG. 9, 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.

図9に示す例において、サーバ装置10'では、タイマによって測定される経過時間がタイムアウト値に到達しても確認応答が受信されない。このため、サーバ装置10'では、タイムアウトとなった時点で、オリジナルデータセグメントS1はクライアント装置50に受信されなかったと判定されて、シーケンス番号0を有するデータセグメント(再送データセグメントS′1)が再送される。この時、再送タイムアウトの発生によりウィンドウサイズが最小値に縮小されるため、1データセグメントのみが再送されている。   In the example illustrated in FIG. 9, the server device 10 'does not receive an acknowledgment 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 due to the occurrence of the retransmission timeout, only one data segment is retransmitted.

その後、サーバ装置10'では、確認応答番号1000を有する確認応答R1が受信されるが、上述の事情で当該確認応答R1がオリジナルデータセグメントS1に対応するものなのか又は再送データセグメントS′1に対応するものなのかを判定することができない。その結果、再送データセグメントS′1に対応するものであるとみなされて、シーケンス番号1000を有するデータセグメント(再送データセグメントS′2)が送信される。また、この時、確認応答R1の受信によりウィンドウサイズが1データセグメント分増加するので、シーケンス番号2000を有するデータセグメント(再送データセグメントS′3)も引き続き送信される。   After that, the server device 10 'receives the acknowledgment R1 having the acknowledgment number 1000. In the above-described situation, whether the acknowledgment R1 corresponds to the original data segment S1 or the resend data segment S'1 It cannot be determined whether it is a corresponding one. 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. At this time, the window size is increased by one data segment due to the reception of the acknowledgment R1, so that the data segment having the sequence number 2000 (retransmission data segment S'3) is also continuously transmitted.

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

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

データセグメント再送後最初の確認応答がオリジナルデータセグメントに対するものなのか又は再送データセグメントに対するものなのかを判別することができない場合に、仮に、オリジナルデータセグメントに対するものであると判断すると、このような無駄な再送は行われない。
しかし、このような判断をすると、実際は再送データセグメントに対する確認応答であるのにオリジナルデータセグメントに対する確認応答であるとみなしてしまう場合が生じる。この場合、データセグメントの並びの後方にウィンドウがスライドされ、後続のオリジナルデータセグメントが送信される。このようなことが繰り返し発生すると、サーバ装置10'から送信され、クライアント装置50に到着していないデータセグメントの数が累増するおそれがある。
If it is not possible to determine whether the first acknowledgment after retransmission of the data segment 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 waste 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 received by a transmitting device is for an original data segment or a retransmitted data segment. The purpose is to provide technology that can do. According to this technique, a slight change in the design of the transmission device is sufficient without increasing the information amount of the data segment, and without requiring any change in the design of the reception device.

上記課題を解決するため、本発明は、データブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報を生成する第1の生成過程と、送信装置から受信装置に対して複数のデータブロックを順次送信する送信過程と、前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、経過時間を測定するための計時手段を起動する過程と、前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得過程と、前記取得された経過時間の値と前記第1の確率分布情報に基づいて、前記確認応答信号が前記送信過程において送信された複数のデータブロックの1に対する確認応答であるか否かを推定する推定過程とを有し、前記送信過程は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると推定された場合に、前記送信過程において送信された複数のデータブロックに後続するデータブロックを送信することを特徴とする通信網における伝送制御方法を提供する。前記データブロックの一例としては、TCPにおけるデータセグメントがある。また、好ましくは、前記受信装置は、移動通信網を介してパケット通信を行う移動通信端末である。   In order to solve the above problem, the present invention provides a first generation process of generating first probability distribution information indicating an appearance probability of a round trip time of a data block, and a plurality of data blocks from a transmission device to a reception device. And a retransmitting a data block that has not received an acknowledgment signal from the receiving device among a plurality of data blocks transmitted to the receiving device, and measuring an elapsed time. Activating the timing means, acquiring an elapsed time measured by the timing means when receiving an acknowledgment signal from the receiving device, and acquiring the value of the acquired elapsed time and the first probability. Based on the distribution information, it is estimated whether the acknowledgment signal is an acknowledgment for one of the plurality of data blocks transmitted in the transmission process. An estimating step, wherein, when the acknowledgment signal is estimated to be an acknowledgment for one of the transmitted plurality of data blocks, the plurality of data blocks transmitted in the transmitting step And a transmission control method in a communication network, characterized by transmitting a data block following the data block. 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.

好ましい態様において、前記後続するデータブロックを送信した後、前記推定過程において行われた推定が正しいと判断された場合に、前記取得過程において取得した経過時間の値を用いて、前記経過時間の出現確率を示す第2の確率分布情報を生成する第2の生成過程を更に有し、前記推定過程は、前記取得過程において取得した経過時間の値、前記第1および第2の確率分布情報に基づいて、前記推定を行う。この場合、前記第2の生成過程において、前記後続するデータブロックを要求する確認応答信号を前記受信装置から少なくとも2回受信した場合に前記推定過程において行われた推定が正しいと判断するようにしてもよい。   In a preferred aspect, after transmitting the subsequent data block, if it is determined that the estimation performed in the estimation step is correct, the appearance time is used to determine the appearance of the elapsed time using the value of the elapsed time acquired in the acquisition step. The method further includes a second generation step of generating second probability distribution information indicating a probability, wherein the estimation step is based on a value of the elapsed time acquired in the acquisition step, and the first and second probability distribution information. Then, the estimation is performed. In this case, in the second generation step, when the acknowledgment signal requesting the subsequent data block is received at least twice from the receiving device, the estimation performed in the estimation step is determined to be correct. Is also good.

別の好ましい態様において、複数の前記受信装置に対して前記複数のデータブロックを送信する場合に、前記第1および第2の各生成過程は、前記複数の受信装置との間に設定された複数のコネクションの各々について当該第1および/または第2の確率分布情報を生成し、前記推定過程は、前記複数の受信装置のいずれかから確認応答信号を受信した際に前記取得過程において取得した経過時間の値と、当該いずれかの受信装置との間に設定されているコネクションについて生成された前記第1および/または第2の確率分布情報に基づいて前記推定を行うようにすればよい。さらに、別の好ましい態様において、各々が異なるサブネットワークに属する複数の前記受信装置に対して前記複数のデータブロックを送信する場合に、前記第1および/または第2の生成過程は、前記サブネットワーク毎に前記第1および/または第2の確率分布情報を生成し、前記推定過程は、前記複数の受信装置のいずれかから確認応答信号を受信した際に、前記取得手段により取得した経過時間の値と当該いずれかの受信装置が属する前記サブネットワークについて生成された前記第1および/または第2の確率分布情報に基づいて前記推定を行うようにすればよい。   In another preferred aspect, when transmitting the plurality of data blocks to a plurality of the receiving devices, the first and second generation processes may include a plurality of the plurality of data blocks set between the plurality of receiving devices. Generating the first and / or second probability distribution information for each of the connections, and the estimating step includes a step of acquiring the acknowledgment signal from any of the plurality of receiving apparatuses, The estimation may be performed based on a time value and the first and / or second probability distribution information generated for the connection set up with any one of the receiving devices. Further, in another preferred aspect, when transmitting the plurality of data blocks to a plurality of the receiving devices each belonging to a different sub-network, the first and / or second generation process may include the sub-network. Generating the first and / or second probability distribution information every time, and the estimating step includes the step of calculating the elapsed time acquired by the acquiring unit when an acknowledgment signal is received from any of the plurality of receiving devices. The estimation may be performed based on a value and the first and / or second probability distribution information generated for the subnetwork to which any of the receiving apparatuses belongs.

好ましくは、前記第1および第2の確率分布情報は前記受信装置に対して前記複数のデータブロックを送信する前に試験的に求められた統計情報であり、前記第1および第2の各生成過程において、前記複数のデータブロックの送信を開始した後、当該試験的に求められた統計情報を更新することにより前記第1および第2の確率分布情報を生成してもよい。あるいは、前記第1および第2の確率分布情報は前記受信装置に対して前記複数のデータブロックを送信するための通信を開始する前に予め求められた統計情報であり、前記第1および第2の生成過程において、前記複数のデータブロック送信のための通信を開始した後、当該予め求められた統計情報を更新することにより前記第1および第2の確率分布情報を生成するようにしてもよい。   Preferably, the first and second probability distribution information are statistical information obtained on a trial basis before transmitting the plurality of data blocks to the receiving device, In the process, after the transmission of the plurality of data blocks is started, the first and second probability distribution information may be generated by updating the statistical information obtained on a trial basis. Alternatively, the first and second probability distribution information is statistical information obtained in advance before starting communication for transmitting the plurality of data blocks to the receiving device, and the first and second probability distribution information are provided. In the generating step, after the communication for transmitting the plurality of data blocks is started, the first and second probability distribution information may be generated by updating the statistical information obtained in advance. .

また、本発明は、データブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報を生成する第1の生成手段と、受信装置に対して複数のデータブロックを順次送信する送信手段と、経過時間を測定するための計時手段と、前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、前記計時手段を起動する手段と、前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得手段と、前記取得された経過時間の値と前記第1の確率分布情報に基づいて、前記確認応答信号が前記送信手段により送信された複数のデータブロックの1に対する確認応答であるか否かを推定する推定手段とを有し、前記送信手段は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると推定された場合に、前記送信手段により送信された複数のデータブロックに後続するデータブロックを送信することを特徴とする通信装置を提供する。   Further, the present invention provides a first generation unit for generating first probability distribution information indicating an appearance probability of a round trip time of a data block, a transmission unit for sequentially transmitting a plurality of data blocks to a reception device, A timer for measuring the elapsed time, and among the plurality of data blocks transmitted to the receiver, retransmitting a data block that has not received an acknowledgment signal from the receiver; and Activating means, acquiring means for acquiring an elapsed time measured by the clocking means when receiving an acknowledgment signal from the receiving device, and acquiring the value of the acquired elapsed time and the first probability distribution information. Estimating means for estimating whether or not the acknowledgment signal is an acknowledgment for one of the plurality of data blocks transmitted by the transmitting means based on the acknowledgment signal. And transmitting the data block subsequent to the plurality of data blocks transmitted by the transmitting means when the acknowledgment signal is estimated to be an acknowledgment response to one of the plurality of transmitted data blocks. There is provided a communication device characterized by transmitting.

好ましい態様において、前記後続するデータブロックを送信した後、前記推定手段により行われた推定が正しいと判断された場合に、前記取得手段により取得した経過時間の値を用いて、前記経過時間の出現確率を示す第2の確率分布情報を生成する第2の生成手段を更に有し、前記推定手段は、前記取得手段により取得した経過時間の値、前記第1および第2の確率分布情報に基づいて、前記推定を行えばよい。加えて、本発明による通信装置は、上記伝送制御方法における様々な態様を実行するための手段を有している。   In a preferred aspect, after transmitting the subsequent data block, when the estimation made by the estimating means is determined to be correct, the appearance time of the elapsed time is obtained by using the value of the elapsed time acquired by the acquiring means. The apparatus further includes a second generation unit that generates second probability distribution information indicating a probability, wherein the estimation unit is configured to calculate the second probability distribution information based on the value of the elapsed time acquired by the acquisition unit and the first and second probability distribution information. Then, the estimation may be performed. In addition, the communication device according to the present invention has means for executing various aspects of the transmission control method.

さらに、本発明は、上記通信装置が有する手段を少なくとも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, the present invention provides a program for causing a communication device to execute the transmission control methods in 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 optimally determine whether the acknowledgment data segment received by the transmission device is for the original data segment or the retransmission data segment, and as a result, Unnecessary transmission can be prevented. According to this technique, a slight change in the design of the transmission device is sufficient without increasing the information amount of the data segment, and without requiring any change in the design of the reception 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に対してパケット通信サービスを提供する。なお、移動パケット通信網30と通信端末40との間の通信区間には、図示しない無線区間が含まれている。この無線区間における通信は、電波を用いて行われる。
サーバ装置10は、通信端末40、移動パケット通信網30、インターネット20を介してクライアント装置50とパケット通信を行い、パケット通信によりクライアント装置50に対してデータセグメントを送信する。なお、本実施形態においては、TCP(Transmission Control Protocol)に従って、パケット通信を行うものとする。
[First Embodiment]
(1. Configuration)
<Configuration of Communication System 1>
FIG. 1 is a block 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 communication terminals 40 accommodated in the mobile packet communication network 30. The communication section between the mobile packet communication network 30 and the communication terminal 40 includes a wireless section (not shown). Communication in this wireless section is performed using radio waves.
The server device 10 performs packet communication with the client device 50 via the communication terminal 40, the mobile packet communication network 30, and the Internet 20, and transmits a data segment to the client device 50 by packet communication. In the present embodiment, packet communication is performed according to TCP (Transmission Control Protocol).

<サーバ装置10の構成>
次に、サーバ装置10の構成について説明する。サーバ装置10の構成は一般的なコンピュータと同様であるから、本発明に係る構成のみについて図2を参照しながら説明する。
CPU100は、記憶部105に記憶されるプログラムを実行することにより、サーバ装置10の装置各部の制御を行う。また、CPU100は、タイマ100aと100bとを備える。
<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 timers 100a and 100b.

タイマ100aは、CPU100によりセットされたタイムアウト値が経過すると、トリガ信号を出力する。また、このタイマ100aは、データセグメントが送信されてから当該データセグメントに対する確認応答が受信されるまでの時間(以下、ラウンドトリップタイムという)を計測している。従来からの方法と同様に、タイマ100aにより取得されたラウンドトリップタイムはタイムアウト値の計算に用いられる。このタイムアウト値は時々刻々と変化する通信環境に応じて定められる可変の値である。また、本実施形態において、タイマ100aによって計測されたラウンドトリップタイムは、ラウンドトリップタイムの出現確率を示す確率分布データ(図3参照、詳しくは後述する)の生成時にも用いられる。
尚、ラウンドトリップタイムは、ウィンドウ毎にひとつのデータセグメントについて計測する方法が一般的であるが、すべてのデータセグメントについてラウンドトリップタイムを計測し、タイムアウト値または確率分布データの更新に用いてもよい。
The timer 100a outputs a trigger signal when the timeout value set by the CPU 100 elapses. Further, the timer 100a measures a time (hereinafter, referred to as a round trip time) from the transmission of a data segment to the reception of an acknowledgment for the data segment. As in the conventional method, the round trip time obtained by the timer 100a is used for calculating a timeout value. This timeout value is a variable value determined according to the communication environment that changes every moment. In the present embodiment, the round trip time measured by the timer 100a is also used when generating probability distribution data (see FIG. 3, which will be described in detail later) indicating the appearance probability of the round trip time.
Although the round trip time is generally measured for one data segment for each window, the round trip time may be measured for all data segments and used for updating the timeout value or the probability distribution data. .

タイマ100bは、再送データセグメントが送信された時にのみ動作する。具体的には、タイマ100bは、再送データセグメントの送信時にCPU100の指示により時間の測定を開始し、再送データセグメント送信後ひとつめの確認応答が受信された時に、CPU100の指示により当該測定を終了する。タイマ100bによって測定された時間はCPU100に通知される。CPU100は、この時間を確率分布データと比較することにより、受信した確認応答がオリジナルデータセグメントに対するものであるか又は再送データセグメントに対するものであるかを推定する。   Timer 100b operates only when a retransmission data segment is transmitted. Specifically, the timer 100b starts measuring the time according to the instruction of the CPU 100 when transmitting the retransmission data segment, and ends the measurement according to the instruction of the CPU 100 when the first acknowledgment is received after the transmission of the retransmission data segment. I do. The time measured by the timer 100b is notified to the CPU 100. By comparing this time with the probability distribution data, CPU 100 estimates whether the received acknowledgment is for the original data segment or for the retransmitted data segment.

記憶部105は、RAM(Random Accsess Memory)102と、ROM(Read Only Memory)103と、HD(Hard Disk)104とから構成される。
ROM103には、CPU100にデータセグメントの伝送制御処理を行わせるためのプログラムが記憶されている。CPU100は、このプログラムに従い、クライアント装置50に対してデータセグメント(以下、オリジナルデータセグメントという)を送信した後、当該データセグメントに対応する確認応答の受信を待機する。また、CPU100は、オリジナルデータセグメントの送信時にタイマ100aにタイムアウト値をセットし、その後の経過時間をタイマ100aに計測させる。
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 data segment transmission control processing. After transmitting a data segment (hereinafter referred to as an original data segment) to the client device 50 according to this program, the CPU 100 waits for reception of an acknowledgment response corresponding to the data segment. Further, the CPU 100 sets a timeout value in the timer 100a when transmitting the original data segment, and causes the timer 100a to measure an elapsed time thereafter.

ここで、通信端末40と移動パケット通信網30との間の無線区間における電波環境が悪化したなどの場合に、タイムアウト値に相当する時間が経過しても確認応答を受信されない事態が発生し得る。このような場合に、確認応答を受信することなく、タイマ100aからタイムアウト値が経過したことを示すトリガ信号が出力されてしまうと、CPU100は、当該データセグメントがクライアント装置50に受信されなかったと判定する。そして、当該データセグメントを再送するとともに、タイマ100aに再び経過時間の測定を開始させる。また、データセグメントが再送されたので、タイマ100bによる経過時間の測定も開始させる。   Here, when the radio wave environment in a wireless section between the communication terminal 40 and the mobile packet communication network 30 is deteriorated, a situation may occur in which an acknowledgment is not received even after the time corresponding to the timeout value elapses. . In such a case, if a trigger signal indicating that the timeout value has elapsed is output from the timer 100a without receiving an acknowledgment, the CPU 100 determines that the data segment has not been received by the client device 50. I do. Then, the data segment is retransmitted, and the timer 100a starts measuring the elapsed time again. Since the data segment has been retransmitted, the measurement of the elapsed time by the timer 100b is also started.

電波環境が改善されることにより移動パケット通信網30を介した通信が再開されて、データセグメント及び確認応答の送受信が再び可能となったとする。これに伴い、確認応答を受信すると、CPU100は、タイマ100aをリセットするとともに、タイマ100bに経過時間の測定を終了させる。そして、このタイマ100bによって測定された経過時間と後述の確率分布データとを用いて、受信された確認応答がオリジナルデータセグメントに対応するものである確率が高いのか、再送されたデータセグメントに対応するものである確率が高いのかを判定する。   It is assumed that the communication via the mobile packet communication network 30 is restarted due to the improvement of the radio wave environment, and the transmission and reception of the data segment and the acknowledgment are enabled again. Accordingly, upon receiving the confirmation response, the CPU 100 resets the timer 100a and causes the timer 100b to stop measuring the elapsed time. Then, using the elapsed time measured by the timer 100b and the probability distribution data described later, it is determined whether the received acknowledgment has a high probability that it corresponds to the original data segment or corresponds to the retransmitted data segment. It is determined whether the probability is high.

オリジナルデータセグメントに対応するものである確率が高いと判定した場合、CPU100は、オリジナルデータセグメントがクライアント装置50に受信されたと推定し、続いて、後続のオリジナルデータセグメントを送信する。再送データセグメントに対応するものである確率が高いと判定した場合、CPU100は、オリジナルデータセグメントがクライアント装置50に受信されなかったと推定し、続いて、後続の再送データセグメントが有るか否かを判定する。この判定結果が肯定的で有れば、後続の再送データセグメントを送信し、この判定結果が否定的で有れば、後続のオリジナルデータセグメントを送信する。   If it is determined that the probability that the original data segment corresponds to the original data segment is high, the CPU 100 estimates that the original data segment has been received by the client device 50, and subsequently transmits a subsequent original data segment. If it is determined that the probability that the data segment corresponds to the retransmission data segment is high, the CPU 100 estimates that the original data segment has not been received by the client device 50, and then determines whether or not there is a subsequent retransmission data segment. I do. 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.

HD104は、タイマ100aによって計測されたラウンドトリップタイムの出現確率を示す確率分布データ(図3)を記憶している。
この確率分布データは、通信が正常に行われている場合に、データセグメントに対する確認応答が受信されるまでのラウンドトリップタイムの確率分布を示すデータである。図3において、データセグメントが送信された時刻を起点として、各データセグメントのラウンドトリップタイムの出現確率が示されている。
The HD 104 stores probability distribution data (FIG. 3) indicating the appearance probability of the round trip time measured by the timer 100a.
This probability distribution data is data indicating a probability distribution of a round trip time until an acknowledgment for a data segment is received when communication is normally performed. FIG. 3 shows the appearance probability of the round trip time of each data segment starting from the time at which the data segment was transmitted.

好ましい態様において、通信が正常に行われている場合に、オリジナルデータセグメントに対する確認応答が受信されるまでのラウンドトリップタイム(以下、O1−RTTという)と、再送データセグメントに対する確認応答が受信されるまでのラウンドトリップタイム(以下、S1−RTTという)のそれぞれの確率分布は、以下説明するように同様であるとして取り扱われる。   In a preferred embodiment, when communication is normally performed, a round trip time (hereinafter referred to as O1-RTT) until an acknowledgment for the original data segment is received, and an acknowledgment for the retransmitted data segment are received. The respective probability distributions of the round trip times up to (hereinafter, referred to as S1-RTT) are treated as being the same as described below.

図4に、オリジナルデータセグメントが送信された時刻を起点として、オリジナルデータセグメントに対する確認応答が受信されるまでの到着時刻の確率分布を実線で示し、再送データセグメントに対する確認応答パケットが受信されるまでの到着時刻の確率分布を点線で示す。この図において、時刻t1は、再送データセグメントが送信された時刻である。時刻t2は、オリジナルデータセグメントに対する確認応答が受信されるまでの到着時刻の出現確率と、再送データセグメントに対する確認応答が受信されるまでの到着時刻の出現確率とが等しくなるときの時刻である。この図に示すように、一般的に、オリジナルデータセグメントが送信されてから、ある時間が経過するまでの間(図示の例では時刻t2までの間)は、オリジナルデータセグメントに対する確認応答が受信される確率が高く、それ以後は、再送データセグメントに対する確認応答が受信される確率が高い。そこで、本実施形態では、図示のように同一曲線を描く2つの確率分布を用いて、再送データセグメント送信後に受信した確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものであるかの推定を行っている。   FIG. 4 shows, with a solid line, the probability distribution of the arrival time until the acknowledgment for the original data segment is received, starting from the time at which the original data segment was transmitted, until the acknowledgment packet for the retransmitted data segment is received. Is indicated by a dotted line. In this figure, time t1 is the time when the retransmission data segment was transmitted. Time t2 is a time when the appearance probability of the arrival time until the acknowledgment for the original data segment is received is equal to the appearance probability of the arrival time until the acknowledgment for the retransmission data segment is received. As shown in the figure, generally, an acknowledgment for the original data segment is received until a certain time elapses (until time t2 in the illustrated example) from the transmission of the original data segment. After that, there is a high probability that an acknowledgment for the retransmitted data segment will be received. Therefore, in the present embodiment, it is estimated whether the acknowledgment received after transmission of the retransmission data segment is for the original data segment or for the retransmission data segment by using two probability distributions that draw the same curve as illustrated. It is carried out.

更に、HD104には、CPU100に上述の確率分布の学習処理を行わせるための学習プログラムが記憶されている。この学習処理において、CPU100は、クライアント装置50にオリジナルデータセグメントを送信してから当該データセグメントに対応する確認応答を受信するまでのラウンドトリップタイムをタイマ100aにて測定させる。そして、測定された各ラウンドトリップタイムの出現確率を計算することにより、HD104に記憶された確率分布データの値を逐次的に更新する。以上のようにして、CPU100は、上述の確率分布を学習する。
好ましい態様において、タイムアウト後に再送データセグメントを送信してひとつめに受信した確認応答が再送データセグメントに対応していると判定された場合には、タイマ100bによる時間の計測値を用いて、確率分布データを更新するようにしてもよい。確認応答が再送データセグメントに対応していると判定される場合とは、タイマ100bによる計測値が図4における時刻t2までの経過時間より長く、且つひとつめに受信した確認応答と同一の確認応答番号を有するふたつめの確認応答を受信しない場合である。
Further, the HD 104 stores a learning program for causing the CPU 100 to perform the above-described learning process of the probability distribution. In this learning process, the CPU 100 causes the timer 100a to measure a round trip time from the transmission of the original data segment to the client device 50 to the reception of an acknowledgment corresponding to the data segment. Then, the value of the probability distribution data stored in the HD 104 is sequentially updated by calculating the measured appearance probability of each round trip time. As described above, the CPU 100 learns the above-described probability distribution.
In a preferred embodiment, when it is determined that the acknowledgment received first after transmitting the retransmission data segment after the timeout corresponds to the retransmission data segment, the probability distribution is calculated using the time measurement value of the timer 100b. The data may be updated. When it is determined that the acknowledgment corresponds to the retransmission data segment, the value measured by the timer 100b is longer than the elapsed time until time t2 in FIG. 4 and is the same acknowledgment as the first acknowledgment received. This is the case where the second acknowledgment having the number is not received.

なお、CPU100は、サーバ装置10とクライアント装置50との通信を開始してから確率分布の学習を行うようにしても良いし、予め統計された統計結果に基づいて確率分布の学習を行っても良い。具体的には、3通りの方法が考えられる。
第1の方法は、サーバ装置10とクライアント装置50との通信を開始後、テストデータセグメントを送信する期間を設け、その期間内に送受信されたデータセグメントおよび確認応答に基づいて確率分布データを生成する。そして、一定期間が経過した後に送信対象のデータセグメントの送信を開始し、データセグメントの再送が必要となる事態が発生した場合には、テストデータセグメントを用いて得られた確率分布データを用いて上述の判定を行う。送信対象のデータセグメントの送信が開始した後も、タイマ100aがラウンドトリップタイムを取得する度に確率分布データは更新される。
The CPU 100 may start learning the probability distribution after starting communication between the server device 10 and the client device 50, or may learn the probability distribution based on a statistical result obtained in advance. good. Specifically, three methods are conceivable.
In the first method, after starting communication between the server device 10 and the client device 50, a period for transmitting a test data segment is provided, and probability distribution data is generated based on the data segment transmitted and received during the period and the acknowledgment. I do. Then, after a certain period of time, the transmission of the data segment to be transmitted is started, and in the event that the data segment needs to be retransmitted, the probability distribution data obtained using the test data segment is used. The above determination is made. Even after the transmission of the data segment to be transmitted starts, the probability distribution data is updated each time the timer 100a acquires the round trip time.

第2の方法は、サーバ装置10とクライアント装置50との通信を開始後すぐに送信対象データセグメントの送信を開始し、しばらくの間は確率分布データが存在しないので上述の判定を行わず、確率分布の学習のみを行うという方法である。この方法において本願の伝送制御方法が用いられるのは、通信開始後一定期間が過ぎてからになるので、比較的に長時間に亙る通信に用いれば、効果が期待できる。
第3の方法は、サーバ装置10とクライアント装置50との通信を開始後すぐに送信対象のデータセグメントの送信を開始し、類似する通信環境を用いて予め測定された確率分布データを用いて上記判定を行うという方法である。尚、この場合、通信開始後に取得されたラウンドトリップタイムを用いて、過去の確率分布データを逐次更新することにより学習を行う。
また、図示しないクライアント装置50が複数存在する場合、CPU100は、クライアント装置50のIPアドレス毎に、上述の確率分布を学習する。
In the second method, the transmission of the data segment to be transmitted is started immediately after the communication between the server device 10 and the client device 50 is started, and since the probability distribution data does not exist for a while, the above-described determination is not performed. This is a method of learning only the distribution. In this method, the transmission control method of the present invention is used after a certain period of time has elapsed since the start of communication. Therefore, if the method is used for communication for a relatively long time, an effect can be expected.
The third method is to start transmission of a data segment to be transmitted immediately after starting communication between the server device 10 and the client device 50, and to use the above-described probability distribution data measured in advance using a similar communication environment. This is a method of making a judgment. In this case, learning is performed by sequentially updating past probability distribution data using the round trip time acquired after the start of communication.
When there are a plurality of client devices 50 (not shown), the CPU 100 learns the above-described probability distribution for each IP address of the client device 50.

以上のように、本実施形態においてサーバ装置10は、再送データセグメント送信後に確認応答が受信されるまでの経過時間を測定し、学習した確率分布のデータを用いて、測定した当該経過時間がO1−RTTである確率が高いのか又はS1−RTTである確率が高いのかを判定することにより、当該確認応答がオリジナルデータセグメントに対応するものであるのか又は再送データセグメントに対応するものであるのかを推定する。   As described above, in the present embodiment, the server device 10 measures the elapsed time until the acknowledgment is received after the retransmission data segment is transmitted, and uses the learned probability distribution data to measure the elapsed time O1 Determining whether the acknowledgment corresponds to the original data segment or to the retransmission data segment by determining whether the probability of being an RTT or S1-RTT is high; presume.

<クライアント装置50の構成>
クライアント装置50は、一般的なコンピュータと同様であるから、本発明に係る機能についてのみ説明する。
クライアント装置50は、サーバ装置10からデータセグメントを受信すると、当該データセグメントを受信したことを示す確認応答をサーバ装置10へ送信する機能を有している。具体的には、クライアント装置50は、確認応答のヘッダの確認応答番号フィールドに、次に受信を期待するデータセグメントのシーケンス番号をセットし、当該確認応答をサーバ装置10へ送信する。
<Configuration of Client Device 50>
Since the client device 50 is similar to a general computer, only the functions according to the present invention will be described.
When receiving the data segment from the server device 10, the client device 50 has a function of transmitting an acknowledgment indicating that the data segment has been received to the server device 10. Specifically, the client device 50 sets the sequence number of the data segment expected to be received next in the acknowledgment number field of the acknowledgment header, and transmits the acknowledgment to the server device 10.

(2.動作)
次に本実施形態の動作について説明する。
図5は、サーバ装置10とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。また、図6は、サーバ装置10の本実施形態に係るデータセグメントの送信及び受信動作を示すフローチャートである。なお、本実施形態においては、スライディングウィンドウ方式を用いて、データセグメントを送信するものとし、通信開始時点でのウィンドウサイズを「3」とする。また、クライアント装置が受信可能なデータセグメントの容量は送信装置が設定するウィンドウのサイズに対して十分に大きいと仮定する。また、説明の簡易のため、ウィンドウサイズは「3」のまま固定とする。
また、サーバ装置10のCPU100は、クライアント装置50とパケット通信を行っている間、データセグメントの送受信を行う度、HD104に記憶された学習プログラムを実行して、上述の確率分布の学習処理を行っているものとする。
(2. Operation)
Next, the operation of the present embodiment will be described.
FIG. 5 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. 6 is a flowchart illustrating a data segment transmission and reception operation of the server device 10 according to the present embodiment. In the present embodiment, the data segment is transmitted using the sliding window method, and the window size at the start of communication is “3”. It is also assumed that the capacity of the data segment that can be received by the client device is sufficiently larger than the size of the window set by the transmitting device. Also, for simplicity of explanation, the window size is fixed at “3”.
Further, the CPU 100 of the server device 10 executes the learning program stored in the HD 104 and performs the above-described learning process of the probability distribution every time a data segment is transmitted and received while performing packet communication with the client device 50. It is assumed that

まず、図5において、サーバ装置10から、シーケンス番号0、1000、2000を有するそれぞれのデータセグメント(オリジナルデータセグメントS1、S2、S3)がクライアント装置50へ送信される。3つのデータセグメントが送信されるのは、ウィンドウサイズが「3」であることに拠る。
図示の例では、通信端末40と移動パケット通信網30との間の通信区間に含まれる無線区間における電波環境が悪化し、当該オリジナルデータセグメントS1、S2、S3が一時的に通信網内に滞留している。その後、電波環境が改善され、移動パケット通信網30を介してオリジナルデータセグメントS1、S2、S3はクライアント装置50に送信される。即ち、オリジナルデータセグメントS1〜S3は、各々の送信時から大きく遅延してクライアント装置50に到着することとなる。そして、まず、オリジナルデータセグメントS1を受信したクライアント装置50により、オリジナルデータセグメントS1に対応する確認応答番号1000を有する確認応答R1がサーバ装置10へ送信される。
First, in FIG. 5, each data segment having the sequence numbers 0, 1000, and 2000 (original data segments S1, S2, and S3) is transmitted from the server device 10 to the client device 50. The reason that three data segments are transmitted is that the window size is “3”.
In the illustrated example, the radio wave environment in a wireless section included in a communication section between the communication terminal 40 and the mobile packet communication network 30 deteriorates, and the original data segments S1, S2, and S3 temporarily stay in the communication network. are doing. Thereafter, the radio wave environment is improved, and the original data segments S1, S2, S3 are transmitted to the client device 50 via the mobile packet communication network 30. That is, the original data segments S1 to S3 arrive at the client device 50 with a large delay from the time of transmission. Then, first, the client device 50 that has received the original data segment S1 transmits an acknowledgment R1 having an acknowledgment number 1000 corresponding to the original data segment S1 to the server device 10.

次に、以上説明したところまでのサーバ装置10の動作について、図6を参照しながら説明する。
サーバ装置10のCPU100は、ステップS10において、オリジナルデータセグメントS1、S2、S3の送信を行う。次いで、オリジナルデータセグメントS1に対してクライアント装置50から送信される確認応答の受信を待機する。このため、CPU100は、タイマ100aにタイムアウト値をセットし、タイマ100aにその後の経過時間の計測をさせる(ステップS11)。
そして、CPU100は、何らかの確認応答を受信したか否かを判断し(ステップS12)、この判断結果が「NO」である場合にはタイマ100aのタイムアウトが発生したか否かを判断する(ステップS13)。そして、ステップS13の判断結果が「NO」である場合には、ステップS12に戻る。以後、CPU100は、タイマ100aにタイムアウトが発生するまでの間、確認応答が受信されない限り、ステップS12およびS13の判断を繰り返す。
Next, the operation of the server device 10 up to the point described above will be described with reference to FIG.
In step S10, 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 S11).
Then, the CPU 100 determines whether or not any confirmation response has been received (step S12). If the determination result is “NO”, the CPU 100 determines whether or not a timeout of the timer 100a has occurred (step S13). ). If the result of the determination in step S13 is "NO", the flow returns to step S12. Thereafter, the CPU 100 repeats the determinations in steps S12 and S13 until an acknowledgment is received until the timer 100a times out.

そして、クライアント装置50から送信された確認応答R1を受信する前に、タイムアウトが発生したとする。この場合、確認応答を受信することなく、タイマ100aによって測定される経過時間がタイムアウト値に達し、トリガ信号が出力される(ステップS12;NO、ステップS13;YES)。そして、CPU100はタイマ100aの値をリセットするとともに、処理をステップS14へ進める。   Then, it is assumed that a timeout occurs before receiving the confirmation response R1 transmitted from the client device 50. 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 S12; NO, step S13; YES). Then, CPU 100 resets the value of timer 100a and advances the process to step S14.

ステップS14において、CPU100は、オリジナルデータセグメントS1がクライアント装置50に受信されなかったと判定し、シーケンス番号0を有するデータセグメント(図5における再送データセグメントS′1)をクライアント装置50へ再送するとともに、タイマ100aにタイムアウト値をセットし、タイマ100aに経過時間の計測をさせる。また、この際、タイマ100bにも経過時間の測定を開始させる。   In step S14, 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. 5) 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 timer 100b also starts measuring the elapsed time.

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

ステップS17において、CPU100は、タイマ100bに経過時間の測定を終了させる。そして、測定された経過時間とHD104に記憶されている確率分布データとを用いて、確認応答R1がオリジナルデータセグメントS1に対応するものである確率が高いのか、再送データセグメントS′1に対応するものである確率が高いのかを判定する処理を行う(ステップS18)。   In step S17, the CPU 100 causes the timer 100b to stop measuring the elapsed time. Then, using the measured elapsed time and the probability distribution data stored in the HD 104, it is determined whether the acknowledgment response R1 has a high probability of corresponding to the original data segment S1 or corresponds to the retransmission data segment S'1. A process is performed to determine whether the probability is high (step S18).

具体的には、上述の<サーバ装置10の構成>欄で説明したように、図4における2種類の確率分布データの関係に着目して、ステップS17で測定された経過時間がS1−RTTである確率が高いのか又はO1−RTTである確率が高いのかを判定する。   More specifically, as described in the above <Configuration of server device 10> column, the elapsed time measured in step S17 is calculated as S1-RTT, focusing on the relationship between the two types of probability distribution data in FIG. It is determined whether a certain probability is high or a probability of being O1-RTT is high.

好ましい態様において、HD104は、図3に示すような1種類の確率分布データを記憶しておく。そして、CPU100は、タイマ100bが測定した経過時間の値を当該確率分布データと比較し、測定値に対応するS1−RTTの出現確率を求める。また、タイマ100bによる測定値に、再送データセグメント送信の契機となったタイムアウト値として100aに設定された値を足し算して、測定値+タイムアウト値に対応するO1−RTTの出現確率を求める。その結果、S1−RTTの出現確率が、O1−RTTの出現確率と等しいか大きい場合、確認応答R1は再送データセグメントに対して送信されたものとみなす。逆に、前者が後者よりも小さい場合、確認応答R1はオリジナルデータセグメントに対して送信されたものとみなす。   In a preferred embodiment, the HD 104 stores one type of probability distribution data as shown in FIG. Then, the CPU 100 compares the value of the elapsed time measured by the timer 100b with the probability distribution data, and obtains the appearance probability of S1-RTT corresponding to the measured value. Further, a value set to 100a as a timeout value triggered by retransmission data segment transmission is added to the value measured by the timer 100b, and the appearance probability of O1-RTT corresponding to the measured value + timeout value is calculated. As a result, if the probability of occurrence of S1-RTT is equal to or greater than the probability of occurrence of O1-RTT, the acknowledgment R1 is considered to have been transmitted for the retransmitted data segment. Conversely, if the former is smaller than the latter, the acknowledgment R1 is considered to have been sent for the original data segment.

別の態様において、HD104は、図4に示すような2種類の確率分布データを記憶しておく。CPU100は、タイマ100bによる測定値に、再送データセグメント送信の契機となったタイムアウト値として100aに設定された値を足し算して、O1−RTTの出現確率を示す確率分布データ(図4の実線)と比較し、測定値+タイムアウト値に対応するO1−RTTの出現確率を求める。また、同様に、測定値+タイムアウト値をS1−RTTの出現確率を示す確率分布データ(図4の点線)と比較し、測定値+タイムアウト値に対応するS1−RTTの出現確率を求める。そして、S1−RTTの確率分布データを参照して求められた出現確率が、O1−RTTの確率分布データを参照して求められた出現確率と等しいか大きい場合、確認応答R1は再送データセグメントに対して送信されたものとみなす。逆に、前者が後者よりも小さい場合、確認応答R1はオリジナルデータセグメントに対して送信されたものとみなす。   In another aspect, the HD 104 stores two types of probability distribution data as shown in FIG. The CPU 100 adds the value set to 100a as the timeout value that triggered the retransmission data segment transmission to the value measured by the timer 100b, and the probability distribution data indicating the occurrence probability of O1-RTT (solid line in FIG. 4). Then, the appearance probability of O1-RTT corresponding to the measured value + timeout value is obtained. Similarly, the measured value + timeout value is compared with probability distribution data (dotted line in FIG. 4) indicating the appearance probability of S1-RTT, and the appearance probability of S1-RTT corresponding to the measured value + timeout value is obtained. If the occurrence probability obtained by referring to the probability distribution data of S1-RTT is equal to or greater than the occurrence probability obtained by referring to the probability distribution data of O1-RTT, the acknowledgment R1 is included in the retransmission data segment. Is assumed to have been sent. Conversely, if the former is smaller than the latter, the acknowledgment R1 is considered to have been sent for the original data segment.

図4に示すS1−RTTの確率分布データとO1−RTTの確率分布データを用いる場合、2つの曲線の交差点(図4の時刻t2)を閾値と定め、タイマ100bの計測値にタイムアウト値を足した値が当該閾値より小さい場合には、確認応答R1はオリジナルデータセグメントに対応するものとみなし、閾値と等しいかより大きな場合には、再送データセグメントに対応するとみなすようにしてもよい。
例えば、図4に示すように、ステップS17で測定された経過時間にタイムアウト値を足した値がt′1であったとすると、O1−RTTである確率が高いことが分かる。
When the probability distribution data of S1-RTT and the probability distribution data of O1-RTT shown in FIG. 4 are used, the intersection of the two curves (time t2 in FIG. 4) is set as the threshold, and the timeout value is added to the measurement value of the timer 100b. If the calculated value is smaller than the threshold value, the acknowledgment R1 may be regarded as corresponding to the original data segment, and if equal to or larger than the threshold value, it may be regarded as corresponding to the retransmission data segment.
For example, as shown in FIG. 4, if the value obtained by adding the timeout value to the elapsed time measured in step S17 is t'1, it can be understood that the probability of being O1-RTT is high.

従って、CPU100は、確認応答R1がオリジナルデータセグメントS1に対応するものである確率が高いと判定し、ステップS21へ進む。この場合、S1に対する確認応答を受け取ったので、ウィンドウがデータセグメントひとつ分だけスライドし、後続のオリジナルデータセグメントをひとつ送信することが可能となる。そこで、ステップS21において、後続のシーケンス番号3000を有するオリジナルデータセグメント(図5のS4)を送信する。そして、ステップS11、ステップS12へと進む。   Accordingly, the CPU 100 determines that the probability that the confirmation response R1 corresponds to the original data segment S1 is high, and proceeds to step S21. In this case, since the acknowledgment response to S1 is received, the window slides by one data segment, and one subsequent original data segment can be transmitted. Therefore, in step S21, the original data segment having the subsequent sequence number 3000 (S4 in FIG. 5) is transmitted. Then, the process proceeds to step S11 and step S12.

ここで、図5に戻って、図6のS21に対応する処理として、サーバ装置10からクライアント装置50へオリジナルデータセグメントS4が送信されている。そして、処理は、ステップS11に戻り、タイマ100aによる経過時間の測定が開始される。
その後、CPU100は、タイマ100aにタイムアウトが発生するまでの間、確認応答が受信されない限り、上述したステップS12およびS13の判断を繰り返す。
一方、サーバ装置10で上述の処理が行われている間、クライアント装置50にオリジナルデータセグメントS2が受信され、当該オリジナルデータセグメントS2に対応する、確認応答番号2000を有する確認応答R2が、サーバ装置10へ送信される。
Here, returning to FIG. 5, as a process corresponding to S21 in FIG. 6, the original data segment S4 is transmitted from the server device 10 to the client device 50. Then, the process returns to step S11, and measurement of the elapsed time by the timer 100a is started.
Thereafter, the CPU 100 repeats the determinations in steps S12 and S13 described above until an acknowledgment is received until the timer 100a times out.
On the other hand, while the above processing is being performed in the server device 10, the original data segment S2 is received by the client device 50, and the acknowledgment R2 having the acknowledgment number 2000 corresponding to the original data segment S2 is sent to the server device 10. Sent to 10.

この確認応答番号2000を有する確認応答R2がサーバ装置10に到達すると、図6において、サーバ装置10のCPU100によるステップS12の判断結果は「YES」となる。この結果、ウィンドウがさらにデータセグメントひとつ分スライドし、後続のシーケンス番号4000を有するオリジナルデータセグメント(図5におけるS5)を送信する(ステップS10)。
このステップに対応する処理として、図5においては、サーバ装置10からオリジナルデータセグメントS5がクライアント装置50へ送信される。
When the acknowledgment R2 having the acknowledgment number 2000 reaches the server device 10, the determination result of the CPU 100 of the server device 10 in step S12 is “YES” in FIG. As a result, the window further slides by one data segment, and the original data segment having the subsequent sequence number 4000 (S5 in FIG. 5) is transmitted (step S10).
As a process corresponding to this step, the original data segment S5 is transmitted from the server device 10 to the client device 50 in FIG.

以上のようにして、サーバ装置10からクライアント装置50へデータセグメントが送信される。
なお、図6におけるステップS19で、CPU100は、再送データセグメントに対応するものである確率が高いと判定した場合には、ステップS20に進む。ステップS20においては、後続の再送データセグメントが有るか否かの判定を行う。有ると判定した場合には、ステップS14に進み、無いと判定した場合には、ステップS21に進む。
As described above, the data segment is transmitted from the server device 10 to the client device 50.
When the CPU 100 determines in step S19 in FIG. 6 that the probability that the data corresponds to the retransmission data segment is high, the process proceeds to step S20. In step S20, it is determined whether or not there is a subsequent retransmission data segment. When it is determined that there is, the process proceeds to step S14, and when it is determined that there is no process, the process proceeds to step S21.

[第2実施形態]
次に、図1〜図8を参照しながら、第1実施形態と同様の構成を持つサーバ装置10とクライアント装置50間でパケット通信を行う他の例について説明する。
[Second embodiment]
Next, another example of performing packet communication between the server device 10 and the client device 50 having the same configuration as in the first embodiment will be described with reference to FIGS.

第2実施形態では、第1実施形態で用いた確率分布(以下、確率分布1という)に加え、別の確率分布(以下、確率分布2という)も併用して、図6におけるステップS18の判定処理を行う。
確率分布2は図7に例示するが、タイムアウト発生による再送データセグメントの送信時点を起点とし、タイムアウト後に受け取ったひとつめの確認応答がオリジナルデータセグメントに対する確認応答であった場合の当該確認応答を受信するまでに要した時間(以下、仮のラウンドトリップタイムという)の出現確率を示す。これに対し、確率分布1は、オリジナルデータセグメントの送信時点を起点として得られたラウンドトリップタイムの出現確率を示すが、オリジナルデータセグメントの送信時点と再送データセグメントの送信時点では通信路の状況が必ずしも同程度ではない。このため、ステップS18の判定処理において、確認応答がオリジナルデータセグメントに対応するものである確率を求める場合には、確率分布1に基づくよりも確率分布2の方に基づいた方が信頼性の高い判定結果が得られる。
このような事情のもと、本実施形態では、受信した確認応答が再送データセグメントに対する確認応答である確率を求める場合には確率分布1を用い、オリジナルデータセグメントに対する確認応答である確率を求める場合には確率分布2を用いている。
In the second embodiment, in addition to the probability distribution used in the first embodiment (hereinafter referred to as probability distribution 1), another probability distribution (hereinafter referred to as probability distribution 2) is used in combination, and the determination in step S18 in FIG. Perform processing.
Probability distribution 2 is exemplified in FIG. 7, and starts from the transmission time point of the retransmission data segment due to the occurrence of the timeout, and receives the acknowledgment when the first acknowledgment received after the timeout is an acknowledgment for the original data segment. This indicates the appearance probability of the time required to perform the operation (hereinafter referred to as a temporary round trip time). On the other hand, the probability distribution 1 shows the appearance probability of the round trip time obtained from the transmission time of the original data segment as a starting point. Not always the same. For this reason, in the determination processing of step S18, when determining the probability that the confirmation response corresponds to the original data segment, the reliability based on the probability distribution 2 is higher than that based on the probability distribution 1. A judgment result is obtained.
Under such circumstances, in the present embodiment, when the probability that the received acknowledgment is the acknowledgment for the retransmitted data segment is obtained, the probability distribution 1 is used, and when the probability that the received acknowledgment is the acknowledgment for the original data segment is obtained. Uses the probability distribution 2.

(1.構成)
第2実施形態の構成は、その主要な部分において第1実施形態と同様であるので、第2実施形態で用いられる付加的な機能についてのみ説明する。
まず、第1実施形態と同様、第2実施形態によるサーバ装置10のCPU100は2種類のタイマ100aと100bを有する(図1参照)。タイマ100a、100b共に、第1実施形態と同様の機能を有するが、第2実施形態において、タイマ100bによって測定された経過時間の値は、ステップS18の判定処理に用いられるのみでなく、確率分布2の学習にも用いられる。
(1. Configuration)
Since the configuration of the second embodiment is the same as that of the first embodiment in the main part, only the additional functions used in the second embodiment will be described.
First, as in the first embodiment, the CPU 100 of the server device 10 according to the second embodiment has two types of timers 100a and 100b (see FIG. 1). Both the timers 100a and 100b have the same function as the first embodiment. However, in the second embodiment, the value of the elapsed time measured by the timer 100b is not only used for the determination process in step S18, but also for the probability distribution. 2 is also used for learning.

HD104には、確率分布1データに加え、確率分布2データが記憶されている。同様に、HD104には、第1実施形態で述べた確率分布1を学習するための学習プログラム(以下、第1の学習プログラムという)に加え、CPU100に確率分布2の学習処理を行わせるための学習プログラム(以下、第2の学習プログラムという)が記憶されている。
第2の学習プログラムによる処理において、CPU100は、データセグメント再送後に受信された確認応答がオリジナルデータセグメントに対応するものである確率が高いと判定された場合、タイマ100bによって測定された経過時間の値を用いてHD104に記憶された確率分布2データの値を更新する。具体的には、タイマ100bが測定した経過時間がオリジナルデータセグメントに対する仮のラウンドトリップタイムである確率を求め、求めた確率を用いて、HD104に記憶された確率分布2データの値を逐次的に更新する。
尚、確率分布2データの更新の具体的な方法については、過去にタイマ100bによって測定された値と合わせて再計算を行うなど様々な方法が考えられ、任意に変更可能である。
The HD 104 stores probability distribution 2 data in addition to probability distribution 1 data. Similarly, the HD 104 has a learning program for learning the probability distribution 1 described in the first embodiment (hereinafter, referred to as a first learning program), and also has the CPU 100 perform a learning process for the probability distribution 2. A learning program (hereinafter, referred to as a second learning program) is stored.
In the process according to the second learning program, when it is determined that the acknowledgment received after resending the data segment is highly likely to correspond to the original data segment, the CPU 100 determines the value of the elapsed time measured by the timer 100b. Is used to update the value of the probability distribution 2 data stored in the HD 104. Specifically, the probability that the elapsed time measured by the timer 100b is a provisional round trip time for the original data segment is determined, and the value of the probability distribution 2 data stored in the HD 104 is sequentially determined using the determined probability. Update.
In addition, as a specific method of updating the probability distribution 2 data, various methods are conceivable, such as performing recalculation together with a value measured by the timer 100b in the past, and can be arbitrarily changed.

ここで、上述の、「データセグメント再送後に受信された確認応答がオリジナルデータセグメントに対応するものである確率が高いと判定された場合」とは、以下のような場合である。CPU100が再送データセグメント送信後にオリジナルデータセグメントに対する確認応答(図5のR1)と再送データセグメントに対する確認応答(図5のR'1)の両方を受信する場合、確認応答R1を先に受信し、確認応答R'1を後に受信することとなる。図6のステップS18の判定処理は確認応答R1を受信した時点で行われ、この時点ではいずれのセグメントに対する確認応答かに関する推定は可能であっても断定はできない。後になって確認応答R'1を受信した時点で、先に受信された確認応答がオリジナルデータセグメントに対するものであり、後に受信された確認応答が再送データセグメントに対するものであることが断定できる。このように、ステップS18の判定処理によって得られた結果の正否は、2つめの確認応答R'1を受信した時点で始めて確定するので、CPU100は2つめの確認応答を受信した時点で、タイマ100bによる測定値を用いて確率分布2データを更新するようにしている。   Here, the above-mentioned "case where it is determined that the acknowledgment received after resending the data segment has a high probability that it corresponds to the original data segment" is as follows. When the CPU 100 receives both the acknowledgment for the original data segment (R1 in FIG. 5) and the acknowledgment for the retransmitted data segment (R'1 in FIG. 5) after transmitting the retransmission data segment, the acknowledgment R1 is received first, The acknowledgment R'1 will be received later. The determination process of step S18 in FIG. 6 is performed when the acknowledgment R1 is received. At this time, it cannot be concluded that it is possible to estimate which segment the acknowledgment is for. When the acknowledgment R'1 is received later, it can be determined that the acknowledgment received earlier is for the original data segment and the acknowledgment received later is for the retransmitted data segment. As described above, the correctness of the result obtained by the determination processing in step S18 is determined only when the second confirmation response R'1 is received, and therefore, when the second confirmation response is received, the CPU 100 The probability distribution 2 data is updated using the measurement value of 100b.

実際には、図5に示すように、再送データセグメントS'1がクライアント装置50によって受信されるのはオリジナルデータセグメントS1、S2、S3を受信した後であるので、確認応答R'1に含まれる確認応答番号はひとつめの確認応答R1とは異なっている。従って、サーバ装置10のCPU100は、同一の確認応答番号を有する確認応答が2個(図5のR3とR'1)受信された時点で、確率分布2データの更新を行うようにしている。   In practice, as shown in FIG. 5, the retransmission data segment S′1 is received by the client device 50 after receiving the original data segments S1, S2, S3, and is therefore included in the acknowledgment R′1. The acknowledgment number is different from the first acknowledgment R1. Therefore, the CPU 100 of the server device 10 updates the probability distribution 2 data when two acknowledgments (R3 and R'1 in FIG. 5) having the same acknowledgment number are received.

尚、第1実施形態において説明した確率分布1の学習処理と同様、第1〜第3いずれかの方法を用いて確率分布2を学習するようにすればよい。第1の方法とは、サーバ装置10とクライアント装置50との通信を開始後、テストデータセグメントを送信する期間を設け、このテストデータセグメントの再送が発生した場合にタイマ100bが取得した仮のラウンドトリップタイムに基づいて確率分布2データを生成する方法である。   Note that, similarly to the learning process of the probability distribution 1 described in the first embodiment, the probability distribution 2 may be learned by using any one of the first to third methods. The first method is to provide a period for transmitting a test data segment after starting communication between the server device 10 and the client device 50, and to provide a temporary round acquired by the timer 100b when the test data segment is retransmitted. This is a method of generating probability distribution 2 data based on a trip time.

第2の方法は、通信開始後に確率分布2の学習を開始するという方法である。この場合、通信開始後しばらくの間は、確率分布2データが存在しないので上述の判定を行わず、一定の時間が経過してから判定処理が行われる。ここでは、再送データセグメントを送信した場合にタイマ100bによる測定を開始させ、ひとつめの確認応答を受信するまでの経過時間を測定しておく。そして、同一の確認応答番号を有するふたつめの確認応答を受信した時点で、タイマ100bによる測定値を用いて確率分布データを生成する。   The second method is to start learning the probability distribution 2 after starting communication. In this case, since the probability distribution 2 data does not exist for a while after the start of communication, the above-described determination is not performed, and the determination process is performed after a certain time has elapsed. Here, when the retransmission data segment is transmitted, the measurement by the timer 100b is started, and the elapsed time until the first acknowledgment is received is measured. Then, when the second acknowledgment having the same acknowledgment number is received, the probability distribution data is generated using the value measured by the timer 100b.

第3の方法は、通信開始後、類似する通信環境を用いて予め測定された確率分布2データを用いてすぐに上記判定を開始するという方法である。具体的には、従来技術欄で説明したタイムスタンプオプションを用いることにより、再送データセグメント送信後に受信された確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものかを判別し、予め確率分布2を学習しておく。そして、通信開始後にこの確率分布2データを更新していく形で上述の確率分布2の学習処理を行うようにすれば良い。尚、このタイムスタンプオプションは、第1の方法におけるテストデータセグメントの送信期間、および第2の方法における通信開始直後に学習のみを行っている期間のいずれの場合にも適用可能である。   The third method is a method in which after the communication starts, the above determination is started immediately using the probability distribution 2 data measured in advance using a similar communication environment. Specifically, by using the time stamp option described in the related art section, it is determined whether the acknowledgment received after transmitting the retransmission data segment is for the original data segment or for the retransmission data segment, and the probability distribution is determined in advance. Learn 2 Then, the learning process of the probability distribution 2 may be performed by updating the probability distribution 2 data after the communication starts. This time stamp option is applicable to both the transmission period of the test data segment in the first method and the period in which only learning is performed immediately after the start of communication in the second method.

このようにして学習された確率分布2と、第1実施形態で説明した確率分布1とを用いて、以下のことが分かる。まず、通信が正常に行われている場合に、再送データセグメント送信後に当該再送データセグメントに対する確認応答が受信されるまでのラウンドトリップタイム(以下、S2−RTTという)の確率分布は、確率分布1(図3)で表されうる。また、再送データセグメント送信後にオリジナルデータセグメントに対する確認応答が受信されるまでの仮のラウンドトリップタイム(以下、O2−pRTTという)は、確率分布2(図7)で表される。そこで、図8に、再送データセグメントが送信された時刻を起点として、O2−pRTTの確率分布(確率分布2)を実線で示し、S2−RTTの確率分布(確率分布1)を点線で示す。この図において、2つの曲線の交点である時刻t′2は、O2−pRTTの出現確率と、S2−RTTの出現確率とが等しくなるときの時刻である。図示の例では、再送データセグメントが送信されてから時刻t′2が経過するまでの間は、オリジナルデータセグメントに対する確認応答が受信される確率が高く、時刻t′2が経過した後は、再送データセグメントに対する確認応答が受信される確率が高いことが分かる。本実施形態では、この性質を利用して、確率分布1データおよび確率分布2データの両方に基づいて、図6のステップS18における判定を行うようにしている。   Using the probability distribution 2 learned in this way and the probability distribution 1 described in the first embodiment, the following can be understood. First, when communication is normally performed, a probability distribution of a round trip time (hereinafter, referred to as S2-RTT) from transmission of a retransmission data segment to reception of an acknowledgment for the retransmission data segment is probability distribution 1 (FIG. 3). Further, a provisional round trip time (hereinafter, referred to as O2-pRTT) from the transmission of the retransmission data segment to the reception of the acknowledgment for the original data segment is represented by probability distribution 2 (FIG. 7). Therefore, in FIG. 8, the probability distribution of O2-pRTT (probability distribution 2) is indicated by a solid line, and the probability distribution of S2-RTT (probability distribution 1) is indicated by a dotted line, starting from the time when the retransmission data segment is transmitted. In this figure, time t'2, which is the intersection of the two curves, is the time when the appearance probability of O2-pRTT is equal to the appearance probability of S2-RTT. In the illustrated example, the probability that an acknowledgment for the original data segment is received is high until the time t'2 elapses after the retransmission data segment is transmitted, and after the time t'2 elapses, the retransmission is performed. It can be seen that the probability that an acknowledgment for the data segment is received is high. In the present embodiment, utilizing this property, the determination in step S18 in FIG. 6 is performed based on both the probability distribution 1 data and the probability distribution 2 data.

また、図示しないクライアント装置50が複数存在する場合、CPU100は、クライアント装置50のIPアドレス毎に、上述の確率分布2を学習する。   When there are a plurality of client devices 50 (not shown), the CPU 100 learns the above-described probability distribution 2 for each IP address of the client device 50.

(2.動作)
次に、第2実施形態の動作について説明する。
第2実施形態の動作は、図6のステップS18の判定処理に係る動作を除いて、第1実施形態と同一であるので、当該判定処理に係る部分のみについて説明する。
(2. Operation)
Next, the operation of the second embodiment will be described.
The operation of the second embodiment is the same as that of the first embodiment except for the operation related to the determination processing in step S18 in FIG. 6, and therefore, only the part related to the determination processing will be described.

ステップS18の判定処理は、具体的に以下のように行われる。CPU100は、タイマ100bが測定した経過時間を、確率分布1データおよび確率分布2データの各々と比較する。そして、タイマ100bによる測定値に対応する出現確率を各々求め、確率分布1データを参照して求められた出現確率が、確率分布2データを参照求められた出現確率と等しいか又は大きい場合、確認応答R1は再送データセグメントに対して送信されたものとみなす。逆に、前者が後者よりも小さい場合、確認応答R1はオリジナルデータセグメントに対して送信されたものとみなす。   The determination process in step S18 is specifically performed as follows. The CPU 100 compares the elapsed time measured by the timer 100b with each of the probability distribution 1 data and the probability distribution 2 data. Then, the occurrence probabilities corresponding to the values measured by the timer 100b are determined, and if the appearance probability determined by referring to the probability distribution 1 data is equal to or greater than the occurrence probability determined by referring to the probability distribution 2 data, the confirmation is performed. The response R1 is considered to have been transmitted for the retransmission data segment. Conversely, if the former is smaller than the latter, the acknowledgment R1 is considered to have been sent for the original data segment.

別の方法として、確率分布1データおよび確率分布2データの各々を示す2曲線の交点(図8のt’2)を閾値と定め、タイマ100bの計測値が当該閾値より小さい場合には、確認応答R1はオリジナルデータセグメントに対応するものとみなし、閾値と等しいかより大きな場合には、再送データセグメントに対応するとみなすようにしてもよい。
図8の例では、時刻t’1に確認応答R1が受信されているので、当該確認応答はオリジナルデータセグメントに対応するものである確率が高いと判断され(ステップS19;NO)、次のステップに進む。
As another method, an intersection (t'2 in FIG. 8) of the two curves indicating each of the probability distribution 1 data and the probability distribution 2 data is determined as a threshold, and if the measured value of the timer 100b is smaller than the threshold, a confirmation is made. The response R1 may be considered to correspond to the original data segment, and if it is equal to or greater than the threshold, it may be considered to correspond to the retransmitted data segment.
In the example of FIG. 8, since the acknowledgment R1 has been received at the time t′1, it is determined that the acknowledgment has a high probability of corresponding to the original data segment (step S19; NO), and the next step Proceed to.

また、ステップS18の判定処理を行った後、本実施形態では、同一の確認応答番号を有する確認応答を2個受信した場合に、確率分布2データを更新する処理を行う。これは、上述したように、この同一の確認応答を2個受信することによってはじめて、ステップS18による判定処理が確定するためである。   Further, in the present embodiment, after performing the determination processing in step S18, when two acknowledgments having the same acknowledgment number are received, processing for updating the probability distribution 2 data is performed. This is because, as described above, the determination process in step S18 is determined only by receiving two identical confirmation responses.

[変形例]
以上、本発明の実施形態について説明したが、本発明はその主要な特徴から逸脱することなく他の様々な形態で実施することが可能である。なお、変形例としては、例えば、以下のようなものが考えられる。
[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は、IPアドレス毎に、上述の確率分布1および2を学習した。しかし、サブネットワーク毎に、ラウンドトリップタイムの確率分布を学習するようにしても良い。また、移動パケット通信網30が複数存在する場合、各移動パケット通信網について確率分布1および2を学習するようにしても良い。これは、通信網によって通信環境が異なるため、通信網毎に確率分布を学習し、それに基づいて判定を行った方がより信頼性の高い判定結果が得られるからである。   In the above embodiment, the server device 10 has learned the above probability distributions 1 and 2 for each IP address. However, the probability distribution of the round trip time may be learned for each subnetwork. When there are a plurality of mobile packet communication networks 30, the probability distributions 1 and 2 may be learned for each mobile packet communication network. This is because, since the communication environment differs depending on the communication network, a more reliable determination result can be obtained by learning the probability distribution for each communication network and making a determination based on the probability distribution.

また、サーバ装置10で行った上述の確率分布1および2の学習及び確認応答に対するデータセグメントの推定は、他のサーバ装置で行っても良い。このような構成において、サーバ装置10は、再送データセグメント送信後に確認応答を受信すると、この他のサーバ装置に当該確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものかを問い合わせる。他のサーバ装置は、上述のサーバ装置10が行った判定処理を行い、この判定結果をサーバ装置10へ送信する。サーバ装置10は、送信された判定結果に基づいて、確認応答に対するデータセグメントを推定することができる。   The learning of the probability distributions 1 and 2 performed by the server device 10 and the estimation of the data segment in response to the confirmation response 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 estimate a data segment for 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および第2実施形態に係る通信システム1の構成を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration of a communication system 1 according to first and second embodiments of the present invention. 第1および第2実施形態に係るサーバ装置10の構成を示すブロック図である。FIG. 2 is a block diagram illustrating a configuration of a server device 10 according to the first and second embodiments. 第1実施形態に係る確率分布(第2実施形態における確率分布1)の大略を示す図である。It is a figure showing roughly the probability distribution concerning a 1st embodiment (probability distribution 1 in a 2nd embodiment). 第1実施形態に係る確率分布を用いて出現確率の違いを説明するための図である。It is a figure for explaining a difference of appearance probability using a probability distribution concerning a 1st embodiment. 第1および第2実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。9 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 according to the first and second embodiments. 第1および第2実施形態に係るサーバ装置10のパケット送信及び受信動作を示すフローチャートである。9 is a flowchart illustrating packet transmission and reception operations of the server device 10 according to the first and second embodiments. 第2実施形態に係る確率分布2の大略を示す図である。It is a figure showing roughly the probability distribution 2 concerning a 2nd embodiment. 第2実施形態に係る確率分布1及び確率分布2を用いて出現確率の違いを説明するための図である。It is a figure for explaining a difference of appearance probability using probability distribution 1 and probability distribution 2 concerning a 2nd 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.

符号の説明Explanation of reference numerals

1・・・通信システム、10・・・サーバ装置、100・・・CPU、100a・・・タイマ、100b・・・タイマ、101・・・通信部、102・・・RAM、103・・・ROM、104・・・HD、105・・・記憶部、111・・・バス、20・・・インターネット、30・・・移動パケット通信網、40・・・通信端末、50・・・クライアント装置。   DESCRIPTION OF SYMBOLS 1 ... Communication system, 10 ... Server device, 100 ... CPU, 100a ... Timer, 100b ... 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 (15)

データブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報を生成する第1の生成過程と、
送信装置から受信装置に対して複数のデータブロックを順次送信する送信過程と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、経過時間を測定するための計時手段を起動する過程と、
前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得過程と、
前記取得された経過時間の値と前記第1の確率分布情報に基づいて、前記確認応答信号が前記送信過程において送信された複数のデータブロックの1に対する確認応答であるか否かを推定する推定過程とを有し、
前記送信過程は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると推定された場合に、前記送信過程において送信された複数のデータブロックに後続するデータブロックを送信する
ことを特徴とする通信網における伝送制御方法。
A first generation process of generating first probability distribution information indicating a probability of occurrence of a round trip time of a data block;
A transmitting step of sequentially transmitting a plurality of data blocks from the transmitting device to the receiving device,
Among the plurality of data blocks transmitted to the receiving device, retransmitting a data block that has not received an acknowledgment signal from the receiving device, and activating a timing unit for measuring elapsed time,
When receiving an acknowledgment signal from the receiving device, an obtaining step of obtaining the elapsed time measured by the timing unit,
Estimating, based on the acquired elapsed time value and the first probability distribution information, whether the acknowledgment signal is an acknowledgment for one of the plurality of data blocks transmitted in the transmission process. Having a process,
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 estimated to be an acknowledgment for one of the transmitted data blocks. A transmission control method in a communication network.
前記後続するデータブロックを送信した後、前記推定過程において行われた推定が正しいと判断された場合に、前記取得過程において取得した経過時間の値を用いて、前記経過時間の出現確率を示す第2の確率分布情報を生成する第2の生成過程を更に有し、
前記推定過程は、前記取得過程において取得した経過時間の値、前記第1および第2の確率分布情報に基づいて、前記推定を行う
ことを特徴とする請求項1に記載の伝送制御方法。
After transmitting the subsequent data block, if it is determined that the estimation performed in the estimation process is correct, the value of the elapsed time acquired in the acquisition process is used to indicate the appearance probability of the elapsed time. A second generation step of generating probability distribution information of No. 2;
The transmission control method according to claim 1, wherein in the estimation step, the estimation is performed based on a value of the elapsed time acquired in the acquisition step and the first and second probability distribution information.
データブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報を生成する第1の生成手段と、
受信装置に対して複数のデータブロックを順次送信する送信手段と、
経過時間を測定するための計時手段と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、前記計時手段を起動する手段と、
前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得手段と、
前記取得された経過時間の値と前記第1の確率分布情報に基づいて、前記確認応答信号が前記送信手段により送信された複数のデータブロックの1に対する確認応答であるか否かを推定する推定手段とを有し、
前記送信手段は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると推定された場合に、前記送信手段により送信された複数のデータブロックに後続するデータブロックを送信する
ことを特徴とする通信装置。
First generating means for generating first probability distribution information indicating a probability of occurrence of a round trip time of a data block;
Transmitting means for sequentially transmitting a plurality of data blocks to the receiving device,
A timing means for measuring elapsed time;
Among the plurality of data blocks transmitted to the receiving device, retransmitting a data block that has not received an acknowledgment signal from the receiving device, and activating the timing unit.
When receiving an acknowledgment signal from the receiving device, acquiring means for acquiring the elapsed time measured by the clock means,
Estimating whether the acknowledgment signal is an acknowledgment for one of the plurality of data blocks transmitted by the transmission unit based on the acquired elapsed time value and the first probability distribution information. Means,
The transmitting unit transmits a data block subsequent to the plurality of data blocks transmitted by the transmitting unit when the acknowledgment signal is estimated to be an acknowledgment response to one of the plurality of transmitted data blocks. A communication device characterized in that:
複数の前記受信装置に対して前記複数のデータブロックを送信する場合に、
前記第1の生成手段は、前記複数の受信装置との間に設定された複数のコネクションの各々について前記第1の確率分布情報を生成し、
前記推定手段は、前記複数の受信装置のいずれかから確認応答信号を受信した際に、前記取得手段により取得した経過時間の値と当該いずれかの受信装置との間に設定されているコネクションについて生成された前記第1の確率分布情報に基づいて前記推定を行う
ことを特徴とする請求項3に記載の通信装置。
When transmitting the plurality of data blocks to a plurality of the receiving device,
The first generation unit generates the first probability distribution information for each of a plurality of connections set between the plurality of reception devices,
The estimating unit, when receiving an acknowledgment signal from any of the plurality of receiving devices, the value of the elapsed time acquired by the acquiring unit and the connection set between any of the receiving devices The communication device according to claim 3, wherein the estimation is performed based on the generated first probability distribution information.
各々が異なるサブネットワークに属する複数の前記受信装置に対して前記複数のデータブロックを送信する場合に、
前記第1の生成手段は、前記サブネットワーク毎に前記第1の確率分布情報を生成し、
前記推定手段は、前記複数の受信装置のいずれかから確認応答信号を受信した際に、前記取得手段により取得した経過時間の値と当該いずれかの受信装置が属する前記サブネットワークについて生成された前記第1の確率分布情報に基づいて前記推定を行う
ことを特徴とする請求項3に記載の通信装置。
When transmitting the plurality of data blocks to a plurality of receiving devices each belonging to a different sub-network,
The first generation means generates the first probability distribution information for each of the sub-networks,
The estimating unit, when receiving an acknowledgment signal from any of the plurality of receiving devices, the value of the elapsed time acquired by the acquiring unit and the one generated for the subnetwork to which any of the receiving devices belongs. The communication device according to claim 3, wherein the estimation is performed based on first probability distribution information.
前記第1の確率分布情報は前記受信装置に対して前記複数のデータブロックを送信する前に試験的に求められた統計情報であり、
前記第1の生成手段は、前記複数のデータブロックの送信を開始した後、当該試験的に求められた統計情報を更新することにより前記第1の確率分布情報を生成する
ことを特徴とする請求項3乃至5のいずれかに記載の通信装置。
The first probability distribution information is statistical information experimentally obtained before transmitting the plurality of data blocks to the receiving device,
The first generation unit generates the first probability distribution information by starting transmission of the plurality of data blocks and then updating the statistical information obtained on a trial basis. Item 6. The communication device according to any one of Items 3 to 5.
前記第1の確率分布情報は前記受信装置に対して前記複数のデータブロックを送信するための通信を開始する前に予め求められた統計情報であり、
前記第1の生成手段は、前記複数のデータブロック送信のための通信を開始した後、当該予め求められた統計情報を更新することにより前記第1の確率分布情報を生成する
ことを特徴とする請求項3乃至5のいずれかに記載の通信装置。
The first probability distribution information is statistical information obtained in advance before starting communication for transmitting the plurality of data blocks to the receiving device,
The first generation unit generates the first probability distribution information by starting the communication for transmitting the plurality of data blocks and then updating the statistical information obtained in advance. The communication device according to claim 3.
前記後続するデータブロックを送信した後、前記推定手段により行われた推定が正しいと判断された場合に、前記取得手段により取得した経過時間の値を用いて、前記経過時間の出現確率を示す第2の確率分布情報を生成する第2の生成手段を更に有し、
前記推定手段は、前記取得手段により取得された経過時間の値、前記第1および第2の確率分布情報に基づいて、前記推定を行う
ことを特徴とする請求項3に記載の通信装置。
After transmitting the subsequent data block, when it is determined that the estimation performed by the estimating unit is correct, a value indicating the appearance probability of the elapsed time using a value of the elapsed time acquired by the acquiring unit is used. A second generation means for generating the probability distribution information of the second,
The communication device according to claim 3, wherein the estimating unit performs the estimation based on the value of the elapsed time acquired by the acquiring unit and the first and second probability distribution information.
前記第2の生成手段は、前記後続するデータブロックを要求する確認応答信号を前記受信装置から少なくとも2回受信した場合に前記推定手段により行われた推定が正しいと判断する
ことを特徴とする請求項8に記載の通信装置。
The second generation unit determines that the estimation performed by the estimation unit is correct when the acknowledgment signal requesting the subsequent data block is received at least twice from the reception device. Item 9. The communication device according to item 8.
複数の前記受信装置に対して前記複数のデータブロックを送信する場合に、
前記第1および第2の各生成手段は、前記複数の受信装置との間に設定された複数のコネクションの各々について当該第1および第2の確率分布情報を生成し、
前記推定手段は、前記複数の受信装置のいずれかから確認応答信号を受信した際に前記取得手段により取得した経過時間の値と、当該いずれかの受信装置との間に設定されているコネクションについて生成された前記第1および第2の確率分布情報に基づいて前記推定を行う
ことを特徴とする請求項8または9に記載の通信装置。
When transmitting the plurality of data blocks to a plurality of the receiving device,
The first and second generating means generate the first and second probability distribution information for each of a plurality of connections set with the plurality of receiving devices,
The estimating unit is configured to determine a value of the elapsed time acquired by the acquiring unit when an acknowledgment signal is received from any of the plurality of receiving devices, and a connection set between any of the receiving devices. The communication device according to claim 8, wherein the estimation is performed based on the generated first and second probability distribution information.
各々が異なるサブネットワークに属する複数の前記受信装置に対して前記複数のデータブロックを送信する場合に、
前記第1および第2の各生成手段は、前記サブネットワーク毎に当該第1および第2の確率分布情報を生成し、
前記推定手段は、前記複数の受信装置のいずれかから確認応答信号を受信した際に前記取得手段により取得した経過時間の値と、当該いずれかの受信装置が属するサブネットワークについて生成された前記第1および第2の確率分布情報に基づいて前記推定を行う
ことを特徴とする請求項8または9に記載の通信装置。
When transmitting the plurality of data blocks to a plurality of receiving devices each belonging to a different sub-network,
The first and second generating means generate the first and second probability distribution information for each of the sub-networks,
The estimating means includes a value of the elapsed time acquired by the acquiring means when an acknowledgment signal is received from any of the plurality of receiving devices, and a value of the elapsed time generated for a subnetwork to which any of the receiving devices belongs. The communication device according to claim 8, wherein the estimation is performed based on first and second probability distribution information.
前記第1および第2の確率分布情報は当該通信装置から前記受信装置に対して前記複数のデータブロックを送信する前に試験的に求められた統計情報であり、
前記第1および第2の各生成手段は、前記複数のデータブロックの送信を開始した後、当該試験的に求められた統計情報を各々更新することにより前記第1および第2の確率分布情報を生成する
ことを特徴とする請求項8乃至11のいずれかに記載の通信装置。
The first and second probability distribution information is statistical information experimentally obtained before transmitting the plurality of data blocks from the communication device to the receiving device,
The first and second generating units may start transmitting the plurality of data blocks and then update the statistical information obtained on a trial basis to update the first and second probability distribution information. The communication device according to claim 8, wherein the communication device generates the communication device.
前記第1および第2の確率分布情報は当該通信装置から前記受信装置に対して前記複数のデータブロックを送信するための通信を開始する前に予め求められた統計情報であり、
前記第1および第2の各生成手段は、前記複数のデータブロック送信のための通信を開始した後、当該予め求められた統計情報を更新することにより前記第1および第2の確率分布情報を生成する
ことを特徴とする請求項8乃至11のいずれかに記載の通信装置。
The first and second probability distribution information is statistical information obtained in advance before starting communication for transmitting the plurality of data blocks from the communication device to the receiving device,
The first and second generating means start the communication for transmitting the plurality of data blocks and then update the first and second probability distribution information by updating the statistical information obtained in advance. The communication device according to claim 8, wherein the communication device generates the communication device.
データブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報を生成する生成手段と、
送信装置から受信装置に対して複数のデータブロックを順次送信する送信手段と、
経過時間を測定するための計時手段と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、前記計時手段を起動する手段と、
前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得手段と、
前記取得された経過時間の値と前記第1の確率分布情報に基づいて、前記確認応答信号が前記送信手段により送信された複数のデータブロックの1に対する確認応答であるか否かを推定する推定手段とを有し、
前記送信手段は、前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると推定された場合に、前記送信手段により送信された複数のデータブロックに後続するデータブロックを送信する
ことを特徴とする通信システム。
Generating means for generating first probability distribution information indicating an appearance probability of a round trip time of a data block;
Transmitting means for sequentially transmitting a plurality of data blocks from the transmitting device to the receiving device,
A timing means for measuring elapsed time;
Among the plurality of data blocks transmitted to the receiving device, retransmitting a data block that has not received an acknowledgment signal from the receiving device, and activating the timing unit.
When receiving an acknowledgment signal from the receiving device, acquiring means for acquiring the elapsed time measured by the clock means,
Estimating whether the acknowledgment signal is an acknowledgment for one of the plurality of data blocks transmitted by the transmission unit based on the acquired elapsed time value and the first probability distribution information. Means,
The transmitting unit transmits a data block subsequent to the plurality of data blocks transmitted by the transmitting unit when the acknowledgment signal is estimated to be an acknowledgment response to one of the plurality of transmitted data blocks. A communication system characterized by:
データブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報を生成する処理と、
受信装置に対して複数のデータブロックを順次送信する送信処理と、
前記受信装置に対して送信された複数のデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、経過時間を測定するための計時手段を起動する処理と、
前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する処理と、
前記取得された経過時間の値と前記第1の確率分布情報に基づいて、前記確認応答信号が前記送信処理により送信された複数のデータブロックの1に対する確認応答であるか否かを推定する処理と、
前記確認応答信号が前記送信された複数のデータブロックの1に対する確認応答であると推定された場合に、前記送信処理により送信された複数のデータブロックに後続するデータブロックを送信する処理と
をコンピュータに実行させるためのプログラム。
A process of generating first probability distribution information indicating a probability of occurrence of a round trip time of a data block;
A transmission process of sequentially transmitting a plurality of data blocks to the receiving device;
Among the plurality of data blocks transmitted to the receiving device, retransmitting a data block that has not received an acknowledgment signal from the receiving device, and a process of activating a timing unit for measuring elapsed time,
When receiving an acknowledgment signal from the receiving device, a process of acquiring the elapsed time measured by the timing unit,
Processing for estimating whether or not the acknowledgment signal is an acknowledgment for one of the plurality of data blocks transmitted by the transmission processing, based on the acquired value of the elapsed time and the first probability distribution information When,
And transmitting a data block subsequent to the plurality of data blocks transmitted by the transmission processing when the acknowledgment signal is estimated to be an acknowledgment response to one of the plurality of transmitted data blocks. Program to be executed.
JP2003430448A 2002-12-27 2003-12-25 Transmission control method, communication apparatus, communication system, and program Expired - Fee Related JP3727941B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003430448A JP3727941B2 (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
JP2002382221 2002-12-27
JP2003430448A JP3727941B2 (en) 2002-12-27 2003-12-25 Transmission control method, communication apparatus, communication system, and program

Publications (2)

Publication Number Publication Date
JP2004222270A true JP2004222270A (en) 2004-08-05
JP3727941B2 JP3727941B2 (en) 2005-12-21

Family

ID=32911354

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP3727941B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012063699A1 (en) * 2010-11-08 2012-05-18 学校法人日本大学 Authentication server and authentication method by authentication server

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012063699A1 (en) * 2010-11-08 2012-05-18 学校法人日本大学 Authentication server and authentication method by authentication server
US9185558B2 (en) 2010-11-08 2015-11-10 Nihon University Authentication server and authentication method by authentication server
JP5875051B2 (en) * 2010-11-08 2016-03-02 学校法人日本大学 Authentication server and authentication method using authentication server
JP2016076961A (en) * 2010-11-08 2016-05-12 学校法人日本大学 Authentication server and authentication method with the authentication server

Also Published As

Publication number Publication date
JP3727941B2 (en) 2005-12-21

Similar Documents

Publication Publication Date Title
Tsaoussidis et al. Open issues on TCP for mobile computing
JP4283589B2 (en) COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM
Zhang et al. Novel quick start (QS) method for optimization of TCP
US7505412B2 (en) Transmission control method and system
DeSimone et al. Throughput performance of transport-layer protocols over wireless LANs
Ratnam et al. WTCP: An efficient mechanism for improving TCP performance over wireless links
CN101854738B (en) Transmission control protocol method for satellite network
JP2004537218A (en) Reliable and efficient method of congestion control in NACK based protocol
JP4708978B2 (en) Communication system, communication terminal, session relay device, and communication protocol realizing high throughput
US7496038B2 (en) Method for faster detection and retransmission of lost TCP segments
WO2002019654A2 (en) Method for improving tcp performance over wireless links
KR20020087940A (en) Method for efficient retransmission timeout estimation in NACK-based protocols
JP2004253934A (en) Radio communication system, server, base station, mobile terminal, and retransmit time out determining method therefor
TWI225349B (en) Methodology for improving TCP throughput over lossy communication links
Ma et al. Performance improvements of mobile SCTP in integrated heterogeneous wireless networks
Sarvi et al. An adaptive cross-layer error control protocol for wireless multimedia sensor networks
EP1435704B1 (en) Transmission control method and system
JP3492602B2 (en) Data transmitting device and data receiving device
JP4061643B2 (en) Information processing system, information processing apparatus and method, recording medium, and program
US7839844B2 (en) System and method for dynamically determining retransmit buffer time
JP2006101428A (en) Wireless network control device and its method, control program and recording medium
Ratnam et al. WTCP: an efficient mechanism for improving wireless access to TCP services
JP3727941B2 (en) Transmission control method, communication apparatus, communication system, and program
JP3784801B2 (en) Transmission control method, communication apparatus, communication system, and program
Ewald et al. Analytical model of TCP NewReno through a CTMC

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050722

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050929

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111007

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees