error detection codes error detection
play

Error Detection Codes Error Detection Two types Nave scheme Error - PDF document

Srinidhi Varadarajan 02/14/2000 Error Detection Codes Error Detection Two types Nave scheme Error Detection Codes (e.g. CRC, Send a duplicate copy of the Parity, Checksums) message Error Correction Codes (e.g. Problems


  1. Srinidhi Varadarajan 02/14/2000 Error Detection Codes Error Detection ■ Two types ■ Naïve scheme ◆ Error Detection Codes (e.g. CRC, ◆ Send a duplicate copy of the Parity, Checksums) message ◆ Error Correction Codes (e.g. ■ Problems Hamming, Reed Solomon) ◆ Takes up too much space ■ Basic Idea ◆ Poor performance. ◆ Add redundant information to ✦ Can’t even detect 2 bit errors determine if errors have been ■ Cyclic Redundancy Codes are introduced common ✦ Why redundant? Two Dimensional Parity Internet Checksum Algorithm Parity bits ■ Used by IP and TCP 0101001 1 ■ Algorithm treats data as 16 bit 1101001 0 unsigned quantities 1011110 1 ◆ Add the data in the frame using 1’s Data 0001110 1 complement arithmetic 0110100 1 ◆ Take the one’s complement of the result 1011111 0 ◆ IP and TCP store the sum as a 32 Parity 1111011 0 bit unsigned integer byte ✦ Note: The example in the book ■ Each byte is protected by a parity bit uses a 16 bit checksum ■ The entire frame is protected by a parity byte Cyclic Redundancy Check CRC Computation ■ Treat the (n+1) bit message as a polynomial ■ Given: of degree n. The bits are the coefficients of ◆ Message: M(x) the polynomial. ◆ 1101 = 1*x 3 + 1*x 2 + 0*x 1 + 1*x 0 ◆ Divisor: C(x) ■ Multiply M(x) by x k , i.e. add k zeroes to ■ Calculating CRC the end of the message. Call this T(x) ◆ Sender and transmitter choose a divisor polynomial of degree k. e.g x 3 + x 2 + 1 ■ Divide T(x) by C(x). ◆ Add k bits to the (n+1) bit message such that ■ Subtract the remainder from T(x) the n+1+k bit message is exactly divisible by the divisor ■ The result is the message including the ■ Choice of divisor is very important. CRC ◆ It determines the kind of errors that the CRC can guard against. Title goes here 1

  2. Srinidhi Varadarajan 02/14/2000 CRC Computation Reliable Transmission 11111001 Generator 1101 10011010000 Message 1101 1001 ■ Why? 1101 ◆ Frame corruption can be severe 1000 1101 ◆ CRCs are not enough. Recall 1011 CRCs don’t correct errors 1101 ■ Two fundamental mechanisms 1100 1101 ◆ Acknowledgment 1000 1101 ◆ Timeout 101 Remainder ■ General idea is called ARQ ■ C(x) = x 3 + x 2 + 1 (Automatic Repeat Request) ■ M(x) = x 7 + x 4 + x 3 + x ■ Subtraction: logical XOR operation Stop and Wait: Possible Scenarios Stop and Wait Protocol Sender Receiver Sender Receiver Frame Frame ■ Simple operation Timeout Timeout Time ACK ACK ◆ Transmit a packet Frame ◆ Wait for an acknowledgement Timeout (ACK) ACK ◆ If no ACK arrives within a preset (a) (c) time interval, assume that the packet is lost and retransmit Sender Receiver Sender Receiver Frame Frame Timeout Timeout ■ Repeat the procedure until all ACK packets have been successfully Frame Timeout Frame transmitted Timeout ACK ACK (b) (d) Performance Problems Performance problems? ■ No more than one packet in flight. ■ Using the actual 10Mbps Ethernet RTT of 50us ◆ That’s usually bad, here’s why (roughly) ■ Take a 10Mbps network with a 50ms round trip time ■ Delay bandwidth = 10 7 * 50us = 500 bits ■ Delay bandwidth = 10 7 * 0.050 = 500 Kbits ■ In Stop and Wait, only frame can be in flight. The max Ethernet frame size is 1500 bytes ◆ Hence sending rate = ■ In Stop and Wait, only frame can be in flight. The ✦ 1500 * 8 ÷ 50us = 240 Mbps max frame size is 1500 bytes ◆ Hence sending rate = ◆ This is much greater than the link capacity of 10 ✦ 1500 * 8 ÷ 0.050 = 240 Kbps Mbps ✦ What happened?? ◆ This is much less than the link capacity of 10 Mbps Title goes here 2

  3. Srinidhi Varadarajan 02/14/2000 Performance Analysis Performance Analysis ■ Putting in numbers for 10 Mbps ethernet ◆ Packet size: 1518 bytes ◆ ACK size: 64 bytes ◆ PROP: 51.2us ■ Efficiency = 92.22% ◆ More believable! ■ Moral: If frame size exceeds delay bandwidth product, efficiency computation should be used Significance of Delay Bandwidth Sliding Window Protocols ■ Delay bandwidth represents the amount of data that has left the transmitter and is still on the cable. ■ Think of the cable as a pipe. This keeps the pipe full ■ Delay bandwidth also represents the upper bound on stability. ■ More sophisticated ARQ algorithms try to match their sending rate to the dynamic delay • Keep the pipe full bandwidth product •Send N packets before expecting the first ACK ◆ Why is delay bandwidth dynamic? Sliding Window Protocol Sliding Window Protocol Send out N frames, each with a linearly ■ Receiver maintains 3 variables ■ increasing sequence number ◆ Receive window size: Upper bound on Sender uses 3 variables ■ out of order frames received ◆ Send window size: Upper bound on unACKed frames ◆ LAF: Largest acceptable frame ◆ LAR: Last ACK received ◆ LFR: Last frame (in sequence) received ◆ LFS: Last frame sent ◆ Invariant: LAF – LFR ≤ RWS Invariant: LFS – LAR ≤ SWS ■ ≤ RWS ≤ SWS … … … … LFR LAF LAR LFS Title goes here 3

  4. Srinidhi Varadarajan 02/14/2000 Performance Improvements Operation ■ Sender sends “send window size” ■ Negative ACK (number of) frames ◆ Receiver NACK’s frames that were not ■ Receiver ACKs last in sequence frame received received. ✦ Additional complexity. ■ Error conditions: • Loss of NACKs, receiver timeout ◆ Timeout mechanism needed ■ Selective ACK: ◆ Receiver receives out of receive window frame ◆ Receiver ACKs specific frames. ACKs ✦ ACK it. Throw away the frame are not inclusive ◆ Sender receives out of “send window” ◆ Sender can use this to detect out of order ack arrival and retransmit ✦ Old delayed ACK. Throw it away Efficiency Efficiency ■ E.g.: ◆ Packet size = 2000 bits, ACK = 80   N TRANS =   bits Efficiency min , 1 + +   TRANS ACK 2 * PROP ◆ Bandwidth = 155 Mbps ATM over fibre ◆ Cable length: 30 km   N 2000 =   min , 1 Efficiency + +   ■ Increases linearly with N until it reaches 100 % 2000 80 31000 N = 1; Eff = 5.95%; N = 16; Eff = 96.73% Window Size Settings Finite Sequence Numbers ■ Sequence numbers have a finite length. ■ Common modes They increment by modulo arithmetic ◆ RWS = 1, SWS = N ✦ Receiver does not buffer any out of ■ Cases: order frames ◆ RWS = 1 ◆ RWS = SWS = N ◆ MaxSeqNum >= SWS + 1 ✦ Receiver can buffer as many ◆ Why + 1 frames as the sender sends. ✦ Receiver receives SWS, sends ACK ◆ RWS > SWS? ✦ ACK is lost, receiver expects wrong frame Title goes here 4

  5. Srinidhi Varadarajan 02/14/2000 Finite Sequence Numbers ■ RWS = SWS ◆ MaxSeq Number >= 2 * SWS ◆ Why? ✦ Hint: receiver ACK is lost ■ RWS < SWS ◆ MaxSeq Number >= max(SWS + 1, 2 * RWS) ◆ How? Title goes here 5

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend