300 likes | 324 Views
CS412 Introduction to Computer Networking & Telecommunication. Error Correction/Detection. Topics. Introduction Error Correction Error Detection. Introduction. Transmission impairments (errors) Attenuation Loss of energy as signal propagates Delay Distortion
E N D
CS412 Introduction to Computer Networking & Telecommunication Error Correction/Detection Chi-Cheng Lin, Winona State University
Topics • Introduction • Error Correction • Error Detection
Introduction • Transmission impairments (errors) • Attenuation • Loss of energy as signal propagates • Delay Distortion • Components travel at different speeds • Noise • Unwanted energy from other sources
Isolated and Burst Error • Isolated: 0 -> 1, or 1 -> 0 • Burst: errors in consecutive bits • 2 or more bits in the data unit have changed
Isolated and Burst Error • Compare burst errors to isolated errors • Fewer error blocks given a fixed error rate • Example: error rate: 0.001 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
Error Correcting/Detecting Codes • Redundancy added to data • Error correction • Referred to as forward error correction • Detect and correct error • Error detection • Detect error and request retransmission • Codeword (n bits) • data + redundancy (m bits) (r bits) • n = m + r When to use which one?
Error Correction • Hamming Code • For m-bit data we need r-bit redundancy, where (m+r+1) 2r • Redundancy bits are placed in position of 2’s power • Example: If m = 7, then r = 4
Correct Burst Errors • Organize k codewords into a (k x n) matrix • (k x r) check bits for (k x m) data • Transmit one column at a time • Reconstruct matrix after received • Correct burst errors of length k
Correct Burst Errors n m k
Error Detection • 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 1001000, its codeword is • ________ if even parity is used • ________ if odd parity is used 01001000 11001000
Error Detection vs. Correction • Error-detecting and retransmission • More efficient than error-correction when error rate is low • Example: • error rate: 0.000001 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. 10000 bits e. d. 2001 bits
Use Parity to Detect Burst Errors • Organize a block into (k x n) matrix • One parity for each column one row of parities at the bottom • Transmit one row at a time • Can detect burst errors of length n
Example Original data 11100111 11011101 00111001 10101001 Organized into 11100111 11011101 00111001 10101001 10101010 LRC Transmitted 11100111 11011101 00111001 10101001 10101010 Burst error 11100111 11010000 01001001 10101001 10101010 Error detected whole block is discarded 11100111 11010000 0100001 10101001 10101010
Error-Detecting Code - CRC • Bit stream is treated as polynomial w/ coefficients 0 and 1 • Example: • data: 10100111 polynomial: degree = 7 • Modulo 2 arithmetic is used • Example: 10011011 11110000 +11001010 -10100110 01010001 01010110 • XOR
Error-Detecting Code - CRC • Use generator polynomial G(x) to calculate checksum • Frame: P(x) generator: G(x) degree of G(x) = d Transmitted: checksummed frame P(x)·xd + R(x) • It’s guaranteed that P(x)·xd + R(x) is divisible by G(x)!!
Error-Detecting Code - CRC • Receiver divides checksummed frame by G(x) • If remainder is zero • No error, CRC is removed • Otherwise • Error, the frame is discarded
10.8Binary division in a CRC generator • Frame: • Generator: • Frame transmitted: 100100001
CRC - Example 1 1 0 0 0 0 • Frame: • Generator:
CRC Properties • Single error detection • Double error detection w/ carefully chosen G(x) • Odd number error detection if (x + 1) is a factor of G(x) • Detect burst error length r for r check bits • Can be implemented in hardware using simple shift register circuit