Chapter 5: The Data Link Layer
Download
Report
Transcript Chapter 5: The Data Link Layer
Chapter 5: The Data Link Layer
Our goals:
Overview:
understand principles
link layer services
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
error detection, correction
multiple access protocols and
LANs
link layer addressing, ARP
specific link layer technologies:
Ethernet
hubs, bridges, switches
IEEE 802.11 LANs
PPP
5: DataLink Layer
1
Link Layer: setting the context
Node: Host/Router
Different link-layer protocols on the
different links in the path
•
Ethernet
•
Link-layer WAN protocol
•
PPP
Network Layer: End-to-End job of moving transport-layer segments from source host to
destination host
Link-Layer Protocol: Node-to-Node job of moving network-layer datagrams over a single2
5: DataLink Layer
link in the path
Link Layer: setting the context
two physically connected devices:
host-router, router-router, host-host
unit of data:
M
Ht M
Hn Ht M
Hl Hn Ht M
frame
application
transport
network
link
physical
data link
protocol
phys. link
network
link
physical
Hl Hn Ht M
frame
adapter card
5: DataLink Layer
3
Link Layer Services
Parallels transport layer
services
Framing, link access:
encapsulate datagram into frame, adding header, trailer
implement channel access if shared medium,
‘physical addresses’ used in frame headers to identify
source, destination
• different from IP address!
Catch the error on the link
where it occurs
Reliable delivery between two physically connected
devices:
Mechanisms: Seq.Nos,
Timers, ACKs
we learned how to do this already (chapter 3)!
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
4
Link Layer Services (more)
Flow Control:
pacing
between sender and receivers
Error Detection:
More sophisticated; hardware-implemented
errors
caused by signal attenuation &
electromagnetic noise.
Sender sets error-detection bits in the frame;
receiver detects presence of errors:
• signals sender for retransmission or drops frame
Error Correction:
identifies and corrects bit error(s)
without resorting to retransmission
receiver
5: DataLink Layer
5
Link Layer: Implementation
implemented in adapter
Network Interface Card
(NIC)
e.g.,
PCMCIA card, Ethernet card
typically includes: RAM, DSP chips, host bus
interface, and link interface
M
Ht M
Hn Ht M
Hl Hn Ht M
application
transport
network
link
physical
data link
protocol
phys. link
adapter card
network
link
physical
Hl Hn Ht M
frame
5: DataLink Layer
6
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, but
incurs larger overhead
5: DataLink Layer
7
Immediate error
correction at the receiver
(Forward Error
Correction) or FEC
Parity Checking
Single Bit Parity:
Detect single bit errors
Two Dimensional Bit Parity:
Detect and correct single bit errors
Even Parity Scheme
Odd Parity Scheme
Commonly used in
Audio storage &
playback devices
0
0
5: DataLink Layer
8
Software-implemented; requires
relatively little packet overhead but
weaker protection against errors as
compared to CRC
Internet checksum
Goal: detect errors (e.g., flipped bits) in transmitted
segment (note: used at transport layer only)
Sender:
treat segment contents as
sequence of 16-bit
integers
checksum: 1's complement
of the 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? More later
….
TCP & UDP computes Internet checksum over all fields
5: DataLink Layer
9
Check summing: Cyclic Redundancy Check
Based on CRC codes, also known as polynomial codes
view data bits, D, as a binary number
choose r+1 bit pattern (generator), G with leftmost bit=1
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 (ATM, HDCL)
Multiplication by 2k is the same as bitpattern << k
5: DataLink Layer
10
CRC Example
Given: D=101110, d=6, G=1001, r=3
Output: transmitted=101110011
Done in modulo-2 arithmetic without carries in addition or borrows in subtraction (XOR)
1011
0101
1110
Want:
D.2r XOR R = nG
equivalently:
D.2r = nG XOR R
equivalently:
if we divide D.2r by
G, want reminder R
R = remainder[
D.2r ]
G
We are interested only in the
remainder. 5: DataLink Layer
11
END OF SESSION
5: DataLink Layer
12
Multiple Access Links and Protocols
Two types of network links:
Point-to-point link (single wire, e.g. PPP,
SLIP)
Broadcast link (shared wire or wireless
medium; e.g, Ethernet, Wavelan, etc.)
5: DataLink Layer
13
Multiple Access protocols (MAC)
Regulates node transmission over shared broadcast channel
single shared communication channel
two or more simultaneous transmissions by nodes:
interference
only one node can send successfully at a time
multiple access protocol:
distributed algorithm that determines how stations share
channel, i.e., determines when the station can transmit
communication about channel sharing must use channel itself!
what to look for in multiple access protocols:
• synchronous or asynchronous
• information needed about other stations
• robustness (e.g., to channel errors)
• performance
5: DataLink Layer
14
MAC Protocols: a taxonomy
Three broad classes:
Channel Partitioning Protocols
divide channel into smaller pieces (time slots, frequency
bands, multiple access codes)
allocate piece to node for exclusive use
Random Access Protocols
allow
collisions
recover from collisions
Taking turns Protocols
tightly coordinate shared access to avoid collisions
Animation
5: DataLink Layer
15
MAC Protocols
Goal: efficient, fair, simple, decentralized
DESIRABLE CHARACTERISTICS
For a broadcast channel of R bps:
• For only one sending node: throughput = R bps
• For M sending nodes: throughput = R/M bps
-not instantaneous transmission rate, but average transmission rate of
R/M bps over some suitably defined time interval
• Decentralized
• Simple, inexpensive to implement
5: DataLink Layer
16
Channel Partitioning MAC protocols: TDMA
Divide time into Frames, and
further divide Frames into N time
slots
TDMA: Time Division Multiple Access
access to channel in rounds
each station gets fixed length slot (length = pkt trans time) in
each round
Drawback: unused slots go idle
example: 6-station LAN, 1,3,4 have pkt, slots 2,5,6 idle
TDM (Time Division Multiplexing): channel divided into N time
slots, one per user
Advantages: eliminates collision; perfectly fair; dedicated
transmission rate of R/N
Disadvantage: inefficient with low duty cycle users and at light
load.
See more slides
5: DataLink Layer
17
Channel Partitioning MAC protocols:
FDMA: Frequency Division Multiple Access
channel spectrum divided into frequency bands
each station assigned fixed frequency band
Drawback:
Unused transmission time in frequency bands go idle
Node is limited to a bandwidth of R/N, even when all the other nodes are
idle at the time
example: 6-station LAN, 1,3,4 have pkt, frequency bands 2,5,6 idle
Divide channel of R bps
into different Frequencies
(each with R/N), and assign
each Frequency to one of the
nodes N
frequency bands
FDM (Frequency Division Multiplexing): frequency subdivided.
See more slides
5: DataLink Layer
18
TDM & FDM
Suppose that a channel supports N nodes, with transmission rate of R
bps
DRAWBACKS
• A NODE is limited to a bandwidth of R/N when it is the only node with
packets to send
• (Only for TDM) A NODE must always wait for its turn in the
transmission sequence, even when it is the only node with a packet to
send
5: DataLink Layer
19
Random Access protocols
When node has packet to send
transmit at full rate (R) of channel
no a priori coordination among nodes
two or more transmitting nodes -> collision!!,
random access MAC protocol specifies:
how to detect collisions
how to recover from collisions (e.g., via delayed
retransmissions)
Examples of random access MAC protocols:
slotted ALOHA
ALOHA
CSMA and CSMA/CD
5: DataLink Layer
20
CSMA:
(Carrier Sense Multiple Access)
CSMA: listen before transmit:
If channel sensed idle: transmit entire pkt
If channel sensed busy, defer transmission
Persistent CSMA: retry immediately with
probability p when channel becomes idle (may cause
instability)
Non-persistent CSMA: retry after random time
interval
human analogy: don't interrupt others!
Animation
RULES:
•Listen before speaking (carrier sensing)
• If someone else begins talking at the same
21
5: DataLink
Layer
time, stop talking (collision
detection)
CSMA collisions
4 nodes attached to a linear broadcast
bus; Horizontal axis shows position of
each node in space
Channel propagation
delay
spatial layout of nodes along ethernet
collisions can occur:
propagation delay means
two nodes may not yet
hear each other's
transmission
collision:
entire packet transmission
time wasted
note:
D senses the channel is
idle at t1
role of distance and
propagation delay in
determining collision prob.
5: DataLink Layer
22
CSMA/CD (Collision Detection)
CSMA/CD: carrier sensing, deferral as in CSMA
collisions
colliding
detected within short time
transmissions aborted, reducing channel
wastage
persistent or non-persistent retransmission
collision detection:
easy
in wired LANs: measure signal strengths,
compare transmitted, received signals
difficult in wireless LANs: receiver shut off while
transmitting
human analogy: the polite conversation
5: DataLink Layer
23
CSMA/CD collision detection
4 nodes attached to a
linear broadcast bus
5: DataLink Layer
24
Slotted Aloha
time is divided into equal sized slots (= pkt trans.
time)
node with new arriving pkt: transmit at beginning of
next slot
if collision: retransmit pkt in future slots with
probability p, until successful.
Success (S), Collision (C), Empty (E) slots
5: DataLink Layer
25
Slotted Aloha efficiency
Q: what is max fraction of slots that
are successful?
A: Suppose N stations have packets to send
each transmits in slot with probability p
prob. successful transmission S is:
by single node: S= p (1-p)(N-1)
by any of N nodes
S = Prob (only one transmits)
= N p (1-p)(N-1)
At its best: channel
use for successful
transmissions is 37%
of the time!
… choosing optimum p as n -> infinity ...
Find p that maximizes the expression
Maximum Efficiency of Protocol
= 1/e = .37 as N -> infinity
5: DataLink Layer
26
e.g. For a network with 100 Mbps Slotted ALOHA system, the successful throughput < 37Mbps.
Slotted ALOHA
Pros
• single active node can
continuously transmit at
full rate of channel
• highly decentralized: only
slots in nodes need to be
in sync
• simple
Cons
• collisions, wasting slots
• idle slots
• nodes may not be able to
detect collision in less
than time to transmit
packet
• clock synchronization
5: DataLink Layer
27
Pure (unslotted) ALOHA
FULLY DECENTRALIZED PROTOCOL
unslotted Aloha: simpler, no synchronization
If pkt needs transmission:
sends immediately without waiting for the beginning of
slot
If there’s a collision after transmission:
Retransmit frame with probability p
Else Wait for next transmission time
Collision probability increases:
pkt sent at t0 collide with other pkts sent in [t0-1, t0+1]
5: DataLink Layer
28
Pure Aloha (cont.)
P(success by given node) = P(node transmits a frame) .
P(no other node transmits in [t0-1,t0] .
P(no other node transmits in [t0, t0+1]
= p . (1-p)(N-1) . (1-p)(N-1)
P(success by any of N nodes) = N p . (1-p)
2(N-1)
S = throughput = “goodput”
(success rate)
… choosing optimum p as n -> infinity ...
= 1/(2e) = .18
0.4
0.3
Slotted Aloha
0.2
0.1
protocol constrains
effective channel
throughput!
Pure Aloha
0.5
1.0
1.5
2.0
G = offered load = Np
5: DataLink Layer
29
Channel Partitioning (CDMA)
CDMA (Code Division Multiple Access)
Sender: sends encoded data bits simultaneously
Receiver: assigned a unique code (i.e. code set partitioning)
Has been used by military; now used mostly in wireless
broadcast channels (cellular, satellite,etc)
all users share same frequency, but each user has own
''chipping'' sequence (i.e., code) to encode data
encoded signal = (original data) X (chipping sequence)
decoding: inner-product of encoded signal and chipping
sequence
Advantage: allows multiple users to coexist and transmit
simultaneously with minimal interference (if codes are
orthogonal)
5: DataLink Layer
30
CDMA Encode/Decode
M mini slots
are assigned
to each data
bit
5: DataLink Layer
31
CDMA: two-sender interference
Assumption: interfering
bit signals are additive
5: DataLink Layer
32
Taking Turns MAC protocols
channel partitioning MAC protocols:
share channel efficiently at high load
inefficient at low load: delay in channel access,
R/N bandwidth allocated even if only 1 active
node!
Random access MAC protocols
efficient at low load: single node can fully
utilize channel
high load: collision overhead
taking turns protocols
look for best of both worlds!
5: DataLink Layer
33
Taking Turns MAC protocols
Polling:
master node invites
slave nodes to
transmit in turn
Request to Send,
Clear to Send msgs
concerns:
polling overhead
latency
single point of
failure (master)
Token passing:
control token passed from
one node to next
sequentially.
token message
concerns:
token overhead
latency
single point of failure (token)
e.g. FDDI, IEEE 802.5
Animation
5: DataLink Layer
34
Reservation-based protocols
Distributed Polling:
time divided into slots
begins with N short reservation slots
reservation slot time equal to channel end-end propagation
delay
station with message to send posts reservation
reservation seen by all stations
after slot reservation, message transmissions are ordered by
known priority
Nodes can transmit only up to a max number of frames
5: DataLink Layer
35
Summary of MAC protocols
What do you do with a shared media?
Channel
Partitioning, by time, frequency or code
• Time Division,Code Division, Frequency Division
Random
partitioning (dynamic),
• ALOHA, S-ALOHA, CSMA, CSMA/CD
• carrier sensing: easy in some technologies (wire), hard
in others (wireless)
• CSMA/CD used in Ethernet
Taking
Turns
• polling from a central site, token passing
5: DataLink Layer
36
END OF SESSION
5: DataLink Layer
37
LAN technologies
Data link layer so far:
services,
access
error detection/correction, multiple
Next: LAN technologies
addressing
Ethernet
hubs,
bridges, switches
802.11
5: DataLink Layer
38
LAN Addresses and ARP
Recall
32-bit IP address:
network-layer address
used to get datagram to destination network
(recall IP network definition)
LAN or Media Access Control (MAC) or
physical address:
used to get datagram from one interface to
another physically-connected interface (same
network)
48 bit MAC address (for most LANs)
burned in the adapter ROM
5: DataLink Layer
39
LAN Addresses and ARP
Each adapter on LAN has unique LAN address
5: DataLink Layer
40
LAN Address (more)
MAC address allocation administered by IEEE
manufacturer buys portion of MAC address space
(to assure uniqueness)
Analogy:
(a) MAC address: like Social Security Number
(b) IP address: like postal address
MAC flat address => portability
can move LAN card from one LAN to another
IP hierarchical address NOT portable
depends on network to which one attach to
5: DataLink Layer
41
Recall earlier routing discussion
Starting at A, given IP
datagram addressed to B:
A
223.1.1.1
223.1.2.1
look up net. address of B, find B
on same net. as A
link layer send datagram to B
inside link-layer frame
223.1.1.2
223.1.1.4 223.1.2.9
B
223.1.1.3
223.1.3.27
223.1.3.1
frame source, dest address
A’s MAC B’s MAC
addr
addr
223.1.2.2
E
223.1.3.2
datagram source, dest address
A’s IP
addr
B’s IP
addr
IP payload
datagram
frame
5: DataLink Layer
42
ARP:
Address Resolution Protocol
Question: how to determine
MAC address of B
given B's IP address?
Each IP node (Host,
Router) on LAN has an
ARP module, table
ARP Table: IP/MAC
address mappings for
some LAN nodes
< IP address; MAC address; TTL>
<
………………………….. >
TTL (Time To Live): time
after which address
mapping will be forgotten
(typically 20 min)
We have an example5: later
DataLink Layer
43
ARP protocol
We have an example later
A knows B's IP address, wants to learn physical
address of B
A broadcasts ARP query pkt, containing B's IP
address
all machines on LAN receive ARP query
B receives ARP packet, replies to A with its (B's)
physical layer address
A caches (saves) IP-to-physical address pairs until
information becomes old (times out)
soft state: information that times out (goes
away) unless refreshed
5: DataLink Layer
44
Routing to another LAN
routing from A to B via R
In the routing table at source Host, A finds router
111.111.111.110
In ARP table at source, find MAC address E6-E9-00-17-BB-4B,
etc
A
R
B
5: DataLink Layer
45
A creates IP packet with source A, destination B
A uses ARP to get R's physical layer address for
111.111.111.110
A creates Ethernet frame with R's physical address as dest,
Ethernet frame contains A-to-B IP datagram
A's data link layer sends Ethernet frame
R's data link layer receives Ethernet frame
R removes IP datagram from Ethernet frame, sees its
destined to B
R uses ARP to get B's physical layer address
R creates frame containing A-to-B IP datagram sends to B
A
R
B
5: DataLink Layer
46
DHCP: Dynamic Host Configuration Protocol
Goal: allow host to dynamically obtain its IP address
from network server when it joins network
Can renew its lease on address in use
Allows reuse of addresses (only hold address while connected
and “on”
Support for mobile users who want to join network (more
shortly)
DHCP overview:
host broadcasts “DHCP discover” msg
DHCP server responds with “DHCP offer” msg
host requests IP address: “DHCP request” msg
DHCP server sends address: “DHCP ack” msg
5: DataLink Layer
47
DHCP client-server scenario
A
B
223.1.2.1
DHCP
server
223.1.1.1
223.1.1.2
223.1.1.4
223.1.2.9
223.1.2.2
223.1.1.3
223.1.3.1
223.1.3.27
223.1.3.2
E
arriving DHCP
client needs
address in this
network
5: DataLink Layer
48
DHCP client-server scenario
DHCP server: 223.1.2.5
DHCP discover
arriving
client
src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
Lifetime: 3600 secs
DHCP request
time
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
5: DataLink Layer
49