JP4925916B2 - Data transmission apparatus, data transmission method, and data transmission program - Google Patents

Data transmission apparatus, data transmission method, and data transmission program Download PDF

Info

Publication number
JP4925916B2
JP4925916B2 JP2007126640A JP2007126640A JP4925916B2 JP 4925916 B2 JP4925916 B2 JP 4925916B2 JP 2007126640 A JP2007126640 A JP 2007126640A JP 2007126640 A JP2007126640 A JP 2007126640A JP 4925916 B2 JP4925916 B2 JP 4925916B2
Authority
JP
Japan
Prior art keywords
time
data
retransmission
data packet
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007126640A
Other languages
Japanese (ja)
Other versions
JP2008283523A (en
Inventor
宏之 新保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2007126640A priority Critical patent/JP4925916B2/en
Publication of JP2008283523A publication Critical patent/JP2008283523A/en
Application granted granted Critical
Publication of JP4925916B2 publication Critical patent/JP4925916B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、TCP(Transmission Control Protocol)による再送制御を伴うデータ通信技術に関する。   The present invention relates to a data communication technique involving retransmission control by TCP (Transmission Control Protocol).

TCPは、WebアクセスやFTP(File Transmission Protocol)等によるファイル転送等に用いられる伝送制御プロトコルである。TCPは、再送制御や輻輳回避アルゴリズムを有しており、信頼性の高い通信を行うことが可能であるという特徴がある。   TCP is a transmission control protocol used for file transfer by Web access, FTP (File Transmission Protocol) or the like. TCP has retransmission control and congestion avoidance algorithms, and is characterized by being able to perform highly reliable communication.

かかるTCPにおける再送制御については、その一般的な内容に関する事項が非特許文献1に開示されており、インターネットで広く用いられているTCPでは、再送制御の形態として、送信側が受信側からの再送要求に応じて再送信をする形態と、所定のタイムアウト時間内に受信側からの受信確認応答を受信しないときに再送信をする形態が採用されている。このような形態の再送制御では、再送要求に対する再送信の後で送信側が当該再送信の受信確認応答を受信する前にタイムアウト時間の経過による重複した再送信をしてしまう場合があるので、非特許文献2は、その再送信を避けるためにルータ等の送信側と受信側の間にあるノードがECN(Explicit Congestion Notification)というbitを立てて通知する方法を提案している。   Regarding the retransmission control in TCP, matters relating to the general contents are disclosed in Non-Patent Document 1, and in TCP widely used in the Internet, as a form of retransmission control, the transmission side requests a retransmission request from the reception side. And a form in which retransmission is performed when a reception confirmation response from the receiving side is not received within a predetermined timeout period. In such a form of retransmission control, there is a case in which after the retransmission in response to the retransmission request, the transmission side may perform retransmission due to the lapse of the timeout time before receiving the reception confirmation response of the retransmission. Patent Document 2 proposes a method in which a node between a transmitting side and a receiving side such as a router sets up a bit called ECN (Explicit Congestion Notification) in order to avoid the retransmission.

また、TCPにおける再送制御については、特許文献1〜特許文献7に開示されているような技術も提案されている。特許文献1では、肯定応答のない送信パケットを再送する再送タイムアウトの初期値設定に関する技術が開示されている。特許文献2では、再送タイムアウトの発生原因がデータのロスか確認応答のロス又は遅延かによって輻輳ウインドウサイズの設定等を行う技術が開示されている。特許文献3では、無線通信区間と有線通信区間が混在する場合において、変動するパケット往復時間に応じて再送タイムアウト時間を計算する技術が開示されている。特許文献4では、端末装置間の通信において、メッセージ送信からレスポンス受信までの計測時間にマージンを加算して再送処理起動のタイムアウト時間とする技術が開示されている。特許文献5では、受信応答パケットでない制御パケットを受信したときに、その制御パケットの時間的な長さの分だけ再送タイマで計測中の応答待ち時間を戻す技術が開示されている。特許文献6では、送信済みのセグメントに対する再送信要求の受信時点を起算点として再送タイムアウト時間を計時し直す技術が開示されている。特許文献7では、送信フレームの送出時刻と受信確認フレームの受信時刻から求まるレスポンスタイムによって再送タイムアウト値の更新をする技術が開示されている。
TCP Illustrated Volume 1, W.Richard Stvens, ADDISON-WESLEY, 1994, Chapter17〜24全体(特にTCP再送のChapeter21) The Addition of Explicit Congestion Notification (ECN) to IP, RFC3168 特開平5−28072号公報 特開2006−173961号公報 特開2004−253934号公報 特開平6−121002号公報 特開平10−93661号公報 特開2005−136636号公報 特開平8−8995号公報
For retransmission control in TCP, techniques as disclosed in Patent Documents 1 to 7 have also been proposed. Japanese Patent Application Laid-Open No. 2004-228561 discloses a technique related to initial value setting of a retransmission timeout for retransmitting a transmission packet without an acknowledgment. Patent Document 2 discloses a technique for setting a congestion window size or the like depending on whether the cause of retransmission timeout is a data loss or a confirmation response loss or delay. Patent Document 3 discloses a technique for calculating a retransmission time-out time according to a changing packet round-trip time when a wireless communication section and a wired communication section coexist. Patent Document 4 discloses a technique for adding a margin to a measurement time from message transmission to response reception in communication between terminal devices to obtain a retransmission process activation timeout time. Patent Document 5 discloses a technique for returning a response waiting time during measurement by a retransmission timer by the time length of a control packet when a control packet that is not a reception response packet is received. Patent Document 6 discloses a technique for re-counting a retransmission timeout time from the reception point of a retransmission request for a transmitted segment. Patent Document 7 discloses a technique for updating a retransmission timeout value based on a response time obtained from a transmission frame transmission time and a reception confirmation frame reception time.
TCP Illustrated Volume 1, W. Richard Stvens, ADDISON-WESLEY, 1994, Chapters 17-24 (especially Chapter 21 for TCP retransmission) The Addition of Explicit Congestion Notification (ECN) to IP, RFC3168 JP-A-5-28072 JP 2006-173961 A JP 2004-253934 A JP-A-6-121002 JP-A-10-93661 JP 2005-136636 A JP-A-8-8895

ところで、上述した再送要求に対する再送信後のタイムアウト時間経過による重複した再送信は、再送要求に対して実際に再送が行われた場合に発生する。したがって、かかる重複再送を防止するためには、再送要求に対して実際に行われた再送との関連においてタイムアウト時間についての制御を考える必要がある。これに対し、上記各特許文献の技術には、タイムアウト時間の制御につき、再送要求に対して実際に行われた再送との関連を考慮したものはない。一方、非特許文献2の技術にあっては、特定の通知形態によって重複再送を避けようとするものであるから、タイムアウト時間を制御するのとはアプローチが異なる技術になっている。   By the way, the duplicate retransmission due to the elapse of the timeout time after the retransmission for the retransmission request described above occurs when the retransmission is actually performed for the retransmission request. Therefore, in order to prevent such redundant retransmission, it is necessary to consider control of the timeout time in relation to the retransmission actually performed in response to the retransmission request. On the other hand, none of the techniques of the above-mentioned patent documents considers the relation with the retransmission actually performed in response to the retransmission request for the control of the timeout time. On the other hand, since the technique of Non-Patent Document 2 tries to avoid duplicate retransmission according to a specific notification form, the technique is different from that for controlling the timeout time.

本発明は、このような事情に鑑みてなされたものであり、TCPによる再送制御において、再送要求に対して実際に行われた再送との関連に着目して適切にタイムアウト時間を制御することを可能にし、不用な再送を防止してスループットの向上等を図ることができるデータ通信技術を提供することを目的としている。   The present invention has been made in view of such circumstances. In the retransmission control by TCP, the timeout time is appropriately controlled by paying attention to the relationship with the retransmission actually performed in response to the retransmission request. It is an object of the present invention to provide a data communication technique that can enable improvement of throughput and the like by preventing unnecessary retransmission.

かかる目的を達成するため、本発明に係るデータ送信装置は、TCPによるデータパケット送信をするデータ送信装置であって、受信側からの再送要求に応じてするデータパケットの再送をしたときに、前記受信側からの受信の確認応答がされていない既送信データパケットにつき、前記受信側との当該再送時におけるデータパケットの送受信状況に基づいて、前記既送信データパケットの時間経過による再送に向けての経過時間の計時を調整するものとなっている。   In order to achieve such an object, the data transmission device according to the present invention is a data transmission device that performs data packet transmission by TCP, and retransmits the data packet in response to a retransmission request from the reception side. Based on the transmission / reception state of the data packet at the time of retransmission with the receiving side, the transmission data packet that has not been acknowledged for reception from the receiving side is sent for retransmission over time of the transmitted data packet. It is intended to adjust the elapsed time.

本データ送信装置においては、前記送受信状況に基づいて取得した前記時間経過による再送を行う経過時間の変更指標が示す最大の時間増加量を、同一データパケットの再送要求受信時に前記計時が示す再送までの時間に加えて前記計時を調整するものとしてもよい。この場合、前記時間経過による再送を行う経過時間の最大増加量を前記最大の時間増加量とするものとしてもよい。   In this data transmitting apparatus, the maximum amount of time increase indicated by the change index of the elapsed time for performing retransmission with the passage of time acquired based on the transmission / reception status is transmitted until the retransmission indicated by the timing when receiving a retransmission request for the same data packet. In addition to the time, the time may be adjusted. In this case, the maximum increase amount of the elapsed time for performing retransmission with the passage of time may be the maximum time increase amount.

また、本データ送信装置においては、同一データパケットの再送要求受信時に前記計時が示す再送までの時間を計時開始当初の時間にリセットして前記計時を調整するものとしてもよく、あるいは、同一データパケットの再送要求受信時に前記計時が示す再送までの時間に一定の時間を加えて前記計時を調整するものとしてもよい。   Further, in the present data transmitting apparatus, when the retransmission request for the same data packet is received, the time until the retransmission indicated by the time measurement may be reset to the initial time of the time measurement to adjust the time measurement, or the same data packet It is also possible to adjust the timing by adding a certain time to the time until the retransmission indicated by the timing when receiving the retransmission request.

本発明に係るデータ送信方法は、TCPによるデータパケット送信をするデータ送信方法であって、受信側からの再送要求に応じてするデータパケットの再送をしたときに、前記受信側からの受信の確認応答がされていない既送信データパケットにつき、前記受信側との当該再送時におけるデータパケットの送受信状況に基づいて、前記既送信データパケットの時間経過による再送に向けての経過時間の計時を調整するものとなっている。   The data transmission method according to the present invention is a data transmission method for transmitting a data packet by TCP, and confirms reception from the reception side when the data packet is retransmitted in response to a retransmission request from the reception side. For a transmitted data packet that has not been responded to, based on the transmission / reception state of the data packet at the time of the retransmission with the receiving side, the time of the elapsed time toward the retransmission due to the lapse of time of the transmitted data packet is adjusted. It has become a thing.

本発明に係るデータ送信プログラムは、TCPによるデータパケット送信をするデータ送信プログラムであって、受信側からの再送要求に応じてするデータパケットの再送をしたときに、前記受信側からの受信の確認応答がされていない既送信データパケットにつき、前記受信側との当該再送時におけるデータパケットの送受信状況に基づいて、前記既送信データパケットの時間経過による再送に向けての経過時間の計時を調整する機能を、コンピュータに実現させるためのデータ送信プログラムである。   The data transmission program according to the present invention is a data transmission program for transmitting a data packet by TCP, and confirms reception from the reception side when the data packet is retransmitted in response to a retransmission request from the reception side. For a transmitted data packet that has not been responded to, based on the transmission / reception state of the data packet at the time of the retransmission with the receiving side, the time of the elapsed time toward the retransmission due to the lapse of time of the transmitted data packet is adjusted. A data transmission program for causing a computer to realize the function.

本発明によれば、受信側からの再送要求に応じてするデータパケットの再送をしたときに、受信側からの受信の確認応答がされていない既送信データパケットにつき、当該再送時におけるデータパケットの送受信状況に基づいて時間経過による再送に向けての経過時間の計時を調整することとしたので、TCPによる再送制御において、再送要求に対して実際に行われた再送との関連に着目した適切なタイムアウト時間の制御をすることが可能となり、不用な再送を防止してスループットの向上等を図ることができる。   According to the present invention, when a data packet is retransmitted in response to a retransmission request from the receiving side, the data packet at the time of the retransmission is transmitted with respect to the already transmitted data packet that has not been acknowledged by the receiving side. Since it was decided to adjust the elapsed time for retransmission due to the passage of time based on the transmission / reception status, in TCP retransmission control, it is necessary to pay attention to the relationship with the retransmission actually performed for the retransmission request. It is possible to control the timeout time, and it is possible to prevent unnecessary retransmission and improve throughput.

<構成>
以下、図面を参照しつつ本発明の実施の形態について説明する。図1は、本発明の一実施形態によるデータ送信装置である送信装置Tnを備えた通信システムの構成を示した図である。本通信システムは、図示のように送信装置Tn、送信装置tn、通信網NW及び受信装置Rnによって構成されており、以下に説明するようにデータパケット(授受対象とする情報を示すデータのTCPに準拠したパケット。一般にはTCPパケットないしセグメント等とも呼ばれる。以下同じ。)を送受信してTCPによる再送制御を伴うデータ通信を実施する。
<Configuration>
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram illustrating a configuration of a communication system including a transmission device Tn that is a data transmission device according to an embodiment of the present invention. As shown in the figure, this communication system is composed of a transmission device Tn, a transmission device tn, a communication network NW, and a reception device Rn. As will be described below, a data packet (a data TCP indicating information to be exchanged) Compliant packets (generally called TCP packets or segments, etc., the same shall apply hereinafter) are transmitted and received to perform data communication with TCP retransmission control.

送信装置Tnは、TCPの通信規格によるデータパケット送信をするデータ送信装置である。送信装置Tnは、そのデータパケット送信に必要なパケット送受信、再送制御及び輻輳回避アルゴリズム等の処理動作を規定したデータ送信プログラムがインストールされたコンピュータによって構成されており、当該データ送信プログラムの実行に必要な演算装置、記憶装置、制御装置及び通信インターフェース等を備え、通信網NWに接続されている。当該データ送信プログラムにおいては、再送制御の処理動作として、再送要求に対する再送信の処理動作、所定のタイムアウト時間の経過による再送信の処理動作、及び特定条件下でタイムアウト時間を調整する特有の再送時間制御方式による処理動作等が規定されている。これにより、送信装置Tnは、特有の再送制御を伴うデータパケット送信を実施するが、この送信装置Tn特有の再送制御の具体的内容は後述の動作説明で明らかにする。   The transmission device Tn is a data transmission device that performs data packet transmission according to the TCP communication standard. The transmission device Tn is composed of a computer in which a data transmission program defining processing operations such as packet transmission / reception, retransmission control and congestion avoidance algorithm necessary for the data packet transmission is installed, and is necessary for executing the data transmission program A computer, a storage device, a control device, a communication interface, and the like, and is connected to a communication network NW. In the data transmission program, as a retransmission control processing operation, a retransmission processing operation for a retransmission request, a retransmission processing operation due to elapse of a predetermined timeout time, and a specific retransmission time for adjusting the timeout time under specific conditions Processing operations by the control method are specified. As a result, the transmission apparatus Tn performs data packet transmission accompanied by a specific retransmission control. The specific contents of the retransmission control specific to the transmission apparatus Tn will be clarified in an operation description to be described later.

送信装置tnは、TCPの通信規格によるデータパケット送信をする在来のデータ送信装置である。送信装置tnは、TCPにおける一般的なデータパケット送信を実施するためのパケット送受信、再送制御及び輻輳回避アルゴリズム等のプログラムがインストールされたコンピュータによって構成されており、通信網NWに接続されている。送信装置tnが実施する再送制御には、再送要求に対する再送信と所定のタイムアウト時間の経過による再送信に係るものがあり、送信装置tnは、それらの再送信をTCPにおいて一般的に採用されている在来の再送制御形態によって実施する。   The transmission device tn is a conventional data transmission device that transmits data packets according to the TCP communication standard. The transmission device tn is configured by a computer in which programs such as packet transmission / reception, retransmission control, and congestion avoidance algorithm for implementing general data packet transmission in TCP are installed, and is connected to the communication network NW. The retransmission control performed by the transmission device tn is related to the retransmission for the retransmission request and the retransmission due to the elapse of a predetermined timeout time. The transmission device tn is generally employed in TCP for the retransmission. The conventional retransmission control mode is used.

通信網NWは、TCPの通信規格に準拠したデータ伝送が可能な通信網である。通信網NWを構成する代表的な通信網としてはインターネットが挙げられるが、通信網NWは、TCPによるパケットの送受信が可能な通信回線を有する任意のネットワークで構成するものとしてよく、例えば、インターネットを主体として他の固定通信網や移動通信網、IP(Internet Protocol)電話網、LAN(Local Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、衛星通信網、海底ケーブル、専用線等を適宜含むものとしてもよい。   The communication network NW is a communication network capable of data transmission conforming to the TCP communication standard. As a typical communication network constituting the communication network NW, the Internet can be cited, but the communication network NW may be configured by an arbitrary network having a communication line capable of transmitting and receiving packets by TCP. Other fixed and mobile communication networks, IP (Internet Protocol) telephone network, LAN (Local Area Network), MAN (Metropolitan Area Network), WAN (Wide Area Network), satellite communication network, submarine cable, leased line Etc. may be included as appropriate.

受信装置Rnは、TCPの通信規格によるデータパケット受信をするデータ受信装置である。受信装置Rnは、そのデータパケット受信を実施するためのデータ受信プログラムがインストールされたコンピュータによって構成されており、通信網NWに接続されている。当該データ受信プログラムは、TCPにおける一般的なデータパケット受信を実施するためのパケット送受信、受信の確認応答及び再送要求等の処理動作を規定したものでよい。このため、受信装置Rnとしては、TCPによるデータパケット受信をする在来のデータ受信装置をそのまま利用することができる。送信装置Tnと送信装置tnが通信網NWを介して送信するデータパケットは、いずれもTCPの通信規格に準拠しているので、かかる在来のデータ受信装置等を利用した受信装置Rnにおいて受信することができる。   The receiving device Rn is a data receiving device that receives data packets according to the TCP communication standard. The receiving device Rn is configured by a computer in which a data receiving program for executing the data packet reception is installed, and is connected to the communication network NW. The data reception program may define processing operations such as packet transmission / reception, reception confirmation response, and retransmission request for performing general data packet reception in TCP. For this reason, as the receiving device Rn, a conventional data receiving device that receives a data packet by TCP can be used as it is. Since the data packets transmitted by the transmission device Tn and the transmission device tn via the communication network NW both conform to the TCP communication standard, they are received by the reception device Rn using the conventional data reception device or the like. be able to.

上述のように送信装置Tn及び送信装置tnはデータパケットを送信する装置であり、受信装置Rnはデータパケットを受信する装置であるが、これらは、データパケットの送信又は受信のいずれかしか行わない装置であるというわけではなく、送信装置Tn及び送信装置tnがデータパケットの受信も行い、受信装置Rnがデータパケットの送信も行うようなものであってもよい。すなわち、「送信装置」とは、本実施形態においてデータパケットの送信者となる送信側の装置という程の意味であり、「受信装置」とは、本実施形態においてデータパケットの受信者となる受信側の装置という程の意味である。したがって、送信装置Tn、送信装置tn及び受信装置Rnは、それぞれがデータパケットを適宜送受信する端末装置やサーバ、あるいは、ルータないしゲートウェイ等の装置であってもよい。本通信システムでは、かかる装置のうち、送信装置Tn及び送信装置tnが送信側の装置として以下の動作説明で述べるようにデータパケットを送信し、そのデータパケットを受信装置Rnが受信側の装置として受信する。   As described above, the transmission device Tn and the transmission device tn are devices that transmit data packets, and the reception device Rn is a device that receives data packets. However, these devices only transmit or receive data packets. The transmission device Tn and the transmission device tn may receive data packets, and the reception device Rn may also transmit data packets. That is, the “transmission device” means a device on the transmission side that is a data packet sender in this embodiment, and the “reception device” is a reception that is a data packet receiver in this embodiment. This means the device on the side. Therefore, each of the transmission device Tn, the transmission device tn, and the reception device Rn may be a terminal device or a server that transmits and receives data packets as appropriate, or a device such as a router or a gateway. In this communication system, among such devices, the transmitting device Tn and the transmitting device tn transmit data packets as described below in the description of the operation as transmitting devices, and the receiving device Rn receives the data packets as receiving devices. Receive.

<動作>
次に、上記構成による動作について説明する。データパケットの送信においては、上述したように送信装置Tnには特有の再送制御があるのに対し、送信装置tnは一般的な在来の再送制御形態を採っている。そこで、以下の動作説明においては、まず、送信装置tnと受信装置Rnによるデータパケットの送受信について説明し、その送受信動作における在来の再送制御等についての考察をした後に、送信装置Tnと受信装置Rnによるデータパケットの送受信について説明することにより、在来の再送制御とは異なる送信装置Tn特有の再送制御の具体的内容を明らかにする。なお、以下の動作説明におけるパケットの送受信は、すべて通信網NWを介して行われる(したがって、特に必要がない限り通信網NWには言及しない。)。
<Operation>
Next, the operation according to the above configuration will be described. In the transmission of data packets, the transmission device Tn has a specific retransmission control as described above, whereas the transmission device tn adopts a general conventional retransmission control form. Therefore, in the following description of operations, first, transmission / reception of data packets by the transmission device tn and the reception device Rn will be described, and after considering conventional retransmission control and the like in the transmission / reception operation, the transmission device Tn and the reception device By explaining the transmission / reception of the data packet by Rn, the specific contents of the retransmission control specific to the transmission apparatus Tn different from the conventional retransmission control will be clarified. Note that packet transmission / reception in the following description of operations is all performed via the communication network NW (therefore, the communication network NW is not referred to unless otherwise required).

(1)送信装置tnと受信装置Rnによるデータパケット送受信
TCPでは、送信側が送信したデータパケットに対し、受信側がACK(Acknowledgement(確認応答))パケットを送信することによって受信確認を行う。データパケットにはシーケンス番号が付与されており、受信側は、送信するACKパケットによってどこまでのシーケンス番号のデータパケットを受信したかを示す。送信側は、そのACKパケットを受信することにより、受信側がどこまでデータパケットを受信したかを把握することができる。したがって、何らかの理由でデータパケット等にエラーが発生すると、送信側は、そのエラー発生を受信側からのACKパケットによって把握することが可能である。
(1) Data packet transmission / reception by the transmission device tn and the reception device Rn In TCP, the reception side confirms the reception of the data packet transmitted by the transmission side by transmitting an ACK (Acknowledgement) packet. A sequence number is assigned to the data packet, and the receiving side indicates how far the data packet of the sequence number has been received by the transmitted ACK packet. By receiving the ACK packet, the transmitting side can grasp how far the receiving side has received the data packet. Therefore, when an error occurs in a data packet or the like for some reason, the transmission side can grasp the error occurrence from the ACK packet from the reception side.

送信側は、かかるACKパケットの受領状況に応じて2種類の再送制御を行う。第1の再送制御は、Fast Retransmit(高速再転送)と呼ばれている再送制御であり、第2の再送制御は、タイムアウト再送と呼ばれている再送制御である。Fast Retransmitは、送信装置Tn及び送信装置tnが再送要求に対する再送信を行うための再送制御に相当し、タイムアウト再送は、送信装置Tn及び送信装置tnが所定のタイムアウト時間の経過による再送信を行うための再送制御に相当する。送信装置tnと受信装置Rnによるデータパケット送受信においては、これらの再送制御が次のようにして行われる。   The transmission side performs two types of retransmission control according to the reception status of the ACK packet. The first retransmission control is retransmission control called Fast Retransmit (high-speed retransmission), and the second retransmission control is retransmission control called timeout retransmission. Fast Retransmit corresponds to retransmission control for the transmission device Tn and the transmission device tn to perform retransmission in response to a retransmission request, and timeout retransmission performs retransmission when the transmission device Tn and the transmission device tn have passed a predetermined timeout time. This corresponds to retransmission control. In data packet transmission / reception between the transmission device tn and the reception device Rn, these retransmission controls are performed as follows.

・Fast Retransmit(高速再転送)
図2は、送信装置tnと受信装置Rnの間におけるFast Retransmitを伴うデータパケットの送受信シーケンスを示した図である。図2においては、シーケンス番号をi(i=1、2、3、…)とすると、“Data,SEQ=i”がシーケンス番号iのデータパケットを表し、“ACK SEQ=i”がシーケンス番号iのデータパケットを受信したことを示すACKパケットを表している(以下、送受信シーケンスを示す他の図面における“Data,SEQ=i”、“ACK SEQ=i”も同様である。)。
・ Fast Retransmit (high-speed retransmission)
FIG. 2 is a diagram showing a data packet transmission / reception sequence accompanied by Fast Retransmit between the transmission device tn and the reception device Rn. In FIG. 2, if the sequence number is i (i = 1, 2, 3,...), “Data, SEQ = i” represents a data packet with the sequence number i, and “ACK SEQ = i” represents the sequence number i. (Hereinafter, “Data, SEQ = i” and “ACK SEQ = i” in other drawings showing transmission / reception sequences are also the same).

図2に示すように、データパケット“Data,SEQ=1”を送信装置tnが送信して受信装置Rnが受信すると、受信装置RnがACKパケット“ACK SEQ=1”を送信し、送信装置tnは、それを受信して受信装置Rnがシーケンス番号1のデータパケットを正常に受信したことを把握する。これに対し、送信装置tnが続くデータパケット“Data,SEQ=2”を送信したが、そのデータパケット“Data,SEQ=2”が消失し、受信装置Rnで受信できなかったとすると、受信装置Rnは、ACKパケットを送信することなく、その後に送信装置tnが送信するデータパケット“Data,SEQ=3”を受信する。   As shown in FIG. 2, when the transmission device tn transmits the data packet “Data, SEQ = 1” and the reception device Rn receives the data packet, the reception device Rn transmits the ACK packet “ACK SEQ = 1” and the transmission device tn. Receives it and recognizes that the receiving device Rn has normally received the data packet of sequence number 1. On the other hand, if the transmission device tn transmits the following data packet “Data, SEQ = 2”, but the data packet “Data, SEQ = 2” disappears and cannot be received by the reception device Rn, the reception device Rn. Receives a data packet “Data, SEQ = 3” transmitted by the transmitting apparatus tn without transmitting an ACK packet.

受信装置Rnは、このようにデータパケットのシーケンス番号が1個だけ歯抜けの状態で受信された場合(受信データパケットのシーケンス番号に欠落が生じた場合)、歯抜けになったデータパケットのシーケンス番号を送信装置tnに通知し、再送を要求する。歯抜けになったデータパケットのシーケンス番号は、その直前のACK番号を知らせるDuplicate ACKパケット(その直前のACKした(確認応答をした)データパケットのシーケンス番号を知らせる既送信ACKパケットと同様のACKパケット)を送信することによって通知する。今、歯抜けになったデータパケットのシーケンス番号は2で直前のACK番号は1なので、受信装置Rnは、図2中に破線矢印で示したDuplicate ACKパケット“ACK SEQ=1”を送信する。Duplicate ACKパケット“ACK SEQ=1”に含まれるシーケンス番号1は、続くシーケンス番号2のデータパケットが消失したことを示しており、受信装置Rnは、これによってシーケンス番号2のデータパケットの再送を要求する。   When the receiving device Rn is received in a state where only one data packet sequence number is missing in this manner (when the received data packet sequence number is missing), the sequence of the missing data packet is received. The number is notified to the transmission device tn and a retransmission is requested. The sequence number of the lost data packet is the Duplicate ACK packet that informs the ACK number immediately before that (the same ACK packet as the transmitted ACK packet that informs the sequence number of the data packet that was ACKed (acknowledged) immediately before) ) To send notifications. Now, since the sequence number of the lost data packet is 2 and the immediately preceding ACK number is 1, the receiving device Rn transmits a Duplicate ACK packet “ACK SEQ = 1” indicated by a dashed arrow in FIG. The sequence number 1 included in the Duplicate ACK packet “ACK SEQ = 1” indicates that the data packet with the subsequent sequence number 2 has been lost, and the receiving apparatus Rn thereby requests retransmission of the data packet with the sequence number 2 To do.

TCPでは、このようにして受信側がDuplicate ACKパケットを送信した場合、以後のACKパケットに含めるシーケンス番号は、再送を要求したシーケンス番号のデータパケットを受信するまで同一のシーケンス番号に維持する。したがって、受信装置Rnは、送信装置tnが送信したデータパケット“Data,SEQ=4”を受信した時も、同一のシーケンス番号が含まれるDuplicate ACKパケット“ACK SEQ=1”を送信する。そして、送信装置tnは、同一のシーケンス番号を有するDuplicate ACKパケット“ACK SEQ=1”を2個受信すると、要求されたシーケンス番号2のデータパケット“Data,SEQ=2”を再送する。これにより、受信装置Rnは、歯抜けになっていたデータパケット“Data,SEQ=2”を受信するが、既にデータパケット“Data,SEQ=3”と“Data,SEQ=4”を受信しているので、シーケンス番号4のデータパケットまでは正常受信できたことを示す“ACK SEQ=4”を送信し、それを送信装置tnが受信して新しいデータパケット“Data,SEQ=5”を送信する。   In TCP, when the receiving side transmits a Duplicate ACK packet in this way, the sequence number included in the subsequent ACK packet is maintained at the same sequence number until the data packet of the sequence number for which retransmission is requested is received. Therefore, even when the receiving device Rn receives the data packet “Data, SEQ = 4” transmitted by the transmitting device tn, the receiving device Rn transmits the Duplicate ACK packet “ACK SEQ = 1” including the same sequence number. Upon receiving two Duplicate ACK packets “ACK SEQ = 1” having the same sequence number, the transmission device tn retransmits the requested data packet “Data, SEQ = 2” of sequence number 2. As a result, the receiving device Rn receives the data packet “Data, SEQ = 2” that has been missing, but has already received the data packets “Data, SEQ = 3” and “Data, SEQ = 4”. Therefore, up to the data packet of sequence number 4, “ACK SEQ = 4” is transmitted indicating that it has been successfully received, and the transmission device tn receives it and transmits a new data packet “Data, SEQ = 5”. .

Fast Retransmitは、上述のように同一のシーケンス番号を有するDuplicate ACKパケット(再送を要求するACKパケット)を送信側が2回受信した時に再送を開始する形態の再送制御である。これにより、受信側は、再送データパケットを受領すると、それまでに自身が受信したデータパケットの最新のシーケンス番号をACKパケットで通知し、以後のデータパケット送受信が続行される。   Fast Retransmit is a retransmission control in which retransmission is started when the transmitting side receives a Duplicate ACK packet (ACK packet requesting retransmission) having the same sequence number as described above twice. As a result, when receiving the retransmission data packet, the receiving side notifies the latest sequence number of the data packet received so far by the ACK packet, and the subsequent data packet transmission / reception is continued.

・タイムアウト再送
図3は、送信装置tnと受信装置Rnの間におけるタイムアウト再送を伴うデータパケットの送受信シーケンスを示した図である。図3に示すように、データパケット“Data,SEQ=1”を送信装置tnが送信して受信装置Rnが受信し、ACKパケット“ACK SEQ=1”を受信装置Rnが送信して送信装置tnが受信すると、送信装置tnは、受信装置Rnがシーケンス番号1のデータパケットを正常に受信したことを把握する。これに対し、続くデータパケット“Data,SEQ=2”を送信装置tnが送信して受信装置Rnが受信し、受信装置RnがACKパケット“ACK SEQ=2”を送信したが、そのACKパケット“ACK SEQ=2”が消失し、送信装置tnで受信できなかったとすると、送信装置tnでは、ACKパケットが返送されてこないため、シーケンス番号2のデータパケットが正常に受信されたか否かが分からない。
Timeout retransmission FIG. 3 is a diagram showing a data packet transmission / reception sequence involving timeout retransmission between the transmission device tn and the reception device Rn. As shown in FIG. 3, the transmission device tn transmits the data packet “Data, SEQ = 1” and is received by the reception device Rn, and the reception device Rn transmits the ACK packet “ACK SEQ = 1” and the transmission device tn. , The transmitting device tn knows that the receiving device Rn has received the data packet with the sequence number 1 normally. On the other hand, the transmitting device tn transmits the subsequent data packet “Data, SEQ = 2” and is received by the receiving device Rn, and the receiving device Rn transmits the ACK packet “ACK SEQ = 2”. If ACK SEQ = 2 ”disappears and the transmission device tn cannot receive the ACK packet, the transmission device tn does not return an ACK packet, so it is not known whether or not the data packet of sequence number 2 has been normally received. .

この場合、送信装置tnは、ACKパケットを受信しないまま所定のタイムアウト時間が経過すると、データパケット“Data,SEQ=2”が受信されなかったものとみなし、データパケット“Data,SEQ=2”を再送する。これにより、送信装置tnは、受信装置Rnが再びデータパケット“Data,SEQ=2”を受信して送信するACKパケット“ACK SEQ=2”を受信し、受信装置Rnがシーケンス番号2のデータパケットまでを正常に受信したことを把握する。   In this case, when a predetermined timeout period elapses without receiving the ACK packet, the transmission device tn considers that the data packet “Data, SEQ = 2” has not been received, and the data packet “Data, SEQ = 2” resend. As a result, the transmission device tn receives the ACK packet “ACK SEQ = 2” which is received again by the reception device Rn and receives the data packet “Data, SEQ = 2”, and the reception device Rn receives the data packet with the sequence number 2. To know that it was successfully received.

タイムアウト再送は、何らかの理由でACKパケットが受領できなかった場合に、上述のようにタイムアウト時間と呼ばれる所定期間が経過した時点で受領確認されていないデータパケットを再送する形態の再送制御である。タイムアウト時間RTO(Retransmission Time Out)は、データパケットの送信時刻と当該データパケットに対するACKパケットの受信時刻との間の時間であるRTT(Round Trip Time)等により、動的に例えば次式で計算されている。
MをRTTの実測値、AをSmoothed RTT([A←0.9A+0.1M]で算出されるRT
Tの平滑化平均)、DをRTTの変動部分として、
Err=M−A
A←A+1/8×Err
D←D+0.25(|Err|−D)
RTO=A+4D
なお、M、A及びDの初期値は適宜設定される。
The timeout retransmission is a retransmission control in a form in which, when an ACK packet cannot be received for some reason, a data packet that has not been acknowledged when a predetermined period called a timeout time elapses as described above. The timeout time RTO (Retransmission Time Out) is dynamically calculated by, for example, the following equation based on RTT (Round Trip Time) which is the time between the transmission time of the data packet and the reception time of the ACK packet for the data packet. ing.
M is the measured value of RTT, A is the smoothed RTT (RT calculated by [A ← 0.9A + 0.1M]
Smoothing average of T), D as the fluctuation part of RTT,
Err = MA
A ← A + 1/8 × Err
D ← D + 0.25 (| Err | -D)
RTO = A + 4D
The initial values of M, A, and D are set as appropriate.

(2)在来の再送制御等についての考察
TCPにおいては、上述したFast Retransmitとタイムアウト再送が一般的な再送制御方法として採用されている。TCPによるデータ通信では、これらの再送制御を行いつつ、輻輳回避のための輻輳制御を実施している。輻輳制御の形態としては、cwnd(Congestion Windowの略。一回に送信するパケット数を意味し、ウィンドウサイズとも呼ばれる。以下同じ。)を当初は小さくしておき、ACKパケットを受信する毎に(すなわち、送信が成功する度に)cwndを少しずつ大きくしていくものが採用されている。この形態の輻輳制御はスロースタートと呼ばれている。cwndが大きいほど一回に多数のパケットが送信可能であることから、TCPスループット(TCPによるデータ通信のスループット。以下同じ。)の向上に役立つ。
(2) Consideration about conventional retransmission control etc. In TCP, the above-mentioned Fast Retransmit and timeout retransmission are adopted as general retransmission control methods. In data communication by TCP, congestion control for avoiding congestion is performed while performing these retransmission controls. As a form of congestion control, cwnd (abbreviation of Congestion Window. It means the number of packets to be transmitted at one time, also called window size. The same shall apply hereinafter) is initially made small and every time an ACK packet is received ( That is, the one that gradually increases cwnd (with every successful transmission) is adopted. This form of congestion control is called slow start. Since a larger number of packets can be transmitted at a time as cwnd is larger, it is useful for improving TCP throughput (throughput of data communication by TCP; the same applies hereinafter).

TCPによるデータ通信において、パケットロスが発生した場合には、そのまま送信をするとさらにエラーや輻輳が発生する可能性があることから、輻輳回避のための輻輳回避アルゴリズムが動作する。輻輳回避は、cwndを小さくすることによって行う。そのcwndの制御方法としては、大きく分けると、タイムアウト再送時に行うものとFast Retransmit時に行うものの2種類が存在する。   In the data communication by TCP, when a packet loss occurs, if it is transmitted as it is, there is a possibility that further errors and congestion may occur. Therefore, a congestion avoidance algorithm for avoiding congestion operates. Congestion avoidance is performed by reducing cwnd. The cwnd control method is roughly divided into two types, one performed at time-out retransmission and the other performed at Fast Retransmit.

タイムアウト再送時に行うものでは、タイムアウト再送が発生した時にcwndを初期状態(通常は1)にセットする。この制御方法では、以後、スロースタートによって少しずつcwndを上げていく必要があるため、TCPスループットに対する影響が発生し、タイムアウト再送が発生したときにはTCPスループットが相当低下することになる。当初のTCP実装であるTCP Tahoeは、再送制御に関してはタイムアウト再送しか機能を有しなかった(Fast Retransmitはできなかった。)。しかし、それでは前述の通りTCPスループットが低下してしまうという問題があったので、その問題を解決するべく、TCP Renoという実装によってFast Retransmitが考案されたという経緯がある。   When performing timeout retransmission, cwnd is set to the initial state (usually 1) when timeout retransmission occurs. In this control method, since it is necessary to gradually increase cwnd by a slow start thereafter, the TCP throughput is affected, and when a timeout retransmission occurs, the TCP throughput is considerably reduced. TCP Tahoe, which is the original TCP implementation, only had a timeout retransmission function for retransmission control (Fast Retransmit was not possible). However, since there is a problem that the TCP throughput is lowered as described above, there is a background that Fast Retransmit was devised by the implementation of TCP Reno in order to solve the problem.

Fast Retransmitによる再送があった場合では、複数個のデータパケットがエラーになっているわけではないので、ネットワークに大きなエラーは発生していないと考えられることから、Fast Retransmit時に行うcwndの制御方法としては、cwndを初期状態に戻す必要はないということになった。このことに対応するため、cwndの増加アルゴリズムとしてFast Recoveryというものが考案された。Fast Recoveryは、Fast Retransmitによる再送に限って、cwndを再送直前の1/2にセットする仕組みである。このFast Recoveryによれば、cwndは半分の値からスロースタートで増加させればよいので、TCPスループットへの影響が抑えられるという効果がある。   When retransmitted by Fast Retransmit, multiple data packets are not in error, so it is considered that a large error has not occurred in the network, so as a cwnd control method to be performed at Fast Retransmit No longer needed to return cwnd to its initial state. To deal with this, Fast Recovery was devised as an algorithm for increasing cwnd. Fast Recovery is a mechanism for setting cwnd to ½ immediately before retransmission only for retransmission by Fast Retransmit. According to this Fast Recovery, cwnd only needs to be increased by a slow start from a half value, so that the effect on TCP throughput is suppressed.

図4は、Fast Retransmitとタイムアウト再送があったときのcwndの変動を示した図であり、横軸が順次送信されるデータパケットのシーケンス番号、縦軸がcwndの値を表している。この図に示すように、データパケットの送信開始後はスロースタートによってcwndが徐々に大きくなるが、Fast Retransmitが発生すると、図中の正円で示したようにFast Recoveryによってcwndの値が1/2になる。また、TCPでは、Fast Retransmitで再送したデータパケットに対して送信側にACKパケットがタイムアウト時間内に到達しないとタイムアウト再送を実施する。この場合、輻輳回避アルゴリズムはタイムアウト再送時のものが適用されるため、図中の楕円で示したようにタイムアウトによってcwndが1になり、TCPスループットに対して大きな影響を与える。したがって、Fast Retransmitにより再送されたデータパケットが受信側で正常に受信されたのであれば、そのデータパケットに対するACKパケットがタイムアウト時間内に届くことがTCPスループットの低下を抑えるために重要となってくる。   FIG. 4 is a diagram illustrating fluctuations in cwnd when Fast Retransmit and timeout retransmission are performed, in which the horizontal axis represents the sequence number of data packets that are sequentially transmitted, and the vertical axis represents the value of cwnd. As shown in this figure, after the start of data packet transmission, cwnd gradually increases due to slow start, but when Fast Retransmit occurs, the Fast Recovery causes the cwnd value to become 1 / 2 Also, in TCP, if a ACK packet does not reach the transmission side within a timeout period for a data packet retransmitted by Fast Retransmit, timeout retransmission is performed. In this case, since the congestion avoidance algorithm at time-out retransmission is applied, cwnd becomes 1 due to time-out as shown by an ellipse in the figure, which greatly affects TCP throughput. Therefore, if a data packet retransmitted by Fast Retransmit is normally received on the receiving side, it is important to suppress a decrease in TCP throughput that an ACK packet for the data packet arrives within the timeout period. .

ところが、TCPによるデータパケットの再送においては、データパケットが送信側から正しく再送でき、かつ、受信側で正常に受信できたのにも拘わらず、タイムアウト時間内にACKパケットが送信側に到達しないことからタイムアウト再送が発生してしまう事象が存在する。このような重複した再送が発生する理由としては、データパケットの送信に時間を要したことが考えられ、その原因となっている場合として、次のような場合があることが知られている。
・下位レイヤ(移動体網のような無線リンクやOSI(Open Systems Interconnection)参照モデルでいうところのレイヤ2)での再送による一時的な遅延増加があった場合
・QoS(Quality of Service)を考慮して優先制御を行う際に、TCPのデータパケットが優先されずにデータパケットが送信されない場合
・時分割多重(TDMA(Time Division Multiple Access))の環境下でスケジューリングによりTCPのデータパケットに対して帯域を得られなかった場合
However, when retransmitting a data packet by TCP, the ACK packet does not reach the transmitting side within the timeout period even though the data packet can be correctly retransmitted from the transmitting side and successfully received at the receiving side. There is an event that timeout retransmission occurs from. The reason why such redundant retransmission occurs may be that it took time to transmit the data packet, and it is known that there are the following cases as the cause.
・ When there is a temporary increase in delay due to retransmission in a lower layer (layer 2 in the case of a radio link such as a mobile network or an OSI (Open Systems Interconnection) reference model) ・ Considering QoS (Quality of Service) When the priority control is performed, the TCP data packet is not prioritized and the data packet is not transmitted. The TCP data packet is scheduled by scheduling in a time division multiple access (TDMA) environment. When bandwidth cannot be obtained

図5は、かかる重複再送が発生しているデータパケットの送受信シーケンス例を示した図である。図5においては、データパケットの伝送を実線矢印、ACKパケットの伝送を一点鎖線矢印で示し、それぞれを斜線にしてパケットの伝送遅延を表してある(以下、送受信シーケンスを示す他の図面の表現形式も同様である。)。   FIG. 5 is a diagram showing an example of a transmission / reception sequence of a data packet in which such duplicate retransmission occurs. In FIG. 5, the transmission of the data packet is indicated by a solid line arrow, the transmission of the ACK packet is indicated by a one-dot chain line arrow, and the transmission delay of the packet is indicated by hatching each (hereinafter referred to as another drawing expression format showing a transmission / reception sequence) Is the same).

図5に示すように、送信装置tnがデータパケット“Data,SEQ=1”〜“Data,SEQ=8”を送信したが、データパケット“Data,SEQ=4”が消失したとすると、受信装置Rnは、データパケット“Data,SEQ=1”〜“Data,SEQ=3”を受信してACKパケット“ACK SEQ=1”〜“ACK SEQ=3”を返送した後にデータパケット“Data,SEQ=5”を受信し、データパケット“Data,SEQ=4”が受信されないので、データパケット“Data,SEQ=5”の受信時にDuplicate ACKパケット“ACK SEQ=3”を発行し、以後の各データパケット受信時にもDuplicate ACKパケット“ACK SEQ=3”を送信する。これにより、送信装置tnは、Duplicate ACKパケット“ACK SEQ=3”を2度受信した時点でFast Retransmitによりデータパケット“Data,SEQ=4”を再送し、受信装置Rnは、再送されたデータパケット“Data,SEQ=4”を受信し、この時点でデータパケット“Data,SEQ=8”まで受信していることを示すACKパケット“ACK SEQ=8”を送信する。しかし、図示のように、そのACKパケット“ACK SEQ=8”がデータパケット“Data,SEQ=4”の再送時からのタイムアウト時間内に送信装置tnに到達しないと、送信装置tnでは、再送したデータパケット“Data,SEQ=4”に対するACKパケットがまだ受信されていないが、タイムアウト時間が来たということから、タイムアウト再送によりデータパケット“Data,SEQ=4”を重複再送してしまう。   As shown in FIG. 5, if the transmission device tn transmits data packets “Data, SEQ = 1” to “Data, SEQ = 8”, but the data packet “Data, SEQ = 4” is lost, the reception device Rn receives the data packets “Data, SEQ = 1” to “Data, SEQ = 3” and returns the ACK packets “ACK SEQ = 1” to “ACK SEQ = 3” and then returns the data packet “Data, SEQ = 3”. 5 ”is received and the data packet“ Data, SEQ = 4 ”is not received. When the data packet“ Data, SEQ = 5 ”is received, the Duplicate ACK packet“ ACK SEQ = 3 ”is issued, and each data packet thereafter The Duplicate ACK packet “ACK SEQ = 3” is also transmitted during reception. As a result, the transmitting device tn retransmits the data packet “Data, SEQ = 4” by Fast Retransmit when the Duplicate ACK packet “ACK SEQ = 3” is received twice, and the receiving device Rn receives the retransmitted data packet. “Data, SEQ = 4” is received, and at this time, an ACK packet “ACK SEQ = 8” indicating that the data packet “Data, SEQ = 8” has been received is transmitted. However, as shown in the figure, if the ACK packet “ACK SEQ = 8” does not reach the transmission device tn within the timeout period from the retransmission of the data packet “Data, SEQ = 4”, the transmission device tn retransmits the packet. Although the ACK packet for the data packet “Data, SEQ = 4” has not been received yet, the time-out time has arrived, so that the data packet “Data, SEQ = 4” is re-transmitted by time-out retransmission.

このような重複再送が発生する場合には、データパケットが正常に再送されているにも拘わらず、再度データパケットが再送され、さらにタイムアウト再送によるcwnd増加の鈍化が発生するという問題がある。なお、上記非特許文献2の方法は、このような問題を避けるために利用することができるが、ノード、送信側及び受信側のすべてがECNを理解している必要があるため(送信側のみならず、受信側も含めたすべてのノードがECNに対応する機能を有している必要があるため)、あまり普及していない。   When such a duplicate retransmission occurs, there is a problem that the data packet is retransmitted again even though the data packet is normally retransmitted, and the increase in cwnd due to timeout retransmission occurs. In addition, although the method of the said nonpatent literature 2 can be utilized in order to avoid such a problem, since all of a node, a transmission side, and a reception side need to understand ECN (only on the transmission side) However, since all nodes including the receiving side need to have a function corresponding to ECN), it is not so popular.

