WO2014119094A1 - 通信装置及びパケット転送方法 - Google Patents

通信装置及びパケット転送方法 Download PDF

Info

Publication number
WO2014119094A1
WO2014119094A1 PCT/JP2013/081250 JP2013081250W WO2014119094A1 WO 2014119094 A1 WO2014119094 A1 WO 2014119094A1 JP 2013081250 W JP2013081250 W JP 2013081250W WO 2014119094 A1 WO2014119094 A1 WO 2014119094A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication device
priority
packets
packet
retransmitted
Prior art date
Application number
PCT/JP2013/081250
Other languages
English (en)
French (fr)
Inventor
裕司 大石
隆史 磯部
武己 矢崎
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US14/650,438 priority Critical patent/US9450706B2/en
Publication of WO2014119094A1 publication Critical patent/WO2014119094A1/ja

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/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/1874Buffer management
    • H04L1/1877Buffer management for semi-reliable protocols, e.g. for less sensitive applications like streaming video
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/323Discarding or blocking control packets, e.g. ACK packets

Definitions

  • the present invention relates to a communication device.
  • a user uses computer resources of an external data center, not a base where the user exists. Since the data center holds data used by the user, data is frequently transferred between the user's base and the data center.
  • Data centers are widely located all over the world and may not be located in the same country as the user base. For example, there are many cases where an overseas data center with a low usage fee is used.
  • RTT Round Trip Time
  • Patent Document 1 states that “when a proxy device is used between a transmission terminal and a reception terminal, if the tail data is received from the transmission terminal and a failure occurs immediately after that, the transmission is completed at the transmission terminal, The terminal prevents the case where the reception is not completed If the data packet is received in the proxy device with no data being sent waiting for ACK and no data being received waiting for alignment, the proxy device does not send back an ACK.
  • Patent Document 1 described above, retransmission efficiency is improved by using NACK for a retransmission request.
  • NACK when NACK is used, both communication terminals on the transmission side and the reception side need to support the communication method described in Patent Document 1.
  • terminals compatible with the communication system described in Patent Document 1 and terminals using a general communication system are mixed, and communication using a general communication system also occurs.
  • RFC3517 defines a retransmission control method using a selective acknowledgment (Selective Acknowledgment: SACK).
  • SACK Selective Acknowledgment
  • the receiving terminal notifies the transmitting terminal of the number of a normally received packet, and the discarded packet is retransmitted by detecting a location where the transmitting terminal has not been notified. Therefore, the reception terminal and the transmission terminal store the reception location or discard location of the packet.
  • the storage capacity of the receiving terminal and the transmitting terminal has an upper limit depending on the mounting method. For this reason, when a predetermined amount or more of discard occurs, the storage capacity is insufficient, and a newly transmitted packet may not be received.
  • an object of the present invention is to efficiently retransmit a discarded packet and reduce the storage capacity of the discarded portion.
  • a typical example of the invention disclosed in the present application is as follows. That is, a communication device connected to a network, where data is transmitted to the opposite communication device connected to the network, an acknowledgment transmitted by the opposite communication device is received, and the transmitted data is discarded Is monitored in the opposite communication apparatus, and if the storage capacity is insufficient, the priority of retransmission is set at the discard location and the data is retransmitted.
  • FIG. 1 shows the structure of the system of the 1st Example of this invention. It is a functional block diagram of the transmission terminal of a 1st Example. It is a figure explaining the packet format of SACK. It is a figure explaining the structural example of the retransmission management table of a 1st Example. It is a figure explaining the structural example of the retransmission management table of a 1st Example. It is a figure which shows a communication sequence at the time of resending in order of a sequence number, without setting a resending priority. It is a figure which shows the communication sequence at the time of resending irrespective of the order of a sequence number.
  • FIG. 1 is a diagram showing a system configuration of a first embodiment of the present invention.
  • the system of the first embodiment includes a transmission terminal 1, a WAN 3, and a reception terminal 2.
  • the transmission terminal 1 has at least a network interface (NIF) 5, a main memory 31, an auxiliary storage device 33, a processor 34, and a system bus 35 that interconnects these devices and transfers data.
  • the main memory 31 temporarily stores programs and data.
  • the auxiliary storage device 33 stores programs and data.
  • the processor 34 executes a program stored in the main memory 31.
  • the main memory 31 stores a program for the unique TCP function 6, an application program 4, application data 32, and the like.
  • the auxiliary storage device 33 is a non-volatile storage device such as a flash memory or a magnetic storage device, and stores a program executed by the processor 34 and data used when the program is executed. That is, the program executed by the processor 34 is read from the auxiliary storage device 33, loaded into the main memory 31, and executed by the processor 34.
  • the processor 34 executes the application program 4 using the application data 32.
  • the unique TCP function 6 controls transmission data.
  • the unique TCP function 6 sends transmission data to the network interface 5, and the network interface 5 sends the transmission data to the WAN 3.
  • FIG. 1 shows an example in which all of the unique TCP function 6 is configured by software, a part or all of the unique TCP function 6 may be mounted on a dedicated LSI or network interface 5 using a logic circuit.
  • the program executed by the processor 34 is provided to the transmission terminal 1 via a removable medium (CD-ROM, flash memory, etc.) or a network, and is stored in the auxiliary storage device 33 which is a non-temporary storage medium.
  • the transmission terminal 1 may have an interface (for example, an optical disk drive, a USB port, etc.) for reading removable media.
  • FIG. 2 is a functional block diagram of the transmission terminal 1 of the first embodiment, and particularly shows the unique TCP function 6 in detail.
  • the transmission terminal 1 has an application program 4, a network interface 5, and a unique TCP function 6.
  • the unique TCP function 6 includes a transmission unit 7, a reception unit 8, a transmission buffer 9, a reception buffer 10, a transmission control unit 11, and a retransmission management unit 12.
  • the transmission unit 7 controls to transmit data from the network interface 5 to the WAN 3.
  • the transmission control unit 11 controls the amount and order of data transmitted from the transmission unit 7 by controlling the timing at which the transmission unit 7 reads data from the transmission buffer 9.
  • the transmission buffer 9 temporarily stores data transmitted from the application program 4.
  • the transmission unit 7 reads out data to be transmitted among the data stored in the transmission buffer 9.
  • the data stored in the transmission buffer 9 is used to retransmit the discarded packet.
  • the receiving unit 8 receives data received from the WAN 3 to the network interface 5 and writes it in the receiving buffer 10 in order to ensure the consistency of the order of received data.
  • the reception buffer 10 temporarily stores data to be sent to the application program 4.
  • the retransmission management unit 12 detects discard of a packet and controls retransmission of the discarded packet.
  • the retransmission management unit 12 includes a discard detection unit 13, a priority setting unit 14, a retransmission management table 15, a retransmission unit 16, and a storage unit 17.
  • the discard detection unit 13 detects a correctly received location or a discarded location from the received acknowledgment (ACK) packet, and detects the occurrence of mass discard.
  • the storage unit 17 stores the value of the confirmation response returned from the receiving terminal 2.
  • the priority setting unit 14 sets the priority of the retransmission packet.
  • the retransmission management table 15 is a table for managing correctly received packets or discarded packets.
  • the retransmission unit 16 refers to the retransmission management table 15 and retransmits the packet based on the set priority.
  • the storage unit 17 has storage areas of an ACK memory 18, SLE1 to 4 memories 19 to 22, and SRE1 to 4 memories 23 to 26 in order to store ACK values and four SACK blocks. These storage areas correspond to the fields of the SACK packet (see FIG. 3).
  • the receiving terminal 2 uses a general communication method, for example, a standard method defined in RFC2018.
  • SACK is used in addition to ACK.
  • ACK indicates a location that has been correctly received continuously from the beginning of the sequence, and SACK notifies the transmitting terminal 1 of the received location even when a gap has occurred in the received location due to discard.
  • FIG. 3 is a diagram for explaining an ACK packet format including SACK.
  • the SACK is added to the option field 102 of the TCP header 101.
  • NOP No Operation
  • the type 104 and the length 105 are designated, and the start of the first block (SACK Left Edge: SLE) 106 and end (SACK Right Edge: SRE) 107 are designated.
  • the end 107 is obtained by adding 1 to the sequence number of the received data, and represents the sequence number of the packet that the receiving terminal 2 requests the transmitting terminal 1 to transmit next. For example, a SACK for a packet with a sequence number of 1000 having a packet length of 100 has a start end of 1000 and an end of 1100 because the packet has data with sequence numbers 1000 to 1099.
  • a plurality of start ends (108, 110, 112) and end points (109, 111, 113) are designated in order to notify a plurality of SACK blocks. Since the maximum of 4 blocks can be sent due to the limitation of the option length, the latest 4 blocks including the SACK block that has been notified in the past are notified.
  • 4A and 4B are diagrams illustrating a configuration example of the retransmission management table 15 of the first embodiment, and show a state after the priority is set.
  • the retransmission management table 15 stores an entry number 120, a start end 121 and an end 122 of a received sequence number, and a retransmission priority 124 in each entry.
  • the retransmission management table 15 may have a field for the number of packets 123.
  • the packet number 123 indicates the number of retransmission packets at the retransmission location of the entry. Note that the number of packets 123 is not an essential component of the retransmission management table 15 because it can be calculated from the sequence number and the packet length.
  • packets that are not described in the retransmission management table 15 are packets to be retransmitted. Specifically, a packet in a sequence from a received end of an entry before a certain entry to a received start of the corresponding entry is a packet to be retransmitted. However, in the entry number 1, the packet from the ACK number to the reception end is a packet to be retransmitted. The value obtained by dividing the difference between these sequence numbers by the packet length (for example, 100) is the number of packets.
  • the retransmission management table 15 may be configured as shown in FIG. 4B.
  • the start end 121 and end 122 of the received part are not managed as in the retransmission management table 15 shown in FIG. 4A, but the start 125 and end 126 of the part to be retransmitted are managed. . Therefore, it is only necessary to retransmit the packet at the location held in the retransmission management table 15 shown in FIG. 4B.
  • the start end 121 and the end end 122 of the received part are managed, it is possible to reduce the processing load when receiving the acknowledgment packet.
  • the start end 125 and the end end 126 of the portion to be retransmitted are managed, so that the processing load at the time of retransmission can be reduced.
  • FIG. 5 shows an example in which retransmission is performed in the order of sequence numbers without setting retransmission priorities.
  • the receiving terminal 2 stores the same information as the retransmission management table 130a of the transmitting terminal 1. For this reason, the storage capacity of the retransmission management table 15 of the transmission terminal 1 is proportional to the storage capacity of the discard location of the reception terminal 2.
  • the configuration of the retransmission management table 15 of the transmission terminal 1 and the configuration of the storage area of the discard location of the reception terminal 2 may not be the same.
  • the transmitting terminal 1 retransmits five packets in order from the sequence number 1200 as the retransmission block of the entry number 2 (131 to 135), but the packet of the sequence number 1300 is discarded (132).
  • the receiving terminal 2 returns an ACK including ACK or SACK with respect to the reception location. First, since the receiving terminal 2 has received the 1200th packet, it returns an ACK including SACK 1100-1300 (136). Receiving this, the transmitting terminal 1 rewrites the end of entry 1 to 1300. Next, since the packet with the sequence number 1300 has been discarded, the receiving terminal 2 receives the packet with the sequence number 1400 (133). The receiving terminal 2 returns an ACK including SACK 1400-1500 and SACK 1100-1300 (137).
  • the transmission terminal 1 Upon receiving this, the transmission terminal 1 stores the new entries 1400-1500 in the retransmission management table 15 (130b). Subsequently, the receiving terminal 2 receives packets with sequence numbers 1500 and 1600 (134, 135). With these packets, packets with sequence numbers 1500 to 1700 are received. Therefore, entry numbers 2 and 3 are connected, and an ACK including SACK 1400-2000 is returned (138, 139). Upon receiving this ACK, the transmitting terminal 1 concatenates entries 2 and 3 in the retransmission management table 130b, and newly stores 1400-2000 as entry 2 (130c).
  • the number of entries in the retransmission management tables 130a and 130c does not change and temporarily increases (130b). That is, if discarding occurs again during retransmission, the number of entries in the retransmission management table 15 does not decrease.
  • FIG. 6 shows an example in which retransmission is performed regardless of the sequence number order.
  • the sending terminal 1 retransmits the packet with the sequence number 2000 as a block with the entry number 3 regardless of the sequence number order (141). If the transmission of the packet with the sequence number 2000 is successful, the receiving terminal 2 returns an ACK including SACK 1700-3000 (142).
  • the transmitting terminal 1 Upon receiving this ACK, the transmitting terminal 1 concatenates entries 2 and 3 and newly stores 1700-3000 as entry 2 (140b). Therefore, the number of entries in the retransmission management table 15 can be reduced. If retransmission of the packet with sequence number 2000 fails, the number of entries does not change.
  • the storage capacity of the discard location when the storage capacity of the discard location is limited in the receiving terminal 2, it is preferable to retransmit in favor of a location with a small number of retransmission packets instead of retransmitting in order of sequence number.
  • the capacity for the terminal 2 to store the discard location can be reduced.
  • a block with a smaller number of packets can avoid an increase in storage capacity due to discard of retransmission packets, so such blocks may be retransmitted preferentially.
  • FIG. 7 is a flowchart of processing executed by the priority setting unit 14 of the first embodiment.
  • the priority setting unit 14 waits until the discard detection unit 13 detects that the discard location storage capacity is insufficient in the receiving terminal 2 and is notified thereof (150). Then, when notified of the occurrence of a shortage of discard location storage capacity, the priority setting unit 14 sequentially checks the entries in the retransmission management table 15 (151). As a result, if the number of packets to be retransmitted is 1, the priority is set to 1 (152), and if the number of packets to be retransmitted is not 1, the priority is set to 0 (153). Thereafter, it is determined whether the process has been completed up to the last entry (154). If the process has been completed up to the last entry, the process is terminated.
  • FIGS. 4A and 4B An example of the state in the retransmission management table 15 after the priority setting is shown in FIGS. 4A and 4B. An entry having a packet number of 1 is set to priority 1 and an entry having a packet number of 2 or more is set to priority 0.
  • FIG. 8 shows a communication sequence when the storage capacity is insufficient.
  • the receiving terminal 2 receives packets with sequence numbers 0 to 1000 before the sequence shown in the figure, and sandwiches some discards from them, and sequence numbers 1500, 1600, 1800, and 2000 are received. A packet is being received. In this state, in the receiving terminal 2, the capacity for storing the discard location is full, and a new discard cannot be stored.
  • the sending terminal 1 sends packets with sequence numbers 2100 and 2200 following the packet with sequence number 2000 (160, 161), and the receiving terminal 2 receives these two packets. Since these packets do not increase the number of discard points, the receiving terminal 2 transmits ACK (166) including SACK 2000-2200 and ACK (167) including SACK 2000-2300.
  • the receiving terminal 2 After that, the next transmitted packet with the sequence number 2300 is discarded (162), and the packet with the sequence number 2400 is received by the receiving terminal 2 (163). At this time, since the receiving terminal 2 has reached the upper limit of the storage capacity, it cannot store a new discard location. For this reason, the receiving terminal 2 transmits an ACK because it has received the packet, but does not store a new packet reception, and therefore returns an ACK packet containing the same SACK as the immediately preceding ACK packet. That is, an ACK including SACK 2000-2300 is transmitted (168). Thereafter, the receiving terminal 2 transmits the same ACK every time a new packet is received (169, 170).
  • the transmitting terminal 1 receives an ACK packet containing the same SACK as the immediately preceding ACK packet, it can be seen that the storage capacity of the discarding location of the receiving terminal 2 has reached the upper limit.
  • FIG. 9 is a flowchart of processing executed by the discard detection unit 13 of the first embodiment.
  • the discard detection unit 13 When receiving the ACK packet including ACK or SACK (180), the discard detection unit 13 reads the ACK memory 18, the SLE1 to 4 memories 19 to 22 and the SRE1 to 4 memories 23 to 26 from the storage unit 17 (181), It is determined whether or not it matches the SACK of the ACK packet received immediately before (182).
  • the priority setting unit 14 is notified (183).
  • the changed point is stored in the retransmission management table 15 (184).
  • the retransmission unit 16 examines entries in the retransmission management table 15 and retransmits packets in order from the highest priority entry. Entries with the same priority are retransmitted from a packet with a lower sequence number.
  • the discarded packet can be retransmitted efficiently, the storage capacity of the discarded portion can be reduced, and the data transfer throughput can be improved.
  • a high priority is set for a discard location where the number of packets to be retransmitted is small, a shortage of storage capacity at the discard location of the receiving terminal 2 can be alleviated.
  • the priority of the discard location where the number of packets to be retransmitted is 1 is set high and the priority of the discard location where the number of packets to be retransmitted is 2 or more is set to 0, the number of packets to be retransmitted It is possible to preferentially retransmit a packet at a discard location where 1 is 1, and it is possible to easily control retransmission.
  • Example 2 In the second embodiment of the present invention, a priority setting method different from the first embodiment is shown.
  • the blocks having the number of packets of 1 or more are also retransmitted.
  • a block with a number of packets of 1 is retransmitted first.
  • FIG. 10 is a functional block diagram of the retransmission management unit 12 of the second embodiment.
  • the retransmission management unit 12 of the second embodiment has a temporary table 30 that rearranges data in order to set priorities.
  • FIG. 11 is a diagram illustrating a configuration example of the temporary table 30 according to the second embodiment.
  • the temporary table 30 includes a pointer (for example, entry number of the retransmission management table 15) 210 to each entry of the retransmission management table 15, a packet number 211 of each block, and a priority 212 of each block.
  • a pointer for example, entry number of the retransmission management table 15
  • FIG. 12 is a flowchart of processing executed by the priority setting unit 14 of the second embodiment.
  • the priority setting unit 14 detects that the discard detection unit 13 has insufficient storage capacity at the receiving terminal 2 and waits until it is notified (200). Then, the priority setting unit 14 generates the temporary table 30 from the retransmission management table 15 when it is notified that the discard location storage capacity is insufficient (201). Thereafter, the temporary table 30 is sorted in ascending order of the number of packets 211 (202). Note that entries having the same number of packets 211 may be arranged in ascending order of sequence numbers.
  • the priority 212 is set so as to decrease from the beginning to the end of the temporary table 30, and a higher priority 212 is set for a packet with a small number of packets (203). For example, (number of entries ⁇ index number).
  • a packet with a small number of packets For example, (number of entries ⁇ index number).
  • the pointer is traced and the set priority 212 is written back to the retransmission management table 15 (204).
  • FIG. 11 shows the state of the temporary table 30 after the priority 212 is set.
  • 13A and 13B are diagrams illustrating a configuration example of the retransmission management table 15 in which priorities are set in the second embodiment.
  • FIG. 13A shows the retransmission management table 15 in the case of managing the received start and end
  • FIG. 13B shows the retransmission management table 15 in the case of managing the start and end of locations to be retransmitted.
  • the retransmission unit 16 retransmits the packet according to the priority included in the retransmission management table 15.
  • a high priority is given to discard points including packets with a small number of packets to be retransmitted and a small sequence number. Therefore, the storage capacity of the discard location of the receiving terminal 2 can be more reliably reduced, and the effect of alleviating the shortage of storage capacity is great. Furthermore, since the priority is set in the order of the number of packets using the temporary table 30, it is possible to suppress the processing load for setting the priority.
  • the third embodiment of the present invention shows a method for detecting a shortage of storage capacity that is different from the first embodiment.
  • the receiving terminal 2 when an ACK packet in which all SACKs overlap with the immediately preceding ACK packet is received for some reason, it may be erroneously determined that the receiving terminal 2 has insufficient storage capacity. For example, when the receiving terminal 2 adopts the standard system defined in RFC2883, when the same packet as the already received packet is received again, the same packet is received by the same SACK. To the transmission terminal 1. At this time, after the transmission terminal 1 retransmits a packet that has been received by the reception terminal 2, the transmission terminal 1 retransmits the same packet due to a timeout or the like, or packet duplication occurs on the network. In this case, the receiving terminal 2 continuously returns ACK packets including the same SACK.
  • a method of detecting a shortage of storage capacity of the receiving terminal 2 by receiving a plurality of ACK packets including the same SACK is effective.
  • the number of packets transmitted at a certain time varies depending on the transmission control of the transmission terminal 1. For this reason, simply judging by the number of packets, it is easy to detect an insufficient storage capacity excessively when the number of transmitted packets is small, and it is difficult to detect an insufficient storage capacity when the number of transmitted packets is large. Therefore, in the third embodiment, by detecting the shortage of storage capacity based on the number of ACK packets including the same SACK with respect to the number of transmitted packets, the variation in detection capability is suppressed regardless of the number of transmitted packets. To do.
  • FIG. 14 is a functional block diagram of the retransmission management unit 12 in the third embodiment.
  • the retransmission manager 12 of the third embodiment has a counter 40 in addition to the configuration of the retransmission manager of the first embodiment described above.
  • the counter 40 includes a transmission packet number counter (snd) 41 and a duplicate SACK counter (sack.dup) 42 that counts the number of packets with duplicate SACK values.
  • FIG. 15 is a flowchart of processing executed by the discard detection unit 13 of the third embodiment.
  • the discard detection unit 13 repeatedly checks whether the storage capacity of the receiving terminal 2 is insufficient (for example, every predetermined time). For this reason, it is determined whether the difference between the current time and the reference time is greater than or equal to a predetermined interval (300).
  • the reference time is updated to the current time (301), the counter value is acquired (302), and the check.
  • dup / snd is calculated and the calculated suck.
  • Dup / snd is compared with a predetermined threshold (303).
  • dup / snd is larger than the predetermined threshold (YES in 303), it is determined that a shortage of storage capacity has occurred in the receiving terminal 2, and the priority setting unit 14 is notified (304).
  • the process can be executed only when ACK is received.
  • the retransmission management table 15 is referred to (308), and it is determined whether a new ACK or SACK has been received (309).
  • the received ACK and SACK are stored in the retransmission management table 15 (310), and new SACK information is written in the storage unit 17 (311). ).
  • the duplicate SACK counter (sack.dup) 42 stored in the storage unit 17 is incremented by 1 (312).
  • the packet is transmitted (305), and the transmission packet number counter (snd) 41 is incremented by 1 (306).
  • the method of the third embodiment can be combined with the method of the second embodiment as well as the first embodiment.
  • the third embodiment when the ratio between the number of transmission packets and the number of confirmation response packets is equal to or greater than a predetermined threshold, a shortage of storage capacity at the discard location is detected. For this reason, even when the receiving terminal 2 erroneously returns the same SACK, the possibility of erroneously detecting a shortage of storage capacity at the discard location can be reduced.
  • Example 4 In the fourth embodiment of the present invention, a method for detecting in advance a shortage of storage capacity is shown.
  • the retransmission priority is set after a shortage of discard location storage capacity at the receiving terminal 2 occurs. For this reason, new packets transmitted until the shortage of storage capacity is resolved are discarded despite reaching the receiving side. Therefore, in the fourth embodiment, a shortage of discard location storage capacity is detected in advance, and if the capacity is likely to be short, a retransmission priority is set in advance.
  • the discard detection unit 13 monitors the number of entries in the retransmission management table 15 in order to detect a shortage of discard location storage capacity of the receiving terminal 2. If the number of entries exceeds a predetermined value, it is determined that the storage capacity is insufficient, and the priority setting unit 14 is notified of the storage capacity shortage.
  • Other functions and processes are the same as those of the other embodiments described above.
  • FIG. 16 is a flowchart of processing executed by the discard detection unit 13 of the fourth embodiment.
  • the discard detection unit 13 monitors the number of entries in the retransmission management table 15 (400). If the number of entries in the retransmission management table 15 is greater than or equal to a predetermined threshold, the priority setting unit 14 is notified (401). On the other hand, if the number of entries in the retransmission management table 15 is smaller than a predetermined threshold, when ACK (or SACK) is received (402), it is stored in the retransmission management table 15 (403).
  • the method of the fourth embodiment can be combined with any of the first to third embodiments.
  • the fourth embodiment when the number of entries in the retransmission management table 15 is greater than or equal to a predetermined threshold value, it is predicted that the storage capacity at the discard location will be insufficient. Before this, the storage capacity can be reduced, and a decrease in data transfer throughput can be suppressed.
  • the fifth embodiment of the present invention is an example when the unique TCP function 6 cannot be implemented.
  • the transmission terminal 61 implements the unique TCP function 6.
  • the proxy device 50 having the unique TCP function 6 may be installed in the same Local Area Network (LAN) 54 as the transmission terminal 61 as shown in FIG. it can.
  • LAN Local Area Network
  • FIG. 17 is a diagram showing a system configuration of the fifth embodiment
  • FIG. 18 is a functional block diagram of the proxy device 50 of the fifth embodiment.
  • the system of the first embodiment includes a transmission terminal 61, a proxy device 50, a WAN 3, and a reception terminal 2.
  • the proxy device 50 is a computer having at least network interfaces (NIF) 5 and 51, a main memory 71, an auxiliary storage device 68, a processor 69, and a system bus 70 that interconnects these devices and transfers data.
  • the main memory 71 temporarily stores programs and data.
  • the auxiliary storage device 68 stores programs and data.
  • the processor 69 executes a program stored in the main memory 71.
  • the main memory 71 stores a program for the unique TCP function 6, a program for the general TCP function 52, a program for the proxy 53, and the like.
  • the network interface 51 is an interface for the LAN 54 in order to connect to the transmission terminal 61.
  • the auxiliary storage device 68 is, for example, a nonvolatile storage device such as a flash memory or a magnetic storage device, and stores a program executed by the processor 69 and data used when the program is executed. That is, the program executed by the processor 69 is read from the auxiliary storage device 68, loaded into the main memory 71, and executed by the processor 69.
  • the processor 69 executes a predetermined program. Accordingly, the unique TCP function 6 controls transmission data transmitted from the transmission terminal 61. The unique TCP function 6 sends transmission data to the network interface 5, and the network interface 5 sends the transmission data to the WAN 3.
  • the unique TCP function 6 performs the retransmission control according to any of the embodiments described above and transfers the packet.
  • the configuration of the unique TCP function 6 is, for example, as described above in the first embodiment with reference to FIG.
  • the general TCP function 52 includes a LAN-side receiving unit 55, a LAN-side transmitting unit 56, a LAN-side receiving buffer 57, a LAN-side transmitting buffer 58, and a LAN-side control unit 59.
  • the LAN-side control unit 59 transfers the packet according to a normal TCP protocol.
  • the proxy 53 exchanges data between the unique TCP function 6 and the general TCP function 52.
  • FIG. 17 shows an example in which all of the unique TCP function 6 and the general TCP function 52 are configured by software. However, a part or all of the unique TCP function 6 and the general TCP function 52 is a dedicated LSI or network using a logic circuit. It may be mounted on the interface 5.
  • the program executed by the processor 69 is provided to the proxy device 50 via a removable medium (CD-ROM, flash memory, etc.) or a network, and is stored in the auxiliary storage device 68 which is a non-temporary storage medium.
  • the proxy device 50 may have an interface (for example, an optical disk drive, a USB port, etc.) for reading removable media.
  • the transmission terminal 61 is a computer having at least a network interface, a main storage device, an auxiliary storage device, a processor, and a system bus that interconnects these devices and transfers data.
  • the main storage device temporarily stores programs and data.
  • the auxiliary storage device stores programs and data.
  • the processor executes a program stored in the main storage device.
  • the main storage device stores application programs, application data, and the like.
  • the auxiliary storage device is, for example, a nonvolatile storage device such as a flash memory or a magnetic storage device, and stores a program executed by the processor and data used when the program is executed. That is, the program executed by the processor is read from the storage device, loaded into the main storage device, and executed by the processor.
  • the Processor executes application program using application data.
  • the program executed by the processor is provided to the transmission terminal 61 via a removable medium (CD-ROM, flash memory, etc.) or a network, and is stored in the auxiliary storage device 33 which is a non-temporary storage medium.
  • the transmission terminal 61 may have an interface (for example, an optical disk drive, a USB port, etc.) for reading removable media.
  • the fifth embodiment can be combined with the second to fourth embodiments described above. That is, in the first to fourth embodiments, the unique TCP function 6 is implemented in the transmission terminal 61, but the unique TCP function 6 is not implemented in the transmission terminal 61, but the proxy device 50 in which the unique TCP function 6 is implemented. When used, the same effect can be obtained by using the same unique TCP function 6 as in each embodiment.
  • the fifth embodiment since the fifth embodiment has a proxy function for exchanging data between the unique TCP function 6 and the general TCP function 52, the data can be transmitted without special implementation in the transmission terminal 1. Transfer throughput can be improved.
  • the present invention is not limited to the above-described embodiments, and includes various modifications and equivalent configurations within the scope of the appended claims.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and the present invention is not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment may be replaced with the configuration of another embodiment.
  • another configuration may be added, deleted, or replaced.
  • each of the above-described configurations, functions, processing units, processing means, etc. may be realized in hardware by designing a part or all of them, for example, with an integrated circuit, and the processor realizes each function. It may be realized by software by interpreting and executing the program to be executed.
  • Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, a hard disk, and an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, and a DVD.
  • a storage device such as a memory, a hard disk, and an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, and a DVD.
  • control lines and information lines indicate what is considered necessary for the explanation, and do not necessarily indicate all control lines and information lines necessary for mounting. In practice, it can be considered that almost all the components are connected to each other.

