ECE/CS 372 – introduction to computer networks Announcements:

advertisement
ECE/CS 372 – introduction to computer networks
Lecture 12
Announcements:
 Assign 3 is due now
 Lab 3 is due Thursday
 Lab 4 & Assignment 4 will soon be posted
Credit for lecture slides to Professor Bechir Hamdaoui
Adapted from Jim Kurose & Keith Ross (original copyright)
Chapter 5, 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 different
protocols
frames may be delivered by
different link protocols over
different links: e.g.,
 Ethernet
 802.11 (WiFi)
 link protocols may provide
different 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:

Sharing and multiple access: allow medium/channel 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:


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 = 1100

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 physicallyconnected 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 for MAC 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)
Chapter 5, slide: 20
ECE/CS 372 – introduction to computer networks
Lecture 13
Announcements:
 Lab 3 is due now
 Lab 4 and Assignment 4 are posted
 Assignment 4 is due next Thursday
 Lab 4 is due the following Tuesday
Credit for lecture slides to Professor Bechir Hamdaoui
Adapted from Jim Kurose & Keith Ross (original copyright)
Chapter 5, slide: 21
Link Layer
 1 Error detection and correction
 2 Link-layer Addressing
 3 Multiple access protocols
 4 Ethernet
Chapter 5, slide: 22
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: 23
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: 24
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: 25
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: 26
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: 27
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 frames, but frequency
FDM cable
frequency bands
bands 2,5,6 idle
Chapter 5, slide: 28
“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: 29
“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: 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

 start transmit at beginning
of slot only
 nodes are synchronized

if no collision: node can send
new frame in next slot
if collision: node retransmits
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: 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: 44
CSMA/CD vs. slotted ALOHA
CSMA/CD
Slotted ALOHA
1. Unsychronized:
1. Sychronized:
NIC (adapter) 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: 45
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: 46
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: 47
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: 48
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/107 = 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 microseconds
 Q4: at what time does A begin retransmission?
[496 (bus becomes idle) + 96]x0.1 (bit time)= 59.2 microsecond
Chapter 5, slide: 49
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 for 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
3. Solution is in hw4 Solution ;)
Chapter 5, slide: 50
Download