FEC adds redundant data to transmissions so the receiver can reconstruct lost or corrupted packets without retransmission. Used in satellite links, QUIC, video streaming, and 5G radio. FEC trades bandwidth for reliability – sending 10% extra data can recover from 10% packet loss without any round trips.
Forward Error Correction encodes redundancy into transmitted data, enabling the receiver to recover from errors without requesting retransmission. This eliminates the round-trip delay of ARQ (Automatic Repeat Request) retransmission, critical for high-latency links (satellite: 600ms RTT) and real-time media. Reed-Solomon codes (used in QR codes, CDs, deep-space probes) can recover from burst errors by treating data as polynomial coefficients. LDPC (Low-Density Parity Check) codes achieve near-Shannon-limit efficiency and are used in 5G NR and WiFi 6. In networking, FEC appears in: QUIC loss recovery (proactive redundancy), WebRTC video (XOR-based FEC packets), SRT streaming protocol, and datacenter optical links. The FEC overhead-to-recovery tradeoff is tunable – 25% overhead recovers from 25% loss but wastes bandwidth when no loss occurs. Adaptive FEC adjusts redundancy based on measured loss rates.
Packet Loss
Packet loss occurs when transmitted packets fail to reach their destination. Causes include congestion (buffer overflow), CRC errors (physical layer noise), and intentional drops (QoS policing, firewall rules). TCP retransmits lost packets automatically. UDP does not – the application must handle loss.
Retransmission
TCP retransmission resends packets that were lost or not acknowledged within a timeout period. Fast retransmit triggers after 3 duplicate ACKs (indicating a gap). Timeout-based retransmission (RTO) fires after a calculated delay. Excessive retransmissions indicate network congestion or path problems.
Hamming Code
Hamming codes are error-correcting codes that can detect 2-bit errors and correct 1-bit errors by placing parity bits at power-of-2 positions. ECC RAM uses Hamming(72,64) – 64 data bits with 8 check bits. The Hamming distance between two codewords determines error detection and correction capability.