Example

advertisement
Computer Networks
Chapter 10 – Error Detection and Correction
Errors
 The physical link is always subject to imperfections
 Noise/interference
 Limited bandwidth
 Distortion
 Errors – a consequence of imperfecton
 Some bits send at the sender are received with different value
at the receiver
Sender
Receiver
Value 0 ---------- 1 Value
sent
Spring 2006
1 ----------0
received
Computer Networks
2
Types of Errors
 Single-bit error
 The value of a single bit in a data unit is changed
 Does not occur very often in serial data transmission
 Burst error
 The value of two or more bits in the data unit is
changed
 Usual type of error in serial data transmission
Spring 2006
Computer Networks
3
Errors and Error Effect
Original Waterfall Image:
Spring 2006
Computer Networks
4
Errors and Error Effect (Cont.)
Waterfall Image: every tenth bit in error
Spring 2006
Computer Networks
5
Errors and Error Effect (Cont.)
Waterfall Image: every other bit in error
Spring 2006
Computer Networks
6
Two Strategies for Error Control
 Error detection and correction
 Enough redundancy (extra bits) is incorporated, so that at
the reciever the errors can be not only detected, but also
corrected
 Not applicable to data communication, because too much
redundancy is needed
 Error detection and retransmission
 There is enough redundancy only to detect the error in a data
unit. If an error is descovered the sender is automaticly
required to retransmit the data unit
 Applicabbble to data communication
Spring 2006
Computer Networks
7
Error Detection Methods
 Each method involves adding extra bits
(redundant bits) to the data unit
 Three most common methods are
 Parity checking
 Cyclic Redundancy Check (CRC)
 Checksum
Spring 2006
Computer Networks
8
Parity Checking
 The sender and the receiver agree in advance whether
the data units will have even or odd number of 1s.
 The sender adds extra bits to create the data units
according to the agreement
 The receiver checks the parity of the 1s according to
the agreement.
 If the data unit received has a number of 1s according
to the agreement, it is accepted as correct; otherwise
it is rejected as “in error”.
Spring 2006
Computer Networks
9
Simple Parity Checking
 The sender adds an additional bit, called parity bit to each
data unit
 Even parity – the parity bit is 0 or 1 depending on which bit will
make the total number of 1’s even
 Odd parity – the parity bit is 0 or 1 depending on which bit will
make the total number of 1’s odd
 The sender and receiver know which scheme they are using
 The receiver performs parity checking
 Only a single error or odd number of errors can be detected
 It is not convenient for use with data transmission
Spring 2006
Computer Networks
10
Even Parity Concept
Spring 2006
Computer Networks
11
Example
 Assuming even parity, add a single bit to each
data unit.
0110100
1011010
 Solution:
Spring 2006
0110100
1
1011010
0
Computer Networks
12
Two-dimensional Parity Check
 Data units are arranged in two-dimensional array
 Parity bit is added to the rows (each data unit)
and to the columns (an extra data unit is created)
 The receiver checks the parity in the rows and in
the columns
 Improved performance compared to single-parity
checking
 Still not very often used with data transmission
Spring 2006
Computer Networks
13
Two-dimensional Parity Concept
Spring 2006
Computer Networks
14
Example
 Perform a two dimensional parity check on the
following data unit by having blocks of 7 bits each.
01101001011010001011011101011001011
 Solution
0110100
1
1011010
0
0010110
1
1110101
1
1001011
0
1000110
1
01101001101101000010110111101011100101101000110
Spring 2006
Computer Networks
15
Cyclic Redundancy Check
 A method for error detection that is often used with
data transmission.
 Based upon treating bit strings as polynomials with
coefficients 0 and 1.
 k bit message is represented as (k-1) degree
polynomial
 Example: 1010110 has 7 bits
 It can be represented as a polynomial of 6th degree
1·x6 + 0·x5 + 1·x4 +0·x3 + 1·x2 + 1·x1 + 0·x0
Spring 2006
Computer Networks
16
How CRC Operates?
 The sender wants to send k bits message
 The sender and the receiver must agree in advance
on n+1 bit string called generator polynomial
(divisor), G.
 G can be represented as n-degree polynomial
 n redundant bits are added to the k bits message.
They are called CRC bits.
k bits
n bits
Data bits to be sent
Spring 2006
CRC bits
Computer Networks
17
How CRC Operates? (Cont.)
 The redundant bits are chosen in such a way that
the resulting k+n bit string is exactly divisible
(with a reminder=0) by G using modulo 2
arithmetic.
 The receiver divides the received data together
with the CRC bits by G using modulo 2
arithmetic.
 If the reminder is 0, then the string is considered to be
without errors
 If the reminder is not 0, the data unit is with errors and
it is rejected
Spring 2006
Computer Networks
18
Generator Polynomial, G
 For the purposes of calculating a CRC, the sender
and the reciever need to agree upon a generator
polynomial G in advance.
 The choice of G has impact on what types of errors
can be reliably detected.
 There are a handful generator polynomials that are
very good choices for various environments and
the exact choice is made as a part of protocol
design
Spring 2006
Computer Networks
19
Modulo 2 Arithmetic
 In modulo 2 arithmetic addition and substruction are
identical to EXCLUSUVE OR (XOR) operation.
 Multiplication and division are the same as in base-2
arithmetic without carries in addition or borrows in
substraction.
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Spring 2006
Examples:
1011 XOR 0101 = 1110
1001 XOR 1101 = 0100
Computer Networks
20
Calculating the CRC Bits
 Let n be the degree of G (G consists of n+1 bits).
 Append n 0s to the data unit to obtain the extended
data unit.
 Perform the modulo 2 division. The extended data unit
is a dividend and G is a divisor.
 The quotient is not used
 The reminder is the CRC bits
 Add the CRC bits to the data unit
Spring 2006
Computer Networks
21
Example
The first bit in the quotient
is 1 and one times the
divisor results in this
The first bit in the quotient
is 1 and one times the
divisor results in this
Obtained by
XOR-ing 1001
and 1101
Obtained by XOR-ing
1000 and 1101
Spring 2006
Computer Networks
The number of 0s is
one less than the
number of bits in G
(divisor)
22
Another Example
The transmitted unit is
11010110111110
Spring 2006
Computer Networks
23
CRC Performance
 Assuming a good choice of the generator
polynomial, G, is made, CRC method shows very
good performance
 Can detect all burst errors that affect odd number of
bits
 Can detect all burst errors of length less than or equal
to G
 Very high probability on detecting errors with length
higher than the length of G
Spring 2006
Computer Networks
24
Checksum
 To compute the check sum, the sender treats the
data unit as a sequence of a certain number of
blocks, all with the same number of bits.
 The sender and receiver agree on how long are the
blocks (usually 16 bits)
 The sender adds the blocks using one’s
complement arithmetic and creates an additional
block with the same size
 The additional block is complemented and
appended to the data unit as redundancy bits
Spring 2006
Computer Networks
25
Checksum (Cont.)
 The receiver divides the received block into blocks
with the agreed number of bits.
 The blocks are added using one’s complement
arithmetic
 The sum is complemented
 If the result is 0, the data are considered without an
error, otherwise the data unit is rejected
Spring 2006
Computer Networks
26
Modulo One’s Arithmetic
 The addition starts at the last column from left to
right
 The bits are carried in the respective column before
 This is repeated for each column
 If the number of bits in the sum is larger then
those in the blocks, they are added to the sum
obtained
Spring 2006
Computer Networks
27
Column:
7 6 5 4
3 2 1
Carry from column 5 1 0
Carry from column 4 1
Example
Carry from column 3
1
Carry from column 2 1
Carry from column 1
 The addition
1
starts in the last
0 0 1 1 0
column
1 0 0 0 1
 The bits are
carried in the
columns before
 The 6th and 7th bit
are added
Spring 2006
1 0
sum
checksum
Computer Networks
1 1 0
1 0 1
0 0 1
0
1
1
1
1
1
1
0
0 1 0
0 1
1 0 1
1 0
28
Complement of a Bit String
 A complement of a bit string is obtained when all
0s become 1s and all 1s become 0s
 Example: Given the bit string 10111001, its
complement is 01000110
Spring 2006
Computer Networks
29
Download