(3)送信装置Tnと受信装置Rnによるデータパケット送受信
以上の考察によれば、重複したタイムアウト再送を避けるためには、タイムアウト時間を適切に制御すればよいということになる。また同時に、Fast Retransmitの発生が、重複したタイムアウト再送の可能性を生じさせる前提になっているということもできる。そこで、送信装置Tnによるデータパケット送信では、このFast Retransmitの発生に着目し、Fast Retransmitが実際に発生した時点から、Fast Retransmitとの関連を考慮したタイムアウト時間制御を実施することにより、上述した重複再送による問題を解決する。
(3) Data packet transmission / reception by the transmission device Tn and the reception device Rn According to the above consideration, in order to avoid duplicate timeout retransmission, the timeout time may be appropriately controlled. At the same time, it can be said that the occurrence of Fast Retransmit is a premise that the possibility of duplicate timeout retransmission occurs. Therefore, in the data packet transmission by the transmitting device Tn, paying attention to the occurrence of Fast Retransmit, the above-described duplication is performed by performing the timeout time control considering the relationship with Fast Retransmit from the time when Fast Retransmit actually occurs. Resolve the problem with retransmission.

(i)タイムアウト時間制御のためのタイムアウト調整アルゴリズム適用範囲
送信装置Tnでは、タイムアウト時間を制御するために、Fast Retransmitが発生したシーケンス番号以降で、現在回線上に存在するデータパケット、及び再送データパケットの原送信時以降(再送されたデータパケットが以前最初に送信された時以降)で再送データパケットに対するACKパケットが返答されていない間に送信されたデータパケットに対するタイムアウト時間のみを増加するというタイムアウト調整アルゴリズムを用いる。すなわち、送信装置Tnのタイムアウト調整アルゴリズムは、Fast Retransmitが発生した時点以降において、そのFast Retransmitによって再送されたデータパケットと、当該データパケットの再送前の原送信時から当該データパケットに対するACKパケットの受信時までの間に送信された各データパケットとを対象として適用し、それらのデータパケットのタイムアウト時間をそれぞれFast Retransmit発生時の状況に応じた所定の時間分だけ増加させる。
(i) Scope of time-out adjustment algorithm for time-out time control In the transmitting apparatus Tn, in order to control the time-out time, a data packet existing on the current line and a retransmitted data packet after the sequence number where Fast Retransmit occurs Timeout adjustment that increases only the timeout time for data packets sent after the original transmission of the packet (after the first time the retransmitted data packet was sent first) while the ACK packet for the retransmission data packet was not answered Use algorithm. That is, the time-out adjustment algorithm of the transmitting apparatus Tn is to receive a data packet retransmitted by Fast Retransmit after the Fast Retransmit occurs and an ACK packet for the data packet from the original transmission before the data packet is retransmitted. Each data packet transmitted until the time is applied as an object, and the timeout time of each data packet is increased by a predetermined time according to the situation when Fast Retransmit occurs.

