1 / 37

EE122: Error Detection and Reliable Transmission

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

zariel
Download Presentation

EE122: Error Detection and Reliable Transmission

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EE122: Error Detection and Reliable Transmission November 19, 2003

  2. 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

  3. Today’s Lecture: 24 2 17,18 Application 19, 20 10,11 6 Transport 14, 15, 16 7, 8, 9 Network (IP) 24 21, 22 Link Physical 23

  4. 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

  5. Overview • Error detection & recovery • Reliable Transmission

  6. 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

  7. 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 1 1011010 0 0010110 1 1110101 1 1001011 0 1000110 1

  8. odd number of 1’s How Many Errors Can you Detect? • All 1-bit errors • Example: 0110100 1 1011010 0 0000110 1 error bit 1110101 1 1001011 0 1000110 1

  9. How Many Errors Can you Detect? • All 2-bit errors • Example: 0110100 1 1011010 0 0000111 1 error bits 1110101 1 1001011 0 1000110 1 odd number of 1’s on columns

  10. How Many Errors Can you Detect? • All 3-bit errors • Example: 0110100 1 1011010 0 0000111 1 error bits 1100101 1 1001011 0 1000110 1 odd number of 1’s on column

  11. How Many Errors Can you Detect? • Most 4-bit errors • Example of 4-bit error that is not detected: 0110100 1 1011010 0 0000111 1 error bits 1100100 1 1001011 0 1000110 1 How many errors can you correct?

  12. 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

  13. -15+16 = 1 00000000 1 + 1 00000001 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

  14. 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 that M(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)

  15. 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

  16. 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 + 010 111 101 + 001 100 1011 + 0111 1100 101 - 010 111 101 - 001 100 1011 - 0111 1100

  17. 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)

  18. 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)

  19. 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)

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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… • b1b2b3 b4b5 b6 b7 b8b9 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

  25. 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)

  26. Overview • Error detection & recovery • Reliable transmission

  27. 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

  28. 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)

  29. Encoding Encoding n+k blocks Transmission >= n blocks Received Decoding Content original n blocks Erasure Codes n blocks Content (*Michael Luby slide)

  30. Example: Digital Fountain Use erasure codes for reliable data distribution Intuition: - Goal is to fill the cup - Full cup = content recovered (*Michael Luby slide)

  31. 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)

  32. Choose degree Insert header, and send Prob Degree 1 0.055 2 0.3 Degree Dist. 3 0.1 4 0.08 100000 0.0004 LT encoding Content Choose 2 random content symbols XOR content symbols 2 (*Michael Luby slide)

  33. Choose degree Insert header, and send Prob Degree 1 0.055 2 0.3 Degree Dist. 3 0.1 4 0.08 100000 0.0004 LT Encoding Content Choose 1 random content symbol Copy content symbol 1 (*Michael Luby slide)

  34. Choose degree Insert header, and send Prob Degree 1 0.055 2 0.3 Degree Dist. 3 0.1 4 0.08 100000 0.0004 LT Encoding Content Choose 4 random content symbols XOR content symbols 4 (*Michael Luby slide)

  35. LT Decoding Content (unknown) • Collect enough encoding symbols and set up graph between encoding symbols and content symbols to be recovered • Identify encoding symbol of degree 1. STOP if none exists 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 4. Go to Step 2. (*Michael Luby slide)

  36. 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)

  37. What Do You Need To Know? • Understand • 2-dimensional parity • CRC • Hamming codes • Tradeoff between achieving reliability via retransmission vs. error correction

More Related