T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 12: Reliability Slides used with permissions.

Slides:



Advertisements
Similar presentations
EE 4272Spring, 2003 Chapter 7 Data Link Control Objectives: Effective & reliable data communication between two directly connected transmitting-receiving.
Advertisements

Lecture 12 Layer 2 – Data Link Layer Protocols
Introduction to Information Technologies
CSCI-1680 Link Layer Reliability Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Rodrigo Fonseca.
Reliability & Channel Coding
Chapter 6 Errors, Error Detection, and Error Control.
Spring 2002CS 4611 Outline Encoding Framing Error Detection Sliding Window Algorithm Point-to-Point Links.
Fundamentals of Computer Networks ECE 478/578 Lecture #4: Error Detection and Correction Instructor: Loukas Lazos Dept of Electrical and Computer Engineering.
Chapter Six Errors, Error Detection, and Error Control Data Communications and Computer Networks: A Business User’s Approach Sixth Edition.
1 Chapter Six - Errors, Error Detection, and Error Control Chapter Six.
PART III DATA LINK LAYER. Position of the Data-Link Layer.
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 12 Introduction to Computer Networks.
The Data Link Layer Chapter 3. Position of the data-link layer.
EE 122: Error detection and reliable transmission Ion Stoica September 16, 2002.
1 Outline Encoding Framing Error Detection Sliding Window Algorithm Point-to-Point Links.
1 ITC242 – Introduction to Data Communications Week 10 Topic 16 Data link control.
The OSI Reference Model
Chapter 2 : Direct Link Networks (Continued). So far... Modulation and Encoding Link layer protocols Error Detection -- Parity Check.
Spring 2003CS 4611 Outline Encoding Framing Error Detection Sliding Window Algorithm Point-to-Point Links.
Chapter 6 Errors, Error Detection, and Error Control
20101 The Data Link Layer Chapter Design Issues Controls communication between 2 machines directly connected by “wire”-like link Services Provided.
Error Detection and Correction
Error Detection and Reliable Transmission EECS 122: Lecture 24 Department of Electrical Engineering and Computer Sciences University of California Berkeley.
18-Aug-154/598N: Computer Networks Overview Direct link networks –Error detection - Section 2.4 –Reliable transmission - Section 2.5.
1 Data Link Layer Lecture 20 Imran Ahmed University of Management & Technology.
PART III DATA LINK LAYER. Position of the Data-Link Layer.
Lecture 7: Reliable Packet Transmission. Cyclic Redundancy Check Add k bits of extra data (the CRC field) to an n-bit message to provide error detection.
Error Coding Transmission process may introduce errors into a message.  Single bit errors versus burst errors Detection:  Requires a convention that.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 14.
Lecture 6: Framing and Error Detection-Data Link Layer Functions
27-Oct-15Computer Networks1 Outline Chapter 2: Direct Link Networks Encoding Framing Error Detection Sliding Window Algorithm Point-to-Point Links.
Fall 2000Datacom 11 Outline Hardware Building Blocks Encoding Framing Error Detection Sliding Window Algorithm Point-to-Point Links.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Data Link Layer PART III.
1 Chapter Six - Errors, Error Detection, and Error Control Chapter Six.
Data Communications & Computer Networks, Second Edition1 Chapter 6 Errors, Error Detection, and Error Control.
Link Layer Dr. Mozafar Bag-Mohammadi Ilam University.
Computer Science Division
Computer Communication & Networks Lecture 9 Datalink Layer: Error Detection Waleed Ejaz
CHAPTER 3: DATA LINK CONTROL Flow control, Error detection – two dimensional parity checks, Internet checksum, CRC, Error control, Transmission efficiency.
Error Detection.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 PART III: DATA LINK LAYER ERROR DETECTION AND CORRECTION 7.1 Chapter 10.
Transmission Errors Error Detection and Correction.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link layer services: m error detection, correction m sharing.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Reliability Some slides used with permissions.
Computer Networking Lecture 16 – Reliable Transport.
Introduction to Information Technologies
ERROR DETECTION AND CORRECTION
Data Link Layer.
Part III. Data Link Layer
DATA COMMUNICATION AND NETWORKINGS
Advanced Computer Networks
CIS 321 Data Communications & Networking
Part III Datalink Layer 10.
Error Detection Bit Error Rate(BER): It is the ratio of number Ne of errors appearing over a certain time interval t to the number Nt of 1 and 0 pulses.
COMP/ELEC 429/556 Introduction to Computer Networks
Packetizing Error Detection
Packetizing Error Detection
Chapter 7 Error Detection and Correction
Reliable transmission
Point-to-Point Links Outline Encoding Framing Error Detection
Introduction to Information Technologies
Error Detection Neil Tang 9/26/2008
Dr. Mozafar Bag-Mohammadi Ilam University
Error detection: Outline
EECS 122: EE122: Error Detection and Reliable Transmission
Data Link Layer. Position of the data-link layer.
Presentation transcript:

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 12: Reliability Slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University2 Overview Goal: transmit correct information Problem: bits can get corrupted –Electrical interference, thermal noise Solution –Detect errors –Recover from errors Correct errors Retransmission

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University3 Outline  Error detection Reliable Transmission

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University4 Naïve approach Send a message twice Compare two copies at the receiver –If different, some errors exist How many bits of error can you detect? What is the overhead?

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University5 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

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University6 Parity Even parity –Add a parity bit to 7 bits of data to make an even number of 1’s How many bits of error can be detected by a parity bit? What’s the overhead?

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University7 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

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University8 How Many Errors Can you Detect? All 1-bit errors Example: error bit odd number of 1’s

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University9 How Many Errors Can you Detect? All 2-bit errors Example: error bits odd number of 1’s on columns

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University10 How Many Errors Can you Detect? All 3-bit errors Example: error bits odd number of 1’s on column

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University11 How Many Errors Can you Detect? Most 4-bit errors Example of 4-bit error that is not detected: error bits How many errors can you correct?

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University12 Checksum Sender: add all words of a packet and append the result (checksum) to the packet Receiver: add all words of a received packet and compare the result with the checksum Example: Internet checksum –Use 1’s complement addition

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University13 1’s Complement Negative number –x is x with all bits inverted When two numbers are added, the carry-on is added to the result Example: ; assume 8-bit representation 15 =  -15 = = = 1

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University14 Internet Checksum Implementation u_short cksum(u_short *buf, int count) { register u_long sum = 0; while (count--) { sum += *buf++; if (sum & 0xFFFF0000) { /* carry occurred, so wrap around */ sum &= 0xFFFF; sum++; } return ~(sum & 0xFFFF); }

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University15 Properties How many bits of error can Internet checksum detect? What’s the overhead? Why use this algorithm? –Link layer typically has stronger error detection –Most Internet protocol processing in the early days (70’s 80’s) was done in software with slow CPUs, argued for a simple algorithm –Seems to be OK in practice What about the end-to-end argument?

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University16 Cyclic Redundancy Check (CRC) Represent a n-bit message as an (n-1) degree polynomial M(x) –E.g.,  M(x) = x 7 + x 5 + x 3 + x 2 + x 0 Choose a divisor k-degree polynomial C(x) Compute reminder R(x) of M(x)*x k / C(x), i.e., compute A(x) such that M(x)*x k = A(x)*C(x) + R(x), where degree(R(x)) < k Let T(x) = M(x)*x k – R(x) = A(x)*C(x) Then –T(x) is divisible by C(x) –First n coefficients of T(x) represent M(x)

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University17 Cyclic Redundancy Check (CRC) Sender: –Compute and send T(x), i.e., the coefficients of T(x) Receiver: –Let T’(x) be the (n-1+k)-degree polynomial generated from the received message –If C(x) divides T’(x)  assume no errors; otherwise errors Note: all computations are modulo 2

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University18 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 aba b

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University19 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) = x 7 + x 5 + x 3 + x 2 + x 0 ( ) C(x) = x 3 + x 1 + x 0 ( ) B(x) - C(x) = x 7 + x 5 + x 2 + x 1 ( )

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University20 Example (Sender Operation) Send packet ; choose C(x) = 101 –k = 2, M(x)*x K  Compute the reminder R(x) of M(x)*x k / C(x) Compute T(x) = M(x)*x k - R(x)  xor 1 = Send T(x) 101) R(x)

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University21 Example (Receiver Operation) Assume T’(x) = –C(x) divides T’(x)  no errors Assume T’(x) = –Reminder R’(x) = 1  error! 101) R’(x) Note: an error is not detected iff C(x) divides T’(x) – T(x)

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University22 CRC Properties Detect all single-bit errors if coefficients of x k and x 0 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 See Peterson & Davie Table 2.5 for some commonly used CRC polynomials

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University23 Overview Error detection  Reliable transmission

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University24 Retransmission Problem: obtain correct information once errors are detected Retransmission is one popular approach Algorithmic challenges –Achieve high link utilization, and low overhead

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University25 Reliable Transfer Retransmit missing packets –Numbering of packets and ACKs Do this efficiently –Keep transmitting whenever possible –Detect missing ACKs and retransmit quickly Two schemes –Stop & Wait –Sliding Window Go-back-n and Selective Repeat variants

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University26 Stop & Wait Send; wait for acknowledgement (ACK); repeat If timeout, retransmit ACK DATA Time Sender Receiver RTT Inefficient if TRANS << RTT Inefficient if TRANS << RTT TRANS Round-Trip-Time

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University27 Stop & Wait ACK DATA Time Sender Receiver Timeout TRANS Lost

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University28 Is a Sequence Number Needed? Need a 1 bit sequence number (i.e. alternate between 0 and 1) to distinguish duplicate frames timeout Frame ACK

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University29 Problem with Stop-and-Go Lots of time wasted in waiting for acknowledgements What if you have a 10Gbps link and a delay of 10ms? –Need 100Mbit to fill the pipe with data If packet size is 1500B (like Ethernet), because you can only send one packet per RTT –Throughput = 1500*8bit/(2*10ms) = 600Kbps! –A utilization of 0.006%

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University30 window = set of adjacent sequence numbers The size of the set is the window size (WS) –Assume it is n Number of distinct sequence numbers must be >= 2 * window size Let A be the last ack’d packet of sender without gap; then window of sender = {A+1, A+2, …, A+n} –Sender window size (SWS) Sender can send packets in its window Let B be the last received packet without gap by receiver, then window of receiver = {B+1,…, B+n} –Receiver window size (RWS) Receiver can accept out of sequence packets, if in window Sliding Window A ……

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University31 Example Time SWS = 9

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University32 Basic Timeout and Acknowledgement Every packet k transmitted is associated with a timeout Basic acknowledgement scheme –Receiver sends ack for packet k+1 when all packets with sequence numbers <= k have been received –An ack k+1 means every packet up to k has been received –Suppose packets B, C, D have been received, but receiver is still waiting for A. No ack is sent when receiving B,C,D. But as soon as A arrives, an ack for D+1 is sent by the receiver, and the receiver window slides If by timeout(k), ack for k+1 has not yet been received, the sender retransmits k …… ABCD

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University33 Example with Errors Time Window size = 3 packets SenderReceiver Timeout Packet 5 5

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University34 Efficiency Time SWS = 9, i.e. 9 packets in one RTT instead of 1  Can be fully efficient as long as WS is large enough RTT

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University35 Observations With sliding windows, it is possible to fully utilize a link, provided the window size is large enough. Throughput is ~ (n/RTT) –Stop & Wait is like n = 1. Sender has to buffer all unacknowledged packets, because they may require retransmission Receiver may be able to accept out-of-order packets, but only up to its buffer limits

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University36 Setting Timers The sender needs to set retransmission timers in order to know when to retransmit a packet that may have been lost How long to set the timer for? –Too short: may retransmit before data or ACK has arrived, creating duplicates –Too long: if a packet is lost, will take a long time to recover (inefficient)

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University37 Timing Illustration 1 1 Timeout too long  inefficiency 1 1 Timeout too short  duplicate packets RTT Timeout RTT

T. S. Eugene Ngeugeneng at cs.rice.edu Rice University38 Adaptive Timers The amount of time the sender should wait is about the round-trip time (RTT) between the sender and receiver For link-layer networks (LANs), this value is essentially known For multi-hop WANS, rarely known Must work in both environments, so protocol should adapt to the path behavior E.g. TCP timeouts are adaptive, will discuss later in the course