Error correction

Contents

What is error correction

Error correction is used to recover data after an error is detected through error detection.

Error correction algorithms fall into two categories:

Automatic repeat requests (ARQ)

If a packet is received and an error is detected, it will be retransmitted.

A retransmission can be triggered by one of two things:

Implications

Variants

Three variants of ARQ exist:

Stop-and-wait ARQ

  1. SENDER: transmits a packet
  2. SENDER: waits a specified time (a timeout)
  3. RECEIVER: if a packet is successfully received, send an ACK message; if an error is detected, discard packet
  4. SENDER: if no ACK received, retransmit packet; if ACK received, send next packet
Implications

Go-back-n ARQ

  1. SENDER: sends all packets, with packet numbers, without waiting for ACK
  2. RECEIVER: if packet with error is received, it will send an ACK with the latest successful packet number
  3. RECEIVER: discard damaged packets
  4. SENDER: looks at ACKs and resends all packets with packet numbers above the last ACK received
Implications

Selected repeat ARQ

  1. SENDER: sends all packets, with packet numbers, without waiting for ACK
  2. RECEIVER: sends ACK for every packet it successfully receives (with packet number)
  3. RECEIVER: discards damaged packets
  4. SENDER: looks at ACKs and resends all packets where ACK has not been received
  5. RECEIVER: uses packet numbers to rebuild the data from all the packets
Implications

Forward Error Correction (FEC)

Uses of FEC

Implications