Landscapes

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

Abstract

 ネットワークに接続される通信装置であって、前記ネットワークに接続された対向通信装置にデータを送信し、前記対向通信装置が送信した確認応答を受信し、送信されたデータが廃棄された箇所を記憶するための記憶容量が、前記対向通信装置において不足しているかを監視し、前記記憶容量が不足している場合、廃棄箇所に再送の優先度を設定してデータを再送する。

Description

通信装置及びパケット転送方法 参照による取り込み
 本出願は、平成25年(2013年)1月30日に出願された日本出願である特願2013-015245の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、通信装置に関する。
 クラウドコンピューティングでは、利用者は、利用者が存在する拠点ではなく外部のデータセンタの計算機資源を使用する。データセンタは利用者が使用するデータを保持するため、利用者の拠点とデータセンタと間で頻繁にデータを転送する。
 データセンタは広く世界中に所在しており、利用者の拠点と同じ国内にない場合がある。例えば、利用料が安価な海外のデータセンタが利用される場合も多い。
 海外のデータセンタを利用する場合、データの転送が低速になる場合がある。遠距離のデータセンタとの間の通信では、パケットが送信されてから応答が返されるまでの時間であるRound Trip Time(RTT)が大きい。その場合、通常の通信方式では通信速度が遅くなるという問題がある。
 本技術分野の背景技術として、国際公開2012/066824号(特許文献1)がある。特許文献1は、「送信端末と受信端末間にプロキシ装置を用いるときに、送信端末から末尾のデータを受信し、その直後に故障した場合、送信端末では送信が完了している一方で、受信端末では受信が完了していないケースを防ぐ。 プロキシ装置内にACK待ちの送信中データも整列待ちの受信中データも無い状態でデータパケットを受信した場合はACK返信を行わず、プロキシ装置内にACK待ちの送信中データ、或いは整列待ちの受信中データが有る状態でデータパケットを受信した場合は1つ前に受信したデータパケットに対するACKを返信し、受信端末側からACKを受信してACK待ちの送信中データも整列待ちの受信中データも無い状態になったタイミングで通常のACKを返信するための手段を備える。」を開示する。
 前述した特許文献1では、再送要求にNACKを用いることによって、再送効率を向上させている。しかし、NACKを用いる場合、送信側及び受信側の双方の通信端末が特許文献1に記載された通信方式に対応している必要がある。しかし、ネットワーク内には、特許文献1に記載された通信方式に対応している端末と、一般的な通信方式を用いる端末とが混在しており、一般的な通信方式による通信も発生する。
 例えば、RFC3517では、選択的確認応答(Selective Acknowledgement:SACK)を用いた再送制御方法が規定されている。しかし、高速通信においては下記の問題が発生し、RFC3517に規定された方法によっては、このような問題に対応できない。
 RFC3517に既定された方法では、正常に受信されたパケットの番号を受信端末が送信端末に通知し、送信端末が通知されなかった箇所を検出することによって、廃棄されたパケットを再送する。そのため、受信端末及び送信端末がパケットの受信個所又は廃棄箇所を記憶する。
 ネットワークにおけるパケット廃棄率が大きい場合、特に廃棄が不連続に発生した場合は、記憶される廃棄箇所の数が多くなるため、廃棄箇所を記憶するために多くの記憶容量が必要となる。受信端末及び送信端末の記憶容量は、実装方法によっては、上限がある。このため、所定量以上の廃棄が発生した場合、記憶容量が不足し、新たに送信されたパケットが受信できなくなるおそれがある。
 そこで、本発明は、廃棄されたパケットを効率よく再送し、廃棄箇所の記憶容量を削減することを目的とする。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークに接続される通信装置であって、前記ネットワークに接続された対向通信装置にデータを送信し、前記対向通信装置が送信した確認応答を受信し、送信されたデータが廃棄された箇所を記憶するための記憶容量が、前記対向通信装置において不足しているかを監視し、前記記憶容量が不足している場合、廃棄箇所に再送の優先度を設定してデータを再送する。
 本発明の代表的な実施の形態によれば、廃棄箇所の記憶容量を削減して、データ転送のスループットを向上することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
