37
Katz, Stoica F04 EE122: Error Detection and Reliable Transmission November 19, 2003

EE122: Error Detection and Reliable Transmission

  • Upload
    zariel

  • View
    30

  • Download
    1

Embed Size (px)

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

Page 1: EE122: Error Detection and Reliable Transmission

Katz, Stoica F04

EE122: Error Detection and Reliable Transmission

November 19, 2003

Page 2: EE122: Error Detection and Reliable Transmission

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

Page 3: EE122: Error Detection and Reliable Transmission

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

Page 4: EE122: Error Detection and Reliable Transmission

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

Page 5: EE122: Error Detection and Reliable Transmission

5Katz, Stoica F04

Overview

Error detection & recovery Reliable Transmission

Page 6: EE122: Error Detection and 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

Page 7: EE122: Error Detection and Reliable Transmission

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

Page 8: EE122: Error Detection and Reliable Transmission

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

Page 9: EE122: Error Detection and Reliable Transmission

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

Page 10: EE122: Error Detection and Reliable Transmission

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

Page 11: EE122: Error Detection and Reliable Transmission

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?

Page 12: EE122: Error Detection and Reliable Transmission

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

Page 13: EE122: Error Detection and Reliable Transmission

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

Page 14: EE122: Error Detection and Reliable Transmission

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)

Page 15: EE122: Error Detection and Reliable Transmission

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

Page 16: EE122: Error Detection and Reliable Transmission

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

Page 17: EE122: Error Detection and Reliable Transmission

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)

Page 18: EE122: Error Detection and Reliable Transmission

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)

Page 19: EE122: Error Detection and Reliable Transmission

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)

Page 20: EE122: Error Detection and Reliable Transmission

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

Page 21: EE122: Error Detection and Reliable Transmission

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

Page 22: EE122: Error Detection and Reliable Transmission

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

Page 23: EE122: Error Detection and Reliable Transmission

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

Page 24: EE122: Error Detection and Reliable Transmission

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

Page 25: EE122: Error Detection and Reliable Transmission

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

Page 26: EE122: Error Detection and Reliable Transmission

26Katz, Stoica F04

Overview

Error detection & recovery Reliable transmission

Page 27: EE122: Error Detection and 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

Page 28: EE122: Error Detection and Reliable Transmission

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)

Page 29: EE122: Error Detection and Reliable Transmission

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)

Page 30: EE122: Error Detection and Reliable Transmission

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)

Page 31: EE122: Error Detection and Reliable Transmission

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)

Page 32: EE122: Error Detection and Reliable Transmission

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)

Page 33: EE122: Error Detection and Reliable Transmission

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)

Page 34: EE122: Error Detection and Reliable Transmission

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)

Page 35: EE122: Error Detection and Reliable Transmission

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)

Page 36: EE122: Error Detection and Reliable Transmission

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)

Page 37: EE122: Error Detection and Reliable Transmission

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