Title: CS412 Introduction to Computer Networking
1CS412 Introduction to Computer Networking
Telecommunication
- Error Correction/Detection
2Topics
- Introduction
- Error Correction
- Error Detection
3Introduction
- Transmission impairments (errors)
- Attenuation
- Loss of energy as signal propagates
- Delay Distortion
- Components travel at different speeds
- Noise
- Unwanted energy from other sources
4Figure 3.21 Attenuation
5Figure 3.23 Distortion
6Figure 3.24 Noise
7Isolated and Burst Error
- Isolated 0 -gt 1, or 1 -gt 0
- Burst errors in consecutive bits
- 2 or more bits in the data unit have changed
8Isolated 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
9Error 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?
1010.3 Redundancy
11Error Correction
- Hamming Code
- For m-bit data we need r-bit redundancy, where
(mr1) ? 2r - Redundancy bits are placed in position of 2s
power - Example If m 7, then r 4
1210.15 Redundancy bits calculation
1310.16 Example of redundancy bit calculation
1410.17 Error detection using Hamming code
15Correct 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
16Correct Burst Errors
n
m
k
1710.18 Burst error correction example
18Error 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
1910.5 Even-parity concept
20Error 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
21Use 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
22Example
- 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
23Error-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
24Error-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)
- Its guaranteed that P(x)xd R(x) is divisible
by G(x)!!
25Error-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
2610.8 Binary division in a CRC generator
- Frame
- Generator
- Frame transmitted
- 100100001
2710.9 Binary division in CRC checker
28CRC - Example
1 1 0 0 0 0
29CRC 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
30Table 10.1 Standard polynomials
Name Polynomial Application
CRC-8 x8 x2 x 1 ATM header
CRC-10 x10 x9 x5 x4 x 2 1 ATM AAL
ITU-16 x16 x12 x5 1 HDLC
ITU-32 x32 x26 x23 x22 x16 x12 x11 x10 x8 x7 x5 x4 x2 x 1 LANs