Patent ID: 8219866

Claim:
An apparatus which is capable of transmitting data, the apparatus comprising: a memory in which the data is stored; a communication interface configured to transmit the data stored in the memory to an external destination; a determination unit configured to determine a communication protocol used for transmitting the data to the external destination; a first storage control unit configured to control conversion of the data stored in the memory into communication frames which are also stored in the memory; a first transferring unit configured to transfer a first communication frame from the memory to a buffer; and a calculator configured to perform a checksum calculation on the first communication frame being transferred from the memory to the buffer; a second storage control unit configured to: add a result of the checksum calculation performed by the calculator to the first communication frame stored in the buffer and to the first communication frame stored in the memory, in a case where the communication protocol determined by the determination unit is a communication protocol that requires retransmission, and add the result of the checksum calculation to the first communication frame stored only in the buffer, in a case where the communication protocol determined by the determination unit is a communication protocol that does not require retransmission, a second transferring unit configured to: transfer the first communication frame to which the result of the checksum calculation is added in the buffer from the buffer to the communication interface, in a case where the first communication frame is transmitted for a first time by the communication protocol that requires retransmission, and transfer the first communication frame to which the result of the checksum calculation is added in the memory directly from the memory to the communication interface without performing the checksum calculation on the first communication frame, in a case where the first communication frame is retransmitted by the communication protocol that requires retransmission, wherein the determination unit analyzes a network layer of the data and determines the communication protocol, wherein the determination unit determines whether the communication protocol for transmitting the data is a communication protocol that requires retransmission, wherein the determination unit is further configured to determine whether or not the checksum calculation should be performed based on the communication protocol determined by the determination unit, and wherein the checksum calculation by the calculator and the processing by the second storage control unit are performed according to the communication protocol determined by the determination unit.