• error detection and correction (EDAC) (or error control)

  • Error-detection codes

  • forward error correction (FEC)

    • “The process that enables a receiver, upon detecting an error in the arriving data, to correct the error without further information from the transmitter.” (West, 2021)
    • “Correction of errors at the receiver without retransmission.” (Forouzan, 2012)
  • error-correction codes (or error-correcting codes) (ECC)

  • data bits (or dataword or message or (data) block) (סיביות מידע, מילת מידע)

    • of length .
  • redundant bits (or redundancy) (סיביות ביקורת)

    • of length (where ).
  • sender:

    • transmits the codeword (מילת קוד) of length .
  • receiver:

    • receives
    • checks if ,
      • if yes, assume no error with high probability,
      • else, error detected.
  • There can be possible datawords, and possible codewords.

    • Thus, there are invalid codewords that can be used to detect errors.
  • (code rate)

  • (overhead, תקורה)

  • (redundancy, יתירות)

  • A bit error is when a bit is received incorrectly (0 instead of 1 or vice versa)

  • A burst error (or error burst) is when a sequence of bits is received incorrectly

  • (bit error ratio)

  • (bit error probability)

  • A code (of length ) over an alphabet is a subset .

  • A codeword is an element .

  • An encoder is a function that maps messages to codewords: .

  • The Hamming distance between two codewords is (the number of positions where they differ).

  • The Hamming weight of a codeword is (the number of non-zero positions).

  • The error-correction capability of a code is the maximum number of bit errors that can be corrected

  • The error-detecting capability of a code is the maximum number of bit errors that can be detected

  • The minimum Hamming distance of a code is .

parity checks

  • even parity: if number of 1s in is even, else
  • odd parity: if number of 1s in is odd, else
  • two-dimensional parity check:
    • is an matrix of bits
    • row parity bits for each row
    • column parity bits for each column
    • overall parity bit

internet checksum

(note: used in IP, not used in link layer)

  • message is divided into words of 16 bits:
  • the checksum is (where is the bitwise NOT operation. The sum is done using ones’ complement addition)
  • the sender sends
  • the receiver computes (using ones’ complement addition) and checks if , if yes, assume no error, else, error detected

cyclic redundancy check (CRC)

  • the message has bits
  • is the generator polynomial of degree
  • is the message polynomial of degree
  • the transmitted word will be a polynomial of degree such that .
  • construction:
    1. multiply by to get
    2. divide by to get the remainder
    3. compute
  • the receiver receives where is the error polynomial (non-zero coefficients indicate bit errors)
  • the receiver checks if , if yes, it means that (no error), else, error detected

References

  • Forouzan, B. A. (2012). Data Communications and networking. McGraw-Hill Education.
  • West, Jill (2021). Data Communication and Computer Networks. Course Technology.