WO2010064421A1 - 通信装置、通信方法 - Google Patents

通信装置、通信方法 Download PDF

Info

Publication number
WO2010064421A1
WO2010064421A1 PCT/JP2009/006535 JP2009006535W WO2010064421A1 WO 2010064421 A1 WO2010064421 A1 WO 2010064421A1 JP 2009006535 W JP2009006535 W JP 2009006535W WO 2010064421 A1 WO2010064421 A1 WO 2010064421A1
Authority
WO
WIPO (PCT)
Prior art keywords
retransmission
timeout
time
spurious
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2009/006535
Other languages
English (en)
French (fr)
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.)
NTT Docomo Inc
Docomo Technology Inc
Original Assignee
NTT Docomo Inc
Docomo Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc, Docomo Technology Inc filed Critical NTT Docomo Inc
Priority to JP2010541231A priority Critical patent/JP5080654B2/ja
Priority to EP09830191.4A priority patent/EP2355416A4/en
Priority to CN200980145332.6A priority patent/CN102217249B/zh
Priority to US13/132,693 priority patent/US8607114B2/en
Publication of WO2010064421A1 publication Critical patent/WO2010064421A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/06Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless

Definitions

  • the present invention relates to a retransmission control method when a retransmission timeout occurs when data is transmitted via a network.
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • the transmitting device sequentially extracts partial data of transmission data and extracts the partial data.
  • Data for each transmission unit (hereinafter referred to as “segment”) with a header including a sequence number added thereto is generated, and the generated segments are transmitted in ascending order of the sequence number.
  • the transmission device records information related to the transmission time of the segment, and has a retransmission control function for retransmitting the segment when ACK (ACKnowledgement) from the reception device for the transmitted segment cannot be received within a certain time. ing.
  • This fixed time is held in advance as a retransmission timeout time in the transmission device, and is updated based on the measurement result of RTT (Round Trip Time) between the transmission device and the reception device (Non-Patent Document 1).
  • RTT Random Trip Time
  • Non-patent Document 2 an exponential backoff algorithm that sets a double value for the retransmission timeout time when retransmission is performed and avoids network congestion due to retransmission is included (Non-patent Document 2).
  • the retransmission timeout time in TCP retransmission control may be shorter than the actual RTT. If the retransmission timeout time is smaller than the RTT, segment retransmission may occur even though no segment is missing between the transmission device and the reception device. A situation in which such segment retransmission occurs is called a spurious timeout, and can cause a reduction in communication throughput.
  • F-RTO ForwardForRTO-Recovery
  • Non-patent Document 3 If it is determined to be due to a spurious timeout, transmission of the subsequent segment is continued, and if it is determined to be due to a missing segment, the subsequent segment is retransmitted and received by the receiving device after receiving it. A segment is transmitted (Non-patent Document 3).
  • the buffer size for accumulating retransmission frames is actually finite, and if a frame exceeding the buffer size is input to the data link, the data is discarded.
  • FIG. 9 is a diagram for explaining a problem in the prior art.
  • the delayed ACK method is adopted.
  • Segment1 and Segment2 are transmitted from the transmission side terminal to the reception side terminal (S901, S901 ′), and ACK2 (S902) from the reception side terminal corresponding to this is the retransmission timeout time after transmitting Segment1 (S901). It is assumed that the packet is received after elapse of time t RTO (occurrence of spurious timeout).
  • Segment 1 is retransmitted due to the occurrence of a timeout from the transmission side terminal (S903), but when the application of the back-off algorithm is suppressed for the retransmission timeout period, the retransmission timeout period at this time is t RTO It becomes.
  • S902 After receiving ACK2 (S902) by the F-RTO algorithm, two untransmitted segments, Segment5 and Segment6, are transmitted (S904, S905), and the first ACK received after the transmission of these segments (S906) If the sequence number is advanced, it is determined that the timeout of the first Segment 1 (S901) is a spurious timeout, and if the sequence number is not advanced, it is determined that the timeout is due to a missing segment or the like. As shown in FIG. 9, when the received ACK is ACK4 (S906), the sequence number is advanced, so it is determined that the timeout of Segment1 (S901) is a spurious timeout.
  • the retransmission timeout time in the retransmission of Segment 5 is updated by measuring the RTT from the transmission of Segment 4 until ACK4 (S906) is returned, but the retransmission timeout time t RTO is smaller than the RTT.
  • the retransmission timeout time t ′ RTO of the Segment 5 (S908) is t RTO ⁇ t ′ RTO ⁇ RTT.
  • S908 is also likely to have a spurious timeout. Thereafter, spurious timeouts occur continuously in the same manner.
  • an object of the present invention is to provide a communication device and a communication method that solve the above-described problems and suppress a reduction in throughput due to a spurious timeout while having a quick retransmission recovery opportunity when a retransmission occurs.
  • the present invention is capable of suppressing the application of a backoff algorithm that sequentially transmits a data segment and receives an acknowledgment thereof, and increases a retransmission timeout time when the data segment is retransmitted.
  • a communication apparatus comprising: a retransmission timeout period increasing means for increasing the retransmission timeout period when it is determined that the occurrence has occurred.
  • the retransmission timeout time can be increased if a spurious timeout occurs.
  • the application of the back-off algorithm is suppressed, once a spurious timeout occurs, it is possible to avoid a situation in which the spurious timeout continuously occurs thereafter.
  • a sequence number is assigned to each of the confirmation responses, and the spurious timeout determination means has a sequence number of the first confirmation response received immediately after retransmission of the data segment that is higher than that received last time. And if the sequence number of the second confirmation response received immediately after the first confirmation response is ahead of the one received last time, it is determined that a spurious timeout has occurred. It may be.
  • the retransmission timeout period increasing means may be configured to transmit at least one new data transmitted in response to the first confirmation response received immediately after retransmission of the data segment when application of the back-off algorithm is suppressed.
  • the retransmission timeout time at the time of transmitting a segment may be increased. According to this configuration, it is possible to increase the retransmission timeout period for at least one new data segment transmitted after receiving the first confirmation response. As a result, it is possible to avoid a new data segment transmitted in response to the first confirmation response by the F-RTO algorithm or the like from being spurious time-out, and to avoid a situation in which spurious time-out occurs continuously. .
  • the retransmission timeout time increasing means may double the retransmission timeout time. According to this configuration, since the retransmission timeout period at the time of data segment retransmission can be doubled, once the spurious timeout occurs once the application of the back-off algorithm is suppressed, the spurious timeout continues thereafter. The possibility of avoiding the situation that occurs automatically increases.
  • the spurious timeout determination means may perform the determination by an F-RTO algorithm. According to this configuration, when the back-off algorithm is suppressed at the time of data segment retransmission and a spurious timeout is detected using F-RTO, the retransmission timeout time at the time of data segment retransmission can be increased. As a result, when the application of the back-off algorithm is suppressed, once a spurious timeout occurs, it is possible to avoid a situation in which the spurious timeout continuously occurs thereafter.
  • the present invention sequentially transmits a data segment and receives an acknowledgment thereof, and can suppress the application of a back-off algorithm that increases the retransmission timeout time at the time of retransmission of the data segment, and controls the retransmission timeout time.
  • a communication method for retransmitting a data segment, a spurious timeout determination step (for example, corresponding to step S809 in FIG. 8) for determining a spurious timeout based on an acknowledgment received immediately after the data segment retransmission, and the spurious timeout determination A communication method characterized by including a retransmission timeout period increasing step (for example, corresponding to step S808 in FIG. 8) for increasing the retransmission timeout period when it is determined that a spurious timeout has occurred in step. Proposal That.
  • the retransmission timeout time can be increased if a spurious timeout occurs.
  • the application of the back-off algorithm is suppressed, once a spurious timeout occurs, it is possible to avoid a situation in which the spurious timeout continuously occurs thereafter.
  • the spurious timeout occurs when the back-off algorithm is suppressed when retransmitting the data segment, once the spurious timeout occurs, the spurious timeout continuously occurs thereafter. It is possible to avoid the situation of doing.
  • Segment1 and Segment2 are transmitted from the transmission side terminal (corresponding to the communication apparatus according to the present embodiment) to the reception side terminal (S101, S101 ′), and ACK2 (S102) from the reception side terminal corresponding thereto is Segment1.
  • FIG. 2 includes a server device 10, a wireless network 1, a wireless control device 20, and a communication terminal 30.
  • FIG. 3 is a diagram showing a protocol stack in the communication system according to the present embodiment.
  • L1 and L2 correspond to a physical layer and a data link layer in an OSI (Open Systems Interconnection) reference model, respectively, IP corresponds to a network layer, and TCP corresponds to a transport layer. That is, the server apparatus 10 and the communication terminal 30 communicate according to TCP located in the transport layer of the OSI reference model.
  • TCP communication that waits for an ACK indicating that data has been reliably received, that is, confirmation-type communication is performed every time data is transmitted.
  • the wireless network 1 is, for example, a WAN or LAN to which a wireless LAN is connected, an exchange network of a mobile phone system, and a WAN or LAN connected to this, or the Internet.
  • the server device 10 transmits data to the communication terminal 30 via the wireless network 1 and the wireless control device 20. Further, the server device 10 includes a transmission unit 101, a timeout determination unit 102, a retransmission unit 103, a spurious timeout determination unit 104, and a retransmission timeout time increase unit 105.
  • the server device 10 is realized using, for example, a server or a workstation.
  • the transmission unit 101 transmits a segment generated by dividing transmission data into a plurality of data to the communication terminal 30 via the wireless network 1.
  • a header including a sequence number is attached to the segment, and the segment number is transmitted to the communication terminal 30 in ascending order.
  • the timeout determination unit 102 holds the transmission time, and if an ACK for this segment is not received within a certain time from the transmission time, that is, within the retransmission timeout period, the timeout determination unit 102 Is determined to have occurred. Note that when the value of the retransmission timeout time is set to a value smaller than the RTT, a spurious timeout is likely to occur. In this case, in particular, the retransmission control of the communication apparatus according to the present invention is effective.
  • the retransmission unit 103 does not apply the backoff algorithm to the retransmission timeout period until the nth retransmission (n is a positive integer), and the nth In the case of retransmission exceeding 1, a back-off algorithm is applied to the retransmission timeout time, and the segment that has timed out is retransmitted by the transmission unit 101.
  • the back-off algorithm is an algorithm for increasing the retransmission timeout time at the time of segment retransmission, and a representative one is an exponential back-off algorithm for increasing the retransmission timeout time exponentially.
  • the spurious timeout determination unit 104 determines whether the timeout generated in the timeout determination unit 102 is a spurious timeout based on the confirmation response received immediately after the segment retransmission.
  • the “acknowledgment response” is information indicating that the segment transmitted from the server device 10 has been received by the communication terminal 30, and specifically corresponds to ACK or the like in TCP / IP.
  • the spurious timeout determination unit 104 is a case where the sequence number of the first confirmation response received immediately after the retransmission of the segment retransmitted by the retransmission unit 103 is ahead of the one received last time, and the first confirmation If the sequence number of the second confirmation response received immediately after the response is ahead of the previously received one, it is determined that a spurious timeout has occurred.
  • the retransmission unit 103 retransmits Segment1 timed out from the transmission unit 101 (S103).
  • ACK2 that is the first confirmation response for the first segment is received (S102).
  • the sequence number of the received acknowledgment ACK1 is more advanced than that received last time. If the sequence number of the received acknowledgment is not advanced, it is not an acknowledgment for the first segment but a duplicate ACK of a segment transmitted before that.
  • the spurious timeout determination unit 104 further checks whether or not the sequence number of the second confirmation response received immediately after the first confirmation response is advanced.
  • the second confirmation response corresponds to ACK4 in FIG. 1 or duplicate ACK1 (S405) in FIG.
  • the second acknowledgment is ACK4 and the sequence number is advanced.
  • the second confirmation response is a duplicate ACK (S405), and the sequence number is not advanced.
  • the spurious timeout determination unit 104 is a case where the sequence number of the first confirmation response received immediately after the retransmission of the segment that has timed out is ahead of the one received last time, and this first confirmation When the sequence number of the second confirmation response received immediately after the response is advanced, it is determined that the timeout is a spurious timeout.
  • the retransmission timeout period increasing unit 105 increases the retransmission timeout period when the spurious timeout determination unit 104 determines that a spurious timeout has occurred.
  • the rate of increase may be doubled as in the exponential backoff algorithm, for example, or may be other rates.
  • the retransmission timeout time increasing unit 105 more specifically, the first confirmation response received immediately after the retransmission of the segment by the retransmission unit 103 when the application of the back-off algorithm is suppressed for the retransmission timeout time.
  • the retransmission timeout period when transmitting at least one new data segment to be transmitted in response.
  • the problem to be solved by the present invention is limited to the case where the application of the back-off algorithm is suppressed. In this case, a new untransmitted segment to be transmitted thereafter is transmitted with the same retransmission timeout time to avoid a timeout again.
  • the at least one new data segment transmitted in response to the first confirmation response received immediately after the retransmission of the segment by the retransmission unit 103 is Segment 5 (S104) or Segment 6 (S105). ) Is applicable.
  • S104 Segment 5
  • S105 Segment 6
  • the present invention has the same effect even when only one data segment is transmitted.
  • the server apparatus 10 and the communication terminal 30 communicate in FIG. 2 it may replace with the server apparatus 10 and may be a communication apparatus which transmits data to the communication terminal 30 by TCP communication.
  • it may be a mobile phone terminal or the like.
  • FIG. 5 is a block diagram illustrating a configuration example of the server apparatus 10.
  • the server device 10 includes a CPU (Central Processing Unit) 11, a nonvolatile storage device 12, a RAM (Random Access Memory) 13, and a network interface 14.
  • CPU Central Processing Unit
  • RAM Random Access Memory
  • the server device 10 performs various processes by executing a program stored in the nonvolatile storage device 12 by the CPU 11 using the RAM 13 as a work area in the same manner as a general computer.
  • the non-volatile storage device 12 is a storage device that retains memory without supplying power, such as a ROM (Read Only Memory), flash memory, ferroelectric memory, magnetoresistive memory, magnetic disk, optical disk, magnetic tape, etc. It is.
  • the non-volatile storage device 12 stores a control program (not shown) for executing program execution processing and a communication program 121 for performing communication processing according to TCP.
  • the communication program 121 includes modules corresponding to the transmission unit 101, timeout determination unit 102, retransmission unit 103, spurious timeout determination unit 104, and retransmission timeout time increase unit 105 described above.
  • the module is expanded in the RAM 13 and executed by the CPU 11.
  • the network interface 14 is a wired or wireless communication interface for transmitting / receiving data to / from the wireless network 1.
  • the radio network controller 20 is connected to the communication terminal 30 via a radio link, and functions as a radio interface between the communication terminal 30 and the radio network 1.
  • the wireless control device 20 is, for example, a wireless LAN AP (Access Point) or a mobile phone system RAN (Radio Access Network).
  • the communication terminal 30 receives a segment transmitted from the server device 10.
  • the communication terminal 30 is, for example, a mobile phone terminal or a PC (personal computer) having a wireless communication function.
  • FIG. 6 is a block diagram illustrating a configuration example of the communication terminal 30.
  • the communication terminal 30 includes a wireless interface 31, an IP processing unit 32, a TCP processing unit 33, and an application processing unit 34.
  • the wireless interface 31 functions as an interface with the wireless network 1.
  • the wireless interface 31 includes an antenna, a high frequency processing unit, a baseband processing unit (not shown), and the like.
  • the IP processing unit 32 is identified in the wireless network 1 by an IP address assigned from the wireless network 1 or a unique address set by the user for the communication terminal 30.
  • the TCP processing unit 33 executes retransmission control and congestion control. This enables more reliable communication.
  • the application processing unit 34 has a function of executing an application used by a user, such as a Web browser, an FTP (File Transfer Protocol) client, or a mail client.
  • FIG. 7 is a flowchart showing a processing flow of the server device 10 according to the present embodiment.
  • a data segment is transmitted from the transmission unit 101 of the server device 10 to the communication terminal 30 (step S701).
  • the timeout determination unit 102 determines whether a timeout has occurred for the data segment transmitted in step S701 (step S702).
  • timeout occurs, that is, when ACK is not received from the communication terminal 30 within the retransmission timeout period
  • the process proceeds to timeout retransmission processing (S703). If no timeout occurs, that is, if an ACK is received from the communication terminal 30 within the retransmission timeout period, the process is terminated.
  • timeout retransmission processing is executed in step S703. The timeout retransmission process will be described later.
  • FIG. 8 is a flowchart showing the flow of timeout retransmission processing.
  • This timeout retransmission process is a process executed in step S703 of FIG.
  • the retransmission unit 103 retransmits the segment timed out from the transmission unit 101 (step S801).
  • step S803 If it is not n-th or less retransmission (ie, n + 1-th or more retransmission), the retransmission timeout time is increased to execute the back-off process for the retransmission timeout time (step S803), and the process proceeds to step S804. . Note that steps S802 and S803 are executed by the retransmission timeout period increasing unit 105.
  • step S804 it is determined whether or not an ACK (first confirmation response) has been received (step S804). This step is repeated until an ACK is received. If an ACK is received, the process proceeds to step S805. . Next, it is determined whether or not the ACK sequence number received in step S804 is ahead of the previously received ACK sequence number (step S805). If the ACK sequence number is advanced, the process proceeds to step S806. If the sequence number of the ACK sequence number has not advanced, the timeout retransmission process is terminated.
  • ACK first confirmation response
  • step S806 the retransmission timeout time is temporarily stored. This is because, when it is determined in step S809 described later that the timeout is not a spurious timeout, the retransmission timeout period that is increased in step S808 described later is restored.
  • step S807 it is determined whether the retransmission of the segment executed by the transmission unit 101 is the nth or less retransmission (whether the back-off process has been executed). If the retransmission is n-th or less, the back-off process has not been executed, so the retransmission timeout period is increased (step S808), and the process proceeds to step S809.
  • steps S807 and S808 are executed by the retransmission timeout period increasing unit 105.
  • step S809 it is determined whether the timeout is a spurious timeout (S809). If it is not a spurious timeout, the retransmission timeout time temporarily increased in step S806 is used to restore the retransmission timeout time increased in step S808 to the original time (step S810). If it is a spurious timeout, the timeout retransmission process is terminated.
  • the process of step S809 is executed by the spurious timeout determination unit 104.
  • the spurious timeout determination unit 104 determines that the sequence number of the ACK has advanced from the last received in step S805, and the next of this ACK. When the sequence number of the ACK (second confirmation response) received at the same time has advanced from that previously received, it can be determined that the generated retransmission timeout is a spurious timeout.
  • a spurious timeout determination step for example, corresponding to step S809 in FIG. 8 for determining a spurious timeout based on an acknowledgment received immediately after retransmission of a data segment, and a spurious timeout determination step by the spurious timeout determination step.
  • a retransmission time-out time increasing step for increasing the retransmission time-out time (for example, corresponding to step S808 in FIG. 8).
  • the F-RTO algorithm is used for detection of the spurious timeout.
  • the first received immediately after retransmission of the data segment is used. If the algorithm is such that a new segment is transmitted in response to the confirmation response, the problem of continuous occurrence of spurious timeout may occur, and the present invention also has the same effect in such a case. That is, the present invention is not limited to the case where F-RTO is employed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

 指数バックオフアルゴリズムの抑制中にF-RTOアルゴリズムを単純に組み合わせた場合には、一度スプリアスタイムアウトが発生すると、その後スプリアスタイムアウトが連続発生してしまうという課題があった。上記課題を解決するために、本件発明は、データセグメントの送信およびその確認応答の受信を順次行い、データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信装置において、データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定し、スプリアスタイムアウトが発生したと判定した場合に、再送タイムアウト時間を増加させる。