本発明の第1の実施例のシステムの構成を示す図である。 第1の実施例の送信端末の機能ブロック図である。 SACKのパケットフォーマットを説明する図である。 第1の実施例の再送管理テーブルの構成例を説明する図である。 第1の実施例の再送管理テーブルの構成例を説明する図である。 再送優先度を設定せずシーケンス番号の順に再送を行った場合の通信シーケンスを示す図である。 シーケンス番号の順によらず再送を行った場合の通信シーケンスを示す図である。 第1の実施例の優先度設定部が実行する処理のフローチャートである。 受信端末において廃棄箇所の記憶容量が不足している場合の通信シーケンスを示す図である。 第1の実施例の廃棄検出部が実行する処理のフローチャートである。 第2の実施例の再送管理部の機能ブロック図である。 第2の実施例の一時テーブルの構成例を説明する図である。 第2の実施例の優先度設定部が実行する処理のフローチャートである。 第2の実施例の再送管理テーブルの構成例を説明する図である。 第2の実施例の再送管理テーブルの構成例を説明する図である。 第3の実施例における再送管理部の機能ブロック図である。 第3の実施例の廃棄検出部が実行する処理のフローチャートである。 第4の実施例の廃棄検出部が実行する処理のフローチャートである。 第5の実施例のシステムの構成を示す図である。 第5の実施例のプロキシ装置の機能ブロック図である。
 <実施例1>
 図1は、本発明の第1の実施例のシステムの構成を示す図である。
 第1の実施例のシステムは、送信端末1、WAN3及び受信端末2を含む。
 送信端末1は、少なくともネットワークインターフェース(NIF)5、主記憶31、補助記憶装置33、プロセッサ34、及びそれらの装置を相互に接続しデータを転送するシステムバス35を有する。主記憶31は、プログラム及びデータを一時的に格納する。補助記憶装置33は、プログラム及びデータを格納する。プロセッサ34は、主記憶31に格納されたプログラムを実行する。
 主記憶31は、独自TCP機能6のためのプログラム、アプリケーションプログラム4、アプリケーションデータ32などを格納する。
 補助記憶装置33は、例えば、フラッシュメモリ、磁気記憶装置等の不揮発性の記憶装置であり、プロセッサ34が実行するプログラム及びプログラム実行時に使用されるデータを格納する。すなわち、プロセッサ34が実行するプログラムは、補助記憶装置33から読み出されて、主記憶31にロードされて、プロセッサ34によって実行される。
 プロセッサ34は、アプリケーションデータ32を用いてアプリケーションプログラム4を実行する。
 また、プロセッサ34が所定のプログラムを実行することによって、独自TCP機能6が送信データを制御する。独自TCP機能6は送信データをネットワークインターフェース5に送り、ネットワークインターフェース5が送信データをWAN3に送信する。
 なお、図1では、独自TCP機能6の全てをソフトウェアで構成した例を示したが、独自TCP機能6の一部又は全てをロジック回路による専用LSI又はネットワークインターフェース5に実装してもよい。
 プロセッサ34が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介して送信端末1に提供され、非一時的記憶媒体である補助記憶装置33に格納される。このため、送信端末1は、リムーバブルメディアを読み込むインターフェース(例えば、光ディスクドライブ、USBポートなど)を有するとよい。
 図2は、第1の実施例の送信端末1の機能ブロック図であり、特に、独自TCP機能6を詳細に示す。
 送信端末1は、アプリケーションプログラム4、ネットワークインターフェース5及び独自TCP機能6を有する。
 独自TCP機能6は、送信部7、受信部8、送信バッファ9、受信バッファ10、送信制御部11及び再送管理部12を有する。
 送信部7は、ネットワークインターフェース5よりWAN3にデータを送信する制御をする。送信制御部11は、送信部7が送信バッファ9からデータを読み出すタイミングを制御することによって、送信部7から送信されるデータの量及び順序を制御する。送信バッファ9は、アプリケーションプログラム4から送信されるデータを一時的に格納する。送信部7は、送信バッファ9に格納されるデータのうち、送信すべきデータを読み出す。送信バッファ9に格納されるデータは、廃棄されたパケットを再送するために使用される。
 受信部8は、WAN3からネットワークインターフェース5に届いたデータを受信し、受信したデータの順序等の整合性を確保するために、受信バッファ10に書き込む。受信バッファ10は、アプリケーションプログラム4へ送られるデータを一時的に格納する。再送管理部12は、パケットの破棄を検出し、破棄されたパケットの再送を制御する。
 再送管理部12は、廃棄検出部13、優先度設定部14、再送管理テーブル15、再送部16及び記憶部17を有する。廃棄検出部13は、受信した確認応答(Acknowledgement:ACK)パケットから、正しく受信された箇所又は廃棄された箇所を検出し、また、大量廃棄の発生を検出する。記憶部17は、受信端末2から返信される確認応答の値を格納する。優先度設定部14は、再送パケットの優先度を設定する。再送管理テーブル15は、正しく受信されたパケット又は廃棄されたパケットを管理するためのテーブルである。再送部16は、再送管理テーブル15を参照して、設定された優先度に基づいてパケットを再送する。記憶部17は、ACKの値及び四つのSACKブロックを格納するため、ACKメモリ18、SLE1~4メモリ19~22及びSRE1~4メモリ23~26の記憶領域を有する。これらの記憶領域は、SACKパケットのフィールドに対応する(図3参照)。
 受信端末2は、一般的な通信方式、例えば、RFC2018に規定される標準方式を用いる。RFC2018では、ACKに加えてSACKを用いる。ACKは、シーケンスの先頭から連続して正しく受信されている箇所を示し、SACKは、廃棄により受信済みの箇所に隙間が生じた場合でも、受信された箇所を送信端末1に通知する。
 図3は、SACKを含むACKのパケットフォーマットを説明する図である。
 SACKは、TCPヘッダ101のオプションフィールド102に付加され、何もしないことを示すNOP(No Operation)103の後に、種別104、長さ105を指定し、さらに第1ブロックの始端(SACK Left Edge:SLE)106及び終端(SACK Right Edge:SRE)107を指定する。終端107は受信済みデータのシーケンス番号に1を加えたものであり、受信端末2が送信端末1に対して次に送信することを要求するパケットのシーケンス番号を表す。例えば、パケット長が100であるシーケンス番号1000のパケットに対するSACKは、パケットがシーケンス番号1000から1099のデータを持っているため、始端が1000、終端が1100となる。
 複数のパケットが廃棄された場合は、複数のSACKブロックを通知するため、ブロックの始端(108、110、112)及び終端(109、111、113)を複数指定する。なお、オプション長の制限により、最大で4ブロックを送ることができるので、過去に通知済みのSACKブロックも含め、最新の4ブロックが通知される。
 図4A及び図4Bは、第1の実施例の再送管理テーブル15の構成例を説明する図であり、優先度が設定された後の状態を示す。
 再送管理テーブル15は、各エントリに、エントリ番号120、受信済みシーケンス番号の始端121及び終端122、及び再送優先度124を格納する。なお、再送管理テーブル15は、パケット数123のフィールドを有してもよい。パケット数123は、当該エントリの再送箇所の再送パケット数を示す。なお、パケット数123は、シーケンス番号とパケット長から計算できるため、再送管理テーブル15の必須の構成ではない。
 再送管理テーブル15が、受信端末2が受信済みであるシーケンス番号を保持しているため、再送管理テーブル15に記載されていないパケットは再送すべきパケットである。具体的には、あるエントリの前のエントリの受信済終端から該当エントリの受信済始端までのシーケンスのパケットが再送すべきパケットである。ただし、エントリ番号1ではACK番号から受信済始端までが再送すべきパケットである。これらのシーケンス番号の差をパケット長(例えば、100)で除算した値がパケット数である。
 また、再送管理テーブル15は、図4Bのような構成でもよい。図4Bに示す再送管理テーブル15では、図4Aに示す再送管理テーブル15のように受信済箇所の始端121及び終端122を管理するのではなく、再送すべき箇所の始端125及び終端126を管理する。よって、図4Bに示す再送管理テーブル15に保持されている箇所のパケットを再送すればよい。
 図4Aに示す再送管理テーブル15では、受信済箇所の始端121及び終端122を管理するので、確認応答パケット受信時の処理負荷を小さくすることができる。一方、図4Bに示す再送管理テーブル15では、再送すべき箇所の始端125及び終端126を管理するので、再送時の処理負荷を低減することができる。
 再送優先度設定の詳細について説明する前に、優先度設定の必要性について説明する。
 通常、シーケンス番号が小さいパケットから順に再送される。図5は、再送優先度を設定せずシーケンス番号の順に再送する例を示す。受信端末2は、送信端末1の再送管理テーブル130aと同じ情報を格納している。そのため、送信端末1の再送管理テーブル15の記憶容量は、受信端末2の廃棄箇所の記憶容量に比例する。なお、実装によっては、送信端末1の再送管理テーブル15の構成と、受信端末2の廃棄箇所の記憶領域の構成とは同一でなくてもよい。
 送信端末1は、エントリ番号2の再送ブロックとして、シーケンス番号1200から順に5パケットを再送した(131~135)が、シーケンス番号1300のパケットが廃棄された(132)。受信端末2は受信箇所に関してACK又はSACKを含むACKを返信する。まず、受信端末2は、1200番のパケットを受信したため、SACK1100-1300を含むACKを返信する(136)。これを受信した送信端末1は、エントリ1の終端を1300に書き換える。次に受信端末2は、シーケンス番号1300のパケットが廃棄されたため、シーケンス番号1400のパケットを受信する(133)。受信端末2はSACK1400-1500及びSACK1100-1300を含むACKを返信する(137)。
 これを受信した送信端末1は、新たなエントリ1400-1500を再送管理テーブル15に記憶する(130b)。続いて、受信端末2は、シーケンス番号1500及び1600のパケットを受信する(134、135)。これらのパケットにより、シーケンス番号1500~1700のパケットが受信される。そのため、エントリ番号2及び3がつながることとなり、SACK1400-2000を含むACKが返信される(138、139)。このACKを受信した送信端末1は、再送管理テーブル130bのエントリ2及び3を連結し、新たにエントリ2として1400-2000を記憶する(130c)。
 ここで、この再送の前後において再送管理テーブル130a及び130cのエントリ数は、変わらず、一時的に増加している(130b)。つまり、再送中に再び廃棄が発生すると、再送管理テーブル15のエントリ数は減らない。
 一方、図6はシーケンス番号の順によらず再送を行った例を示す。
 送信端末1が、シーケンス番号の順によらず、エントリ番号3のブロックとして、シーケンス番号2000のパケットを再送する(141)。シーケンス番号2000のパケットの送信が成功すると、受信端末2はSACK1700-3000を含むACKを返信する(142)。
 送信端末1は、このACKを受信すると、エントリ2及び3を連結し、新たに1700-3000をエントリ2として記憶する(140b)。よって、再送管理テーブル15のエントリ数を減らすことができる。もし、シーケンス番号2000のパケットの再送が失敗しても、エントリの数は変わらない。
 このように、再送パケットが再び廃棄されるとエントリ数を減らすことができない。再送パケットが再び廃棄される確率が一定であれば、再送ブロック中一つでも廃棄される確率は、該当ブロックのパケット数に応じて大きくなる。よって、再送ブロックのパケット数が少ないエントリは、再送管理テーブル15のエントリ数を減らしやすく、一方で、再送ブロックのパケット数が多いエントリは、再送管理テーブル15のエントリ数を減らしにくい。
 以上の例から分かるように、受信端末2において廃棄箇所の記憶容量が限られている場合、シーケンス番号の順に再送するのではなく、再送パケット数の少ない箇所を優先して再送した方が、受信端末2が廃棄箇所を記憶するための容量を削減することができる。特に、パケット数が少ないブロックほど、再送パケットの廃棄による記憶容量の増加を避けられるため、このようなブロックを優先的に再送すればよい。
 第1の実施例では、パケット数が1である再送ブロックを優先して再送する場合の例を示す。図7は、第1の実施例の優先度設定部14が実行する処理のフローチャートである。優先度設定部14は、廃棄検出部13が受信端末2における廃棄箇所記憶容量の不足が発生したこと検出し、それが通知されるまで待機する(150)。そして、優先度設定部14は、廃棄箇所記憶容量の不足の発生が通知されれば、再送管理テーブル15のエントリを順に調べる(151)。その結果、再送すべきパケットの数が1であれば優先度を1に設定し(152)、再送すべきパケットの数が1でなければ優先度を0に設定する(153)。その後、最後のエントリまで処理が完了したかを判定し(154)、最後のエントリまで処理が完了していれば、処理を終了する。
 優先度設定後の再送管理テーブル15における状態の例を図4A及び図4Bに示す。パケット数が1であるエントリが優先度1に、パケット数が2以上であるエントリが優先度0に設定されている。
 次に、受信端末2における廃棄箇所の記憶容量が不足している状態を検出する方法について説明する。
 図8は、記憶容量が不足している場合の通信シーケンスを示す。
 図8に示す例において、受信端末2は、図示するシーケンス以前に、シーケンス番号0から1000のパケットを受信し、そこからいくつかの廃棄を挟んで、シーケンス番号が1500、1600、1800及び2000のパケットを受信している。この状態で、受信端末2では、廃棄箇所を記憶できる容量が一杯になっており、新たな廃棄を記憶できない。
 送信端末1が、シーケンス番号が2000のパケットに続いて、シーケンス番号が2100及び2200のパケットを送信し(160、161)、受信端末2が、この二つのパケットを受信した。これらのパケットは廃棄箇所を増加させないため、受信端末2は、SACK2000-2200を含むACK(166)及びSACK2000-2300を含むACK(167)が送信される。
 その後、次に送信されたシーケンス番号が2300のパケットが廃棄され(162)、シーケンス番号が2400番のパケットは受信端末2が受信した(163)。このとき受信端末2は、記憶容量の上限に達しているため、新たな廃棄箇所を記憶できない。このため、受信端末2は、パケットを受信したのでACKを送信するが、新たなパケット受信を記憶しないため、直前のACKパケットと同じSACKを含むACKパケットを返信する。すなわち、SACK2000-2300を含むACKが送信される(168)。以降、受信端末2は、新たなパケットを受信するたびに同じACKを送信する(169、170)。
 つまり、送信端末1が、直前のACKパケットと同じSACKを含むACKパケットを受信した場合、受信端末2の廃棄箇所の記憶容量が上限に達していることが分かる。
 図9は、第1の実施例の廃棄検出部13が実行する処理のフローチャートである。
 廃棄検出部13は、ACK又はSACKを含むACKパケットを受信すると(180)、ACKメモリ18、SLE1~4メモリ19~22及びSRE1~4メモリ23~26を記憶部17からを読み出し(181)、直前に受信したACKパケットのSACKと一致しているかを判定する(182)。
 記憶部17の記憶内容と直前に受信したACKパケットのSACKとが一致している場合、優先度設定部14へ通知する(183)。一方、記憶部17の記憶内容と直前に受信したACKパケットのSACKとが一致していない場合、変更点を再送管理テーブル15に記憶する(184)。
 再送部16は、再送管理テーブル15のエントリを調べ、優先度が高いエントリから順にパケットを再送する。優先度が同一のエントリはシーケンス番号の小さいパケットから再送する。
 以上に説明したように、第1の実施例では、廃棄されたパケットを効率的に再送し、廃棄箇所の記憶容量を削減することができ、データ転送のスループットを向上することができる。また、再送すべきパケットの数が少ない廃棄箇所に高い優先度を設定するので、受信端末2の廃棄箇所の記憶容量の不足を緩和することができる。さらに、再送すべきパケットの数が1である廃棄箇所の優先度を高く設定し、再送すべきパケットの数が2以上である廃棄箇所の優先度を0に設定するので、再送すべきパケット数が1である廃棄箇所のパケットを優先的に再送することができ、再送を容易に制御することができる。
 <実施例2>
 本発明の第2の実施例では、第1の実施例とは異なる優先度設定方法を示す。
 第1の実施例ではパケット数が1の再送ブロックのみを再送したが、第2の実施例ではパケット数が1以上(例えば、パケット数が2や3)のブロックも再送する。但し、パケット数が小さいブロックの優先度を高く設定するため、パケット数が1のブロックが先に再送される。連続してパケットの廃棄が発生する場合、第2の実施例の方法が有効である。なお、第2の実施例において、前述した実施例との相違点のみを説明し、第1の実施例と同じ構成及び処理については同じ符号を付し、それらの説明は省略する。
 図10は、第2の実施例の再送管理部12の機能ブロック図である。
 第2の実施例の再送管理部12は、第1の実施例の構成に加え、優先度を設定するためにデータを並び替える一時テーブル30を有する。
 図11は、第2の実施例の一時テーブル30の構成例を説明する図である。
 一時テーブル30は、再送管理テーブル15の各エントリへのポインタ(例えば、再送管理テーブル15のエントリ番号)210、各ブロックのパケット数211及び各ブロックの優先度212を含む。
 図12は、第2の実施例の優先度設定部14が実行する処理のフローチャートである。
 優先度設定部14は、廃棄検出部13が受信端末2における廃棄箇所記憶容量の不足が発生したこと検出し、それが通知されるまで待機する(200)。そして、優先度設定部14は、廃棄箇所記憶容量の不足の発生が通知されれば、再送管理テーブル15から一時テーブル30を生成する(201)。その後、一時テーブル30をパケット数211の昇順にソートする(202)。なお、パケット数211が同一のエントリはシーケンス番号が小さい順に並べるとよい。
 そして、一時テーブル30の先頭から末尾に向かって小さくなるように優先度212を設定して、パケット数が小さいものに高い優先度212を設定する(203)。例えば、(エントリ数-インデックス番号)とする。最後に、ポインタをたどって、設定した優先度212を再送管理テーブル15に書き戻す(204)。なお、図11は優先度212を設定した後の一時テーブル30の状態を示す。
 図13A及び図13Bは、第2の実施例において優先度が設定された再送管理テーブル15の構成例を説明する図である。
 図13Aは、受信済の始端と終端を管理する場合の再送管理テーブル15を示し、図13Bは、再送すべき個所の始端と終端を管理する場合の再送管理テーブル15を示す。再送部16は、再送管理テーブル15に含まれる優先度に従って、パケットを再送する。
 以上に説明したように、第2の実施例では、前述した第1の実施例の効果に加え、再送すべきパケットの数が少なく、かつ、シーケンス番号が小さいパケットを含む廃棄箇所に高い優先度を設定するので、受信端末2の廃棄箇所の記憶容量をより確実に減らすことができ、記憶容量の不足を緩和する効果が大きい。さらに、一時テーブル30を用いて、パケット数の順に優先度を設定するので、優先度を設定する処理の負荷を抑制することができる。
 <実施例3>
 本発明の第3の実施例では、第1の実施例とは異なる記憶容量の不足の検出方法を示す。
 第1の実施例では、何らかの理由によって、直前のACKパケットと全てのSACKが重複するACKパケットを受信した場合、受信端末2で記憶容量不足が発生していると誤って判定することがある。このような現象は、例えば、受信端末2がRFC2883に規定された標準方式を採用する場合、既に受信済のパケットと同一のパケットを再び受信された場合、同じSACKによって、同じパケットを受信した旨を送信端末1に通知する。このとき、受信端末2が受信済のパケットを送信端末1が再送した後、さらに、タイムアウトなどによって送信端末1が同一のパケットを再送したか、又は、ネットワーク上でパケットの複製が発生した。この場合、受信端末2は、同一のSACKを含むACKパケットを連続して返信する。
 これに対する対策として、同一のSACKを含むACKパケットを複数受信したことによって、受信端末2の記憶容量の不足を検出する方法が有効である。しかし、ある時間に送信されるパケットの数は、送信端末1の送信制御によって変動する。このため、単純にパケット数で判定すると、送信パケット数が少ないときは記憶容量の不足を過剰に検出しやすく、送信パケット数が多いときは記憶容量の不足を検出しにくくなる。そこで、第3の実施例では、送信パケット数に対して、同一のSACKを含むACKパケットの数を基準として記憶容量の不足を検出することによって、送信パケット数によらず検出能力の変動を抑制する。
 第3の実施例において、前述した実施例との相違点のみを説明し、第1及び第2の実施例と同じ構成及び処理については同じ符号を付し、それらの説明を省略する。
 図14は、第3の実施例における再送管理部12の機能ブロック図である。
 第3の実施例の再送管理部12は、前述した第1の実施例の再送管理部の構成に加え、カウンタ40を有する。カウンタ40は、送信パケット数カウンタ(snd)41及び、SACKの値が重複したパケット数をカウントする重複SACKカウンタ(sack.dup)42を有する。
 図15は、第3の実施例の廃棄検出部13が実行する処理のフローチャートである。
 廃棄検出部13は、繰り返し(例えば、所定時刻ごとに)受信端末2における記憶容量の不足が発生していないか調べる。このため、現在時刻と基準時刻との差が、所定のインターバル以上であるかを判定する(300)。
 その結果、時刻差が所定のインターバル以上である場合、基準時刻を現在時刻に更新して(301)、カウンタの値を取得し(302)、sack.dup/sndを計算し、計算されたsack.dup/sndと所定の閾値とを比較する(303)。
 その結果、計算されたsack.dup/sndが所定の閾値より大きければ(303でYES)、受信端末2で記憶容量の不足が発生したと判定して、優先度設定部14へ通知する(304)。
 現在時刻と基準時刻との差が所定のインターバル未満であれば(303でNO)、ACK又はSACK付きのACKパケットを受信したかを判定する(307)。これによって、ACK受信時のみ処理を実行することができる。ACK又はSACK付きのACKパケットを受信すると(307でYES)、再送管理テーブル15を参照し(308)、新たなACK又はSACKを受信したかを判定する(309)。
 その結果、新たなACK又はSACKを受信した箇所があれば(309でYES)、受信したACK及びSACKを再送管理テーブル15に格納し(310)、新たなSACK情報を記憶部17に書き込む(311)。一方、新たなACK又はSACKを受信した箇所がなければ(309でNO)、記憶部17に格納された重複SACKカウンタ(sack.dup)42を1だけカウントアップする(312)。
 最後に、送信すべきパケットがあれば、当該パケットを送信し(305)、送信パケット数カウンタ(snd)41を1だけカウントアップする(306)。
 第3の実施例の方法は、第1の実施例のみではなく、第2の実施例の方法とも組み合わせることができる。
 以上に説明したように、第3の実施例では、送信パケットの数と確認応答パケットの数との比が所定の閾値以上である場合、廃棄箇所の記憶容量の不足を検出する。このため、受信端末2が誤って同じSACKが返信した場合でも、廃棄箇所の記憶容量の不足を誤検出する可能性を低くすることができる。
 <実施例4>
 本発明の第4の実施例では、記憶容量の不足を事前に検出する方法を示す。
 第1及び第3の実施例では、受信端末2での廃棄箇所記憶容量の不足が生じてから再送優先度を設定する。そのため、記憶容量の不足が解消するまでに送信された新規パケットは、受信側に届くにもかかわらず破棄される。そこで、第4の実施例では、廃棄箇所記憶容量の不足を事前に検出し、容量が不足しそうな場合には予め再送優先度を設定する。
 第4の実施例において、前述した実施例との相違点のみを説明し、第1から第3の実施例と同じ構成及び処理については同じ符号を付し、それらの説明は省略する。
 受信端末2の廃棄箇所記憶容量の不足を検出するため、廃棄検出部13は再送管理テーブル15のエントリ数を監視する。エントリ数が所定値を超えれば、記憶容量の不足が近いと判定し、優先度設定部14に記憶容量不足を通知する。他の機能及び処理は、前述した他の実施例と同じである。
 図16は、第4の実施例の廃棄検出部13が実行する処理のフローチャートである。
 廃棄検出部13は、再送管理テーブル15のエントリ数を監視する(400)。そして、再送管理テーブル15のエントリ数が所定の閾値以上であれば、優先度設定部14へ通知する(401)。一方、再送管理テーブル15のエントリ数が所定の閾値より小さければ、ACK(又は、SACK)を受信した場合(402)、再送管理テーブル15に記憶する(403)。
 第4の実施例の方法は、第1から第3の実施例のいずれとも組み合わせることができる。
 以上に説明したように、第4の実施例では、再送管理テーブル15のエントリ数が所定の閾値以上である場合、廃棄箇所の記憶容量が不足することを予測するので、実際に記憶容量が不足する前に、記憶容量を削減することができ、データ転送のスループットの低下を抑制することができる。
 <実施例5>
 本発明の第5の実施例は、独自TCP機能6を実装できない場合の例である。
 第1から第4の実施例では、送信端末61が独自TCP機能6を実装する。しかし、送信端末61に独自TCP機能6を実装できない場合、図17に示すように送信端末61と同一のLocal Area Network (LAN)54内に独自TCP機能6を有するプロキシ装置50を設置することができる。
 第5の実施例において、前述した実施例との相違点のみを説明し、第1から第4の実施例と同じ構成及び処理については同じ符号を付し、それらの説明は省略する。
 図17は、第5の実施例のシステムの構成を示す図であり、図18は、第5の実施例のプロキシ装置50の機能ブロック図である。
 第1の実施例のシステムは、送信端末61、プロキシ装置50、WAN3及び受信端末2を含む。
 プロキシ装置50は、少なくともネットワークインターフェース(NIF)5及び51、主記憶71、補助記憶装置68、プロセッサ69、及びそれらの装置を相互に接続しデータを転送するシステムバス70を有する計算機である。主記憶71は、プログラム及びデータを一時的に格納する。補助記憶装置68は、プログラム及びデータを格納する。プロセッサ69は、主記憶71に格納されたプログラムを実行する。
 主記憶71は、独自TCP機能6のためのプログラム、一般TCP機能52のためのプログラム、プロキシ53のためのプログラムなどを格納する。
 ネットワークインターフェース51は、送信端末61と接続するためにLAN54用のインターフェースである。
 補助記憶装置68は、例えば、フラッシュメモリ、磁気記憶装置等の不揮発性の記憶装置であり、プロセッサ69が実行するプログラム及びプログラム実行時に使用されるデータを格納する。すなわち、プロセッサ69が実行するプログラムは、補助記憶装置68から読み出されて、主記憶71にロードされて、プロセッサ69によって実行される。
 プロセッサ69は、所定のプログラムを実行する。これによって、独自TCP機能6は送信端末61から送信された送信データを制御する。独自TCP機能6は送信データをネットワークインターフェース5に送り、ネットワークインターフェース5がWAN3に送信データを送信する。
 独自TCP機能6は、前述したいずれかの実施例による再送制御を行って、パケットを転送する。独自TCP機能6の構成は、例えば、図2を用いて第1の実施例において前述したとおりである。
 図18に示すように、一般TCP機能52は、LAN側受信部55、LAN側送信部56、LAN側受信バッファ57、LAN側送信バッファ58及びLAN側制御部59を有する。LAN側制御部59は、通常のTCPプロトコルに従って、パケットを転送する。
 プロキシ53は、独自TCP機能6と一般TCP機能52との間でデータを交換する。
 なお、図17では、独自TCP機能6及び一般TCP機能52の全てをソフトウェアで構成した例を示したが、独自TCP機能6及び一般TCP機能52の一部又は全てをロジック回路による専用LSI又はネットワークインターフェース5に実装してもよい。
 プロセッサ69が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介してプロキシ装置50に提供され、非一時的記憶媒体である補助記憶装置68に格納される。このため、プロキシ装置50は、リムーバブルメディアを読み込むインターフェース(例えば、光ディスクドライブ、USBポートなど)を有するとよい。
 送信端末61は、少なくともネットワークインターフェース、主記憶装置、補助記憶装置、プロセッサ、及びそれらの装置を相互に接続しデータを転送するシステムバスを有する計算機である。主記憶装置は、プログラム及びデータを一時的に格納する。補助記憶装置は、プログラム及びデータを格納する。プロセッサは、主記憶装置に格納されたプログラムを実行する。
 主記憶装置は、アプリケーションプログラム、アプリケーションデータなどを格納する。
 補助記憶装置は、例えば、フラッシュメモリ、磁気記憶装置等の不揮発性の記憶装置であり、プロセッサが実行するプログラム及びプログラム実行時に使用されるデータを格納する。すなわち、プロセッサが実行するプログラムは、記憶装置から読み出されて、主記憶装置にロードされて、プロセッサによって実行される。
 プロセッサは、アプリケーションデータを用いてアプリケーションプログラムを実行する。プロセッサが実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介して送信端末61に提供され、非一時的記憶媒体である補助記憶装置33に格納される。このため、送信端末61は、リムーバブルメディアを読み込むインターフェース(例えば、光ディスクドライブ、USBポートなど)を有するとよい。
 第5の実施例は、前述した第2から第4の実施例と組み合わせることができる。すなわち、第1から第4の実施例においては、送信端末61に独自TCP機能6を実装したが、送信端末61に独自TCP機能6を実装せず、独自TCP機能6を実装したプロキシ装置50を用いる場合、各実施例と同様の独自TCP機能6を用いることによって、同様の効果が得られる。
 以上に説明したように、第5の実施例では、独自TCP機能6と一般TCP機能52との間でデータを交換するプロキシ機能を有するので、送信端末1に特別な実装をすることなく、データ転送のスループットを向上することができる。
 なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
 また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
 各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。

