WO2013011638A1 - 通信装置およびその通信制御方法 - Google Patents

通信装置およびその通信制御方法 Download PDF

Info

Publication number
WO2013011638A1
WO2013011638A1 PCT/JP2012/004188 JP2012004188W WO2013011638A1 WO 2013011638 A1 WO2013011638 A1 WO 2013011638A1 JP 2012004188 W JP2012004188 W JP 2012004188W WO 2013011638 A1 WO2013011638 A1 WO 2013011638A1
Authority
WO
WIPO (PCT)
Prior art keywords
confirmation response
communication
data
network
transmission
Prior art date
Application number
PCT/JP2012/004188
Other languages
English (en)
French (fr)
Inventor
長谷川 洋平
地引 昌弘
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2013011638A1 publication Critical patent/WO2013011638A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • 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

Definitions

  • the present invention relates to a communication system between terminals, and more particularly to a communication apparatus and a communication control method thereof in a communication system that returns an acknowledgment (ACK) for received data to a transmission side.
  • ACK acknowledgment
  • TCP / IP Transmission Control Protocol / Internet Protocol
  • TCP self-clocking the operation of transmitting the next packet triggered by reception of an acknowledgment is called TCP self-clocking. With self-clocking, the packet transmission interval is adjusted to an appropriate interval according to the bottleneck link, so a packet transmission rate adapted to the bottleneck can be obtained, and very efficient data transfer can be realized. .
  • TCP is designed to use a large number of confirmation responses.
  • TCP In general TCP, one confirmation response is returned for two data. Normally, the data size of TCP / IP is about 1518 bytes, and an acknowledgment response of about 58 bytes is returned (TCP header is 20 bytes, IP header is 20 bytes, and IEEE802.1 header is 18 bytes). .
  • An example is shown.
  • the line from the transmission terminal to the reception terminal has a sufficiently large capacity, and all data transmitted by the transmission terminal arrives at the reception terminal after a certain time.
  • the line from the receiving terminal to the transmitting terminal can pass only one confirmation response at one time, and when the confirmation response exceeding this is transmitted from the receiving terminal, the transfer time becomes long.
  • the maximum size of the congestion window was 16.
  • Time is the time
  • cwnd is the congestion window of the transmitting terminal
  • Data is the sequence number of the data transmitted by the transmitting terminal
  • rvd_ack is the number of the acknowledgment response that has arrived at the transmitting terminal
  • arvd_data is the sequence of the data that has arrived at the receiving terminal.
  • the number, Ack is the confirmation response number transmitted by the receiving terminal.
  • some arrows indicating packet transfer are described, but some arrows are omitted in order to make it easier to confirm that the confirmation response is delayed.
  • Patent Document 1 discloses a data communication method that avoids an increase in terminal load and a decrease in communication efficiency due to a loss of an acknowledgment packet. According to Patent Document 1, if the deterioration of the data communication status is detected based on the loss rate of the transmission data or the loss rate of the acknowledgment packet, the frequency of the acknowledgment response is increased, and conversely if the data communication status is improved By reducing the frequency of confirmation response, the number of data packets per confirmation response packet is changed to suppress the influence of the loss of the confirmation response packet (paragraphs 0014, 0033, 0038, etc. of Patent Document 1).
  • the round-trip time from the transmission of data to the return of the acknowledgment is increased at the transmitting terminal, and the amount of buffering data prepared for retransmission Will increase.
  • the buffer amount is limited, but if this amount is not sufficient, the communication throughput is limited.
  • an object of the present invention is to provide a communication apparatus and a communication control method thereof that can effectively avoid an increase in network delay due to an acknowledgment.
  • a communication device is a communication device of a method for returning an acknowledgment to data received from another communication device through a network, and detecting means for detecting a communication status of the network. And a confirmation response control means for adjusting a transmission amount of the confirmation response according to a communication state of the network.
  • the communication control method is a communication control method in a communication apparatus of a method for returning an acknowledgment to data received from another communication apparatus through the network, wherein the detecting means The communication status is detected, and the confirmation response control means adjusts the transmission amount of the confirmation response according to the communication status of the network.
  • a communication system is a communication system in which a reception device sends back an acknowledgment to data transmitted by a transmission device through a network, wherein the transmission device transmits transmission data, and the reception device transmits the transmission data.
  • a confirmation response is returned to the transmission device when received, and the reception device detects a communication status of the network, and a confirmation response control device adjusts the transmission amount of the confirmation response according to the communication status of the network. It is characterized by having.
  • an increase in network delay due to the confirmation response can be effectively avoided by adjusting the transmission amount of the confirmation response according to the communication state of the network.
  • FIG. 1 is a graph showing the amount of communication of a confirmation response when data is transferred by TCP at 10 Gbps.
  • FIG. 2 is a diagram showing an example of a data transfer transaction by general TCP communication.
  • FIG. 3 is a block diagram showing an example of a communication system using a communication apparatus according to an embodiment of the present invention.
  • FIG. 4 is a block diagram showing functional configurations of the transmission terminal and the reception terminal in FIG.
  • FIG. 5 is a diagram showing an example of a data transfer transaction using the communication control method according to the present embodiment.
  • FIG. 6 is a sequence diagram showing an example of RTT measurement by the receiving terminal.
  • FIG. 7 is a flowchart showing the TCP reception control operation of the communication apparatus according to the present embodiment.
  • FIG. 8 is a flowchart showing the TCP transmission control operation of the communication apparatus according to the present embodiment.
  • the communication apparatus has a function of reducing the transmission amount of an acknowledgment when network congestion is detected, thereby avoiding an increase in network delay due to an increase in the amount of acknowledgment.
  • a transmission side communication device 10 (hereinafter referred to as a transmission terminal 10) and a reception side communication device 20 (hereinafter referred to as a reception terminal 20) according to an embodiment of the present invention are connected via a network 30. It is assumed that data is transferred using a TCP connection.
  • the transmitting terminal 10 transmits data to the receiving terminal 20 through the network 30, and the receiving terminal 20 returns an acknowledgment ACK for the received data to the transmitting terminal 10 through the network 30.
  • the network 30 includes a downlink 41 and an uplink 42, and data from the transmission terminal 10 is transferred through the downlink 41, and an acknowledgment from the reception terminal 20 is transferred through the uplink 42.
  • the downlink 41 and the uplink 42 have a predetermined line speed. When a packet is input at a speed exceeding the line speed, the packet is stored in a buffer before the link and waits for the passage of the link in order. To do.
  • the transmission terminal 10 receives an application 11, a TCP transmission unit 12 that inputs data from the application 11 and executes communication control according to the present embodiment according to the TCP protocol, and data received from the TCP transmission unit 12. It includes an IP processing unit 13 for packetizing, and an input / output processing unit 14 for framing the packet passed from the IP processing unit 13 and outputting the frame to the network 30.
  • the TCP transmission unit 12 segments the data input from the application and outputs the data to the IP processing unit 13 while controlling the rate, the segment storage unit 102 for storing the segment, and in response to a request from the receiving terminal 20 And a congestion window notification unit 103 that notifies the congestion window size (data amount that can be transmitted).
  • the congestion window is the maximum data number that can be sent by the sender
  • the congestion window size is the congestion window minus the smallest data sequence number that has been sent and no ACK has been sent back, that is, can be sent. Refers to the amount of data.
  • the receiving terminal 20 converts the packet received from the application 21 and the IP processing unit 23 into data and performs communication control according to the TCP protocol, and packetizes the frame received from the input / output processing unit 24 and the TCP receiving unit 22. And an input / output processing unit 24 for passing a frame received from the network 30 to the IP processing unit 23.
  • the TCP receiving unit 22 converts the packet received from the IP processing unit 23 into data and outputs the data to the application 21, a segment storage unit 202 that stores a segment, and an ACK that returns an acknowledgment ACK for the received data
  • a transmission control unit 203 functionally includes an ACK delay measurement unit 204 and an ACK congestion window control unit 205.
  • the ACK delay measurement unit 204 measures a delay time from when the receiving terminal 20 transmits ACK until the transmitting terminal 10 that has received the ACK transmits data and when the receiving terminal 20 receives the data.
  • this delay time is referred to as RTT (Round Trip Time).
  • the ACK congestion window control unit 205 determines whether or not to transmit ACK, and passes ACK to the IP processing unit 23 when transmitting ACK.
  • the functions of the data transmission unit 101 and the congestion window notification unit 103 of the TCP transmission unit 12 can also be realized by executing a program stored in a memory (not shown) on a program control processor such as a CPU.
  • a program control processor such as a CPU.
  • each function of the data reception unit 201 of the TCP reception unit 22, the ACK delay measurement unit 204 of the ACK transmission control unit 203, and the ACK congestion window control unit 205 also uses a program stored in a memory (not shown) to control a program such as a CPU. It can also be realized by executing on a processor.
  • the TCP transmission unit 12 of the transmission terminal 10 and the TCP reception unit 22 of the reception terminal 20 are described separately on the transmission side and the reception side, but the TCP transmission unit 12 and the TCP reception unit 22 It is provided as a TCP communication unit of the same communication device.
  • a communication procedure according to this embodiment will be described.
  • FIG. 5 shows an example of a packet transaction between the transmission terminal 10 and the reception terminal 20.
  • Time is time
  • cwnd is a congestion window of the transmitting terminal 10
  • Data is a sequence number of data transmitted by the transmitting terminal 10
  • rvd_ack is an acknowledgment ACK arriving from the receiving terminal 20 to the transmitting terminal 10.
  • Arvd_data is the sequence number of the data arriving at the receiving terminal 20
  • Ack is the number of the acknowledgment sent by the receiving terminal
  • RTT in FIG. 5 is the round-trip delay time of the packet observed by the receiving terminal 20 Yes
  • acwnd is an acknowledgment congestion window indicating the amount of acknowledgment that can be sent according to the present invention.
  • the confirmation response congestion window acwnd is received from the time when the receiving terminal 20 transmits the confirmation response when the transmitting terminal 10 receives the confirmation response and transmits the next data to the receiving terminal 20. This corresponds to the number of confirmation responses that can be transmitted by the receiving terminal 20 during the elapsed time up to the time when 20 is received.
  • the receiving terminal 20 transmits an acknowledgment ACK, and when the transmitting terminal 10 receives the acknowledgment, the transmitting terminal 10 transmits data accordingly.
  • the sequence in which the receiving terminal 20 receives this it is defined as the time elapsed from when the receiving terminal 20 transmits the confirmation response until the next data is received.
  • 10 is set as the initial value of RTT.
  • the number of unprocessed confirmation responses that have not received data corresponding to them from the transmitting terminal 10 is called an ack_flight size.
  • the receiving terminal 20 can transmit a new confirmation response when the confirmation response congestion window acwnd is larger than the ack_flight size.
  • Control of Acknowledgment Congestion Window acwnd A control example of the Acknowledgment Congestion Window acwnd is as follows.
  • the ACK transmission control unit 203 of the receiving terminal 20 measures the RTT every time data is received from the transmitting terminal 10 and adjusts the confirmation response congestion window acwnd. Assuming that ACKi is an acknowledgment for the received data i, when receiving the data i, the receiving terminal 20 updates the acknowledgment response congestion window acwnd as follows.
  • RTT (i) is smaller than the value obtained by multiplying the minimum measured RTT value RTT_min by the coefficient ⁇ (RTT (i) ⁇ ⁇ RTT_min), increase acwnd by 1. If RTT (i) is greater than or equal to the number of RTT_min that has already been measured multiplied by the coefficient ⁇ (RTT (i) ⁇ ⁇ RTT_min), RTT (i) is compared with RTT (i-1). If it has increased, 1 is subtracted from acwnd. However, it is assumed that acwnd ⁇ 1.
  • RTT is 6 at the maximum and is stable at 5.
  • the receiving terminal 20 can also notify the congestion window cwnd of the transmitting terminal 10 in the packet from the transmitting terminal 10 and adjust the acwnd to be an appropriate value for cwnd.
  • the maximum value of acwnd can be limited to 1/2 of cwnd, and the minimum value of acwnd can be set to cwnd / 10. Further, for example, it is possible to change acwnd to be equal to cwnd and to decrease acwnd when RTT increases.
  • the RTT measurement method is as follows.
  • the ACK delay measuring unit 204 of the receiving terminal 20 stores the current time (time stamp) in the packet header and transmits it.
  • the transmitting terminal 10 stores a copy of the received time stamp as a time stamp response in the data packet to be transmitted.
  • the transmitting terminal 10 refers to the most recently received time stamp and stores the time stamp response in the header of the data packet.
  • the receiving terminal 20 refers to the time stamp response from the transmitting terminal 10 and sets the value obtained by subtracting the time stamp response value from the current time as RTT.
  • the receiving terminal 20 transmits an ACK
  • the packet is transmitted to the receiving terminal 20 even when there is no data to be sent after the transmitting terminal 10 receives the ACK.
  • OoB data output-of-band data
  • the transmitting terminal 10 discards the OoB data, stores a time stamp response in the ACK packet for the data, and returns it to the receiving terminal 20.
  • receiving terminal 20 receives the ACK for the OoB data
  • receiving terminal 20 can calculate the RTT from the time stamp response stored therein.
  • the receiving terminal 20 After receiving the data x, the receiving terminal 20 returns ACKx storing the OoB data z, the confirmation response number x, and the time stamp (ts) y of the current time to the transmitting terminal 10.
  • the transmitting terminal 10 that has received this ACKx stores a time stamp response (ts_r) y, which is a copy of the received time stamp y, in the response confirmation ACKz for the OoB data z, and returns it to the receiving terminal 20. If the transmitting terminal 10 has data y to be transmitted next, this data is also stored in the packet.
  • the receiving terminal 20 obtains RTTx by subtracting the time stamp response y from the current time y ′.
  • the reception terminal 20 can know the ack_flight size by using the time stamp.
  • the ack_flight size is decreased by 1, and when an acknowledgment is transmitted, the ack_flight size is increased by 1.
  • the TCP receiving unit 22 determines the type of the packet (step 402). If the packet is a connection disconnection (FIN) packet, a connection disconnection response (FIN / ACK) is returned and the process is terminated (step 403). If it is a packet including data, it is passed to the application 21 and proceeds to the next step 404.
  • FIN connection disconnection
  • FIN / ACK connection disconnection response
  • the ACK delay measurement unit 204 compares the time stamp response of the received packet header with the time stamp response received last time (step 404). If the current time stamp response has increased from the previous time ("increased from previous TS” in step 404), the Ack_flight size is decreased by 1 (step 405). When the current time stamp response is less than or equal to the previous time (“last time TS” in step 404) or when step 405 is executed, the ACK delay measurement unit 204, as described above, starts the time stamp response from the current time.
  • the round trip time RTT (i) is calculated by subtracting the time information (step 406).
  • the ACK congestion window control unit 205 determines whether RTT (i) is smaller than the number obtained by multiplying the minimum RTT value RTT_min that has already been measured by the coefficient ⁇ . (Step 407). If RTT (i) is smaller than ⁇ ⁇ RTT_min (YES in step 407), the acknowledgment congestion window acwnd is increased by 1 (step 408).
  • the ACK congestion window control unit 205 further multiplies the minimum value RTT_min of RTT for which RTT (i) has already been measured by a coefficient ⁇ . It is determined whether it is larger (step 409). If RTT (i) is larger than ⁇ ⁇ RTT_min (YES in step 409), the ACK congestion window control unit 205 further compares the current measured value RTT (i) with the previous measured value RTT (i-1). It is determined whether or not the number has increased (step 410). If it has increased (YES in step 410), the ACK congestion window control unit 205 decreases the acknowledgment congestion window acwnd by 1 (step 411).
  • the ACK transmission control unit 203 determines whether or not the confirmation response congestion window acwnd is larger than the ack_flight size (step 412). If acwn> ack_flight (YES in step 412), the ACK transmission control unit 203 sets ACK transmission, increases the Ack_flight size by 1 (step 413), and returns to step 402. If acwnd is less than or equal to the ack_flight size (NO in step 412), the process returns to step 402 without transmitting ACK.
  • the ACK transmission control unit 203 delays transmission for a short time when transmitting the confirmation response, and when there is a new confirmation response at that time, the ACK transmission control unit 203 gives priority to the new confirmation response.
  • the Ack_flight size is increased by 1 (step 413), and the process returns to step 402.
  • the TCP transmission unit 12 of the transmission terminal 10 transmits a connection establishment request (SYN) to the reception terminal 10, and a connection establishment request confirmation response (SYN / ACK) corresponding thereto. ) To establish a connection (step 501).
  • the TCP transmission unit 12 checks whether or not there is data to be transmitted (step 502). If the data transfer to the reception terminal 20 has been completed (NO in step 502), the TCP transmission unit 12 When a connection disconnection request (FIN) is transmitted and the confirmation response is received, the connection is disconnected and the process is terminated (step 503).
  • FIN connection disconnection request
  • the TCP transmission unit 12 determines whether or not data can be transmitted using a TCP transmission algorithm (step 504). In this determination, when a confirmation response to the transmitted data is returned from the receiving terminal 20, the data number is decremented. If this is larger than the congestion window cwnd, it is determined that transmission is possible.
  • step 504 If data transmission is possible (YES in step 504), the time stamp response value is stored in the packet header to perform data transmission (step 506), the transmitted data number is stored, and the process returns to step 502. If data transmission is not possible (NO in step 504), the TCP transmission unit 12 waits for an acknowledgment response from the receiving terminal 20 (NO in step 505), and if it arrives (YES in step 505), confirms. The response is stored as the received data number, the time stamp stored in the confirmation response is stored as the time stamp response value, and the process returns to step 504.
  • the congestion window notifying unit 103 can notify the receiving terminal 20 of the congestion window cwnd of the transmitting terminal 10, and as described above, in the receiving terminal 20, acwnd becomes an appropriate value for cwnd. It is also possible to adjust to.
  • the amount of confirmation response can be reduced, so that network congestion can be prevented.
  • the network delay does not increase, so that it is not necessary to increase the capacity of the transmission buffer required at the transmission terminal.
  • the receiving terminal can know the time for the packet to travel back and forth through the network, it can detect an increase in network delay. In particular, since the receiving terminal can measure the exact time that a packet travels back and forth through the network, it can accurately detect an increase in network delay.
  • the number of acknowledgments that can be sent is limited by the acknowledgment congestion window acwnd, so the acknowledgment does not increase beyond a certain level. Thereby, network congestion can be suppressed. That is, the network congestion due to the confirmation response can be suppressed by setting the upper limit of the transmission amount of the confirmation response.
  • a communication apparatus comprising:
  • Appendix 2 The communication apparatus according to appendix 1, wherein the confirmation response control unit reduces the transmission amount of the confirmation response when detecting a congestion state of the network.
  • the detection means passes a signal round-trip time with the other communication device to the confirmation response control means, and the confirmation response control means determines the confirmation when the signal round-trip time is increasing beyond a predetermined level.
  • the communication apparatus according to appendix 2, wherein the response transmission rate is lowered.
  • the supplementary note 3 is characterized in that the detection means measures a round trip time of the signal by transmitting a packet to the other communication device and receiving an acknowledgment of the packet from the other communication device. Communication device.
  • the packet has a time stamp, and the time stamp is re-stored in the confirmation response of the packet from the other communication device, and the detection means includes the time stamp and the reception time of the confirmation response of the packet.
  • the communication apparatus according to appendix 4, wherein the signal round trip time is measured.
  • the confirmation response control means can confirm that the confirmation response can be transmitted from the time when the confirmation response is transmitted until the other communication device receives the confirmation response and receives the next data transmitted as a trigger.
  • the communication apparatus according to any one of appendices 1-5, wherein the number of responses is used as an acknowledgment window, and the transmission amount of the acknowledgment is adjusted by increasing or decreasing the acknowledgment window.
  • Appendix 7 The communication apparatus according to appendix 6, wherein the confirmation response control unit adjusts the confirmation response window based on a congestion window size indicating a data amount that can be transmitted by the other communication apparatus.
  • the confirmation response control means sets the number of confirmation responses that have not been received from the other communication device among the transmitted confirmation responses as the number of unacknowledged confirmation responses, and the confirmation response window displays the confirmation response window.
  • the communication apparatus according to appendix 6 or 7, wherein a new confirmation response can be transmitted when the number of unacknowledged confirmation responses is larger.
  • a communication control method in a communication device of a method for returning an acknowledgment to the other communication device for data received from another communication device through a network Detecting means detects the communication status of the network; The confirmation response control means adjusts the transmission amount of the confirmation response according to the communication status of the network.
  • the detection means passes a signal round-trip time with the other communication device to the confirmation response control means, and the confirmation response control means determines the confirmation when the signal round-trip time is increasing beyond a predetermined level.
  • the appendix 11 is characterized in that the congestion detection unit measures the signal round-trip time by transmitting a packet to the other communication device and receiving a confirmation response of the packet from the other communication device. Communication control method.
  • the packet has a time stamp, the time stamp is re-stored in the confirmation response of the packet from the other communication device, and the congestion detection unit receives the time stamp and the confirmation response of the packet. 13.
  • the confirmation response control means can confirm that the confirmation response can be transmitted from the time when the confirmation response is transmitted until the other communication device receives the confirmation response and receives the next data transmitted as a trigger. 14.
  • the communication control method according to any one of appendices 9-13, wherein the number of responses is an acknowledgment window, and the transmission amount of the acknowledgment is adjusted by increasing or decreasing the acknowledgment window.
  • the confirmation response control means sets the number of confirmation responses that have not been received from the other communication device among the transmitted confirmation responses as the number of unacknowledged confirmation responses, and the confirmation response window displays the confirmation response window. 16.
  • the receiving device includes detection means for detecting a communication status of the network and confirmation response control means for adjusting a transmission amount of the confirmation response according to the communication status of the network.
  • the detection means passes a signal round-trip time to and from the transmission device to the confirmation response control means, and the confirmation response control means, when the signal round-trip time is increasing beyond a predetermined level,
  • the communication system according to appendix 18, wherein the transmission rate is lowered.
  • the packet has a time stamp, and the time stamp is re-stored in the confirmation response of the packet from the transmission device, and the detection means determines from the time stamp and the reception time of the confirmation response of the packet.
  • the confirmation response control means is a confirmation response that can be transmitted between the time when the confirmation response is transmitted and the time when the transmission device receives the confirmation response and the time when the next data is transmitted as a trigger.
  • the communication system according to any one of appendixes 17-21, wherein the number of confirmation responses is a number, and the amount of transmission of the confirmation responses is adjusted by increasing or decreasing the confirmation response windows.
  • the confirmation response control means sets the number of confirmation responses that have not been received from the transmitting device as the next data corresponding to them among the transmitted confirmation responses as the number of unprocessed confirmation responses, and the confirmation response window displays the unprocessed response 24.
  • Appendix 26 A program for functioning a program control processor in a communication device of a method of returning an acknowledgment to the other communication device with respect to data received from another communication device through a network, Detecting means detects the communication status of the network; The confirmation response control means adjusts the transmission amount of the confirmation response according to the communication status of the network.
  • the present invention is applicable to a TCP communication system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】確認応答に起因するネットワーク遅延の増大を有効に回避できる通信装置およびその通信制御方法を提供する。 【解決手段】通信装置(20)は、他の通信装置(10)からネットワーク(30)を通して受信したデータに対して確認応答を他の通信装置へ返信する方式の通信装置であって、ネットワークの通信状況を検出するACK遅延計測部(204)と、ネットワークの通信状況に応じて確認応答の送信量を調整するACK輻輳ウィンドウ制御部(205)と、を有する。

Description

通信装置およびその通信制御方法
 本発明は端末間の通信システムに係り、特に受信したデータに対する確認応答(ACK)を送信側へ返す通信システムにおける通信装置およびその通信制御方法に関する。
 インターネットで用いられる代表的な通信プロトコルであるTCP/IP(Transmission Control Protocol/Internet Protocol)では、送信端末がデータを送信すると、それを受信した受信端末が確認応答を送信端末へ返信することで信頼性の高い通信を実現している。特に、送信側において、確認応答の受信を契機として次のパケットを送信する動作はTCPのセルフクロッキングと呼ばれる。セルフクロッキングにより、パケットの送信間隔がボトルネックリンクに応じた適切な間隔に調整されるので、ボトルネックに適応したパケット送信レートが得られ、非常に効率的なデータ転送を実現することができる。このようにTCPでは多数の確認応答を用いる設計となっている。
 一般的なTCPでは、2つのデータに対して1つの確認応答を返信する。通常、TCP/IPのデータサイズは1518バイト程度であり、これに対して58バイト程度の確認応答が返信される(TCPヘッダが20バイト、IPヘッダが20バイトおよびIEEE802.1ヘッダが18バイト)。
 しかしながら、近年の通信速度の向上は目覚しく、端末向けの10Gbpsの通信回線も普及しつつある。10Gbpsでデータ転送を行う場合、上記データサイズを想定すると確認応答だけで約191Mbps(=(10Gbps×58)/(1518×2))のトラヒックが流れることになる。図1は、パケットサイズに対してどれほどの確認応答量が発生するかをグラフ化したものである。ここでは、k個(k=1,2,4,8)のデータに対して1つの確認応答を返すとして場合のデータサイズに応じた確認応答量の変化をそれぞれ示している。
 次に、図2を参照しながら、TCP通信において確認応答(ACK)の量が通信速度にどのように影響するかを説明する。
 図2では、k=1の場合(すなわち受信端末がデータを1つ受け取るたびに確認応答ACKを1つ返信する場合)のTCP通信で確認応答の量が問題となって通信速度が制限される例が示されている。ここでは、送信端末から受信端末までの回線は十分に大きい容量があり、送信端末が送信したデータは全て一定時間後に受信端末に到着するものとする。また、受信端末から送信端末までの回線は1時刻に1つの確認応答しか通過できず、これを超える確認応答が受信端末から送信された場合には転送時間が長くなるものとする。輻輳ウィンドウの最大サイズは16とした。
 図2において、Timeは時刻、cwndは送信端末の輻輳ウィンドウ、Dataは送信端末が送信したデータのシーケンス番号、arvd_ackは送信端末に到着した確認応答の番号、arvd_dataは受信端末に到着したデータのシーケンス番号、Ackは受信端末が送信した確認応答の番号である。送信端末と受信端末との間のパケットトランザクションにおいて、パケットの転送を示す矢印を一部記載しているが、確認応答が遅延する様子を確認しやすくするため一部の矢印が省略されている。具体的には、送信端末は輻輳ウィンドウcwnd=1で通信を開始し,確認応答を1つ受け取るたびに輻輳ウィンドウcwndを1だけ増加させる。送信端末は既に受け取った確認応答の番号arvd_ackに輻輳ウィンドウcwndを加えたシーケンス番号のデータDataを送信できるものとする。例えば、確認応答Ack=2を受信した際に輻輳ウィンドウcwnd=3であれば、シーケンス番号Data=5までのデータを送信できる。
 なお、確認応答に関する技術としては、特許文献1に、確認応答パケットのロスによる端末負荷の増大や通信効率の低下を回避するデータ通信方法が開示されている。特許文献1によれば、送信データのロス率や確認応答パケットのロス率に基づいてデータ通信状況の劣化が検出された場合には確認応答頻度を高くし、逆にデータ通信状況が好転すれば確認応答頻度を低くすることで、一確認応答パケットあたりのデータパケット数を変化させ確認応答パケットのロスによる影響を抑制する(特許文献1の段落0014、0033、0038など)。
特開2009-273094号公報
 しかしながら、図2に例示するパケットトランザクションからわかるように、送信端末が通信速度を徐々に向上させていくと確認応答の量も比例して増加し、確認応答の転送遅延が増加することで送信端末が次のデータを円滑に送信することが出来なくなる。現在では、100Mbps程度の通信回線もまだまだ使用されており、インターネットなどでは上り下りの経路での帯域が非対称の回線も存在する。このような高速通信回線の間にボトルネックリンクが存在すると、これまで問題とされなかった確認応答のトラヒック量がネットワーク帯域を圧迫したり、確認応答が圧迫されることにより通信性能が阻害されたりする問題が顕著になると考えられる。確認応答によりネットワークが輻輳し端末間の遅延が増加すると、送信端末においては、データを送信してから確認応答が帰ってくるまでの往復時間が長くなってしまい、再送に備えたバッファリングデータ量が増大する。一般的にバッファ量には制限があるが、これが十分な量でない場合は通信スループットが制限される原因となる。
 また、上述した特許文献1の方法では、データ通信状況が劣化すると確認応答頻度が高くなるので、確認応答パケット量がネットワーク状況の劣化に伴って増大することとなり、通信端末間の遅延が増大してしまう。
 そこで、本発明の目的は、確認応答に起因するネットワーク遅延の増大を有効に回避できる通信装置およびその通信制御方法を提供することにある。
 本発明による通信装置は、他の通信装置からネットワークを通して受信したデータに対して確認応答を前記他の通信装置へ返信する方式の通信装置であって、前記ネットワークの通信状況を検出する検出手段と、前記ネットワークの通信状況に応じて確認応答の送信量を調整する確認応答制御手段と、を有することを特徴とする。
 本発明による通信制御方法は、他の通信装置からネットワークを通して受信したデータに対して確認応答を前記他の通信装置へ返信する方式の通信装置における通信制御方法であって、検出手段が前記ネットワークの通信状況を検出し、確認応答制御手段が前記ネットワークの通信状況に応じて確認応答の送信量を調整する、ことを特徴とする。
 本発明による通信システムは、ネットワークを通して送信装置が送信したデータに対して受信装置が確認応答を返信する通信システムであって、前記送信装置が送信データを送信し、前記受信装置が前記送信データを受信した時に確認応答を前記送信装置へ返信し、前記受信装置が、前記ネットワークの通信状況を検出する検出手段と、前記ネットワークの通信状況に応じて確認応答の送信量を調整する確認応答制御手段と、を有することを特徴とする。
 本発明によれば、ネットワークの通信状況に応じて確認応答の送信量を調整することにより確認応答に起因するネットワーク遅延の増大を有効に回避できる。