Description

通信装置、通信方法
 本発明は、ネットワークを介してデータを送信する場合に再送タイムアウトが発生した際の再送制御方法に関する。
 データの欠落が発生しうる通信網においてデータの送受信を行う場合、送信装置から受信装置へすべてのデータを送信するために、通信網においてデータが欠落した可能性を検出し、送信装置より欠落したデータの再送信を行うことがある。
 インターネット等のIP(Internet Protocol)ベースのネットワークにおいて、データを欠落無く送受信する際に一般的に用いられるTCP(Transmission Control Protocol)では、送信装置は送信データの部分データを順に切り出し、切り出した部分データに
シーケンス番号を含むヘッダを付与した送信単位ごとのデータ(以下、「セグメント」と呼ぶ)を生成し、生成したセグメントをシーケンス番号の小さい順に送信する。この際、送信装置はセグメントの送信時刻に関する情報を記録しておき、送信したセグメントに対する受信装置からのACK(ACKnowledgement)を一定時間内に受信できない場合にセグメントの再送を行う再送制御の機能を備えている。
 この一定時間については再送タイムアウト時間としてあらかじめ送信装置にて保持し、送信装置と受信装置との間のRTT(Round Trip Time)の測定結果に基づき更新する(非特許文献1)。また、再送が行われると再送タイムアウト時間に2倍の値を設定し、再送によるネットワークの輻輳を回避する指数バックオフアルゴリズムが含まれている(非特許文献2)。
 また、有線データリンクとは異なり、無線データリンクでのスループットは大きく変動する。そのため、データリンクにおいてはRLC(Radio Link Control)プロトコルのように、データフレームの再送を規定した通信プロトコルが存在する。RLCのような、データフレームの再送を規定したデータリンクをTCPの下位レイヤに用いた場合、データリンクにてデータフレームが欠落して再送が行われている状況は、TCPからはRTTの増大としてとらえられる。データリンクの再送を有限時間継続するならば、その再送の継続時間中にデータフレームの到達が確認できない場合、データフレームの欠落、つまりセグメントの欠落となるため、TCPにおけるRTTもおのずとデータリンクにおける再送の継続時間により上限が与えられる。
 このTCPにおけるRTTの上限の存在に着目し、再送発生前の再送タイムアウト時間をRTTの上限を考慮した値に設定することでデータリンクにて再送継続中のTCP再送を抑制すること、及びn回目までのセグメント再送時には指数バックオフを行わずに再送タイムアウト時間を決定し、n+1回目以降から指数バックオフアルゴリズムを適用することで再送による輻輳を回避することの両方のメリットを享受する手法が提案されている(特許文献1)。
 ところが、RTTが時刻により変動するネットワーク環境においては、TCPの再送制御における再送タイムアウト時間が実際のRTTよりも小さくなることがある。再送タイムアウト時間がRTTより小さくなると、送信装置と受信装置との間でセグメントが欠落していないにもかかわらずセグメントの再送が発生することがある。このようなセグメント再送信が発生する状況はスプリアスタイムアウトと呼ばれ、通信のスループット低下の要因となりうる。
 このスプリアスタイムアウトを検出するための手法の一つとして、F-RTO(Forward RTO-Recovery)がある。F-RTOでは、送信装置において、再送タイマが満了(以下、「タイムアウト」と呼ぶ)した場合に新たな未送信セグメントをシーケンス番号が小さい順に2つ送信し、これらのセグメント送信後において最初に受信装置から受信したACKの内容により、タイムアウトがセグメントの欠落によるものであるか、スプリアスタイムアウトによるものであるかを判定する。具体的には、受信したACKにより受信確認されたセグメントのシーケンス番号が、前回受信したACKにより受信確認されたセグメントのシーケンス番号よりも進んでいる場合にはスプリアスタイムアウトによるものであると判定し、そうでない場合はセグメントの欠落によるものであると判定する。スプリアスタイムアウトによるものであると判定された場合は、そのまま後続のセグメントの送信を継続し、セグメント欠落によるものであると判定された場合は欠落したセグメントを再送し受信装置が受信してから後続のセグメントの送信を行う(非特許文献3)。
 また、データフレームの再送を規定したデータリンクをTCPの下位レイヤに用いた場合、受信装置における再送フレームを蓄積するバッファサイズが十分に大きければデータリンクにおけるフレームの欠落は発生しないため、再送タイムアウト時間をRTTの上限より小さくしたとしても、スプリアスタイムアウトが発生する可能性が増加するのみで、再送回復契機が早まる効果はない。
 しかし、実際には再送フレームを蓄積するバッファサイズは有限であり、バッファサイズを超えるフレームをデータリンクに入力すると、データの破棄を行うことになる。つまりこれは、再送タイムアウト時間をTCPにおけるRTTの上限よりも小さくすることで、スプリアスタイムアウトが増加するデメリットはあるものの、再送回復契機が早まるメリットが得られることを意味する。
 ここで、特許文献1に記載の従来技術にかかる送信装置に対して非特許文献3に記載の従来技術を単純に組み合わせることにより、スプリアスタイムアウト発生によるデメリットを軽減しつつ、再送回復契機を早めることができることは容易に想像できる。
特開2005-236961号公報
J. Postel, "Transmission Control Protocol - DARPA Internet Program Protocol Specification", RFC793, September 1981. R. Braden, "Requirements for Internet Hosts - Communication Layers", RFC1122, October 1989. P. Sarolahti, M. Kojo, and K. Raatikainen, "F-RTO: An Enhanced Recovery Algorithm for TCP Retransmission Timeouts", ACM SIGCOMM Computer Communications Review, April 2003, Volume 33, Number 2, p.51-63.
 しかし、特許文献1に記載の送信装置に対して非特許文献3に記載のF-RTOアルゴリズムを単純に組み合わせる場合、以下のような問題点があった。
 図9は、従来技術における問題点を説明する図である。なお、図9においては、遅延ACK方式が採用されていることを前提とする。
 まず、送信側端末から受信側端末にSegment1、Segment2を送信し(S901、S901’)、これに対する受信側端末からのACK2(S902)が、Segment1(S901)を送信してから再送タイムアウト時間である時間tRTO経過後に受信されたとする(スプリアスタイムアウトの発生)。
 この場合、送信側端末からはタイムアウトの発生により、Segment1が再送されるが(S903)、再送タイムアウト時間に対してバックオフアルゴリズムの適用が抑止されている場合、この時の再送タイムアウト時間はtRTOとなる。さらに、F-RTOアルゴリズムにより、ACK2(S902)の受信後、2つの未送信セグメントであるSegment5とSegment6が送信され(S904、S905)、これらのセグメントの送信後、最初に受信するACK(S906)のシーケンス番号が進んでいれば最初のSegment1(S901)のタイムアウトはスプリアスタイムアウトであると判断し、シーケンス番号が進んでいなければセグメントの欠落等によるタイムアウトであると判断する。図9のように、受信したACKがACK4(S906)である場合にはシーケンス番号は進んでいるので、Segment1(S901)のタイムアウトはスプリアスタイムアウトであったと判断する。
 しかし、再送タイムアウト時間に対してバックオフアルゴリズムの適用が抑止されている場合には、Segment5の送信(S904)についても再送タイムアウト時間として時間tRTOが設定されるため、Segment5(及びSegmnet6)に対するACK6(S907)もスプリアスタイムアウトとなる可能性が高く、スプリアスタイムアウトとなった場合には、Segment5の再送が発生し(S908)、さらに未送信セグメントであるSegment7とSegment8が送信されることとなる(S909、S910)。
 ここで、Segment5の再送(S908)における再送タイムアウト時間は、Segment4の送信からACK4(S906)が返ってくるまでのRTTを測定して更新されるが、再送タイムアウト時間tRTOがRTTよりも小さい場合であって、かつ、例えば時間tRTOが再送タイムアウト時間の最小値である場合には、Segment5(S908)の再送タイムアウト時間t’RTOは、tRTO<t’RTO<RTTとなるため、Segment5(S908)もスプリアスタイムアウトとなる可能性が高い。以後、同様にスプリアスタイムアウトが連続して発生する。
 すなわち、特許文献1に記載の送信装置に対してF-RTOアルゴリズムを単純に組み合わせた場合、一度スプリアスタイムアウトが発生すると、その後スプリアスタイムアウトが連続発生するという問題点がある。つまり、RTTよりも再送タイムアウト時間が小さい状況でスプリアスタイムアウトが発生すると、送信装置は新たな未送信セグメントを2つ送信するが、ここで再送タイムアウト時間をバックオフせずに小さい値を設定すると、最初にスプリアスタイムアウトとなったセグメントに対応するACKを受信、再送回復した後でこの新たな未送信セグメントについてスプリアスタイムアウトが発生、さらに新たな未送信セグメントを2つ送信する、という動作を繰り返す。また、この問題はスプリアスタイムアウトの検出にF-RTOアルゴリズムを採用する場合のみならず、他のアルゴリズムを用いる場合であっても、タイムアウトとなったセグメント再送後の最初のACKの受信に応じて1以上の未送信セグメントを送信するようなアルゴリズムであれば同様の問題が生じうる。
 そこで本発明は、上記問題点を解決し、スプリアスタイムアウトによるスループット低下を抑制しつつ、再送発生時の再送回復契機が早い通信装置、通信方法を提供することを目的とする。
 上記目的を達成するために、本発明は、データセグメントの送信およびその確認応答の受信を順次行い、データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信装置であって、データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定手段と、前記スプリアスタイムアウト判定手段によってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加手段と、を備えたことを特徴とする通信装置、を提案する。
 この構成によれば、データセグメントの再送時にバックオフアルゴリズムの適用が抑止されている場合であっても、スプリアスタイムアウトが発生した場合には、再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。
 また、前記確認応答にはシーケンス番号がそれぞれ付与されており、前記スプリアスタイムアウト判定手段は、前記データセグメントの再送直後に受信した第1の確認応答のシーケンス番号が前回受信したものよりも進んでいる場合であって、かつ、前記第1の確認応答の直後に受信した第2の確認応答のシーケンス番号が前回受信したものよりも進んでいる場合には、スプリアスタイムアウトが発生したと判定するようになっていてもよい。
 この構成によれば、前記データセグメントの再送直後における確認応答に基づいて、発生したタイムアウトがスプリアスタイムアウトであったか否かを判定し、再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。
 また、前記再送タイムアウト時間増加手段は、前記バックオフアルゴリズムの適用が抑止されている場合に、前記データセグメントの再送直後に受信した第1の確認応答に応じて送信される少なくとも1つの新規のデータセグメントを送信する際の前記再送タイムアウト時間を増加させるようになっていてもよい。
 この構成によれば、第1の確認応答の受信後に送信される少なくとも1つの新規のデータセグメントについて、再送タイムアウト時間を増加することができる。これにより、F-RTOアルゴリズム等により第1の確認応答に応じて送信される新規のデータセグメントがスプリアスタイムアウトとなることを回避し、スプリアスタイムアウトが連続発生するという事態を回避することが可能となる。
 また、前記再送タイムアウト時間増加手段は、前記再送タイムアウト時間を2倍とするようになっていてもよい。
 この構成によれば、データセグメント再送時の再送タイムアウト時間を2倍とすることができるため、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避できる可能性がより高くなる。
 また、前記スプリアスタイムアウト判定手段は、F-RTOアルゴリズムにより前記判定を行うようになっていてもよい。
 この構成によればデータセグメントの再送時にバックオフアルゴリズムが抑止され、かつF-RTOを用いてスプリアスタイムアウトを検出した場合には、データセグメント再送時の再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。
 また、本発明は、データセグメントの送信およびその確認応答の受信を順次行い、データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信方法であって、データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定ステップ(例えば図8中のステップS809に対応)と、前記スプリアスタイムアウト判定ステップによってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加ステップ(例えば図8中のステップS808に対応)と、を含むことを特徴とする通信方法、を提案する。
 この構成によれば、データセグメントの再送時にバックオフアルゴリズムの適用が抑止されている場合であっても、スプリアスタイムアウトが発生した場合には、再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。
 以上説明したように、本発明によれば、データセグメントの再送時にバックオフアルゴリズムが抑止されている場合にスプリアスタイムアウトが発生した場合には、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続発生するという事態を回避することが可能となる。
本実施形態に係る通信装置における動作を示す図である。 本実施形態に係る通信システムの構成例を示す図である。 本実施形態に係る通信システムにおけるプロトコルスタックを示す図である。 セグメントの欠落による再送の具体例を示す図である。 本実施形態に係るサーバ装置の構成例を示すブロック図である。 本実施形態に係る通信端末の構成例を示すブロック図である。 本実施形態に係るサーバ装置における処理の流れを示すフローチャートである。 タイムアウト再送処理の流れを示すフローチャートである。 従来技術における問題点を説明する図である。
 以下、本発明の実施の形態について図面を参照しながら説明する。
(動作概要)
 まず、本実施形態に係る通信装置における動作の概要について図1を参照して説明する。なお、図1においては、遅延ACK方式が採用されていることを前提とする。
 最初に、送信側端末(本実施形態に係る通信装置に対応する)から受信側端末にSegment1、Segment2を送信し(S101、S101’)、これに対する受信側端末からのACK2(S102)が、Segment1(S101)を送信してから再送タイムアウト時間である時間tRTO経過後に受信されたとすると(スプリアスタイムアウトの発生)、送信側端末からは再送タイムアウト時間についてバックオフアルゴリズムの適用を抑止してSegment1が再送される(S103)。さらに、F-RTOアルゴリズムにより、ACK2(S102)が受信された後、新たな未送信セグメントであるSegment5とSegment6が送信されるが(S104、S105)、この際の再送タイムアウト時間を例えば2倍にする等して増加させることで、Segment5(及びSegment6)に対するACK6(S106)がスプリアスタイムアウトとなることを回避することができる。
(通信装置の構成)
 次に、本実施形態に係る通信装置であるサーバ装置を含む通信システムの構成例について図2を参照して説明する。図2に示す通信システムは、サーバ装置10と、無線ネットワーク1と、無線制御装置20と、通信端末30とから構成される。また、図3は、本実施形態に係る通信システムにおけるプロトコルスタックを示す図である。L1、L2は、それぞれOSI(Open Systems Interconnection)参照モデルにおける物理層、データリンク層に該当し、IPはネットワーク層、TCPはトランスポート層に該当する。すなわち、サーバ装置10と通信端末30とは、OSI参照モデルのトランスポート層に位置するTCPに従って通信を行う。TCPでは、データ送信毎にデータが確実に受信されたことを示すACKを待つ通信、すなわち確認型通信が行われる。
 図2に戻り、無線ネットワーク1は、具体的には、例えば無線LANが接続されたWANやLAN、携帯電話システムの交換ネットワークとこれに接続するWANやLAN、インターネットである。
 サーバ装置10は、無線ネットワーク1および無線制御装置20を介して通信端末30にデータを伝達する。また、サーバ装置10は、送信部101と、タイムアウト判断部102と、再送部103と、スプリアスタイムアウト判定部104と、再送タイムアウト時間増加部105と、を有する。このサーバ装置10は、例えばサーバ、ワークステーションを用いて実現される。
 送信部101は、送信データを複数に分割して生成されるセグメントを、無線ネットワーク1を介して通信端末30へ送信する。セグメントにはシーケンス番号を含むヘッダを付し、シーケンス番号の小さい順に通信端末30へ送信する。
 タイムアウト判断部102は、送信部101からセグメントが送信されると、その送信時刻を保持し、このセグメントに対するACKが送信時刻から一定時間内、すなわち再送タイムアウト時間内に受信されなかった場合にはタイムアウトが発生したと判断する。なお、再送タイムアウト時間の値がRTTよりも小さい値に設定された場合にはスプリアスタイムアウトが発生しやすくなるため、この場合特に、本発明に係る通信装置の再送制御が有効となる。
 再送部103は、タイムアウト判断部102においてタイムアウトが発生したと判断された場合に、n回目(nは正の整数)の再送までは再送タイムアウト時間に対してバックオフアルゴリズムを適用せず、n回目を超える再送においては再送タイムアウト時間に対してバックオフアルゴリズムを適用して、タイムアウトとなったセグメントを送信部101に再送させる。バックオフアルゴリズムは、セグメント再送時の再送タイムアウト時間を増加させるアルゴリズムであり、代表的なものに再送タイムアウト時間を指数関数的に増加させる指数バックオフアルゴリズムがある。
 スプリアスタイムアウト判定部104は、セグメント再送直後に受信した確認応答に基づいて、タイムアウト判断部102において発生したタイムアウトがスプリアスタイムアウトであるか否かを判定する。「確認応答」とは、サーバ装置10から送信されたセグメントを通信端末30において受信できたことを表す情報であり、具体的にはTCP/IPにおけるACK等が該当する。
(スプリアスタイムアウト判定部)
 スプリアスタイムアウト判定部104は、再送部103により再送されたセグメントの再送直後に受信した第1の確認応答のシーケンス番号が前回受信したものより進んでいる場合であって、かつ、前記第1の確認応答の直後に受信した第2の確認応答のシーケンス番号が前回受信したものより進んでいる場合には、スプリアスタイムアウトが発生したと判定する。
 例えば、図1の例において、送信部101から送信したSegment1(S101)についてスプリアスタイムアウトが発生した場合、タイムアウトの発生後、再送部103によって送信部101からタイムアウトしたSegment1が再送され(S103)、その後、最初のセグメントについての第1の確認応答であるACK2を受信することになる(S102)。この場合、受信した確認応答ACK1のシーケンス番号は前回受信したものより進んでいる。もし、受信した確認応答のシーケンス番号が進んでいない場合には、それは最初のセグメントについての確認応答ではなく、それ以前に送信されたセグメントの重複ACK等である。
 しかしながら、ここでの確認応答のシーケンス番号が進んでいたとしても、このことのみによってただちに、発生したタイムアウトがスプリアスタイムアウトであったとは言えない。なぜならば、図4に示すように、Segment2、Segment3が何らかの理由で欠落した場合であっても(S401、S402)、Segment1の再送(S403)直後に受信する確認応答であるACK1(S404)のシーケンス番号は進んでしまうからである。
 そこで、スプリアスタイムアウト判定部104は、さらに、この第1の確認応答の直後に受信する第2の確認応答のシーケンス番号が進んでいるか否かをチェックする。ここで、第2の確認応答とは、図1におけるACK4や図4における重複ACK1(S405)が該当する。図1に示すように、最初のセグメントのタイムアウトがスプリアスタイムアウトであった場合には、この第2の確認応答はACK4でありシーケンス番号は進んでいることになる。一方、図4に示すように、セグメントが欠落したことによりタイムアウトとなった場合には、この第2の確認応答は重複ACKとなるので(S405)、シーケンス番号は進んでいないことになる。
 以上より、スプリアスタイムアウト判定部104は、タイムアウトとなったセグメントの再送直後に受信した第1の確認応答のシーケンス番号が前回受信したものより進んでいる場合であって、かつ、この第1の確認応答の直後に受信した第2の確認応答のシーケンス番号が進んでいる場合に、タイムアウトがスプリアスタイムアウトであったと判定する。
(再送タイムアウト時間増加部)
 図2に戻り、再送タイムアウト時間増加部105は、スプリアスタイムアウト判定部104によってスプリアスタイムアウトが発生したと判定された場合に、再送タイムアウト時間を増加させる。どのような割合にて増加させるかは、例えば指数バックオフアルゴリズムのように2倍としてもよいし、他の割合によってもよい。
 また、再送タイムアウト時間増加部105は、より具体的には、再送タイムアウト時間について前記バックオフアルゴリズムの適用が抑止されている場合に、再送部103によるセグメントの再送直後に受信した第1の確認応答に応じて送信される少なくとも1つの新規のデータセグメントを送信する際の再送タイムアウト時間を増加させる。ここで、バックオフアルゴリズムの適用が抑止されている場合に限るのは、図9において説明したように、本発明が解決すべき課題は、最初の第1の確認応答が再送タイムアウト時間経過後に受信された場合、その後に送信される新たな未送信セグメントが同じ再送タイムアウト時間で送信されることにより再度タイムアウトとなることを回避することである。よって、未送信セグメントの送信時にバックオフアルゴリズムが適用されているならば、さらに再送タイムアウト時間を増加させる必要はなく、バックオフアルゴリズムが適用されない場合にのみ再送タイムアウト時間を増加させればよいからである。また、再送部103によるセグメントの再送直後に受信した第1の確認応答に応じて送信される少なくとも1つの新規のデータセグメントとは、図1の例であれば、Segment5(S104)やSegment6(S105)が該当する。なお、図1においては新規のデータセグメントを2つ送信しているが(S104、S105)、1つのみのデータセグメントを送信する場合であっても、本発明は同様の効果を奏する。
 なお、図2においてはサーバ装置10と通信端末30とが通信を行う場合を示しているが、サーバ装置10に代えてTCP通信により通信端末30にデータ送信を行う通信機器であってもよく、例えば携帯電話端末等であってもよい。
(サーバ装置の具体的構成)
 ここで、本実施形態に係るサーバ装置10のより具体的な構成例について説明する。図5は、サーバ装置10の構成例を示すブロック図である。図5を参照すると、サーバ装置10は、CPU(Central Processing Unit)11、不揮発性記憶装置12、RAM(Random Access Memory)13、ネットワークインタフェース14、を備えている。
 サーバ装置10は、一般的なコンピュータと同様にCPU11が不揮発性記憶装置12に記憶されているプログラムを、RAM13をワークエリアとして実行することで、各種の処理を行う。不揮発性記憶装置12は電源を供給しなくても記憶を保持する記憶装置であり、例えばROM(Read Only Memory)、フラッシュメモリ、強誘電体メモリ、磁気抵抗メモリ、磁気ディスク、光ディスク、磁気テープ等である。不揮発性記憶装置12には、プログラムの実行処理を行わせるための制御プログラム(図示しない)と、TCPに従って通信処理を行わせるための通信プログラム121が記憶されている。また、通信プログラム121には、上述した送信部101、タイムアウト判断部102、再送部103、スプリアスタイムアウト判定部104、再送タイムアウト時間増加部105に対応するモジュールが含まれており、必要に応じて各モジュールはRAM13に展開されCPU11により実行される。また、ネットワークインタフェース14は、無線ネットワーク1とデータの送受信を行うための有線又は無線の通信インタフェースである。
(無線制御装置)
 図2に戻り、無線制御装置20は、通信端末30と無線リンクを介して接続し、通信端末30と無線ネットワーク1との間の無線インタフェースとして機能する。無線制御装置20は、具体的には、例えば、無線LANのAP(Access Point)、携帯電話システムのRAN(Radio Access Network)である。
(通信端末)
 通信端末30は、サーバ装置10から送信されるセグメントを受信する。通信端末30は、具体的には、例えば携帯電話端末、無線通信機能を備えたPC(パーソナルコンピュータ)である。
(通信端末の具体的構成)
 次に、本実施形態に係る通信端末30のより具体的な構成例について説明する。図6は、通信端末30の構成例を示すブロック図である。図6を参照すると、通信端末30は、無線インタフェース31、IP処理部32、TCP処理部33、アプリケーション処理部34、を備えている。
 無線インタフェース31は、無線ネットワーク1とのインタフェースとして機能する。無線インタフェース31は、具体的には、アンテナ、高周波処理部、およびベースバンド処理部(図示しない)等を備える。
 IP処理部32は、無線ネットワーク1から割り当てられたIPアドレス、又は通信端末30に対してユーザが設定した一意のアドレスによって、無線ネットワーク1において識別される。
 TCP処理部33は、再送制御や輻輳制御を実行する。これによって、より信頼性の高い通信を可能とする。
 アプリケーション処理部34は、WebブラウザやFTP(File Transfer Protocol)クライアント、メールクライアント等、ユーザが利用するアプリケーションを実行する機能を有する。
(サーバ装置の処理の流れ)
 図7は、本実施形態に係るサーバ装置10の処理の流れを示すフローチャートである。
 最初に、サーバ装置10の送信部101から通信端末30に対してデータセグメントを送信する(ステップS701)。
 次に、タイムアウト判断部102において、ステップS701にて送信したデータセグメントについてタイムアウトが発生したか判断する(ステップS702)。タイムアウトが発生した場合、すなわち再送タイムアウト時間内に通信端末30からのACKを受信しなかった場合には、タイムアウト再送処理(S703)に移行する。タイムアウトが発生しなかった場合、すなわち再送タイムアウト時間内に通信端末30からのACKを受信した場合には、処理を終了する。
 次に、ステップS703においてタイムアウト再送処理を実行する。なお、タイムアウト再送処理については後述する。
