One of roles of TCP (Transmission Control Protocol) in a transport layer is to ensure reliability of packet communication. There is a technique for ensuring the reliability of the packet communication known as “packet transmission control”.
Specifically, a transmission device transmits a packet to a receiving device, and the receiving device receives the packet and then returns acknowledgement to the transmission device. With this acknowledgement, the transmission device recognizes that the transmitted packet safely arriving at the receiving device. However, for example, in the case where the packet is discarded in a network between the transmission device and the receiving device, the transmission device does not receive the acknowledgement relative to the packet. After transmitting the packet, in the case of not receiving the acknowledgement within predetermined stand-by time, the transmission device transmits the packet to the receiving device again. It should be noted that the predetermined stand-by time is called as “RTO (Retransmission Time Out)”.
Such a technique relating to the packet retransmission control is described in a patent literature 1 (JP2007-181127A), a patent literature 2 (JP2008-278014A), and a non patent literature 1 (Toru Takamichi, et al. “Ultra-High Speed MAC Technology for Terabit-Class LAN”, IEICE Communications Society Conference, 2008).
According to the non patent literature 1, in a MAC (Media Access Control) layer which is lower than the transport layer, the packet retransmission control is performed. A reason for this is as follows. As an example, a network having significantly short RTT (Round Trip Time) such as a network in a data center will be taken into consideration. In such a network, by shortening the retransmission time out to a micro-second level, FCT (Flow Completion Time) is decreased, so that communication efficiency can be improved. However, since the TCP is generally mounted in an OS (Operating System), the retransmission time out cannot be shortened to the micro-second level in the packet retransmission control by the TCP. For example, since unit time (Jiffies) in Linux is 10 milliseconds, the retransmission time out cannot be shortened to less than 10 milliseconds by standard TCP of Linux. In order to solve such a problem, according to the non patent literature 1, the packet retransmission control is performed in the MAC layer, and thereby the retransmission time out is shortened to the micro-second level.
Meanwhile, when the above packet retransmission control is performed, the order of the packet arriving at the receiving device is switched. Therefore, the receiving device is required to sort receiving packets in order. This processing is “packet reordering”. This packet reordering is one of functions of the TCP.
A patent literature 3 (JP2007-281808A) discloses a technique relating to the packet reordering. A packet communication device described in the patent literature 3 is provided with sorting processing means, timer control means, retransmission counter, and receiving packet reordering means. The sorting processing means retains arriving packets in a packet data sorting buffer and sorts the packets in order. In the case where the packet does not arrive within fixed time, the timer control means performs timer control of giving up normal reception in the sorting processing means and entrusting to retransmission in an upper layer. The retransmission counter counts up the number of the retransmission of a non-receiving packet started up at the time of a non-continuous reception stand-by state. When the number of the retransmission counted up by the retransmission counter reaches to the predetermined number of the retransmission, the receiving packet reordering means gives up the reception stand-by state and transmits the packet which is already received to the upper layer.