Download presentation

Published bySheila Patterson Modified over 4 years ago

1
**Data Link Layer: Error Detection and Correction**

: Data Communication and Computer Networks Asst. Prof. Chaiporn Jaikaeo, Ph.D. Computer Engineering Department Kasetsart University, Bangkok, Thailand Adapted from lecture slides by Behrouz A. Forouzan © The McGraw-Hill Companies, Inc. All rights reserved

2
**Outline Overview of Data Link Layer Types of errors Redundancy**

Correction vs. detection Coding

3
Data Link Layer

4
**Error Control Detecting errors Correcting errors**

Forward error correction Automatic repeat request

5
Types of Errors Single-bit errors Burst errors

6
Redundancy To detect or correct errors, redundant bits of data must be added

7
**Coding Process of adding redundancy for error detection or correction**

Two types: Block codes Divides the data to be sent into a set of blocks Extra information attached to each block Memoryless Convolutional codes Treats data as a series of bits, and computes a code over a continuous series The code computed for a set of bits depends on the current and previous input

8
XOR Operation Main operation for computing error detection/correction codes Similar to modulo-2 addition

9
**Block Coding Message is divided into k-bit blocks**

Known as datawords r redundant bits are added Blocks become n=k+r bits Known as codewords

10
**Example: 4B/5B Block Coding**

Data Code 0000 11110 1000 10010 0001 01001 1001 10011 0010 10100 1010 10110 0011 10101 1011 10111 0100 01010 1100 11010 0101 01011 1101 11011 0110 01110 1110 11100 0111 01111 1111 11101 k = ? r = ? n = ?

11
**Error Detection in Block Coding**

12
Notes An error-detecting code can detect only the types of errors for which it is designed Other types of errors may remain undetected. There is no way to detect every possible error

13
Error Correction

14
**Example: Error Correction Code**

k, r, n = ? The receiver receives 01001, what is the original dataword?

15
**Hamming Distance d(01, 00) = ? d(11, 00) = ? d(010, 100) = ?**

Hamming Distance between two words is the number of differences between corresponding bits. d(01, 00) = ? d(11, 00) = ? d(010, 100) = ? d(0011, 1000) = ? How many 8-bit words are n bits away from ?

16
**Minimum Hamming Distance**

The minimum Hamming distance is the smallest Hamming distance between all possible pairs in a set of words. Find the minimum Hamming Distance of the following codebook 00000 01011 10101 11110

17
**Detection Capability of Code**

To guarantee the detection of up to s-bit errors, the minimum Hamming distance in a block code must be dmin = s + 1

18
**Correction Capability of Code**

To guarantee the correction of up to t-bit errors, the minimum Hamming distance in a block code must be dmin = 2t + 1

19
**Example: Hamming Distance**

A code scheme has a Hamming distance dmin = 4. What is the error detection and correction capability of this scheme?

20
**Common Detection Methods**

Parity check Cyclic Redundancy Check Checksum

21
**Parity Check Most common, least complex Single bit is added to a block**

Two schemes: Even parity – Maintain even number of 1s E.g., 1011 10111 Odd parity – Maintain odd number of 1s E.g., 1011 10110

22
Example: Parity Check Suppose the sender wants to send the word world. In ASCII the five characters are coded (with even parity) as The following shows the actual bits sent

23
**Example: Parity Check Receiver receives this sequence of words:**

Which blocks are accepted? Which are rejected?

24
**Parity-Check: Encoding/Decoding**

25
**Performance of Parity Check**

Can 1-bit errors be detected? Can 2-bit errors be detected? :

26
2D Parity Check What is its performance?

27
**2D Parity Check: Performance**

28
**2D Parity Check: Performance**

29
**Cyclic Redundancy Check**

In a cyclic code, rotating a codeword always results in another codeword Example:

30
CRC Encoder/Decoder

31
CRC Generator

32
Checking CRC

33
**Polynomial Representation**

More common representation than binary form Easy to analyze Divisor is commonly called generator polynomial

34
**Division Using Polynomial**

35
**Strength of CRC M(x)xn = Q(x)G(x) + R(x)**

Can be analyzed using polynomial M(x) – Original message G(x) – Generator polynomial of degree n R(x) – Generated CRC Transmitted message is M(x)xn – R(x) which is divisible by G(x) M(x)xn = Q(x)G(x) + R(x)

36
**Strength of CRC Received message is M(x)xn – R(x) + E(x)**

where E(x) represents bit errors Receiver does not detect any error when E(x) is divisible by G(x), which means either: E(x) 0 No error E(x) 0 Undetectable error

37
Strength of CRC If G(x) contains at least two terms, then all single-bit errors can be detected If G(x) cannot divide xt + 1 (0 t < n), then all isolated double errors can be detected If G(x) contains a factor of (x+1), all odd-numbered errors can be detected

38
**Properties of Good Polynomial**

It should have at least two terms The coefficient of the term x0 should be 1 It should not divide xt + 1, for t between 2 and n − 1 It should have the factor x + 1

39
**CRC's Strength Summary All burst errors with L ≤ n will be detected**

All burst errors with L = n + 1 will be detected with probability 1 – (1/2)n–1 All burst errors with L > n + 1 will be detected with probability 1 – (1/2)n

40
**Example: CRC Generators**

Which of the following polynomials guarantees that a single-bit error can be detected (a) x+1 (b) x3 (c) 1

41
**Example: CRC Generators**

Criticize the following CRC generators x3 x10 + x9 + x5 x6+1

42
Standard Polynomials

43
**Error Correction Two methods Retransmission after detecting error**

Forward error correction (FEC)

44
**Forward Error Correction**

Consider only a single-bit error in k bits of data k possibilities for an error One possibility for no error #possibilities = k + 1 Add r redundant bits to distinguish these possibilities; we need 2r k+1 But the r bits are also transmitted along with data; hence 2r k+r+1

45
**Number of Redundant Bits**

Number of data bits k Number of redundancy bits r Total bits k + r 1 2 3 5 6 4 7 9 10 11

46
**Hamming Code Simple, powerful FEC Widely used in computer memory**

Known as ECC memory error-correcting bits

47
**Redundant Bit Calculation**

48
Example: Hamming Code

49
**Example: Correcting Error**

Receiver receives

50
**Strength of Hamming Code**

Minimum Hamming Distance is 3 It can correct at most 1 bit error It can detect at most 2 bit error But… not both!!! (Why?) SECDED – Extended Hamming code with one extra parity bit Achieves minimum Hamming distance of 4 Can distinguish between one bit and two bit errors

51
**Burst Error Correction**

Similar presentations

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google