This chapter covers essential functions of the data link layer, including framing, error control, and flow control, along with services provided to the network layer. Topics such as error-detecting and error-correcting codes, Hamming distance, parity schemes, CRC schemes, and elementary data link protocols are explored in detail.
01 / 51Data Link Layer Functions and Design Issues in Computer Networking
1 / 17
Télécharger la présentation
Data Link Layer Functions and Design Issues in Computer Networking
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
F I N
Plus de contenu associé
Transcription de la présentation
The Data Link Layer Chapter 3 Adapted from Tanenbaum's Slides for Computer Networking, 4e
Functions of the Data Link Layer • Provide service interface to the network layer • Dealing with transmission errors • Regulating data flow • Slow receivers not swamped by fast senders
Framing A character stream. (a) Without errors. (b) With one error.
Framing (2) (a) A frame delimited by flag bytes. (b) Four examples of byte sequences before and after stuffing.
Framing (3) Bit stuffing (a) The original data. (b) The data as they appear on the line. (c) The data as they are stored in receiver’s memory after destuffing.
Error Detection and Correction • Error-Correcting Codes • Error-Detecting Codes • Key idea: redundant (additional) bits (use only 2m out of 2n code words) • Key metrics: • how many errors can be corrected/detected; • what burst length
Hamming Distance • Some codes words are valid; others are invalid • Hamming distance between two code words is number of bits that must be flipped to change from one to the other • If Hamming distance is d then d single bit errors needed to change one word to the other • Hamming distance of a code is the minimum Hamming distance between two valid code words • Detecting one single-bit error requires a distance 2 code; how does this generalize? • Correcting one single-bit error requires a distance 3 code; how does this generalize?
Parity Schemes • Parity bits: choose a rule • Even parity – each codeword has even number of 1’s • Odd parity – each codeword has odd number of 1’s • Always transmit according to the rule • On receipt, if rule is violated, word is invalid • Can also do “vertical parity” over whole block to achieve single-bit error correction
CRC Schemes • CRC – Cyclic Redundancy Check or polynomial code • Consider bits of a message to be coefficients of a polynomial M(x) • 1011 – 1x3 + 0x2 + 1x1 + 1x0 • Of course real messages will be much longer and hence of higher degree • Agree on a small-degree generator polynomial G(x) of degree r • Note: G(x) has r digits to the right of the leading 1, hence r+1 total • Divide xrM(x) by G(x) using modulo 2 division(no carries or borrows) getting the remainder polynomial R(x) • Transmit T(x) = xrM(x) - R(x); note that this has remainder 0 when divided by G(x) • Receiver rejects frame if the remainder it computers is not 0
CRC Properties • Easily computed with feedback shift register hardware • Detects any single-bit error • Proper choice of G(x) gives detection of any two bit errors • Proper choice of G(x) gives detection of any odd number of bit errors • Detects any burst error of length <= r; Why? • Received message is T(x)+E(x) for some error polynomial E(x) • If E(x) represents a burst of length <= r then it can be written as xi(F(x)) where the degree of F(x) is < r • If G(x) has an x0 term it can’t divide xi and no degree r polynomial divides a polynomial of degree < r
Elementary Data Link Protocols • Important to read pp. 200-204 – set up the coding conventions used in what follows • An Unrestricted Simplex Protocol • No buffer limits, no errors • A Simplex Stop-and-Wait Protocol • Add buffer limits • A Simplex Protocol for a Noisy Channel • Add channel errors
Protocol Definitions Continued Some definitions needed in the protocols to follow. These are located in the file protocol.h.
Protocol Definitions(ctd.) Some definitions needed in the protocols to follow. These are located in the file protocol.h.
Sliding Window Protocols • Why? • Efficiency – bandwidth*delay product • Efficiency – when errors occur • A One-Bit Sliding Window Protocol • A Protocol Using Go Back N • A Protocol Using Selective Repeat
Sliding Window Protocols (2) A sliding window of size 1, with a 3-bit sequence number. (a) Initially. (b) After the first frame has been sent. (c) After the first frame has been received. (d) After the first acknowledgement has been received.
A One-Bit Sliding Window Protocol (2) Two scenarios for protocol 4. (a) Normal case. (b) Abnormal case. The notation is (seq, ack, packet number). An asterisk indicates where a network layer accepts a packet.
A Protocol Using Go Back N Pipelining and error recovery. Effect on an error when (a) Receiver’s window size is 1. (b) Receiver’s window size is large.
A Sliding Window Protocol Using Selective Repeat (5) (a) Initial situation with a window size seven. (b) After seven frames sent and received, but not acknowledged. (c) Initial situation with a window size of four. (d) After four frames sent and received, but not acknowledged.
Goals of FSM & Petri Net modeling • Detect incomplete specifications • Detect deadlocks – no progress (in this case meaning no packets delivered to the network layer) • Detect errors – frames delivered out of order for example or frames lost • What is a state: program counter and all significant variables of each component state machine along with state of the channel.
Finite State Machine Models (a) State diagram for protocol 3. (b) Transitions State: 000 means 0 sender state 0 rcvr state 0 packet on wire; A means “ack”; - means “empty”
Petri Net Models A Petri net with two places and two transitions.