Transcript ppt
Chapter 5
Link Layer and LANs
A note on the use of these ppt slides:
We’re making these slides freely available to all (faculty, students, readers).
They’re in PowerPoint form so you can add, modify, and delete slides
(including this one) and slide content to suit your needs. They obviously
represent a lot of work on our part. In return for use, we only ask the
following:
If you use these slides (e.g., in a class) in substantially unaltered form,
that you mention their source (after all, we’d like people to use our book!)
If you post any slides in substantially unaltered form on a www site, that
you note that they are adapted from (or perhaps identical to) our slides, and
note our copyright of this material.
Computer Networking:
A Top Down Approach
4th edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2007.
Thanks and enjoy! JFK/KWR
All material copyright 1996-2007
J.F Kurose and K.W. Ross, All Rights Reserved
5: DataLink Layer
5-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
instantiation and implementation of various link
layer technologies
5: DataLink Layer
5-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
5: DataLink Layer
5-3
Link Layer: Introduction
Some terminology:
hosts and routers are nodes
communication channels that
connect adjacent nodes along
communication path are links
wired links
wireless links
LANs
layer-2 packet is a frame,
encapsulates datagram
data-link layer has responsibility of
transferring datagram from one node
to adjacent node over a link
5: DataLink Layer
5-4
Link layer: context
datagram transferred by
different link protocols
over different links:
e.g., Ethernet on first link,
frame relay on
intermediate links, 802.11
on last link
each link protocol
provides different
services
e.g., may or may not
provide rdt over link
transportation analogy
trip from Princeton to
Lausanne
limo: Princeton to JFK
plane: JFK to Geneva
train: Geneva to Lausanne
tourist = datagram
transport segment =
communication link
transportation mode =
link layer protocol
travel agent = routing
algorithm
5: DataLink Layer
5-5
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!
reliable delivery between adjacent nodes
seldom used on low bit-error link (fiber, some twisted
pair)
wireless links: high error rates
• Q: why both link-level and end-end reliability?
5: DataLink Layer
5-6
Link Layer Services (more)
flow control:
pacing between adjacent sending and receiving nodes
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
half-duplex and full-duplex
with half duplex, nodes at both ends of link can transmit,
but not at same time
5: DataLink Layer
5-7
Where is the link layer implemented?
in each and every host
link layer implemented in
“adaptor” (aka network
interface card NIC)
Ethernet card, PCMCI
card, 802.11 card
implements link, physical
layer
attaches into host’s
system buses
combination of
hardware, software,
firmware
host schematic
application
transport
network
link
cpu
memory
controller
link
physical
host
bus
(e.g., PCI)
physical
transmission
network adapter
card
5: DataLink Layer
5-8
Adaptors Communicating
datagram
datagram
controller
controller
receiving host
sending host
datagram
frame
sending side:
encapsulates datagram in
frame
adds error checking bits,
rdt, flow control, etc.
receiving side
looks for errors, rdt, flow
control, etc
extracts datagram, passes
to upper layer at receiving
side
5: DataLink Layer
5-9
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
5: DataLink Layer
5-10
Error Detection
EDC= Error Detection and Correction bits (redundancy)
D = Data protected by error checking, may include header fields
• Error detection not 100% reliable!
• protocol may miss some errors, but rarely
• larger EDC field yields better detection and correction
otherwise
5: DataLink Layer
5-11
Parity Checking
Single Bit Parity:
Detect single bit errors
Two Dimensional Bit Parity:
Detect and correct single bit errors
0
0
5: DataLink Layer
5-12
Internet checksum
Goal: detect “errors” (e.g., flipped bits) in transmitted
packet (note: used at transport layer only)
Sender:
treat segment contents
as sequence of 16-bit
integers
checksum: addition (1’s
complement sum) of
segment contents
sender puts checksum
value into UDP checksum
field
Receiver:
compute checksum of
received segment
check if computed checksum
equals checksum field value:
NO - error detected
YES - no error detected.
But maybe errors
nonetheless?
5: DataLink Layer
5-13
Internet Checksum Example
Note
When adding numbers in 1’s complement notation, a
carry-over from the most significant bit needs to be
added to the result
Example: add two 16-bit integers
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1
add wraparound 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
sum
5: DataLink Layer
5-14
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 (802.11 WiFi, ATM)
5: DataLink Layer
5-15
Checksumming: Cyclic Redundancy Check
Sender has data D, which is d bits long.
Sender computes R, an r-bit CRC of those d bits
r
is usually 8, 12, 16, or 32
Sender sends D followed by R to the receiver
Receiver computes the CRC of the received data
If
no match, there were certainly errors
If match, no error detected
5: DataLink Layer
5-16
Checksumming: Cyclic Redundancy Check
Better at detecting errors than other methods
we've seen
Can detect all burst errors up to r bits
But much more complicated to compute
Since the link layer is handled semi-autonomously
in adapter hardware, CRCs are more appropriate
for the link layer than for higher layers in the
protocol stack.
The mathematical details are in the text.
5: DataLink Layer
5-17
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
R = remainder[
D.2r
G
]
5: DataLink Layer
5-18
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 Hubs and switches
5.7 PPP
5.8 Link Virtualization:
ATM
5: DataLink Layer
5-19
Point to Point Data Link Control
one sender, one receiver, one link: easier than
broadcast link:
no Media Access Control
no need for explicit MAC addressing
e.g., dialup link, ISDN line
most popular point-to-point DLC protocol:
PPP (point-to-point protocol)
probably use this at home:
• Dailup : Plain PPP
• ADSL : PPP over Ethernet (PPPoE)
5: DataLink Layer
5-20
PPP Design Requirements [RFC 1557]
packet framing: encapsulation of network-layer
datagram in data link frame
carry network layer data of any network layer
protocol (not just IP) at same time
ability to demultiplex upwards
bit transparency: must carry any bit pattern in the
data field
error detection (no correction)
connection liveness: detect, signal link failure to
network layer
network layer address negotiation: endpoint can
learn/configure each other’s network address
5: DataLink Layer
5-21
PPP non-requirements
no error correction/recovery
no flow control
out of order delivery OK
no need to support multipoint links (e.g., polling)
Error recovery, flow control, data re-ordering
all relegated to higher layers!
5: DataLink Layer
5-22
PPP Data Control Protocol
Before exchanging networklayer data, data link peers
must
configure PPP link (max.
frame length,
authentication)
learn/configure network
layer information
for IP: carry IP Control
Protocol (IPCP) msgs
(protocol field: 8021) to
configure/learn IP
address
5: DataLink Layer
5-23
PPP Data Frame
Flag: delimiter (framing)
Address: does nothing (only one option)
Control: does nothing; in the future possible
multiple control fields
Protocol: upper layer protocol to which frame
delivered (eg, PPP-LCP, IP, IPCP, etc)
5: DataLink Layer
5-24
PPP Data Frame
info: upper layer data being carried
check: cyclic redundancy check for error
detection
5: DataLink Layer
5-25
Byte Stuffing
“Data transparency” requirement: protocol, info,
checksum fields must be allowed to include flag
pattern <01111110>
□ Q: is received <01111110> the closing flag, or part of
some other field?
Sender: adds (“stuffs”) escape sequence
<01111101> byte before:
□ each non-flag <01111110> byte
□ each <01111101> byte
Receiver:
□ discard <01111101> byte and treat next as data
□ single <01111110>: flag byte
5: DataLink Layer
5-26
Byte Stuffing
flag byte
pattern
in data
to send
flag byte pattern plus
stuffed byte in
transmitted data
5: DataLink Layer
5-27