Transcript Ch5 Notes
ECE/CS 372 – introduction to computer networks
Lecture 16
Announcements:
Acknowledgement: slides drawn heavily from Kurose & Ross
Chapter 4, slide: 1
Chapter 5: Data Link Layer
Our goals:
understand principles behind data link layer services:
error detection, correction
sharing a broadcast channel: multiple access
link layer addressing
example of link layer protocol
Ethernet
Chapter 5, slide: 2
Link Layer (also known as layer 2)
Some terminology:
nodes = hosts or routers
links = communication
channels that connect
adjacent nodes
• wired links
• wireless links
frame = layer-2 packet
data-link layer has responsibility of
transferring datagram from one node
to adjacent node over a link
Chapter 5, slide: 3
Link layer: context
links may have ≠ protocols
frames may be delivered by
different link protocols over
different links: e.g.,
Ethernet
802.11 (WiFi)
link protocols may provide
≠ services
e.g., may or may not provide
rdt over link
transportation analogy
Trip: Princeton to Marseille
limo: Princeton to JFK
plane: JFK to Paris
train: Paris to Marseille
tourist = frame
travel agent = routing
algorithm
Doesn’t know/care of mode
transport mode = link layer
protocol
≠ legs may use ≠ modes
Chapter 5, slide: 4
Link Layer Services
link access and sharing:
reliable delivery between adjacent nodes
transport layer-like reliability: ACK’ing
low bit-error link (e.g., fiber): rarely used
high bit-error link (e.g., wireless): often used
error detection:
Sharing and multiple access: allow medium/channel sharing
errors caused by signal attenuation, noise.
receiver detects presence of errors
error correction:
receiver corrects errors w/o resorting to retransmission
Chapter 5, slide: 5
Link Layer
1 Error detection and correction
2 Link-layer Addressing
3 Multiple access protocols
4 Ethernet
Chapter 5, slide: 6
Error Detection
D = Data protected by error checking, may include header fields
EDC= Error Detection and Correction bits (redundancy)
• error detection not 100% reliable!: may not detect errors (rarely)
• larger EDC field yields better detection and correction
Chapter 5, slide: 7
Example: Parity Checking
Single Bit Parity:
Detect single bit errors
In this example:
D = data bits
EDC = parity bit
Two Dimensional Bit Parity:
Detect and correct single bit errors
0
0
Chapter 5, slide: 8
Checksumming: Cyclic Redundancy Check
Scheme:
Example:
D= 101110
Fix r CRC bits
r = 3 bits
Choose r+1 bit pattern (generator), G
G = 1001
Sender: choose r CRC bits, R, such that
View data bits, D, as a binary number
G exactly divides <D,R> (modulo 2)
receiver knows G, divides <D,R> by G.
If non-zero remainder: error detected!
Find R such that
G divides <D,R> (modulo 2)
equivalently
G divides <D.2r XOR R>
detect burst errors less than r+1 bits
Chapter 5, slide: 9
CRC: modulo-2 arithmetic
CRC calculations are done modulo-2 arithmetic
No carries in addition
No borrows in subtraction
=> Addition = subtraction = bitwise-XOR
XOR review:
0 XOR 0 = 0; 0 XOR 1 = 1; 1 XOR 0 = 1; 1 XOR 1 = 0
=> a XOR 0 = a , a XOR a = 0 for a=0,1
E.g.: 1010 XOR 0110 = 1110
Multiplications and divisions are same as in base-2
arithmetic, except all additions and subtractions
are done without carries or borrows
• That is: addition = subtraction = bitwise-XOR
Chapter 5, slide: 10
CRC Example (find R)
Want: G divides <D.2r XOR R>
equivalently: D.2r XOR R = nG
equivalently: (XOR both sides)
(D.2r XOR R) XOR R = nG XOR R
equivalently: (R XOR R = 0 & a XOR 0 = a)
D.2r = nG XOR R
equivalently: (division is modulo 2 too)
since remainder[(nG XOR R)/G] = R
(note: R < G), then dividing D.2r by G
(modulo 2) gives remainder = R
R = remainder[
D.2r
G
]
Chapter 5, slide: 11
Link Layer
1 Error detection and correction
2 Link-layer Addressing
3 Multiple access protocols
4 Ethernet
Chapter 5, slide: 12
MAC Addresses
32-bit IP address:
network-layer address
used to get datagram to destination IP subnet
MAC (or LAN or physical or Ethernet) address:
48 bit MAC address (for most LANs)
• burned in NIC ROM, also sometimes software settable
function: get frame from one interface to another physically-
connected interface (same network)
uses hexadecimal representation; i.e., base-16 (i.e., 4 bits)
it uses 16 distinct symbols: 0,1,…,9,A,B,C,D,E,F
4 bits needed for each symbol: 48/4 = 12 symbols
E.g.: 1A-2F-BB-76-09-AD
Chapter 5, slide: 13
MAC Addresses
Each adapter on LAN has unique MAC (LAN ) address
1A-2F-BB-76-09-AD
71-65-F7-2B-08-53
LAN
(wired or
wireless)
Broadcast address =
FF-FF-FF-FF-FF-FF
= adapter
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
Chapter 5, slide: 14
MAC Addresses
Assume:
• A knows B’s MAC address
• A wants to send a frame to B
Node A
137.196.7.78
1A-2F-BB-76-09-AD
137.196.7.23
137.196.7.14
LAN
71-65-F7-2B-08-53
137.196.7.88
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
Node B
A encapsulates
B’MAC into the
frame
A sends the frame
into the medium
All nodes will hear
the frame
Only B grabs the
frame
All other nodes
discard the frame
Chapter 5, slide: 15
ARP: Address Resolution Protocol
Question: if A doesn’t know
B’s MAC address, how does it
determine this MAC address?
Node A
Solution: ARP
Each IP node (host, router)
on LAN has ARP table
ARP table: maps IP, MAC
address for some LAN nodes
137.196.7.78
< IP address; MAC address; TTL>
1A-2F-BB-76-09-AD
137.196.7.23
137.196.7.14
A consults its table to
LAN
71-65-F7-2B-08-53
137.196.7.88
TTL (Time To Live): remove mapping
after TTL (typically 20 min)
58-23-D7-FA-20-B0
determine B’s MAC given it
knows B’s IP
Q: how to construct
these ARP tables?
0C-C4-11-6F-E3-98
Node B
Chapter 5, slide: 16
ARP: Case 1—Same LAN (network)
A wants to send datagram
to B, and B’s MAC address
not in A’s ARP table.
A broadcasts ARP packet,
containing B's IP address
dest MAC address = FFFF-FF-FF-FF-FF
all machines on LAN
receive ARP query
B receives ARP packet,
replies to A with its (B's)
MAC address
A sends frame to B since it
knows its MAC now
A caches IP-to-MAC
address pair in its ARP
table until information
becomes old (times out)
soft state: information that
times out (goes away) unless
refreshed
ARP is “plug-and-play”:
nodes create their ARP
tables without intervention
from net administrator
Chapter 5, slide: 17
ARP: Case 2—routing to another LAN
datagram needs to go from A to B via R
assume A knows B’s IP address
88-B2-2F-54-1A-0F
74-29-9C-E8-FF-55
A
111.111.111.111
E6-E9-00-17-BB-4B
1A-23-F9-CD-06-9B
222.222.222.220
111.111.111.110
111.111.111.112
R
222.222.222.221
222.222.222.222
B
49-BD-D2-C7-56-2A
CC-49-DE-D0-AB-7D
how does ARP work now ?? Would the previous
scenario work?
Chapter 5, slide: 18
ARP: Case 2—routing to another LAN
Here’s how it works: (A wants to send IP datagram to B)
A knows that B belongs to a different subnet by checking B’s IP address
A also knows IP address of router R (routing table at layer 3)
A uses ARP to get R’s MAC address for 111.111.111.110 (IP address of router)
A creates frame with R's MAC address as dest, frame contains A-to-B IP
datagram
A’s NIC sends frame and R’s NIC receives it
R removes IP datagram from Ethernet frame, sees its destined to B
R uses ARP to get B’s MAC address (R has B’s IP address, included in the
just received frame)
R creates frame containing A-to-B IP datagram and sends it to B
88-B2-2F-54-1A-0F
74-29-9C-E8-FF-55
A
111.111.111.111
E6-E9-00-17-BB-4B
1A-23-F9-CD-06-9B
222.222.222.220
111.111.111.110
111.111.111.112
CC-49-DE-D0-AB-7D
R
222.222.222.221
222.222.222.222
B
49-BD-D2-C7-56-2A
Chapter 5, slide: 19
Link layer Addressing: last words
manufacturer buys portion of MAC address space (to assure
uniqueness of MAC addresses)
analogy:
(a) MAC address: like Social Security Number
(b) IP address: like postal address
MAC flat addressing ➜ portability
can move LAN card from one LAN to another; not true for IP
Q: why can’t we just use IP addresses; i.e., no MAC addresses??
LANs designed for all network layer protocols, not just IP
IP address will have to be stored/reconfigured to the adapter
every time the adapter/computer is moved
Q: Why can’t we process/check frames at network layer instead??
Overhead; each and every frame will be processed (including
those destined to others)
Lecture 15, chapter 5, slide: 20
Link Layer
1 Error detection and correction
2 Link-layer Addressing
3 Multiple access protocols
4 Ethernet
Chapter 5, slide: 21
Multiple Access Links and Protocols
Two types of “links”:
point-to-point
PPP for dial-up access
point-to-point link between Ethernet switch and host
broadcast (shared wire or medium)
Ethernet
802.11 wireless LAN
shared wire (e.g.,
cabled Ethernet)
shared RF
(e.g., 802.11 WiFi)
shared RF
(satellite)
humans at a
party
(shared air, acoustical)
Chapter 5, slide: 22
Multiple Access protocols
need for sharing of medium/channel
single channel
needs be used by all nodes
interference/collision
two or more simultaneous transmissions lead to collided signals
multiple access protocol
allows multiple, concurrent access
algorithm that nodes use to share channel, i.e., determines when a
node can transmit
no coordination, no out-of-band channel
agreeing about channel sharing must use channel itself!
Chapter 5, slide: 23
Ideal Multiple Access Protocol
Broadcast channel of rate R bps
1. when one node wants to transmit, it can send at
rate R.
2. when M nodes want to transmit, each can send at
average rate R/M
3. fully decentralized:
no special node to coordinate transmissions
no synchronization of clocks, slots
4. simple
Chapter 5, slide: 24
MAC Protocols: a taxonomy
Three broad classes:
Channel Partitioning
divide channel into smaller “pieces” (time slots,
frequency, code)
allocate piece to node for exclusive use
“Taking turns”
nodes take turns, but nodes with more to send can take
longer turns
Random Access
channel not divided, allow collisions
need to know how to “recover” from collisions
Chapter 5, slide: 25
Channel Partitioning MAC protocols: TDMA
TDMA: time division multiple access
access to channel in "rounds"
each station gets fixed length slot (length = pkt
trans time) in each round
unused slots go idle
E.g.: 6-station LAN, 1,3,4 have pkt, slots 2,5,6 idle
6-slot
frame
1
3
4
1
3
4
Chapter 5, slide: 26
Channel Partitioning MAC protocols: FDMA
FDMA: frequency division multiple access
channel spectrum divided into frequency bands
each station assigned fixed frequency band
unused transmission time in frequency bands go idle
E.g.: 6-station LAN, 1,3,4 have pkt, frequency bands
FDM cable
frequency bands
2,5,6 idle
Chapter 5, slide: 27
“Taking Turns” MAC protocols
Polling:
master node
“invites” slave nodes
to transmit in turn
data
poll
master
concerns:
polling overhead
latency
single point of
failure (master)
data
slaves
Chapter 5, slide: 28
“Taking Turns” MAC protocols
Token passing:
control token passed
from one node to next
sequentially.
If token, then send
message
concerns:
token overhead
latency
single point of failure
(token)
T
(nothing
to send)
T
data
Chapter 5, slide: 29
ECE/CS 372 – introduction to computer networks
Lecture 17
Announcements:
Acknowledgement: slides drawn heavily from Kurose & Ross
Chapter 4, slide: 30
Random Access Protocols
distributed
unlike TDMA or FDMA
no coordination among nodes
one node at a time
when a node transmits, it does so at full data rate R.
collisions can occur
two or more transmitting nodes ➜ “collision”,
random access MAC protocol specifies:
how to detect collisions
how to recover from collisions
examples of random access MAC protocols:
ALOHA, CSMA/CD, CSMA/CA
(CSMA: Carrier Sense Multiple Access;
CD: Collision Detection; CA: Collision Avoidance)
Chapter 5, slide: 31
Slotted ALOHA
Assumptions:
all frames same size
Operation:
when node gets a fresh frame,
transmits in next slot
time divided into slots
slot = time to transmit 1 frame
if no collision: node can send
if collision: node retransmits
start transmit at beginning
of slot only
nodes are synchronized
new frame in next slot
frame in each subsequent slot
with prob. p until success
if multiple nodes transmit in
slot, all can detect collision
Chapter 5, slide: 32
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
Legend:
C = collision
E = empty/idle
S = success
Cons
collisions, wasting slots
idle slots, wasting slots
clock synchronization
Chapter 5, slide: 33
Slotted Aloha efficiency
Efficiency : long-run fraction of successful slots
(many nodes, all with many frames to send)
suppose: N nodes with many frames to send,
each transmits in slot with probability p
prob that
a given node has success in a slot ?
p(1-p)N-1
prob that
any node has a success ?
Np(1-p)N-1
Efficiency = Np(1-p)N-1
Chapter 5, slide: 34
Slotted Aloha efficiency
Efficiency = Np(1-p)N-1
max efficiency: find p* that
maximizes Np(1-p)N-1
p* = 1/N
Max Eff = (1-1/N)N-1
When N increases to
,
max eff = (1-1/N)N-1 goes
to 1/e = .37
At best: channel used for 37%
useful transmission time !
Chapter 5, slide: 35
Pure (unslotted) ALOHA
unslotted Aloha: simpler, no synchronization
when frame first arrives
transmit immediately
collision probability increases:
frame sent at t0 collides with other frames sent in [t0-1,t0+1]
Chapter 5, slide: 36
Pure Aloha efficiency
P(success by given node) = P(node transmits) x
P(no other node transmits in [t0-1,t0] x
P(no other node transmits in [t0,t0+1]
= p . (1-p)N-1 . (1-p)N-1
= p . (1-p)2(N-1)
… choosing optimum p and then letting N -> infinity ...
= 1/(2e) = .18
(to be derived in homework problem)
even worse than slotted Aloha!
Chapter 5, slide: 37
CSMA (Carrier Sense Multiple Access)
CSMA: listen before transmit:
If channel sensed idle: transmit entire frame
If channel sensed busy, defer transmission
human analogy: don’t interrupt others!
Chapter 5, slide: 38
CSMA collisions
spatial layout of nodes
collisions can still occur:
Node B’s transmission collides
with Node D’s transmission
collision is a waste!
A cannot hear B’s signal
C cannot hear D’s signal
note:
role of distance & propagation
delay in collision likelihood
-Longer distances => weaker signals
=> collision may
be recovered
- Longer delays => collision may
be avoided
Chapter 5, slide: 39
CSMA/CD (Collision Detection)
CD (collision detection):
easy in wired LANs: measure signal strengths,
compare transmitted, received signals
difficult in wireless LANs: received signal strength
overwhelmed by local transmission strength
CSMA/CD: (CSMA w/ Collision Detection)
collisions detectable
colliding transmissions aborted
reducing channel wastage
Chapter 5, slide: 40
CSMA/CD collision detection
Chapter 5, slide: 41
Link Layer
1 Error detection and correction
2 Link-layer addressing
3 Multiple access protocols
4 Ethernet
Chapter 5, slide: 42
Ethernet topology
bus topology popular through mid 90s
all nodes in same collision domain (can collide with each other)
today: star topology prevails
active switch in center
each “spoke” runs a (separate) Ethernet protocol (nodes do
not collide with each other)
switch
bus: coaxial cable
star
Chapter 5, slide: 43
Ethernet Frame Structure
Sending adapter encapsulates IP datagram (or other
network layer protocol packet) in Ethernet frame
Preamble:
total 8 bytes: 7 bytes, each with pattern 10101010
followed by one byte with pattern 10101011
used to synchronize receiver, sender clock rates
(sender’s data rate matches receiver’s data rate)
Chapter 5, slide: 44
Ethernet Frame Structure
Addresses: 6 bytes
if adapter receives frame with matching destination
address, or with broadcast address (eg ARP packet), it
passes data in frame to network layer protocol
otherwise, adapter discards frame
Type: indicates higher layer protocol (mostly IP
but others possible, e.g., Novell IPX, AppleTalk)
CRC: checked at receiver, if error is detected,
frame is dropped
Chapter 5, slide: 45
Ethernet: Unreliable, connectionless
connectionless: No handshaking between sending and
receiving NICs
unreliable: receiving NIC doesn’t send acks or nacks
to sending NIC
stream of datagrams passed to network layer can have gaps
(missing datagrams)
gaps will be filled if app is using TCP
otherwise, app will see gaps
Ethernet’s MAC protocol: CSMA/CD
(more on this next…)
Chapter 5, slide: 46
CSMA/CD vs. slotted ALOHA
CSMA/CD
Slotted ALOHA
1. Unsychronized:
1. Sychronized:
NIC (adapater) may transmit at
anytime; no notion of timeslots
2. Carrier-sense:
Never transmit if others are
transmitting
3. Collision detection:
stop transmitting as soon as
collision is detected
4. Random backoff:
transmit at beginning of a
timeslot only
2. No carrier-sense:
No check for whether
others transmit or not
3. No collision detection:
no stop during collision
4. No random backoff
wait a random time before
retransmitting (more later)
Chapter 5, slide: 47
Notion of bit time
Before describing CSMA/CD, let’s introduce:
bit time = time to transmit one bit on a Ethernet link
Example: consider a 10 Mbps Ethernet link
Q1: what is a “bit time”
A1: 1/(10x10^6) second = 0.1 microsecond
Q2: how much time is “96 bit time”
A2: 96 x 0.1 = 9.6 microsecond
Chapter 5, slide: 48
Ethernet CSMA/CD algorithm
1. adapter receives datagram from 5. If adapter detects another
network layer, creates frame
transmission while transmitting,
aborts and sends a 48-bit jam
signal
2. If adapter senses channel idle
(to make sure all nodes are aware
for 96 bit time, starts frame
of collision)
transmission
(gap to allow interface recovery)
6. After aborting (after sending
jam signal), adapter enters
3. If adapter senses channel busy,
exponential backoff:
waits until channel idle (plus 96
adapter chooses K at random
bit time), then transmits
4. If adapter transmits entire
frame without detecting another
transmission, adapter is done
with frame !
(next slide is explained how)
adapter waits K·512 bit times,
returns to Step 2
Chapter 5, slide: 49
Ethernet’s CSMA/CD (more)
Jam Signal:
make sure all other transmitters are aware of collision; 48 bits
Exponential Backoff:
Goal: adapt retrans. attempts to estimate current load
heavy load: random wait will be longer
Light load: random wait will be shorter
first collision: choose K from {0,1}…
after 2nd collision: choose K from {0,1,2,3}…
after 3rd collision: choose K from {0,1,2,3,4,5,6,7}…
after 10th collision, choose K from {0,1,2,3,4,…,1023}…
after mth collision, choose K from {0,1,2,…,2m-1}
Then, delay transmission until K· 512 bit times
Chapter 5, slide: 50
Example
A
10Mbps
B
A and B are connected via an Ethernet link of 10 Mbps
Propagation delay between them = 224 bit time
At time t=0, both transmit which results in collision
After collision, A chooses K=0 and B chooses K=1
Q1: how much is “bit time”: =1/10 = 0.1 microsecond
Q2: at what time does collision occur?
=(224/2) x 0.1 = 11.2 microsecond
Q3: at what time does bus become idle?
=224 (both A & B detect collision) + 48 (A & B finish sending jam signals) +
224 (last bit of B’s jam signal arrives at A) = 496 bit time
=496x0.1 (bit time)= 49.6 microseccond
Q4: at what time does A begin retransmission?
[496 (bus becomes idle) + 96]x0.1 (bit time)= 59.2 microsecond
Chapter 5, slide: 51
Distance
L (bits)
A
R (bps)
d (m), s (m/s)
B
A and B are connected via an Ethernet link of R bps
A and B are separated by distance d meters
Speed of propagation is s meter/second
Length of each frame is L bits
Suppose A starts transmitting a frame, and before it finishes, B starts also
Q1: can A finish transmitting before it detects that B starts transmitting?
Basically, is it possible of A not to detect collision?
Answer: yes- if frame is not long enough, A can’t detect collision
Q1: find relationship between L, R, s, and d, so A can detect collision?
Hints:
1. B can’t send if medium is busy: listen-before-talk policy
2. Think of worst case, when just before the first bit coming from A
arrives to B, B starts sending
Chapter 5, slide: 52