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
Embed
Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link…
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
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
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
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!
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
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
Network Layer 4-6
Framing
First method Uses a field in the header specifying # characters
Trouble Count can be garbled by a transmission error
Network Layer 4-7
Framing (cont’d)
Starting and ending delimiters => flag bytes
Flag byte pattern occurring in the data => byte stuffing
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
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
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
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
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
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
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
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
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 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)
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
Network Layer 4-20
Error detecting codes: example
Calculation of the polynomial code checksum.
Network Layer 4-21
CRC ExampleWant:
D.2r XOR R = nGequivalently:
D.2r = nG XOR R equivalently: if we divide D.2r by