1 / 21

Chapter 5: The Data Link Layer

Our goals: understand principles behind data link layer services: error detection, correction sharing a broadcast channel: multiple access link layer addressing reliable data transfer, flow control: done! instantiation and implementation of various link layer technologies.

reubenr
Download Presentation

Chapter 5: The Data Link Layer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Our goals: understand principles behind data link layer services: error detection, correction sharing a broadcast channel: multiple access link layer addressing reliable data transfer, flow control: done! instantiation and implementation of various link layer technologies Chapter 5: The Data Link Layer Network Layer

  2. 5.1 Introduction and services 5.2 Error detection and correction 5.3Multiple access protocols 5.4 Link-layer Addressing 5.5 Ethernet 5.6 Link-layer switches 5.7 PPP 5.8 Link virtualization: ATM, MPLS Link Layer Network Layer

  3. Link Layer Services • framing, link access: • encapsulate datagram into frame, adding header, trailer • channel access if shared medium • “MAC” addresses used in frame headers to identify source, dest • different from IP address! Network Layer

  4. Link Layer Services (more) • error detection: • errors caused by signal attenuation, noise. • receiver detects presence of errors: • signals sender for retransmission or drops frame • error correction: • receiver identifies and corrects bit error(s) without resorting to retransmission Network Layer

  5. Data link: usual approach • Usual approach • Data link • breaks the bit stream up into discrete frames • computes the checksum for each frame • This checksum is recomputed at the destination • Breaking bit stream up • Character count • Flag bytes with byte stuffing • Starting and ending flags with bit stuffing Network Layer

  6. Framing • First method • Uses a field in the header specifying # characters • Trouble • Count can be garbled by a transmission error Network Layer

  7. Framing (cont’d) • Starting and ending delimiters • => flag bytes • Flag byte pattern occurring in the data • => byte stuffing Network Layer

  8. If an escape byte occurs in the middle of the data • A framing flag byte can be • Distinguished from one in the data • By the absence or presence of an escape byte before it • If an escape byte occurs in data • It is stuffed with an escape byte • Example of byte sequences after stuffing • Single escape byte => part of an escape sequence • Double one => a single escape occurred in the data • In all cases, delivered byte sequence same as original Network Layer

  9. Bit stuffing • Frame begins and ends with 01111110 • If sender encounters 5 consecutive 1s • Sender stuffs a 0 bit into the outgoing bit stream • Receiver destuffs the 0 bit Network Layer

  10. 5.1 Introduction and services 5.2 Error detection and correction 5.3Multiple access protocols 5.4 Link-layer Addressing 5.5 Ethernet 5.6 Link-layer switches 5.7 PPP 5.8 Link Virtualization: ATM. MPLS Link Layer Network Layer

  11. Error detection and correction • Transmission errors are common on local loops • transmission errors are going to be with us for years • => need for error correcting or detecting codes • Error correcting codes • include enough redundant information along with block of data • To enable receiver to deduce what transmitted data was • Suitable for channels that make many errors • Error detecting codes • include only enough redundancy to allow • Receiver to deduce that an error occurred, not which error • Suitable for highly reliable channels Network Layer

  12. Error correcting and detecting codes: terminology • A frame consists of m data bits • And r redundant, or check, bits • => total length n = m + r • The n bit (data + check bits) => n-bit codeword • Hamming distance • The # bit positions in which 2 codewords differ • Example: given 1001001 and 10110001, • 3 bits differ => hamming distance = 3 Network Layer

  13. Error correcting and detecting code: rules • To detect d errors, you need a distance d+1 code • Example: code in which single parity bit is appended • The parity bit is chosen so that # of 1 bits is even (or odd) • A code with single parity bit has a distance 2 • => it can be used to detect single errors • To correct d errors, you need a distance 2d+1 code • Example: 0000000000, 0000011111, 1111100000 • This code has a distance 5 => can correct double errors • If 0000000111 arrives => original must have been 0000011111 Network Layer

  14. Lower limit on the number of check bits • We want to design a code • with m message bits and r check bits • Allowing all single errors to be corrected • This requirement becomes • This put a lower limit on the number of check bits • Needed to correct a single error Network Layer

  15. Error correcting code: Hamming code • A data bit in position k • is checked by just those check bits occurring in its expansion Network Layer

  16. Use of Hamming code to correct burst errors Network Layer

  17. Error detecting codes • Cyclic Redundancy Check (CRC) • is in widespread use, and called polynomial code • treats bits as 0 and 1 coefficients of polynomials • For example: 110001 represents x5 +x4 + x0 • Sender and receiver agree • upon a generator polynomial G(x) • To compute the checksum for some frame of m bits M(x) • => append a checksum to the end of frame • such that polynomial is divisible by G(x) • Receiver divides check-summed frame by G(x) • If there is a remainder => there has been an error Network Layer

  18. Checksumming: Cyclic Redundancy Check • view data bits, D, as a binary number • choose r+1 bit pattern (generator), G • goal: choose r CRC bits, R, such that • <D,R> exactly divisible by G (modulo 2) • receiver knows G, divides <D,R> by G. If non-zero remainder: error detected! • can detect all burst errors less than r+1 bits • widely used in practice (Ethernet, 802.11 WiFi, ATM) Network Layer

  19. Algorithm for computing the checksum • Let r be the degree of G(x) • Append r zeros to the low-order end of the frame • => xr M(x) • Divide the bit string corresponding to G(x) • Into the bit string corresponding xr M(x) using • Modulo 2 division • Subtract the remainder from xr M(x) • The result is the checksumed frame to be transmitted Network Layer

  20. Error detecting codes: example Calculation of the polynomial code checksum. Network Layer

  21. CRC Example Want: D.2r XOR R = nG equivalently: D.2r = nG XOR R equivalently: if we divide D.2r by G, want remainder R D.2r G R = remainder[ ] Network Layer

More Related