SlideShare a Scribd company logo
10.1
Chapter 10
Error Detection
and
Correction
10.2
Data can be corrupted
during transmission.
Some applications require that
errors be detected and corrected.
Note
10.3
10-1 INTRODUCTION
Let us first discuss some issues related, directly or
indirectly, to error detection and correction.
Types of Errors
Redundancy
Topics discussed in this section:
10.4
Figure 10.1 Single-bit error
10.5
Figure 10.2 Burst error of length 8
10.6
Figure 10.3 The structure of encoder and decoder
To detect or correct errors, we need to send redundant bits
10.7
Figure 10.11 Two-dimensional parity-check code
10.8
Figure 10.11 Two-dimensional parity-check code
10.9
Figure 10.11 Two-dimensional parity-check code
10.10
10-4 CYCLIC CODES
Cyclic codes are special linear block codes with one
extra property. In a cyclic code, if a codeword is
cyclically shifted (rotated), the result is another
codeword.
Cyclic Redundancy Check
Hardware Implementation
Polynomials
Cyclic Code Analysis
Advantages of Cyclic Codes
Other Cyclic Codes
Topics discussed in this section:
10.11
Cyclic Redundancy Checksum
The CRC error detection method treats the packet of data to
be transmitted as a large polynomial.
The transmitter takes the message polynomial and using
polynomial arithmetic, divides it by a given generating
polynomial.
The quotient is discarded but the remainder is “attached” to
the end of the message.
10.12
Cyclic Redundancy Checksum
The message (with the remainder) is transmitted to the
receiver.
The receiver divides the message and remainder by the same
generating polynomial.
If a remainder not equal to zero results, there was an error
during transmission.
If a remainder of zero results, there was no error during
transmission.
10.13
More Formally
 M(x) - original message treated as a polynomial
 To prepare for transmission:
 Add r 0s to end of the message (where r =
degree of generating polynomial)
 Divide M(x)xr by generating polynomial P(x)
yielding a quotient and a remainder
Q(x)+R(x)/P(x).
10.14
More Formally
 Add (XOR) remainder R(x) to M(x)xr giving
M(x)xr+R(x) and transmit.
 Receiver receives message (M(x)xr+R(x)) and
divides by same P(x).
 If remainder is 0, then there were no errors
during transmission.
 (Any expression which has exactly P(x) as a
term is evenly divisible by P(x).)
 Data word to be sent - 100100
 Key - 1101
10.15
Sender Side
 Therefore, the remainder is 001 and hence the encoded
data sent is 100100001.
10.16
Receiver Side
 Code word received at the receiver side 100100001
10.17
Therefore, the remainder is all zeros. Hence, the
data received has no error
Error in transmission
Sender’s Side
 Data word to be sent - 100100
 Key - 1101
10.18
Therefore, the
remainder is 001 and
hence the
code word sent is
100100001.
Receiver’s Side
 Let there be error in transmission media
 Code word received at the receiver side - 100000001
10.19
Since the
remainder is
not all zeroes,
the error is
detected at the
receiver side.
10.20
Common CRC Polynomials
 CRC-12: x12 + x11 + x3 + x2 + x + 1
 CRC-16: x16 + x15 + x2 + 1
 CRC-CCITT: x16 + x15 + x5 + 1
 CRC-32: x32 + x26 + x23 + x22 + x16 + x12
+ x11 + x10 + x8 + x7 + x5 + x4 + x2 + x +
1
 ATM CRC: x8 + x2 + x + 1
10.21
CRC Example
 Given a pretend P(x) = x5 + x4 + x2 + 1
and a message M(x) = 1010011010,
calculate the remainder using long hand
division and a shift register.
10.22
10-5 CHECKSUM
The last error detection method we discuss here is
called the checksum, or arithmetic checksum. The
checksum is used in the Internet by several protocols
although not at the data link layer. However, we briefly
discuss it here to complete our discussion on error
checking
Idea
One’s Complement
Internet Checksum
Topics discussed in this section:
10.23
Suppose our data is a list of five 4-bit numbers that we
want to send to a destination. In addition to sending these
numbers, we send the sum of the numbers. For example,
if the set of numbers is (7, 11, 12, 0, 6), we send (7, 11, 12,
0, 6, 36), where 36 is the sum of the original numbers.
The receiver adds the five numbers and compares the
result with the sum. If the two are the same, the receiver
assumes no error, accepts the five numbers, and discards
the sum. Otherwise, there is an error somewhere and the
data are not accepted.
Example 10.18
10.24
We can make the job of the receiver easier if we send the
negative (complement) of the sum, called the checksum.
In this case, we send (7, 11, 12, 0, 6, −36). The receiver
can add all the numbers received (including the
checksum). If the result is 0, it assumes no error;
otherwise, there is an error.
Example 10.19
10.25
How can we represent the number 21 in one’s
complement arithmetic using only four bits?
Solution
The number 21 in binary is 10101 (it needs five bits). We
can wrap the leftmost bit and add it to the four rightmost
bits. We have (0101 + 1) = 0110 or 6.
Example 10.20
10.26
How can we represent the number −6 in one’s
complement arithmetic using only four bits?
Solution
In one’s complement arithmetic, the negative or
complement of a number is found by inverting all bits.
Positive 6 is 0110; negative 6 is 1001. If we consider only
unsigned numbers, this is 9. In other words, the
complement of 6 is 9. Another way to find the
complement of a number in one’s complement arithmetic
is to subtract the number from 2n − 1 (16 − 1 in this case).
Example 10.21
10.27
Let us redo Exercise 10.19 using one’s complement
arithmetic. Figure 10.24 shows the process at the sender
and at the receiver. The sender initializes the checksum
to 0 and adds all data items and the checksum (the
checksum is considered as one data item and is shown in
color). The result is 36. However, 36 cannot be expressed
in 4 bits. The extra two bits are wrapped and added with
the sum to create the wrapped sum value 6. In the figure,
we have shown the details in binary. The sum is then
complemented, resulting in the checksum value 9 (15 − 6
= 9). The sender now sends six data items to the receiver
including the checksum 9.
Example 10.22
10.28
The receiver follows the same procedure as the sender. It
adds all data items (including the checksum); the result
is 45. The sum is wrapped and becomes 15. The wrapped
sum is complemented and becomes 0. Since the value of
the checksum is 0, this means that the data is not
corrupted. The receiver drops the checksum and keeps
the other data items. If the checksum is not zero, the
entire packet is dropped.
Example 10.22 (continued)
10.29
Figure 10.24 Example 10.22
1
1 1 1 1
0 0 0 0
10.30
Sender site:
1. The message is divided into 16-bit words.
2. The value of the checksum word is set to 0.
3. All words including the checksum are
added using one’s complement addition.
4. The sum is complemented and becomes the
checksum.
5. The checksum is sent with the data.
Note
10.31
Receiver site:
1. The message (including checksum) is
divided into 16-bit words.
2. All words are added using one’s
complement addition.
3. The sum is complemented and becomes the
new checksum.
4. If the value of checksum is 0, the message
is accepted; otherwise, it is rejected.
Note
10.32
Let us calculate the checksum for a text of 8 characters
(“Forouzan”). The text needs to be divided into 2-byte
(16-bit) words. We use ASCII (see Appendix A) to change
each byte to a 2-digit hexadecimal number. For example,
F is represented as 0x46 and o is represented as 0x6F.
Figure 10.25 shows how the checksum is calculated at the
sender and receiver sites. In part a of the figure, the value
of partial sum for the first column is 0x36. We keep the
rightmost digit (6) and insert the leftmost digit (3) as the
carry in the second column. The process is repeated for
each column. Note that if there is any corruption, the
checksum recalculated by the receiver is not all 0s. We
leave this an exercise.
Example 10.23
10.33
Figure 10.25 Example 10.23
F F
F F F F

More Related Content

PPT
ch10.ppt
PDF
crc_checksum.pdf
PPT
error detection correction
PPSX
Error control
PPTX
Lecture 4 errors detection
PPT
05 directnets errors
PDF
Computer Networking and Data Transmission.pdf
PPT
Full error detection and correction
ch10.ppt
crc_checksum.pdf
error detection correction
Error control
Lecture 4 errors detection
05 directnets errors
Computer Networking and Data Transmission.pdf
Full error detection and correction

Similar to Error Detect and Correct.ppt (20)

PPTX
Check sum
PPT
Identify error and correct data using parity Presentation
PPT
Chapter 10 Error Detection and Correction 267 10.1 INTRODUCTION 267 Types of ...
PPTX
Error detection and correction
PPTX
Error Detection and correction concepts in Data communication and networks
PPTX
Error detection and Correction
PPT
Lecture 21
PPT
chap10..................................ppt
PPTX
Error detection.
PDF
4_Datalink__Error_Detection_and Correction.pdf
PDF
Error detection and correction
PPT
Skr+3200+chapter+3+(kweh)
PDF
Error.pdf
PPTX
Error Detection in Data link layer or Transport layer
PPTX
Introduction to the Data Link Layer
PPTX
Data link layar
PPT
111111111111111111111111111111111111lect5.ppt
PPT
lect5.ppt
PPT
15CS46 - Data communication or computer networks 1_Module-3.ppt
Check sum
Identify error and correct data using parity Presentation
Chapter 10 Error Detection and Correction 267 10.1 INTRODUCTION 267 Types of ...
Error detection and correction
Error Detection and correction concepts in Data communication and networks
Error detection and Correction
Lecture 21
chap10..................................ppt
Error detection.
4_Datalink__Error_Detection_and Correction.pdf
Error detection and correction
Skr+3200+chapter+3+(kweh)
Error.pdf
Error Detection in Data link layer or Transport layer
Introduction to the Data Link Layer
Data link layar
111111111111111111111111111111111111lect5.ppt
lect5.ppt
15CS46 - Data communication or computer networks 1_Module-3.ppt
Ad

Recently uploaded (20)

PPTX
UNIT 4 Total Quality Management .pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Construction Project Organization Group 2.pptx
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
web development for engineering and engineering
PPTX
Geodesy 1.pptx...............................................
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
Current and future trends in Computer Vision.pptx
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
Artificial Intelligence
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
OOP with Java - Java Introduction (Basics)
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
PPT on Performance Review to get promotions
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
UNIT 4 Total Quality Management .pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Construction Project Organization Group 2.pptx
Lecture Notes Electrical Wiring System Components
web development for engineering and engineering
Geodesy 1.pptx...............................................
Automation-in-Manufacturing-Chapter-Introduction.pdf
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Current and future trends in Computer Vision.pptx
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Artificial Intelligence
Model Code of Practice - Construction Work - 21102022 .pdf
bas. eng. economics group 4 presentation 1.pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
OOP with Java - Java Introduction (Basics)
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
Foundation to blockchain - A guide to Blockchain Tech
PPT on Performance Review to get promotions
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Ad

Error Detect and Correct.ppt

  • 2. 10.2 Data can be corrupted during transmission. Some applications require that errors be detected and corrected. Note
  • 3. 10.3 10-1 INTRODUCTION Let us first discuss some issues related, directly or indirectly, to error detection and correction. Types of Errors Redundancy Topics discussed in this section:
  • 5. 10.5 Figure 10.2 Burst error of length 8
  • 6. 10.6 Figure 10.3 The structure of encoder and decoder To detect or correct errors, we need to send redundant bits
  • 10. 10.10 10-4 CYCLIC CODES Cyclic codes are special linear block codes with one extra property. In a cyclic code, if a codeword is cyclically shifted (rotated), the result is another codeword. Cyclic Redundancy Check Hardware Implementation Polynomials Cyclic Code Analysis Advantages of Cyclic Codes Other Cyclic Codes Topics discussed in this section:
  • 11. 10.11 Cyclic Redundancy Checksum The CRC error detection method treats the packet of data to be transmitted as a large polynomial. The transmitter takes the message polynomial and using polynomial arithmetic, divides it by a given generating polynomial. The quotient is discarded but the remainder is “attached” to the end of the message.
  • 12. 10.12 Cyclic Redundancy Checksum The message (with the remainder) is transmitted to the receiver. The receiver divides the message and remainder by the same generating polynomial. If a remainder not equal to zero results, there was an error during transmission. If a remainder of zero results, there was no error during transmission.
  • 13. 10.13 More Formally  M(x) - original message treated as a polynomial  To prepare for transmission:  Add r 0s to end of the message (where r = degree of generating polynomial)  Divide M(x)xr by generating polynomial P(x) yielding a quotient and a remainder Q(x)+R(x)/P(x).
  • 14. 10.14 More Formally  Add (XOR) remainder R(x) to M(x)xr giving M(x)xr+R(x) and transmit.  Receiver receives message (M(x)xr+R(x)) and divides by same P(x).  If remainder is 0, then there were no errors during transmission.  (Any expression which has exactly P(x) as a term is evenly divisible by P(x).)
  • 15.  Data word to be sent - 100100  Key - 1101 10.15
  • 16. Sender Side  Therefore, the remainder is 001 and hence the encoded data sent is 100100001. 10.16
  • 17. Receiver Side  Code word received at the receiver side 100100001 10.17 Therefore, the remainder is all zeros. Hence, the data received has no error
  • 18. Error in transmission Sender’s Side  Data word to be sent - 100100  Key - 1101 10.18 Therefore, the remainder is 001 and hence the code word sent is 100100001.
  • 19. Receiver’s Side  Let there be error in transmission media  Code word received at the receiver side - 100000001 10.19 Since the remainder is not all zeroes, the error is detected at the receiver side.
  • 20. 10.20 Common CRC Polynomials  CRC-12: x12 + x11 + x3 + x2 + x + 1  CRC-16: x16 + x15 + x2 + 1  CRC-CCITT: x16 + x15 + x5 + 1  CRC-32: x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1  ATM CRC: x8 + x2 + x + 1
  • 21. 10.21 CRC Example  Given a pretend P(x) = x5 + x4 + x2 + 1 and a message M(x) = 1010011010, calculate the remainder using long hand division and a shift register.
  • 22. 10.22 10-5 CHECKSUM The last error detection method we discuss here is called the checksum, or arithmetic checksum. The checksum is used in the Internet by several protocols although not at the data link layer. However, we briefly discuss it here to complete our discussion on error checking Idea One’s Complement Internet Checksum Topics discussed in this section:
  • 23. 10.23 Suppose our data is a list of five 4-bit numbers that we want to send to a destination. In addition to sending these numbers, we send the sum of the numbers. For example, if the set of numbers is (7, 11, 12, 0, 6), we send (7, 11, 12, 0, 6, 36), where 36 is the sum of the original numbers. The receiver adds the five numbers and compares the result with the sum. If the two are the same, the receiver assumes no error, accepts the five numbers, and discards the sum. Otherwise, there is an error somewhere and the data are not accepted. Example 10.18
  • 24. 10.24 We can make the job of the receiver easier if we send the negative (complement) of the sum, called the checksum. In this case, we send (7, 11, 12, 0, 6, −36). The receiver can add all the numbers received (including the checksum). If the result is 0, it assumes no error; otherwise, there is an error. Example 10.19
  • 25. 10.25 How can we represent the number 21 in one’s complement arithmetic using only four bits? Solution The number 21 in binary is 10101 (it needs five bits). We can wrap the leftmost bit and add it to the four rightmost bits. We have (0101 + 1) = 0110 or 6. Example 10.20
  • 26. 10.26 How can we represent the number −6 in one’s complement arithmetic using only four bits? Solution In one’s complement arithmetic, the negative or complement of a number is found by inverting all bits. Positive 6 is 0110; negative 6 is 1001. If we consider only unsigned numbers, this is 9. In other words, the complement of 6 is 9. Another way to find the complement of a number in one’s complement arithmetic is to subtract the number from 2n − 1 (16 − 1 in this case). Example 10.21
  • 27. 10.27 Let us redo Exercise 10.19 using one’s complement arithmetic. Figure 10.24 shows the process at the sender and at the receiver. The sender initializes the checksum to 0 and adds all data items and the checksum (the checksum is considered as one data item and is shown in color). The result is 36. However, 36 cannot be expressed in 4 bits. The extra two bits are wrapped and added with the sum to create the wrapped sum value 6. In the figure, we have shown the details in binary. The sum is then complemented, resulting in the checksum value 9 (15 − 6 = 9). The sender now sends six data items to the receiver including the checksum 9. Example 10.22
  • 28. 10.28 The receiver follows the same procedure as the sender. It adds all data items (including the checksum); the result is 45. The sum is wrapped and becomes 15. The wrapped sum is complemented and becomes 0. Since the value of the checksum is 0, this means that the data is not corrupted. The receiver drops the checksum and keeps the other data items. If the checksum is not zero, the entire packet is dropped. Example 10.22 (continued)
  • 29. 10.29 Figure 10.24 Example 10.22 1 1 1 1 1 0 0 0 0
  • 30. 10.30 Sender site: 1. The message is divided into 16-bit words. 2. The value of the checksum word is set to 0. 3. All words including the checksum are added using one’s complement addition. 4. The sum is complemented and becomes the checksum. 5. The checksum is sent with the data. Note
  • 31. 10.31 Receiver site: 1. The message (including checksum) is divided into 16-bit words. 2. All words are added using one’s complement addition. 3. The sum is complemented and becomes the new checksum. 4. If the value of checksum is 0, the message is accepted; otherwise, it is rejected. Note
  • 32. 10.32 Let us calculate the checksum for a text of 8 characters (“Forouzan”). The text needs to be divided into 2-byte (16-bit) words. We use ASCII (see Appendix A) to change each byte to a 2-digit hexadecimal number. For example, F is represented as 0x46 and o is represented as 0x6F. Figure 10.25 shows how the checksum is calculated at the sender and receiver sites. In part a of the figure, the value of partial sum for the first column is 0x36. We keep the rightmost digit (6) and insert the leftmost digit (3) as the carry in the second column. The process is repeated for each column. Note that if there is any corruption, the checksum recalculated by the receiver is not all 0s. We leave this an exercise. Example 10.23
  • 33. 10.33 Figure 10.25 Example 10.23 F F F F F F