図1は10GbpsでTCPによるデータ転送をした場合の確認応答の通信量を示すグラフである。 図2は一般的なTCP通信によるデータ転送のトランザクション例を示す図である。 図3は本発明の一実施形態による通信装置を用いた通信システムの一例を示す構成図である。 図4は図3における送信端末および受信端末の機能構成を示すブロック図である。 図5は本実施形態による通信制御方法を用いたデータ転送のトランザクション例を示す図である。 図6は受信端末によるRTT計測の一例を示すシーケンス図である。 図7は本実施形態による通信装置のTCP受信制御動作を示すフローチャートである。 図8は本実施形態による通信装置のTCP送信制御動作を示すフローチャートである。
 本発明による通信装置はネットワークの輻輳が検知されると確認応答の送信量を低減させる機能を有し、それによって確認応答量の増大によるネットワーク遅延の増大を回避することができる。以下、本発明の実施形態および実施例について図面を参照しながら詳細に説明する。
 1.システム構成
 図3において、本発明の一実施形態による送信側通信装置10(以下、送信端末10という。)と受信側通信装置20(以下、受信端末20という。)とはネットワーク30を介して接続され、TCPコネクションを利用してデータを転送するものとする。送信端末10はデータをネットワーク30を通して受信端末20へ送信し、受信端末20は受信したデータに対する確認応答ACKをネットワーク30を通して送信端末10へ返信する。
 ネットワーク30の中には下りリンク41と上りリンク42があり、送信端末10からのデータは下りリンク41を通して、受信端末20からの確認応答は上りリンク42を通して転送される。下りリンク41と上りリンク42は所定の回線速度を有し、この回線速度を超える速度でパケットが入力された場合には、パケットはリンク前のバッファに蓄えられリンクの通過を順番に待つものとする。
 図4に示すように、送信端末10は、アプリケーション11と、アプリケーション11からデータを入力しTCPプロトコルに従って本実施形態による通信制御を実行するTCP送信部12と、TCP送信部12から受け取ったデータをパケット化するIP処理部13と、IP処理部13から渡されたパケットをフレーム化してネットワーク30へ出力する入出力処理部14とを含む。
 TCP送信部12は、アプリケーションから入力したデータをセグメント化しレート制御しつつIP処理部13へ出力するデータ送信部101と、セグメントを記憶するセグメント記憶部102と、受信端末20からの要求に応じて輻輳ウィンドウサイズ(送信可能なデータ量)を通知する輻輳ウィンドウ通知部103と、から構成される。なお、輻輳ウィンドウとは送信側が送信できる最大のデータ番号であり、輻輳ウィンドウサイズとは輻輳ウィンドウから現在送信済みでかつACKが返信されてきていない最小のデータシーケンス番号を減じたもの、すなわち送信可能なデータ量を指す。
 受信端末20は、アプリケーション21と、IP処理部23から受け取ったパケットをデータ化しTCPプロトコルに従って通信制御を実行するTCP受信部22と、入出力処理部24から受け取ったフレームをパケット化しTCP受信部22へと渡すIP処理部23と、ネットワーク30から受け取ったフレームをIP処理部23に渡す入出力処理部24と、から構成される。
 TCP受信部22は、IP処理部23から受け取ったパケットをデータ化してアプリケーション21へ出力するデータ受信部201と、セグメントを記憶するセグメント記憶部202と、受信したデータに対する確認応答ACKを返信するACK送信制御部203と、から構成される。ACK送信制御部203は、機能的に、ACK遅延計測部204とACK輻輳ウィンドウ制御部205とを有する。ACK遅延計測部204は、受信端末20がACKを送信してから当該ACKを受信した送信端末10がデータを送信し当該データを受信端末20が受信するまでの遅延時間を計測する。以下、この遅延時間をRTT(Round Trip Time)という。ACK輻輳ウィンドウ制御部205はACKを送信するか否かを判定し、ACKを送信する場合はACKをIP処理部23に渡す。
 なお、TCP送信部12のデータ送信部101および輻輳ウィンドウ通知部103の各機能は、図示しないメモリに格納されたプログラムをCPU等のプログラム制御プロセッサ上で実行することにより実現することもできる。同様に、TCP受信部22のデータ受信部201とACK送信制御部203のACK遅延計測部204およびACK輻輳ウィンドウ制御部205の各機能も、図示しないメモリに格納されたプログラムをCPU等のプログラム制御プロセッサ上で実行することにより実現することもできる。なお、図4では、送信端末10のTCP送信部12と受信端末20のTCP受信部22とが送信側および受信側で別々に記載されているが、TCP送信部12とTCP受信部22とが同一の通信装置のTCP通信部として設けられている。次に、本実施形態による通信手順を説明する。
 2.通信シーケンス
 図5には送信端末10と受信端末20との間のパケットトランザクション例が示されている。すでに説明した図2と同様に、Timeは時刻、cwndは送信端末10の輻輳ウィンドウ、Dataは送信端末10が送信したデータのシーケンス番号、arvd_ackは受信端末20から送信端末10に到着した確認応答ACKの番号、arvd_dataは受信端末20に到着したデータのシーケンス番号、Ackは受信端末20が送信した確認応答の番号であり、さらに図5中のRTTは受信端末20が観測したパケットの往復遅延時間であり、acwndは本発明による確認応答の送信可能量を示す確認応答輻輳ウィンドウである。後述するように、確認応答輻輳ウィンドウacwndは、受信端末20が確認応答を送信した時刻から、当該確認応答を送信端末10が受信し次のデータを受信端末20へ送信した時に当該データを受信端末20が受信した時刻までの経過時間に、受信端末20が送信することができる確認応答の数に相当する。
 RTT計測の詳細について後述するが、具体的には、RTTとは、受信端末20が確認応答ACKを送信し、当該確認応答を送信端末10が受信すると、それに応じて送信端末10がデータを送信し、これを受信端末20が受信するというシーケンスにおいて、受信端末20が確認応答を送信してから次のデータを受信するまでに経過した時間として定義される。本例ではRTTの初期値として10が設定されている。
 なお、受信端末20が送信した確認応答のうち、それらに応じたデータを送信端末10から受信していない未処理確認応答の数をack_flightサイズと呼ぶ。後述するように、受信端末20は、確認応答輻輳ウィンドウacwndがack_flightサイズより大きい場合に新たな確認応答を送信できるものとする。
 また、受信端末20は確認応答を送信する際に、短い時間だけ送信を遅延させ、直後により新しい確認応答があった場合には、後の確認応答から優先して送信する。例えば、図5の時刻time=22では、データ27、28および29が到着し、これが確認応答arivd_ack=16に対するデータであることをタイムスタンプから知る。ack_flightサイズ=4、確認応答輻輳ウィンドウacwnd=6であるから、2つの確認応答が送信可能であり、より新しい確認応答であるAck=28、29が送信される。
 3.確認応答輻輳ウィンドウacwndの制御
 確認応答輻輳ウィンドウacwndの制御例は次の通りである。受信端末20のACK送信制御部203は、送信端末10からデータを受信するごとにRTTを計測し、確認応答輻輳ウィンドウacwndを調整する。ACKiを受信データiに対する確認応答であるとすれば、データiを受信した際、受信端末20は次のように確認応答輻輳ウィンドウacwndを更新する。
 RTT(i)が既に計測されたRTTの最小値RTT_minに係数αをかけた数より小さい場合(RTT(i) < α×RTT_min)、acwndを1だけ増加させる。RTT(i)が既に計測されたRTTの最小値RTT_minに係数βをかけた数以上であれば(RTT(i) ≧β×RTT_min)、RTT(i)がRTT(i-1)と比較して増加していた場合、acwndから1を減ずる。ただしacwnd≧1とする。
 図5では、α=1.2、β=1.5、RTT_minの初期値を10、acwndの初期値を1とした場合の動作例を示している。ここでは、受信端末20にて計測されたRTT_min=4であるから、受信端末20のACK送信制御部203は、計測したRTTがRTT_minの120%以内(RTT<4.8)であればacwndを増加させ、RTT_minの150%を超えて増加した場合(RTT≧6に増加した場合)、acwndを減少させる。図5に示すように、RTTは最大でも6であり、5で安定する。これにより、データ転送が円滑に行われ、時刻time=49にて送信端末10はarvd_ack=100を受信し転送完了となる。図2の既存方式ではデータData=100まで転送完了するのが時刻time=108であったから、本実施形態によりデータ転送時間が50%以上短縮されたことがわかる。
 なお、受信端末20は、送信端末10からのパケット内に送信端末10の輻輳ウィンドウcwndを通知してもらい、acwndがcwndに対して適切な値となるように調整することも可能である。例えば、acwndの最大値をcwndの1/2に制限し、acwndの最小値をcwnd/10とするもできる。さらに例えばacwndをcwndと等しく変化させ、RTTが増加した場合にはacwndを減少させることも可能である。
 4.RTT計測
 RTTの計測方法は次のとおりである。受信端末20のACK遅延計測部204は、確認応答ACKを送信する際にパケットヘッダに現在時刻(タイムスタンプ)を格納して送信する。送信端末10はタイムスタンプが格納されたACKを受け取ると、それに応じて送信するデータパケットにタイムスタンプ応答として当該受信タイムスタンプのコピーを格納する。なお、送信端末10は最も新しく受信したタイムスタンプを参照し、そのタイムスタンプ応答をデータパケットのヘッダに格納するものとする。受信端末20は、送信端末10からのタイムスタンプ応答を参照し、現在時刻からタイムスタンプ応答値を減じた値をRTTとする。
 なお、受信端末20はACKを送信する際に、送信端末10がACKを受信した後に送るべきデータが無い場合にも受信端末20に向けてパケットを送信するようにするため、ACKパケットに意味の無いデータ(帯域外データ:OoBデータ)を格納して送信する。送信端末10は、ACKパケットを受信すると、OoBデータを廃棄するとともに、当該データに対するACKパケットにタイムスタンプ応答を格納して受信端末20へ返信する。受信端末20はOoBデータに対するACKを受け取ると、そこに格納されたタイムスタンプ応答からRTTを計算することができる。
 図6に示すように、受信端末20はデータxを受け取った後、OoBデータz、確認応答番号xおよび現在時刻のタイムスタンプ(ts)yを格納したACKxを送信端末10に返信する。このACKxを受信した送信端末10はOoBデータzに対する応答確認ACKzに、受信したタイムスタンプyのコピーであるタイムスタンプ応答(ts_r)yを格納して受信端末20に返信する。なお、送信端末10が次に送信すべきデータyを持っていた場合は、このデータもパケットに格納される。受信端末20はACKzを受信すると、現在時刻y’からタイムスタンプ応答yを減じてRTTxを求める。
 なお、タイムスタンプを用いることで、受信端末20はack_flightサイズを知ることができる。本例ではタイムスタンプ応答が増加した場合は、ack_flightサイズを1だけ減少させ、確認応答を送信した場合にはack_flightサイズを1だけ増加させる。
 5.実施例
 以下、本発明の一実施例による受信端末および送信端末の通信制御手順を説明する。なお、特に記載しない部分については通常のTCP/IPの通信動作に従うものとする。
 5.1)受信端末の通信制御
 図7において、まず、受信端末20のTCP受信部22は、送信端末10からコネクション開設要求(SYN)を受信すると、これに対するコネクション開設要求確認応答(SYN/ACK)を返信してコネクションを開設する(ステップ401)。その際、ack_flight=1とする。
 続いて、送信端末10からパケットを受信すると、TCP受信部22はパケットの種類を判定する(ステップ402)。コネクション切断(FIN)パケットであれば、コネクション切断応答(FIN/ACK)を返信して処理を終了する(ステップ403)。データを含むパケットであれば、アプリケーション21へ渡して次のステップ404へ進む。
 続いて、ACK遅延計測部204は、受信パケットヘッダのタイムスタンプ応答と前回受信したタイムスタンプ応答とを比較する(ステップ404)。今回のタイムスタンプ応答が前回よりも増加しているならば(ステップ404の「前回TSより増加」)、Ack_flightサイズを1だけ減少させる(ステップ405)。今回のタイムスタンプ応答が前回のそれ以下である場合(ステップ404の「前回TS以下」)あるいはステップ405が実行されると、ACK遅延計測部204は、上述したように、現在時刻からタイムスタンプ応答の時刻情報を減じることで往復遅延時間RTT(i)を算出する(ステップ406)。
 往復遅延時間RTT(i)が算出されると、ACK輻輳ウィンドウ制御部205は、RTT(i)が既に計測されたRTTの最小値RTT_minに係数αをかけた数より小さいか否かを判定する(ステップ407)。RTT(i)がα×RTT_minより小さければ(ステップ407のYES)、確認応答輻輳ウィンドウacwndを1だけ増加させる(ステップ408)。
 RTT(i)がα×RTT_min以上であれば(ステップ407のNO)、ACK輻輳ウィンドウ制御部205は、さらに、RTT(i)が既に計測されたRTTの最小値RTT_minに係数βをかけた数より大きいか否かを判定する(ステップ409)。RTT(i)がβ×RTT_minより大きければ(ステップ409のYES)、ACK輻輳ウィンドウ制御部205は、さらに、今回の計測値RTT(i)が前回の計測値RTT(i-1)と比較して増加しているか否かを判定する(ステップ410)。増加していれば(ステップ410のYES)、ACK輻輳ウィンドウ制御部205は、確認応答輻輳ウィンドウacwndを1だけ減少させる(ステップ411)。
 RTT(i)がβ×RTT_min以下の場合(ステップ409のNO)、今回の計測値RTT(i)が前回の計測値RTT(i-1)以下の場合(ステップ410のNO)、確認応答輻輳ウィンドウacwndを増減させた場合(ステップ408あるいはステップ411)、ACK送信制御部203は確認応答輻輳ウィンドウacwndがack_flightサイズより大きいか否かを判定する(ステップ412)。acwnd>ack_flightであれば(ステップ412のYES)、ACK送信制御部203はACK送信をセットし、Ack_flightサイズを1だけ増加させ(ステップ413)、ステップ402へ戻る。acwndがack_flightサイズ以下であれば(ステップ412のNO)、ACKの送信をせずに、そのままステップ402へ戻る。
 なお、ACK送信制御部203は確認応答を送信する際、短い時間だけ送信を遅延させ、その時により新しい確認応答があった場合は新しい確認応答から優先して送信する。確認応答を送信したら、Ack_flightサイズを1だけ増加させて(ステップ413)、ステップ402へ戻る。
 5.2)送信端末の通信制御
 図8において、まず、送信端末10のTCP送信部12は、受信端末10へコネクション開設要求(SYN)を送信し、これに対するコネクション開設要求確認応答(SYN/ACK)を受信することでコネクションを開設する(ステップ501)。
 続いて、TCP送信部12は送信すべきデータがあるか否かをチェックし(ステップ502)、受信端末20へのデータの転送が完了していれば(ステップ502のNO)、受信端末20にコネクション切断要求(FIN)を送信し、その確認応答を受け取るとコネクションを切断して処理を終了する(ステップ503)。
 送信すべきデータがあれば(ステップ502のYES)、TCP送信部12はTCPの送信アルゴリズムにより、データを送信可能か否かを判定する(ステップ504)。この判定において、送信済みデータに対する確認応答が受信端末20から返信されるとデータ番号が減じられるが、これが輻輳ウィンドウcwndよりも大きい場合は送信可能であると判断される。
 データ送信が可能であれば(ステップ504のYES)、パケットヘッダにタイムスタンプ応答値を格納してデータ送信を行ない(ステップ506)、送信済みデータ番号を記憶してステップ502に戻る。データ送信ができなければ(ステップ504のNO)、TCP送信部12は、受信端末20から確認応答が到着するのを待ち(ステップ505のNO)、到着した場合は(ステップ505のYES)、確認応答を受信したデータ番号として記憶し、確認応答に格納されているタイムスタンプをタイムスタンプ応答値として記憶してステップ504へ戻る。
 なお、輻輳ウィンドウ通知部103は、受信端末20に対して送信端末10の輻輳ウィンドウcwndを通知することができ、上述したように、受信端末20においてacwndがcwndに対して適切な値となるように調整することも可能である。
 5.3)効果
 本実施例による通信制御方法により、受信端末20から送信端末10への帯域が制限された場合であっても受信端末20が適切に確認応答のレートを制限することができ、確認応答の転送遅延の増大を回避できる。
 特にデータ送信速度が大きい場合、確認応答の量を削減することができるので、ネットワークの輻輳を防止できる。これによりネットワーク遅延が増大しないので、送信端末にて必要となる送信バッファの容量を大きくしなくともよい。
 また、受信端末はネットワークをパケットが往復する時間を知ることができるので、ネットワーク遅延の増大を検出ことが可能となる。特に、受信端末は、ネットワークをパケットが往復する正確な時間を計測することができるので、ネットワーク遅延の増大を正確に検出できる。
 確認応答輻輳ウィンドウacwndにより確認応答の送信可能数が制限されるので、確認応答が一定以上増加しない。これによりネットワーク輻輳を抑制できる。すなわち、確認応答の送信量の上限が設定されることで確認応答によるネットワーク輻輳を抑制できる。
 6.付記
 上述した実施形態の一部あるいは全部は、以下の付記のようにも記載されうるが、これらに限定されるものではない。