図6は、そのタイムアウト調整アルゴリズムの適用範囲例を送信装置Tnと受信装置Rnによるデータパケットの送受信シーケンス例中に表した図である。図6に示すように、送信装置Tnがデータパケット“Data,SEQ=1”〜“Data,SEQ=8”を送信したが、データパケット“Data,SEQ=4”が消失したとすると、受信装置Rnは、データパケット“Data,SEQ=1”〜“Data,SEQ=3”を受信してACKパケット“ACK SEQ=1”〜“ACK SEQ=3”を返送した後にデータパケット“Data,SEQ=5”を受信し、データパケット“Data,SEQ=4”が受信されないので、データパケット“Data,SEQ=5”の受信時にDuplicate ACKパケット“ACK SEQ=3”を送信し、以後のデータパケット“Data,SEQ=6”〜“Data,SEQ=8”の各受信時にもDuplicate ACKパケット“ACK SEQ=3”を送信する。これにより、送信装置Tnは、Duplicate ACKパケット“ACK SEQ=3”を2度受信した時点でFast Retransmitによりデータパケット“Data,SEQ=4”を再送する。   FIG. 6 is a diagram illustrating an example of an application range of the timeout adjustment algorithm in a data packet transmission / reception sequence example by the transmission device Tn and the reception device Rn. As shown in FIG. 6, when the transmitting device Tn transmits data packets “Data, SEQ = 1” to “Data, SEQ = 8”, but the data packet “Data, SEQ = 4” is lost, the receiving device Rn receives the data packets “Data, SEQ = 1” to “Data, SEQ = 3” and returns the ACK packets “ACK SEQ = 1” to “ACK SEQ = 3” and then returns the data packet “Data, SEQ = 3”. 5 ”is received and the data packet“ Data, SEQ = 4 ”is not received. Therefore, when the data packet“ Data, SEQ = 5 ”is received, the Duplicate ACK packet“ ACK SEQ = 3 ”is transmitted. The Duplicate ACK packet “ACK SEQ = 3” is also transmitted at each reception of Data, SEQ = 6 ”to“ Data, SEQ = 8 ”. Thereby, the transmitting apparatus Tn retransmits the data packet “Data, SEQ = 4” by Fast Retransmit when the Duplicate ACK packet “ACK SEQ = 3” is received twice.

