Retransmission, essentially identical with
automatic repeat request (ARQ), is the resending of
packets which have been either damaged or lost. Retransmission is one of the basic mechanisms used by
protocols operating over a
packet switched computer network to provide reliable communication (such as that provided by a
reliable byte stream
A reliable byte stream is a common service paradigm in computer networking; it refers to a byte stream in which the bytes which emerge from the communication channel at the recipient are exactly the same, and in exactly the same order, as they wer ...
, for example
TCP
TCP may refer to:
Science and technology
* Transformer coupled plasma
* Tool Center Point, see Robot end effector
Computing
* Transmission Control Protocol, a fundamental Internet standard
* Telephony control protocol, a Bluetooth communication s ...
).
Such networks are usually "unreliable", meaning they offer no guarantees that they will not delay, damage, or lose
packets, or deliver them out of order. Protocols which provide reliable communication over such networks use a combination of
acknowledgments (i.e. an explicit
receipt from the destination of the
data), retransmission of missing or damaged packets (usually initiated by a
time-out), and
checksums to provide that reliability.
Acknowledgment
There are several forms of
acknowledgement which can be used alone or together in networking protocols:
* Positive Acknowledgement: the receiver explicitly notifies the sender which packets, messages, or segments were received correctly. Positive Acknowledgement therefore also implicitly informs the sender which packets were not received and provides detail on packets which need to be retransmitted.
* Negative Acknowledgment (NACK): the receiver explicitly notifies the sender which packets, messages, or segments were received incorrectly and thus may need to be retransmitted (RFC 4077).
* {{anchor, SACKSelective Acknowledgment (SACK): the receiver explicitly lists which packets, messages, or segments in a stream are acknowledged (either negatively or positively). Positive selective acknowledgment is an option in TCP (RFC 2018) that is useful in
Satellite Internet access
Satellite Internet access is Internet access provided through communication satellites. Modern consumer grade satellite Internet service is typically provided to individual users through geostationary satellites that can offer relatively high dat ...
(RFC 2488).
* Cumulative Acknowledgment: the receiver acknowledges that it correctly received a packet, message, or segment in a stream which implicitly informs the sender that the previous packets were received correctly. TCP uses cumulative acknowledgment with its TCP
sliding window.
Retransmission
Retransmission is a very simple concept. Whenever one party sends something to the other party, it retains a copy of the data it sent until the recipient has acknowledged that it received it. In a variety of circumstances the sender
automatically retransmits the data using the retained copy. Reasons for resending include:
* if no such acknowledgment is forthcoming within a reasonable time, the time-out
* the sender discovers, often through some
out of band
Out-of-band activity is activity outside a defined telecommunications frequency band, or, metaphorically, outside of any primary communication channel. Protection from falsing is among its purposes.
Examples General usage
* Out-of-band agreement ...
means, that the transmission was unsuccessful
* if the receiver knows that expected data has not arrived, and so notifies the sender
* if the receiver knows that the data has arrived, but in a damaged condition, and indicates that to the sender
See also
*
Error control
*
Reliable system design
Reliability engineering is a sub-discipline of systems engineering that emphasizes the ability of equipment to function without failure. Reliability describes the ability of a system or component to function under stated conditions for a specifi ...
*
Truncated binary exponential backoff
Exponential backoff is an algorithm that uses feedback to multiplicatively decrease the rate of some process, in order to gradually find an acceptable rate. These algorithms find usage in a wide range of systems and processes, with radio networks ...
*
TCP congestion avoidance algorithm
*
Development of TCP
*
QSL card
Network protocols