(付記1)
 他の通信装置からネットワークを通して受信したデータに対して確認応答を前記他の通信装置へ返信する方式の通信装置であって、
 前記ネットワークの通信状況を検出する検出手段と、
 前記ネットワークの通信状況に応じて確認応答の送信量を調整する確認応答制御手段と、
 を有することを特徴とする通信装置。
(付記2)
 前記確認応答制御手段は、前記ネットワークの輻輳状態を検知すると、前記確認応答の送信量を低下させることを特徴とする付記1に記載の通信装置。
(付記3)
 前記検出手段は前記他の通信装置との間の信号往復時間を前記確認応答制御手段へ渡し、前記確認応答制御手段は、前記信号往復時間が所定レベルを超えて増大しつつある場合、前記確認応答の送信レートを低下させる、ことを特徴とする付記2に記載の通信装置。
(付記4)
 前記検出手段は、前記他の通信装置へパケットを送信し、前記他の通信装置からの当該パケットの確認応答を受信することで前記信号往復時間を計測することを特徴とする付記3に記載の通信装置。
(付記5)
 前記パケットはタイムスタンプを有し、前記他の通信装置からの当該パケットの確認応答には前記タイムスタンプが再格納されており、前記検出手段は前記タイムスタンプと前記パケットの確認応答の受信時刻とからを前記信号往復時間を計測することを特徴とする付記4に記載の通信装置。
(付記6)
 前記確認応答制御手段は、確認応答を送信した時から、当該確認応答を前記他の通信装置が受信しそれを契機として送信された次のデータを受信するまでの間に送信することができる確認応答の数を確認応答ウィンドウとし、前記確認応答ウィンドウを増減させることで前記確認応答の送信量を調整することを特徴とする付記1-5のいずれか1項に記載の通信装置。
(付記7)
 前記確認応答制御手段は、前記他の通信装置が送信可能なデータ量を示す輻輳ウィンドウサイズに基づいて前記確認応答ウィンドウを調整することを特徴とする付記6に記載の通信装置。
(付記8)
 前記確認応答制御手段は、送信した確認応答のうち、それらに応じた次のデータを前記他の通信装置から受信していない確認応答の数を未処理確認応答数とし、前記確認応答ウィンドウが前記未処理確認応答数より大きいときに、新たな確認応答が送信可能であることを特徴とする付記6または7に記載の通信装置。
(付記9)
 他の通信装置からネットワークを通して受信したデータに対して確認応答を前記他の通信装置へ返信する方式の通信装置における通信制御方法であって、
 検出手段が前記ネットワークの通信状況を検出し、
 確認応答制御手段が前記ネットワークの通信状況に応じて確認応答の送信量を調整する、
ことを特徴とする通信制御方法。
(付記10)
 前記確認応答制御手段は、前記ネットワークの輻輳状態を検知すると、前記確認応答の送信量を低下させることを特徴とする付記9に記載の通信制御方法。
(付記11)
 前記検出手段は前記他の通信装置との間の信号往復時間を前記確認応答制御手段へ渡し、前記確認応答制御手段は、前記信号往復時間が所定レベルを超えて増大しつつある場合、前記確認応答の送信レートを低下させる、ことを特徴とする付記10に記載の通信制御方法。
(付記12)
 前記輻輳検知手段は、前記他の通信装置へパケットを送信し、前記他の通信装置からの当該パケットの確認応答を受信することで前記信号往復時間を計測することを特徴とする付記11に記載の通信制御方法。
(付記13)
 前記パケットはタイムスタンプを有し、前記他の通信装置からの当該パケットの確認応答には前記タイムスタンプが再格納されており、前記輻輳検知手段は前記タイムスタンプと前記パケットの確認応答の受信時刻とからを前記信号往復時間を計測することを特徴とする付記12に記載の通信制御方法。
(付記14)
 前記確認応答制御手段は、確認応答を送信した時から、当該確認応答を前記他の通信装置が受信しそれを契機として送信された次のデータを受信するまでの間に送信することができる確認応答の数を確認応答ウィンドウとし、前記確認応答ウィンドウを増減させることで前記確認応答の送信量を調整することを特徴とする付記9-13のいずれか1項に記載の通信制御方法。
(付記15)
 前記確認応答制御手段は、前記他の通信装置が送信可能なデータ量を示す輻輳ウィンドウサイズに基づいて前記確認応答ウィンドウを調整することを特徴とする付記14に記載の通信制御方法。
(付記16)
 前記確認応答制御手段は、送信した確認応答のうち、それらに応じた次のデータを前記他の通信装置から受信していない確認応答の数を未処理確認応答数とし、前記確認応答ウィンドウが前記未処理確認応答数より大きいときに、新たな確認応答が送信可能であることを特徴とする付記14または15に記載の通信制御方法。
(付記17)
 ネットワークを通して送信装置が送信したデータに対して受信装置が確認応答を返信する通信システムであって、
 前記送信装置が送信データを送信し、前記受信装置が前記送信データを受信した時に確認応答を前記送信装置へ返信し、
 前記受信装置が、前記ネットワークの通信状況を検出する検出手段と、前記ネットワークの通信状況に応じて確認応答の送信量を調整する確認応答制御手段と、を有することを特徴とする通信システム。
(付記18)
 前記確認応答制御手段は、前記ネットワークの輻輳状態を検知すると、前記確認応答の送信量を低下させることを特徴とする付記17に記載の通信システム。
(付記19)
 前記検出手段は前記送信装置との間の信号往復時間を前記確認応答制御手段へ渡し、前記確認応答制御手段は、前記信号往復時間が所定レベルを超えて増大しつつある場合、前記確認応答の送信レートを低下させる、ことを特徴とする付記18に記載の通信システム。
(付記20)
 前記検出手段は、前記送信装置へパケットを送信し、前記送信装置からの当該パケットの確認応答を受信することで前記信号往復時間を計測することを特徴とする付記19に記載の通信システム。
(付記21)
 前記パケットはタイムスタンプを有し、前記送信装置からの当該パケットの確認応答には前記タイムスタンプが再格納されており、前記検出手段は前記タイムスタンプと前記パケットの確認応答の受信時刻とからを前記信号往復時間を計測することを特徴とする付記20に記載の通信システム。
(付記22)
 前記確認応答制御手段は、確認応答を送信した時から、当該確認応答を前記送信装置が受信しそれを契機として送信された次のデータを受信するまでの間に送信することができる確認応答の数を確認応答ウィンドウとし、前記確認応答ウィンドウを増減させることで前記確認応答の送信量を調整することを特徴とする付記17-21のいずれか1項に記載の通信システム。
(付記23)
 前記確認応答制御手段は、前記送信装置が送信可能なデータ量を示す輻輳ウィンドウサイズに基づいて前記確認応答ウィンドウを調整することを特徴とする付記22に記載の通信システム。
(付記24)
 前記確認応答制御手段は、送信した確認応答のうち、それらに応じた次のデータを前記送信装置から受信していない確認応答の数を未処理確認応答数とし、前記確認応答ウィンドウが前記未処理確認応答数より大きいときに、新たな確認応答が送信可能であることを特徴とする付記22または23に記載の通信システム。
(付記25)
 ネットワークを通して送信装置が送信したデータに対して受信装置が確認応答を返信する通信システムにおける通信方法であって、
 前記送信装置が送信データを送信し、
 前記受信装置が前記送信データを受信すると当該データの確認応答を前記送信装置へ返信する際に、前記ネットワークの通信状況を検出し、前記ネットワークの通信状況に応じて確認応答の送信量を調整する、
 ことを特徴とする通信方法。
(付記26)
 他の通信装置からネットワークを通して受信したデータに対して確認応答を前記他の通信装置へ返信する方式の通信装置におけるプログラム制御プロセッサを機能させるプログラムであって、
 検出手段が前記ネットワークの通信状況を検出し、
 確認応答制御手段が前記ネットワークの通信状況に応じて確認応答の送信量を調整する、
ように前記プログラム制御プロセッサを機能させるプログラム。
 本発明はTCP方式の通信システムに適用可能である。
10 送信端末
11 アプリケーション
12 TCP送信部
13 IP処理部
14 入出力処理部
101 データ送信部
102 セグメント記憶部
103 輻輳ウィンドウ通知部
20 受信端末
21 アプリケーション
22 TCP受信部
23 IP処理部
24 入出力処理部
201 データ送信部
202 セグメント記憶部
203 ACK送信制御部
204 ACK遅延計測部
205 ACK輻輳ウィンドウ制御部
30 ネットワーク
40 TCPコネクション
41 下りリンク
42 上りリンク

Claims (10)

  1.  他の通信装置からネットワークを通して受信したデータに対して確認応答を前記他の通信装置へ返信する方式の通信装置であって、
     前記ネットワークの通信状況を検出する検出手段と、
     前記ネットワークの通信状況に応じて確認応答の送信量を調整する確認応答制御手段と、
     を有することを特徴とする通信装置。
  2.  前記確認応答制御手段は、前記ネットワークの輻輳状態を検知すると、前記確認応答の送信量を低下させることを特徴とする請求項1に記載の通信装置。
  3.  前記検出手段は前記他の通信装置との間の信号往復時間を前記確認応答制御手段へ渡し、前記確認応答制御手段は、前記信号往復時間が所定レベルを超えて増大しつつある場合、前記確認応答の送信レートを低下させる、ことを特徴とする請求項2に記載の通信装置。
  4.  前記検出手段は、前記他の通信装置へパケットを送信し、前記他の通信装置からの当該パケットの確認応答を受信することで前記信号往復時間を計測することを特徴とする請求項3に記載の通信装置。
  5.  前記パケットはタイムスタンプを有し、前記他の通信装置からの当該パケットの確認応答には前記タイムスタンプが再格納されており、前記検出手段は前記タイムスタンプと前記パケットの確認応答の受信時刻とからを前記信号往復時間を計測することを特徴とする請求項4に記載の通信装置。
  6.  前記確認応答制御手段は、確認応答を送信した時から、当該確認応答を前記他の通信装置が受信しそれを契機として送信された次のデータを受信するまでの間に送信することができる確認応答の数を確認応答ウィンドウとし、前記確認応答ウィンドウを増減させることで前記確認応答の送信量を調整することを特徴とする請求項1-5のいずれか1項に記載の通信装置。
  7.  前記確認応答制御手段は、前記他の通信装置が送信可能なデータ量を示す輻輳ウィンドウサイズに基づいて前記確認応答ウィンドウを調整することを特徴とする請求項6に記載の通信装置。
  8.  前記確認応答制御手段は、送信した確認応答のうち、それらに応じた次のデータを前記他の通信装置から受信していない確認応答の数を未処理確認応答数とし、前記確認応答ウィンドウが前記未処理確認応答数より大きいときに、新たな確認応答が送信可能であることを特徴とする請求項6または7に記載の通信装置。
  9.  他の通信装置からネットワークを通して受信したデータに対して確認応答を前記他の通信装置へ返信する方式の通信装置における通信制御方法であって、
     検出手段が前記ネットワークの通信状況を検出し、
     確認応答制御手段が前記ネットワークの通信状況に応じて確認応答の送信量を調整する、
    ことを特徴とする通信制御方法。
  10.  ネットワークを通して送信装置が送信したデータに対して受信装置が確認応答を返信する通信システムであって、
     前記送信装置が送信データを送信し、前記受信装置が前記送信データを受信した時に確認応答を前記送信装置へ返信し、
     前記受信装置が、前記ネットワークの通信状況を検出する検出手段と、前記ネットワークの通信状況に応じて確認応答の送信量を調整する確認応答制御手段と、を有することを特徴とする通信システム。
PCT/JP2012/004188 2011-07-19 2012-06-28 通信装置およびその通信制御方法 WO2013011638A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011157497 2011-07-19
JP2011-157497 2011-07-19

Publications (1)

Publication Number Publication Date
WO2013011638A1 true WO2013011638A1 (ja) 2013-01-24

Family

ID=47557841

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/004188 WO2013011638A1 (ja) 2011-07-19 2012-06-28 通信装置およびその通信制御方法

Country Status (1)

Country Link
WO (1) WO2013011638A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015099986A (ja) * 2013-11-18 2015-05-28 Kddi株式会社 通信装置、プログラムおよび通信方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000022744A (ja) * 1998-06-30 2000-01-21 Toshiba Corp パケット通信システム、パケット通信装置及びパケット通信方法
JP2004364217A (ja) * 2003-06-09 2004-12-24 Matsushita Electric Ind Co Ltd パケット通信装置
JP2005086375A (ja) * 2003-09-05 2005-03-31 Ntt Docomo Inc パケット送信量制御方法、通信システム、通信装置及びプログラム
JP2010093370A (ja) * 2008-10-03 2010-04-22 Nippon Telegr & Teleph Corp <Ntt> エッジノードおよび帯域制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000022744A (ja) * 1998-06-30 2000-01-21 Toshiba Corp パケット通信システム、パケット通信装置及びパケット通信方法
JP2004364217A (ja) * 2003-06-09 2004-12-24 Matsushita Electric Ind Co Ltd パケット通信装置
JP2005086375A (ja) * 2003-09-05 2005-03-31 Ntt Docomo Inc パケット送信量制御方法、通信システム、通信装置及びプログラム
JP2010093370A (ja) * 2008-10-03 2010-04-22 Nippon Telegr & Teleph Corp <Ntt> エッジノードおよび帯域制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015099986A (ja) * 2013-11-18 2015-05-28 Kddi株式会社 通信装置、プログラムおよび通信方法

Similar Documents

Publication Publication Date Title
US11876714B2 (en) Method and apparatus for network congestion control based on transmission rate gradients
JP5652388B2 (ja) 通信レート制御方法、送信装置および通信システム
JP4708978B2 (ja) 高スループットを実現する通信システム、通信端末、セッション中継装置、及び通信プロトコル
US6625118B1 (en) Receiver based congestion control
CN102006283B (zh) 数据传输的方法和装置
JP4778453B2 (ja) 通信端末、輻輳制御方法および輻輳制御プログラム
US8306062B1 (en) Method and apparatus of adaptive large receive offload
US20130322246A1 (en) Network packet loss processing method and apparatus
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
US20160302197A1 (en) Managing pending acknowledgement packets in a communication device
US9674101B2 (en) Communication device, transmission data output control method, and program for same
US8279756B2 (en) Communication terminal, communication control method, and communication control program
CN103152278A (zh) 拥塞确定方法、装置和网络设备
JP2008259164A (ja) 通信端末、通信制御方法および通信制御プログラム
CA2940077C (en) Buffer bloat control
WO2013011638A1 (ja) 通信装置およびその通信制御方法
WO2012132283A1 (ja) 通信装置およびその通信制御方法
Raza et al. Persistent packet reordering attack in TCP based Ad hoc wireless networks
KR101334990B1 (ko) 전송 제어 프로토콜의 혼잡 윈도우 제어 방법
Pujeri et al. Survey of End-to-End TCP Congestion Control Protocols
EP4456507A2 (en) Apparatus for network congestion control based on transmission rate gradients
Kanthimathi Improving Packet Delivery Ratio In TCP Using New Reno Scheme

Legal Events

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

Ref document number: 12814803

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12814803

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP