An almost identical retransmission with an automatic retransmission (ARQ) is a retransmission of packets that have either been damaged or lost. Relaying is one of the main mechanisms used by protocols when working with packet switching of a computer network to provide reliable communication (such as ensuring a reliable stream of bytes, such as TCP).
These networks are usually “not reliable”, which means that they do not guarantee the absence of delays, damage or loss of packets, or disabling them. Protocols that provide reliable communication over such networks use a combination of acknowledgments (that is, explicitly receiving data from the destination), retransmitting missing or damaged packets (usually triggered by a time-out), and a checksum to ensure reliability.
Confirmation
There are several forms of confirmation that can be used individually or together in network protocols:
- Positive acknowledgment: the receiver explicitly notifies the sender which packets, messages, or segments were received correctly. Also, a positive acknowledgment indirectly informs the sender which packets have not been received and provides detailed information about the packets that need to be re-transmitted. A positive acknowledgment with relay (PAR) is a method used by TCP (RFC 793) to verify receipt of transmitted data. PAR operates by retransmitting data at a set time until the receiving host acknowledges the data.
- Negative Acknowledgment (NACK): The receiver explicitly notifies the sender which packets, messages, or segments were received incorrectly and will require them again (RFC 4077). - Selective acknowledgment (SACK): the receiver explicitly lists which packets, messages, or segments in the stream have confirmed (positive or negative).
- Positive selective acknowledgment is an option in TCP (RFC 2018), it is useful for Internet access via satellite (RFC +2488). -
- Cumulative confirmation: the recipient confirms that it received the packet, the message, or a segment in the stream that implicitly informs the sender that the previous packets were received correctly.
Relaying
Relaying is very easy to explain. Whenever one party sends something to the other side, the sender saves a copy of the data he sent until the recipient has confirmed that he received it. In various circumstances, the sender automatically relays the data using a saved copy. Reasons for resubmission:
- no confirmation was given for a certain time, timeout
- the sender will know, often after some of the group of funds, that the transmission was unsuccessful
- if the recipient knows that the expected data is not profit, he notifies the sender
- if the recipient knows that the data has arrived, but in a damaged state, he notifies the sender