The Data Link Layer Chapter 3

Similar documents
The Data Link Layer Chapter 3

CSMC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. Nov 1,

C08a: Data Link Protocols

The Data Link Layer. Data Link Layer Design Issues

Chapter 3. The Data Link Layer. Wesam A. Hatamleh

Hamming codes can also correct burst of errors by using iterleaving

Chapter 3. The Data Link Layer

CS422 Computer Networks

CSMC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 4. September 09 CMSC417 Set 4 1

CSE 461: Framing, Error Detection and Correction

DATA LINK LAYER UNIT 7.

Lecture 4: CRC & Reliable Transmission. Lecture 4 Overview. Checksum review. CRC toward a better EDC. Reliable Transmission

2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS Collision Free Protocols 2.3 FDDI 2.4 DATA LINK LAYER DESIGN ISSUES 2.5 FRAMING & STUFFING

Department of Computer and IT Engineering University of Kurdistan. Data Communication Netwotks (Graduate level) Data Link Layer

CS 640 Introduction to Computer Networks. Role of data link layer. Today s lecture. Lecture16

COMPUTER NETWORKS UNIT-3

The data link layer has a number of specific functions it can carry out. These functions include. Figure 2-1. Relationship between packets and frames.

Networking Link Layer

Where we are in the Course

Reliable transmission

Outline. EEC-484/584 Computer Networks. Data Link Layer Design Issues. Framing. Lecture 6. Wenbing Zhao Review.

Chapter 3. The Data Link Layer

06/05/2008. Chapter 3. The Data Link Layer. Data Link Layer Design Issues. Services Provided to the Network Layer. Error Control Flow Control

Chapter 3 The Data Link Layer

Inst: Chris Davison

Error Detection Codes. Error Detection. Two Dimensional Parity. Internet Checksum Algorithm. Cyclic Redundancy Check.

Jaringan Komputer. Data Link Layer. The Data Link Layer. Study the design principles

CSEP 561 Error detection & correction. David Wetherall

4. Error correction and link control. Contents

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 11, 2018

Chapter 11 Data Link Control 11.1

Chapter 11 Data Link Control 11.1

Lecture 7: Sliding Windows. CSE 123: Computer Networks Geoff Voelker (guest lecture)

Chapter 11 Data Link Control 11.1

CSE123A discussion session

CSE 123: Computer Networks Alex C. Snoeren. HW 1 due NOW!

EITF25 Internet Techniques and Applications L3: Data Link layer. Stefan Höst

Lecture 7: Flow Control"

Lecture 5: Flow Control. CSE 123: Computer Networks Alex C. Snoeren

CSE 123: Computer Networks

I. INTRODUCTION. each station (i.e., computer, telephone, etc.) directly connected to all other stations

Data Link Layer (1) Networked Systems 3 Lecture 6

Flow control: Ensuring the source sending frames does not overflow the receiver

Data Link Layer. Overview. Links. Shivkumar Kalyanaraman

Link Layer: Error detection and correction

Links. CS125 - mylinks 1 1/22/14

Computer Networking : Principles, Protocols and Practice

Data Link Networks. Hardware Building Blocks. Nodes & Links. CS565 Data Link Networks 1

ERROR AND FLOW CONTROL. Lecture: 10 Instructor Mazhar Hussain

CSCI-1680 Link Layer I Rodrigo Fonseca

Lesson Schedule: Class No. Portion covered per hour (An estimate)

COMPUTER NETWORKS UNIT I. 1. What are the three criteria necessary for an effective and efficient networks?

Computer Network. Direct Link Networks Reliable Transmission. rev /2/2004 1

Introduction to Data Communications & Networking

Data Link Technology. Suguru Yamaguchi Nara Institute of Science and Technology Department of Information Science

Data Link layer (CN chap 3.1, 3.4, 3.6)

Lecture 5. Homework 2 posted, due September 15. Reminder: Homework 1 due today. Questions? Thursday, September 8 CS 475 Networks - Lecture 5 1

TYPES OF ERRORS. Data can be corrupted during transmission. Some applications require that errors be detected and corrected.

Lecture 7: Flow & Media Access Control"

SRI RAMAKRISHNA INSTITUTE OF TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY COMPUTER NETWORKS UNIT - II DATA LINK LAYER

Chapter 3: Transport Layer Part A

2.4 Error Detection Bit errors in a frame will occur. How do we detect (and then. (or both) frames contains an error. This is inefficient (and not

Chapter Six. Errors, Error Detection, and Error Control. Data Communications and Computer Networks: A Business User s Approach Seventh Edition

Advanced Computer Networks. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS University, Lahore Pakistan. Department of Computer Science

CS 4453 Computer Networks Winter

Direct Link Communication I: Basic Techniques. Data Transmission. ignore carrier frequency, coding etc.

Networked Systems and Services, Fall 2018 Chapter 2. Jussi Kangasharju Markku Kojo Lea Kutvonen

Lecture 6: Reliable Transmission. CSE 123: Computer Networks Alex Snoeren (guest lecture) Alex Sn

Advanced Computer Networks. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS University, Lahore Pakistan. Department of Computer Science

Pending Issues. Opera,ng Systems and Networks. Network Lecture 3: Link Layer (1) Where we are in the Course. Scope of the Link Layer

1.Write about the Data Link layer design issues.

EE 122: Error detection and reliable transmission. Ion Stoica September 16, 2002

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

Comparison of ISO-OSI and TCP/IP Suit. Functions of Data Link Layer:

PART III. Data Link Layer MGH T MGH C I 204

Communications Software. CSE 123b. CSE 123b. Spring Lecture 3: Reliable Communications. Stefan Savage. Some slides couresty David Wetherall

Computer Networks. Shyam Gollakota

Ad hoc and Sensor Networks Chapter 6: Link layer protocols. Holger Karl

Computer Networking. Lecture 4 - Coding and Error Control

CSE 123A Computer Networks

From Signals to Packets Computer Networking. Link Layer: Implementation. Datalink Functions. Lecture 5 - Coding and Error Control

Chapter 10 Error Detection and Correction 10.1

High Level View. EE 122: Error detection and reliable transmission. Overview. Error Detection

Analyzation of Automatic Repeat Request (ARQ) Protocols

Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4021: Networks Discussion. Chapter 2.

Link Layer. (continued)

Ch. 7 Error Detection and Correction

Data link layer functions. 2 Computer Networks Data Communications. Framing (1) Framing (2) Parity Checking (1) Error Detection

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

CSCI-1680 Link Layer Reliability Rodrigo Fonseca

Introduction to Computer Networks. 03 Data Link Layer Introduction

CSCI-1680 Link Layer Reliability John Jannotti

Chapter 10 Error Detection and Correction. Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

Data and Computer Communications. Protocols and Architecture

CPE 548 Exam #1 (50 pts) February 17, 2016

Data Link Layer. Indian Institute of Technology Madras

Data Link Layer: Overview, operations

Computer Networks. Data Link Layer. Design Issues. Basic Services. Notes. Paolo Costa costa. Notes. Note.

CS 43: Computer Networks. 16: Reliable Data Transfer October 8, 2018

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

Transcription:

The Data Link Layer Chapter 3 Data Link Layer Design Issues Error Detection and Correction Elementary Data Link Protocols Sliding Window Protocols Example Data Link Protocols Revised: August 2011

The Data Link Layer Responsible for delivering frames of information over a single link Handles transmission errors and regulates the flow of data Application Transport Network Link Physical

Data Link Layer Design Issues Frames» Possible services» Framing methods» Error control» Flow control»

Frames Link layer accepts packets from the network layer, and encapsulates them into frames that it sends using the physical layer; reception is the opposite process Network Link Virtual data path Physical Actual data path

Possible Services Unacknowledged connectionless service Frame is sent with no connection / error recovery Ethernet is example Acknowledged connectionless service Frame is sent with retransmissions if needed Very unreliable channels; Example is 802.11 NOTE: DL acknowledgement is an optimization to improve performance for unreliable channels, ACKs can also be done at higher layers Acknowledged connection-oriented service Connection is set up; rare Long unreliable channels such as satellites and long-distance telephone

Framing Methods 1. Byte count» 2. Flag bytes with byte stuffing» 3. Flag bits with bit stuffing» 4. Physical layer coding violations Use non-data symbol to indicate frame (e.g., for systems using 4B/5B line codes at the physical layer) Many DL protocols use a combination of the above framing methods for additional safety

1 Framing Byte count Frame begins with a count of the number of bytes in it Simple, but difficult to resynchronize after an error Expected case Error case

2 Framing Byte stuffing Special flag bytes delimit frames; occurrences of flags in the data must be stuffed (escaped) Longer, but easy to resynchronize after error Frame format Stuffing examples Need to escape extra ESCAPE bytes too! Example here is a simplification of PPP (point-to-point protocol)

3 Framing Bit stuffing Stuffing done at the bit level: Frame flag has six consecutive 1s (not shown) On transmit, after five 1s in the data, a 0 is added On receive, a 0 after five 1s is deleted Data bits Transmitted bits with stuffing

Error Control Error control repairs frames that are received in error Requires errors to be detected at the receiver Typically retransmit the unacknowledged frames Timer protects against lost acknowledgements Detecting errors and retransmissions are next topics.

Flow Control Prevents a fast sender from out-pacing a slow receiver Receiver gives feedback on the data it can accept Rare in the Link layer as NICs run at wire speed Receiver can take data as fast as it can be sent Flow control is a topic addressed in the Data Link and higher layers. DL uses feedback-based flow control Transport uses both feedback-based flow control and rate-based flow control Different behavior at the network layer (i.e., congestion control)

Error Detection and Correction Error codes add structured redundancy to data so errors can be either detected, or corrected. Error correction codes (used on wireless links): Hamming codes» Binary convolutional codes» Reed-Solomon and Low-Density Parity Check codes Mathematically complex, widely used in real systems Error detection codes (used on fiber and high quality wire): Parity» Checksums» Cyclic redundancy codes»

Error Correcting Code Definitions Error correcting codes add extra redundant bits to the message so that the message could be accurately reconstructed at the remote peer in the presence of errors m data (message) bits + r check bits Let n = m + r; n = codeword; code rate is the fraction of the codeword that contains information that is not redundant = m/n 1. Block Code r check bits are computed solely as a function of the m data bits with which they are associated; operates on a predetermined message size and encoding boundary 2. Systematic Code m data bits sent directly along with the check bits rather than being encoded themselves before they are sent 3. Linear Code r check bits are computed as a linear function of the m data bits (e.g., XOR or modulo 2 addition). This means that encoding can be done with operations such as matrix multiplication or simple logic circuits. Hamming Codes, Reed-Solomon Code, Low Density Parity Check, Parity, Checksum, and CRC are all linear, systematic block codes

Error Bounds Hamming distance Example of bit errors: Transmitted 10001001 Received 10110001 #bit errors 3 = XOR difference and count the 1s in the result Hamming distance is the number of bit positions by which two codewords differ. If codewords are a Hamming distance of d apart, it will require d single-bit errors to convert one to the other Example of a universe comprising 4 valid codewords of 10 bits (m=2, r=8): 0000000000, 0000011111, 1111100000, and 1111111111 Hamming distance of this example is 5 Error-detecting and error-correcting properties of a block code depend upon its Hamming Distance (d = bit error difference between two codes) Correction/Detection Bounds for a code with errors: Correction: 2d + 1 can correct d errors where 2d + 1 <= Hamming Distance 2 errors in the example above; i.e., solve for 2d+1 <=5) Detection: d + 1 can detect d errors where d + 1 <= Hamming Distance 4 errors in example above; i.e., solve for d + 1 <= 5

1 Error Correction Hamming code Hamming code gives a simple way to add check bits and correct up to a single bit error: Check bits are parity over subsets of the codeword Bit positions that are powers of 2 are check bits (1, 2, 4, 8, 16, ) Rest of bit positions are message bits Msg bits checked by adding together parity bits for its position; e.g., 3 = 1 + 2, 5 = 1 + 4, 6 = 2 + 4, 7 = 1 + 2 + 4, 9 = 1 + 8, 10 = 2 + 8, 11 = 1 + 2 + 8, Recomputing the parity sums (syndrome) gives the position of the error to flip, or 0 if there is no error (11, 7) Hamming code adds 4 check bits w a Hamming Distance of 3; it can correct 1 error

2 Error Correction Convolutional codes Operates on a stream of bits, keeping internal state Output stream is a function of all preceding input bits Bits are decoded with the Viterbi algorithm (not covered) 1 1 1 0 1 1 1 0 1 XOR sums Popular NASA binary convolutional code (rate = ½; i.e., 1 input produces 2 outputs) used in 802.11 and NASA Convolutional codes also used for GSM and SatCom

1 Error Detection Parity (1) Parity bit is added as the modulo 2 sum of data bits Equivalent to XOR; this is even parity Ex: 1110000 11100001 Detection checks if the sum is wrong (an error) Simple way to detect an odd number of errors Ex: 1 error, 11100101; detected, sum is wrong Ex: 3 errors, 11011001; detected sum is wrong Ex: 2 errors, 11101101; not detected, sum is right! Error can also be in the parity bit itself Random errors are detected with probability ½

Error Detection Parity (2) Interleaving of N parity bits detects burst errors up to N Each parity sum is made over non-adjacent bits An even burst of up to N errors will not cause it to fail

2 Error Detection Checksums Checksum treats data as N-bit words and adds N check bits that are the modulo 2 N sum of the words Ex: Internet 16-bit 1s complement checksum (Restated: Sum of the msg bits divided into 16 bit words) Properties: Checksum often placed at end of the message (IP uses a 16-bit header checksum) Improved error detection over parity bits Detects bursts up to N errors Detects random errors with probability 1-2 N Vulnerable to systematic errors, e.g., added zeros Can be combined with parity to better detect errors parity operates on bits, checksums on words

Error Detection CRCs (1) More powerful than parity or checksum to find errors at the DL Layer Adds bits so that transmitted frame is viewed as a polynomial that is evenly divisible by a generator polynomial Start by adding 0s to frame and try dividing Sender & Receiver agree on generator polynomial value in advance. In this example they have agreed upon x 4 + x + 1 + and - for modulo 2 arithmetic is identical to XOR Offset by any reminder to make it evenly divisible 20

3 Error Detection CRCs (1) More powerful than parity or checksum to find errors at the DL Layer Adds bits so that transmitted frame viewed as a polynomial is evenly divisible by a generator polynomial Start by adding 0s to frame and try dividing Sender & Receiver agree on generator polynomial value in advance. In this example they have agreed upon x 4 + x + 1 + and - for modulo 2 arithmetic is identical to XOR Offset by any reminder to make it evenly divisible 21

Error Detection CRCs (2) Based on standard polynomials: Ex: Ethernet 32-bit CRC generator is defined by: Generator value is part of the International IEEE 802.3 standard Computed with simple shift/xor circuits, which is almost always done using hardware Stronger detection than checksums: E.g., can detect all double bit errors Not vulnerable to systematic errors

Elementary Data Link Protocols Link layer environment» Utopian Simplex Protocol» Stop-and-Wait Protocol for Error-free channel» Stop-and-Wait Protocol for Noisy channel»

Link layer environment (1) Commonly implemented as NICs and OS drivers; network layer (IP) is often OS software

Link layer environment (2) Link layer protocol implementations use library functions See code (protocol.h) for more details Group Library Function Description Network layer Physical layer Events & timers from_network_layer(&packet) to_network_layer(&packet) enable_network_layer() disable_network_layer() from_physical_layer(&frame) to_physical_layer(&frame) wait_for_event(&event) start_timer(seq_nr) stop_timer(seq_nr) start_ack_timer() stop_ack_timer() Take a packet from network layer to send Deliver a received packet to network layer Let network cause ready events Prevent network ready events Get an incoming frame from physical layer Pass an outgoing frame to physical layer Wait for a packet / frame / timer event Start a countdown timer running Stop a countdown timer from running Start the ACK countdown timer Stop the ACK countdown timer 25

Utopian Simplex Protocol An optimistic protocol (p1) to get us started Assumes no errors, and receiver as fast as sender Considers one-way data transfer } Sender loops blasting frames Receiver loops eating frames That s it, no error or flow control

Stop-and-Wait Error-free channel Protocol (p2) ensures sender can t outpace receiver: Receiver returns a dummy frame (ack) when ready Only one frame out at a time called stop-and-wait We added flow control! Sender waits to for ack after passing frame to physical layer Receiver sends ack after passing frame to network layer

Stop-and-Wait Noisy channel (1) Recall that the goal of the DL Layer is to provide error-free, transparent communications between network layer processes. Therefore, the DL Layer must GUARANTEE (to the network layer) that no combination of transmission errors, however unlikely, can cause a duplicate packet to be delivered to the network layer. ARQ (Automatic Repeat request) adds error control Receiver acks frames that are correctly delivered Sender sets timer and resends frame if no ack) For correctness, frames and acks must be numbered Else receiver can t tell retransmission (due to lost ack or early timer) from new frame For stop-and-wait, 2 numbers (1 bit) are sufficient

Stop-and-Wait Noisy channel (2) Sender loop (p3): { Send frame (or retransmission) Set timer for retransmission Wait for ack or timeout If a good ack then set up for the next frame to send (else the old frame will be retransmitted)

Stop-and-Wait Noisy channel (3) Receiver loop (p3): Wait for a frame If it s new then take it and advance expected frame Ack current frame

Sliding Window Protocols Inefficient use of a channel to routinely send frames with only an ACK. More efficient if can interleave data and control frames on the same frame. Piggybacking is when the ACK is attached to the outgoing data frame (in an ACK field of the DL protocol header). Issue is how long should the DL Layer wait in order to piggyback on a data message? (Delays impact effective data rate) Sliding Window concept» Bidirectional Protocols using sliding window concept (next slide) 1. One-bit Sliding Window» 2. Go-Back-N» 3. Selective Repeat»

Sliding Window concept (1) Sender maintains window of frames it can send Needs to buffer them for possible retransmission Window advances with next acknowledgements Receiver maintains window of frames it can receive Needs to keep buffer space for arrivals Window advances with in-order arrivals

Sliding Window concept (2) A sliding window advancing at the sender and receiver Ex: window size is 1, with a 3-bit sequence number. Sender Receiver At the start First frame is sent First frame is received Sender gets first ack

Sliding Window concept (3) Larger windows enable pipelining for efficient link use Pipelining is a technique for keeping multiple frames in flight at the same time Stop-and-wait (w=1) is inefficient for long links Best window (w) depends on bandwidth-delay (BD) Want w 2BD+1 to ensure high link utilization This is explained on page 233 in the textbook Pipelining leads to different choices for errors/buffering We will consider Go-Back-N and Selective Repeat

One-Bit Sliding Window (1) Transfers data in both directions with stop-and-wait Piggybacks acks on reverse data frames for efficiency Handles transmission errors, flow control, early timers Each node is both sender and receiver (protocol 4 on page 230) { Prepare first frame Launch it, and set timer... 35

One-Bit Sliding Window (2)... Wait for frame or timeout If a frame with new data then deliver it If an ack for last send then prepare for next data frame (Otherwise it was a timeout) Send next data frame or retransmit old one; ack the last data we received 36

One-Bit Sliding Window (3) Two scenarios show subtle interactions exist in p4: Simultaneous start [right] causes correct but slow operation compared to normal [left] due to duplicate transmissions. Time Notation is (seq, ack, frame number). Asterisk indicates frame accepted by network layer. Normal case Correct, but poor performance 37

Go-Back-N (1) Helpful approach for environments having substantial transmission times (i.e., long round trips). Desirable to have a large window whenever bandwidth delay is large. Allows sender to send up to w frames before blocking, instead of just 1 (i.e., pipelining). Receiver only accepts/acks frames that arrive in order: Discards frames that follow a missing/errored frame DL Layer is obligated to hand packets to the network layer in sequence Sender times out and resends all outstanding frames

Go-Back-N (2) Tradeoff made for Go-Back-N: Simple strategy for receiver; needs only 1 frame Although large send window, receive window is only 1 since the data link layer refuses to accept any frame except the next one it must give to the network layer. Wastes link bandwidth for errors with large windows; entire window is retransmitted Implemented as p5 (see code in book)

Selective Repeat (1) Receiver accepts frames anywhere in receive window Cumulative ack indicates highest in-order frame NAK (negative ack) causes sender retransmission of a missing frame before a timeout resends window

Selective Repeat (2) Tradeoff made for Selective Repeat: More complex than Go-Back-N due to buffering at receiver and multiple timers at sender More efficient use of link bandwidth as only lost frames are resent (with low error rates) Implemented as p6 (see code in book)

Selective Repeat (3) For correctness, we require: Sequence numbers (s) at least twice the window (w) Error case (s=8, w=7) too few sequence numbers Correct (s=8, w=4) enough sequence numbers Originals Retransmits Originals Retransmits New receive window overlaps old retransmits ambiguous New and old receive window don t overlap no ambiguity

Example Data Link Protocols Packet over SONET» PPP (Point-to-Point Protocol)» ADSL (Asymmetric Digital Subscriber Loop)»

Packet over SONET Packet over SONET is the method used to carry IP packets over SONET optical fiber links Uses PPP (Point-to-Point Protocol) for framing Protocol stacks PPP frames may be split over SONET payloads

PPP (1) PPP (Point-to-Point Protocol) is a general method for delivering packets across links Framing uses a flag (0x7E) and byte stuffing Unnumbered mode (connectionless unacknowledged service) is used to carry IP packets Errors are detected with a checksum 0x21 for IPv4 IP packet

PPP (2) A link control protocol brings the PPP link up/down State machine for PPP link control

ADSL (1) Asymmetric Digital Subscriber Loop (ADSL) enables Internet connectivity over telephone local loops Upstream rate: ADSL (.5 1.8 Mbps), ADSL2 (.5 3.5 Mbps) Downstream rate: ADSL (1.5 12 Mbps), ADSL2 (1.5 24 Mbps) Widely used for broadband Internet over local loops ADSL runs from modem (customer) to DSLAM (ISP) IP packets are sent over PPP and AAL5/ATM (over)

ADSL (2) PPP data is sent in AAL5 frames over ATM cells: ATM is a link layer that uses short, fixed-size cells (53 bytes); each cell has a virtual circuit identifier AAL5 is a format to send packets over ATM PPP frame is converted to a AAL5 frame (PPPoA) AAL5 frame is divided into 48 byte pieces, each of which goes into one ATM cell with 5 header bytes

Textbook Page 249 ATM was designed in the early 1990s and launched with incredible hype. It promised a network technology that would solve the world s telecommunications problems by merging voice, data, cable TV, telegraph, carrier pigeon, tin cans connecting by strings, tom toms, and everything else into an integrated system that could do everything for everyone. This did not happen. In large part, the problems of ATM were similar to those we described concerning the OSI protocols, that is, bad timing, technology, implementation, and politics. Nevertheless, ATM was much more successful than OSI. While it has not taken over the world, it remains widely used in niches including broadband access lines such as DSL and WAN links inside telephone networks. ATM is a link layer based on fixed-length 54 byte cells consisting of a 48-byte payload plus a 5-byte header.

End Chapter 3