Claims (15)

  1.  ネットワークに接続される通信装置であって、
     前記ネットワークに接続された対向通信装置にデータを送信し、
     前記対向通信装置が送信した確認応答を受信し、
     送信されたデータが廃棄された箇所を記憶するための記憶容量が、前記対向通信装置において不足しているかを監視し、
     前記記憶容量が不足している場合、廃棄箇所に再送の優先度を設定してデータを再送することを特徴とする通信装置。
  2.  請求項1に記載の通信装置であって、
     前記ネットワークを介して前記対向通信装置にパケットを送信する送信部と、
     前記ネットワークを介して前記対向通信装置から選択的確認応答及び確認応答の情報を含む確認応答パケットを受信する受信部と、
     前記受信した確認応答パケットから特定された再送すべき箇所を記憶するための再送管理テーブルと、
     前記受信した確認応答パケットから、前記対向通信装置において前記記憶容量が不足していることを検出する検出部と、
     前記検出部が前記対向通信装置において前記記憶容量の不足を検出した場合に再送すべきパケットを含む廃棄箇所に優先度を設定する優先度設定部と、
     前記設定された優先度に従って、廃棄されたパケットを再送する再送部と、を備えることを特徴とする通信装置。
  3.  請求項2に記載の通信装置であって、
     前記優先度設定部は、再送すべきパケットの数が少ない廃棄箇所に高い優先度を設定することを特徴とする通信装置。
  4.  請求項3に記載の通信装置であって、
     前記優先度設定部は、
     再送すべきパケットの数が1である廃棄箇所の優先度を高く設定し、
     再送すべきパケットの数が2以上である廃棄箇所の優先度を0に設定することを特徴とする通信装置。
  5.  請求項3に記載の通信装置であって、
     前記優先度設定部は、再送すべきパケットの数が少なく、かつ、シーケンス番号が小さいパケットを含む廃棄箇所に高い優先度を設定することを特徴とする通信装置。
  6.  請求項5に記載の通信装置であって、
     前記優先度設定部は、
     前記再送管理テーブルのエントリを示すポインタ、前記エントリのパケット数及び優先度を含む一時テーブルを生成し、
     前記一時テーブル上で、前記パケット数の順に優先度を設定し、
     前記設定された優先度を前記再送管理テーブルに書き戻すことを特徴とする通信装置。
  7.  請求項2から6のいずれか一つに記載の通信装置であって、
     前記検出部は、連続する確認応答パケットにおいて前記選択的確認応答及び前記確認応答の情報がすべて一致している場合、前記対向通信装置において前記記憶容量が不足していることを検出することを特徴とする通信装置。
  8.  請求項2から6のいずれか一つに記載の通信装置であって、
     送信したパケットの数を計数する第1のカウンタと、
     前記選択的確認応答及び前記確認応答の情報がすべて一致している確認応答パケットの数を計数する第2のカウンタと、を有し、
     前記検出部は、前記第1のカウンタで計数された送信パケットの数と、前記第2のカウンタで計数された確認応答パケットの数との比が所定の閾値以上である場合、前記対向通信装置において前記記憶容量が不足していることを検出することを特徴とする通信装置。
  9.  請求項2から6のいずれか一つに記載の通信装置であって、
     前記検出部は、前記再送管理テーブルのエントリ数が所定の閾値以上である場合、前記対向通信装置において前記記憶容量が不足することを予測し、
     前記優先度設定部は、前記記憶容量が不足することが予測された場合、再送すべきパケットに優先度を設定することを特徴とする通信装置。
  10.  請求項2に記載の通信装置であって、
     一般的な通信方式を用いる他の通信装置との通信を制御する一般通信機能と、
     前記設定された優先度に従ってパケットを再送する通信機能との間でデータの交換を行うプロキシ機能と、を備えることを特徴とする通信装置。
  11.  ネットワークに接続された通信装置間でパケットを転送する方法であって、
     第1の通信装置が、前記ネットワークを介して対向する第2の通信装置から選択的確認応答及び確認応答の情報を含む確認応答パケットを受信し、
     前記第1の通信装置が、前記受信した確認応答パケットから特定された再送すべき箇所を再送管理テーブルに記憶し、
     前記第1の通信装置が、前記受信した確認応答パケットから、前記第2の通信装置において送信されたデータが廃棄された箇所を記憶するための記憶容量が不足していることを検出し、
     前記第1の通信装置が、前記第2の通信装置において前記記憶容量の不足を検出した場合に再送すべきパケットを含む廃棄箇所に優先度を設定し、
     前記第1の通信装置が、前記設定された優先度に従って、廃棄された再送パケットの送信順序を制御するパケット転送方法。
  12.  請求項11に記載の方法であって、
     前記第1の通信装置が、再送すべきパケットの数が少ない廃棄箇所に高い優先的を設定し、前記設定された優先度に従ってパケットを再送することを特徴とするパケット転送方法。
  13.  請求項12に記載の方法であって、
     前記第1の通信装置が、再送すべきパケットの数が1である廃棄箇所の優先度を高く設定し、再送すべきパケットの数が2以上である廃棄箇所の優先度を0に設定し、
     前記第1の通信装置が、前記設定された優先度に基づいて、前記再送すべきパケット数が1である廃棄箇所のパケットを優先的に再送することを特徴とするパケット転送方法。
  14.  請求項12に記載の方法であって、
     前記第1の通信装置が、前記廃棄箇所のうち再送すべきパケット数が少なく、かつ、シーケンス番号が小さいものから優先度を高く設定することを特徴とするパケット転送方法。
  15.  請求項14に記載の方法であって、
     前記第1の通信装置が、前記再送管理テーブルのエントリを示すポインタ、前記エントリのパケット数及び優先度を含む一時テーブルを生成し、
     前記第1の通信装置が、前記一時テーブル上で、前記パケット数の順に優先度を設定し、
     前記第1の通信装置が、前記設定された優先度を前記再送管理テーブルに書き戻すことを特徴とするパケット転送方法。
PCT/JP2013/081250 2013-01-30 2013-11-20 通信装置及びパケット転送方法 WO2014119094A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/650,438 US9450706B2 (en) 2013-01-30 2013-11-20 Communication apparatus and packet transfer method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-015245 2013-01-30
JP2013015245A JP5636574B2 (ja) 2013-01-30 2013-01-30 通信装置、パケット転送方法及びそのプログラム

Publications (1)

Publication Number Publication Date
WO2014119094A1 true WO2014119094A1 (ja) 2014-08-07

Family

ID=51261826

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/081250 WO2014119094A1 (ja) 2013-01-30 2013-11-20 通信装置及びパケット転送方法

Country Status (3)

Country Link
US (1) US9450706B2 (ja)
JP (1) JP5636574B2 (ja)
WO (1) WO2014119094A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5636574B2 (ja) 2013-01-30 2014-12-10 株式会社日立製作所 通信装置、パケット転送方法及びそのプログラム
US11102273B2 (en) * 2015-05-13 2021-08-24 Cisco Technology, Inc. Uplink performance management
CN112148654A (zh) * 2019-06-27 2020-12-29 凌阳科技股份有限公司 调整时钟信号的时钟沿的方法及电路

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005006340A (ja) * 2003-06-13 2005-01-06 Microsoft Corp ネットワーク通信のための時間指向、ベストエフォート的、穴埋め型再試行方法およびシステム
JP2010213150A (ja) * 2009-03-12 2010-09-24 Nec Corp 送信装置、大容量ファイル配信システム、同システムにおけるファィル再送制御方法、再送制御プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102187626B (zh) * 2009-07-22 2014-06-04 松下电器产业株式会社 通信方法
EP2642702B1 (en) 2010-11-16 2019-04-03 Hitachi, Ltd. Communication apparatus and communication system
JP5636574B2 (ja) 2013-01-30 2014-12-10 株式会社日立製作所 通信装置、パケット転送方法及びそのプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005006340A (ja) * 2003-06-13 2005-01-06 Microsoft Corp ネットワーク通信のための時間指向、ベストエフォート的、穴埋め型再試行方法およびシステム
JP2010213150A (ja) * 2009-03-12 2010-09-24 Nec Corp 送信装置、大容量ファイル配信システム、同システムにおけるファィル再送制御方法、再送制御プログラム

Also Published As

Publication number Publication date
US20150318958A1 (en) 2015-11-05
JP2014147011A (ja) 2014-08-14
US9450706B2 (en) 2016-09-20
JP5636574B2 (ja) 2014-12-10

Similar Documents

Publication Publication Date Title
CN111512603B (zh) 一种数据传输方法及第一设备
US11272420B2 (en) Method and apparatus for transmitting data packets using dual sequence numbers
US10425344B2 (en) Avoiding dropped data packets on a network transmission
US11799790B2 (en) Data transmission method, computing device, network device, and data transmission system
US9503383B2 (en) Flow control for reliable message passing
US10430374B2 (en) Selective acknowledgement of RDMA packets
CN115941616A (zh) 多路径rdma传输
US9577791B2 (en) Notification by network element of packet drops
US10133687B2 (en) Communication apparatus and data processing method
US6996105B1 (en) Method for processing data packet headers
US20230156102A1 (en) Packet processing method, network device, and related device
JP5636574B2 (ja) 通信装置、パケット転送方法及びそのプログラム
JP2014147011A5 (ja)
CN113852445A (zh) 一种提高数据传输可靠性的方法、系统、设备和存储介质
JP2014236453A (ja) 情報処理装置、情報処理システム及び情報処理システムの制御方法
US20120063463A1 (en) Packet aligning apparatus and packet aligning method
JP2007235674A (ja) 通信装置および通信方法
US20240146806A1 (en) Intermediate apparatus, communication method, and program
EP2916234A2 (en) Method and universal interface chip for achieving high-speed data transmission
US8854957B2 (en) Packet retransmission control system, packet retransmission control method and retransmission control program
KR20140125311A (ko) 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법
CN116260887A (zh) 数据传输方法、数据发送装置、数据接收装置和存储介质
CN117560304B (zh) 一种网络状态监测方法、系统、设备和介质
JP3148733B2 (ja) 信号処理装置及び信号処理システム
US20230224084A1 (en) Packet Retransmission Method and Apparatus

Legal Events

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

Ref document number: 13873878

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14650438

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13873878

Country of ref document: EP

Kind code of ref document: A1