WO2012131806A1 - Système de contrôle de retransmission et procédé de contrôle de retransmission - Google Patents

Système de contrôle de retransmission et procédé de contrôle de retransmission Download PDF

Info

Publication number
WO2012131806A1
WO2012131806A1 PCT/JP2011/005076 JP2011005076W WO2012131806A1 WO 2012131806 A1 WO2012131806 A1 WO 2012131806A1 JP 2011005076 W JP2011005076 W JP 2011005076W WO 2012131806 A1 WO2012131806 A1 WO 2012131806A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
transfer
data
retransmission
instruction
Prior art date
Application number
PCT/JP2011/005076
Other languages
English (en)
Inventor
Akira Tsuji
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Priority to JP2013516870A priority Critical patent/JP5880551B2/ja
Publication of WO2012131806A1 publication Critical patent/WO2012131806A1/fr

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/1867Arrangements specially adapted for the transmitter end
    • 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/12Protocol engines
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC

Definitions

  • the present invention relates to packet retransmission control by a network interface.
  • a packet in transmission may be discarded or disrupted.
  • the packet loss due to the discarding or disrupting is sensed by a protocol operating in an application layer or a transport layer. Then, on the basis of control by the protocol, retransmission of the lost packet is performed to ensure completeness of the transmission data.
  • a transmission device transmits a packet to a reception device, and upon receipt of the packet, the reception device sends an acknowledgement (ACK: ACKnowledgement) packet back to the transmission device.
  • ACK acknowledgement
  • the transmission device recognizes that the transmitted packet has reached the reception device without any trouble.
  • the transmission device fails to receive an ACK packet responding to the packet.
  • the transmission device fails to receive the ACK packet within a predetermined waiting time after packet transmission, it retransmits the packet to the reception device.
  • the transmission device that performs such packet retransmission control is provided with a memory region for temporarily storing a transmitted packet until it receives the corresponding ACK packet.
  • the memory region is hereinafter referred to as a "retransmission buffer”.
  • the TCP (Transmission Control Protocol) used in the Internet is a typical transport layer protocol that performs such the packet retransmission control.
  • R2D2 Rapid and Reliable Data Delivery
  • NIC network interface card
  • PC Personal Computer
  • Patent Literature 1 Japanese Patent Publication JP-2004-128786 discloses a packet retransmission control device.
  • the packet retransmission control device has a CPU, an I/O bus bridge, a memory and a network interface.
  • a retransmission data is stored in the memory in a packet format, namely, in a state where a header and the like are appended thereto.
  • the packet retransmission control device transfers a packet to a network in accordance with a transmission request that includes a pointer to the packet on the memory.
  • the I/O bus bridge is provided with a DMA engine, a transmission request queue and a retransmission FIFO.
  • a transmission request for the retransmission packet (already-transferred packet) is stored in the retransmission FIFO.
  • Patent Literature 2 Japanese Patent Publication JP-2005-192216 discloses an offload engine system.
  • the system is provided with a system memory and an offload engine communicating with a network.
  • the offload engine manages retransmission of data that is transmitted in the network. More specifically, the offload engine communicates with a processor and performs the following retransmission processing.
  • the offload engine identifies a retransmission data, retrieves the retransmission data from the system memory and retransmits the retrieved retransmission data.
  • Patent Literature 3 Japanese Patent Publication JP-2004-007354 discloses a data transfer device. According to the technique, a data that an application retains in a user space of a memory is directly transmitted and received by a computer without through an OS space managed by an OS.
  • Patent Literature 4 Japanese Patent Publication JP-2008-158917 discloses an inter-node transfer control device.
  • the inter-node transfer control device has: a data transfer unit that executes data transfer between nodes; and a transfer control unit that controls the data transfer.
  • the transfer control unit receives from a CPU a first transfer route ensuring request indicating a request to ensure a data transfer route in the data transfer and outputs it to an inter-node connection device that executes the ensuring.
  • the transfer control unit instructs the data transfer based on a transfer route ensuring completion notification indicating completion of the ensuring received from the inter-node connection device and a second transfer route ensuring request output by the CPU during the execution of the ensuring and after execution of another processing in the data transfer. Based on the instruction, the data transfer unit executes the data transfer.
  • NIC network interface
  • a fast retransmission control function that performs the retransmission control faster than the TCP.
  • a problem occurs in relation to placement of a memory for use as a retransmission buffer. The reason is that, although a larger amount of memory is required for the retransmission buffer as a network becomes faster, it is not realistic to install a large amount of memory in the NIC whose card size and power consumption are limited.
  • a server or a PC (hereinafter referred to as a host side) has relatively plenty of memory region. It is therefore considered to perform the fast retransmission control by utilizing a memory on the host. However, even in that case, it is desired to suppress load imposed on the host side as much as possible.
  • An object of the present invention is to provide a fast retransmission control technique that does not require a large amount of memory in an NIC and can suppress load imposed on a host side.
  • a retransmission control system has: a memory in which a transfer data is stored; and a network interface.
  • the network interface has: a packet processing unit configured to generate a transfer packet including the transfer data; and a DMA controller configured to read out the transfer data from the memory.
  • the packet processing unit obtains a packet header of the transfer packet and generates the transfer packet by appending the obtained packet header to the transfer data read out by the DMA controller.
  • a retransmission control method in a network interface is provided.
  • a transfer data is stored in a memory that is provided separately from the network interface.
  • the network interface has a DMA controller configured to read out the transfer data from the memory.
  • the retransmission control method according to the present invention includes: (A) obtaining a packet header of a transfer packet in response to a data transfer instruction that instructs first-time transfer or retransmission of the transfer data; (B) reading out, by the DMA controller, the transfer data from the memory; and (C) generating the transfer packet by appending the obtained packet header to the transfer data read out by the DMA controller.
  • the fast retransmission control technique according to the present invention does not require a large amount of memory in an NIC and can suppress load imposed on a host side.
  • Fig. 1 is a block diagram showing a configuration of a retransmission control system according to a first exemplary embodiment of the present invention.
  • Fig. 2 is a sequence diagram schematically showing packet transmission processing in the exemplary embodiment of the present invention.
  • Fig. 3 is a sequence diagram showing first-time packet transmission processing in the exemplary embodiment of the present invention.
  • Fig. 4 is a sequence diagram showing packet retransmission processing in the exemplary embodiment of the present invention.
  • Fig. 5A is a sequence diagram showing the packet transmission processing shown in Figs. 3 and 4 in an integrative manner.
  • Fig. 5B is a sequence diagram showing the packet transmission processing shown in Figs. 3 and 4 in an integrative manner.
  • Fig. 1 is a block diagram showing a configuration of a retransmission control system according to a first exemplary embodiment of the present invention.
  • Fig. 2 is a sequence diagram schematically showing packet transmission processing in the exemplary embodiment of the present invention.
  • Fig. 3 is
  • FIG. 6 is a sequence diagram showing ACK packet reception processing in the exemplary embodiment of the present invention.
  • Fig. 7 is a sequence diagram showing data packet reception processing in the exemplary embodiment of the present invention.
  • Fig. 8 is a sequence diagram showing packet reception processing shown in Figs. 6 and 7 in an integrative manner.
  • Fig. 9 is a block diagram showing a configuration of a retransmission control system according to a second exemplary embodiment of the present invention.
  • Fig. 10 is a block diagram showing a configuration of a retransmission control system according to a third exemplary embodiment of the present invention.
  • Fig. 11 is a sequence diagram for explaining packet transmission processing in the third exemplary embodiment.
  • Configuration Fig. 1 is a block diagram showing a configuration of a retransmission control system 1 according to a first exemplary embodiment of the present invention.
  • the retransmission control system 1 has a memory 2, a network interface 3, a CPU 4 and a host bus 5 interconnecting them.
  • a transfer data (including a retransmission data) is stored in the memory 2. More specifically, a retransmission buffer 201 is set aside in the memory 2.
  • the retransmission buffer 201 may be set aside as a buffer for storing only the retransmission data separately from the transfer data. This corresponds to a case where a memory space is different between a user and an OS (kernel) as in a recent OS and, when the user performs a communication and a data needs to be copied to a memory region of the kernel, the copy destination is used as the retransmission buffer.
  • a memory region in which a transfer data is stored may be locked as the retransmission buffer 201.
  • changing of data contents and hard disk swap-out of the data such as supported by a recent OS are prohibited until data transfer completion is notified from the network interface 3.
  • the CPU 4 unlocks the region in the retransmission buffer 201. After the unlocking, changing and hard disk swap-out of the data in the memory region become available.
  • This method corresponds to a case where communication is performed without the kernel, as in a user-level communication.
  • the host bus 5 is a bus for interconnecting at least the CPU 4, the memory 2 and the network interface 3.
  • the network interface 3 has a host bus interface 301, an instruction queue 303, an instruction issuing unit 305, a timer 307, a retransmission instruction queue 309, a packet processing unit 311, a DMA (Direct Memory Access) controller 313, a packet header acquisition table 315, a packet transmission unit 319, a packet reception unit 321 and an operation setting register 323.
  • a host bus interface 301 an instruction queue 303, an instruction issuing unit 305, a timer 307, a retransmission instruction queue 309, a packet processing unit 311, a DMA (Direct Memory Access) controller 313, a packet header acquisition table 315, a packet transmission unit 319, a packet reception unit 321 and an operation setting register 323.
  • DMA Direct Memory Access
  • the host bus interface 301 performs data transmission/reception with the CPU 4 and the memory 2 through the host bus 5 according to a data transfer protocol depending on the host bus 5.
  • a data transfer protocol depending on the host bus 5 means signal transmission/reception procedure, timing, format and the like complying with the PCI-Express standards.
  • the operation setting register 323 is a region for setting parameters necessary for an operation of the network interface 3.
  • the operation setting register 323 has at least a region for setting an upper limit number of retransmission times (i.e. an upper limit number of times of retransmitting the same data) and a region for setting a retransmission interval (i.e. an interval of the retransmission).
  • the instruction queue 303 is a queue for storing a data transfer instruction that is issued by the CPU 4 and instructs transfer of a transfer data.
  • the data transfer instruction includes at least a start address in the memory 2, a data transfer size indicating how much data from the address is to be transferred, and a destination host address.
  • the destination host address is as follows. For example, in a case where the network identifies a host by IP, an IP address of a communication partner is used as the destination host address. In a case where the network interface 3 of the destination host supports RDMA (Remote Direct Memory Access), a transfer destination address indicating a region in the memory 2 of the destination host may be used combined with the IP address.
  • RDMA Remote Direct Memory Access
  • the retransmission instruction queue 309 is a queue for storing a data transfer instruction that instructs data retransmission. More specifically, an instruction read out from the instruction queue 303 by the instruction issuing unit 305 is stored as the retransmission instruction in the retransmission instruction queue 309. Moreover, in the retransmission processing, an instruction read out from the retransmission instruction queue 309 by the instruction issuing unit 305 is written again as the retransmission instruction. The instruction stored in the retransmission instruction queue 309 is deleted in response to reception of an ACK packet from the destination host of the packet transferred by the said instruction. Also, if the number of retransmission times reaches the upper limit number of retransmission times set in the operation setting register 323, the instruction issuing unit 305 does not write the instruction back to the retransmission instruction queue 309.
  • the timer 307 is used for counting time.
  • the timer 307 retains a time passed after the retransmission control system 1 is started.
  • the timer 307 may count the number of On/Off switches of its own synchronization signal. In either case, it is required that the granularity of time counting is finer than the desired retransmission interval.
  • a time is installed as a clock counter.
  • the instruction issuing unit 305 When a data transfer instruction that should be issued exists in the instruction queue 303 or the retransmission instruction queue 309, the instruction issuing unit 305 reads out the data transfer instruction from the instruction queue and forwards the read out data transfer instruction to the packet processing unit 311. Moreover, if the number of execution times of the data transfer instruction is less than the upper limit number of retransmission times, the instruction issuing unit 305 writes the said data transfer instruction in the retransmission instruction queue 309.
  • the instruction issuing unit 305 reads out an instruction from the instruction queue 303 or the retransmission instruction queue 309 and forwards the instruction to the packet processing unit 311, the instruction issuing unit 305 obtains the time from the timer 307. Then, when writing the instruction in the retransmission instruction queue 309, the instruction issuing unit 305 concurrently writes the obtained time and the number of execution times of the said instruction. Therefore, the retransmission instruction queue 309 requires not only a region for writing the instruction itself but also a region for recording the last time the instruction is executed and the number of execution times. Alternatively, a memory region for recording the information may be provided on the network interface 3, and the information may be managed by associating it with the instruction stored in the retransmission instruction queue 309. If it is hard to uniquely identify an instruction by only using information included in the instruction, information for uniquely identifying the instruction such as an instruction sequence number may be added to the instruction and then the instruction is written in the retransmission instruction queue 309.
  • the instruction issuing unit 305 checks the time associated with the retransmission instruction stored in the retransmission instruction queue 309 and makes a comparison between the time and the current time indicated by the timer 307. If it is found as a result of the comparison that a time more than the retransmission interval set in the operation setting register 323 has passed, the instruction issuing unit 305 reads out the said retransmission instruction from the retransmission instruction queue 309 and forwards the read out retransmission instruction to the packet processing unit 311. When writing again the retransmission instruction in the retransmission instruction queue 309, the instruction issuing unit 305 concurrently writes a time newly obtained from the timer 307.
  • the instruction issuing unit 305 may store the retransmission instructions in the retransmission instruction queue 309 in a time series order of forwarding of the instruction to the packet processing unit 311. In this case, the instruction issuing unit 305 can determine whether or not an instruction beyond the retransmission interval exists by just checking the retransmission instruction at the head of the retransmission instruction queue 309. When the retransmission interval is variable depending on weight such as priority of the data transfer instruction, it is possible that the retransmission instruction queue 309 is divided for each weight and the instructions are stored in each retransmission instruction queue 309 in a time series order. In a case of a single retransmission instruction queue 309, the instruction issuing unit 305 can also determine whether or not an instruction beyond the retransmission interval exists by checking all the retransmission instructions stored in the retransmission instruction queue 309.
  • the packet transmission unit 319 is a functional block that forwards a packet generated by the packet processing unit 311 to the network.
  • the packet reception unit 321 is a functional block that forward a packet received from the network to the packet processing unit 311.
  • the DMA controller 313 performs direct transmission/reception of data to/from the memory 2.
  • the DMA controller 313 is able to read out the transfer data from the memory 2. Also, the DMA controller 313 is able to write the received data to the memory 2.
  • the first processing by the packet processing unit 311 is construction (generation) of a transfer packet. That is, the packet processing unit 311 constructs (generates) a transfer packet including the transfer data in accordance with the data transfer instruction received from the instruction issuing unit 305 and forwards the transfer packet to the packet transmission unit 319.
  • the packet processing unit 311 When constructing a packet, the packet processing unit 311 refers to the start address and the data transfer size included in the data transfer instruction to issue a data read instruction to the DMA controller 313. This enables the packet processing unit 311 to read out the transfer data from the memory 2 through the DMA controller 313. Also, the packet processing unit 311 generates a packet header depending on the data transfer size, the destination host address and the network protocol used. Then, the packet processing unit 311 appends the packet header to the transfer data read out through the DMA controller 313 to construct (generate) the transfer packet.
  • the packet header depending on the network protocol usually includes information such as the destination host address, a source host address and the packet size and also information depending on the network protocol. Detailed information of them can be obtained by referring to each network protocol standard.
  • the packet header includes a flag indicating that the packet is applied to the retransmission control mechanism of the present exemplary embodiment. If the network interface of the reception-side host is provided with the retransmission control mechanism of the present exemplary embodiment, it checks the flag to transmit a data reception notification to the transmission source host. Even if the network interface of the reception-side host does not support the retransmission control mechanism of the present exemplary embodiment, infinite retransmission of the same data can be prevented from occurring because the upper limit is set on the number of retransmission times. If it is hard to uniquely identify the packet by only using the information of the packet header, a packet sequence number managed by the retransmission control mechanism may be added to the packet in order that the retransmission control mechanism can uniquely identify the packet.
  • the information such as the flag and the packet sequence number added for the retransmission control mechanism can be stored in an unused field in the protocol header defined by the conventional network protocol or a newly-added field.
  • the packet sequence number may be the same as the above-mentioned instruction sequence number, if the packet corresponds one-to-one with the data transfer instruction. If a plurality of packets correspond to one data transfer instruction, it is possible to uniquely identify the packet by using different packet sequence number systems.
  • the packet processing unit 311 stores the packet header in the packet header acquisition table 315.
  • a storage location address of the packet header in the packet header acquisition table 315 is generated by using information for uniquely identifying the packet.
  • the information for uniquely identifying the packet is exemplified by a value of a specific field in the packet header generated from the data transfer instruction.
  • a hash value may be generated by using a part of or all of information of the packet header and the hash value may be used.
  • the second processing by the packet processing unit 311 is to treat a received packet that the packet reception unit 321 has received from the network.
  • the processing by the packet processing unit 311 differs depending on a type of the received packet.
  • the received packet is an ACK packet notifying that the destination host has received a packet transmitted by the source host.
  • the ACK packet includes at least the information for uniquely identifying the transfer packet transmitted by the source host and corresponding to the ACK packet. For example, the destination host address and the source host address included in the packet header of the transfer packet transmitted by the source host are exchanged, and further a flag indicating that the packet is the ACK packet is stored in a certain field in the packet header.
  • the packet processing unit 311 When receiving the ACK packet, the packet processing unit 311 deletes the packet header of the transfer packet corresponding to the ACK packet from the packet header acquisition table 315. Moreover, the packet processing unit 311 notifies the instruction issuing unit 305 of the reception of the ACK packet together with the information for uniquely identifying the transmission packet. In response to the notification, the instruction issuing unit 305 deletes the corresponding retransmission instruction from the retransmission instruction queue. Furthermore, the packet processing unit 311 sends to the CPU 4 a notification for unlocking a region in the retransmission buffer 201 associated with the data transfer instruction corresponding to the ACK packet.
  • the packet processing unit 311 analyzes the packet header of the received packet to obtain a reception destination address of the data and forwards the said data to the memory 2 or the CPU 4 by using the DMA controller 313. Moreover, if the flag indicating that the received packet has been transmitted from the network interface provided with the retransmission control mechanism of the present exemplary embodiment is set, the packet processing unit 311 generates an ACK packet responding to the received packet and transmits the generated ACK packet to the packet transmission unit 319.
  • the packet header acquisition table 315 is a memory region for storing the packet headers. Each packet header is accessible by using the information for uniquely identifying the packet as an access address.
  • a hash table is one of examples for achieving the access address for uniquely identifying the packet. More specifically, a hash value is calculated by using information of the data transfer instruction and the generated packet header, and the table can be accessed by using the hash value as a key. In this case, the network interface 3 requires a function of calculating the hash value. It is preferable to select information such that the address can be generated from both of the packet header and the data transfer instruction.
  • the retransmission control mechanism according to the present exemplary embodiment is not necessarily required to be always activated.
  • the retransmission control mechanism according to the present exemplary embodiment may be switched On/Off by the use of the operation setting register 323 and the like.
  • Packet transmission Fig. 2 is a sequence diagram schematically showing packet transmission processing in the present exemplary embodiment.
  • the CPU 4 issues a data transfer instruction to the network interface 3, and the network interface 3 transmits a transfer data stored in the memory 2 to the network.
  • the CPU 4 locks a memory region in the memory 2 in which the transfer data is stored (Step S40 in Fig. 2).
  • the CPU 4 issues a data transfer instruction to the network interface 3 (Step S41 in Fig. 2).
  • the data transfer instruction includes information of at least identification information of the transfer destination host, the data transfer size and the data transfer source.
  • the network interface 3 refers to the data transfer instruction to read out data from the memory 2 (Step S31 in Fig. 2). After that, the network interface 3 obtains a packet header based on the data transfer instruction, generates a transfer packet by combining the packet header and the data, and transmits the generated packet to the network (Step S33 in Fig. 2).
  • Fig. 3 is a sequence diagram showing first-time packet transmission processing with regard to a transfer packet, and shows in detail contents of the Steps S31 to S33 in Fig. 2.
  • the instruction issuing unit 305 reads out the data transfer instruction instructing first-time transfer of the transfer data from the instruction queue 303 (Step S3051 in Fig. 3).
  • the instruction issuing unit 305 issues the said instruction to the packet processing unit 311 (Step S3052 in Fig. 3).
  • the instruction issuing unit 305 obtains a time from the timer 307, and writes the obtained time together with the said instruction in the retransmission instruction queue 309 (Step S3053 in Fig. 3).
  • the packet processing unit 311 interprets the instruction received from the instruction issuing unit 305 (Step S3111 in Fig. 3). By interpreting the instruction, the packet processing unit 311 obtains information on at least an address of a storage location of the transfer data, an identifier of the transmission destination host and the transfer data size.
  • the packet processing unit 311 issues a data read request to the DMA controller 313, based on the address of the storage location of the transfer data and the transfer data size (Step S3112 in Fig. 3).
  • the data read request is issued to read out the transfer data from the memory 2.
  • the packet processing unit 311 generates a packet header based on the data transfer instruction while the DMA controller 313 reads out the transfer data from the memory 2 (Step S3113 in Fig. 3).
  • the DMA controller 313 forwards the transfer data read out from the memory 2 to the packet processing unit 311 (Step S3131 in Fig. 3).
  • the packet processing unit 311 combines the transfer data read out by the DMA controller 313 and the packet header generated in the Step S3113 to construct a transfer packet. Then, the packet processing unit 311 outputs the generated packet to the packet transmission unit 319 (Step S3114 in Fig. 3).
  • the packet header may be constructed after the reception of the data from the DMA controller 313 or the packet header may be constructed before issuing the data read request to the DMA controller 313.
  • the packet processing unit 311 generates information for uniquely identifying the packet and generates a storage location address in the packet header acquisition table 315 (Step S3115 in Fig. 3).
  • the packet processing unit 311 uses the above-mentioned storage location address to store the packet header in the packet header acquisition table 315 (Step S3116 in Fig. 3).
  • Step S3114 and the Steps S3115 to S3116 are independent of each other and thus can be executed in parallel.
  • Fig. 4 is a sequence diagram showing packet retransmission processing in the present exemplary embodiment. It should be noted that an overlapping description of the same processing as that shown in Fig. 3 will be omitted as appropriate.
  • the instruction issuing unit 305 compares the last execution time of a data transfer instruction (retransmission instruction) stored in the retransmission instruction queue 309 with the current time of the timer 307. If a difference between them exceeds the retransmission interval, the instruction issuing unit 305 reads out the retransmission instruction from the retransmission instruction queue 309 (Step S3054 in Fig. 4).
  • the instruction issuing unit 305 issues the retransmission instruction to the packet processing unit 311 (Step S3052 in Fig. 4).
  • the instruction issuing unit 305 writes again the retransmission instruction together with the time obtained in the Step S3054 from the timer 307 in the retransmission instruction queue 309 (Step S3056 in Fig. 4).
  • the packet processing unit 311 interprets the retransmission instruction received from the instruction issuing unit 305 (Step S3111 in Fig. 4) and sends a data read request to the DMA controller 313 (Step S3112 in Fig. 4).
  • the DMA controller 313 reads out the transfer data (retransmission data) from the retransmission buffer 201 corresponding to the data read request and forwards the data to the packet processing unit 311 (Step S3131 in Fig. 4).
  • the packet processing unit 311 generates an access address to the packet header acquisition table 315 based on the data transfer instruction (Step S3117 in Fig. 4).
  • the packet processing unit 311 accesses the packet header acquisition table 315 by using the access address to obtain the packet header (Step S3118 in Fig. 4). That is, in the case of the packet retransmission processing, the packet processing unit 311 reads out the packet header from the packet header acquisition table 315.
  • the packet processing unit 311 combines the transfer data read out by the DMA controller 313 and the packet header generated in the Step S3118 to construct a transfer packet. Then, the packet processing unit 311 outputs the generated packet to the packet transmission unit 319 (Step S3114 in Fig. 4).
  • Figs. 5A and 5B are a sequence diagram showing the packet transmission processing shown in Figs. 3 and 4 in an integrative manner.
  • the instruction issuing unit 305 determines whether or not a data transfer instruction is stored in the instruction queue 303 (Step F001 in Fig. 5A).
  • the instruction issuing unit 305 determines whether or not a retransmission instruction is stored in the retransmission instruction queue 309 (Step F003 in Fig. 5A).
  • Step F003 If no retransmission instruction is stored in the retransmission instruction queue 309 (Step F003; No in Fig. 5A), the procedure returns back to the Step F001.
  • the instruction issuing unit 305 determines whether or not there exists a retransmission instruction that satisfies a retransmission condition (Step F005 in Fig. 5A). More specifically, the instruction issuing unit 305 determines whether or not there exists an instruction that has not been executed for a period more than the retransmission interval among the retransmission instructions stored in the retransmission instruction queue 309.
  • Step F005 If there is no retransmission instruction that satisfies the retransmission condition (Step F005; No in Fig. 5A), the procedure returns back to Step F001.
  • the instruction issuing unit 305 obtains the current time from the timer 307 (Step F007 in Fig. 5A). Moreover, the instruction issuing unit 305 reads out the instruction from the instruction queue 303 or the retransmission instruction queue 309 (Step F009 in Fig. 5A).
  • the instruction issuing unit 305 may first check the retransmission instruction queue 309 and then check the instruction queue 303.
  • the instruction issuing unit 305 interprets the instruction read out (Step F011 in Fig. 5A). Moreover, the packet processing unit 311 uses the DMA controller 313 to read out the transfer data from the memory 2 (Step F013 in Fig. 5A).
  • the packet processing unit 311 generates information for uniquely identifying the packet and generates an access address to the packet header acquisition table 315 (Step F015 in Fig. 5B).
  • the packet processing unit 311 accesses the packet header acquisition table 315 by using the access address generated in the Step F015 to obtain a packet header (Step F021 in Fig. 5B).
  • the packet processing unit 311 constructs a packet header based on the said instruction (Step F019 in Fig. 5B).
  • the packet processing unit 311 appends the packet header to the transfer data to construct a transfer packet (Step F023 in Fig. 5B). Then, the network interface 3 transmits the transfer packet to the network.
  • the packet processing unit 311 determines whether or not the number of execution times of the retransmission instruction has reached the upper limit (Step F029 in Fig. 5B).
  • the packet processing unit 311 deletes the packet header from the packet header acquisition table 315 (Step F033 in Fig. 5B).
  • the packet processing unit 311 stores the executed instruction together with the time obtained in the Step F007 in the retransmission instruction queue 309 (Step F031 in Fig. 5B).
  • the packet processing unit 311 registers the packet header in the packet header acquisition table 315 (Step F027 in Fig. 5B). Then, the packet processing unit 311 stores the executed instruction together with the time obtained in the Step F007 in the retransmission instruction queue 309 (Step F031 in Fig. 5B).
  • Step F027 and the processing of the Steps F023 to F031 are independent of each other and thus the execution order thereof can be exchanged. Also, the processing of Step F007 and the processing of the Steps F009 to F031 are independent of each other and thus the execution order thereof can be exchanged.
  • Packet reception Fig. 6 is a sequence diagram showing ACK packet reception processing in the present exemplary embodiment.
  • the packet reception unit 321 when receiving a packet from the network, forwards the received packet to the packet processing unit 311 (Step S3211 in Fig. 6).
  • the packet processing unit 311 determines a type of the received packet received from the packet reception unit 321 (Step S3119 in Fig. 6).
  • the received packet is an ACK packet.
  • the packet processing unit 311 generates, from information included in the ACK packet, an access address to the packet header acquisition table 315 (Step S3120 in Fig. 6).
  • the ACK packet includes the information for uniquely identifying the transmitted packet associated with the ACK packet. It is therefore possible to obtain a suitable access address to the packet header acquisition table 315 from the information.
  • the packet processing unit 311 refers to the above-mentioned access address to delete an entry of the packet header corresponding to the ACK packet from the packet header acquisition table 315 (Step S3121 in Fig. 6).
  • the packet processing unit 311 generates, from information included in the ACK packet, information for identifying the retransmission instruction stored in the retransmission instruction queue 309 (Step S3122 in Fig. 6).
  • the packet processing unit 311 sends to the instruction issuing unit 305 a request to delete the retransmission instruction corresponding to the ACK packet (Step S3123 in Fig. 6).
  • the instruction issuing unit 305 deletes the retransmission instruction stored in the retransmission instruction queue 309 (Step S3057 in Fig. 6).
  • the packet processing unit 311 sends to the CPU 4 a request to unlock a region in the retransmission buffer 201 in which the transfer data of the packet corresponding to the ACK packet is stored (Step S3127 in Fig. 6).
  • the CPU 4 unlocks the retransmission buffer 201 (Step S4001 in Fig. 6).
  • Fig. 7 is a sequence diagram showing data packet reception processing in the present exemplary embodiment. It should be noted that an overlapping description of the same processing as that shown in Fig. 6 will be omitted as appropriate.
  • the packet reception unit 321 when receiving a packet from the network, forwards the received packet to the packet processing unit 311 (Step S3211 in Fig. 7).
  • the packet processing unit 311 determines a type of the received packet received from the packet reception unit 321 (Step S3119 in Fig. 7).
  • the received packet is a data packet.
  • the packet processing unit 311 sends a data transfer request to the DMA controller 313, by referring to an address of the reception destination memory region and the size included in the packet header (Step S3124 in Fig. 7).
  • the address of the reception destination memory region is included in the packet header in many cases. In this case, the network interface 3 itself needs not to manage the address of the reception destination memory region. Even if this is not the case, the address of the reception destination memory region can be obtained as follows. For example, when a driver of the network interface 3 is loaded by the OS, a region in the memory 2 is assigned thereto, and therefore such information as a start address, a size and a usage status of the memory region is managed by the network interface 3.
  • the DMA controller 313 forwards the received data to the memory 2 in accordance with the request from the packet processing unit 311 (Step S3132 in Fig. 7).
  • the packet processing unit 311 Based on information included in the packet header, the packet processing unit 311 generates an ACK packet responding to the received packet (Step S3125 in Fig. 7).
  • the ACK packet includes at least the flag indicative of the ACK packet and information for uniquely identifying which packet is transmitted by the transmission-side host.
  • the packet processing unit 311 forwards the ACK packet to the packet transmission unit 319, and the packet transmission unit 319 transmits the ACK packet to the network (Step S3126 in Fig. 7).
  • Fig. 8 is a sequence diagram showing packet reception processing shown in Figs. 6 and 7 in an integrative manner.
  • the packet reception unit 321 determines whether or not it receives a packet from the network (Step F101 in Fig. 8).
  • Step F101 If the packet reception unit 321 has not received a packet from the network (Step F101; No in Fig. 8), the procedure returns back to Step F101.
  • the packet processing unit 311 determines a type of the received packet (Step F103 in Fig. 8).
  • the packet processing unit 311 determines whether the data packet is for the retransmission control system according to the present exemplary embodiment or not (Step F105 in Fig. 8).
  • the network interface 3 forwards the data packet to the reception destination memory region (Step F111 in Fig. 8).
  • the packet processing unit 311 If the data packet is for the retransmission control system according to the present exemplary embodiment (Step F105; Yes in Fig. 8), the packet processing unit 311 generates an ACK packet based on information included in the packet header (Step F107 in Fig. 8). Then, the network interface 3 sends the generated ACK packet back to the source of the data packet (Step F109 in Fig. 8) and forwards the received data packet to the reception destination memory region (Step F111 in Fig. 8).
  • Steps F107 to F109 and the processing of the Step F111 are independent of each other and thus the execution order thereof can be exchanged.
  • the packet processing unit 311 determines whether the received packet is an ACK packet (Step F103; ACK packet in Fig. 8). If the received packet is an ACK packet (Step F103; ACK packet in Fig. 8), the packet processing unit 311 generates, based on information included in the ACK packet, an access address to the packet header acquisition table 315 (Step F113 in Fig. 8).
  • the packet processing unit 311 uses the access address generated in the Step F113 to delete the packet header stored in the packet header acquisition table 315 (Step F115 in Fig. 8).
  • the packet processing unit 311 generates, based on information included in the ACK packet, information for uniquely identifying the retransmission instruction stored in the retransmission instruction queue 309 (Step F117 in Fig. 8). It should be noted that if the address generated in the above-described Step F113 can be utilized without change, there is no need to execute the Step F117.
  • the packet processing unit 311 uses the information generated in the Step F117 to delete the retransmission instruction stored in the retransmission instruction queue 309 (Step F119 in Fig. 8).
  • the network interface 3 unlocks a region in the retransmission buffer 201 in which the transfer data of the transfer packet corresponding to the received ACK packet is stored (Step F121 in Fig. 8).
  • the fast retransmission control is achieved by utilizing the memory 2 of the host side provided separately from the network interface 3. That is, it is possible to achieve the fast retransmission control without providing the network interface 3 with a large amount of memory.
  • the CPU 4 hardly intervenes the retransmission processing at all. Therefore, load imposed on the CPU 4 due to the fast retransmission control is reduced.
  • the fast retransmission control according to the present exemplary embodiment has no impact on other applications operating on the CPU 4.
  • the present exemplary embodiment is applicable to a computer system such as a data center which is comprised of PCs and servers interconnected through a network.
  • Second Exemplary Embodiment Fig. 9 is a block diagram showing a configuration of the retransmission control system 1 according to a second exemplary embodiment of the present invention. An overlapping description with the first exemplary embodiment will be omitted as appropriate.
  • the above-described instruction issuing unit 305 of the network interface 3 is replaced with an instruction dividing and issuing unit 325.
  • the instruction dividing and issuing unit 325 divides a data transfer instruction into a plurality of data transfer instructions, as necessary. More specifically, the instruction dividing and issuing unit 325 compares the data size included in the data transfer instruction stored in the instruction queue 303 with an MTU (Maximum Transmission Unit) of the network. If the size of a transfer data exceeds the MTU, the instruction dividing and issuing unit 325 divides the data transfer instruction to a plurality of data transfer instructions and sends the plurality of data transfer instructions separately to the packet processing unit 311. Also, the instruction dividing and issuing unit 325 writes the post-division packet transfer instructions to the retransmission instruction queue 309.
  • MTU Maximum Transmission Unit
  • the second exemplary embodiment can achieve the fast retransmission control without imposing load on the CPU 4, even in a case where the transfer size specified by the data transfer request issued by the CPU 4 exceeds the size of single packet.
  • Patent Literature 1 As a comparative example, let us consider the case of the above-mentioned Patent Literature 1 or Patent Literature 2. If the size of a transfer data exceeds the MTU of the network, it is necessary to divide the transfer data and append packet headers respectively to the divided data. To this end, it is necessary to copy the transfer data to another memory region. However, this causes a problem that load is imposed on the host side. Moreover, improvement rate of CPU performance is in general faster than that of memory performance, and hence overhead of the data copy also is a considerable problem. Furthermore, there is a problem of requiring an extra memory region in the host side.
  • the data transfer instruction is divided into a plurality of data transfer instructions.
  • the packet header is generated in or managed by the network interface 3.
  • the transfer data and the packet header are combined with each other in the network interface 3.
  • Third Exemplary Embodiment Fig. 10 is a block diagram showing a configuration of the retransmission control system 1 according to a third exemplary embodiment of the present invention. An overlapping description with the foregoing exemplary embodiments will be omitted as appropriate.
  • a retransmission data acquisition table 327 is added to the network interface 3.
  • the retransmission data acquisition table 327 is a buffer for storing the retransmission data, as in the case of the retransmission buffer 201.
  • Fig. 11 is a sequence diagram for explaining packet transmission processing in the third exemplary embodiment. The processing shown in Fig. 11 is inserted between the Step F011 and the Step F013 in Fig. 5A.
  • the instruction issuing unit 305 interprets an instruction read out (Step F011 in Fig. 11).
  • the packet processing unit 311 determines whether or not the retransmission data corresponding to the current data transfer instruction exists in the retransmission data acquisition table 327 (Step F012a in Fig. 11). In the determining, the packet processing unit 311 generates, based on the data transfer instruction, an access address to the retransmission data acquisition table 327. This access address is one with which the retransmission data can be uniquely identified and is similar to the access address to the packet header acquisition table 315.
  • the packet processing unit 311 obtains the retransmission data from the retransmission data acquisition table 327 (Step F012b in Fig. 11). Moreover, the packet processing unit 311 obtains the packet header from the packet header acquisition table 315 (Step F021 in Fig. 11).
  • the access address to the packet header acquisition table 315 may be the same as the access address to the retransmission data acquisition table 327 in the Step F012a. Processing thereafter is similar to the processing after the Step F021 in Fig. 5B. However, in the Step F033 in Fig. 5B, processing of deleting the retransmission data from the retransmission data acquisition table 327 is added.
  • Step F012a if the retransmission data does not exist in the retransmission data acquisition table 327 (Step F012a; No in Fig. 11), the procedure proceeds to the above-described Step F013.
  • the retransmission data acquisition table 327 As a method for utilization of the retransmission data acquisition table 327, it is considered to store high-priority packets or packets with small data size. Since the retransmission data acquisition table 327 is installed in the network interface 3, it is hard to equip as much capacity buffer in the network interface 3 as the retransmission buffer 201. However, it is possible to obtain the retransmission data faster than in the case of reading out the retransmission data from the retransmission buffer 201. Therefore, when high-priority packets are stored therein, small-delay retransmission can be achieved with respect to the said high-priority packets.
  • the number of packets that can be stored therein becomes small. Therefore, it is preferable to store the retransmission data whose size is less than a certain value in the retransmission data acquisition table 327 to increase the number of packets that can be stored therein.
  • the transfer data size is small, the communication delay becomes a remarkable problem. Therefore, it makes sense to store small-size retransmission data in the retransmission data acquisition table 327. In this case, the maximum data size of the data stored in the retransmission data acquisition table 327 needs to be set in the operation setting register 323.
  • the retransmission buffer 201 is utilized regardless of the data size and the priority.
  • Timing of writing the retransmission data to the retransmission data acquisition table 327 is as follows. That is, a transfer data is read out from the memory 2 in the Step F013 in Fig. 5A, and concurrently the transfer data is written to the retransmission data acquisition table 327. It is also possible to switch the storage destination between the retransmission data acquisition table 327 and the retransmission buffer 201 depending on the packet priority or the packet size. In this case, processing of determining which one is to be utilized is performed.
  • the retransmission data stored in the retransmission data acquisition table 327 is deleted not only in the Step F033 in Fig. 5B but also in the Step F115 in Fig. 8.
  • the network interface 3 is provided with the retransmission data acquisition table 327, which can achieve the smaller delay retransmission processing.
  • a retransmission control system comprising: a memory in which a transfer data is stored; and a network interface, wherein said network interface comprises: a packet processing unit configured to generate a transfer packet including said transfer data; and a DMA controller configured to read out said transfer data from said memory, wherein in response to a data transfer instruction that instructs first-time transfer or retransmission of said transfer data, said packet processing unit obtains a packet header of said transfer packet and generates said transfer packet by appending said obtained packet header to said transfer data read out by said DMA controller.
  • a retransmission control method in a network interface wherein a transfer data is stored in a memory that is provided separately from said network interface, and said network interface comprises a DMA controller configured to read out said transfer data from said memory, wherein said retransmission control method comprises: obtaining a packet header of a transfer packet in response to a data transfer instruction that instructs first-time transfer or retransmission of said transfer data; reading out, by said DMA controller, said transfer data from said memory; and generating said transfer packet by appending said obtained packet header to said transfer data read out by said DMA controller.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

