Patent ID: 9100332
Filing Date: 2015-08-04
Classification: H04L

Abstract:
1. A data transmitting device which divides application data into pieces of data, transmit packets each including data sequentially, and receives acknowledgments of the transmitted packets acknowledgement from a receiving device while carrying out transmission of the packets, comprising: a data transmission instructing unit which generates a transmitting instruction of the application data; a data storage unit having a data area and a temporary buffer area, which stores, in the data area, the application data to be transmitted; a packet transmission instructing unit which sequentially generates packet transmitting instructions based on the transmitting instruction of the application data, each packet transmitting instruction instructing to carry out transmission of one packet; a data reading unit which reads data corresponding to one packet from the data area of the data storage unit based on the packet transmitting instruction; a data copying unit which, if the data read by the data reading unit is included within a predetermined length from an end of the application data, saves a copy of the read data in the temporary buffer area of the data storage unit; a header generating unit which generates a header containing sequence number information of the data read by the packet transmitting instruction; a packet generating unit which generates the packet based on the header and the data read by the packet transmitting instruction; a network I/F unit which transmits the packet to the receiving device via a network; an acknowledgement receiving unit which receives an acknowledgement packet containing acknowledgement sequence number information indicating which data has been received by the receiving device among data contained in the packets transmitted; a packet retransmission instructing unit which specifies data to be retransmitted according to the acknowledgement sequence number information and gives a retransmitting instruction of the specified data to the data reading unit and the header generating unit; a transmission completion determining unit which a copy size specifying unit which specifies the predetermined length to either a total length of data contained in last two packets of the packets including the application data or a total length of data contained in last one packet of the packets, based on the acknowledgment sequence number information and a length of the application data, wherein, when the data transmission instructing unit receives notification of the transmission completion from the transmission completion determining unit, the data transmission instructing unit generates a transmitting instruction of next application data even if an acknowledgment of the data located after the position of the predetermined length back from the end of the application data has not been received and in a case where the data of a sequence number smaller than a sequence number of data at a head of the next application data is transmitted after the transmitting instruction of the next application data is generated, the data reading unit reads the data of the smaller sequence number from the temporary buffer area of the data storage unit, wherein the copy size specifying unit specifies a first length to either a total length of data contained in last two packets of the packets including the application data or a total length of data contained in last one packet of the packets, specifies the predetermined length, based on the first length, a first time being a time taken from when the package generating unit passes the packet to the network I/F unit until the acknowledgment receiving unit receives the acknowledgment of the packet, and a unit length being a length of data transmitted per unit time in data transmission, wherein the predetermined length has a length depending on a value obtained by adding the first length to a product of the first time and the unit length.