ここで、再送したデータパケット“Data,SEQ=4”は、タイムアウト調整アルゴリズムによるタイムアウト時間の調整対象とする(原送信のデータパケット“Data,SEQ=4”自体は、再送時にタイムアウト時間がクリアされるので対象とはならない。)。また、データパケット“Data,SEQ=4”の原送信時以降に送信したデータパケット“Data,SEQ=5”〜“Data,SEQ=8”もタイムアウト時間の調整対象とする。送信装置Tnは、以後、後続のデータパケット“Data,SEQ=9”、“Data,SEQ=10”を順次送信していくが、再送したデータパケット“Data,SEQ=4”に対するACKパケットが受信されるまでの間は、それらの順次送信するデータパケットも順次タイムアウト時間の調整対象としていく。   Here, the retransmitted data packet “Data, SEQ = 4” is subject to timeout adjustment by the timeout adjustment algorithm (the original transmission data packet “Data, SEQ = 4” itself is cleared at the time of retransmission. Therefore, it is not a target.) The data packets “Data, SEQ = 5” to “Data, SEQ = 8” transmitted after the original transmission of the data packet “Data, SEQ = 4” are also subject to timeout time adjustment. Thereafter, the transmitting device Tn sequentially transmits subsequent data packets “Data, SEQ = 9” and “Data, SEQ = 10”, but receives an ACK packet for the retransmitted data packet “Data, SEQ = 4”. In the meantime, the data packets to be sequentially transmitted are also sequentially adjusted for the timeout time.

