0% found this document useful (0 votes)
33 views

2.3 - Error Detection & Correction

The document discusses error detection and correction in computer networks. It covers different types of errors like isolated and burst errors. It then describes various error detection techniques like parity checks, cyclic redundancy checks (CRC), and checksums. It also discusses error correction methods like repetition codes and interleaving to deal with burst errors. The key aspects covered are the types of errors, how often they occur, different error detection and correction mechanisms, and examples to illustrate concepts like CRC calculation and decoding repetition codes.

Uploaded by

bobjones
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

2.3 - Error Detection & Correction

The document discusses error detection and correction in computer networks. It covers different types of errors like isolated and burst errors. It then describes various error detection techniques like parity checks, cyclic redundancy checks (CRC), and checksums. It also discusses error correction methods like repetition codes and interleaving to deal with burst errors. The key aspects covered are the types of errors, how often they occur, different error detection and correction mechanisms, and examples to illustrate concepts like CRC calculation and decoding repetition codes.

Uploaded by

bobjones
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Fundamentals of Computer Networks

ECE 578

Module 2.3: Error Detection & Correction


Prepared by: Loukas Lazos
Module Overview
Error occurrence in physical media

Error detection

Error correction

2
Bit Errors in a Link

Types of errors
Isolated errors: Bit errors occurring independently
Burst errors: A cluster of bits in error

1011001010101010101010101000100010111001010010

Isolated Burst

Burst errors increase with data rate


Assume 1μs of impulse noise and 1 symbol = 1 bit
Worst-case # of bits affected at 1Mbps?
Worst-case number of bits affected at 100Mbps?

3
How Often do Errors Occur?
BER = 10-7 (i.e., 1 bit every 10,000,000 bits)

Assume a file of 100Mbits (used bits for ease of calculation)

Let X be an RV denoting the number of bits in error – independent


errors

Average number of bits in error?

Probability of exactly two errors?

4
Dealing with Errors

Receiver must be aware that an error occurred in a frame


Need to have an error detection mechanism

Receiver must receive the correct frame

Two possible strategies


Add information redundancy to correct errors (error correcting codes)
Ask sender to re-send frame (retransmission strategies)

In practice both are employed

5
Error Detection

Single parity checks


Append a single parity bit at the end of a frame. Parity is 1 if # of
ones is odd, and zero otherwise

Example: 0 1 1 0 1 0 1 0 1 1 0 0 ← parity

Single parity check can detect any odd # of errors

Cannot tell where the error took place or how many occurred

Not useful for burst errors

6
Two-dimensional Parity
Arrange bits of a frame into a two dimensional array

1 0 0 1 0 1 0 1
0 1 1 1 0 1 0 0
1 1 1 0 0 0 1 0
1 0 0 0 1 1 1 0
0 0 1 1 0 0 1 1
1 0 1 1 1 1 1 0

Can it detect single errors?


Can it detect double and triple errors?
What about 4-bit errors?
How many errors can be corrected?

7
(IP) Checksum

Treat data as 16-bit words


Add 16-bit words two at a time
Add carry to LSB
Once done, compute one’s complement (i.e., invert result)
E.g. Assume the following header
1000 0110 0101 1110
1010 1100 0110 0000
0111 0001 0010 1010
1000 0001 1011 0101

What type of errors can remain undetected?

8
Cyclic Redundancy Check (CRC)

Add k redundant bits on a n-bit message


Design goal k<<n so that overhead is low
Example: 32-bit CRC adequate for 12,000 bits (1,500) bytes

Represent (n+1)-bit messages as n -egree polynomials

Example: 10011010 maps to x7 + x4 + x3 + x1

The bits of the message to be transmitted become the


coefficients of the polynomial

9
Polynomial Arithmetic
Any polynomial B(x) is divisible by a polynomial C(x) if deg(B) ≥ deg(C)
C(x) is called the divisor
If C(x) and B(x) are of the same degree, the remainder is obtained by
subtracting C(x) from B(x)
Modulo 2 arithmetic, subtraction is an XOR operation between
coefficients

Example B(x) = x3 + 1, C(x) = x3 + x2 + 1


Remainder: R(x) = x2
B(x) = 1001, C(x) =1101, R(x) = 0100 (XOR of B(x), C(x))

10
CRC Calculation
Goal: For message M(x), and divisor C(x), construct polynomial P(x) that
is divisible by C(x)

C(x) known to both sender and receiver

Process:
Step 1: multiply M(x) by xk (add k zeros at the end of message) and obtain T(x) . k is
the degree of C(x).
Step 2: Divide T(x) by C(x)
Step 3: Subtract the remainder R(x) from T(x)
Step 4: Obtain P(x) = M(x)|R(x) divisible by C(x)

11
Example: CRC Calculation

M = 10011010,

C(x) = x3 + x2 +1

T(x) = ?

R(x) = ?

P(x) = ?

12
Example: CRC Calculation

M = 10011010, C(x) = x3 + x2 +1

T(x) = 10011010 | 000


R(x) = 101
P(x) = 10011010 | 101

13
Selection of C(x)

Bit errors can be seen as a polynomial E(x) added to P(x)


Error remains undetected if E(x) is divisible by C(x)

Single-bit errors: E(x) = xi, xk, x0 coefficients are nonzero, all single-bit
errors detected
Double-bit errors: C(x) has a factor with at least 3 terms
Odd number errors: C(x) contains the factor (x+1)
Any burst error of less than k bits and most burst errors of larger than k
bits

14
Commonly Used CRCs

CRC C(x)
CRC-8 x8 + x2 + x + 1
CRC-10 x10 + x9 + x5 + x4 + x + 1
CRC-12 x12 + x11 + x3 + x2 + 1
CRC-16 x16 + x15 + x2 + 1
CRC-CCITT x16 + x12 + x5 + 1
CRC-32 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x +1

15
Basics of Channel Coding

Map an k-bit word to an n-bit word.


Notation: This code is usually referred to as (n,k)-code

1011001010101010101010101000100010111001010010

1011001 0010100 Code Rate: k/n


k k

n n
Weight of a word: The number of ones in the word.
Ex.: W(1011001)= 4
Hamming distance between x, y: d(x, y) = W(x  y)
Ex. x = 1011001, y = 0010100, d = 4
Minimum distance: the minimum Hamming distance out of all distances
in a code
16
Detecting and Correcting Errors
An (n, k)-code can detect up to n-k-1 errors and correct up to n-k/2
errors

Example
Hamming (7,4)-code, can detect any single or two bit errors, and
correct any single bit error

Decoding Strategy
Maximum Likelihood Decoding – pick codeword with smallest
distance to the received word

17
Example – Repetition Code

Decode a (1,3) repetition code

Received word Decoded bit


000
001
010
011
100
101
110
111

What is the code rate?


18
Dealing with Burst Errors - Interleaving

Idea: spread burst errors in multiple codewords

1011001010101010101010101000100010111001010010
Organize data into an MxN matrix E.g. 9 x 7 matrix
read

1 8 15 22 …
2 9 16 23
3 10 17 24
write

4 11 18 25
5 12 19 26
6 13 20 27
7 14 21 28

19

You might also like