Top Banner
Network Layer 4-1 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
21

Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Jan 19, 2018

Download

Documents

Jodie Rice

Network Layer4-3 Link Layer Services r framing, link access: m encapsulate datagram into frame, adding header, trailer m channel access if shared medium m “MAC” addresses used in frame headers to identify source, dest different from IP address!
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-1

Chapter 5: The Data Link LayerOur 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

Page 2: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-2

Link Layer 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

Page 3: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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!

Page 4: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

Page 5: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

Page 6: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-6

Framing

First method Uses a field in the header specifying # characters

Trouble Count can be garbled by a transmission error

Page 7: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-7

Framing (cont’d)

Starting and ending delimiters => flag bytes

Flag byte pattern occurring in the data => byte stuffing

Page 8: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

Page 9: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

Page 10: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-10

Link Layer 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

Page 11: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

Page 12: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

Page 13: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

Page 14: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

rrm 21

Page 15: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-15

Error correcting code: Hamming code

A data bit in position k is checked by just those check bits occurring in its

expansion

Page 16: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-16

Use of Hamming code to correct burst errors

Page 17: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

Page 18: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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)

Page 19: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-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

Page 20: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-20

Error detecting codes: example

Calculation of the polynomial code checksum.

Page 21: Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…

Network Layer 4-21

CRC ExampleWant:

D.2r XOR R = nGequivalently:

D.2r = nG XOR R equivalently: if we divide D.2r by

G, want remainder R

R = remainder[ ]D.2r

G