そして、受信装置Rnは、再送されたデータパケット“Data,SEQ=4”を受信し、その時点でデータパケット“Data,SEQ=8”まで受信していることを示すACKパケット“ACK SEQ=8”を送信する。このACKパケット“ACK SEQ=8”は、再送されたデータパケット“Data,SEQ=4”のシーケンス番号をACK番号としたものではないが、それまで受信できていなかった(再送要求をしていた)データパケット“Data,SEQ=4”を受信した結果、その時点でシーケンス番号8までのデータパケットを受信しているということを示している。すなわち、ACKパケット“ACK SEQ=8”は、データパケット“Data,SEQ=4”のFast Retransmit再送が完了したことを示しているので、送信装置Tnは、ACKパケット“ACK SEQ=8”を再送したデータパケット“Data,SEQ=4”に対するACKパケットとして受信する。これにより、送信装置Tnは、タイムアウト調整アルゴリズムによるタイムアウト時間の調整を終了し、ACKパケット“ACK SEQ=8”の受信時点から送信する後続のデータパケット“Data,SEQ=11”以降については、調整を行わない通常のタイムアウト時間(上記タイムアウト時間RTO等)を適用する。   The receiving device Rn receives the retransmitted data packet “Data, SEQ = 4”, and at that time, the ACK packet “ACK SEQ = 8” indicating that the data packet “Data, SEQ = 8” has been received. ". The ACK packet “ACK SEQ = 8” is not the ACK number that is the sequence number of the retransmitted data packet “Data, SEQ = 4”, but has not been received until then (the retransmission request was made) ) As a result of receiving the data packet “Data, SEQ = 4”, it indicates that the data packet up to sequence number 8 is received at that time. That is, since the ACK packet “ACK SEQ = 8” indicates that the Fast Retransmit retransmission of the data packet “Data, SEQ = 4” has been completed, the transmitter Tn retransmits the ACK packet “ACK SEQ = 8”. Received as an ACK packet for the data packet “Data, SEQ = 4”. As a result, the transmission apparatus Tn finishes adjusting the timeout time by the timeout adjustment algorithm, and adjusts the subsequent data packets “Data, SEQ = 11” and the subsequent data packets transmitted from the reception time point of the ACK packet “ACK SEQ = 8”. A normal timeout period (such as the above timeout period RTO) is applied.

したがって、図6の送受信シーケンス例では、データパケット“Data,SEQ=4”〜“Data,SEQ=10”がタイムアウト調整アルゴリズムによるタイムアウト時間の調整対象となる。すなわち、タイムアウト調整アルゴリズムの適用範囲は、シーケンス番号でいえば、Fast Retransmit再送したデータパケットのシーケンス番号からFast Retransmitの完了前の最後に送信したデータパケットのシーケンス番号までである。送信装置Tnは、その範囲にあるシーケンス番号のデータパケットにつき、それぞれのタイムアウト時間を調整するが、それらのデータパケットは、要するにACKされていないデータパケットであるので、送信装置Tnにおいて容易に把握することが可能であり、それらのシーケンス番号を取得して送信装置Tnでの再送制御におけるタイムアウト時間制御に利用することができる。   Therefore, in the transmission / reception sequence example of FIG. 6, the data packets “Data, SEQ = 4” to “Data, SEQ = 10” are the adjustment targets of the timeout time by the timeout adjustment algorithm. That is, the application range of the timeout adjustment algorithm is, in terms of sequence numbers, from the sequence number of the data packet retransmitted by Fast Retransmit to the sequence number of the data packet transmitted last before the completion of Fast Retransmit. The transmission device Tn adjusts the timeout time for each data packet with a sequence number in the range. However, since these data packets are data packets that have not been ACKed, the transmission device Tn can easily grasp them. It is possible to acquire these sequence numbers and use them for the timeout time control in the retransmission control in the transmission device Tn.

(ii)タイムアウト時間制御
図7は、送信装置Tnが実行するタイムアウト時間制御の処理手順を示したフローチャートである。この処理手順による処理動作は、送信装置Tnの上述したデータ送信プログラム中、特定条件下でタイムアウト時間を調整する特有の再送時間制御方式による処理動作の部分に当たり、送信装置Tnは、データ送信プログラムの他の部分によるパケット送受信、Fast Retransmit及びタイムアウト再送等の再送制御、並びに輻輳回避アルゴリズム等を実行しつつ、図7の処理手順によるタイムアウト時間制御を実行し、特有の再送制御を伴うデータパケット送信を実施する。
(ii) Timeout Time Control FIG. 7 is a flowchart showing a processing procedure for timeout time control executed by the transmission apparatus Tn. The processing operation according to this processing procedure corresponds to a part of the processing operation based on a specific retransmission time control method for adjusting the timeout time under a specific condition in the above-described data transmission program of the transmission device Tn. While performing packet transmission / reception by other parts, retransmission control such as Fast Retransmit and timeout retransmission, congestion avoidance algorithm, etc., timeout time control by the processing procedure of FIG. 7 is performed, and data packet transmission with specific retransmission control is performed. carry out.

送信装置Tnのタイムアウト時間制御では、Fast Retransmitによる再送が発生したか否かを判断し(ステップS1)、発生しなければ(ステップS1での判断結果が“NO”となって)そのまま処理を終了し、発生すると(ステップS1での判断結果が“YES”となって)タイムアウト時間を調整するための処理(ステップS2以下の処理)へと進む。これにより、タイムアウト時間制御では、Fast Retransmitの発生を随時(例えば一定時間間隔等で)監視している。   In the timeout time control of the transmitting device Tn, it is determined whether or not retransmission by Fast Retransmit has occurred (step S1), and if it does not occur (the determination result in step S1 is “NO”), the process is terminated. If it occurs (the determination result in step S1 is “YES”), the process proceeds to the process for adjusting the timeout time (process after step S2). Thereby, in the timeout time control, the occurrence of Fast Retransmit is monitored at any time (for example, at regular time intervals).

ここで、送信装置Tnと受信装置Rnによるデータパケットの送受信において、送信装置TnがFast Retransmitによる再送を行ったとすると(ステップS1での判断結果が“YES”となり)、タイムアウト時間制御では、Fast Retransmitによって再送したデータパケットのシーケンス番号Xを取得する(ステップS2)。そして、この時点(ここではFast Retransmitの発生時点)において、未だACKされていないデータパケットのシーケンス番号(受信したACKパケットによっては受信装置Rnでの正常受信が未だ確認されていないデータパケットのシーケンス番号。以下「UnACKedシーケンス番号」といい、そのデータパケットを「UnACKedデータパケット」という。)の範囲を取得する(ステップS3)。   Here, in the transmission / reception of the data packet between the transmitting device Tn and the receiving device Rn, if the transmitting device Tn retransmits by Fast Retransmit (the determination result in Step S1 is “YES”), in the timeout time control, Fast Retransmit is used. The sequence number X of the retransmitted data packet is acquired (step S2). At this time (here, when Fast Retransmit occurs), the sequence number of the data packet that has not yet been ACKed (the sequence number of the data packet that has not yet been confirmed to be normally received by the receiving device Rn depending on the received ACK packet) Hereinafter, a range of “UnACKed sequence number” and the data packet thereof is referred to as “UnACKed data packet”) is acquired (step S3).

Fast Retransmitによって再送したデータパケットは未だACKされておらず、シーケンス番号X以降の既に送信した各データパケットも未だACKされていないが、シーケンス番号X直前のDuplicate ACKパケット中のACK番号であるシーケンス番号のデータパケットまではACKされている。したがって、UnACKedシーケンス番号の範囲は、シーケンス番号Xから最新の既送信データパケットのシーケンス番号までである。送信装置Tnは、このUnACKedシーケンス番号の範囲をタイムアウト調整アルゴリズムの適用範囲とし、それぞれのUnACKedデータパケットのタイムアウト時間を示すタイムアウト値を調整する(ステップS4)。   The data packet retransmitted by Fast Retransmit has not been ACKed yet, and each data packet already transmitted after sequence number X has not been ACKed yet, but the sequence number which is the ACK number in the Duplicate ACK packet immediately before sequence number X Up to the data packet is ACKed. Therefore, the range of the UnACKed sequence number is from the sequence number X to the sequence number of the latest transmitted data packet. The transmitting apparatus Tn uses the range of the UnACKed sequence number as the application range of the timeout adjustment algorithm, and adjusts the timeout value indicating the timeout period of each UnACKed data packet (step S4).

タイムアウト調整アルゴリズムでは、次のようにして各UnACKedデータパケットのタイムアウト値を調整する。
(a) Fast Retransmitが発生した時の最初の調整では、各UnACKedデータパケット
のタイムアウト値をクリアし、そのFast Retransmitの発生時点において算出さ
れているタイムアウト時間(上記タイムアウト時間RTO等)の値を各UnACK
edデータパケットのタイムアウト値に設定する。
(b) 2回目以降の調整では、以前のタイムアウト値の最大増加量を各UnACKedデー
タパケットのタイムアウト値に付加する。
TCPにおけるタイムアウト時間は、上記タイムアウト時間RTO等のように動的に計算されているので、過去に順次算出されたタイムアウト時間において、タイムアウト時間が最も増加したときの増加量(最大増加値)を送信装置TnのRAM、キャッシュメモリないしハードディスク等の記憶装置に記憶しておき、2回目以降の調整では、その最大増加量を各UnACKedデータパケットの計時中のタイムアウト値に加算する。ただし、2回目以降の調整で新たにUnACKedデータパケットが加わった場合(新たなデータパケットが送信された場合)には、その時点において算出されているタイムアウト時間の値を当該UnACKedデータパケットのタイムアウト値に設定し、他のUnACKedデータパケットのタイムアウト値はそのまま維持し、次回以降の調整で当該UnACKedデータパケットも含めた各UnACKedデータパケットについて(b)の調整をするものとする。
In the timeout adjustment algorithm, the timeout value of each UnACKed data packet is adjusted as follows.
(a) In the first adjustment when Fast Retransmit occurs, the timeout value of each UnACKed data packet is cleared, and the timeout time (such as the above timeout time RTO) calculated at the time of Fast Retransmit occurrence is cleared. Each UnACK
Set to timeout value of ed data packet.
(b) In the second and subsequent adjustments, the maximum increment of the previous timeout value is added to the timeout value of each UnACKed data packet.
Since the timeout time in TCP is dynamically calculated like the above-mentioned timeout time RTO, the amount of increase (maximum increase value) when the timeout time has increased the most in the timeout time sequentially calculated in the past is transmitted. It is stored in a storage device such as the RAM of the device Tn, a cache memory, or a hard disk, and in the second and subsequent adjustments, the maximum increase amount is added to the time-out value during counting of each UnACKed data packet. However, when a new UnACKed data packet is added in the second and subsequent adjustments (when a new data packet is transmitted), the time-out value calculated at that time is set to the timeout value of the UnACKed data packet. The time-out value of other UnACKed data packets is maintained as it is, and the adjustment of (b) is performed for each UnACKed data packet including the UnACKed data packet in the subsequent adjustments.

現時点では、Fast Retransmitが発生して最初の調整なので、算出されているタイムアウト時間の値を各UnACKedデータパケットのタイムアウト値に設定し、データパケットの送信又はACKパケットの受信を待つ(ステップS5)。そして、その送信又は受信のいずれかのイベントが発生すると、発生したイベントを判断し(ステップS6)、データパケットの送信である場合には、再びUnACKedシーケンス番号の範囲を取得してタイムアウト値の調整を行う(ステップS6での判断結果が“Data送信”の場合にはステップS3へ戻り、次いでステップS4へと進む。)。この場合には、当該イベントによって送信されたデータパケットが新たにUnACKedデータパケットの1つとして加わり、タイムアウト値が設定されて次回以降の調整で上記(b)の調整対象となる。すなわち、データパケットの送信イベントが発生すると、それによって送信されたデータパケットが新たにタイムアウト調整アルゴリズムの適用範囲に加わり、順次送信される新たなデータパケットが順次タイムアウト時間の調整対象として加えられていくことになる。   At the present time, since Fast Retransmit has occurred and this is the first adjustment, the calculated time-out value is set to the time-out value of each UnACKed data packet, and transmission of a data packet or reception of an ACK packet is awaited (step S5). When either the transmission or reception event occurs, the generated event is determined (step S6). When the data packet is transmitted, the range of the UnACKed sequence number is acquired again to adjust the timeout value. (If the determination result in step S6 is "Data transmission", the process returns to step S3, and then proceeds to step S4). In this case, the data packet transmitted by the event is newly added as one of the UnACKed data packets, a timeout value is set, and becomes the adjustment target of the above (b) in the subsequent adjustment. That is, when a transmission event of a data packet occurs, the data packet transmitted thereby is newly added to the scope of application of the timeout adjustment algorithm, and new data packets that are sequentially transmitted are sequentially added as targets for adjusting the timeout time. It will be.

これに対し、発生したイベントがACKパケットの受信であった場合(ステップS6での判断結果が“ACK受信”の場合)には、そのACKパケットによってACKされたデータパケットのシーケンス番号がX以上であるか否かを判断する(ステップS7)。ACKされたデータパケットがシーケンス番号X以上でなかったとすると、シーケンス番号X直前のシーケンス番号のデータパケットまではACKされているので、そのACKパケットは、Fast Retransmit再送を発生させたDuplicate ACKパケットと同一ACK番号のDuplicate ACKパケットである。このようにFast Retransmitの発生後に同じDuplicate ACKパケットを受信した時には(ステップS7での判断結果が“NO”となった時には)、UnACKedシーケンス番号の範囲を取得し(ステップS3へと進み)、それぞれのUnACKedデータパケットのタイムアウト値を調整する(ステップS4)。   On the other hand, when the generated event is reception of an ACK packet (when the determination result in step S6 is “ACK reception”), the sequence number of the data packet ACKed by the ACK packet is X or more. It is determined whether or not there is (step S7). If the ACK data packet is not greater than or equal to the sequence number X, the data packet with the sequence number immediately before the sequence number X is ACKed, so the ACK packet is the same as the Duplicate ACK packet that caused the Fast Retransmit retransmission. This is a Duplicate ACK packet with an ACK number. Thus, when the same Duplicate ACK packet is received after the occurrence of Fast Retransmit (when the judgment result in Step S7 is “NO”), the range of the UnACKed sequence number is acquired (proceeds to Step S3), respectively. The timeout value of the UnACKed data packet is adjusted (step S4).

ここでのタイムアウト値の調整は、タイムアウト調整アルゴリズムによる上記(b)の調整である。すなわち、送信装置Tnのタイムアウト時間制御では、Fast Retransmitの発生後に同じDuplicate ACKパケットを受信すると、各UnACKedデータパケットの計時中のタイムアウト値に以前のタイムアウト値の最大増加量を加算する。そして、以後においても同様に、Duplicate ACKパケットを受信する度に各UnACKedデータパケットのタイムアウト値に以前のタイムアウト値の最大増加量を加算する。   The adjustment of the timeout value here is the adjustment of the above (b) by the timeout adjustment algorithm. That is, in the timeout time control of the transmitting apparatus Tn, when the same Duplicate ACK packet is received after the occurrence of Fast Retransmit, the maximum increase amount of the previous timeout value is added to the time-out value of each UnACKed data packet. Thereafter, similarly, every time a Duplicate ACK packet is received, the maximum increase amount of the previous timeout value is added to the timeout value of each UnACKed data packet.

動的に計算されるタイムアウト時間の増加量は、TCPにおけるデータパケットの送受信状況を反映している。したがって、その最大増加量をUnACKedデータパケットのタイムアウト値に加算するということは、Fast Retransmitが発生したときのデータパケットの送受信状況に応じたパケット伝送遅延増加の最悪値に相当する分の時間を増加させるということである。ここにいう最悪値とは、最悪でもその分タイムアウト時間を増加させればACKパケットが返ってくると見込まれる必要最小限の値であり、データパケットの送受信状況に応じて変動する。Fast Retransmitの発生後は、タイムアウト時間の最大増加量をかかる最悪値として、Duplicate ACKパケットを受信する度に各UnACKedデータパケットのタイムアウト時間が最悪値の分だけ延長されることになる。   The increase amount of the timeout time calculated dynamically reflects the transmission / reception state of the data packet in TCP. Therefore, adding the maximum increase amount to the timeout value of the UnACKed data packet increases the time corresponding to the worst value of the increase in packet transmission delay according to the transmission / reception status of the data packet when Fast Retransmit occurs. It is to let you. The worst value here is the minimum necessary value that is expected to return an ACK packet if the timeout time is increased at the worst, and varies depending on the transmission / reception state of the data packet. After the occurrence of Fast Retransmit, the maximum increase amount of the timeout time is regarded as the worst value, and each time a Duplicate ACK packet is received, the timeout time of each UnACKed data packet is extended by the worst value.

送信装置Tnのタイムアウト時間制御では、このようにしてタイムアウト時間の調整を行い、各回の調整後は上述したようにデータパケットの送信又はACKパケットの受信を待つ(ステップS5)。そして、Fast Retransmit再送の完了を示すACK番号がX以上のACKパケットを受信すると(ステップS6での判断結果が“ACK受信”、ステップS7での判断結果が“YES”となると)、送信装置Tnはタイムアウト時間制御の処理を終了する。   In the timeout time control of the transmission device Tn, the timeout time is adjusted in this way, and after each adjustment, the transmission of the data packet or the reception of the ACK packet is waited as described above (step S5). When an ACK packet with an ACK number indicating completion of Fast Retransmit retransmission is X or more is received (when the determination result at step S6 is “ACK reception” and the determination result at step S7 is “YES”), transmitting apparatus Tn. Finishes the timeout time control process.

