Inst: Chris Davison

Similar documents
Data Link Layer: Overview, operations

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

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

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

CS422 Computer Networks

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

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

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

DATA LINK LAYER UNIT 7.

Chapter 3. The Data Link Layer

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 Technology. Suguru Yamaguchi Nara Institute of Science and Technology Department of Information Science

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

Networking Link Layer

CSCI-1680 Link Layer I Rodrigo Fonseca

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

Lecture / The Data Link Layer: Framing and Error Detection

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

The Data Link Layer Chapter 3

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

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

CSE 123: Computer Networks

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

CSE 461: Framing, Error Detection and Correction

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

Chapter 3. The Data Link Layer

COMPUTER NETWORKS UNIT-3

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

INF Data Communication Data Link Layer

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

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

Some portions courtesy Robin Kravets and Steve Lumetta

CSE 123A Computer Networks

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

Chapter 11 Data Link Control 11.1

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

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

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

3. Data Link Layer 3-2

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

UNIT-II 1. Discuss the issues in the data link layer. Answer:

Data Link Layer. Overview. Links. Shivkumar Kalyanaraman

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

The Data Link Layer Chapter 3

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

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

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

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

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

Chapter 11 Data Link Control 11.1

CMSC 2833 Lecture 18. Parity Add a bit to make the number of ones (1s) transmitted odd.

5th Slide Set Computer Networks

CSCI-1680 Link Layer Reliability Rodrigo Fonseca

Data Link Control Protocols

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

1.Write about the Data Link layer design issues.

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

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

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

Chapter 11 Data Link Control 11.1

CSE 123: Computer Networks

Where we are in the Course

Introduction to Computer Networks. 03 Data Link Layer Introduction

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

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

4. Error correction and link control. Contents

DLL: Flow Control DLL. Simplex. Fast sender / slow receiver scenario. Various protocols used. Simplified examples implemented in C.

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

DATA LINK LAYER: NEED

Introduction to Data Communications & Networking

Protocol Principles. Framing, FCS and ARQ 2005/03/11. (C) Herbert Haas

CSCI-1680 Link Layer Reliability John Jannotti

Ch. 7 Error Detection and Correction

CSE123A discussion session

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

Direct Link Networks. Framing. Lecture - Encoding & Framing 1. Problems. Areas for Discussion

Computer Networking. Lecture 4 - Coding and Error Control

The Transport Layer Reliability

Data Link Layer (1) Networked Systems 3 Lecture 6


Links. CS125 - mylinks 1 1/22/14

Direct Link Networks. Lecture - Encoding & Framing 1. Areas for Discussion. Problems

Telematics. 5rd Tutorial - LLC vs. MAC, HDLC, Flow Control, E2E-Arguments

Data Link Layer, Part 5 Sliding Window Protocols. Preface

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

Lecture 5: Data Link Layer Basics

CS321: Computer Networks Error Detection and Correction

Peer-to-Peer Protocols and Data Link Layer. Chapter 5 from Communication Networks Leon-Gracia and Widjaja

Data Link Layer. Srinidhi Varadarajan

William Stallings Data and Computer Communications. Chapter 7 Data Link Control

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

Data Link Control. Surasak Sanguanpong Last updated: 11 July 2000

CSE123A discussion session

The Data Link Layer. Data Link Layer Design Issues

From Signals to Packets Computer Networking. Link Layer: Implementation. Network Delay. 06-datalink.ppt, , Fall

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

UNIT I FUNDAMENTALS & LINK LAYER

Framing and Stuffing. Advanced Computer Networks

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

Lecture 7: Flow Control"

Transcription:

ICS 153 Introduction to Computer Networks Inst: Chris Davison cbdaviso@uci.edu

ICS 153 Data Link Layer Contents Simplex and Duplex Communication Frame Creation Flow Control Error Control Performance of Data Link Layer Protocols Character Orientated and Bit Orientated Protocols

ICS 153 Chapter 3 Homework # 3 #5 #6 #7 #8 #14 #16 #26 #36 #37

Recall: Data Link Layer Functionality Frame Creation Error detection and/or correction Flow Control Creates the illusion of a reliable link

Simplex and Duplex Communication Modes of Operation: Simplex Half Duplex Full Duplex

Simplex Transmission Data: One way Only Data is on a one-way street

Half Duplex Transmission Data: One direction at a time Two way street but can only be going in one direction at a time

Full Duplex Transmission Data: Both ways simultaneously Two way street with traffic on both lanes at one

Framing The data unit at the data link layer is the frame A frame is a group of bits, typically in sequence Issues: Frame Creation Frame Delineation

Frame Creation The Data Link Layer will accept a data unit from the Network Layer Adds frame boundaries to the beginning and the end. Additionally it will add control information to the frame.

Frame Delineation How to tell when a new frame starts Character Count Frame tags with character stuffing Frame tags with bit stuffing Physical layer coding violations

Delineation by Character Count Character count lists the number of characters in the data field of the frame Problem: corrupted control fields Count can be garbled by a transmission error

Frame tagging with character stuffing Use starting and ending characters (tags) to mark the boundaries of the frame Problem: What if a tag character occurs in the data portion of the frame?

Character stuffing Insert extra escape characters when a tag appears in the data field DLE DLE DLE STX ETX DLE Start Tag End Tag Character Stuffed DLE Code

Frame tagging with bit stuffing Bit strings may be used instead of character sequences to delineate frames More efficient

Bit Stuffing Each Frame begins with a start and end bit sequence, e.g., 01111110 When a sender s data link layer sees five 1 s in a row, it stuffs in a zero bit The receiver unstuffs a zero after five consecutive 1 s.

Error Control No physical link is perfect Bits will be corrupted We can either: detect errors and request retransmission correct errors without retransmission

Codeword Error Control Definitions unit of data containing data bits and check bits Hamming Distance number of bit positions in which two codewords differ XOR on two codewords and count the resulting 1 s

Hamming Distance Example 10001001 XOR 10110001 00111000 The Hamming distance between 10001001 and 1011001 is 3

Error Control Parity Bits Polynomial codes or checksums

Parity Bits Append a single parity bit to a sequence of bits If using odd party, the parity bit is chosen to make the total number of 1 s in the bit sequence odd. If even parity, the parity bit makes the total number of 1 s in the bit sequence even

Parity Bit Examples Transmitted Sequence Parity Parity Bit 00010101 even 000101011 01111 even 011110 00010101 odd 000101010 01111 odd 011111

Parity Bits Only detects when there are an odd number of bit errors Does not detect an even number of bit errors It also has high overhead; it requires 1 extra bit for every several bits transmitted

Polynomial Codes Can detect errors on large chunks of data Has low overhead More robust than parity bit Requires the use of a code polynomial e.g. X^2 + 1

Cyclic Redundancy Check CRC: Example of a polynomial code First: agree on a code polynomial Procedure: 1. Let r be the degree of the code polynomial. Append r zero bits to the end of the transmitted bit string. Call the entire bit string S(x). 2. Divide S(x) by the code polynomial using modulo 2 division. 3. Subtract the remainder from S(x) using modulo 2 subtraction. Result is the checksummed message

Generating a CRC Message: 1011 = 1*x^3 + 0*x^2+1x^1 +1*x^0 = x^3 + x + 1 Code Polynomial: x^2 + 1 (101) Step 1: Compute S(x) r =2 (degree of code polynomial) S(x) = 101100

Generating a CRC Step 2: Modulo 2 divide: 1001 101 101100 101 001 000 010 000 100 101 01

Generating a CRC Step 3: Modulo 2 (XOR) subtract the remainder from S(X) 101100-01 101101 <-- Checksummed Message

Decoding a CRC Procedure 1. Right-most n bits are checksum bits, where n is the degree of the code polynomial. 2. Divide the checksummed message by the code polynomial using modulo 2 division. If the remainder is zero, there is no error detected.

Decoding a CRC Agreed upon code polynomial: X^2 + 1 (101) 101101 <-- Checksummed Msg. 1011 <-- Original Msg.

Decoding a CRC Error Check the message: 1001 101 101101 101 001 000 010 000 101 101 00 <- Remainder = 0 No Error detected

Decoding a CRC with an Error When a bit error occurs, there is a large probability that it will produce a polynomial that is not an even multiple of the code polynomial, and thus errors can usually be detected.

Decoding a CRC with an Error Original Message: 1011 CORRECT checksum: 101101 ERROR checksum: 101001 1000 101 101001 101 000 000 000 000 001 000 01 <--Remainder =

Choosing a CRC Polynomial The longer the polynomial, the smaller the probability of an undetected error Common standard polynomials CRC-12: x^12 +x^11+x^3+x^2+x^1+1 CRC-16: x^16+x^15+x^2+1 CRC-CCITT: x^16+x^12+x^5+1

Error Correction Parity Bits and polynomial codes detect errors, but can we correct then without retransmitting information? Yes: by using Hamming Codes

Hamming Codes Hamming codes, like polynomial codes, are appended to the transmitted message Hamming codes, unlike polynomial codes, contain the information necessary to locate a single bit error

Calculating a Hamming Procedure: Code Decide on even or odd parity Place message bits in their nonpower-of-two Hamming positions Build a table listing the binary representation of each of the message bit positions calculate the check bits

Hamming Code Example Parity: Odd Message to be sent: 1011

Calculating a Hamming Code Check bits go into power-oftwo positions: 2^0, 2^1, 2^2, etc... = 1, 2, 4, etc... Message bits go into nonpower-of two positions = 3,5,6, 7, etc...

Calculating a Hamming Code Table ASCII BIN 1 001 2 010 3 011 4 100 5 101 6 110 7 111 check bit 1: 1,3,5,7 check bit 2: 2,3,6,7 check bit 4: 4,5,6,7

Calculating a Hamming Code Original Message: 1011 Check bit position 1 checks positions: 1,3, 5,7 and we are using odd parity _1 _0 1 1_ so check bit 1 = 1 _1 _1 _0 1 1_

Calculating a Hamming Code Original Message: 1011 Check Bit position 2 checks positions: 2,3, 6,7 and we are using odd parity _1 _0 1 1_ so check bit 2 = 0 _1 0 1 _0 1 1_

Calculating a Hamming Code Original Message: 1011 Check Bit position 4 checks positions: 4,5, 6,7 and we are using odd parity _1 _0 1 1_ so check bit 4 = 1 _1 0 1 1 0 1 1_

Calculating a Hamming Code Original Message: 1011 Sent Message: 1011011 How do we check/correct for single bit errors in the sent message?

Correcting a bit error Original Message: 1011 Transmitted Message: 1011011 Received Message: 1011001 Procedure: -Initialize a counter (n) to zero. -Examine each check bit for correct parity - If parity is incorrect add the check bit to the counter. - If n = 0 after all check bits are examined then the

Correcting a bit error Original Message: 1011 Transmitted Message: 1011011 Received Message: 1011001 check bit 1: 1,3,5,7 parity = odd 1011001 No Error in Check bit 1 N = 0

Correcting a bit error Original Message: 1011 Transmitted Message: 1011011 Received Message: 1011001 check bit 2 : 3,6,7 parity = odd 1011001 Error in Check bit 2 N = N + 2 N = 2

Correcting a bit error Original Message: 1011 Transmitted Message: 1011011 Received Message: 1011001 check bit 4 : 5,6,7 parity = odd 1011001 Error in Check bit 4 N = N + 4 N = 6

Correcting a bit error N = 6 (change bit 6) Original Message: 1011 Transmitted Message: 1011011 Received Message: 1011001 Corrected Message: 1011011

Final Word on Hamming Codes Hamming codes can be used to locate and correct a singlebit error If more than one bit is in error, then a Hamming code cannot correct it Hamming codes, like parity bits, are only useful on short messages

Flow Control What happens if the sender tries to transmit faster than the receiver can accept? Data will be lost unless flow control is implemented

Some Flow Control Algorithms Simplex protocols Flow control for the ideal network Stop and Wait for noiseless channels Stop and wait for noisy channels Full duplex protocols Sliding window with Go Back N Sliding window with Selective Repeat

Simplex Flow Control Data Only flows in one direction Acknowledgement stream may flow in the other direction

Flow Control in the Ideal Network Assumptions: Error Free transmission line Infinite buffer at the receiver No acknowledge of frames necessary Since the transmission line is error-free and the receiver can buffer as many frames as it likes, no packet will ever be lost

Flow Control in the ideal Network Problem: The ideal network does not exist!

Stop and Wait with Noiseless channels Assumptions: Error free transmission line Finite buffer at the receiver Buffer Overflow Buffer overflow may happen at the receiver when the sender sends frames at a rate faster than the receiver

Stop and Wait with Noiseless channels Solution to buffer overflow: Stop and Wait The receiver sends an acknowledgement telling the sender to transmit the next frame. The sender waits for the ACK and if the ACK comes, it transmits the next data frame.

Stop and Wait with Noiseless channels Sender Receiver Data Sender Receiver ACK

Stop and Wait with Noiseless channels We assume an error-free transmission line and hence, ACK frames will not be lost. In the protocol there are two types of frames: Data frames ACK frames The ACK frame does not carry any information since the arrival at the sender is the only important issue

Stop and Wait with Noiseless channels Problem: Transmission lines are noisy and the do get errors ACK frames can be lost!

Stop and Wait for Noisy Channels Problems: Problem 1: Loss of an ACK frame Since the transmission line is not error-free, an ACK frame may be lost, causing the data sender to wait indefinitely

Stop and Wait for Noisy Channels Problems: Can we solve problem 1 by introducing a timeout period for the sender? Yes, but... Problem 2: Duplicate Frames If the ACK frame for a certain data frame is lost, the sender will retransmit the same frame after a time-out period. Then the receiver will have two copies of the same frame.

Stop and Wait for Noisy Channels Problems: Duplicate frames Solution The sender uses a timer to retransmit data frames when an ACK has not arrived The sender includes a frame sequence number with each frame to distinguish one from another. Thus, the receiver knows when it has received duplicate frames.

Full Duplex Flow Control Protocols Data Frames are transmitted in both directions Sliding window flow control protocols

Sliding Window Protocols Defintions Sequence Number Each frame is assigned a sequence number that is incremented as each frame is transmitted Sender s Window Keeps sequence numbers of frames that have been sent but not yet acknowledged Sender s Window Size The number of frames the sender may transmit before receiving ACKs

Sliding Window Protocols Defintions Receiver s Window Keeps sequence numbers of frames that the receiver is allowed to accept Receiver s Window Size The maximum number of frames the receiver may receive out of order

Sliding Window Protocols General Remarks The sending and receiving windows do not have to be the same size Any frame which falls outside the receiving window is discarded at the receiver Unlike the sender s window, the receiver s window always remains at its initial size

Sliding Window Protocols Piggybacking Acknowledgements Since we have full duplex transmission, we can piggyback an ACK onto the header of an outgoing data frame to make better use of the channel. When a data frame arrives at the receiver, instead of immediately sending a separate ACK, the receiver waits until it is passed the next data frame to send. The acknowledgement is attached to the outgoing data frame.

Simple Sliding Window with Window Size of 1 The protocol behaves identically to stop and wait for a noisy channel.

Sliding Window with Window Size W With a window size of 1, the sender waits for an ACK before sending another frame With a window size of W, the sender can transmit up to W frames before being blocked We call using larger window sizes Pipelining

Sliding Window with Window Size W=2

Sliding Window with Window Size W=2

Why do Pipelining? In other words, why have a window size greater than 1? By allowing several frames into the network before receiving acknowledgement, pipelining keeps the transmission line from being idle. Increases throughput

What about Errors? What if data or acknowledgement frames are lost when using a sliding window protocol?

Solution Two solutions: Go Back N Selective Repeat

Sliding Window with Go Back N When a receiver notices a missing or errored frame, it simply discards all frames with greater sequence numbers and sends no ACK The sender will eventually time out and retransmit all the frames in its sending window The Receiver s window size is 1.

Sliding Window with Go Back N Ws - Sender Window size Wr - Receiver Window size N - Maximum Number of frames outstanding Wr=1 N= largest sequence number MAX_SEQ numbered from 0 N Ws= N

Go Back N Go Back N can recover from errored or missing packets but... It is wasteful. If there are a lot of errors the sender will spend most of its time retransmitting useless information This will waste a lot of bandwidth.

Sliding Window with Selective Repeat The sender retransmits only the frame with errors. The receiver stores all the correct frames that arrive following the bad one. This requires a significant amount of buffer space a the receiver. When the sender notices that something is wrong, it just retransmits the one bad frame, not all of its successors.

Sliding Window with Selective Repeat Ws - Sender Window Size Wr - Receiver Window Size N - Maximum Number of frames outstanding N= MAX_SEQ Wr and Ws =1/2 of (largest sequence number + 1) numbered from 0 N (MAX_SEQ +1) /2

Sliding Window with Selective Repeat

Comparison of Go Back N vs. Selective Repeat Go Back N is a bandwidth intensive approach in dealing with pipelining errors. However, the receiver needs no buffer space because it has a window size of 1. Selective Repeat uses less bandwidth for retransmission but the receiver must have buffer space.

Protocol Specification Verification: Finite State Machines Finite State Machine Mathematical technique used to specify and verify protocols. A sender or receiver (protocol machine) is always in a specific state at every instance of time. Initial State Corresponds to the state of the system when it starts running Transition Change from one state to another Reachability Analysis Determining which states are

Finite State Machines Deadlock Situation in which the protocol can make no forward progress.

Protocol Specification Verification: Petri Net Model Perti Net Another technique for formally specifying protocols Place A state which the system may be in Transition Change from one place to another A transition is enabled if it contains an input token An enabled transition is said to fire when it moves a token from the input place to the output place

Pteri Net Model Arcs Input arcs enter the place Output arcs leave the place Petri Nets can be represented in Algebraic form.

Petri Net Model

Bit-Oriented and Character-Oriented Protocols Character Orientated Protocol Basic Unit: Character Frame length is a multiple of character size Example: Internet PPP Bit Oriented Protocol Basic unit: Bit Frame length is not a multiple of character size Example: HDLC High Level Data Link Control

Example Character Orientated Protocol PPP = Point-to-Point Protocol Used Widely in the Internet PPP uses frame tags with character stuffing

Character Orientated Protocols With character orientated protocols, a frame is composed of characters in some character code (e.g., ASCII, EBCDIC, UNICODE). A computer with 9-bit characters cannot send arbitrary messages in ASCII code. They must be chopped and repacked into units of 8 bits. Bit orientated protocols do not require such chopping up and repackaging of

Example Bit Orientated Protocol HDLC = High-level Data Link Control Used in X.25 networks HDLC uses frame tags with bit stuffing