(タイムアウト再送処理)
 次に、図8を用いて、タイムアウト再送処理の具体例について説明する。図8は、タイムアウト再送処理の流れを示すフローチャートである。このタイムアウト再送処理は、図7のステップS703にて実行される処理である。
 最初に、再送部103によって、送信部101からタイムアウトしたセグメントを再送する(ステップS801)。
 次に、ステップS801における再送がn回目以下の再送であるか判断する(ステップS802)。n回目以下の再送である場合は、再送タイムアウト時間についてバックオフ処理を実行しないため、そのままステップS804に移行する。n回目以下の再送ではない場合(すなわちn+1回目以上の再送である場合)は、再送タイムアウト時間についてバックオフ処理を実行するために再送タイムアウト時間を増加して(ステップS803)、ステップS804に移行する。なお、上記ステップS802及びステップS803は再送タイムアウト時間増加部105において実行される。
 次に、ACK(第1の確認応答)を受信したか否かの判断を行うが(ステップS804)、ACKを受信するまでは本ステップを繰り返し、ACKを受信した場合にはステップS805に移行する。
 次に、ステップS804にて受信したACKのシーケンス番号が前回受信したACKのシーケンス番号よりも進んでいるかを判断する(ステップS805)。ACKのシーケンス番号が進んでいる場合には、ステップS806に移行する。ACKのシーケンス番号のシーケンス番号が進んでいない場合にはタイムアウト再送処理を終了する。
 ステップS806においては、再送タイムアウト時間を一時的に保存する。これは、後述するステップS809においてタイムアウトがスプリアスタイムアウトではないと判断された場合に、後述のステップS808にて増加させる再送タイムアウト時間を元に戻すためである。
 ステップS807においては、送信部101にて実行されたセグメントの再送がn回目以下の再送であるか(バックオフ処理が実行されたか)を判断する。n回目以下の再送である場合には、バックオフ処理が実行されていないため再送タイムアウト時間を増加させて(ステップS808)、ステップS809に移行する。n回目以下の再送ではない場合には、すでにステップS802にてバックオフ処理が実行されているので、何も実行せずにステップS809に移行する。なお、上記ステップS807及びステップS808は再送タイムアウト時間増加部105において実行される。
 次に、タイムアウトがスプリアスタイムアウトであったか判断する(S809)。スプリアスタイムアウトでなかった場合には、ステップS806にて一時的に保存しておいた再送タイムアウト時間を用いて、ステップS808にて増加させた再送タイムアウト時間を元の時間に復旧させる(ステップS810)。スプリアスタイムアウトであった場合には、タイムアウト再送処理を終了する。なお、ステップS809の処理はスプリアスタイムアウト判定部104によって実行されるが、スプリアスタイムアウト判定部104は、ステップS805おいてACKのシーケンス番号が前回受信したものよりも進んだこと、及び、このACKの次に受信されるACK(第2の確認応答)のシーケンス番号が前回受信したものよりも進んだことをもって、発生した再送タイムアウトがスプリアスタイムアウトであることを判定することができる。
(通信方法)
 上述した通信システムにおいては、以下のような通信方法が実現されている。すなわち、データセグメントの送信およびその確認応答の受信を順次行い、データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信方法であって、データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定ステップ(例えば図8中のステップS809に対応)と、前記スプリアスタイムアウト判定ステップによってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加ステップと(例えば図8中のステップS808に対応)、を含むことを特徴とする通信方法が実現されている。
 この通信方法によれば、データセグメントの再送時にバックオフアルゴリズムの適用が抑止されている場合であっても、スプリアスタイムアウトが発生した場合には、再送タイムアウト時間を増加させることができる。これにより、バックオフアルゴリズムの適用が抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。
(まとめ)
 以上説明したように、本発明によれば、データセグメントの再送時にバックオフアルゴリズムが抑止されている場合に、一旦スプリアスタイムアウトが発生すると、その後もスプリアスタイムアウトが連続的に発生するという事態を回避することが可能となる。また、特に、再送タイムアウト時間がRTTよりも小さい値に設定されている場合にはスプリアスタイムアウトが発生しやすいため、本発明はより有効である。
 また、上記の説明においては、スプリアスタイムアウトの検出にF-RTOアルゴリズムを用いる場合を主に想定しているが、他のアルゴリズムを用いる場合であっても、データセグメントの再送直後に受信した第1の確認応答に応じて新たなセグメントが送信されるようなアルゴリズムであれば、同様にスプリアスタイムアウトの連続発生という課題が生じうるため、そのような場合にも本発明は同様の効果を奏する。すなわち、本発明はF-RTOが採用される場合に限定されるものではない。
 1 無線ネットワーク
 10 サーバ装置
 101 送信部
 102 タイムアウト判断部
 103 再送部
 104 スプリアスタイムアウト判定部
 105 再送タイムアウト時間増加部
 11 CPU
 12 不揮発性記憶装置
 121 通信プログラム
 13 RAM
 14 ネットワークインタフェース
 20 無線制御装置
 30 通信端末
 31 無線インタフェース
 32 IP処理部
 33 TCP処理部
 34 アプリケーション処理部

Claims (6)

  1.  データセグメントの送信およびその確認応答の受信を順次行い、
     データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信装置であって、
     データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定手段と、
     前記スプリアスタイムアウト判定手段によってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加手段と、
    を備えたことを特徴とする通信装置。
  2.  前記確認応答にはシーケンス番号がそれぞれ付与されており、
     前記スプリアスタイムアウト判定手段は、前記データセグメントの再送直後に受信した第1の確認応答のシーケンス番号が前回受信したものよりも進んでいる場合であって、かつ、前記第1の確認応答の直後に受信した第2の確認応答のシーケンス番号が前回受信したものよりも進んでいる場合には、スプリアスタイムアウトが発生したと判定することを特徴とする請求項1に記載の通信装置。
  3.  前記再送タイムアウト時間増加手段は、前記バックオフアルゴリズムの適用が抑止されている場合に、前記データセグメントの再送直後に受信した第1の確認応答に応じて送信される少なくとも1つの新規のデータセグメントを送信する際の前記再送タイムアウト時間を増加させることを特徴とする請求項1又は2に記載の通信装置。
  4.  前記再送タイムアウト時間増加手段は、前記再送タイムアウト時間を2倍とすることを特徴とする請求項1から3のいずれか一に記載の通信装置。
  5.  前記スプリアスタイムアウト判定手段は、F-RTO(Forward RTO-Recovery)アルゴリズムにより前記判定を行うことを特徴とする請求項1から4のいずれか一に記載の通信装置。
  6.  データセグメントの送信およびその確認応答の受信を順次行い、
     データセグメントの再送時の再送タイムアウト時間を増加させるバックオフアルゴリズムの適用を抑止でき、かつ、再送タイムアウト時間を制御してデータセグメントの再送を行う通信方法であって、
     データセグメント再送直後に受信した確認応答に基づいてスプリアスタイムアウトを判定するスプリアスタイムアウト判定ステップと、
     前記スプリアスタイムアウト判定ステップによってスプリアスタイムアウトが発生したと判定された場合に、前記再送タイムアウト時間を増加させる再送タイムアウト時間増加ステップと、
    を含むことを特徴とする通信方法。
PCT/JP2009/006535 2008-12-05 2009-12-02 通信装置、通信方法 Ceased WO2010064421A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010541231A JP5080654B2 (ja) 2008-12-05 2009-12-02 通信装置、通信方法
EP09830191.4A EP2355416A4 (en) 2008-12-05 2009-12-02 COMMUNICATION DEVICE AND METHOD
CN200980145332.6A CN102217249B (zh) 2008-12-05 2009-12-02 通信装置和通信方法
US13/132,693 US8607114B2 (en) 2008-12-05 2009-12-02 Communication device and communication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-310960 2008-12-05
JP2008310960 2008-12-05

