The Data Link Layer

forward error correction

Error DETECTION tells you a message arrived damaged; your only recourse is to ask for it again. Error CORRECTION goes further: it sends enough extra information that the receiver can FIX the damage on its own, without asking for a resend. Forward error correction is the family of schemes that does this. The word forward means the redundancy is sent ahead of time, in the same transmission, so the receiver never has to send anything back to recover.

The idea is to add carefully structured redundant bits so that the valid codewords are spread far apart, like words in a dictionary that differ in many letters. If noise corrupts a few bits, the received pattern still looks more like one valid codeword than any other, and the decoder snaps it back to the nearest one. How many errors it can fix depends on how far apart the codewords are kept (the minimum Hamming distance). The Hamming code is the classic teaching example that corrects any single-bit error; real systems use much stronger codes such as Reed-Solomon, convolutional, turbo, and LDPC codes.

FEC shines where asking again is impossible or too slow: a deep-space probe whose round-trip is hours, a live audio stream where a late retransmission is useless, a disc scratched after it was burned, or a wireless link with a high error rate. The trade-off is honest and unavoidable: the correcting bits are pure overhead that you pay on every transmission, error or not, so you spend bandwidth to buy the ability to recover instantly. ARQ, by contrast, spends bandwidth only when an error actually happens, but pays a round-trip delay to recover. Many systems blend the two.

A spacecraft millions of kilometers away cannot afford a do-over: a round-trip request might take hours. So it sends data with heavy FEC; if cosmic noise flips some bits, Earth's receiver corrects them on the spot. No retransmission, no waiting.

When a resend is too slow or impossible, you pay overhead up front so the receiver can self-repair.

Correction is not free: the redundant bits cost bandwidth on every frame, sent or not, error or not. FEC trades guaranteed overhead for instant recovery; ARQ trades a round-trip delay for overhead only when errors occur.

Also called
FECerror correction前向糾錯錯誤更正