There are two main ways of dealing with errors. One involves resending the corrupted data once an error has been detected - Automatic Repeat Request (ARQ); the other involves sending error correcting codes along with the data - Forward Error Correction (FEC). Each method has its advantages and disadvantages. Visit the relevant Wikipedia pages to learn more.
ARQTo quote the Wikipedia ARQ page:
Automatic Repeat reQuest is
an error control method for data transmission that makes use of
error-detection codes, acknowledgment and/or negative acknowledgment
messages, and timeouts to
achieve reliable data transmission. An acknowledgment is a message sent
by the receiver to indicate that it has correctly received a data frame . Usually, when the transmitter does not receive the acknowledgment
before the timeout occurs (i.e., within a reasonable amount of time
after sending the data frame), it retransmits the frame until it is
either correctly received or the error persists beyond a predetermined
number of retransmissions. Three types of ARQ protocols are Stop-and-wait ARQ , Go-Back-N ARQ , and Selective Repeat ARQ . ARQ is appropriate if the communication channel has varying or unknown capacity , such as is the case on the Internet. However, ARQ requires the availability of a back channel , results in possibly increased latency due to retransmissions, and requires the maintenance of buffers and timers for retransmissions, which in the case of network congestion can put a strain on the server and overall network capacity. FECTo quote this FEC Wikipedia page:
In telecommunication and information theory , forward error correction (FEC) (also called channel coding ) is a system of error control for data transmission , whereby the sender adds systematically generated redundant data to its messages, also known as an error-correcting code (ECC). The American mathematician Richard Hamming pioneered this field in the 1940s and invented the first FEC code, the Hamming (7,4) code , in 1950. The carefully designed redundancy allows the receiver to detect
and correct a limited number of errors occurring anywhere in the message
without the need to ask the sender for additional data. FEC gives the
receiver an ability to correct errors without needing a reverse channel
to request retransmission of data, but this advantage is at the cost of
a fixed higher forward channel bandwidth. FEC is therefore applied in
situations where retransmissions are relatively costly, or impossible
such as when broadcasting to multiple receivers. In particular, FEC
information is usually added to mass storage devices to enable recovery of corrupted data.
|