Networking Link Layer

Similar documents
CSCI-1680 Link Layer Reliability Rodrigo Fonseca

CSCI-1680 Link Layer Reliability John Jannotti

CSCI-1680 Link Layer I Rodrigo Fonseca

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

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

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

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

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

Point-to-Point Links. Outline Encoding Framing Error Detection Sliding Window Algorithm. Fall 2004 CS 691 1

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

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

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

CSE 461: Framing, Error Detection and Correction

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

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

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

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

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

The Data Link Layer Chapter 3

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

Chapter 3. The Data Link Layer

CS422 Computer Networks

Inst: Chris Davison

Computer Networking. Reliable Transport. Reliable Transport. Principles of reliable data transfer. Reliable data transfer. Elements of Procedure

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

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.

DATA LINK LAYER UNIT 7.

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

The Transport Layer Reliability

Transport Layer Marcos Vieira

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

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

Introduction to Computer Networks. 03 Data Link Layer Introduction

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

Problem Statement. Physical and Data Link Layer Overview. Five Tasks Encoding. Make two computers talk to each other

Reliable Transmission

Principles of Reliable Data Transfer

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

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

ECE 650 Systems Programming & Engineering. Spring 2018

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

The Data Link Layer Chapter 3

Data Link Layer: Overview, operations

Direct Link Networks (II)

CS 4453 Computer Networks Winter

L5: Building Direct Link Networks III. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806

STEVEN R. BAGLEY PACKETS

Lecture 7: Flow Control"

CSE123A discussion session

Data Link Layer. Overview. Links. Shivkumar Kalyanaraman

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

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

Introduction to Data Communications & Networking

Computer and Network Security

Computer Networking. Lecture 4 - Coding and Error Control

Overview. Data Link Technology. Role of the data-link layer. Role of the data-link layer. Function of the physical layer

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

Administrivia. FEC vs. ARQ. Reliable Transmission FEC. Last time: Framing Error detection. FEC provides constant throughput and predictable delay

CIS 551 / TCOM 401 Computer and Network Security. Spring 2007 Lecture 7

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

Data Communication & Computer Networks INFO

Direct Link Networks: Building Blocks (2.1), Encoding (2.2), Framing (2.3)

1999, Scott F. Midkiff

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

Links Reading: Chapter 2. Goals of Todayʼs Lecture. Message, Segment, Packet, and Frame

Data Link Layer. Indian Institute of Technology Madras

Lecture 7: Flow & Media Access Control"

Layer 2 functionality bridging and switching

Data Link Layer (1) Networked Systems 3 Lecture 6

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

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

COMPUTER NETWORKS UNIT-3

INF Data Communication Data Link Layer

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

Data Link Layer Overview

Announcements Computer Networking. Outline. Transport Protocols. Transport introduction. Error recovery & flow control. Mid-semester grades

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

Links. CS125 - mylinks 1 1/22/14

Data Link Layer Overview

Data Link Layer Overview

Data Link Layer Overview

Data Link Protocols. High Level Data. Control Protocol. HDLC Framing ~~~~~~~~ Functions of a Data Link Protocol. Framing PDUs. Addressing Destination

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

3. Data Link Layer 3-2

NWEN 243. Networked Applications. Layer 4 TCP and UDP

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

Data and Computer Communications. Protocols and Architecture

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

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

Computer Communication Networks Midterm Review

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

CompSci 356: Computer Network Architectures. Lecture 4: Link layer: Encoding, Framing, and Error Detection Ref. Chap 2.2, 2.3,2.4

Outline: Connecting Many Computers

Overview. Performance metrics - Section 1.5 Direct link networks Hardware building blocks - Section 2.1 Encoding - Section 2.2 Framing - Section 2.

Internet II. CS10 : Beauty and Joy of Computing. cs10.berkeley.edu. !!Senior Lecturer SOE Dan Garcia!!! Garcia UCB!

CS 138: Communication I. CS 138 V 1 Copyright 2012 Thomas W. Doeppner. All rights reserved.

Telecom Systems Chae Y. Lee. Contents. Flow Control Error Detection/Correction Link Control (Error Control) Link Performance (Utility)

Where we are in the Course

ECE 435 Network Engineering Lecture 10

ECE 650 Systems Programming & Engineering. Spring 2018

Transcription:

Networking Link Layer ECE 650 Systems Programming & Engineering Duke University, Spring 2018 (Link Layer Protocol material based on CS 356 slides)

TCP/IP Model 2

Layer 1 & 2 Layer 1: Physical Layer Encoding of bits to send over a single physical link Layer 2: Link Layer Framing and transmission of a collection of bits into individual messages sent across a single subnetwork (one physical topology) Provides local addressing (MAC) May involve multiple physical links Often the technology supports broadcast: every node connected to the subnet receives Examples: Modern Ethernet WiFi (802.11a/b/g/n/etc) 3

Physical Layer We are not going to cover this in detail in this course But to give you some idea of what this covers: Fourier analysis Channel data rates Transmission media: Guided: twisted pair, coaxial cable, fiber cables Wireless: electromagnetic waves, radio transmission, microwaves, infrared, lightwave Communication satellites Modulation / Demodulation Frequency division and time division multiplexing Packet switching vs. circuit switching GSM, CDMA 4

Link Layer Algorithms for communication between adjacent machines Communication that is both Reliable Fast Adjacent machines means directly connected by a comm channel E.g. coaxial cable, telephone line, point-to-point wireless channel Channel is wire-like in that bits delivered in same order they are sent Seems like a simple problem, but Errors in bit transmissions can happen Finite data rates & bit propagation delays have impact on efficiency Link layer protocols handle these aspects 5

Link Layer - Framing Link layer functions Provide service interface to the network layer (next layer up) Handle errors during transmission Regulate data flow (so receivers not flooded by faster senders) Basic mechanism is framing Receive packets from network layer Break the packet up into frames; add header and trailer To provide the function mentioned above Frames sent across transmission medium Sender Packet frame Receiver Packet Header Packet Trailer Header Packet Trailer 6

Service to Network Layer Service: transfer data provided by network layer on one machine to the network layer on another machine Of course the actual data path travels across physical layer Some common types of link layer services Unacknowledged connectionless service Send frames from src to dest where dest does not acknowledge If frame is lost due to noise, no attempt to detect or recover Useful for low error rate channels or real-time traffic e.g. voice where late data is worse than bad data Acknowledged connectionless service Still no connection established, but dest acknowledges each frame Sender can re-send frames not ack ed within a time limit Link layer ack is an optimization, never requirement why? Good for highly unreliable channels (e.g. wireless) Acknowledged connection-oriented service More on next chart 7

Acknowledged Connection-Oriented Most sophisticated service Src and dest machine establish a connection Each frame sent over connection is numbered and ack ed by dest Guarantees each frame is received exactly once and in the proper order Connectionless service could cause a packet to be sent several times (if acks are lost) 3 phased approach Connection is established Each side initializes variables & counters to track frames send & received One or more frames are transmitted Connection is released: free up variables, buffers, other resources Wide Area Network (WAN) example: Set of routers connected by some type of links Frames arriving at a router are processed by link layer software Check to see if frame is the expected frame; add it to the packet if so Pass full packet up to network layer software Routing code determines outgoing link Network layer software passes back down to data link software for transmission on outgoing link 8

Framing Link layer sends stream of bits across physical layer On unreliable links, bits may be lost or altered values Link layer can detect or correct bit errors Error handling is simplified by framing Break up bit stream into frames Add some sort of checksum to each frame Receiver recomputes checksum from received frame bits If checksums do not match, then recovery happens E.g. correct the error or send a negative ack to sender to resend frame How does link layer divide a bit stream into frames? More complex than it may initially seem 9

Character Count Think of the bit stream as a sequence of characters Add 1 new character to the start of each frame Value indicates the # of characters in this frame Character count 5 1 2 3 4 5 6 7 8 9 3 0 1 7 2 3 4 5 6 7 frame 0 frame 1 frame 2 frame 3 Transmission errors make this difficult to use in practice Bit errors in the character count cause the destination to become out of sync with the sender; no longer knows where frames are 5 1 2 3 4 4 6 7 8 9 3 0 1 7 2 3 4 5 6 7 frame 0 frame 1 Bit error Treated as a char count 10

Flag Bytes with Byte Stuffing Also called character stuffing Denote start and end of each frame with special bytes Called a flag byte pattern (e.g a particular ASCII char) 2 consecutive flag byte patterns indicates the end of one frame and start of the next. If a receiver loses synchronization Simply search for the flag byte to find end of the current frame Restart processing frames at the next one What if frame includes a bit sequence that matches flag? Link layer inserts another special byte before that sequence Called an escape byte Receiving link layer SW strips out escape & flag bytes Disadvantage: Tied to a fixed char size (e.g. 8B or 16B) 11

Bit Stuffing w/ Start & End Flags Allows flags with arbitrary # of bits Each frame begins & ends with bit pattern Again, a flag: 01111110 Bit stuffing on frame payload by sender: When a sender sees 5 consecutive 1 s, it stuffs a 0 in the stream Bit de-stuffing on frame payload by receiver: When it sees 5 consecutive 1 s followed by a 0, remove the 0 bit All fully transparent to network layer Boundary between frames can be unambiguously found 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 Frame payload After bit stuffing After bit de-stuffing 12