Publications (1)

Publication Number Publication Date
WO2010064421A1 true WO2010064421A1 (ja) 2010-06-10

Family

ID=42233079

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/006535 Ceased WO2010064421A1 (ja) 2008-12-05 2009-12-02 通信装置、通信方法

Country Status (5)

Country Link
US (1) US8607114B2 (ja)
EP (1) EP2355416A4 (ja)
JP (1) JP5080654B2 (ja)
CN (1) CN102217249B (ja)
WO (1) WO2010064421A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014535195A (ja) * 2011-10-14 2014-12-25 ドイッチェ テレコム アーゲー 移動端末上で移動無線のインターフェースを監視する方法および装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101835387B1 (ko) * 2011-04-29 2018-03-08 삼성전자주식회사 단말기 및 그 단말기에서 자원 스케줄링 방법
KR20130101598A (ko) * 2012-01-27 2013-09-16 한국전자통신연구원 중복응답 패킷 식별을 위한 패킷 처리장치 및 그 방법
FR2995168B1 (fr) * 2012-08-30 2014-08-29 Commissariat Energie Atomique Procede de gestion d'un point d'acces d'un reseau de communication en fonction du trafic
JP2014165551A (ja) * 2013-02-21 2014-09-08 Fujitsu Ltd 通信装置、通信方法、プログラム、及び、通信システム
SG10201400508TA (en) * 2014-03-10 2015-10-29 Rohde & Schwarz Asia Pte Ltd Method and test system for testing wireless lan devices
CN104917594B (zh) * 2015-04-22 2018-05-29 北京邮电大学 虚拟机的tcp数据传输方法和虚拟机系统
CN114285762B (zh) * 2021-12-03 2024-07-30 网宿科技股份有限公司 Rtt的更新方法、更新装置、处理器与通信系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002534907A (ja) * 1999-01-08 2002-10-15 テレフォンアクチーボラゲット エル エム エリクソン(パブル) 通信装置及び通信方法
JP2005005906A (ja) * 2003-06-10 2005-01-06 Ntt Docomo Inc Tcp通信における再送タイマ値の設定方法
JP2005236961A (ja) 2004-01-23 2005-09-02 Ntt Docomo Inc 送信装置およびプログラム
JP2008219408A (ja) * 2007-03-02 2008-09-18 Ntt Docomo Inc 通信装置、通信システム及び送信制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2606136B2 (ja) 1994-06-20 1997-04-30 日本電気株式会社 データ通信端末装置および再送タイマ制御方法
EP1244255A1 (de) * 2001-03-20 2002-09-25 Telefonaktiebolaget L M Ericsson (Publ) Verfahren und Vorrichtung zur Verbesserung eines Datendurchsatzes
AU2002253437A1 (en) * 2002-04-12 2003-10-27 Nokia Corporation System, device and method for improving throughput in a communication network, preferably a mobile ipv6-based network
US8230106B2 (en) * 2003-03-31 2012-07-24 Alcatel Lucent Methods and apparatus for improved transmission control protocol transmission over a wireless channel exhibiting rate and delay variations
US8004981B2 (en) * 2003-06-17 2011-08-23 Cisco Technology, Inc. Methods and devices for the coordination of flow control between a TCP/IP network and other networks
JP2005117301A (ja) * 2003-10-07 2005-04-28 Hitachi Kokusai Electric Inc 通信装置
US7397759B2 (en) * 2004-03-15 2008-07-08 Microsoft Corporation Response for spurious timeout
US7821924B2 (en) * 2004-11-18 2010-10-26 Alcatel-Lucent Usa Inc. Method and apparatus for timeout reduction and improved wireless network performance by delay injection
JP4562694B2 (ja) * 2006-06-20 2010-10-13 富士通株式会社 再送制御方法及び装置
US8418016B2 (en) * 2006-10-05 2013-04-09 Ntt Docomo, Inc. Communication system, communication device, and communication method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002534907A (ja) * 1999-01-08 2002-10-15 テレフォンアクチーボラゲット エル エム エリクソン(パブル) 通信装置及び通信方法
JP2005005906A (ja) * 2003-06-10 2005-01-06 Ntt Docomo Inc Tcp通信における再送タイマ値の設定方法
JP2005236961A (ja) 2004-01-23 2005-09-02 Ntt Docomo Inc 送信装置およびプログラム
JP2008219408A (ja) * 2007-03-02 2008-09-18 Ntt Docomo Inc 通信装置、通信システム及び送信制御方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
J. POSTEL: "Transmission Control Protocol - DARPA Internet Program Protocol Specification", RFC793, September 1981 (1981-09-01)
P. SAROLAHTI, M. KOJO, K. RAATIKAINEN: "F-RTO: An Enhanced Recovery Algorithm for TCP Retransmission Timeouts", ACM SIGCOMM COMPUTER COMMUNICATIONS REVIEW, vol. 33, no. 2, April 2003 (2003-04-01), pages 51 - 63
R. BRADEN: "Requirements for Internet Hosts - Communication Layers", RFC1122, October 1989 (1989-10-01)
See also references of EP2355416A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014535195A (ja) * 2011-10-14 2014-12-25 ドイッチェ テレコム アーゲー 移動端末上で移動無線のインターフェースを監視する方法および装置

Also Published As

Publication number Publication date
JP5080654B2 (ja) 2012-11-21
JPWO2010064421A1 (ja) 2012-05-10
US8607114B2 (en) 2013-12-10
EP2355416A4 (en) 2015-03-04
CN102217249B (zh) 2014-03-19
EP2355416A1 (en) 2011-08-10
CN102217249A (zh) 2011-10-12
US20110239073A1 (en) 2011-09-29

Similar Documents

Publication Publication Date Title
JP5080654B2 (ja) 通信装置、通信方法
US11272420B2 (en) Method and apparatus for transmitting data packets using dual sequence numbers
JP5523350B2 (ja) Tcpフロー制御のための方法及び装置
CN106656431B (zh) 一种报文传输方法及用户设备
JP4503186B2 (ja) 通信装置及び通信方法
CN1671094B (zh) 对假超时的响应
CN103986548B (zh) 一种确定丢包原因的方法和终端
CN101369877B (zh) 无线传输控制协议处理方法和设备
CN102664718A (zh) 无线侧tcp数据重传的方法和设备
JP2017520996A (ja) トランスペアレント性能拡張プロキシを動作させるための方法およびコンピュータ・プログラム、ならびにトランスペアレント性能拡張プロキシ
JP2005167353A (ja) 送信装置およびプログラム
CN101325539A (zh) 一种局域网内可靠通信的方法
US11962517B2 (en) Communications method, apparatus, and system for recovering lost packets
CN104104608A (zh) 接收报文的方法及装置
JP7067544B2 (ja) 通信システム、通信装置、方法およびプログラム
US9294409B2 (en) Reducing round-trip times for TCP communications
JP4701265B2 (ja) 送信端末及びデータ送信方法
JP2005167352A (ja) 送信装置およびプログラム
CN105187277A (zh) 一种基于无线网络错误感知的sack丢失检测和快速重传的方法
JP2005044047A (ja) 端末装置及びデータ送信方法
JP2004222271A (ja) 伝送制御方法、通信装置、通信システム及びプログラム
JP2019047162A (ja) 情報処理システム、情報処理方法、プログラム、及び情報処理装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980145332.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09830191

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010541231

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2009830191

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13132693

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE