WO2014147774A1 - 通信方法、通信装置、および、通信プログラム - Google Patents

通信方法、通信装置、および、通信プログラム Download PDF

Info

Publication number
WO2014147774A1
WO2014147774A1 PCT/JP2013/057920 JP2013057920W WO2014147774A1 WO 2014147774 A1 WO2014147774 A1 WO 2014147774A1 JP 2013057920 W JP2013057920 W JP 2013057920W WO 2014147774 A1 WO2014147774 A1 WO 2014147774A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
communication device
communication
transfer
value
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/JP2013/057920
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to PCT/JP2013/057920 priority Critical patent/WO2014147774A1/ja
Priority to CN201380073730.8A priority patent/CN105103500A/zh
Priority to JP2015506469A priority patent/JP5935940B2/ja
Priority to EP13878896.3A priority patent/EP2978171B1/en
Publication of WO2014147774A1 publication Critical patent/WO2014147774A1/ja
Priority to US14/822,220 priority patent/US9866351B2/en
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
    • 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/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • 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/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • H04L43/0841Round trip packet loss

Definitions

  • the present invention relates to communication performed between a plurality of communication devices.
  • the communication device on the transmission side uses the confirmation response packet from the communication device on the reception side, and then Determines the size of data to be transmitted and whether to perform retransmission.
  • the round trip delay time (Round Trip Time, RTT) of the path between the transmission side communication device and the reception side communication device becomes longer as the distance between the transmission side communication device and the reception side communication device becomes longer.
  • the state parameter is quality information required according to an application in which data is used, such as a bandwidth and an allowable delay time.
  • the connection parameter is information regarding the communication connection.
  • the method of retransmitting a packet lost during communication there is a problem that if the distance between the communication device on the transmission side and the communication device on the reception side is increased, the communication speed is lowered due to an increase in the round-trip delay time.
  • the method of transmitting redundant packets used for error correction can prevent a decrease in communication speed due to retransmission processing, but there is a problem that throughput is reduced by transmitting redundant packets.
  • a communication device that employs a communication method that employs a method with low jitter among the available communication methods can reduce fluctuations in the time taken to transmit each packet, but cannot increase the communication speed.
  • a communication method is determined using quality information required by an application. For this reason, there is a problem that a communication method cannot be appropriately selected unless quality information is known. Therefore, the method of determining the communication method using the quality information cannot be applied to a communication device that transfers data used in an unspecified application.
  • An object of one aspect of the present invention is to provide a method for suppressing delay while preventing a decrease in throughput.
  • the network in which the communication method according to the embodiment is used includes a first communication device, a second communication device, and a third communication device.
  • the second communication device specifies a transfer packet, which is a packet to be transferred to the third communication device, from the packet received from the first communication device.
  • the second communication device measures an interval at which the transfer packet is received from the first communication device.
  • the second communication device transfers the transfer packet to the third communication device.
  • the second communication device receives notification information for notifying the reception status of the transfer packet from the third communication device.
  • the second communication device uses the notification information to select a target packet that is a packet that has not been notified of successful reception from the third communication device, out of the packets transferred to the third communication device. To do.
  • the second communication device retransmits the target packet to the third communication device in a form capable of error correction when an interval for receiving the transfer packet from the first communication device exceeds a threshold. .
  • ⁇ Delay can be suppressed while preventing a decrease in throughput.
  • FIG. 1 shows an example of a communication method according to the embodiment.
  • the terminal transmits a packet toward the communication apparatus B.
  • the communication device A transfers the packet received from the terminal to the communication device B.
  • Thick arrows in FIG. 1 indicate a plurality of packets.
  • a combination of a letter “P” and a number indicates a packet transmitted from the terminal, and a number following P indicates a sequence number of the packet.
  • a white arrow indicates communication in a communication method in which a packet that has failed to be received by the receiving side is retransmitted from the transmitting side.
  • a communication method in which a packet on which the reception side has failed to be received is retransmitted from the transmission side may be referred to as a “retransmission base” communication method.
  • a arrow including stippling indicates communication performed by a method of transmitting a redundant packet used for error correction.
  • a method of transmitting redundant packets used for error correction may be described as an “error correction base” communication method.
  • the terminal transmits packets P0 to P9999 to the communication apparatus B by a retransmission-based communication method.
  • the communication apparatus A has received all the packets transmitted from the terminal.
  • the communication device A transfers the packet received from the terminal to the communication device B by a retransmission-based method. At this time, it is assumed that the communication device B fails to receive the packet of P100 among the packets transmitted from the communication device A.
  • the terminal transmits packets P10000 to P19999 to the communication apparatus B by a retransmission-based communication method.
  • the communication device B transmits a control response packet (Ack) for notifying the communication device A of the reception status of the packet at a predetermined time interval.
  • the reception status at the time when the control response packet is generated is recorded in the control response packet.
  • the communication apparatus B transmits a control response packet notifying that the reception of P100 has failed to the communication apparatus A.
  • the communication apparatus A recognizes that transmission of P0 to P99 and P101 to P9999 to the communication apparatus B was successful and transmission of P100 to the communication apparatus B failed.
  • the communication device A transmits the packets P10000 to P19999 received from the terminal in a retransmission-based manner between the time when the control response packet is transmitted from the communication device B and the time when the processing of the control response packet ends. Forward to B.
  • the communication apparatus A determines that the period during which transfer processing of a new packet to the communication apparatus B is interrupted exceeds the threshold Th.
  • the threshold value Th is set to a time shorter than the round-trip delay time (RTT).
  • the communication apparatus A When the period during which the transfer process of a new packet is interrupted exceeds the threshold Th, the communication apparatus A retransmits a packet whose transfer has not been confirmed to the communication apparatus B using an error correction based transmission method. To do. At this time, since the communication device A has not received a new control response packet from the communication device B, the communication device A does not know whether transmission has been successful for P10000 to P19999. Further, the communication device A recognizes that the transfer of the packet of P100 has failed in the procedure (4). Therefore, the communication apparatus A retransmits the packets of P100 and P10000 to P19999 to the communication apparatus B on an error correction basis.
  • the communication device B can receive P100 and P10000 to P19999 by the packet retransmitted from the communication device A.
  • the communication device B can restore the packet that has failed to be received using a redundant packet or the like.
  • the terminal newly transmits packets P20000 to P29999 to the communication device A. Then, the communication apparatus A transfers P20000 to P29999 to the communication apparatus B by a retransmission-based communication method.
  • the communication device A determines that the available bandwidth for packet transfer has increased. Therefore, in the interval of transferring a new packet, a packet whose transfer has not been successfully confirmed is transferred again by an error correction-based communication method. For this reason, a retransmission process is performed for a packet waiting for a control response packet without waiting for the arrival of the control response packet. Therefore, a packet that is waiting for a control response packet and has failed to be transmitted for the first time is retransmitted before the round-trip delay time (RTT) elapses. Therefore, when the communication method according to the embodiment is used, the delay can be suppressed even if the RTT becomes long.
  • RTT round-trip delay time
  • the round trip delay time between the communication device A and the communication device B is from the transmission time of a packet (measurement packet) used for measuring the time required for communication to the reception time of the response packet of the measurement packet.
  • Time For example, from the time when the communication device A transmits the first measurement packet to the communication device B to the time when the communication device A receives the second measurement packet transmitted from the communication device B as a response to the first measurement packet. Is the RTT between the communication device A and the communication device B.
  • the communication device transmits a redundant packet in retransmission performed in the middle of transferring a new packet, but does not transmit a redundant packet while communicating on a retransmission basis. For this reason, in the communication method according to the embodiment, it is possible to suppress a decrease in throughput due to the transmission of redundant packets.
  • a case where a packet addressed to the communication device B is transmitted from the terminal is described as an example.
  • the packet from the terminal is transmitted to the other device via the communication device B. It may be transferred to the device.
  • FIG. 2 shows an example of a network in which the communication apparatus 10 according to the embodiment is used.
  • FIG. 2 shows an example of a network when the terminal 1 and the server 4 in the data center 3 communicate with each other across the Wide Area Network (WAN) 2.
  • WAN Wide Area Network
  • the data center 3 includes a communication device 10b and a server 4.
  • the terminal 1 is assumed to access the WAN 2 via the communication device 10a.
  • the communication device 10a and the communication device 10b can operate as a WAN acceleration device.
  • the number of terminals 1 and the number of servers 4 included in the data center 3 are arbitrary.
  • FIG. 3 shows an example of the configuration of the communication device 10.
  • the communication device 10 includes a transmission unit 11, a reception unit 12, a transmission / reception unit 13, a transfer processing unit 14, a retransmission processing unit 15, a packet processing unit 16, a received packet management unit 17, a bandwidth calculation unit 18, and a switching unit 20.
  • the switching unit 20 includes a measurement unit 21, a selection unit 22, and a threshold value calculation unit 23.
  • the transmission unit 11 is used when the communication device 10 transmits a packet to a device included in the WAN 2 or another communication device 10.
  • the transmission unit 11 transmits a packet input from the transfer processing unit 14, the retransmission processing unit 15, the received packet management unit 17, and the like toward the destination.
  • the receiving unit 12 receives a packet from a device included in the WAN 2 or another communication device 10.
  • the receiving unit 12 outputs the received packet to the packet processing unit 16.
  • the transmission / reception unit 13 is used when the communication device 10 transmits / receives a packet to / from the terminal 1 or the server 4.
  • the transmission / reception unit 13 outputs the packet received from the terminal 1 to the selection unit 22.
  • the transfer processing unit 14 converts the packet input from the selection unit 22 into a packet for transmission to the WAN 2 using a retransmission-based communication method, and outputs the packet to the transmission unit 11.
  • the retransmission processing unit 15 converts the packet input from the selection unit 22 into a packet for transmission to the WAN 2 using an error correction based communication method, and outputs the packet to the transmission unit 11.
  • the packet format will be described later.
  • the packet processing unit 16, the received packet management unit 17, and the bandwidth calculation unit 18 perform processing when the communication device 10 receives a packet from another communication device 10 connected via the WAN 2.
  • the packet processing unit 16 converts a packet received from another communication device 10 into a format that can be transmitted to the terminal 1 or the server 4.
  • the packet processing unit 16 outputs the processed packet to the transmission / reception unit 13. Then, the transmission / reception unit 13 transmits a packet addressed to the terminal 1 or the server 4 to the terminal 1 or the server 4.
  • the received packet management unit 17 monitors the reception status at the packet processing unit 16. For example, the received packet management unit 17 specifies the maximum value of the sequence ID of the currently received packet and the sequence ID of the received packet. The sequence ID will be described later.
  • the reception packet management unit 17 generates a control response packet addressed to the communication device 10 on the transmission side using the specified information.
  • the reception packet management unit 17 outputs the control response packet to the transmission unit 11.
  • the bandwidth calculation unit 18 calculates a bandwidth used for receiving a packet when the communication device 10 receives a packet from another communication device 10 connected via the WAN 2.
  • the bandwidth calculation unit 18 notifies the received packet management unit 17 of the obtained bandwidth.
  • the measuring unit 21 measures the length of a period during which the communication device 10 does not receive a packet from the terminal 1. When the communication device 10 receives a packet from the terminal 1, the measurement unit 21 resets the measurement value to 0.
  • the selection unit 22 outputs the packet input from the transmission / reception unit 13 to the transfer processing unit 14. Further, the selection unit 22 monitors the packet transmission status by specifying the packet that the communication device 10 has transferred to the other communication device 10 and the packet that received the control response (Ack) from the communication device 10 that is the transmission destination. To do. When the period T during which the communication device 10 has not received a packet from the terminal 1 exceeds the threshold Th, the selection unit 22 selects a packet that has not received Ack from among the transmitted packets. In other words, the selection unit 22 selects a packet to be subjected to error correction based retransmission processing. The selection unit 22 outputs the selected packet to the retransmission processing unit 15. The threshold calculation unit 23 calculates a threshold Th used by the selection unit 22 for determination, and outputs the obtained threshold to the selection unit 22. Further, the selection unit 22 monitors the latest time when the packet is transmitted from the transmission unit 11.
  • FIG. 4 shows an example of the hardware configuration of the communication device 10.
  • the communication device 10 includes a processor 31, a memory 32, a bus 35, an external storage device 36, and a network connection device 39. Further, as an option, the communication device 10 may include an input device 33, an output device 34, and a medium driving device 37.
  • the communication device 10 may be realized by, for example, a computer.
  • the processor 31 can be an arbitrary processing circuit including a central processing unit (CPU).
  • the processor 31 operates as the transfer processing unit 14, the retransmission processing unit 15, the packet processing unit 16, the received packet management unit 17, the bandwidth calculation unit 18, and the switching unit 20.
  • the processor 31 can execute a program stored in the external storage device 36, for example.
  • the memory 32 also stores data obtained by the operation of the processor 31 and data used for processing by the processor 31 as appropriate.
  • the network connection device 39 is used for communication with other devices and operates as the transmission unit 11, the reception unit 12, and the transmission / reception unit 13.
  • the input device 33 is realized as, for example, a button, a keyboard, or a mouse
  • the output device 34 is realized as a display or the like.
  • the bus 35 connects the processor 31, the memory 32, the input device 33, the output device 34, the external storage device 36, the medium drive device 37, and the network connection device 39 so as to exchange data with each other.
  • the external storage device 36 stores programs, data, and the like, and provides the stored information to the processor 31 as appropriate.
  • the medium driving device 37 can output the data of the memory 32 and the external storage device 36 to the portable storage medium 38, and can read a program, data, and the like from the portable storage medium 38.
  • the portable storage medium 38 is an arbitrary portable storage medium including a floppy disk, a Magneto-Optical (MO) disk, a Compact DiscRecordable (CD-R), and a Digital Versatile Disk Recordable (DVD-R). It can be a medium.
  • FIG. 5 is a sequence diagram illustrating an example of a communication method. Processing performed in the communication device 10a and the communication device 10b will be described separately in (A) to (E) of FIG.
  • the communication device 10 a transmits and receives TCP packets to and from the terminal 1
  • the communication device 10 b transmits and receives TCP packets to and from the server 4.
  • the case where the communication apparatus 10a transmits data toward the communication apparatus 10b is taken as an example.
  • the communication device 10a and the communication device 10b communicate using a dedicated line installed in the WAN 2. Furthermore, in order to make it easier to understand which operation is performed by the communication device 10a or the communication device 10b, it is included in the number of the communication device 10 performing the processing after the part number in the communication device 10. The alphabet is written.
  • the measurement unit 21a is the measurement unit 21 included in the communication device 10a
  • the reception packet management unit 17b is the reception packet management unit 17 included in the communication device 10b.
  • the terminal 1 transmits data addressed to the server 4 to the communication device 10a.
  • the communication between the terminal 1 and the communication device 10a is performed using the TCP protocol as shown in (a1) of FIG. 5, and a confirmation response and a retransmission process are appropriately performed.
  • an identification number TCP application identifier
  • Allocate for a connection.
  • the measuring unit 21a of the communication device 10a resets the length of a period during which no packet is received to 0 each time the communication device 10a receives a packet from the terminal 1.
  • the selection unit 22a of the transmission-side communication device 10a acquires the packet P0 from the transmission / reception unit 13a and creates a transmission table ((a2) and (a3) in FIG. 5).
  • FIG. 6A shows an example of a transmission table.
  • the transmission table holds packets received from the terminal 1.
  • the transmission / reception unit 13a outputs the packet P0 to the selection unit 22a.
  • the selection unit 22a adds a flag indicating that transmission is in progress to the packet P0.
  • a flag indicating that transmission is in progress may be referred to as a “transmission flag”.
  • the selection unit 22a assigns a sequence ID to each packet received from the terminal 1 as an identifier indicating the order of packets received via the same connection for each TCP application identifier.
  • the selection unit 22a sets the sequence ID of the packet first received via the connection identified by the TCP application identifier to 0, and assigns the sequence ID so that the order of the received packet is obtained.
  • the sequence number of the first packet transmitted from the terminal 1 is 0 will be described as an example for easy understanding. Therefore, in the following example, the sequence number in the TCP header of the packet and the sequence ID assigned to the packet have the same value.
  • the selection unit 22a generates a hash table using the sequence ID assigned to the packet P0 as a key, and stores the packet P0. Further, the selection unit 22a outputs the packet P0 input from the transmission / reception unit 13a to the transfer processing unit 14a in association with the TCP application identifier and the sequence ID.
  • the selection unit 22a processes the packets P0 to P9999 to provide a hash table storing the information shown in FIG. Further, the selection unit 22a outputs the packets P0 to P9999 to the transfer processing unit 14a.
  • the transfer processing unit 14a converts the packet input from the selection unit 22a into a transfer packet ((a4) in FIG. 5).
  • FIG. 7 is a diagram showing an example of a packet format.
  • FIG. 7 shows an example of packets transmitted and received between the communication device 10a and the communication device 10b.
  • a packet used for data transmission / reception between the communication device 10a and the communication device 10b may be referred to as a “transfer packet”.
  • FIG. 7A is an example of a packet format used for data transfer.
  • a transfer packet used for data transfer includes an Internet Protocol (IP) header, a User Datagram Protocol (UDP) header, protocol ID information, a data header, and data.
  • IP Internet Protocol
  • UDP User Datagram Protocol
  • the formats of the IP header and the UDP header are as defined by each protocol.
  • the protocol ID stores information for determining whether the transfer packet is used for data transfer or data retransmission.
  • the data header includes a TCP application identifier, a sequence ID, and a packet ID as shown in FIG. Data is data transmitted by a transfer packet.
  • FIG. 7D is a diagram illustrating an example of a packet input from the selection unit 22a to the transfer processing unit 14a.
  • a packet input from the selection unit 22a to the transfer processing unit 14a includes an IP header, a TCP header, and data.
  • the transfer processing unit 14a does not change the IP header of the packet input from the selection unit 22a.
  • the TCP header includes a source port number, a destination port number, a sequence number, an acknowledgment number, a data offset, a reserved area, a control bit, a window size, a checksum, an urgent pointer, and options.
  • the UDP header includes a source port number, a destination port number, a segment size, and a checksum as shown in FIG.
  • the transfer processing unit 14a acquires the source port number, the destination port number, and the sequence number from the TCP header of the packet P0.
  • the transfer processing unit 14a sets the acquired source port number and destination port number as the source port number and destination port number in the UDP header of the transfer packet.
  • the transfer processing unit 14a includes the identifier and sequence ID of the TCP application notified from the selection unit 22a in the data header.
  • the transfer processing unit 14 records the sequence number included in the TCP header of the packet received from the terminal 1 as a packet ID in the data header.
  • the transfer processing unit 14a sets the protocol ID to a value representing data transfer.
  • the transfer processing unit 14a uses the data of the packet P0 as the data of the transfer packet, and sets the segment size and the checksum. Through the above processing, the transfer processing unit 14a converts the packet P0 into a transfer packet including data transmitted by the packet P0.
  • the transfer processing unit 14a outputs the generated transfer packet to the transmission unit 11a ((a5) in FIG. 5).
  • FIG. 9 shows an example of packet transmission / reception between the communication device 10a and the communication device 10b.
  • the transmission unit 11a transmits the transfer packet input from the transfer processing unit 14a to the communication device 10b ((a6) in FIG. 5).
  • the selection unit 22a stores the time when the transmission unit 11a transmits the transfer packet as the final transmission time.
  • the transfer packet (U0) in FIG. 9 represents a transfer packet converted from the packet P0.
  • the conversion processing in the transfer processing unit 14a and the transmission processing from the transmission unit 11a are performed in the same manner as the packet P0.
  • FIG. 9 shows an example of packet transmission / reception between the communication device 10a and the communication device 10b.
  • each packet transmitted from the communication device 10a to the communication device 10b is a transfer packet to which a sequence ID having the same value as the number following U is attached.
  • the selection unit 22a updates the final transmission time to a new transmission time each time a transfer packet is transmitted from the communication device 10a.
  • the communication device 10b receives a transfer packet from the communication device 10a ((b1) in FIG. 5).
  • the receiving unit 12b of the communication device 10b outputs the received packet to the packet processing unit 16b ((b2) in FIG. 5).
  • the packet processing unit 16b extracts the sequence ID and the TCP application identifier from the data header in the input transfer packet, and outputs the obtained value to the received packet management unit 17b.
  • the packet processing unit 16b generates a TCP header including information in the UDP header of the transfer packet and a packet ID in the data header.
  • the packet processing unit 16b uses the packet ID as a sequence number in the TCP header.
  • the packet processing unit 16b sets the source port number and destination port number in the UDP header to the source port number and destination port number in the TCP header.
  • the packet processing unit 16b generates a TCP packet including information transmitted from the terminal 1 by removing the UDP header, the protocol ID, and the data header from the transfer packet and including the generated TCP header instead of these pieces of information. ((B4) of FIG. 5).
  • a TCP packet including information transmitted in the packet P0 is generated from the transfer packet U0.
  • the packet processing unit 16b outputs the generated packet to the transmission / reception unit 13b.
  • the transmission / reception unit 13b transmits the packet input from the packet processing unit 16b to the server 4 ((b5) in FIG. 5).
  • the communication device 10b processes other received transfer packets in the same manner. For this reason, the information included in the transfer packet that the communication device 10 b can receive from the communication device 10 a is transmitted to the server 4. Furthermore, the bandwidth calculation unit 18b calculates the bandwidth used for receiving the packet.
  • the received packet management unit 17b stores a sequence ID included in a packet that the communication device 10b can receive from the communication device 10a.
  • the communication device 10b can hold a table (reception table) that records the sequence ID of the received packet ((b3) in FIG. 5).
  • the communication apparatus 10b has successfully received packets with sequence IDs 0 to 8019, 8024 to 8699, 8701 to 9009, and 9022 to 9999.
  • the received packet management unit 17b stores the sequence ID of a packet that has been successfully received.
  • a packet used for notification of control information includes an IP header, a UDP header, protocol ID information, a data header, and control information.
  • the protocol ID information is set to Ack, and information specifying a packet that has been successfully received is recorded in the control information.
  • FIG. 10 is a diagram illustrating an example of information included in the control information of the control response packet.
  • the control information in the control response packet includes a control information identifier, reception size, maximum reception size, reception bandwidth, response request information, retransmission start ID, and retransmission start sequence length.
  • the control information identifier is a TCP application identifier included in the packet for which the reception status is to be reported.
  • the reception size is a value indicating, in bytes, the total amount of data obtained up to the end of a packet that has been successfully received continuously among packets having the same TCP application identifier. When the reception size is divided by the size of the payload in one transfer packet, the maximum value of sequence IDs that can be continuously received is obtained.
  • the size of the payload in the transfer packet is set in advance in the communication device 10a and the communication device 10b.
  • the maximum reception size is the product of the maximum value of the sequence ID attached to a packet that has been successfully received and the number of bytes of the payload of the transfer packet.
  • the reception band is a bandwidth used by the communication device 10b for receiving a transfer packet from the communication device 10a.
  • the bandwidth calculation unit 18b calculates the reception bandwidth of the communication device 10b.
  • the retransmission start ID and retransmission start sequence length are used in combination.
  • the retransmission start ID is a value that becomes the minimum sequence ID in each group when the packet that the communication device 10b has failed to receive is divided into groups with sequential IDs.
  • the retransmission start sequence length is the number of packets that failed to be received that belong to the group having the retransmission start ID as a minimum value.
  • the response request information is a value indicating whether an Ack for the packet is requested. In the case of the retransmission-based transmission method, the response request information is set to a value indicating that Ack is requested. On the other hand, the response request information is set to a value indicating that Ack is not requested in error correction-based retransmission, a control packet for notifying Ack, and the like.
  • FIG. 10 is an example of control information in a control response packet generated by the communication device 10b.
  • the communication device 10b has successfully received packets having sequence IDs 0 to 8019, 8024 to 8699, 8701 to 9009, and 9022 to 9999. For this reason, the received packet management unit 17b of the communication device 10b generates a control response packet for requesting the communication device 10a to retransmit the packets assigned the sequence IDs 8020 to 8023, 8700, and 9010 to 9021.
  • the reception packet management unit 17b sets the reception size to 8019 ⁇ U and the maximum reception size to 10000 ⁇ U.
  • U is the payload length of the transfer packet.
  • the received packet management unit 17b adds an IP header specifying the destination as the communication device 10a and the transmission source as the communication device 10b to the control response packet. Furthermore, the received packet management unit 17b also sets a UDP header, a data header, and the like as appropriate, and includes information indicating that it is a control response packet in the protocol ID. The reception packet management unit 17b outputs the generated control response packet to the transmission unit 11b. The transmitter 11b transmits the input control response packet to the communication device 10a ((c2) in FIG. 5).
  • the receiving unit 12a of the communication device 10a receives the control response packet including the information described with reference to FIG.
  • the receiving unit 12a outputs the control response packet to the packet processing unit 16a ((d1) in FIG. 5). If the value of the protocol ID is information indicating that the packet is a control response packet, the packet processing unit 16a outputs the input packet to the selection unit 22a.
  • the selection unit 22a updates the information on the packet being transmitted according to the reception status at the communication device 10b.
  • FIG. 11 shows an example of updating the transmission table.
  • the selection unit 22a deletes information on a packet that has been confirmed to have been successfully transmitted from the control response packet. For example, when the control response packet including the information shown in FIG. 10 is received, the selection unit 22a determines that transmission of packets having sequence IDs 0 to 8019, 8024 to 8699, 8701 to 9009, and 9022 to 9999 has been successful. On the other hand, the selection unit 22a determines that transmission of packets assigned with sequence IDs 8020 to 8023, 8700, and 9010 to 9021 has failed. Further, for the packets having the sequence ID of 10,000 to 19999, it is determined that the successful transmission status is not known because the control response packet has not been received. Therefore, by deleting the information of the packet determined to have been successfully transmitted, the information of the packet being transmitted is updated from the information shown in FIG. 6B to the information shown in FIG. 11 ((d2 in FIG. 5). )).
  • FIG. 12 shows an example of a packet transmission pattern according to the type of transmission data.
  • file transfer is performed, data transmission from the terminal 1 is continuously performed.
  • the time interval when the communication apparatus 10a does not receive the packet from the terminal 1 is comparatively short.
  • the communication device 10a continuously receives packets from the terminal 1.
  • the transmission data is a moving image or the like, as shown in FIG. 12B, a period in which no packet is transmitted from the terminal 1 occurs according to the moving image frame rate. For this reason, when the moving image is transferred from the terminal 1, the period during which the communication device 10a does not receive a packet from the terminal 1 is longer than when the file transfer is performed.
  • the communication device 10a When the communication device 10a does not receive a packet from the terminal 1, the communication device 10a does not transfer a new packet to the communication device 10b. Therefore, there is a possibility that an empty capacity is generated in the communication line between the communication device 10a and the communication device 10b. . Therefore, the communication device 10a retransmits, on an error correction basis, a packet whose transmission has not been confirmed due to the free capacity generated by not transferring a new packet.
  • the method from determining whether to perform error correction based retransmission to the retransmission processing will be described in detail.
  • the threshold value calculation unit 23a of the communication device 10a calculates a threshold value used for determining whether to perform error correction based retransmission.
  • the selection unit 22a selects a packet to be retransmitted and notifies the threshold calculation unit 23a of the data amount of the selected packet.
  • the selection unit 22a in addition to the packet notified that the transmission has failed, the selection unit 22a also sets a packet whose reception status is not notified by the control response packet as a retransmission target. Therefore, in the example described with reference to FIG. 11, the selection unit 22a sets the packets having sequence IDs 8020 to 8023, 8700, 9010 to 9021, and 10000 to 19999 as retransmission targets.
  • the threshold value calculation unit 23a obtains the amount of redundant information to be transmitted when resending unacknowledged data on an error correction basis, using the time that can be transmitted with an unused bandwidth as a threshold value, and the obtained value Is sent to the selection unit 22a.
  • the threshold calculation unit 23a calculates the threshold Th by the following equation.
  • Th X ⁇ A / (BB used )
  • X is a value indicating the total amount of data to be retransmitted in bytes.
  • A is the ratio of the amount of data included in the redundant packet to be transmitted for error correction-based retransmission to the total amount of data to be retransmitted.
  • A is arbitrarily set depending on the retransmission method, but can be set to a value of about 0.1 to 0.2, for example.
  • B is the bandwidth of the line connecting the communication device 10a and the communication device 10b. Note that the threshold value calculation unit 23a stores the value A and the bandwidth (B) in advance or reads them from the memory 32a.
  • B used is a bandwidth used for communication between the communication device 10a and the communication device 10b, and a value notified from the communication device 10b by a control response packet is used. Therefore, (BB used ) is a bandwidth of an unused bandwidth that is not used for communication between the communication device 10a and the communication device 10b.
  • the selection unit 22a acquires a value of a period during which the communication device 10a has not received a packet from the terminal 1 from the measurement unit 21a, and compares it with the threshold Th. Here, it is assumed that the period during which the communication device 10a does not receive a packet from the terminal 1 exceeds the threshold Th. Then, the selection unit 22a determines that error correction-based retransmission processing is possible ((e1) in FIG. 5).
  • the selection unit 22a outputs a packet to be retransmitted to the retransmission processing unit 15a.
  • the retransmission processing unit 15a makes the data included in the packet input from the selection unit 22a redundant so that error correction can be performed. For example, the retransmission processing unit 15a generates a redundant packet used for error correction by forward-error-correction (FEC) encoding of the packet data input from the selection unit 22a. Further, the retransmission processing unit 15a adds header information to each packet and each redundant packet. The retransmission processing unit 15a adds header information in the same procedure as when the transfer processing unit 14a generates a transfer packet.
  • FEC forward-error-correction
  • the retransmission processing unit 15a records information indicating that the packet is an error correction based retransmission packet in the protocol ID information.
  • the retransmission processing unit 15a outputs the generated packet to the transmission unit 11a ((e2) in FIG. 5).
  • the transmission unit 11a transmits the packet input from the retransmission processing unit 15a to the communication device 10b ((e3) in FIG. 5).
  • the selection unit 22a deletes the packet transmitted on the error correction basis from the retransmission processing unit 15a from the transmission table.
  • FIG. 13 shows an example of processing of the communication apparatus according to the embodiment.
  • the communication device 10a While receiving the TCP packet from the terminal 1, the communication device 10a converts the received packet into a UDP packet and transmits it to the communication device 10b.
  • the communication device 10a receives the control response packet (Ack) including the information of the reception table generated by the reception packet management unit 17b of the communication device 10b at a predetermined cycle, and performs a retransmission process according to the control response packet.
  • the communication device 10a performs retransmission while receiving the TCP packet from the terminal 1, the communication device 10a retransmits the packet that failed to be transmitted on a retransmission basis.
  • the selection unit 22a of the communication apparatus 10a determines that a new packet is not transferred between the communication apparatus 10a and the communication apparatus 10b. Is determined to be free. For this reason, the selection unit 22a selects a packet whose reception has not been confirmed, and outputs the packet to the retransmission processing unit 15a.
  • the retransmission processing unit 15a uses FEC encoding to convert the packet input from the selection unit 22a into a format in which error correction is possible, and performs retransmission processing.
  • the communication device 10a again transfers the packet by a communication method that does not use the redundant packet.
  • FIG. 14 is a flowchart for explaining an example of processing of the communication apparatus.
  • the measurement unit 21 approximates the difference between the time when the transmission from the transmission unit 11 was last performed (final transmission time) and the current time, as a period during which the communication device 10 does not receive a packet from the terminal 1. Treated as a value.
  • the measurement unit 21 holds a timer set to a value sufficiently shorter than the threshold Th, and requests the selection unit 22 to determine whether to perform error correction-based retransmission each time the timer expires. Shall.
  • the processor 31 operating as the switching unit 20 or the packet processing unit 16 waits until an interrupt request is made (step S1). When there is an interrupt, the processor 31 determines the content requested by the interrupt (step S2). If the interrupt indicates reception of a TCP packet, the received packet from the terminal 1 is input to the selection unit 22a (step S3). Therefore, the selection unit 22 outputs the TCP packet to the transfer processing unit 14, and the transfer processing unit 14 converts the TCP packet into a transfer packet (step S4). The transfer processing unit 14 transfers the transfer packet to the receiving-side communication device 10 by the retransmission-based transfer method via the transmission unit 11 (step S5). The selection unit 22 updates the last transmission time to the current time (step S6).
  • step S2 if the interrupt indicates reception of a UDP packet, a control response packet from the communication device 10 on the receiving side is input to the selection unit 22 (step S7).
  • the selection unit 22 updates the transmission table using the control response packet (step S8). Further, since the Ack has not been received, the selection unit 22 updates the amount of packets to be retransmitted and the estimated value of the free bandwidth (step S9).
  • the threshold calculation unit 23 calculates the threshold Th using the value of the free band (Step S10).
  • step S2 If it is determined in step S2 that the interrupt is due to the time-up of the timer held by the measurement unit 21, the measurement unit 21 requests the selection unit 22 to determine whether to perform error correction-based retransmission processing ( Step S11). Therefore, the selection unit 22 acquires the current time (step S12). The selection unit 22 compares the time obtained by adding a threshold to the final transmission time with the current time (step S13). When the time obtained by adding the threshold value to the final transmission time is a time later than the current time, the time elapsed since the packet was last transferred to the communication device 10 on the receiving side is shorter than the threshold value.
  • the selection unit 22 determines that the band with the communication device 10 on the reception side is not free to the extent that the error correction based retransmission can be performed, and returns to step S1 (No in step S13). ).
  • the time obtained by adding a threshold value to the final transmission time is a time after the current time, the time elapsed since the packet was last transferred to the communication device 10 on the receiving side is equal to or more than the threshold value.
  • the selection unit 22 determines that the band with the communication device 10 on the reception side is free to the extent that error correction based retransmission can be performed, and performs retransmission based on error correction based on the retransmission processing unit 15. (Yes in step S13).
  • the retransmission processing unit 15 performs error correction based retransmission processing in response to a request from the selection unit 22. Further, the selection unit 22 updates the last transmission time to the current time (step S14).
  • FIG. 15 is a diagram for explaining an example of packet reception timing.
  • the communication device 10a transmits the transfer packets U0 to Un to the communication device 10b by a retransmission-based transmission method.
  • a control response packet generated when the communication device 10b receives the packet Ux-1 is transmitted from the communication device 10b to the communication device 10a.
  • the selection unit 22a of the communication device 10a determines that Ux to Un are waiting for Ack, and leaves Ux to Un in the transmission table. .
  • the communication device 10b cannot receive Ux to Un-1, but receives the packet Un. Then, the communication device 10b generates a control response packet for notifying that reception of the packets Un but Ux to Un-1 has failed, and transmits the control response packet to the communication device 10a.
  • the selection unit 22a requests the retransmission processing unit 15a to retransmit Ux to Un on an error correction basis. Therefore, the communication device 10a retransmits Ux to Un to the communication device 10b on an error correction basis before receiving control response packets for Ux to Un. Therefore, the communication device 10b can receive Ux to Un at time T1.
  • the control response packet for Ux to Un reaches the communication device 10a at the time when the round trip delay time (RTT) has elapsed from the time when the communication device 10a transmits Ux to Un.
  • RTT round trip delay time
  • the communication device 10a waits for the Ack from the communication device 10b while waiting for reception of the control response packet, and the RTT of the packet has failed for the first transmission failure. It will be forcibly retransmitted before doing. Therefore, since the packet can be forcibly retransmitted regardless of the RTT, a delay due to the length of the RTT is less likely to occur in the communication using the communication device 10a.
  • the time when the communication device 10b receives Ux to Un-1 is the time It will be delayed to T2. Therefore, when the communication method according to the embodiment is used, the communication delay occurring between the communication device 10a and the communication device 10b can be reduced by the period of T2-T1. Further, the error correction based retransmission is performed when it is expected that there is a predetermined space or more in the line between the communication device 10a and the communication device 10b. For this reason, it is possible to prevent a decrease in throughput due to transmission of redundant packets.
  • the bandwidth between the communication device 10a and the communication device 10b is M (bps)
  • the redundancy by FEC is A
  • the RTT between the communication device 10a and the communication device 10b is r (sec)
  • the packet loss rate is d.
  • the redundancy A is about 0.1
  • the packet loss rate d is about 0.1 to 0.2.
  • the throughput is Mbps.
  • the expected value of latency is (r / 2) ⁇ (1 ⁇ d) + (r / 2 + r) ⁇ d.
  • the throughput is M / (1 + A) bps, but the expected value of latency is (r / 2).
  • the expected value of throughput is Mbps
  • the expected value of latency is (r / 2). Therefore, by using the communication apparatus 10 to perform retransmission-based transfer and error correction-based retransmission, it is possible to suppress delay due to retransmission without reducing throughput.
  • the threshold Th is shorter than the round-trip delay time (RTT) between the communication device 10a and the communication device 10b
  • the calculated value of the threshold Th may exceed the RTT.
  • the communication device 10a divides the retransmission processing of a packet whose transmission success has not been confirmed into a plurality of times, so that before the RTT between the communication device 10 on the transmission side and the reception side passes, Packets whose reception status at the communication device 10 cannot be confirmed can be forcibly retransmitted.
  • the measurement unit 21 can also measure the time required for communication between the communication device 10a and the communication device 10b using the measurement packet.
  • the measurement unit 21a generates a first measurement packet, and stores the time when the first measurement packet is transmitted from the transmission unit 11a to the communication device 10b.
  • the first measurement packet is received by the reception unit 12b of the communication device 10b and is output to the measurement unit 21b.
  • the receiving unit 12b stores the format of the measurement packet in advance and can distinguish the measurement packet from other packets.
  • the measurement unit 21b generates a second measurement packet that responds to the first measurement packet, and transmits the second measurement packet to the communication device 10a via the transmission unit 11b.
  • the reception unit 12a of the communication device 10a When receiving the second measurement packet, the reception unit 12a of the communication device 10a outputs the second measurement packet to the measurement unit 21a.
  • the measurement unit 21a acquires the time when the second measurement packet is received, and calculates the difference from the transmission time of the first measurement packet.
  • the measurement unit 21a outputs the obtained difference to the threshold value calculation unit 23a as RTT.
  • the threshold value calculation unit 23a compares the threshold value Th and the RTT value. When the threshold value Th is equal to or greater than the RTT, the threshold value calculation unit 23a calculates the threshold value Thk instead of the threshold value Th. When the threshold value Thk is calculated, the threshold value Thk is used instead of the threshold value Th when determining whether to perform error correction-based retransmission processing.
  • Y X / K.
  • Y is the number of bytes of data to be transmitted in one error correction-based retransmission process.
  • K is the number of retransmission processes performed on an error correction basis.
  • X is the number of bytes of the total amount of data to be retransmitted
  • A is the ratio of the amount of data included in the redundant packet to be transmitted for performing error correction based retransmission to the amount of data to be retransmitted It is.
  • (BB used ) is a bandwidth of a free bandwidth that is not used for communication between the communication device 10a and the communication device 10b.
  • the threshold calculation unit 23a can determine the number of retransmission processes according to the value of the threshold Th. For example, the threshold value calculation unit 23a can increase the value of K as the threshold value Th is longer, and can set an arbitrary integer of 2 or more to K according to the length of the threshold value Th. As described above, by dividing the error correction-based retransmission processing into a plurality of times, even if the amount of redundant data transmitted during the retransmission processing increases, the communication apparatus 10 receives Ack before the RTT elapses. Packets that have not been sent can be forcibly retransmitted. For this reason, since the distance between the communication device 10 on the transmission side and the communication device 10 on the reception side is increased, a delay in communication can be suppressed even if the RTT is increased.
  • the amount of data transmitted at the time of one retransmission process is reduced, the amount of redundant packets used for one retransmission process can also be suppressed. For this reason, it becomes easy to avoid a situation in which the throughput decreases more than expected due to error correction-based retransmission.
  • the transmission table is a hash table
  • a table that records the transmission status of each packet and the reception status of Ack in association with the sequence ID may be used as the transmission table.
  • FIG. 17 shows an example of a network.
  • the communication device 10 may be used in a network including three or more communication devices 10.
  • the threshold Thd is used in the determination by the selection unit 22.
  • the threshold value Thd is obtained by the following equation.
  • Thd X ⁇ A / Z
  • Z is a value obtained by dividing a value obtained by subtracting the sum of bands used for communication from the bandwidth by the number of communication apparatuses 10 that can communicate with the communication apparatus 10 that is the transmission source.
  • X is the number of bytes of data to be retransmitted, and A is the redundancy added by error correction.
  • the line connected to the communication device 10a is the communication between the communication device 10a and the communication device 10b, and the communication device 10a and the communication device. It may be used for both communication between 10c. Therefore, from the bandwidth of the line connected to the communication device 10a, the bandwidth used for communication between the communication device 10a and the communication device 10b, and the bandwidth used for communication between the communication device 10a and the communication device 10c.
  • the value obtained by subtracting the width and dividing by 2 is used as Z. In this way, by changing the threshold value used by the selection unit 22, in a network including an arbitrary number of communication devices 10 of 2 or more, communication is performed by combining two types of transmission methods, that is, retransmission base and error correction base. be able to.
  • the RTT measurement method may be changed according to the implementation.
  • the threshold Th is equal to or greater than the RTT, it is determined whether to perform retransmission using the threshold Thk, and in one retransmission process, 1 / K of a packet selected as a retransmission target is retransmitted
  • the same processing may be performed even if the threshold Th is shorter than the RTT.
  • Terminal 2 WAN DESCRIPTION OF SYMBOLS 3 Data center 4 Server 10
  • Communication apparatus 11 Transmission part 12 Reception part 13 Transmission / reception part 14
  • Transfer processing part 15 Retransmission processing part 16
  • Packet processing part 17 Received packet management part 18
  • Switching part 21 Measurement part 22 Selection part 23
  • Threshold calculation Unit 31 Processor 32 Memory 33
  • Input device 34 Output device 35
  • Bus 36 External storage device 37
  • Medium drive device 38 Portable storage medium 39

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

 ネットワークは第1~第3の通信装置を含む。第2の通信装置は、第1の通信装置から受信したパケットから、第3の通信装置に転送するパケットである転送パケットを特定し、転送パケットを第1の通信装置から受信する間隔を計測する。第2の通信装置は、転送パケットを第3の通信装置に転送する。第2の通信装置は、転送パケットの受信状況を通知する通知情報を、第3の通信装置から受信し、通知情報を用いて、第3の通信装置へ転送したパケットのうちで第3の通信装置から受信の成功が通知されていないパケットである対象パケットを選択する。第2の通信装置は、第1の通信装置から転送パケットを受信する間隔が閾値を超えると、対象パケットを、誤り補正が可能な形式で第3の通信装置に再送信する。

Description

通信方法、通信装置、および、通信プログラム
 本発明は、複数の通信装置の間で行われる通信に関する。
 クラウドコンピューティングの普及により、通信の高速化が求められているが、データの送受信を行う通信装置同士の距離は、事業のグローバル化などにより長くなってきている。Transmission Control Protocol(TCP)など、通信中に消失したパケットを再送する方式を用いて通信が行われる場合、送信側の通信装置は、受信側の通信装置からの確認応答パケットを用いて、次に送信するデータの大きさや再送を行うかを決定する。送信側の通信装置と受信側の通信装置との間の経路の往復遅延時間(Round Trip Time、RTT)は、送信側の通信装置と受信側の通信装置の間の距離が長いほど長くなる。このため、TCPを用いた通信では、送信側の通信装置と受信側の通信装置の間の距離が長くなると、通信速度が遅くなってしまう。一方、誤り訂正を用いる通信方式では、送信側の通信装置は、送信するデータを含むパケットの他に冗長パケットを送信する。パケットロスが発生したときに、受信側の通信装置は、消失したパケットに含まれているデータを、冗長パケットを用いて復元する。このため、誤り訂正を用いる通信では、再送による遅延を防止できるが、冗長パケットを送信するために、スループットが低下するという問題がある。
 関連する技術として、冗長パケットを用いたときの通信で発生するジッタと、消失したパケットを再送する方式を用いたときの通信で発生するジッタを計測し、ジッタが小さいほうの通信方式を用いてデータを送信する通信装置が考案されている(例えば、特許文献1)。さらに、誤り訂正メカニズムを、状態パラメータやコネクションパラメータを用いて決定する方法も提案されている(例えば、特許文献2)。ここで、状態パラメータは、帯域幅や許容される遅延時間など、データが使用されるアプリケーションに応じて要求される品質情報である。また、コネクションパラメータは、通信コネクションに関する情報である。
国際公開第2007/061087号 特表2002-507369号公報
 通信中に消失したパケットを再送する方式では、送信側の通信装置と受信側の通信装置の距離が長くなると、往復遅延時間が長くなることにより通信速度が落ちるという問題がある。一方、誤り訂正に使用される冗長パケットを送信する方式では、再送処理による通信速度の低下は防止できるが、冗長パケットを送信することにより、スループットが低下するという問題がある。
 使用可能な通信方式のうちでジッタが小さい方式を採用して通信を行う通信装置では、各パケットの送信にかかる時間の変動を小さくすることはできるが、通信の高速化をすることはできない。また、誤り訂正メカニズムを、状態パラメータなどを用いて決定する方法では、アプリケーションから要求される品質情報を用いて通信方式を決定することになる。このため、品質情報が分からないと適切に通信方式を選択できないという問題がある。従って、品質情報を用いて通信方式を決定する方法は、不特定のアプリケーションで用いられるデータの転送を行う通信装置には適用できない。
 本発明は、1つの側面では、スループットの低下を防ぎつつ遅延を抑制する方法を提供することを目的とする。
 実施形態にかかる通信方法が用いられるネットワークは、第1の通信装置、第2の通信装置、および、第3の通信装置を含む。前記第2の通信装置は、前記第1の通信装置から受信したパケットから、前記第3の通信装置に転送するパケットである転送パケットを特定する。前記第2の通信装置は、前記転送パケットを前記第1の通信装置から受信する間隔を計測する。前記第2の通信装置は、前記転送パケットを前記第3の通信装置に転送する。前記第2の通信装置は、前記転送パケットの受信状況を通知する通知情報を、前記第3の通信装置から受信する。前記第2の通信装置は、前記通知情報を用いて、前記第3の通信装置へ転送したパケットのうちで前記第3の通信装置から受信の成功が通知されていないパケットである対象パケットを選択する。前記第2の通信装置は、前記第1の通信装置から前記転送パケットを受信する間隔が閾値を超えると、前記対象パケットを、誤り補正が可能な形式で前記第3の通信装置に再送信する。
 スループットの低下を防ぎつつ、遅延を抑制できる。
実施形態にかかる通信方法の例を示す図である。 ネットワークの例を示す図である。 通信装置の構成の例を示す図である。 通信装置のハードウェア構成の例を示す図である。 通信方法の例を示すシーケンス図である。 送信テーブルの例を示す図である。 パケットのフォーマットの例を示す図である。 TCPヘッダとUDPヘッダのフォーマットの例を示す図である。 通信装置間でのパケットの送受信の例を示す図である。 制御応答パケットに含まれる情報の例を示す図である。 送信テーブルの更新例を示す図である。 送信データの種類によるパケットの送信パターンの例を示す図である。 通信装置の処理の例を示す図である。 通信装置の処理の例を説明するフローチャートである。 パケットの受信のタイミング例を説明する図である。 送信テーブルの変形例を示す図である。 ネットワークの例を示す図である。
 図1は、実施形態にかかる通信方法の例を示す。図1の例では、端末は通信装置Bに向けてパケットを送信するものとする。通信装置Aは、端末から受信したパケットを、通信装置Bに転送する。図1中の太い矢印は、複数のパケットを示す。図1において、「P」の文字と数字の組合せは、端末から送信されたパケットを示し、Pに続く数字は、パケットのシーケンス番号を示すものとする。白抜きの矢印は、受信側が受信に失敗したパケットが送信側から再送される通信方式での通信を示す。以下、受信側が受信に失敗したパケットが送信側から再送される通信方式のことを、「再送ベース」の通信方式と記載することがある。一方、点描を含む矢印は、誤り訂正に使用される冗長パケットを送信する方式で行われる通信を示すものとする。以下の説明では、誤り訂正に使用される冗長パケットを送信する方式のことを、「誤り訂正ベース」の通信方式と記載することがある。
 (1)端末は、再送ベースの通信方式で、通信装置Bに向けて、P0~P9999のパケットを送信する。ここでは、通信装置Aは端末から送信されたパケットを全て受信できたものとする。
 (2)通信装置Aは、端末から受信したパケットを、再送ベースの方式で通信装置Bに転送する。このとき、通信装置Bは通信装置Aから送信されたパケットのうち、P100のパケットの受信に失敗したとする。
 (3)端末は、再送ベースの通信方式で、通信装置Bに向けて、P10000~P19999のパケットを送信する。
 (4)通信装置Bは、所定の時間間隔で、通信装置Aに、パケットの受信状況を通知するための制御応答パケット(Ack)を送信する。制御応答パケットには、制御応答パケットが生成される時点での受信状況が記録されている。図1の例では、通信装置Bは、P100の受信に失敗したことを通知する制御応答パケットを、通信装置Aに送信する。通信装置Aは、P0~P99とP101~P9999の通信装置Bへの送信に成功し、P100の通信装置Bへの送信に失敗したことを認識する。
 (5)通信装置Aは、通信装置Bから制御応答パケットが送信されてから制御応答パケットの処理を終了するまでの間に、端末から受信したパケットP10000~P19999を、再送ベースの方式で通信装置Bに転送する。
 (6)端末から通信装置Bあてのパケットの送信が中断されたとする。端末から通信装置B宛てのパケットの送信が中断されている期間、通信装置Aは、端末からパケットを受信しないので、通信装置Aから通信装置Bへの新たなパケットの転送も中断されている。端末からパケットを受信しない期間が所定の閾値Thを超えると、通信装置Aは、通信装置Bへの新たなパケットの転送処理が中断している期間が閾値Thを超えたと判定する。ここで、閾値Thは、往復遅延時間(RTT)よりも短い時間に設定されるものとする。新たなパケットの転送処理が中断している期間が閾値Thを超えると、通信装置Aは、転送の成功が確認できていないパケットを、誤り訂正ベースの送信方法を用いて、通信装置Bに再送する。この時点では、通信装置Aは、通信装置Bから新たに制御応答パケットを受信していないため、P10000~P19999については送信が成功しているかを知らない。さらに、通信装置Aは、手順(4)でP100のパケットの転送に失敗したことを認識している。そこで、通信装置Aは、通信装置Bに、P100とP10000~P19999のパケットを、誤り訂正ベースで再送する。
 通信装置Bは、通信装置Aから再送されたパケットにより、P100とP10000~P19999を受信できる。手順(6)では、通信装置Aから誤り訂正ベースでパケットが送信されているので、通信装置Bは、受信に失敗したパケットについては、冗長パケットなどを用いて復元することができる。
 (7)端末は、新たにパケットP20000~P29999を通信装置Aに送信したとする。すると、通信装置Aは、通信装置Bに、再送ベースの通信方法により、P20000~P29999を転送する。
 このように、通信装置Aは、新たな転送対象のパケットを受信しない期間が閾値を超えると、パケットの転送に使用できる帯域の空きが増えたと判定する。そこで、新たなパケットの転送を行う合間に、転送の成功が確認できていないパケットを、誤り訂正ベースの通信方法で、再度、転送する。このため、制御応答パケットを待っているパケットについては、制御応答パケットの到着を待たずに再送処理が行われる。従って、制御応答パケットを待っているパケットであり、かつ、1度目の送信に失敗しているパケットについては、往復遅延時間(RTT)が経過する前に再送が行われることになる。従って、実施形態にかかる通信方法を用いると、RTTが長くなっても、遅延を抑えることができる。
 なお、以下の説明では、通信装置Aと通信装置Bの間での往復遅延時間は、通信にかかる時間の計測に用いられるパケット(計測パケット)の送信時刻から計測パケットの応答パケットの受信時刻までの時間であるものとする。例えば、通信装置Aが第1の計測パケットを通信装置Bに送信した時刻から、第1の計測パケットの応答として通信装置Bから送信された第2の計測パケットを通信装置Aが受信する時刻までが、通信装置Aと通信装置Bの間のRTTである。
 ところで、実施形態にかかる通信装置は、新たなパケットの転送を行う合間に行う再送では冗長パケットを送信するが、再送ベースで通信している間は冗長パケットを送信しない。このため、実施形態にかかる通信方法では、冗長パケットの送信によるスループットの低下を小さく抑えることができる。
 なお、図1の例では、理解し易くするために、端末から通信装置B宛てのパケットが送信されているケースを例として説明したが、端末からのパケットは、通信装置Bを介して他の装置に転送されても良いものとする。
 <ネットワークの例と装置構成>
 図2は、実施形態にかかる通信装置10が用いられるネットワークの例を示す。図2は、Wide Area Network(WAN)2をはさんで、端末1とデータセンタ3中のサーバ4が通信する場合のネットワークの例を示す。データセンタ3には、通信装置10bとサーバ4が含まれているものとする。また、端末1は、通信装置10aを介してWAN2にアクセスするものとする。ここで、通信装置10aおよび通信装置10bは、WAN高速化装置として動作することができるものとする。なお、端末1の数とデータセンタ3に含まれているサーバ4の数は任意である。
 図3は、通信装置10の構成の例を示す。通信装置10は、送信部11、受信部12、送受信部13、転送処理部14、再送処理部15、パケット処理部16、受信パケット管理部17、帯域算出部18、切り替え部20を備える。切り替え部20は、計測部21、選択部22、閾値計算部23を有する。
 送信部11は、通信装置10がWAN2に含まれている装置や、他の通信装置10にパケットを送信するときに使用される。送信部11は、転送処理部14、再送処理部15、受信パケット管理部17などから入力されたパケットを、宛先に向けて送信する。受信部12は、WAN2に含まれている装置や、他の通信装置10からパケットを受信する。受信部12は、受信したパケットを、パケット処理部16に出力する。送受信部13は、通信装置10が端末1やサーバ4との間でパケットを送受信するときに使用される。送受信部13は、端末1から受信したパケットを、選択部22に出力する。
 転送処理部14は、選択部22から入力されたパケットを、再送ベースの通信方法を用いてWAN2に送信するためのパケットに変換して、送信部11に出力する。再送処理部15は、選択部22から入力されたパケットを、誤り訂正ベースの通信方法を用いてWAN2に送信するためのパケットに変換して、送信部11に出力する。パケットのフォーマットについては後述する。
 パケット処理部16、受信パケット管理部17、帯域算出部18は、通信装置10が、WAN2を介して接続されている他の通信装置10からパケットを受信している場合に処理を行う。パケット処理部16は、他の通信装置10から受信したパケットを、端末1やサーバ4に送信可能な形式に変換する。パケット処理部16は、処理済のパケットを送受信部13に出力する。すると、送受信部13は、端末1またはサーバ4に宛てたパケットを端末1またはサーバ4に送信する。
 受信パケット管理部17は、パケット処理部16での受信状況をモニタする。例えば、受信パケット管理部17は、現在受信しているパケットのシーケンスIDの最大値と受信できたパケットのシーケンスIDを特定する。シーケンスIDについては後述する。受信パケット管理部17は、特定した情報を用いて、送信側の通信装置10に宛てた制御応答パケットを生成する。受信パケット管理部17は、制御応答パケットを送信部11に出力する。
 帯域算出部18は、通信装置10が、WAN2を介して接続されている他の通信装置10からパケットを受信している場合、パケットの受信に使用している帯域幅を算出する。帯域算出部18は、得られた帯域幅を受信パケット管理部17に通知する。
 計測部21は、通信装置10が端末1からパケットを受信していない期間の長さを計測する。計測部21は、通信装置10が端末1からパケットを受信すると、計測値を0にリセットする。
 選択部22は、送受信部13から入力されたパケットを、転送処理部14に出力する。さらに、選択部22は、通信装置10が他の通信装置10に転送したパケットと、送信先の通信装置10から制御応答(Ack)を受信したパケットを特定することにより、パケットの送信状況をモニタする。選択部22は、通信装置10が端末1からパケットを受信していない期間Tが閾値Thを越えると、送信済みのパケットのうちでAckを受信していないパケットを選択する。言い換えると、選択部22は、誤り訂正ベースの再送処理の対象とするパケットを選択する。選択部22は、選択したパケットを、再送処理部15に出力する。閾値計算部23は、選択部22が判定に使用する閾値Thを計算し、得られた閾値を選択部22に出力する。さらに、選択部22は、送信部11からパケットが送信された最新の時刻をモニタする。
 図4は、通信装置10のハードウェア構成の例を示す。通信装置10は、プロセッサ31、メモリ32、バス35、外部記憶装置36、ネットワーク接続装置39を備える。さらにオプションとして、通信装置10は、入力装置33、出力装置34、媒体駆動装置37を備えても良い。通信装置10は、例えば、コンピュータなどで実現されることがある。
 プロセッサ31は、Central Processing Unit(CPU)を含む任意の処理回路とすることができる。プロセッサ31は、転送処理部14、再送処理部15、パケット処理部16、受信パケット管理部17、帯域算出部18、切り替え部20として動作する。なお、プロセッサ31は、例えば、外部記憶装置36に記憶されたプログラムを実行することができる。メモリ32は、プロセッサ31の動作により得られたデータや、プロセッサ31の処理に用いられるデータも、適宜、記憶する。ネットワーク接続装置39は、他の装置との通信に使用され、送信部11、受信部12、送受信部13として動作する。
 入力装置33は、例えば、ボタン、キーボードやマウスとして実現され、出力装置34は、ディスプレイなどとして実現される。バス35は、プロセッサ31、メモリ32、入力装置33、出力装置34、外部記憶装置36、媒体駆動装置37、ネットワーク接続装置39の間を相互にデータの受け渡しが行えるように接続する。外部記憶装置36は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ31などに提供する。媒体駆動装置37は、メモリ32や外部記憶装置36のデータを可搬記憶媒体38に出力することができ、また、可搬記憶媒体38からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体38は、フロッピイディスク、Magneto-Optical(MO)ディスク、Compact Disc Recordable(CD-R)やDigital Versatile Disk Recordable(DVD-R)を含む、持ち運びが可能な任意の記憶媒体とすることができる。
 <第1の実施形態>
 以下、図2に示すネットワークにおいて、端末1とサーバ4の間で通信が行われるケースでの通信装置10の処理を説明する。図5は、通信方法の例を示すシーケンス図であり、図5の(A)~(E)に分けて、通信装置10aおよび通信装置10bで行われる処理を説明する。以下の例では、通信装置10aは端末1との間でTCPパケットを送受信し、通信装置10bはサーバ4との間でTCPパケットを送受信する。また、通信装置10aが通信装置10bに向けてデータを送信する場合を例とする。さらに、第1の実施形態では、理解し易くするために、通信装置10aと通信装置10bは、WAN2に設置されている専用線を用いて通信しているものとする。さらに、通信装置10aと通信装置10bのいずれの動作であるかを分り易くするために、通信装置10中の部分の番号の後ろに、その処理を行っている通信装置10の番号に含まれているアルファベットを記載するものとする。例えば、計測部21aは通信装置10aに含まれている計測部21であり、受信パケット管理部17bは、通信装置10bに含まれている受信パケット管理部17である。
 (A)端末1から受信したパケットの転送処理
 まず、端末1がサーバ4宛のデータを通信装置10aに送信する。端末1と通信装置10aの間の通信では、図5の(a1)に示すように、TCPプロトコルを用いて行われ、適宜、確認応答や再送処理が行われる。通信装置10aは、端末1との通信を開始するとき、TCP通信を行っている端末1を一意に認識するための識別番号(TCPアプリケーション識別子)を、端末1との間の通信で使用されるコネクションに対して割り振る。
 ここで、パケットP0~P19999が連続的に通信装置10aに送信されたとする。通信装置10aの計測部21aは、通信装置10aが端末1からパケットを受信するごとにパケットを受信していない期間の長さを0にリセットする。送信側の通信装置10aの選択部22aは、送受信部13aからパケットP0を取得し、送信テーブルを作成する(図5の(a2)、(a3))。
 図6(a)は、送信テーブルの例を示す。送信テーブルは、端末1から受信したパケットを保持する。送受信部13aは、パケットP0を選択部22aに出力する。このとき、選択部22aは、パケットP0が端末1からサーバ4に転送する対象のパケットであるため、パケットP0に送信中であることを示すフラグを付加する。以下、送信中であることを示すフラグを「送信中フラグ」と記載することがある。さらに、選択部22aは、端末1から受信した各パケットに対し、TCPアプリケーション識別子ごとに、同じコネクションを介して受信したパケットの順序を示す識別子として、シーケンスIDを割り当てる。選択部22aは、TCPアプリケーション識別子で識別されるコネクションを介して最初に受信したパケットのシーケンスIDを0とし、受信したパケットの順序になるように、シーケンスIDを割り当てるものとする。以下の説明では、分かりやすくするために、端末1から送信された最初のパケットのシーケンス番号が0であるケースを例として説明する。従って、以下の例では、パケットのTCPヘッダ中のシーケンス番号と、パケットに割り当てられたシーケンスIDは同じ値である。選択部22aは、パケットP0に割り当てたシーケンスIDをキーとしたハッシュテーブルを生成して、パケットP0を記憶する。さらに、選択部22aは、送受信部13aから入力されたパケットP0を、TCPアプリケーション識別子およびシーケンスIDに対応付けて、転送処理部14aに出力する。
 P1~P9999のパケットを受信したときも、P0のときと同様に処理する。このため、選択部22aは、パケットP0~P9999を処理することにより、図6(a)に示す情報を格納したハッシュテーブルを備えることになる。さらに、選択部22aは、パケットP0~P9999を、転送処理部14aに出力する。転送処理部14aは、選択部22aから入力されたパケットを転送パケットに変換する(図5の(a4))。
 図7は、パケットのフォーマットの例を示す図である。図7は、通信装置10aと通信装置10bの間で送受信されるパケットの例を示している。以下、通信装置10aと通信装置10bの間でデータの送受信に使用されるパケットのことを「転送パケット」と記載することがある。図7(a)は、データの転送に使用されるパケットのフォーマットの例である。データの転送に使用される転送パケットは、Internet Protocol(IP)ヘッダ、User Datagram Protocol(UDP)ヘッダ、プロトコルID情報、データヘッダ、データを含む。IPヘッダとUDPヘッダのフォーマットは、それぞれのプロトコルで規定された通りである。プロトコルIDは、転送パケットが、データの転送と、データの再送のいずれに使われているかを判定するための情報を格納する。データヘッダは図7(c)に示すように、TCPアプリケーション識別子、シーケンスID、パケットIDを含む。データは、転送パケットにより送信されるデータである。
 図7(d)は、選択部22aから転送処理部14aに入力されるパケットの例を示す図である。選択部22aから転送処理部14aに入力されるパケットは、IPヘッダ、TCPヘッダ、および、データを含む。転送処理部14aは、選択部22aから入力されたパケットのIPヘッダは変更しない。
 TCPヘッダに含まれている情報要素の例を図8(a)に示す。TCPヘッダは、送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号、データオフセット、リザーブ領域、制御ビット、ウィンドウサイズ、チェックサム、緊急ポインタ、オプションを含む。一方、UDPヘッダは、図8(b)に示すように、送信元ポート番号、宛先ポート番号、セグメントサイズ、チェックサムを含む。
 そこで、転送処理部14aは、パケットP0が選択部22aから入力されると、パケットP0のTCPヘッダから、送信元ポート番号、宛先ポート番号、シーケンス番号を取得する。転送処理部14aは、取得した送信元ポート番号と宛先ポート番号を、転送パケットのUDPヘッダの送信元ポート番号と宛先ポート番号に設定する。転送処理部14aは、選択部22aから通知されたTCPアプリケーションの識別子とシーケンスIDをデータヘッダに含める。転送処理部14は、端末1から受信したパケットのTCPヘッダに含まれていたシーケンス番号を、パケットIDとしてデータヘッダに記録する。
 さらに、転送処理部14aは、プロトコルIDを、データの転送を表す値に設定する。転送処理部14aは、パケットP0のデータを転送パケットのデータとし、セグメントサイズ、チェックサムを設定する。以上の処理により、転送処理部14aは、パケットP0を、パケットP0によって送信されたデータを含む転送パケットに変換する。転送処理部14aは、生成した転送パケットを送信部11aに出力する(図5の(a5))。
 図9は、通信装置10aと通信装置10bの間でのパケットの送受信の例を示す。送信部11aは、転送処理部14aから入力された転送パケットを通信装置10bに送信する(図5の(a6))。選択部22aは、送信部11aが転送パケットを送信した時刻を最終送信時刻として記憶する。図9の転送パケット(U0)は、パケットP0から変換された転送パケットを表す。その他に通信装置10aが通信装置10bに転送するパケットについても、パケットP0と同様に転送処理部14aでの変換処理と送信部11aからの送信処理が行われる。図9で通信装置10aから通信装置10bに送信されている各パケットは、Uの後に続く数字と同じ値のシーケンスIDが付けられた転送パケットであるものとする。なお、選択部22aは、通信装置10aから転送パケットが送信されるたびに、最終送信時刻を新たな送信時刻に更新する。
 (B)通信装置10bで行われる受信処理とサーバ4への転送処理
 通信装置10bは、通信装置10aから転送パケットを受信する(図5の(b1))。通信装置10bの受信部12bは、受信したパケットを、パケット処理部16bに出力する(図5の(b2))。パケット処理部16bは、入力された転送パケット中のデータヘッダからシーケンスIDとTCPアプリケーション識別子を抽出し、得られた値を受信パケット管理部17bに出力する。受信パケット管理部17bは、パケット処理部16bから入力された値を、通信装置10aから受信できたパケットのシーケンスIDとして、TCPアプリケーション識別子に対応付けて記憶する。転送パケットU0からは、シーケンスID=0が得られるので、受信パケット管理部17bは、シーケンスID=0のパケットの受信に成功したと認識する。
 次に、パケット処理部16bは、転送パケットのUDPヘッダ中の情報とデータヘッダ中のパケットIDを含むTCPヘッダを生成する。ここで、パケット処理部16bは、パケットIDを、TCPヘッダ中のシーケンス番号とする。さらに、パケット処理部16bは、UDPヘッダの送信元ポート番号と宛先ポート番号を、TCPヘッダの送信元ポート番号と宛先ポート番号に設定する。パケット処理部16bは、転送パケットからUDPヘッダ、プロトコルID、データヘッダを除去し、これらの情報の代わりに生成したTCPヘッダを含めることにより、端末1から送信された情報を含むTCPパケットを生成する(図5の(b4))。例えば、転送パケットU0からは、パケットP0で送信された情報を含むTCPパケットが生成される。パケット処理部16bは、生成したパケットを送受信部13bに出力する。送受信部13bは、パケット処理部16bから入力されたパケットを、サーバ4に送信する(図5の(b5))。
 通信装置10bは、他に受信した転送パケットも同様に処理する。このため、通信装置10bが通信装置10aから受信できた転送パケットに含まれている情報は、サーバ4に送信される。さらに、帯域算出部18bは、パケットの受信に使用した帯域幅を計算する。受信パケット管理部17bは、通信装置10bが通信装置10aから受信することができたパケットに含まれているシーケンスIDを記憶している。例えば、通信装置10bは、受信したパケットのシーケンスIDを記録するテーブル(受信テーブル)を保持することができる(図5の(b3))。ここでは、通信装置10bは、シーケンスIDが0~8019、8024~8699、8701~9009、9022~9999のパケットの受信に成功したとする。受信パケット管理部17bは、受信に成功したパケットのシーケンスIDを記憶する。
 (C)通信装置10bからの制御応答パケットの送信
 通信装置10bは、予め決められた周期ごとに、通信装置10aに制御応答パケット(Ack)を送信することにより、受信状況を通知する。制御情報の通知に使用されるパケットのフォーマットを、図7(b)に示す。制御情報の通知に使用されるパケットは、IPヘッダ、UDPヘッダ、プロトコルID情報、データヘッダ、制御情報を含む。制御応答パケットの場合、プロトコルID情報はAckに設定され、制御情報には、受信に成功したパケットを特定する情報が記録される。
 図10は、制御応答パケットの制御情報に含まれる情報の例を示す図である。制御応答パケット中の制御情報には、制御情報識別子、受信サイズ、最大受信サイズ、受信帯域、応答要求情報、再送開始ID、再送開始シーケンス長が含まれる。制御情報識別子は、受信状況を報告する対象となっているパケットに含まれていたTCPアプリケーション識別子である。受信サイズは、TCPアプリケーション識別子が等しいパケットのうち、連続的に受信に成功したパケットの末端までで得られるデータの総量をバイト単位で示した値である。受信サイズを1つの転送パケット中のペイロードの大きさで割ると、連続的に受信できているシーケンスIDの最大値が得られる。なお、転送パケット中のペイロードの大きさは、予め、通信装置10aと通信装置10bに設定されているものとする。最大受信サイズは、受信に成功しているパケットに付されているシーケンスIDの最大値と、転送パケットのペイロードのバイト数の積である。受信帯域は、通信装置10bが通信装置10aからの転送パケットの受信に使用した帯域幅である。通信装置10bの受信帯域は、帯域算出部18bが算出する。
 再送開始IDと再送開始シーケンス長は、組合せで使用される。再送開始IDは、通信装置10bが受信に失敗したパケットをシーケンスIDが連番になっているグループごとに分けたときに、各グループの中の最小のシーケンスIDとなる値である。再送開始シーケンス長は、再送開始IDを最小値とするグループに属する受信に失敗したパケットの数である。応答要求情報は、パケットに対するAckを要求するかを示す値である。再送ベースの送信方法の場合、応答要求情報は、Ackを要求することを示す値に設定される。一方、誤り訂正ベースの再送や、Ackを通知するための制御パケットなどでは、応答要求情報は、Ackを要求しないことを示す値に設定される。
 図10は、通信装置10bが生成する制御応答パケットでの制御情報の例である。通信装置10bは、シーケンスIDが0~8019、8024~8699、8701~9009、9022~9999のパケットの受信に成功している。このため、通信装置10bの受信パケット管理部17bは、8020~8023、8700、9010~9021のシーケンスIDが割り当てられたパケットの再送を通信装置10aに要求するための制御応答パケットを生成する。受信パケット管理部17bは、受信サイズを8019×U、最大受信サイズを10000×Uに設定する。ここで、Uは、転送パケットのペイロード長である。さらに、受信パケット管理部17bは、再送開始IDとして、8020、8700、9010を指定する。さらに、受信パケット管理部17bは、再送開始ID=8020に対応する再送開始シーケンス長を4に指定することにより、8020~8023のシーケンスIDが割り当てられたパケットの再送を要求する。同様に、受信パケット管理部17bは、再送開始ID=8700に対応する再送開始シーケンス長を1、再送開始ID=9010に対応する再送開始シーケンス長を11に指定する。さらに、受信パケット管理部17bは、帯域算出部18bで得られた受信帯域を制御応答パケットに含める(図5の(c1))。
 受信パケット管理部17bは、宛先を通信装置10a、送信元を通信装置10bに指定したIPヘッダを、制御応答パケットに付加する。さらに、受信パケット管理部17bは、UDPヘッダ、データヘッダなども適宜設定し、プロトコルIDに制御応答パケットであることを示す情報を含める。受信パケット管理部17bは、生成した制御応答パケットを、送信部11bに出力する。送信部11bは、入力された制御応答パケットを、通信装置10aに送信する(図5の(c2))。
 (D)制御応答パケットを用いた送信履歴管理
 通信装置10aは、シーケンスID=9999のパケットの送信後で、通信装置10bから制御応答パケットを受信する前に、シーケンスIDが10000~19999のパケットを通信装置10bに送信していたとする。すると、通信装置10bからの制御応答パケットを受信する前に選択部22aは、送信中のパケットの情報として、図6(b)に示す情報を保持している。
 その後、通信装置10aの受信部12aは、図10を参照しながら説明した情報を含む制御応答パケットを受信する。受信部12aは、制御応答パケットをパケット処理部16aに出力する(図5の(d1))。パケット処理部16aは、プロトコルIDの値が制御応答パケットであることを示す情報である場合、入力されたパケットを選択部22aに出力する。選択部22aは、制御応答パケットが入力されると、通信装置10bでの受信状況に応じて、送信中のパケットの情報を更新する。
 図11は、送信テーブルの更新例を示す。選択部22aは、制御応答パケットから送信に成功したことが確認できたパケットの情報を削除する。例えば、図10に示す情報を含む制御応答パケットを受信すると、選択部22aは、シーケンスIDが0~8019、8024~8699、8701~9009、9022~9999のパケットの送信に成功したと判定する。一方、選択部22aは、8020~8023、8700、9010~9021のシーケンスIDが割り当てられたパケットの送信に失敗したと判定する。さらに、シーケンスIDが10000~19999のパケットについては、制御応答パケットを受信していないので、送信の成功状況が分らないと判定する。そこで、送信に成功したと判定したパケットの情報を削除することにより、送信中のパケットの情報を、図6(b)に示す情報から、図11に示す情報に更新する(図5の(d2))。
 (E)新たなパケットの転送の中断中に行われる誤り訂正ベースの再送
 図12は、送信データの種類によるパケットの送信パターンの例を示す。ファイル転送が行われる場合、端末1からのデータの送信は連続的に行われる。このため、図12(a)に示すように、通信装置10aが端末1からのパケットを受信しない時間間隔は、比較的短い。言い換えると、通信装置10aは、端末1から連続的にパケットを受信する。一方、送信データが動画などである場合、図12(b)に示すように、動画フレームレートに応じて、パケットが端末1から送信されない期間が発生する。このため、端末1から動画が転送されている場合、通信装置10aが端末1からパケットを受信しない期間は、ファイル転送が行われている場合に比べて長い。
 通信装置10aが、端末1からパケットを受信しない場合、通信装置10aは新たなパケットを通信装置10bに転送しないので、通信装置10aと通信装置10bの通信回線に空き容量が発生する可能性がある。そこで、通信装置10aは、新たなパケットの転送を行わないことによって発生した空き容量で、送信の成功が確認できていないパケットを誤り訂正ベースで再送する。以下、誤り訂正ベースの再送を行うかを判定する方法から、再送処理までを詳しく説明する。
 通信装置10aの閾値計算部23aは、誤り訂正ベースの再送を行うかを判定するために使用する閾値を計算する。選択部22aは、再送の対象となるパケットを選択して、選択したパケットのデータ量を閾値計算部23aに通知する。ここで、選択部22aは、送信に失敗したことを通知されているパケットに加えて、制御応答パケットによって受信状況が通知されていないパケットも、再送対象とする。従って、図11を用いて説明した例では、選択部22aは、シーケンスIDが8020~8023、8700、9010~9021、10000~19999のパケットを再送対象とする。
 閾値計算部23aは、受信の確認が取れていないデータを誤り訂正ベースで再送する際に送信する冗長分の情報量を、未使用の帯域幅で送信できる時間を閾値として求め、得られた値を選択部22aに通知する。閾値計算部23aは、次式により閾値Thを計算する。なお、ここでは、閾値Thが往復遅延時間(RTT)よりも小さい値である場合について説明する。
  Th=X×A/(B-Bused
ここで、Xは再送しようとするデータの総量をバイト単位で示す値である。Aは、誤り訂正ベースの再送を行うために送信する冗長分のパケットに含まれるデータ量が再送の対象とするデータの総量に対して占める割合である。Aは、再送方式によって任意に設定されるが、例えば、0.1~0.2程度の値に設定することができる。Bは、通信装置10aと通信装置10bの間を結ぶ回線の帯域幅である。なお、閾値計算部23aは、予め、Aの値と帯域幅(B)を記憶しているか、メモリ32aから読み出すものとする。Busedは、通信装置10aと通信装置10bの間の通信に使用されている帯域幅であり、制御応答パケットによって、通信装置10bから通知された値を用いる。従って、(B-Bused)は、通信装置10aと通信装置10bの間の通信に使用されていない空き帯域の帯域幅である。
 選択部22aは、計測部21aから、通信装置10aが端末1からパケットを受信していない期間の値を取得して、閾値Thと比較する。ここで、通信装置10aが端末1からパケットを受信していない期間が閾値Thを超えたとする。すると、選択部22aは、誤り訂正ベースの再送処理が可能であると判定する(図5の(e1))。
 選択部22aは、再送処理の対象とするパケットを、再送処理部15aに出力する。再送処理部15aは、選択部22aから入力されたパケットに含まれているデータを誤り訂正が可能になるように、冗長化する。例えば、再送処理部15aは、選択部22aから入力されたパケットのデータをForward Error Correction(FEC)符号化により、誤り訂正に用いる冗長パケットを生成する。さらに、再送処理部15aは、各パケットと、冗長パケットのそれぞれに、ヘッダ情報を付加する。再送処理部15aは、転送処理部14aが転送パケットを生成したときと同様の手順でヘッダ情報を付加する。ただし、再送処理部15aは、プロトコルID情報に、誤り訂正ベースの再送パケットであることを示す情報を記録する。再送処理部15aは、生成したパケットを送信部11aに出力する(図5の(e2))。送信部11aは、再送処理部15aから入力されたパケットを、通信装置10bに送信する(図5の(e3))。選択部22aは、再送処理部15aから誤り訂正ベースで送信されたパケットを送信テーブルから削除する。
 図13は、実施形態にかかる通信装置の処理の例を示す。端末1からTCPパケットを受信している間、通信装置10aは、受信したパケットをUDPパケットに変換して通信装置10bに送信する。通信装置10aは、通信装置10bの受信パケット管理部17bで生成された受信テーブルの情報を含む制御応答パケット(Ack)を所定の周期で受信し、制御応答パケットに応じた再送処理を行う。なお、通信装置10aは、TCPパケットを端末1から受信している間に再送を行う場合は、送信に失敗したパケットを再送ベースで再送する。
 一方、通信装置10aの選択部22aは、端末1からTCPパケットを受信しない期間が所定の期間を超えると、通信装置10aと通信装置10bの間に新たなパケットが転送されていないことにより、回線が空いたと判定する。このため、選択部22aは、受信の確認が取れていないパケットを選択して、再送処理部15aに出力する。再送処理部15aは、FEC符号化を用いて、選択部22aから入力されたパケットを誤り訂正が可能な形式にし、再送処理を行う。端末1からのTCPパケットの送信が再開すると、通信装置10aは、再度、冗長化パケットを用いない通信方法でパケットを転送する。
 図14は、通信装置の処理の例を説明するフローチャートである。図14の処理例では、TCPパケットを転送パケットに変換して転送する処理にかかる時間が、パケットによって変動しないとする。このため、計測部21は、最後に送信部11からの送信が行われた時刻(最終送信時刻)と現在時刻との差を、通信装置10が端末1からパケットを受信していない期間の近似値として扱っている。また、計測部21は、閾値Thよりも十分に短い値に設定したタイマを保持していて、タイマがタイムアップするたびに、選択部22に誤り訂正ベースの再送を行うかの判定を要求するものとする。
 切り替え部20やパケット処理部16として動作しているプロセッサ31は、割り込みの要求があるまで待機する(ステップS1)。プロセッサ31は、割り込みがあると、割り込みで要求されている内容を判定する(ステップS2)。割り込みがTCPパケットの受信を示している場合、端末1からの受信パケットが選択部22aに入力されている(ステップS3)。そこで、選択部22はTCPパケットを転送処理部14に出力し、転送処理部14は、TCPパケットを転送パケットに変換する(ステップS4)。転送処理部14は、送信部11を介して、転送パケットを、再送ベースの転送方法で、受信側の通信装置10に転送する(ステップS5)。選択部22は、最終送信時刻を現在時刻に更新する(ステップS6)。
 ステップS2において、割り込みがUDPパケットの受信を示している場合、受信側の通信装置10からの制御応答パケットが選択部22に入力されている(ステップS7)。選択部22は制御応答パケットを用いて、送信テーブルを更新する(ステップS8)。選択部22は、さらに、Ackを未受信であるため再送の対象とするパケットの量と、空き帯域の推定値を更新する(ステップS9)。閾値計算部23は、空き帯域の値を利用して閾値Thを算出する(ステップS10)。
 ステップS2において、計測部21が保持するタイマのタイムアップによる割り込みであると判定された場合、計測部21が選択部22に、誤り訂正ベースの再送処理を行うかの判定を要求している(ステップS11)。そこで、選択部22は、現在時刻を取得する(ステップS12)。選択部22は、最終送信時刻に閾値を加えることによって得られる時刻と現在時刻を比較する(ステップS13)。最終送信時刻に閾値を加えることによって得られる時刻が現在時刻よりも後の時刻である場合、最後にパケットを受信側の通信装置10に転送してから経過した時間は、閾値よりも短い。この場合、選択部22は、まだ誤り訂正ベースの再送をすることができる程度に、受信側の通信装置10との間の帯域が空いていないと判定し、ステップS1に戻る(ステップS13でNo)。最終送信時刻に閾値を加えることによって得られる時刻が現在時刻以降の時刻である場合、最後にパケットを受信側の通信装置10に転送してから経過した時間は、閾値以上である。この場合、選択部22は、誤り訂正ベースの再送をすることができる程度に、受信側の通信装置10との間の帯域が空いていると判定し、誤り訂正ベースの再送を再送処理部15に要求する(ステップS13でYes)。再送処理部15は、選択部22の要求に応じて、誤り訂正ベースの再送処理を行う。また、選択部22は最終送信時刻を現在時刻に更新する(ステップS14)。
 図15は、パケットの受信のタイミング例を説明する図である。通信装置10aが転送パケットU0~Unを、再送ベースの送信方法で通信装置10bに送信したとする。さらに、通信装置10bがパケットUx-1を受信したときに生成された制御応答パケットが、通信装置10bから通信装置10aに送信されたとする。ここで、パケットU0~Ux-1までは全て通信装置10bで受信できたとすると、通信装置10aの選択部22aは、Ux~UnはAck待ちであると判定し、Ux~Unを送信テーブルに残す。
 一方、通信装置10bは、Ux~Un-1を受信できなかったが、パケットUnを受信したとする。すると、通信装置10bは、パケットUnは受信できたがUx~Un-1の受信に失敗したことを通知するための制御応答パケットを生成し、通信装置10aに向けて送信する。
 ここで、パケットUnが通信装置10bに到達するまでの間に、通信装置10aが端末1からパケットを受信しない期間が閾値Thを超えていたとする。すると、選択部22aは再送処理部15aに、誤り訂正ベースでのUx~Unの再送を要求する。このため、通信装置10aは、Ux~Unについての制御応答パケットを受信する前に、Ux~Unを誤り訂正ベースで通信装置10bに再送する。従って、通信装置10bは、時刻T1にUx~Unを受信できる。Ux~Unについての制御応答パケットは、通信装置10aがUx~Unを送信した時刻から往復遅延時間(RTT)が経過した時刻に通信装置10aに到達する。このため、通信装置10aは、制御応答パケットの受信待ちの間に、通信装置10bからのAckを待っているパケットであり、かつ、1回目の送信に失敗したパケットを、そのパケットのRTTが経過する前に強制的に再送信していることになる。従って、RTTとは無関係にパケットの強制的な再送信を行うことができるため、通信装置10aを用いた通信では、RTTの長さが長くなることによる遅延が発生しにくい。
 例えば、図15に示すように、通信装置10bからの2回目の制御応答パケットを待ってからUx~Un-1を再送した場合、通信装置10bがUx~Un-1を受信する時刻は、時刻T2にまで遅延してしまう。従って、実施形態にかかる通信方法を用いると、通信装置10aと通信装置10bの間で発生する通信遅延を、T2―T1の期間分だけ縮めることができる。さらに、誤り訂正ベースの再送は、通信装置10aと通信装置10bの間の回線に所定以上の空きがあることが見込まれる場合に行われる。このため、冗長パケットの送信によるスループットの低下を防ぐことができる。
 例えば、通信装置10aと通信装置10bの間の帯域幅がM(bps)、FECによる冗長度がA、通信装置10aと通信装置10bの間のRTTがr(sec)、パケットロス率がdであるときの送信方法によるスループットとレイテンシを比較する。なお、冗長度Aは0.1程度、パケットロス率dは0.1~0.2程度の値であると仮定する。
 再送ベースで全てのパケットの転送および再送を行うと、スループットは、Mbpsである。しかし、レイテンシの期待値は、(r/2)×(1-d)+(r/2+r)×dとなる。FECで全てのパケットの転送を行う場合は、スループットは、M/(1+A)bpsとなるが、レイテンシの期待値は(r/2)である。
 一方、通信装置10を用いて転送処理を行うことにより、再送ベースの転送と誤り訂正ベースの再送を組み合わせてパケットを転送すると、スループットの期待値はMbpsであり、レイテンシの期待値は(r/2)である。従って、通信装置10を用いて、再送ベースの転送と誤り訂正ベースの再送を行うことにより、スループットを低下させることなく、再送による遅延を抑制することができる。
 <第2の実施形態>
 第1の実施形態では、閾値Thが通信装置10aと通信装置10bの間の往復遅延時間(RTT)よりも短いケースを例として説明したが、閾値Thの計算値がRTTを超える場合もある。この場合、通信装置10aは、送信の成功が確認できていないパケットの再送処理を複数回に分けることにより、送信側と受信側の通信装置10の間のRTTが経過する前に、受信側の通信装置10での受信状況を確認できていないパケットを強制的に再送できる。
 第2の実施形態では、計測部21は、計測パケットを用いて通信装置10aと通信装置10bの間の通信にかかる時間も計測できるものとする。計測部21aは、第1の計測パケットを生成し、送信部11aから通信装置10bに第1の計測パケットが送信された時刻を記憶する。第1の計測パケットは通信装置10bの受信部12bで受信され、計測部21bに出力される。なお、受信部12bは、計測パケットのフォーマットを予め記憶しており、他のパケットと計測パケットを識別できるものとする。計測部21bは、第1の計測パケットに応答する第2の計測パケットを生成し、送信部11bを介して、通信装置10aに送信する。通信装置10aの受信部12aは第2の計測パケットを受信すると、計測部21aに第2の計測パケットを出力する。計測部21aは、第2の計測パケットを受信した時刻を取得し、第1の計測パケットの送信時刻との間の差分を計算する。計測部21aは、得られた差分を、RTTとして閾値計算部23aに出力する。
 閾値計算部23aは、閾値ThとRTTの値を比較する。閾値ThがRTT以上の場合、閾値計算部23aは、閾値Thの代わりに閾値Thkを算出する。閾値Thkが算出される場合、誤り訂正ベースの再送処理を行うかの判定の際に、閾値Thの代わりに閾値Thkが使用される。閾値Thkは、以下の式から算出される。
 Thk=Y×A/(B-Bused)=X×A/K(B-Bused)=Th/K
ここで、Y=X/Kである。Yは、1回の誤り訂正ベースの再送処理で送信しようとするデータのバイト数である。Kは誤り訂正ベースで行う再送処理の回数である。また、Xは再送しようとするデータの総量のバイト数であり、Aは誤り訂正ベースの再送を行うために送信する冗長分のパケットに含まれるデータ量が再送するデータの量に対して占める割合である。(B-Bused)は、通信装置10aと通信装置10bの間の通信に使用されていない空き帯域の帯域幅である。
 閾値計算部23aは、再送処理の回数を、閾値Thの値に応じて決定することができる。例えば、閾値計算部23aは、閾値Thが長いほどKの値を大きくすることができ、閾値Thの長さに応じて、任意の2以上の整数をKに設定することができる。このように、誤り訂正ベースの再送処理を複数回に分けることにより、再送処理の際に送信される冗長分のデータ量が多くなっても、通信装置10は、RTTの経過前にAckを受信していないパケットを強制的に再送信できる。このため、送信側の通信装置10と受信側の通信装置10の距離が長くなることにより、RTTが長くなっても、通信の遅延を抑えることができる。
 さらに、第2の実施形態では、1度の再送処理の際に送信されるデータ量が少なくなるので、1度の再送処理に用いられる冗長パケットの量も抑えることができる。このため、誤り訂正ベースの再送により予測以上にスループットが低下する事態を避けやすくなる。
 <その他>
 なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
 上記の実施形態では、図を見やすくするために、TCPヘッダのシーケンス番号とデータヘッダのシーケンスIDが同じ値である場合を例として説明したが、両者は異なっていてもよい。TCPヘッダはTCPを用いた通信を行う装置間で決められたシーケンス番号であるが、シーケンスIDは、コネクションごとに0からカウントアップされる。従って、例えば、端末1から通信装置10aに送信されるパケットのシーケンス番号が100から開始したとすると、シーケンス番号100のTCPパケットに含まれるデータは、シーケンスID=0の転送パケットに含まれることになる。
 上記の実施形態では、送信テーブルがハッシュテーブルである場合を例として説明したが、シーケンスIDに対応付けて、各パケットの送信状況とAckの受信状況を記録するテーブルを送信テーブルとしても良い。送信テーブルの変形例を図16に示す。図16の例では、送信中フラグ=0は送信済みであることを示し、送信中フラグ=1は送信後でAckが取得できていないことを示す。Ack受信状況は、制御応答パケットの受信状況を示す。従って、送信中フラグ=0でAck受信状況=受信となっているパケットは、そのパケットの送信後、そのパケットの送信の成功を示すAckが含まれている制御応答パケットを受信したパケットを表す。送信中フラグ=1でAck受信状況=受信待ちとなっているパケットは、そのパケットの送信後、送信の結果を示すAckが含まれた制御応答パケットを受信していないパケットを表す。さらに、送信中フラグ=1でAck受信状況=受信となっているパケットは、そのパケットの送信後、そのパケットの送信の失敗を示す情報が含まれている制御応答パケットを受信したパケットを表す。従って、図16は、シーケンスID8020~8023、8700、9010~9021のパケットの送信に失敗し、さらに、シーケンスIDが10000~19999のパケットについては、制御応答パケットを受信していない場合の送信テーブルである。
 図17は、ネットワークの例を示す。通信装置10は、図17に示すように、3台以上の通信装置10が含まれるネットワークで使用されても良い。この場合、選択部22での判定では、閾値Thdが用いられる。閾値Thdは、以下の式で求められる。
  Thd=X×A/Z
ここで、Zは、帯域幅から通信に使用されている帯域の総和を差し引いた値を、送信元の通信装置10と通信しうる通信装置10の数で割った値である。また、Xは再送しようとするデータのバイト数、Aは誤り訂正によって付加される冗長度である。
 例えば、図17の例では、通信装置10a~10cがネットワーク中にあるので、通信装置10aに接続されている回線は、通信装置10aと通信装置10bの間の通信と、通信装置10aと通信装置10cの間の通信の両方に使用される可能性がある。そこで、通信装置10aに接続されている回線の帯域幅から、通信装置10aと通信装置10bの間の通信で使用されている帯域幅と、通信装置10aと通信装置10cの通信で使用される帯域幅を差し引いた値を2で割った値が、Zとして用いられる。このように選択部22が使用する閾値を変更することにより、2以上の任意の数の通信装置10が含まれるネットワークにおいて、再送ベースと誤り訂正ベースの2種類の送信方法を組み合わせた通信を行うことができる。
 さらに、RTTの計測方法は、実装に応じて変更されても良い。第2の実施形態では、閾値ThがRTT以上の場合に閾値Thkを用いて再送を行うかを判定し、一度の再送処理では、再送の対象として選択されたパケットの1/Kを再送する場合を説明したが、閾値ThがRTTより短くても同様の処理を行っても良い。
 また、上記の例では、TCPやUDPが用いられる場合を例として説明したが、実装に応じて、通信に使用するプロトコルを変更しても良い。さらに、誤り訂正ベースの再送の際に、FEC以外の誤り訂正を用いることもできるものとする。
   1 端末
   2 WAN
   3 データセンタ
   4 サーバ
  10 通信装置
  11 送信部
  12 受信部
  13 送受信部
  14 転送処理部
  15 再送処理部
  16 パケット処理部
  17 受信パケット管理部
  18 帯域算出部
  20 切り替え部
  21 計測部
  22 選択部
  23 閾値計算部
  31 プロセッサ
  32 メモリ
  33 入力装置
  34 出力装置
  35 バス
  36 外部記憶装置
  37 媒体駆動装置
  38 可搬記憶媒体
  39 ネットワーク接続装置

Claims (11)

  1.  第1の通信装置、第2の通信装置、および、第3の通信装置を含むネットワークにおいて、前記第2の通信装置は、
      前記第1の通信装置から受信したパケットから、前記第3の通信装置に転送するパケットである転送パケットを特定し、
      前記転送パケットを前記第1の通信装置から受信する間隔を計測し、
      前記転送パケットを前記第3の通信装置に転送し、
      前記転送パケットの受信状況を通知する通知情報を、前記第3の通信装置から受信し、
      前記通知情報を用いて、前記第3の通信装置へ転送したパケットのうちで前記第3の通信装置から受信の成功が通知されていないパケットである対象パケットを選択し、
      前記第1の通信装置から前記転送パケットを受信する間隔が閾値を超えると、前記対象パケットを、誤り補正が可能な形式で前記第3の通信装置に再送信する
     ことを特徴とする通信方法。
  2.  前記対象パケットは、前記第3の通信装置から受信状況が通知されていないパケットと、前記第3の通信装置からパケットの受信の失敗を通知されたパケットを含む
     ことを特徴とする請求項1に記載の通信方法。
  3.  前記第2の通信装置は、前記対象パケットを前記誤り訂正が可能な形式で送信するために用いる冗長分のデータを、前記第2の通信装置と前記第3の通信装置の間の回線中の使用されていない帯域幅を用いて、前記第2の通信装置が前記第3の通信装置に送信するためにかかる時間を、前記閾値として計算する
     ことを特徴とする請求項1または2に記載の通信方法。
  4.  前記第2の通信装置は、
      前記第2の通信装置が第1のパケットを前記第3の通信装置に向けて送信した時刻から、前記第1のパケットについての応答である第2のパケットが前記第2の通信装置に到達するまでの時間である応答時間を求め、
      前記閾値が、前記応答時間を越えているかを判定し、
      前記閾値が前記応答時間を超えている場合、前記閾値を第1の値で割って得られる商が前記応答時間よりも短くなるように、前記第1の値を求め、
      前記対象パケットを前記誤り訂正が可能な形式で送信するために用いる冗長分のデータの量を前記第1の値で割って得られるデータ量である第2の値を求め、
      前記第2の値のデータ量を、前記第2の通信装置と前記第3の通信装置の間の回線中の使用されていない帯域幅を用いて、前記第2の通信装置が前記第3の通信装置に送信するためにかかる時間の長さを第3の値とし、
      前記第1の通信装置から前記転送パケットを受信する間隔が前記第3の値を超えると、前記対象パケットを前記第1の値と同数のグループに分けて得られる1つのグループに含まれるパケットを、誤り補正が可能な形式で前記第3の通信装置に再送信する
     ことを特徴とする請求項3に記載の通信方法。
  5.  端末からパケットを受信する受信部と、
     前記端末の通信先に向けて転送するパケットである転送パケットを受信する間隔を計測する計測部と、
     前記転送パケットを、前記通信先に向けて転送する転送処理部と、
     前記通信先へ転送したパケットのうちで前記通信先から受信の成功が通知されていないパケットである対象パケットを選択する選択部と、
     前記転送パケットの受信間隔が閾値を超えると、前記対象パケットを、誤り補正が可能な形式で前記通信先に再送信するための処理を行う再送処理部
     を備えることを特徴とする通信装置。
  6.  前記選択部は、前記通信先からの受信状況の通知を受信していないパケットと、前記通信先からパケットの受信の失敗を通知されたパケットを、前記対象パケットとして選択する
     ことを特徴とする請求項5に記載の通信装置。
  7.  前記対象パケットを前記誤り訂正が可能な形式で送信するために用いる冗長分のデータを、前記通信装置と前記通信先の間の回線中の使用されていない帯域幅を用いて、前記通信装置が前記通信先に送信するためにかかる時間を、前記閾値として計算する計算部
     をさらに備えることを特徴とする請求項5または6に記載の通信装置。
  8.  第1の通信装置、第2の通信装置、および第3の通信装置を含むネットワーク中の前記第2の通信装置に、
      前記第1の通信装置から受信したパケットから、前記第3の通信装置に転送するパケットである転送パケットを特定し、
      前記転送パケットを前記第1の通信装置から受信する間隔を計測し、
      前記転送パケットを前記第3の通信装置に転送し、
      前記転送パケットの受信状況を通知する通知情報を、前記第3の通信装置から受信し、
      前記通知情報を用いて、前記第3の通信装置へ転送したパケットのうちで前記第3の通信装置から受信の成功が通知されていないパケットである対象パケットを選択し、
      前記第1の通信装置から前記転送パケットを受信する間隔が閾値を超えると、前記対象パケットを、誤り補正が可能な形式で前記第3の通信装置に再送信する
     処理を行わせることを特徴とする通信プログラム。
  9.  前記対象パケットは、前記第3の通信装置から受信状況が通知されていないパケットと、前記第3の通信装置からパケットの受信の失敗を通知されたパケットを含む
     ことを特徴とする請求項8に記載の通信プログラム。
  10.  前記第2の通信装置は、前記対象パケットを前記誤り訂正が可能な形式で送信するために用いる冗長分のデータを、前記第2の通信装置と前記第3の通信装置の間の回線中の使用されていない帯域幅を用いて、前記第2の通信装置が前記第3の通信装置に送信するためにかかる時間を、前記閾値として計算する
     ことを特徴とする請求項8または9に記載の通信プログラム。
  11.  前記第2の通信装置に、
      前記第2の通信装置が第1のパケットを前記第3の通信装置に向けて送信した時刻から、前記第1のパケットについての応答である第2のパケットが前記第2の通信装置に到達するまでの時間である応答時間を求め、
      前記閾値が、前記応答時間を越えているかを判定し、
      前記閾値が前記応答時間を超えている場合、前記閾値を第1の値で割って得られる商が前記応答時間よりも短くなるように、前記第1の値を求め、
      前記対象パケットを前記誤り訂正が可能な形式で送信するために用いる冗長分のデータの量を前記第1の値で割って得られるデータ量である第2の値を求め、
      前記第2の値のデータ量を、前記第2の通信装置と前記第3の通信装置の間の回線中の使用されていない帯域幅を用いて、前記第2の通信装置が前記第3の通信装置に送信するためにかかる時間の長さを第3の値とし、
      前記第1の通信装置から前記転送パケットを受信する間隔が前記第3の値を超えると、前記対象パケットを前記第1の値と同数のグループに分けて得られる1つのグループに含まれるパケットを、誤り補正が可能な形式で前記第3の通信装置に再送信する
     処理をさらに行わせることを特徴とする請求項10に記載の通信プログラム。
     
     
PCT/JP2013/057920 2013-03-20 2013-03-20 通信方法、通信装置、および、通信プログラム Ceased WO2014147774A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2013/057920 WO2014147774A1 (ja) 2013-03-20 2013-03-20 通信方法、通信装置、および、通信プログラム
CN201380073730.8A CN105103500A (zh) 2013-03-20 2013-03-20 通信方法、通信装置以及通信程序
JP2015506469A JP5935940B2 (ja) 2013-03-20 2013-03-20 通信方法、通信装置、および、通信プログラム
EP13878896.3A EP2978171B1 (en) 2013-03-20 2013-03-20 Communication method, communication device, and communication program
US14/822,220 US9866351B2 (en) 2013-03-20 2015-08-10 Communication method and communication apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/057920 WO2014147774A1 (ja) 2013-03-20 2013-03-20 通信方法、通信装置、および、通信プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/822,220 Continuation US9866351B2 (en) 2013-03-20 2015-08-10 Communication method and communication apparatus

Publications (1)

Publication Number Publication Date
WO2014147774A1 true WO2014147774A1 (ja) 2014-09-25

Family

ID=51579506

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/057920 Ceased WO2014147774A1 (ja) 2013-03-20 2013-03-20 通信方法、通信装置、および、通信プログラム

Country Status (5)

Country Link
US (1) US9866351B2 (ja)
EP (1) EP2978171B1 (ja)
JP (1) JP5935940B2 (ja)
CN (1) CN105103500A (ja)
WO (1) WO2014147774A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110876186A (zh) * 2018-08-29 2020-03-10 苹果公司 针对非基于触发器的测距的功率节省

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2014413360C1 (en) * 2014-12-12 2018-09-27 Hitachi, Ltd. Communication device, communication device system, and communication method
US10165530B2 (en) * 2016-03-22 2018-12-25 Christoph RULAND Verification of time information transmitted by time signals or time telegrams
US10841833B2 (en) 2016-10-12 2020-11-17 Qualcomm Incorporated Streamlined user plane headers for high data rates
US10374762B2 (en) * 2017-02-28 2019-08-06 At&T Intellectual Property I, L.P. Use of underutilized bandwidth via radio access resource sharing
US11140589B2 (en) * 2017-08-08 2021-10-05 Lg Electronics, Inc Method and apparatus for handling failure of early data transmission in wireless communication system
CN108462707B (zh) * 2018-03-13 2020-08-28 中山大学 一种基于深度学习序列分析的移动应用识别方法
CN110971942B (zh) * 2018-09-28 2021-08-17 杭州海康威视数字技术股份有限公司 数据传输方法和装置
US10757166B2 (en) * 2018-11-20 2020-08-25 International Business Machines Corporation Passive re-assembly of HTTP2 fragmented segments
WO2020034576A1 (en) * 2019-01-11 2020-02-20 Zte Corporation Timing adjustments for data transmission in wireless systems
JP7499035B2 (ja) * 2020-01-30 2024-06-13 株式会社Preferred Networks 通信装置及び通信方法
CN112181883B (zh) * 2020-09-24 2022-11-08 深圳市乐唯科技开发有限公司 一种串口通讯的数据传输方法、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002507369A (ja) 1997-07-03 2002-03-05 シーメンス アクチエンゲゼルシヤフト ディジタルデータの符号化方法および符号化装置
WO2007007383A1 (ja) * 2005-07-08 2007-01-18 Fujitsu Limited 送信装置、受信装置、情報通信方法
WO2007061087A1 (ja) 2005-11-28 2007-05-31 Nec Corporation 通信装置、通信システム、通信方法、および、通信プログラム
JP2010098766A (ja) * 2010-01-18 2010-04-30 Fujitsu Ltd 受信装置、受信方法、無線通信システム、及び通信方法
JP2012004952A (ja) * 2010-06-18 2012-01-05 Fujitsu Ltd データ転送装置、データ転送方法及びデータ転送プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3757857B2 (ja) * 2001-12-12 2006-03-22 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
BRPI0516632A (pt) * 2004-12-02 2008-09-16 Thomson Licensing correção de erros antecipada e adaptativa
US7937640B2 (en) * 2006-12-18 2011-05-03 At&T Intellectual Property I, L.P. Video over IP network transmission system
US8112687B2 (en) * 2008-01-03 2012-02-07 Ikanos Communications, Inc. Systems and methods for mitigating impulse noise
CA2765663C (en) * 2009-06-19 2017-06-06 Research In Motion Limited Uplink transmissions for type 2 relay
JP5685307B2 (ja) * 2010-03-29 2015-03-18 エルジー エレクトロニクス インコーポレイティド アップリンク多重アンテナ伝送を支援するための効率的な制御情報伝送方法及び装置
US8948252B2 (en) * 2010-03-30 2015-02-03 Sony Corporation Moving picture transmission apparatus, moving picture transmission system, moving picture transmission method, and program
US8976744B2 (en) * 2010-11-03 2015-03-10 Broadcom Corporation Vehicle communication network including wireless communications
US9571178B2 (en) * 2011-04-19 2017-02-14 Lg Electronics Inc. Method and apparatus for transmitting and receiving data in a wireless communication system that supports a relay node
WO2014014165A1 (en) * 2012-07-15 2014-01-23 Lg Electronics Inc. Method for transmitting downlink signal at a relay node in a wireless communication system and appatatus therefor
US9729270B2 (en) * 2013-03-12 2017-08-08 Empire Technology Development Llc Self-adaptively improving system stability

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002507369A (ja) 1997-07-03 2002-03-05 シーメンス アクチエンゲゼルシヤフト ディジタルデータの符号化方法および符号化装置
WO2007007383A1 (ja) * 2005-07-08 2007-01-18 Fujitsu Limited 送信装置、受信装置、情報通信方法
WO2007061087A1 (ja) 2005-11-28 2007-05-31 Nec Corporation 通信装置、通信システム、通信方法、および、通信プログラム
JP2010098766A (ja) * 2010-01-18 2010-04-30 Fujitsu Ltd 受信装置、受信方法、無線通信システム、及び通信方法
JP2012004952A (ja) * 2010-06-18 2012-01-05 Fujitsu Ltd データ転送装置、データ転送方法及びデータ転送プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2978171A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110876186A (zh) * 2018-08-29 2020-03-10 苹果公司 针对非基于触发器的测距的功率节省
CN110876186B (zh) * 2018-08-29 2023-09-05 苹果公司 针对非基于触发器的测距的功率节省

Also Published As

Publication number Publication date
JPWO2014147774A1 (ja) 2017-02-16
US9866351B2 (en) 2018-01-09
US20150349930A1 (en) 2015-12-03
EP2978171A4 (en) 2016-05-04
JP5935940B2 (ja) 2016-06-15
EP2978171B1 (en) 2017-09-20
CN105103500A (zh) 2015-11-25
EP2978171A1 (en) 2016-01-27

Similar Documents

Publication Publication Date Title
JP5935940B2 (ja) 通信方法、通信装置、および、通信プログラム
EP2759164B1 (en) Dynamic subflow control for a multipath transport connection in a wireless communication network
JP5544430B2 (ja) 通信装置および通信システム
US9577791B2 (en) Notification by network element of packet drops
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
US20170149675A1 (en) Packet retransmission method and apparatus
CN115396077A (zh) 一种数据传输方法及装置
JP6094357B2 (ja) 通信方法、通信システム、及び通信装置
US9037935B2 (en) Apparatus and method for retransmitting message in message transmission system
US10439940B2 (en) Latency correction between transport layer host and deterministic interface circuit
JP2014524092A (ja) 単一ソケットポイントツーマルチポイント性能による高信頼性仮想双方向データストリーム通信のためのシステムおよび方法
WO2014092779A1 (en) Notification by network element of packet drops
CN109981385B (zh) 一种实现丢包检测的方法、装置和系统
JP2015027100A (ja) パケット通信の伝送制御方法及びパケット通信システム
JP2022505424A (ja) パケット処理方法および装置
US10461886B2 (en) Transport layer identifying failure cause and mitigation for deterministic transport across multiple deterministic data links
US20230224084A1 (en) Packet Retransmission Method and Apparatus
CN103973414A (zh) 一种数据传输方法及装置
CN104104608B (zh) 接收报文的方法及装置
US20190132085A1 (en) Fast Detection and Retransmission of Dropped Last Packet in a Flow
US11962517B2 (en) Communications method, apparatus, and system for recovering lost packets
JP5998923B2 (ja) プログラム、情報処理装置、及び通信方法
CN120110594A (zh) 数据确认传输方法、网络设备及存储介质
US11811877B2 (en) Universal transport framework for heterogeneous data streams
EP3389206A1 (en) Multipath error correction

Legal Events

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

Ref document number: 201380073730.8

Country of ref document: CN

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

Ref document number: 13878896

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015506469

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2013878896

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2013878896

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE