EE122: Error Detection and Reliable Transmission

Preview:

DESCRIPTION

EE122: Error Detection and Reliable Transmission. November 19, 2003. EECS 122: Introduction to Computer Networks Error Detection and Reliable Transmission. Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley - PowerPoint PPT Presentation

Citation preview

Katz, Stoica F04

EE122: Error Detection and Reliable Transmission

November 19, 2003

Katz, Stoica F04

EECS 122: Introduction to Computer Networks

Error Detection and Reliable Transmission

Computer Science Division

Department of Electrical Engineering and Computer Sciences

University of California, Berkeley

Berkeley, CA 94720-1776

3Katz, Stoica F04

Today’s Lecture: 24

Network (IP)

Application

Transport

Link

Physical

2

7, 8, 9

10,11

14, 15, 16

21, 22

23

6

17,18

19, 20

24

4Katz, Stoica F04

High Level View

Goal: transmit correct information Problem: bits can get corrupted

- Electrical interference, thermal noise

Solution- Detect errors

- Recover from errors

• Correct errors

• Retransmission already done this

5Katz, Stoica F04

Overview

Error detection & recovery Reliable Transmission

6Katz, Stoica F04

Error Detection

Problem: detect bit errors in packets (frames) Solution: add extra bits to each packet Goals:

- Reduce overhead, i.e., reduce the number of redundancy bits

- Increase the number and the type of bit error patterns that can be detected

Examples:- Two-dimensional parity

- Checksum

- Cyclic Redundancy Check (CRC)

- Hamming Codes

7Katz, Stoica F04

Two-dimensional Parity

Add one extra bit to a 7-bit code such that the number of 1’s in the resulting 8 bits is even (for even parity, and odd for odd parity)

Add a parity byte for the packet Example: five 7-bit character packet, even parity

0110100

1011010

0010110

1110101

1001011

1

0

1

1

0

1000110 1

8Katz, Stoica F04

How Many Errors Can you Detect?

All 1-bit errors Example:

0110100

1011010

0000110

1110101

1001011

1

0

1

1

0

1000110 1

error bitodd number of 1’s

9Katz, Stoica F04

How Many Errors Can you Detect?

All 2-bit errors Example:

0110100

1011010

0000111

1110101

1001011

1

0

1

1

0

1000110 1

error bits

odd number of 1’s on columns

10Katz, Stoica F04

How Many Errors Can you Detect?

All 3-bit errors Example:

0110100

1011010

0000111

1100101

1001011

1

0

1

1

0

1000110 1

error bits

odd number of 1’s on column

11Katz, Stoica F04

How Many Errors Can you Detect?

Most 4-bit errors Example of 4-bit error that is not detected:

0110100

1011010

0000111

1100100

1001011

1

0

1

1

0

1000110 1

error bits

How many errors can you correct?

12Katz, Stoica F04

Checksum

Sender: add all words of a packet and append the result (checksum) to the packet

Receiver: add all words of a packet and compare the result with the checksum

Can detect all 1-bit errors Example: Internet checksum

- Use 1’s complement addition

13Katz, Stoica F04

1’s Complement Revisited

Negative number –x is x with all bits inverted When two numbers are added, the carry-on is

added to the result Example: -15 + 16; assume 8-bit representation

15 = 00001111 -15 = 11110000

16 = 00010000

+

00000000 1+

1

00000001

-15+16 = 1

14Katz, Stoica F04

Cyclic Redundancy Check (CRC)

Represent a (n+1)-bit message as an n-degree polynomial M(x)

- E.g., 10101101 M(x) = x7 + x5 + x3 + x2 + x0

Choose a divisor k-degree polynomial C(x) Compute reminder R(x) of M(x)*xk / C(x), i.e., compute A(x)

such thatM(x)*xk = A(x)*C(x) + R(x), where degree(R(x)) < k

Let T(x) = M(x)*xk – R(x) = A(x)*C(x)

Then- T(x) is divisible by C(x)- First n coefficients of T(x) represent M(x)

15Katz, Stoica F04

Cyclic Redundancy Check (CRC)

Sender: - Compute and send T(x), i.e., the coefficients of T(x)

Receiver: - Let T’(x) be the (n+k)-degree polynomial generated from the received

message

- If C(x) divides T’(x) no errors; otherwise errors

Note: all computations are modulo 2

16Katz, Stoica F04

Arithmetic Modulo 2

Like binary arithmetic but without borrowing/carrying from/to adjacent bits

Examples:

Addition and subtraction in binary arithmetic modulo 2 is equivalent to XOR

101 +010111

101 +001100

1011 +01111100

1011 -01111100

101 -010111

101 -001100

a b a b

0 0 0

0 1 1

1 0 1

1 1 0

17Katz, Stoica F04

Some Polynomial Arithmetic Modulo 2 Properties

If C(x) divides B(x), then degree(B(x)) >= degree(C(x))

Subtracting/adding C(x) from/to B(x) modulo 2 is equivalent to performing an XOR on each pair of matching coefficients of C(x) and B(x)

- E.g.:

B(x) = x7 + x5 + x3 + x2 + x0 (10101101)

C(x) = x3 + x1 + x0 (00001011)

B(x) - C(x) = x7 + x5 + x2 + x1 (10100110)

18Katz, Stoica F04

Example (Sender Operation)

Send packet 110111; choose C(x) = 101- k = 2, M(x)*xK 11011100

Compute the reminder R(x) of M(x)*xk / C(x)

Compute T(x) = M(x)*xk - R(x) 11011100 xor 1 = 11011101 Send T(x)

101) 11011100 101 111 101 101 101 100 101 1 R(x)

19Katz, Stoica F04

Example (Receiver Operation)

Assume T’(x) = 11011101 - C(x) divides T’(x) no errors

Assume T’(x) = 11001101- Reminder R’(x) = 1 error!

101) 11001101 101 110 101 111 101 101 101 1 R’(x)

Note: an error is not detected iff C(x) divides T’(x) – T(x)

20Katz, Stoica F04

CRC Properties

Detect all single-bit errors if coefficients of xk and x0 of C(x) are one

Detect all double-bit errors, if C(x) has a factor with at least three terms

Detect all number of odd errors, if C(x) contains factor (x+1)

Detect all burst of errors smaller than k bits

21Katz, Stoica F04

Code words

Combination of the n payload bits and the k check bits as being a n+k bit code word

For any error correcting scheme, not all n+k bit strings will be valid code words

Errors can be detected if and only if the received string is not a valid code word- Example: even parity check only detects an odd number of

bit errors

22Katz, Stoica F04

Hamming Distance

Given code words A and B, the Hamming distance between them is the number of bits in A that need to be flipped to turn it into B- E.g., H(011101,000000) = 4

If all code words are at least d Hamming distance apart, then up to d-1 bit errors can be detected

23Katz, Stoica F04

Error Correction

If all the code words are at least a hamming distance of 2d+1 apart then up to d bit errors can be corrected- Just pick the codeword closest to the one received!

How many bits are required to correct d errors when there are n bits in the payload?

Example: d=1: Suppose n=3. Then any payload can be transformed into 3 other payload strings (e.g., 000 into 001, 010 or 100).- Need at least two extra bits to differentiate between 4 possibilities- In general need at least k ≥ log2(n+1) bits- A scheme that is optimal is called a perfect parity code

24Katz, Stoica F04

Perfect Parity Codes

Consider a codeword of n+k bits- b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11…

Parity bits are in positions 20, 21, 22 ,23 ,24…- b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11…

A parity bit in position 2h, checks all data bits bp such that if you write out p in binary, the hth place in p’s binary representation is a one

25Katz, Stoica F04

Example: (7,4)-Parity Code

n=4, k=3- Corrects one error- log2(1+n) = 2.32

k = 3, perfect parity code

data payload = 1010- For each error

there is a unique combination of checks that fail

- E.g., 3rd bit is in error,:1000 both b2 and b4 fail (single case in which only b2 and b4 fail)

b1 b2 b3 b4 b5 b6 b7

Position 1 10 11 100 101 110 111

Check:b1x x x x

Check:b2x x x x

Check:b4x x x x

b1 b2 1 b40 1 0

Position 1 10 11 100 101 110 111

Check:b11 1 0 0

Check:b20 1 1 0

Check:b41 0 1 0

26Katz, Stoica F04

Overview

Error detection & recovery Reliable transmission

27Katz, Stoica F04

Reliable Transmission

Problem: obtain correct information once errors are detected

Solutions:- Use error correction codes

• E.g. perfect parity codes, erasure codes (see next)

- Use retransmission (we have studied this already)

Algorithmic challenges: - Achieve high link utilization, and low overhead

28Katz, Stoica F04

Error correction or Retransmission?

Error Correction requires a lot of redundancy- Wasteful if errors are unlikely

Retransmission strategies are more popular- As links get reliable this is just done at the transport

layer

Error correction is useful when retransmission is costly (satellite links, multicast)

29Katz, Stoica F04

Content

Erasure Codes

n blocks

Encoding

Encoding

n+k blocks

Received

Transmission>= n blocks

Content

Decoding

original n blocks

(*Michael Luby slide)

30Katz, Stoica F04

Example: Digital Fountain

Intuition: - Goal is to fill the cup - Full cup = content recovered

Use erasure codesfor reliable data distribution

(*Michael Luby slide)

31Katz, Stoica F04

Erasure Coding Approaches

Reed-Solomon codes-Complex encoding/decoding algorithm and analysis

Tornado codes-Simple encoding/decoding algorithm

-Complexity and theory in design and analysis

LT codes-Simpler design and analysis

(*Michael Luby slide)

32Katz, Stoica F04

2

Content

Insert header, and sendDegree Prob

1 0.055

0.0004

0.32

0.13

0.084

100000

Degree Dist.

XOR content symbols

Choose degree

Choose 2 random content symbols

LT encoding

(*Michael Luby slide)

33Katz, Stoica F04

1

Content

Insert header, and sendDegree Prob

1 0.055

0.0004

0.32

0.13

0.084

100000

Degree Dist.

Copy contentsymbol

Choose degree

Choose 1 randomcontent symbol

LT Encoding

(*Michael Luby slide)

34Katz, Stoica F04

4

Content

Insert header, and sendDegree Prob

1 0.055

0.0004

0.32

0.13

0.084

100000

Degree Dist.

XOR contentsymbols

Choose degree

Choose 4 randomcontent symbols

LT Encoding

(*Michael Luby slide)

35Katz, Stoica F04

1. Collect enough encoding symbols and set up graph between encoding symbols and content symbols to be recovered

3. Copy value of encoding symbol into unique neighbor, XOR value of newly recovered content symbol into encoding symbol neighbors and delete edges emanating from content symbol

2. Identify encoding symbol of degree 1. STOP if none exists

4. Go to Step 2.

Content (unknown)

LT Decoding

(*Michael Luby slide)

36Katz, Stoica F04

LT Encoding Properties

Encoding symbols generated independently of each other Any number of encoding symbols can be generated on the

fly Reception overhead independent of loss patterns

- The success of the decoding process depends only on the degree distribution of received encoding symbols.

- The degree distribution on received encoding symbols is the same as the degree distribution on generated encoding symbols.

(*Michael Luby slide)

37Katz, Stoica F04

What Do You Need To Know?

Understand- 2-dimensional parity

- CRC

- Hamming codes

Tradeoff between achieving reliability via retransmission vs. error correction

Recommended