(iii)タイムアウト再送制御を伴うデータパケット送受信例
図8は、以上のようなタイムアウト時間制御を実施した場合の送信装置Tnと受信装置Rnによるデータパケットの送受信シーケンス例を示した図である。図8に示すように、送信装置Tnがデータパケット“Data,SEQ=1”〜“Data,SEQ=8”を送信したが、データパケット“Data,SEQ=4”が消失したとすると、受信装置Rnは、データパケット“Data,SEQ=1”〜“Data,SEQ=3”を受信してACKパケット“ACK SEQ=1”〜“ACK SEQ=3”を返送した後にデータパケット“Data,SEQ=5”を受信し、データパケット“Data,SEQ=4”が受信されないので、データパケット“Data,SEQ=5”の受信時にDuplicate ACKパケット“ACK SEQ=3”を送信し、以後のデータパケット“Data,SEQ=6”〜“Data,SEQ=8”の各受信時にもDuplicate ACKパケット“ACK SEQ=3”を送信する。これにより、送信装置Tnは、Duplicate ACKパケット“ACK SEQ=3”を2度受信した時点でFast Retransmitによりデータパケット“Data,SEQ=4”を再送し、タイムアウト時間を調整するための処理(上記ステップS2以下の処理)を開始する。すなわち、データパケット“Data,SEQ=4”をFast Retransmit再送した送信装置Tnは、シーケンス番号Xとしてシーケンス番号4、UnACKedシーケンス番号の範囲としてシーケンス番号4〜8を取得し(上記ステップS2及びS3)、送受信するパケットに応じて各UnACKedデータパケットのタイムアウト時間を調整する(上記ステップS3〜S7)。
(iii) Example of Data Packet Transmission / Reception with Timeout Retransmission Control FIG. 8 is a diagram showing an example of a data packet transmission / reception sequence by the transmission device Tn and the reception device Rn when the above timeout time control is performed. As shown in FIG. 8, if the transmitting device Tn transmits data packets “Data, SEQ = 1” to “Data, SEQ = 8”, but the data packet “Data, SEQ = 4” is lost, the receiving device Rn receives the data packets “Data, SEQ = 1” to “Data, SEQ = 3” and returns the ACK packets “ACK SEQ = 1” to “ACK SEQ = 3” and then returns the data packet “Data, SEQ = 3”. 5 ”is received and the data packet“ Data, SEQ = 4 ”is not received. Therefore, when the data packet“ Data, SEQ = 5 ”is received, the Duplicate ACK packet“ ACK SEQ = 3 ”is transmitted. The Duplicate ACK packet “ACK SEQ = 3” is also transmitted at each reception of Data, SEQ = 6 ”to“ Data, SEQ = 8 ”. As a result, the transmitting apparatus Tn retransmits the data packet “Data, SEQ = 4” by Fast Retransmit when receiving the Duplicate ACK packet “ACK SEQ = 3” twice, and adjusts the timeout time (above Step S2 and subsequent processes are started. That is, the transmitting apparatus Tn that retransmits the data packet “Data, SEQ = 4” Fast Retransmits obtains the sequence number 4 as the sequence number X and the sequence numbers 4 to 8 as the range of the UnACKed sequence number (steps S2 and S3). The timeout time of each UnACKed data packet is adjusted according to the packet to be transmitted / received (steps S3 to S7).

図8においては、Fast Retransmit再送時に算出されているタイムアウト時間を10、これまでの最悪値(その時点までのタイムアウト時間の最大増加量)を3として、Fast Retransmit再送によるデータパケット“Data,SEQ=4”の送信時からの経過時間と、データパケット“Data,SEQ=4”の計時中のタイムアウト時間を併せて示してある。これらの経過時間と計時中タイムアウト時間に示したように、再送したデータパケット“Data,SEQ=4”については、Fast Retransmit再送時にタイムアウト時間10を設定し、経過時間3となった時にDuplicate ACKパケット“Data,SEQ=3”を受信すると、計時中タイムアウト時間(10−3)に最悪値3を加算するので、計時中タイムアウト時間は10になる。また、それから時間4が経って経過時間7となった時に再びDuplicate ACKパケット“Data,SEQ=3”を受信すると、計時中タイムアウト時間(10−4)に最悪値3を加算するので、計時中タイムアウト時間は9になる。   In FIG. 8, the time-out time calculated at the time of Fast Retransmit retransmission is 10, and the worst value so far (the maximum increase in time-out time up to that point) is 3, and the data packet “Data, SEQ = The elapsed time from the transmission of “4” and the timeout time during the measurement of the data packet “Data, SEQ = 4” are shown together. As shown in the elapsed time and time-out time during counting, for the retransmitted data packet “Data, SEQ = 4”, the time-out time 10 is set at the time of Fast Retransmit retransmission, and the Duplicate ACK packet when the elapsed time 3 is reached. When “Data, SEQ = 3” is received, the worst-time value 3 is added to the time-out timeout time (10-3), so the time-out time-out time becomes 10. If the Duplicate ACK packet “Data, SEQ = 3” is received again after time 4 has elapsed and time 7 has elapsed, the worst-case value 3 is added to the time-out time (10-4) during timekeeping. The timeout time is 9.

そして、送信装置Tnは、さらに時間5が経って経過時間12となった時にACKパケット“ACK SEQ=8”を受信するが、このACKパケット“ACK SEQ=8”は、受信装置Rnが再送データパケット“Data,SEQ=4”を受信して返送したACK番号が4以上のACKパケットなので、タイムアウト時間制御の処理は終了する。この時、計時中タイムアウト時間は(9−(12−7))で残り時間4となっているので、タイムアウト再送は発生しない。すなわち、始めに設定したタイムアウト時間10は、ACKパケット“ACK SEQ=8”の受信(経過時間12)以前に既に経過しているが、送信装置Tnにおいては、上述したタイムアウト時間制御により、Fast Retransmitの発生から完了に至るまで計時中のタイムアウト時間がタイムアウトしない。これにより、送信装置Tnは、Fast Retransmit再送をした場合に重複する不用なタイムアウト再送をすることなく、受信装置Rnとのデータパケット送受信を行うことができる。なお、図8では省略したが、送信装置Tnは、データパケット“Data,SEQ=5”〜“Data,SEQ=8”、及びFast Retransmit再送以後ACKパケット“ACK SEQ=8”受信前に送信したデータパケットについても、それぞれ上記同様のタイムアウト時間の調整を行っており、それらのデータパケットについても不用なタイムアウト再送を防止している。   Then, the transmission device Tn receives the ACK packet “ACK SEQ = 8” when the time 5 passes and the elapsed time 12 is reached. The ACK packet “ACK SEQ = 8” is transmitted from the reception device Rn to the retransmission data. Since the ACK number of the ACK number that is received and returned after receiving the packet “Data, SEQ = 4” is 4 or more, the timeout time control process ends. At this time, the time-out timeout during counting is (9- (12-7)), and the remaining time is 4, so that time-out retransmission does not occur. That is, the initially set timeout time 10 has already elapsed before the reception of the ACK packet “ACK SEQ = 8” (elapsed time 12), but the transmitting device Tn performs Fast Retransmit by the above-described timeout time control. The time-out time is not timed out from occurrence to completion. As a result, the transmission device Tn can perform data packet transmission / reception with the reception device Rn without performing unnecessary time-out retransmission that overlaps when Fast Retransmit retransmission is performed. Although not shown in FIG. 8, the transmitting device Tn transmits data packets “Data, SEQ = 5” to “Data, SEQ = 8” and Fast Retransmit retransmission and before receiving the ACK packet “ACK SEQ = 8”. The same time-out adjustment is performed for data packets as described above, and unnecessary time-out retransmission is also prevented for these data packets.

送信装置Tnのタイムアウト時間制御によれば、何らかの理由でデータパケットやACKパケットに遅延が発生するような状況においても、上述したように不要なTCPによる再送を削減することができる。またこのことから、一度にデータパケットを送信可能な量であるcwndの大きさの減少を抑えることも可能になっている。すなわち、送信装置Tnでは、Fast Retransmit再送が実際にあった場合のみを対象として上述のタイムアウト制御を行い、その再送データパケット等のUnACKedデータパケットのみを対象としてタイムアウト時間を修正しているので、再送効率を高め、無駄な通信を行うことを防止することができ、TCPスループットの向上等を図ることができる。なお、タイムアウト再送が実際に発生する場合には、通信状況がかなり悪いので、再送したデータパケットが届いている可能性が低く、タイムアウト時間を調整する実益がないようなことも多いが、送信装置Tnは、Fast Retransmit再送があった場合のみを対象としてタイムアウト時間を調整することにより、再送効率の向上等を図ることができるものとなっている。   According to the timeout time control of the transmission device Tn, unnecessary retransmissions due to TCP can be reduced as described above even in a situation where a delay occurs in a data packet or an ACK packet for some reason. This also makes it possible to suppress a decrease in the size of cwnd, which is the amount of data packets that can be transmitted at one time. That is, the transmitting apparatus Tn performs the above-described timeout control only when Fast Retransmit retransmission actually occurs, and corrects the timeout time only for UnACKed data packets such as the retransmission data packet. It is possible to increase efficiency, prevent unnecessary communication, and improve TCP throughput. If timeout retransmission actually occurs, the communication situation is quite bad, so it is unlikely that the retransmitted data packet has arrived, and there is often no benefit of adjusting the timeout time. Tn can improve the retransmission efficiency by adjusting the timeout time only when Fast Retransmit retransmission is performed.

また、タイムアウト調整でタイムアウト値に加算する値を以前のタイムアウト値の最大増加量としているので、タイムアウト時間を増加させる量が回線に発生している遅延を指標として変化する。これにより、タイムアウト時間を適宜重複再送の回避に必要な量だけ増加させることが可能となっている。このようにタイムアウト時間を必要な量だけ増加させるためには、上述したタイムアウト値の最大増加量のみならず、Fast Retransmitがあったときの通信回線に発生している遅延を表す任意の指標を利用することができ、例えば、RTTの最大増加量等の他の指標を利用することもできる。   Also, since the value added to the timeout value in the timeout adjustment is the maximum increase amount of the previous timeout value, the amount to increase the timeout time changes using the delay occurring in the line as an index. Thereby, it is possible to increase the timeout time by an amount necessary for avoiding duplicate retransmission as appropriate. In order to increase the timeout time by a necessary amount in this way, not only the maximum increase in the timeout value described above, but also any index indicating the delay occurring in the communication line when Fast Retransmit occurs is used. For example, other indices such as the maximum increase in RTT can be used.

さらに、上述した送信装置Tnと受信装置Rnによるデータパケット送受信では、特有の処理を行うのが送信装置Tnだけであり、受信装置RnはTCPによる通常のデータパケット受信が実施できればよく、通信網NWもTCPによる通常のデータ伝送が可能であればよい。したがって、送信側の装置以外には何等特別な機能を要することなく上記同様のデータパケット通信を実施することができるので、既存のインターネットによる通信システム等においても容易に上記タイムアウト時間制御を伴うデータパケット送受信を実現することができる。   Further, in the data packet transmission / reception by the transmission device Tn and the reception device Rn described above, only the transmission device Tn performs a specific process, and the reception device Rn only needs to be able to perform normal data packet reception by the TCP. As long as normal data transmission by TCP is possible. Therefore, since the data packet communication similar to the above can be performed without requiring any special function other than the device on the transmission side, the data packet with the timeout time control can be easily used even in an existing communication system using the Internet. Transmission and reception can be realized.

(iv)他のタイムアウト調整アルゴリズム
送信装置Tnにおいては、上述したタイムアウト調整アルゴリズム以外の他のタイムアウト調整アルゴリズムを利用して上記ステップS4での処理を行うものとしてもよい。以下、その例を挙げる。
(iv) Other Timeout Adjustment Algorithm The transmitting device Tn may perform the process in step S4 using a timeout adjustment algorithm other than the timeout adjustment algorithm described above. Examples are given below.

・他のタイムアウト調整アルゴリズムA
同一シーケンス番号でのDuplicate ACKパケットが返る度にタイムアウト値の計測を元のタイムアウト値にリセットする。タイムアウト時間は、上述したように送信装置Tnが同一ACK番号のDuplicate ACKパケットを受信する度に操作している。これは、同一ACK番号のDuplicate ACKパケットが受信側から返答されるということは、まだ再送されたデータパケットが受信側に到着していないことを示しているためである。そこで、他のタイムアウト調整アルゴリズムAとしては、Duplicate ACKパケットを受信する度に各UnACKedデータパケットのタイムアウト時間の計測を止め、元から設定されているタイムアウト値にリセットする。具体的には、
(a) Fast Retransmitが発生した時の最初の調整では、各UnACKedデータパケット
のタイムアウト値をクリアし、そのFast Retransmitの発生時点において算出さ
れているタイムアウト時間(上記タイムアウト時間RTO等)の値を各UnACK
edデータパケットのタイムアウト値に設定する。
(b) 2回目以降の調整では、各UnACKedデータパケットの計時中タイムアウト値を
リセットする。
ただし、2回目以降の調整で新たにUnACKedデータパケットが加わった場合(新たなデータパケットが送信された場合)には、その時点において算出されているタイムアウト時間の値を当該UnACKedデータパケットのタイムアウト値に設定し、他のUnACKedデータパケットのタイムアウト値はそのまま維持し、次回以降の調整で当該UnACKedデータパケットも含めた各UnACKedデータパケットについて(b)の調整をするものとする。
-Other timeout adjustment algorithm A
Each time a Duplicate ACK packet with the same sequence number is returned, the timeout value measurement is reset to the original timeout value. As described above, the timeout time is manipulated every time the transmitting apparatus Tn receives a Duplicate ACK packet with the same ACK number. This is because that the Duplicate ACK packet with the same ACK number is returned from the receiving side indicates that the retransmitted data packet has not yet arrived at the receiving side. Therefore, as another timeout adjustment algorithm A, every time a Duplicate ACK packet is received, measurement of the timeout time of each UnACKed data packet is stopped, and the timeout value is reset to the originally set timeout value. In particular,
(a) In the first adjustment when Fast Retransmit occurs, the timeout value of each UnACKed data packet is cleared, and the timeout time (such as the above timeout time RTO) calculated at the time of Fast Retransmit occurrence is cleared. Each UnACK
Set to timeout value of ed data packet.
(b) In the second and subsequent adjustments, reset the timeout value during timing of each UnACKed data packet.
However, when a new UnACKed data packet is added in the second and subsequent adjustments (when a new data packet is transmitted), the time-out value calculated at that time is set to the timeout value of the UnACKed data packet. The time-out value of other UnACKed data packets is maintained as it is, and the adjustment of (b) is performed for each UnACKed data packet including the UnACKed data packet in the subsequent adjustments.

図9は、かかる他のタイムアウト調整アルゴリズムAによるタイムアウト時間制御を実施した場合の送信装置Tnと受信装置Rnによるデータパケットの送受信シーケンス例を示した図である。図9の送受信シーケンス例では、上記図8同様、データパケット“Data,SEQ=1”〜“Data,SEQ=8”の送信、データパケット“Data,SEQ=4”の消失、ACKパケット“ACK SEQ=1”〜“ACK SEQ=3”の返送があり、受信装置Rnがデータパケット“Data,SEQ=5”〜“Data,SEQ=8”の各受信時にDuplicate ACKパケット“ACK SEQ=3”を送信し、送信装置TnがFast Retransmitによりデータパケット“Data,SEQ=4”を再送して上記ステップS2以下の処理を開始する。   FIG. 9 is a diagram showing an example of a data packet transmission / reception sequence performed by the transmission device Tn and the reception device Rn when the timeout time control is performed by the other timeout adjustment algorithm A. In the transmission / reception sequence example of FIG. 9, as in FIG. 8, the transmission of the data packets “Data, SEQ = 1” to “Data, SEQ = 8”, the loss of the data packet “Data, SEQ = 4”, the ACK packet “ACK SEQ = 1 ”to“ ACK SEQ = 3 ”, and the receiving device Rn receives the Duplicate ACK packet“ ACK SEQ = 3 ”when receiving the data packet“ Data, SEQ = 5 ”to“ Data, SEQ = 8 ”. The transmission device Tn retransmits the data packet “Data, SEQ = 4” by Fast Retransmit, and starts the processing from step S2 onward.

図9においては、Fast Retransmit再送時に算出されているタイムアウト時間を10として、図8同様に経過時間とデータパケット“Data,SEQ=4”の計時中タイムアウト時間を併せて示してある。これらの経過時間と計時中タイムアウト時間に示したように、再送したデータパケット“Data,SEQ=4”については、Fast Retransmit再送時にタイムアウト時間10を設定し、経過時間3となった時にDuplicate ACKパケット“Data,SEQ=3”を受信すると、タイムアウト時間をリセットして計時中タイムアウト時間を10とする。また、経過時間7となった時に再びDuplicate ACKパケット“Data,SEQ=3”を受信すると、再びタイムアウト時間をリセットして計時中タイムアウト時間を10とする。   In FIG. 9, the time-out time calculated at the time of Fast Retransmit retransmission is 10, and the elapsed time and the time-out time during data packet “Data, SEQ = 4” are shown together as in FIG. As shown in the elapsed time and time-out time during counting, for the retransmitted data packet “Data, SEQ = 4”, the time-out time 10 is set at the time of Fast Retransmit retransmission, and the Duplicate ACK packet when the elapsed time 3 is reached. When “Data, SEQ = 3” is received, the timeout time is reset and the time-out timeout time is set to 10. When the Duplicate ACK packet “Data, SEQ = 3” is received again when the elapsed time 7 is reached, the timeout time is reset again and the time-out timeout time is set to 10.

そして、送信装置Tnは、さらに時間5が経って経過時間12となった時にACKパケット“ACK SEQ=8”を受信し、このACKパケット“ACK SEQ=8”のACK番号が4以上であることからタイムアウト時間制御の処理を終了する。この時、計時中タイムアウト時間は(10−(12−7))で残り時間5となっているので、タイムアウト再送は発生しない。すなわち、始めに設定したタイムアウト時間10は、ACKパケット“ACK SEQ=8”の受信(経過時間12)以前に既に経過しているが、送信装置Tnにおいては、Duplicate ACKパケットが返る度にタイムアウト時間をリセットするため、タイムアウト時間の減少がなく、Fast Retransmitの発生から完了に至るまで計時中のタイムアウト時間がタイムアウトしない。これにより、送信装置Tnは、Fast Retransmit再送をした場合に重複する不用なタイムアウト再送をすることなく、受信装置Rnとのデータパケット送受信を行うことができる。なお、図9では省略したが、送信装置Tnは、データパケット“Data,SEQ=5”〜“Data,SEQ=8”、及びFast Retransmit再送以後ACKパケット“ACK SEQ=8”受信前に送信したデータパケットについても、それぞれ上記同様のタイムアウト時間の調整を行っており、それらのデータパケットについても不用なタイムアウト再送を防止している。   Then, the transmitting apparatus Tn receives the ACK packet “ACK SEQ = 8” when the time 5 has passed and the elapsed time 12 has been reached, and the ACK number of the ACK packet “ACK SEQ = 8” is 4 or more. The timeout time control process ends. At this time, the time-out time during counting is (10- (12-7)) and the remaining time is 5, so that time-out retransmission does not occur. That is, the initially set timeout time 10 has already passed before the reception of the ACK packet “ACK SEQ = 8” (elapsed time 12). However, in the transmission apparatus Tn, the timeout time is set every time a Duplicate ACK packet is returned. The time-out time is not timed out from the occurrence of Fast Retransmit until the completion. As a result, the transmission device Tn can perform data packet transmission / reception with the reception device Rn without performing unnecessary time-out retransmission that overlaps when Fast Retransmit retransmission is performed. Although omitted in FIG. 9, the transmitting apparatus Tn transmits the data packets “Data, SEQ = 5” to “Data, SEQ = 8” and the Fast Retransmit retransmission and before receiving the ACK packet “ACK SEQ = 8”. The same time-out adjustment is performed for data packets as described above, and unnecessary time-out retransmission is also prevented for these data packets.

・他のタイムアウト調整アルゴリズムB
同一シーケンス番号でのDuplicate ACKパケットが返る度にタイムアウト値に予め定めた一定値を付加する。タイムアウト時間は、送信装置Tnが同一ACK番号のDuplicate ACKパケットを受信する度に操作しているので、その度に各UnACKedデータパケットのタイムアウト時間を予め定めた一定量だけ増加させる。具体的には、
(a) Fast Retransmitが発生した時の最初の調整では、各UnACKedデータパケット
のタイムアウト値をクリアし、そのFast Retransmitの発生時点において算出さ
れているタイムアウト時間(上記タイムアウト時間RTO等)の値を各UnACK
edデータパケットのタイムアウト値に設定する。
(b) 2回目以降の調整では、各UnACKedデータパケットの計時中タイムアウト値に
予め定めた一定値を加算する。
ただし、2回目以降の調整で新たにUnACKedデータパケットが加わった場合(新たなデータパケットが送信された場合)には、その時点において算出されているタイムアウト時間の値を当該UnACKedデータパケットのタイムアウト値に設定し、他のUnACKedデータパケットのタイムアウト値はそのまま維持し、次回以降の調整で当該UnACKedデータパケットも含めた各UnACKedデータパケットについて(b)の調整をするものとする。
・ Other timeout adjustment algorithm B
Each time a Duplicate ACK packet with the same sequence number is returned, a predetermined value is added to the timeout value. Since the timeout period is operated every time the transmitting apparatus Tn receives a Duplicate ACK packet with the same ACK number, the timeout period of each UnACKed data packet is increased by a predetermined amount each time. In particular,
(a) In the first adjustment when Fast Retransmit occurs, the timeout value of each UnACKed data packet is cleared, and the timeout time (such as the above timeout time RTO) calculated at the time of Fast Retransmit occurrence is cleared. Each UnACK
Set to timeout value of ed data packet.
(b) In the second and subsequent adjustments, a predetermined constant value is added to the time-out value during timing of each UnACKed data packet.
However, when a new UnACKed data packet is added in the second and subsequent adjustments (when a new data packet is transmitted), the time-out value calculated at that time is set to the timeout value of the UnACKed data packet. The time-out value of other UnACKed data packets is maintained as it is, and the adjustment of (b) is performed for each UnACKed data packet including the UnACKed data packet in the subsequent adjustments.

図10は、かかる他のタイムアウト調整アルゴリズムBによるタイムアウト時間制御を実施した場合の送信装置Tnと受信装置Rnによるデータパケットの送受信シーケンス例を示した図である。図10の送受信シーケンス例では、上記図8同様、データパケット“Data,SEQ=1”〜“Data,SEQ=8”の送信、データパケット“Data,SEQ=4”の消失、ACKパケット“ACK SEQ=1”〜“ACK SEQ=3”の返送があり、受信装置Rnがデータパケット“Data,SEQ=5”〜“Data,SEQ=8”の各受信時にDuplicate ACKパケット“ACK SEQ=3”を送信し、送信装置TnがFast Retransmitによりデータパケット“Data,SEQ=4”を再送して上記ステップS2以下の処理を開始する。   FIG. 10 is a diagram illustrating an example of a data packet transmission / reception sequence performed by the transmission device Tn and the reception device Rn when the timeout time control is performed by the other timeout adjustment algorithm B. In the transmission / reception sequence example of FIG. 10, as in FIG. 8, the transmission of the data packets “Data, SEQ = 1” to “Data, SEQ = 8”, the loss of the data packet “Data, SEQ = 4”, the ACK packet “ACK SEQ = 1 ”to“ ACK SEQ = 3 ”, and the receiving device Rn receives the Duplicate ACK packet“ ACK SEQ = 3 ”when receiving the data packet“ Data, SEQ = 5 ”to“ Data, SEQ = 8 ”. The transmission device Tn retransmits the data packet “Data, SEQ = 4” by Fast Retransmit, and starts the processing from step S2 onward.

図10においては、Fast Retransmit再送時に算出されているタイムアウト時間を10、予め定めた一定の加算量を5として、図8同様に経過時間とデータパケット“Data,SEQ=4”の計時中タイムアウト時間を併せて示してある。これらの経過時間と計時中タイムアウト時間に示したように、再送したデータパケット“Data,SEQ=4”については、Fast Retransmit再送時にタイムアウト時間10を設定し、経過時間3となった時にDuplicate ACKパケット“Data,SEQ=3”を受信すると、計時中タイムアウト時間(10−3)に加算量5を加算して計時中タイムアウト時間を12とする。また、経過時間7となった時に再びDuplicate ACKパケット“Data,SEQ=3”を受信すると、計時中タイムアウト時間(12−4)に加算量5を加算して計時中タイムアウト時間を13とする。   In FIG. 10, the timeout time calculated at the time of Fast Retransmit retransmission is set to 10, and a predetermined fixed addition amount is set to 5. As in FIG. 8, the elapsed time and the time-out timeout time of the data packet “Data, SEQ = 4” are measured. Is also shown. As shown in the elapsed time and time-out time during counting, for the retransmitted data packet “Data, SEQ = 4”, the time-out time 10 is set at the time of Fast Retransmit retransmission, and the Duplicate ACK packet when the elapsed time 3 is reached. When “Data, SEQ = 3” is received, the time-out timeout time is set to 12 by adding the addition amount 5 to the time-out timeout time (10-3). When the Duplicate ACK packet “Data, SEQ = 3” is received again when the elapsed time 7 is reached, the time-out timeout period is set to 13 by adding the addition amount 5 to the time-out timeout period (12-4).

そして、送信装置Tnは、さらに時間5が経って経過時間12となった時にACKパケット“ACK SEQ=8”を受信し、このACKパケット“ACK SEQ=8”のACK番号が4以上であることからタイムアウト時間制御の処理を終了する。この時、計時中タイムアウト時間は(13−(12−7))で残り時間8となっているので、タイムアウト再送は発生しない。すなわち、始めに設定したタイムアウト時間10は、ACKパケット“ACK SEQ=8”の受信(経過時間12)以前に既に経過しているが、送信装置Tnにおいては、Duplicate ACKパケットが返る度にタイムアウト時間を一定量増加させているので、Fast Retransmitの発生から完了に至るまで計時中のタイムアウト時間がタイムアウトしない。これにより、送信装置Tnは、Fast Retransmit再送をした場合に重複する不用なタイムアウト再送をすることなく、受信装置Rnとのデータパケット送受信を行うことができる。なお、図10では省略したが、送信装置Tnは、データパケット“Data,SEQ=5”〜“Data,SEQ=8”、及びFast Retransmit再送以後ACKパケット“ACK SEQ=8”受信前に送信したデータパケットについても、それぞれ上記同様のタイムアウト時間の調整を行っており、それらのデータパケットについても不用なタイムアウト再送を防止している。   Then, the transmitting apparatus Tn receives the ACK packet “ACK SEQ = 8” when the time 5 has passed and the elapsed time 12 has been reached, and the ACK number of the ACK packet “ACK SEQ = 8” is 4 or more. The timeout time control process ends. At this time, since the time-out time during counting is (13- (12-7)) and the remaining time is 8, no time-out retransmission occurs. That is, the initially set timeout time 10 has already passed before the reception of the ACK packet “ACK SEQ = 8” (elapsed time 12). However, in the transmission apparatus Tn, the timeout time is set every time a Duplicate ACK packet is returned. The time-out time is not timed out from the occurrence of Fast Retransmit until the completion. As a result, the transmission device Tn can perform data packet transmission / reception with the reception device Rn without performing unnecessary time-out retransmission that overlaps when Fast Retransmit retransmission is performed. Although not shown in FIG. 10, the transmitting apparatus Tn transmits data packets “Data, SEQ = 5” to “Data, SEQ = 8” and Fast Retransmit retransmission and before receiving the ACK packet “ACK SEQ = 8”. The same time-out adjustment is performed for data packets as described above, and unnecessary time-out retransmission is also prevented for these data packets.

以上のような他のタイムアウト調整アルゴリズムA及びBによれば、タイムアウト時間を増加させる量が若干多くなっているが、Fast Retransmit再送が実際にあった場合に、その再送データパケット等のUnACKedデータパケットのみを対象としてタイムアウト時間を修正しているので、再送効率を高め、無駄な通信を行うことを防止することができ、TCPスループットの向上を図ることができる。   According to the other timeout adjustment algorithms A and B as described above, the amount of increase in the timeout time is slightly increased. However, when a Fast Retransmit retransmission is actually performed, an UnACKed data packet such as a retransmission data packet is transmitted. Since the timeout period is corrected only for the target, it is possible to improve retransmission efficiency, prevent unnecessary communication, and improve TCP throughput.

本発明の一実施形態によるデータ送信装置である送信装置Tnを備えた通信システムの構成を示した図である。It is the figure which showed the structure of the communication system provided with transmitter Tn which is a data transmitter by one Embodiment of this invention. 送信装置tnと受信装置Rnの間におけるFast Retransmitを伴うデータパケットの送受信シーケンスを示した図である。It is the figure which showed the transmission / reception sequence of the data packet accompanying Fast Retransmit between the transmitter tn and the receiver Rn. 送信装置tnと受信装置Rnの間におけるタイムアウト再送を伴うデータパケットの送受信シーケンスを示した図である。It is the figure which showed the transmission / reception sequence of the data packet accompanying timeout retransmission between the transmission apparatus tn and the receiving apparatus Rn. Fast Retransmitとタイムアウト再送があったときのcwndの変動を示した図である。It is the figure which showed the fluctuation | variation of cwnd when there was Fast Retransmit and timeout retransmission. 重複した再送が発生しているデータパケットの送受信シーケンス例を示した図である。It is the figure which showed the example of the transmission / reception sequence of the data packet in which the duplicate resending has generate | occur | produced. 送信装置Tnのタイムアウト調整アルゴリズムの適用範囲例を表した図である。It is a figure showing the example of the application range of the timeout adjustment algorithm of transmitter Tn. 送信装置Tnが実行するタイムアウト時間制御の処理手順を示したフローチャートである。It is the flowchart which showed the processing procedure of timeout time control which transmitter Tn performs. 図7のタイムアウト時間制御を実施した場合の送信装置Tnと受信装置Rnによるデータパケットの送受信シーケンス例を示した図である。It is the figure which showed the example of a transmission / reception sequence of the data packet by the transmitter Tn and the receiver Rn at the time of implementing timeout time control of FIG. 他のタイムアウト調整アルゴリズムAによるタイムアウト時間制御を実施した場合の送信装置Tnと受信装置Rnによるデータパケットの送受信シーケンス例を示した図である。It is the figure which showed the example of the transmission / reception sequence of the data packet by the transmitter Tn and the receiver Rn at the time of performing timeout time control by the other timeout adjustment algorithm A. 他のタイムアウト調整アルゴリズムBによるタイムアウト時間制御を実施した場合の送信装置Tnと受信装置Rnによるデータパケットの送受信シーケンス例を示した図である。It is the figure which showed the example of the transmission / reception sequence of the data packet by the transmitter Tn and the receiver Rn at the time of implementing timeout time control by the other timeout adjustment algorithm B. FIG.

符号の説明Explanation of symbols

Tn 送信装置
NW 通信網
Rn 受信装置
Tn transmitter NW communication network Rn receiver

Claims (6)

TCPによるデータパケット送信をするデータ送信装置であって、
受信側からの再送要求に応じてするデータパケットのFast Retransmit再送をしたときに、前記受信側からの受信の確認応答がされていない既送信データパケットにつき、前記受信側との当該再送時におけるデータパケットの送受信状況に基づいて、前記既送信データパケットの時間経過によるタイムアウト再送に向けての経過時間の計時を調整する、データ送信装置。
A data transmission device that performs data packet transmission by TCP,
When the Fast Retransmit retransmission of data packets in response to a retransmission request from the receiving side, per previously transmitted data packet acknowledgment of receipt is not from the receiving side, the data at the time of the retransmission of the reception side A data transmission device that adjusts the elapsed time for a time-out retransmission due to the lapse of time of the already transmitted data packet based on a packet transmission / reception state.
データパケットの送信時刻と当該データパケットに対するACKパケットの受信時刻との間の時間に基づいて動的に計算されるタイムアウト値の過去の最大増加量を、同一データパケットの再送要求受信時に前記計時が示すタイムアウト再送までの時間に加えて前記計時を調整する、請求項1記載のデータ送信装置。 A past maximum increase in time-out value that is dynamically calculated based on the time between the transmission time of the data packet and the reception time of the ACK packet for the data packet is set as the time count when the retransmission request for the same data packet is received. The data transmission device according to claim 1, wherein the time measurement is adjusted in addition to the time until the time- out retransmission shown. 同一データパケットの再送要求受信時に前記計時が示すタイムアウト再送までの時間を計時開始当初の時間にリセットして前記計時を調整する、請求項1記載のデータ送信装置。 The data transmission device according to claim 1, wherein when the retransmission request for the same data packet is received, the time until the time- out retransmission indicated by the timing is reset to the initial time when the timing is started, and the timing is adjusted. 同一データパケットの再送要求受信時に前記計時が示すタイムアウト再送までの時間に一定の時間を加えて前記計時を調整する、請求項1記載のデータ送信装置。 The data transmission device according to claim 1, wherein, when receiving a retransmission request for the same data packet, the time is adjusted by adding a certain time to a time- out retransmission indicated by the time measurement. TCPによるデータパケット送信をするデータ送信方法であって、
受信側からの再送要求に応じてするデータパケットのFast Retransmit再送をしたときに、前記受信側からの受信の確認応答がされていない既送信データパケットにつき、前記受信側との当該再送時におけるデータパケットの送受信状況に基づいて、前記既送信データパケットの時間経過によるタイムアウト再送に向けての経過時間の計時を調整する、データ送信方法。
A data transmission method for transmitting a data packet by TCP,
When the Fast Retransmit retransmission of data packets in response to a retransmission request from the receiving side, per previously transmitted data packet acknowledgment of receipt is not from the receiving side, the data at the time of the retransmission of the reception side A data transmission method for adjusting the elapsed time for time-out retransmission due to the lapse of time of the already transmitted data packet based on a packet transmission / reception state.
TCPによるデータパケット送信をするデータ送信プログラムであって、
受信側からの再送要求に応じてするデータパケットのFast Retransmit再送をしたときに、前記受信側からの受信の確認応答がされていない既送信データパケットにつき、前記受信側との当該再送時におけるデータパケットの送受信状況に基づいて、前記既送信データパケットの時間経過によるタイムアウト再送に向けての経過時間の計時を調整する機能を、コンピュータに実現させるためのデータ送信プログラム。
A data transmission program for data packet transmission by TCP,
When the Fast Retransmit retransmission of data packets in response to a retransmission request from the receiving side, per previously transmitted data packet acknowledgment of receipt is not from the receiving side, the data at the time of the retransmission of the reception side A data transmission program for causing a computer to realize a function of adjusting the elapsed time for time-out retransmission due to the lapse of time of the already transmitted data packet based on a packet transmission / reception state.
JP2007126640A 2007-05-11 2007-05-11 Data transmission apparatus, data transmission method, and data transmission program Expired - Fee Related JP4925916B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007126640A JP4925916B2 (en) 2007-05-11 2007-05-11 Data transmission apparatus, data transmission method, and data transmission program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007126640A JP4925916B2 (en) 2007-05-11 2007-05-11 Data transmission apparatus, data transmission method, and data transmission program

Publications (2)

Publication Number Publication Date
JP2008283523A JP2008283523A (en) 2008-11-20
JP4925916B2 true JP4925916B2 (en) 2012-05-09

Family

ID=40143958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007126640A Expired - Fee Related JP4925916B2 (en) 2007-05-11 2007-05-11 Data transmission apparatus, data transmission method, and data transmission program

Country Status (1)

Country Link
JP (1) JP4925916B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015133688A (en) * 2013-12-11 2015-07-23 パナソニックIpマネジメント株式会社 Communication controller
JP7067544B2 (en) 2017-02-27 2022-05-16 日本電気株式会社 Communication systems, communication devices, methods and programs

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000261496A (en) * 1999-03-04 2000-09-22 Toshiba Corp Radio communication equipment
JP2002330168A (en) * 2001-05-07 2002-11-15 Nec Corp Method for setting retransfer timeout time in communication system
JP2004015556A (en) * 2002-06-07 2004-01-15 Sony Corp Communication method, communication equipment, and communication system

Also Published As

Publication number Publication date
JP2008283523A (en) 2008-11-20

Similar Documents

Publication Publication Date Title
JP4016387B2 (en) Data flow control method
JP5694993B2 (en) Communication apparatus and communication method
JP4654926B2 (en) COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND CONgestion Control Method Used In Them
US7460472B2 (en) System and method for transmitting information in a communication network
US20080101290A1 (en) Apparatus for Arq Controlling in Wireless Portable Internet System and Method Thereof
JP4021885B2 (en) Method for controlling a receiver and a transmitter to process a transmission window resizing procedure in a wireless communication system
KR100533686B1 (en) Method for transmitting data in mobile ad hoc network and network apparatus using the same
EP1568180B1 (en) A method for enhancing transmission quality of streaming media
JP4546542B2 (en) Data flow control using duplicate receipt confirmation
US9456377B2 (en) System and method for transmission control protocol service delivery in wireless communications systems
JP2004537218A (en) Reliable and efficient method of congestion control in NACK based protocol
WO2014069642A1 (en) Communication device, transmission data output control method, and program for same
US6662330B1 (en) Joint range reject automatic repeat request protocol
JP4817077B2 (en) Wireless LAN communication system
JP7067544B2 (en) Communication systems, communication devices, methods and programs
JP4925916B2 (en) Data transmission apparatus, data transmission method, and data transmission program
WO2017118239A1 (en) Cross-layer optimization method and device for wireless transmission of data package
JP5387058B2 (en) Transmission device, transmission rate calculation method, and transmission rate calculation program
JP3163479B2 (en) Bandwidth control method
JP2005509370A (en) Improving communication efficiency and performance in unreliable communication environments
JP6011813B2 (en) COMMUNICATION DEVICE AND ITS COMMUNICATION CONTROL METHOD
JP2000022744A (en) Packet communication system, packet communication device and packet communication method
JP6145190B1 (en) Relay device, relay method, and relay program
KR20090050125A (en) Apparatus and method for tcp performance enhancement in wireless network
JPH11261632A (en) Band allocation control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110530

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120207

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

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees