Chi-Cheng Lin, Winona State University CS412 Introduction to Computer Networking & Telecommunication Error Correction/Detection
2 Topics l Introduction l Error Correction l Error Detection
3 Introduction l Transmission impairments (errors) Attenuation Loss of energy as signal propagates Delay Distortion Components travel at different speeds Noise Unwanted energy from other sources
4 Figure 3.21 Attenuation
5 Figure 3.23 Distortion
6 Figure 3.24 Noise
7 Isolated and Burst Error l Isolated: 0 -> 1, or 1 -> 0 l Burst: errors in consecutive bits 2 or more bits in the data unit have changed
8 Isolated and Burst Error l Compare burst errors to isolated errors Fewer error blocks given a fixed error rate Example: error rate: per bit (1 error out of 1000 bits) block size: 1000 bits burst size: 100 isolated error: an error contained in most blocks burst error: 1 or 2 error blocks out of 100 blocks Error correction/detection much harder
9 Error Correcting/Detecting Codes l Redundancy added to data l Error correction Referred to as forward error correction Detect and correct error l Error detection Detect error and request retransmission l Codeword (n bits) data + redundancy (m bits) (r bits) n = m + r When to use which one?
Redundancy
11 Error Correction l Hamming Code For m-bit data we need r-bit redundancy, where (m+r+1) 2 r Redundancy bits are placed in position of 2’s power l Example: If m = 7, then r = 4
Redundancy bits calculation
Example of redundancy bit calculation
Error detection using Hamming code
15 Correct Burst Errors l Organize k codewords into a (k x n) matrix (k x r) check bits for (k x m) data l Transmit one column at a time l Reconstruct matrix after received l Correct burst errors of length k
16 Correct Burst Errors k m n
Burst error correction example
18 Error Detection l Parity bit Error detection Added to data so that number of 1 bits in codeword is Even (even parity) Odd (odd parity) E.g., ASCII of ‘H’ is , its codeword is ________ if even parity is used ________ if odd parity is used
Even-parity concept
20 Error Detection vs. Correction l Error-detecting and retransmission More efficient than error-correction when error rate is low l Example: error rate: per bit block size: 1000 bits check bits per block: Hamming code error correction: 10 Parity code error detection: 1 overhead for 1M data: e. c bits e. d bits
21 Use Parity to Detect Burst Errors l Organize a block into (k x n) matrix l One parity for each column one row of parities at the bottom l Transmit one row at a time l Can detect burst errors of length n
22 Example Original data Organized into LRC Transmitted Burst error Error detected whole block is discarded
23 Error-Detecting Code - CRC l Bit stream is treated as polynomial w/ coefficients 0 and 1 l Example: data: polynomial: degree = 7 l Modulo 2 arithmetic is used Example: XOR
24 Error-Detecting Code - CRC l Use generator polynomial G(x) to calculate checksum Frame: P(x)generator: G(x) degree of G(x) = d Transmitted: checksummed frame P(x)·x d + R(x) l It’s guaranteed that P(x)·x d + R(x) is divisible by G(x)!!
25 Error-Detecting Code - CRC l Receiver divides checksummed frame by G(x) If remainder is zero No error, CRC is removed Otherwise Error, the frame is discarded
Binary division in a CRC generator l Frame: l Generator: l Frame transmitted:
Binary division in CRC checker
28 CRC - Example l Frame: l Generator:
29 CRC Properties l Single error detection l Double error detection w/ carefully chosen G(x) l Odd number error detection if (x + 1) is a factor of G(x) l Detect burst error length r for r check bits l Can be implemented in hardware using simple shift register circuit
30 Table 10.1 Standard polynomials NamePolynomialApplication CRC-8x 8 + x 2 + x + 1ATM header CRC-10x 10 + x 9 + x 5 + x 4 + x 2 + 1ATM AAL ITU-16x 16 + x 12 + x 5 + 1HDLC ITU-32 x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1 LANs