Error Control Several options: Ignore errors in data link layer; let higher-layer in stack handle it Send response frames with positive or negative acks Combine positive & negative acks with timers What happens if an entire frame is lost? Receiver will never ack Set a timer on frame transmit; re-send if no ack before timer expires Combine acks with timers and sequence numbers What if ack is lost? Receiver got frame, but sender will resent after timer expires Receiver will receive multiple copies of save frame Give each outgoing frame a sequence number Receiver can distinguish re-transmissions from originals Ensure each frame is processed by receiving data link layer only once 13

Flow Control What if sender can send faster than receiver can receive? Eventually receiver would be flooded and begin to drop frames Typically in link layer, feedback-based flow control is used A protocol with a set of rules Rules define when a sender may transmit a new frame For example, frames sent only when receiver gives permission Receiver may say on connection setup, send up to N frames now Sender waits until receiver tells it to send more More details in a bit 14

Error Detection vs. Correction Receiver link layer can detect or correct some bit errors Correction is more expensive than detection In terms of # of overhead bits (checksum) Tradeoff: On reliable channels (e.g. fiber), often use cheaper detection On unreliable channels (e.g. wireless), often use correction 15

Error Detection and Correction Let s consider a frame is now n = m + r bits m = data bits (the message) r = redundant bits (e.g. checksum) Sometimes the n-bit chunk is called a codeword Hamming distance is a key concept in this area Simply the # of bit positions in which two codewords differ Consider 2 codewords a Hamming distance of d apart Would take d single-bit errors to convert one codeword to another A simple error-detection code: Parity Add a single redundant bit to the message Even (odd) parity: add bit to make number of 1 bits even (odd) Has distance 2 any single-bit error produces codeword w/ wrong parity Thus can detect any single bit error 16

Application of Hamming Distance For a message, usually all 2^m values are possible But algorithms to compute check bits usually don t result in all 2^n codewords being used Based on algorithm, we can enumerate all possible codewords Hamming distance of the code is the minimum Hamming distance between any 2 valid codewords Error detection and correction properties Requires a distance d+1 code to detect all d single-bit errors No way for d single-bit errors to convert one valid code to another Requires 2d+1 code to correct all d single-bit errors Valid codewords are so far apart that with d single-bit errors, the original valid codeword is still the closest 17

Error Correction Example: Assume 4 valid codewords 0000000000, 0000011111, 1111100000, 1111111111 Hamming distance of 5 So can correct 2 single-bit errors If receiver gets 0000000111 It detects original code was 0000011111 But if receiver gets 0000000111 due to 3 single-bit errors The error will not be properly corrected 18

Error Correction Some Principles What if we want to correct any single bit errors? Each of 2^m messages has n illegal codewords at distance 1 Each message requires n+1 bit patterns dedicated to it Codeword + n codewords at distance 1 As a result, we have the following inequality (n+1) * 2^m <= 2^n Substituting n = m + r (m + r + 1) <= 2^r Given m, this gives lower limit on # of check bits required 19

Error Correction An Application How can we build an error correction code? Use Hamming code Let s look at something based on parity corrects any single bit error Number codewords bits consecutively starting at 1 on left Bits that are powers of 2 (1, 2, 4, ) are the check bits Rest of bits are data bits Each check bit is a parity bit over some set of the bits Even including other parity bits To see which check bits a data bit in position k contributes: Rewrite k as a sum of powers of 2, e.g. 13 = 1 + 4 + 8 Parity bit 1 covers all bit positions which have the least significant bit set bit 1 (the parity bit itself), 3, 5, 7, 9, etc. Parity bit 2 covers all bit positions which have the second least significant bit set bit 2 (the parity bit itself), 3, 6, 7, 10, 11, etc. 20

Single Bit Error Correction Example Sender sends data bits:1100101 Sender adds parity bits 00111000101 red bits are the check bits We have a single bit error here: 00111000101 Receiver gets: 00111000111 and re-computes parity bits Parity bit 1: 00111000111 <= parity match Parity bit 2: 00111000111 <= parity mismatch Parity bit 4: 00111000111 <= parity match Parity bit 8: 00111000111 <= parity mismatch Receiver computes that bit 10 has an error Parity bits 2 + 8 failed 21

Error Detection Widespread practice is to use CRC Cyclic Redundancy Check Goal: maximize protection, minimize bits Consider message to be a polynomial Each bit is one coefficient E.g., message 10101001 -> m(x) = x 7 + x 5 + x 3 + 1 Can reduce one polynomial modulo another Let n(x) = m(x)x 3. Let C(x) = x 3 + x 2 + 1. n(x) mod C(x) : r(x) Find q(x) and r(x) s.t. n(x) = q(x)c(x) + r(x) And degree of r(x) < degree of C(x) Analogous to taking 11 mod 5 = 1 22

Example Polynomial Division Division where addition & subtraction is XOR 23

CRC Procedure Select a divisor polynomial C(x), degree k C(x) should be irreducible not expressible as a product of two lower-degree polynomials Add k bits to message Let n(x) = m(x)x k (add k 0 s to m) Compute r(x) = n(x) mod C(x) Compute n(x) = n(x) r(x) (will be divisible by C(x)) Subtraction is XOR, just set k lowest bits to r(x)! Checking CRC is easy Reduce message by C(x), make sure remainder is 0 24

Why This Works Well Suppose you send m(x), recipient gets m (x) E(x) = m (x) m(x) (all the incorrect bits) If CRC passes, C(x) divides m (x) Therefore, C(x) must divide E(x) Choose C(x) that doesn t divide any common errors! All single-bit errors caught if x k, x 0 coefficients in C(x) are 1 All 2-bit errors caught if at least 3 terms in C(x) Any odd number of errors if last two terms (x + 1) Any error burst less than length k caught 25

Data Link Layer Protocols Now that we understand error handling and framing What kinds of protocols for flow control and message delivery? First, we need to understand a bit about link performance 26

Sending Frames (Bandwidth) Throughput: bits / s 27

Latency vs. Bandwidth How much data can we send during one RTT? E.g., send request, receive file Time For small transfers, latency more important, for bulk, throughput more important 28

Performance Metrics Throughput - Number of bits received/unit of time e.g. 10Mbps Goodput - Useful bits received per unit of time VIDEO T N L P Useful bits Meta-data Latency How long for message to cross network Process + Queue + Transmit + Propagation Jitter Variation in latency 29

Latency Processing Per message; small messages limit throughput e.g. 100Mb pkt or 120µs/pkt s 1500B B 8,333pkt /s 8b Queue Highly variable, offered load vs outgoing b/w Transmission Message Size / Bandwidth Propagation Distance / Speed of Light 30

Reliable Frame Delivery Several sources of errors in transmission Error detection can discard bad frames Problem: if bad packets are lost, how can we ensure reliable delivery? Exactly-once semantics = at least once + at most once 31

At Least Once Semantics How can the sender know packet arrived at least once? Acknowledgments + Timeout Stop and Wait Protocol S: Send packet, wait R: Receive packet, send ACK S: Receive ACK, send next packet S: No ACK, timeout and retransmit 32

Stop-and-Wait Protocol Ideal flow 33

Some Problem Scenarios In (c) and (d), does the receiver know whether the second frame is a new frame or a resent first frame? 34

Drawbacks of Stop-and-Wait Duplicate data Duplicate acks Slow (channel idle most of the time!) May be difficult to set the timeout value 35

Add Sequence Numbers 36

At Most Once Semantics How to avoid duplicates? Uniquely identify each packet Have receiver and sender remember Stop and Wait: add 1 bit to the header Why is it enough? 37

Sliding Window Protocol Still have the problem of keeping pipe full Generalize approach with > 1-bit counter Allow multiple outstanding (unacked) frames Upper bound on unacked frames, called window 38

Sizing the Window How many bytes can we transmit in one RTT? BW B/s x RTT s => Bandwidth-Delay Product 39

Maximizing Throughput Can view network as a pipe For full utilization want bytes in flight bandwidth delay But don t want to overload the network Blast packets into the Network What if protocol doesn t involve bulk transfer? Get throughput through concurrency service multiple clients simultaneously 40

Sliding Window Sender Assign sequence number (SeqNum) to each frame Maintain three state variables send window size (SWS) last acknowledgment received (LAR) last frame sent (LFS) Maintain invariant: LFS LAR SWS Advance LAR when ACK arrives Buffer up to SWS frames 41

Sliding Window Receiver Maintain three state variables: receive window size (RWS) largest acceptable frame (LAF) last frame received (LFR) Maintain invariant: LAF LFR RWS Frame SeqNum arrives: if LFR < SeqNum LAF, accept if SeqNum LFR or SeqNum > LAF, discard Send cumulative ACKs 42

Tuning the Sending Window How big should SWS be? Fill the pipe How big should RWS be? 1 RWS SWS How many distinct sequence numbers needed? SWS can t be more than half of the space of valid seq#s. 43

Example We have 3-bit sequence numbers: 0, 1, 2,, 7 What if SWS = RWS = 7 Sender sends 0,1,2,3,4,5,6 All received & acked Receiver advances receive window to 7,0,1, 5 But all acks are lost Sender times out and sends 0 again Receiver thinks it is a *new* frame with seq # 0 Buffers it and awaits forwarding up to network layer Sender later sends frame 7; receiver gets it correctly Now frame 7 and stale frame 0 are passed to network layer 44

Summary Want exactly once At least once: acks + timeouts + retransmissions At most once: sequence numbers Want efficiency Sliding window 45