[next] [prev] [prev-tail] [tail] [up]

### 6.2 Error Detection Codes

• Concerned with bit-errors (e.g., electronic noise, attenuation).

• Scheme: submit extra data-dependent error-detection bits

• Request retransmission for fault data

### Parity Check

One error-detection bit whose value depends on the count of 1's in the input.

Even parity Bit selected to provide for even number of 1's in the transmission
Odd parity
Example: Add a parity bit to each character

### Cyclic Redundancy Check (CRC)

Add n bits to each block of k bits so that the n+k bits will be divisible by a predetermined number.

Modulo 10 arithmetic (Check Digit Method):

Make number divisible by 9

Modulo 2 arithmetic:

Make the data divisible by a n+1 bits number (e.g., 101 for n=2)

Detects all single-bit errors (01101, 11101,...), and many multiple-bit errors (1101)

• The pattern of the divisor should depend on the type of expected errors  CRC-12 212 + 211 + 23 + 22 + 21 + 20 CRC-16 216 + 215 + 22 + 20 CRC-CCITT 216 + 212 + 265 + 20 CRC-32 (Ethernet, FDDI,...) 232 + 226 + 223 + 222 + 216 + 212 + 211 + 210 + 28 + 27 + 25 + 24 + 22 + 21 + 20
• The first and last bits must equal 1
• Catches all double-bits errors, if at least three 1's appear in the pattern
• Catches any odd number of errors, if pattern is divisible by 3
• Catches all burst of error shorter than the pattern

[next] [prev] [prev-tail] [front] [up]