La présente invention se rapporte à un système de contrôle de retransmission. Le système de contrôle de retransmission selon l'invention comprend : une mémoire, dans laquelle des données à transférer sont stockées ; et une interface réseau. L'interface réseau comprend : un module de traitement de paquets, configuré de façon à générer un paquet à transférer contenant les données à transférer ; et un contrôleur DMA, configuré de façon à lire les données à transférer à partir de la mémoire. En réponse à une instruction de transfert de données qui commande un premier transfert ou une retransmission des données à transférer, le module de traitement de paquets obtient un en-tête de paquet du paquet à transférer et génère le paquet à transférer en ajoutant l'en-tête de paquet obtenu aux données à transférer qui sont lues par le contrôleur DMA.
PCT/JP2011/005076 2011-03-28 2011-09-09 Système de contrôle de retransmission et procédé de contrôle de retransmission WO2012131806A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013516870A JP5880551B2 (ja) 2011-03-28 2011-09-09 再送制御システム及び再送制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011069826 2011-03-28
JP2011-069826 2011-03-28

Publications (1)

Publication Number Publication Date
WO2012131806A1 true WO2012131806A1 (fr) 2012-10-04

Family

ID=46929652

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/005076 WO2012131806A1 (fr) 2011-03-28 2011-09-09 Système de contrôle de retransmission et procédé de contrôle de retransmission

Country Status (2)

Country Link
JP (1) JP5880551B2 (fr)
WO (1) WO2012131806A1 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9680774B2 (en) 2014-02-26 2017-06-13 Red Hat, Inc. Network interface card offloading
US9692642B2 (en) 2014-02-26 2017-06-27 Red Hat, Inc. Offloading to a network interface card
CN112261142A (zh) * 2020-10-23 2021-01-22 浪潮(北京)电子信息产业有限公司 一种rdma网络的数据重传方法、装置及fpga
WO2023024594A1 (fr) * 2021-08-25 2023-03-02 海光信息技术股份有限公司 Procédé de retransmission, contrôleur de mémoire, système de processeur et dispositif électronique

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102013494B1 (ko) * 2017-09-20 2019-10-21 주식회사대한송유관공사 배관 상태 모니터링 장치 및 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6298444A (ja) * 1985-10-25 1987-05-07 Hitachi Ltd デ−タ通信方式
JPS63308445A (ja) * 1987-06-10 1988-12-15 Matsushita Electric Ind Co Ltd 通信プロトコル制御装置
JPH01215161A (ja) * 1988-02-23 1989-08-29 Hitachi Ltd フレーム送信方法
JPH0778112A (ja) * 1993-09-08 1995-03-20 Hitachi Ltd ネットワークシステムおよびネットワークにおける通信方法
JPH10107855A (ja) * 1996-09-27 1998-04-24 Nec Corp データ送信装置
JP2004128786A (ja) * 2002-10-01 2004-04-22 Fujitsu Ltd パケット再送制御装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4786575B2 (ja) * 2007-03-20 2011-10-05 富士通株式会社 コンピュータとネットワークインタフェースコントローラ間のデータ転送方法、プログラム及びネットワークインタフェースコントローラ

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6298444A (ja) * 1985-10-25 1987-05-07 Hitachi Ltd デ−タ通信方式
JPS63308445A (ja) * 1987-06-10 1988-12-15 Matsushita Electric Ind Co Ltd 通信プロトコル制御装置
JPH01215161A (ja) * 1988-02-23 1989-08-29 Hitachi Ltd フレーム送信方法
JPH0778112A (ja) * 1993-09-08 1995-03-20 Hitachi Ltd ネットワークシステムおよびネットワークにおける通信方法
JPH10107855A (ja) * 1996-09-27 1998-04-24 Nec Corp データ送信装置
JP2004128786A (ja) * 2002-10-01 2004-04-22 Fujitsu Ltd パケット再送制御装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9680774B2 (en) 2014-02-26 2017-06-13 Red Hat, Inc. Network interface card offloading
US9692642B2 (en) 2014-02-26 2017-06-27 Red Hat, Inc. Offloading to a network interface card
CN112261142A (zh) * 2020-10-23 2021-01-22 浪潮(北京)电子信息产业有限公司 一种rdma网络的数据重传方法、装置及fpga
CN112261142B (zh) * 2020-10-23 2023-07-14 浪潮(北京)电子信息产业有限公司 一种rdma网络的数据重传方法、装置及fpga
WO2023024594A1 (fr) * 2021-08-25 2023-03-02 海光信息技术股份有限公司 Procédé de retransmission, contrôleur de mémoire, système de processeur et dispositif électronique

Also Published As

Publication number Publication date
JP2014515195A (ja) 2014-06-26
JP5880551B2 (ja) 2016-03-09

Similar Documents

Publication Publication Date Title
US10204070B2 (en) Method, device, system and storage medium for implementing packet transmission in PCIE switching network
US8671152B2 (en) Network processor system and network protocol processing method
US11809367B2 (en) Programmed input/output mode
US9547598B1 (en) Cache prefill of cache memory for rapid start up of computer servers in computer networks
JP5353278B2 (ja) 通信装置
US20070223483A1 (en) High performance memory based communications interface
WO2012131806A1 (fr) Système de contrôle de retransmission et procédé de contrôle de retransmission
US7788437B2 (en) Computer system with network interface retransmit
JP2012048712A (ja) ローカル・アダプタの読み取り操作により操作の完了が確認されるまで操作の肯定応答を遅延させる方法
US10795608B2 (en) Computer, communication driver, and communication control method
CN112953967A (zh) 网络协议卸载装置和数据传输系统
WO2021063160A1 (fr) Procédé d'accès à un disque à circuits intégrés et dispositif de stockage
US20200059427A1 (en) Integrating a communication bridge into a data processing system
US20060242258A1 (en) File sharing system, file sharing program, management server and client terminal
CN108063737B (zh) 一种FCoE存储区域网读请求处理方法及系统
CN116841926A (zh) 网络接口及其缓冲区控制方法
US20140280716A1 (en) Direct push operations and gather operations
US10681145B1 (en) Replication in a protocol offload network interface controller
US20240039871A1 (en) First burst emulator in a network switch
JP2012205142A (ja) データ転送装置、データ転送方法および情報処理装置
JP3933134B2 (ja) 通信システム
CN117331689A (zh) 数据处理方法、网卡及计算设备

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013516870

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11862024

Country of ref document: EP

Kind code of ref document: A1