0% found this document useful (0 votes)
20 views39 pages

Error Correction and Detection

Uploaded by

bhoiselmon2525
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views39 pages

Error Correction and Detection

Uploaded by

bhoiselmon2525
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 39

Chapter – Error Detection and Correction

Error Detection and Correction


 Errors are inevitable (unavoidable)
 Interference
 Corruption as a result of transmission
 Reliable communication is dependent on being
able to detect and correct errors
 How will we know an error occurred?
 Do we retransmit or correct?

2
Types of Errors

 Single-bit error
 Burst error

3
Single-bit Errors
 Only one bit is changed: 0 changed to 1, or a 1 to a 0
 Least likely type of error since noise usually lasts longer
than the time to send one bit
 More likely in parallel transmission

4
Burst Errors
 Two or more bits in data unit are in error, not necessarily
consecutive in order
 Most likely in serial transmission
 Number of bits affected depend on data rate and noise
duration

5
Detection

 Need to detect before message is processed


 Redundancy may be used to add additional bits
to a message for error control
 Process must be handled by destination

6
Redundancy

7
Detection Methods

 Parity Check
 Cyclical Redundancy Check (CRC)
 Checksum
 Parity and CRC are performed by data link layer;
checksum performed by higher-layer protocols

8
Parity Check

 Most common and least expensive


 In even-parity, a redundant bit (parity bit) is
appended to every data unit so total number of 1
bits is even; odd-parity – total should be odd

9
Even-parity Check

10
Example 1
Suppose the sender wants to send the word world. In
ASCII the five characters are coded as
1110111 1101111 1110010 1101100 1100100
The following shows the actual bits sent
11101110 11011110 11100100 11011000 11001001

11
Example 2
Now suppose the word world in Example 1 is received by
the receiver without being corrupted in transmission.
11101110 11011110 11100100 11011000
11001001
The receiver counts the 1s in each character and comes up
with even numbers (6, 6, 4, 4, 4). The data are accepted.

12
Example 3
Now suppose the word world in Example 1 is corrupted
during transmission.
11111110 11011110 11101100 11011000
11001001
The receiver counts the 1s in each character and comes up
with even and odd numbers (7, 6, 5, 4, 4). The receiver
knows that the data are corrupted, discards them, and asks
for retransmission.

13
Simple Parity Performance

 Can detect all single-bit errors


 May detect all burst errors as long as total
number of bits changed is odd
 Cannot detect errors when total number of bits
changed is even since parity check will pass even
though errors had occurred

14
Two-Dimensional Parity Check

 Data unit is divided into rows and columns;


parity checks are performed on
corresponding bits of each column

15
Two-Dimensional Parity

16
Two-Dimensional Parity Performance
 Increases likelihood of detecting burst errors

 Block parity character is also known as the


“Longitudinal Redundancy Check” (LRC)
character.LRC of n bits can easily detect a burst
error of n bits

 Cannot detect errors when two bits in one data


unit are damaged and two bits in exactly the
same positions in another data unit are damaged
17
Cyclic Redundancy Check (CRC)

 Parity checks based on addition; CRC based on


binary division
 A sequence of redundant bits (a CRC or CRC
remainder) is appended to the end of the data
unit
 These bits are later used in calculations to detect
whether or not an error had occurred

18
CRC Steps
 On sender’s end, data unit is divided by a
predetermined divisor; remainder is the CRC
 When appended to the data unit, it should be
exactly divisible by a second predetermined
binary number
 At receiver’s end, data stream is divided by same
number
 If no remainder, data unit is assumed to be error-
free

19
Deriving the CRC

 A string of 0s is appended to the data unit; n is


one less than number of bits in predetermined
divisor
 New data unit is divided by the divisor using
binary division; remainder is CRC
 CRC of n bits replaces appended 0s at end of
data unit

20
CRC Generator and Checker

21
CRC Generator
 Uses modulo-2 division
 Resulting remainder is the
CRC

22
CRC Checker
 Performed by receiver
 Data is appended with
CRC
 Same modulo-2 division
 If remainder is 0, data are
accepted
 Otherwise, an error has
occurred

23
Polynomials
 Used to represent CRC generator
 Cost effective method for performing calculations quickly

24
CRC Performance

 Can detect all burst errors affecting an odd


number of bits
 Can detect all burst errors of length less than or
equal to degree of polynomial

25
Checksum

 Performed by higher-layer protocols


 Also based on concept of redundancy

26
Checksum Generator

 At sender, checksum generator subdivides data


unit into k equal segments of n bits
 Segments are added together using one’s
complement arithmetic to get the sum
 Sum is complemented and becomes the
checksum, appended to the end of the data

27
Checksum

28
Checksum Checker

 Receiver subdivides data unit in k sections of n


bits
 Sections are added together using one’s
complement to get the sum
 Sum is complemented
 If result is zero, data are accepted; otherwise,
rejected

29
Performance

 Detects all errors involving odd number of bits,


most errors involving even number of bits
 Since checksum retains all carries, errors
affecting an even number of bits would still
change the value of the next higher column and
the error would be detected
 If a bit inversion is balanced by an opposite bit
inversion, the error is invisible

30
10.3 Error Correction

 Requires more redundancy bits; must know not


only that an error had occurred, but where the
error occurred in order to correct it
 Correction simply involves flipping the bit
 Hamming code may be applied to identify
location where error occurred by strategically
placed redundancy bits

31
Redundancy Bits

32
Example Hamming Code

 For a seven-bit data sequence

r1: bits 1, 3, 5, 7, 9, 11
r2: bits 2, 3, 6, 7, 10, 11
r3: bits 4, 5, 6, 7
r4: bits 8, 9, 10, 11

33
Example Hamming Code

34
Error Detection using Hamming Code

35
Burst Error Correction

 By rearranging the order of bit transmission of the


data units, the Hamming code can correct burst
errors
 Organize N units in a column and send first bit of
each, followed by second bit of each, and so on
 Hamming scheme then allows us to correct
corrupted bit in each unit

36
Burst Error Correction Example

37
Coming Up… Chapter 11
 Data Link Control and Protocols
 Flow Control
 Error Control
 Protocols

38
Credits

 All figures obtained from publisher-provided


instructor downloads
Data Communications and Networking, 3rd edition by
Behrouz A. Forouzan. McGraw Hill Publishing, 2004

39

You might also like