There are two basic ways that redundancy can help to keep errors under control in a communications system. If redundancy is used merely to detect errors, the receiver can request that erroneous data be sent again by the transmitter until error-free transmission is achieved. Obviously the transmitter needs to get feedback from the receiver to know which data have to be retransmitted. This requires a full duplex data connection and a protocol capable of coordinating forward data transmission and backward error notification, generally known as automatic repeat request (ARQ) protocols.
The advantage of an ARQ scheme is that fully reliable transmission can be achieved as long as retransmission is repeated until the receiver detects no errors—and assuming that it is indeed possible to detect the complete absence of error. Error detection requires that some form of redundant content be transmitted along with the payload data.
The downsides of an ARQ protocol are additional protocol overhead, potential additional delay and jitter due to retransmission, on the order of multiple round-trip times, and large buffers at both ends of the link. The transmitter needs to retain data in case it is needed for retransmission, and the receiver may need to buffer data until a full frame can be assembled.
In some applications, delay is secondary to reliability. The ubiquitous TCP is an example in which the integrity of a file transfer ...