View
1
Download
0
Category
Preview:
Citation preview
CSMC 417
Computer Networks Prof. Ashok K Agrawala
© 2012 Ashok Agrawala
Based on J.F Kurose and K.W. Ross
Set 5
1 Network Layer
Link Layer 5-2
Chapter 5: Link layer our goals: understand principles behind link layer
services: error detection, correction sharing a broadcast channel: multiple access link layer addressing local area networks: Ethernet, VLANs
instantiation, implementation of various link layer technologies
Link Layer 5-3
Link layer, LANs: outline
5.1 introduction, services 5.2 error detection,
correction 5.3 multiple access
protocols 5.4 LANs addressing, ARP Ethernet switches VLANS
5.5 link virtualization: MPLS
5.6 data center networking
5.7 a day in the life of a web request
Link Layer 5-4
Link layer: introduction terminology: hosts and routers: nodes communication channels that
connect adjacent nodes along communication path: links wired links wireless links LANs
layer-2 packet: frame, encapsulates datagram
data-link layer has responsibility of
transferring datagram from one node to physically adjacent node over a link
global ISP
Link Layer 5-5
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
Link Layer 5-6
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 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?
Link Layer 5-7
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
Link layer services (more)
Link Layer 5-8
Where is the link layer implemented? in each and every host link layer implemented in
“adaptor” (aka network interface card NIC) or on a chip Ethernet card, 802.11
card; Ethernet chipset implements link, physical
layer attaches into host’s system
buses combination of hardware,
software, firmware
controller
physical transmission
cpu memory
host bus (e.g., PCI)
network adapter card
application transport network
link
link physical
Link Layer 5-9
Adaptors communicating
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
controller controller
sending host receiving host
datagram datagram
datagram
frame
Link Layer 5-10
Link layer, LANs: outline
5.1 introduction, services 5.2 error detection,
correction 5.3 multiple access
protocols 5.4 LANs addressing, ARP Ethernet switches VLANS
5.5 link virtualization: MPLS
5.6 data center networking
5.7 a day in the life of a web request
Link Layer 5-11
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
Link Layer 5-12
Parity checking
single bit parity: detect single bit
errors
two-dimensional bit parity: detect and correct single bit errors
0 0
Link Layer 5-13
Internet checksum (review)
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?
goal: detect “errors” (e.g., flipped bits) in transmitted packet (note: used at transport layer only)
Link Layer 5-14
Cyclic redundancy check more powerful error-detection coding view data bits, D, as a binary number choose r+1 bit pattern (generator), G goal: choose r CRC bits, R, such that
exactly divisible by G (modulo 2) receiver knows G, divides 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)
Link Layer 5-15
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 to satisfy:
R = remainder[ ] D.2r G
1001 101110000 1001
1
101
01000
000 1010 1001
010 000
100 000 1000 0000 1000
D G
R
r = 3
Cyclic Redundancy Check Have to maximize the probability of
detecting the errors using a small number of additional bits.
Based on powerful mathematical formulations – theory of finite fields
Consider (n+1) bits as n degree polynomial
Message M(x) represented as polynomial
Divisor C(x) of degree k Send P(x) as (n+1) bits +k bits such that
P(x) is exactly divisible by C(x)
Link Layer 16
3 2
7 4 3 1
( ) 1( )
C x x xM x x x x x
= + +
= + + +
CRC Basis
Use modulo 2 arithmetic Any Polynomial B(x) can be divided by a divisor
polynomial C(x) if B(x) is of higher degree than C(x)
Any polynomial B(x) can be divided once by a divisor polynomial C(x) if they are of the same degree
The remainder obtained when B(x) is divided by C(x) is obtained by subtracting C(x) from B(x)
To subtract C(x) from B(x) we simply perform the exclusive-OR operation on each pair of matching coefficients.
Link Layer 17
Error Detection – CRCs (1) Adds bits so that transmitted frame viewed as a polynomial is evenly
divisible by a generator polynomial
Link Layer
Start by adding 0s to frame and try dividing
Offset by any reminder to make it evenly divisible
5-18
Cyclic Redundancy Check
Link Layer 19
All single bit errors – if xk and x0 terms are nonzero
All double-bit errors – as long as C(x) has a factor with at least three terms
Any odd number of errors as long as C(x) has (x+1) as a factor
Any burst error of length k bits
Common CRC Polynomials
CRC C(x)
CRC-8 x8 + x2 + X1 + 1
CRC-10 x10 + x9 + x5 + x4 + x1 + 1
CRC-12 x12 + x11 + x3 + x2 + 1
CRC-16 x16 + x15 + x2 + 1
CRC-CCITT x16 + x12 + x5 + 1
CRC-32 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1
Link Layer 20
Error Detection – CRCs (2)
Link Layer
Based on standard polynomials: Ex: Ethernet 32-bit CRC is defined by:
Computed with simple shift/XOR circuits
Stronger detection than checksums: E.g., can detect all double bit errors Not vulnerable to systematic errors
Framing Methods
Link Layer
Byte count » Flag bytes with byte stuffing » Flag bits with bit stuffing » Physical layer coding violations
• Use non-data symbol to indicate frame
Framing Break sequence of bits into a frame Typically implemented by the network adaptor
Sentinel-based Delineate frame with special pattern (e.g., 01111110)
Problem: what if special patterns occurs within frame? Solution: escaping the special characters
• E.g., sender always inserts a 0 after five 1s • … and receiver always removes a 0 appearing after five 1s • Bit Stuffing
Similar to escaping special characters in C programs
01111110 01111110 Frame contents
23 Link Layer
Bit Oriented Protocols
Frame – a collection of bits No Byte boundary
SDLC – Synchronous Data Link Control IBM
HDLC – High-Level Data Link Control ISO Standard
Link Layer 24
HDLC Frame Format
Framing (Continued)
Counter-based Include the payload length in the header … instead of putting a sentinel at the end Problem: what if the count field gets corrupted?
• Causes receiver to think the frame ends at a different place Solution: catch later when doing error detection
• And wait for the next sentinel for the start of a new frame
25 Link Layer
DDCMP Frame Format
Framing – Byte count
Link Layer
Frame begins with a count of the number of bytes in it Simple, but difficult to resynchronize after an error
Error case
Expected case
Framing – Bit stuffing
Link Layer
Stuffing done at the bit level: Frame flag has six consecutive 1s (not shown) On transmit, after five 1s in the data, a 0 is added On receive, a 0 after five 1s is deleted
Transmitted bits with stuffing
Data bits
Framing – Byte stuffing
Link Layer
Special flag bytes delimit frames; occurrences of flags in the data must be stuffed (escaped) Longer, but easy to resynchronize after error
Stuffing examples
Frame format
Need to escape extra ESCAPE bytes too!
Byte-Oriented Protocols
Frame – a collection of bytes. Examples BISYNC – Binary Synchronous Communication – IBM DDCMP – Digital Data Communication Message
Protocol PPP – Point-to-Point
Sentinel Based – Use special character as marker BISYNC
• SYN and SOH • STX and ETX • DLE as escape character. - Character Stuffing
Link Layer 29
Frame Structure
Link Layer 30
PPP Frame Format
BISYNC Frame Format
Clock-Based Framing (SONET)
Clock-based Make each frame a fixed size No ambiguity about start and end of frame But, may be wasteful
Synchronous Optical Network (SONET) Slowest speed link STS-1 – 51.84 Mbps ( 810*8*8K) Frame – 9 rows of 90 bytes
• First 3 bytes of each row are overhead • First two bytes of a frame contain a special bit pattern – to
mark the start of the frame – check for it every 810 bytes
Link Layer 31
Sonet Frame
Link Layer 32
Elementary Data Link Protocols
Link Layer
Link layer environment » Utopian Simplex Protocol » Stop-and-Wait Protocol for Error-free channel » Stop-and-Wait Protocol for Noisy channel »
Link layer environment (1)
Link Layer
Commonly implemented as NICs and OS drivers; network layer (IP) is often OS software
Link layer environment (2) Link layer protocol implementations use library functions
See code (protocol.h) for more details
Link Layer
Group Library Function Description
Network layer
from_network_layer(&packet) to_network_layer(&packet) enable_network_layer() disable_network_layer()
Take a packet from network layer to send Deliver a received packet to network layer Let network cause “ready” events Prevent network “ready” events
Physical layer
from_physical_layer(&frame) to_physical_layer(&frame)
Get an incoming frame from physical layer Pass an outgoing frame to physical layer
Events & timers
wait_for_event(&event) start_timer(seq_nr) stop_timer(seq_nr) start_ack_timer() stop_ack_timer()
Wait for a packet / frame / timer event Start a countdown timer running Stop a countdown timer from running Start the ACK countdown timer Stop the ACK countdown timer
5-35
Protocol Definitions
Continued
Some definitions needed in the protocols to follow. These are located in the file protocol.h.
36 Link Layer
Protocol Definitions (ctd.)
Some definitions needed in the protocols to follow. These are located in the file protocol.h.
37 Link Layer
Utopian Simplex Protocol
Link Layer
An optimistic protocol (p1) to get us started Assumes no errors, and receiver as fast as sender Considers one-way data transfer
That’s it, no error or flow control …
Sender loops blasting frames Receiver loops eating frames }
PresenterPresentation NotesThis is essentially what Ethernet does – just blast packets and receive as quickly as possible
Utopian Simplex Protocol (1)
A utopian simplex protocol. . . .
Link Layer 5-39
Utopian Simplex Protocol (2) A utopian simplex protocol.
Link Layer 5-40
Reliable Transmission
Transfer frames without errors Error Correction Error Detection Discard frames with error
Acknowledgements and Timeouts Retransmission ARQ – Automatic Repeat Request
Link Layer 41
Stop and Wait with 1-bit Seq No
Link Layer 42
Stop and Wait Protocols
Simple Low Throughput One Frame per RTT
Increase throughput by having more frames in
flight Sliding Window Protocol
Link Layer 43
Stop and Wait
Link Layer 44
Duplicate Frames
Stop-and-Wait – Error-free channel
Link Layer
Protocol (p2) ensures sender can’t outpace receiver: Receiver returns a dummy frame (ack) when ready Only one frame out at a time – called stop-and-wait We added flow control!
Sender waits to for ack after passing frame to physical
layer
Receiver sends ack after passing frame to network layer
PresenterPresentation NotesThis is an intermediate protocol in which we’ve dealt with one issue (flow control) but not another (error control). It is instructive, but does not represent any real protocol (as it will deadlock if there are errors).
Stop-and-Wait – Noisy channel (1)
Link Layer
ARQ (Automatic Repeat reQuest) adds error control Receiver acks frames that are correctly delivered Sender sets timer and resends frame if no ack)
For correctness, frames and acks must be numbered Else receiver can’t tell retransmission (due to lost ack
or early timer) from new frame For stop-and-wait, 2 numbers (1 bit) are sufficient
PresenterPresentation NotesARQ is also called PAR (Positive Acknowledgement with Retransmission)
Stop-and-Wait – Noisy channel (2)
Link Layer
Sender loop (p3):
Send frame (or retransmission) Set timer for retransmission Wait for ack or timeout
If a good ack then set up for the next frame to send (else the old frame will be retransmitted)
{
PresenterPresentation NotesThis is essentially what 802.11 does – stop-and-wait to handle wireless errors. There are differences in the details: 802.11 uses a larger sequence number (12 bits) and gives up after a limited number of retransmissions (retries).
Stop-and-Wait – Noisy channel (3)
Link Layer
Receiver loop (p3):
Wait for a frame
If it’s new then take it and advance expected frame Ack current frame
Sliding Window Protocols
Link Layer
Sliding Window concept » One-bit Sliding Window » Go-Back-N » Selective Repeat »
Sliding Window concept (1)
Link Layer
Sender maintains window of frames it can send Needs to buffer them for possible retransmission Window advances with next acknowledgements
Receiver maintains window of frames it can receive Needs to keep buffer space for arrivals Window advances with in-order arrivals
Sliding Window Protocol
Sender assigns a sequence number –SeqNum Sender maintains three variables: Send Window Size – SWS Last Ack Received – LAR Last Frame Sent – LFS
Invariant LFS – LAR < SWS When ACK arrives sender movers LAR to the
right and thereby allowing the sender to transmit another frame
Associate a timer with each frame it transmits
Link Layer 51
Sliding Window Protocol
Receiver maintains three variables: Receiver Window Size – RWS Largest acceptable Frame Number – LAF Last Frame Received – LFR
Invariant LAF –LFR < RWR When frame with SEQNum arrives If SeqNum < LFR or SeqNum >LAF discard the
frame If LFR < SeqNum < LAF then accept the frame
SeqNumtoAck – largest seq no not yet acked. Send this as ack.
Link Layer 52
Sliding Window
Link Layer 53
Sliding Window on Sender
Sliding window on Receiver
Timeline
Sliding Window concept (2)
Link Layer
A sliding window advancing at the sender and receiver Ex: window size is 1, with a 3-bit sequence number.
At the start First frame is
sent
First frame is received
Sender gets first ack
Sender
Receiver
Sliding Window concept (3)
Link Layer
Larger windows enable pipelining for efficient link use Stop-and-wait (w=1) is inefficient for long links Best window (w) depends on bandwidth-delay (BD) Want w ≥ 2BD+1 to ensure high link utilization
Pipelining leads to different choices for errors/buffering We will consider Go-Back-N and Selective Repeat
PresenterPresentation NotesPipelining means that there are multiple frames outstanding in the network at any instant.
For stop-and-wait, imagine a link from Seattle to Amsterdam that has a 500ms round-trip time. It doesn’t matter how fast the link is in bits/sec, stop-and-wait will only let it run at two packets per second.
One-Bit Sliding Window (1) Transfers data in both directions with stop-and-wait Piggybacks acks on reverse data frames for efficiency Handles transmission errors, flow control, early timers
Link Layer . . .
{
Each node is sender and receiver (p4):
Prepare first frame
Launch it, and set timer
5-56
PresenterPresentation NotesShows a basic implementation of a sliding window for w=1 handling error/flow control for us to build on
One-Bit Sliding Window (2)
Link Layer
. . .
If a frame with new data then deliver it
Wait for frame or timeout
(Otherwise it was a timeout)
If an ack for last send then prepare for next data frame
Send next data frame or retransmit old one; ack the last data we received
5-57
Two scenarios show subtle interactions exist in p4: • Simultaneous start [right] causes correct but slow operation compared
to normal [left] due to duplicate transmissions.
Time
(a) Normal case (b) Correct, but poor performance
One-Bit Sliding Window (3)
Link Layer
Notation is (seq, ack, frame number). Asterisk indicates frame accepted by network layer .
5-58
Go-Back-N (1)
Link Layer
Receiver only accepts/acks frames that arrive in order: Discards frames that follow a missing/errored frame Sender times out and resends all outstanding frames
Go-Back-N (2)
Link Layer
Tradeoff made for Go-Back-N: Simple strategy for receiver; needs only 1 frame Wastes link bandwidth for errors with large
windows; entire window is retransmitted
Selective Repeat (1)
Link Layer
Receiver accepts frames anywhere in receive window Cumulative ack indicates highest in-order frame NAK (negative ack) causes sender retransmission of a
missing frame before a timeout resends window
Selective Repeat (2)
Link Layer
Tradeoff made for Selective Repeat: More complex than Go-Back-N due to buffering at
receiver and multiple timers at sender More efficient use of link bandwidth as only lost
frames are resent (with low error rates)
Implemented as p6 (see code in book)
PresenterPresentation NotesWhat happens if the NAK is lost, or if multiple data frames are lost per round-trip time? The retransmission timer goes off and transmission restarts from the acknowledgement point. To be more tolerant of these situations more acknowledgement information needs to be returned (more NAKs, a bit vector of the frames received beyond the cumulative ack, etc.)
Selective Repeat (3)
Link Layer
For correctness, we require: Sequence numbers (s) at least twice the window (w)
Originals Originals Retransmits Retransmits
Error case (s=8, w=7) – too few sequence numbers
Correct (s=8, w=4) – enough sequence numbers
New receive window overlaps old – retransmits ambiguous
New and old receive window don’t overlap – no ambiguity
Example Data Link Protocols
Link Layer
Packet over SONET » PPP (Point-to-Point Protocol) » ADSL (Asymmetric Digital Subscriber Loop) »
Packet over SONET
Link Layer
Packet over SONET is the method used to carry IP packets over SONET optical fiber links Uses PPP (Point-to-Point Protocol) for framing
Protocol stacks PPP frames may be split over SONET payloads
Packet over SONET (2)
PPP Features 1. Separate packets, error detection 2. Link Control Protocol 3. Network Control Protocol
Link Layer 5-66
PPP (1)
Link Layer
PPP (Point-to-Point Protocol) is a general method for delivering packets across links Framing uses a flag (0x7E) and byte stuffing “Unnumbered mode” (connectionless unacknow-
ledged service) is used to carry IP packets Errors are detected with a checksum
IP packet 0x21 for IPv4
PPP (2)
Link Layer
A link control protocol brings the PPP link up and down
State machine for link control
PPP – Point to Point Protocol (3)
The LCP frame types.
69 Link Layer
ADSL (1)
Link Layer
Widely used for broadband Internet over local loops ADSL runs from modem (customer) to DSLAM (ISP) IP packets are sent over PPP and AAL5/ATM (over)
ADSL (2)
Link Layer
PPP data is sent in AAL5 frames over ATM cells: ATM is a link layer that uses short, fixed-size cells (53
bytes); each cell has a virtual circuit identifier AAL5 is a format to send packets over ATM PPP frame is converted to a AAL5 frame (PPPoA)
AAL5 frame is divided into 48 byte pieces, each of which goes into one ATM cell with 5 header bytes
PresenterPresentation NotesRe ATM: ATM was a major technology in the 1990s that was hyped to win in the convergence of the Internet and telecommunications, but IP won instead. The short, fixed-size cells give flexibility (can mix voice and data without having the voice wait for a whole data packet). ATM is now used in niches such as ADSL and WAN links.
High-Level Data Link Control
Frame format for bit-oriented protocols.
72 Link Layer
High-Level Data Link Control (2)
Control field of (a) An information frame. (b) A supervisory frame. (c) An unnumbered frame.
73 Link Layer
The Data Link Layer in the Internet
A home personal computer acting as an internet host.
74 Link Layer
Link Layer 5-75
Link layer, LANs: outline
5.1 introduction, services 5.2 error detection,
correction 5.3 multiple access
protocols 5.4 LANs addressing, ARP Ethernet switches VLANS
5.5 link virtualization: MPLS
5.6 data center networking
5.7 a day in the life of a web request
The MAC Sublayer
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Responsible for deciding who sends next on a multi-access link An important part of the link
layer, especially for LANs Physical Link
Network Transport Application
MAC is in here!
Link Layer 5-77
MAC protocols: taxonomy
three broad classes: channel partitioning
divide channel into smaller “pieces” (time slots, frequency, code) allocate piece to node for exclusive use
random access channel not divided, allow collisions “recover” from collisions
“taking turns” nodes take turns, but nodes with more to send can take longer
turns
Link Layer 5-78
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 example: 6-station LAN, 1,3,4 have pkt, slots
2,5,6 idle
1 3 4 1 3 4
6-slot frame
6-slot frame
Link Layer 5-79
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 example: 6-station LAN, 1,3,4 have pkt, frequency bands 2,5,6
idle
frequ
ency
ban
ds
FDM cable
Channel partitioning MAC protocols: FDMA
Link Layer 5-80
Multiple access protocols single shared broadcast channel two or more simultaneous transmissions by nodes:
interference collision if node receives two or more signals at the same
time multiple access protocol distributed algorithm that determines how nodes share
channel, i.e., determine when node can transmit communication about channel sharing must use channel itself!
no out-of-band channel for coordination
Link Layer 5-81
An ideal multiple access protocol
given: broadcast channel of rate R bps desiderata:
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
Link Layer 5-82
Multiple access links, protocols two types of “links”: point-to-point
PPP for dial-up access point-to-point link between Ethernet switch, host
broadcast (shared wire or medium) old-fashioned Ethernet upstream HFC 802.11 wireless LAN
shared wire (e.g., cabled Ethernet)
shared RF (e.g., 802.11 WiFi)
shared RF (satellite)
humans at a cocktail party
(shared air, acoustical)
Link Layer 5-83
Random access protocols when node has packet to send transmit at full channel data rate R. 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, CSMA/CD, CSMA/CA
ALOHA (1)
In pure ALOHA, frames are transmitted at completely arbitrary times
Collision Collision
Time
User A B C D E
Pure ALOHA (2)
Vulnerable period for the shaded frame.
November 12 85 CMSC417 Set 5
Link Layer 5-86
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]
Link Layer 5-87
Pure ALOHA efficiency P(success by given node) = P(node transmits) . P(no other node transmits in [t0-1,t0] . P(no other node transmits in [t0-1,t0] = p . (1-p)N-1 . (1-p)N-1 = p . (1-p)2(N-1) … choosing optimum p and then letting n
= 1/(2e) = .18
even worse than slotted Aloha!
Pure ALOHA (3)
Throughput versus offered traffic for ALOHA systems.
November 12 88 CMSC417 Set 5
Link Layer 5-89
Slotted ALOHA
assumptions: all frames same size time divided into equal size
slots (time to transmit 1 frame)
nodes start to transmit only slot beginning
nodes are synchronized if 2 or more nodes transmit
in slot, all nodes detect collision
operation: when node obtains fresh
frame, transmits in next slot 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
Link Layer 5-90
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 be able to
detect collision in less than time to transmit packet
clock synchronization
Slotted ALOHA 1 1 1 1
2
3
2 2
3 3
node 1
node 2
node 3
C C C S S S E E E
Link Layer 5-91
suppose: N nodes with many frames to send, each transmits in slot with probability p
prob that given node has success in a slot = p(1-p)N-1
prob that any node has a success = Np(1-p)N-1
max efficiency: find p* that maximizes Np(1-p)N-1
for many nodes, take limit of Np*(1-p*)N-1 as N goes to infinity, gives:
max efficiency = 1/e = .37
efficiency: long-run fraction of successful slots (many nodes, all with many frames to send)
at best: channel used for useful transmissions 37% of time! !
Slotted ALOHA: efficiency
Link Layer 5-92
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!
CSMA (1)
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
CSMA improves on ALOHA by sensing the channel! User doesn’t send if it senses someone else
Variations on what to do if the channel is busy: 1-persistent (greedy) sends as soon as idle Nonpersistent waits a random time then tries again p-persistent sends with probability p when idle
PresenterPresentation Notes802.11 uses a refinement of p-persistent CSMA
Persistent and Nonpersistent CSMA
Comparison of the channel utilization versus load for various random access protocols. November 12
94 CMSC417 Set 5
CSMA Collisions
Collisions can still occur: propagation delay means two nodes may not hear each other’s transmission
Collision: entire packet transmission time wasted
October 08 95 CMSC417 Set 11
Link Layer 5-96
CSMA/CD (collision detection) CSMA/CD: carrier sensing, deferral as in CSMA collisions detected within short time colliding transmissions aborted, reducing channel wastage
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 human analogy: the polite conversationalist
Link Layer 5-97
Ethernet CSMA/CD algorithm
1. NIC receives datagram from network layer, creates frame
2. If NIC senses channel idle, starts frame transmission. If NIC senses channel busy, waits until channel idle, then transmits.
3. If NIC transmits entire frame without detecting another transmission, NIC is done with frame !
4. If NIC detects another transmission while transmitting, aborts and sends jam signal
5. After aborting, NIC enters binary (exponential) backoff: after mth collision, NIC
chooses K at random from {0,1,2, …, 2m-1}. NIC waits K·512 bit times, returns to Step 2
longer backoff interval with more collisions
Link Layer 5-98
CSMA/CD efficiency
Tprop = max prop delay between 2 nodes in LAN ttrans = time to transmit max-size frame
efficiency goes to 1 as tprop goes to 0 as ttrans goes to infinity
better performance than ALOHA: and simple, cheap, decentralized!
transprop /ttefficiency
511
+=
CSMA/CD Collision Detection
October 08 99 CMSC417 Set 11
CSMA (3) – Collision Detection
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
CSMA/CD improvement is to detect/abort collisions Reduced contention times improve performance
Collision time is much shorter than frame time
Link Layer 5-101
“Taking turns” MAC protocols
channel partitioning MAC protocols: share channel efficiently and fairly at high load inefficient at low load: delay in channel access, 1/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!
Link Layer 5-102
polling: master node “invites”
slave nodes to transmit in turn
typically used with “dumb” slave devices
concerns: polling overhead latency single point of
failure (master)
master
slaves
poll
data
data
“Taking turns” MAC protocols
Link Layer 5-103
token passing: control token passed
from one node to next sequentially.
token message concerns: token overhead latency single point of failure
(token)
T
data
(nothing to send)
T
“Taking turns” MAC protocols
Collision-Free Protocols (1) – Bitmap
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Collision-free protocols avoid collisions entirely Senders must know when it is their turn to send
The basic bit-map protocol: Sender set a bit in contention slot if they have data Senders send in turn; everyone knows who has data
Collision-Free Protocols– Countdown
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D.
Binary countdown improves on the bitmap protocol
Stations send their address in contention slot (log N bits instead of N bits) Medium ORs bits; stations
give up when they send a “0” but see a “1” Station that sees its full
address is next to send
Limited-Contention Protocols (1)
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Idea is to divide stations into groups within which only a very small number are likely to want to send Avoids wastage due to idle periods and collisions
Already too many contenders for a good chance of one winner
Limited Contention Adaptive Tree Walk
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Tree divides stations into groups (nodes) to poll Depth first search under nodes with poll collisions Start search at lower levels if >1 station expected
Level 0
Level 1
Level 2
Wavelength Division Multiple Access Protocols
Wavelength division multiple access.
November 12 108 CMSC417 Set 5
Ethernet • Ethernet Cabling • Manchester Encoding • The Ethernet MAC Sublayer Protocol • The Binary Exponential Backoff Algorithm • Ethernet Performance • Switched Ethernet • Fast Ethernet • Gigabit Ethernet • IEEE 802.2: Logical Link Control • Retrospective on Ethernet
November 12 109 CMSC417 Set 5
Link Layer 5-110
Ethernet “dominant” wired LAN technology: cheap $20 for NIC first widely used LAN technology simpler, cheaper than token LANs and ATM kept up with speed race: 10 Mbps – 10 Gbps
Metcalfe’s Ethernet sketch
Classic Ethernet– Physical Layer
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
One shared coaxial cable to which all hosts attached Up to 10 Mbps, with Manchester encoding Hosts ran the classic Ethernet protocol for access
Ethernet Transceiver and Adapter
Medium – 50 ohm cable
Taps 2.5 m apart Transceiver – can
send and receive Multiple segments can
be joined by repeaters – no more than 4
Max end-to-end distance – 2500 m
October 08 CMSC417 Set 11 112
Ethernet Uses CSMA/CD
Carrier sense: wait for link to be idle Channel idle: start transmitting
Channel busy: wait until idle
Collision detection: listen while transmitting No collision: transmission is complete
Collision: abort transmission, and send jam signal
Random access: exponential back-off After collision, wait a random time before trying again
After mth collision, choose K randomly from {0, …, 2m-1}
… and wait for K*512 bit times before trying again October 08
113 CMSC417 Set 11
Ethernet Cabling
The most common kinds of Ethernet cabling.
November 12 114 CMSC417 Set 5
Ethernet Cabling (2)
Three kinds of Ethernet cabling. (a) 10Base5, (b) 10Base2, (c) 10Base-T.
November 12 115 CMSC417 Set 5
Ethernet Cabling (3)
Cable topologies. (a) Linear, (b) Spine, (c) Tree, (d) Segmented.
November 12 116 CMSC417 Set 5
Ethernet Signalling
(a) Binary encoding, (b) Manchester encoding, (c) Differential Manchester encoding. November 12
117 CMSC417 Set 5
Ethernet Frame Format
Preamble – For synchronizing Alternate 0 and 1
Address – 48 bit MAC Type – Id for higher
level protocol Length – up to 1500
bytes, with minimum of 46 bytes, of data
802.3 – Length for Type field.
October 08 CMSC417 Set 11 118
Link Layer 5-119
Ethernet frame structure
sending adapter encapsulates IP datagram (or other network layer protocol packet) in Ethernet frame
preamble: 7 bytes with pattern 10101010 followed by one
byte with pattern 10101011 used to synchronize receiver, sender clock rates
dest. address
source address
data (payload) CRC preamble
type
Link Layer 5-120
Ethernet frame structure (more) addresses: 6 byte source, destination MAC addresses if adapter receives frame with matching destination
address, or with broadcast address (e.g. 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: cyclic redundancy check at receiver error detected: frame is dropped
dest. address
source address
data (payload) CRC preamble
type
Link Layer 5-121
Ethernet: unreliable, connectionless
connectionless: no handshaking between sending and receiving NICs
unreliable: receiving NIC doesnt send acks or nacks to sending NIC data in dropped frames recovered only if initial
sender uses higher layer rdt (e.g., TCP), otherwise dropped data lost
Ethernet’s MAC protocol: unslotted CSMA/CD wth binary backoff
Link Layer 5-122
802.3 Ethernet standards: link & physical layers
many different Ethernet standards common MAC protocol and frame format different speeds: 2 Mbps, 10 Mbps, 100 Mbps, 1Gbps,
10G bps different physical layer media: fiber, cable
application transport network
link physical
MAC protocol and frame format
100BASE-TX
100BASE-T4
100BASE-FX 100BASE-T2
100BASE-SX 100BASE-BX
fiber physical layer copper (twister pair) physical layer
Classic Ethernet (2) – MAC
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
MAC protocol is 1-persistent CSMA/CD Random delay (backoff) after collision is computed with BEB (Binary Exponential Backoff) Frame format is still used with modern Ethernet.
Ethernet (DIX)
IEEE 802.
3
Ethernet Transmitter Algorithm
P-persistent Transmit with prob p
when line goes idle Ethernet uses 1-
persistent algorithm On Collision- 32 bit jamming
sequence Stops transmitting Runt frame – 64 synch
+ 32 bit jamming sequence
Min frame size – 64 bytes – 46 + 14 + 4
For 2500 m line with up to 4 repeaters max round trip delay – 51.2µs
Exponential Backoff In steps of 51.2µs Wait k* rand (0,.. 2k-1)
October 08 CMSC417 Set 11 124
IEEE 802.2: Logical Link Control
(a) Position of LLC. (b) Protocol formats. November 12
125 CMSC417 Set 5
Limitations on Ethernet Length
Latency depends on physical length of link Time to propagate a packet from one end to the other
Suppose A sends a packet at time t And B sees an idle line at a time just before t+d … so B happily starts transmitting a packet
B detects a collision, and sends jamming signal But A doesn’t see collision till t+2d
latency d A B
October 08 126 CMSC417 Set 11
Limitations on Ethernet Length
A needs to wait for time 2d to detect collision So, A should keep transmitting during this period … and keep an eye out for a possible collision
Imposes restrictions on Ethernet Maximum length of the wire: 2500 meters Minimum length of the packet: 512 bits (64 bytes)
latency d A B
October 08 127 CMSC417 Set 11
Ethernet MAC Sublayer Protocol (2)
Collision detection can take as long as 2 .τNovember 12
128 CMSC417 Set 5
Worst Case Secnario
October 08 CMSC417 Set 11 129
A sends a frame at time t
Frame arrives at B at t+d
B begins transmitting at t+d and collides with A’s Frame
B’s 32 bit frame arrives at A at t+2d
Ethernet Performance k stations, always ready to transmit Assume constant retransmission probability p Probability, A that some station acquires channel during a given slot 𝐴 = 𝑘𝑘(1 − 𝑘)𝑘−1 Optimal value of p – differentiate w.r.t. p and equate to 0
• 𝑘 = 1𝑘 then optimal 𝐴 = [𝑘−1
𝑘]𝑘−1
• As k → ∞ 𝑘 → 1𝑒
Probability that Contention Interval is exactly j slots is 𝐴(1 − 𝐴)𝑗−1 So, the mean number of slots per contention
∑ 𝑗𝐴(1 − 𝐴)𝑗−1 = 1𝐴
∞𝑗=0
Slot duration = 2𝜏 Mean contention interval 𝑤 = 2𝜏
𝐴 …. Mean number of cont. slots = e
If frame transmission time = P
Channel efficiency = 𝑃𝑃+2𝜏/𝐴
= 11+2𝐵𝐵𝑒/𝑐𝑐
Where F=Frame length, B=network Bandwidth, L = cable length
November 12 CMSC417 Set 5 130
Ethernet Performance Efficiency of Ethernet at 10 Mbps with 512-bit slot times.
November 12 131 CMSC417 Set 5
Ethernet Repeaters
Up to 4 Repeaters Cables 10Base 5
• 10Mbps • Baseband • 500 Meters
10Base2 10BaseT
• Twisted Pair 100 M Category 5 (Cat 5)
• 10 M and 100 M • Twisted Pair
October 08 CMSC417 Set 11 132
Hubs: Physical-Layer Repeaters
Hubs are physical-layer repeaters Bits coming from one link go out all other links At the same rate, with no frame buffering No CSMA/CD at hub: adapters detect
collisions
twisted pair
hub
October 08 133 CMSC417 Set 11
Interconnecting with Hubs
Backbone hub interconnects LAN segments All packets seen everywhere, forming one large
collision domain Can’t interconnect Ethernets of different speeds
hub hub hub
hub
October 08 134 CMSC417 Set 11
Switch
Link layer device Stores and forwards Ethernet frames Examines frame header and selectively
forwards frame based on MAC dest address When frame is to be forwarded on segment,
uses CSMA/CD to access segment Transparent Hosts are unaware of presence of switches
Plug-and-play, self-learning Switches do not need to be configured
October 08 135 CMSC417 Set 11
Switched/Fast Ethernet (1)
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Hubs wire all lines into a single CSMA/CD domain Switches isolate each port to a separate domain
• Much greater throughput for multiple ports • No need for CSMA/CD with full-duplex lines
Switched/Fast Ethernet (2)
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Switches can be wired to computers, hubs and switches Hubs concentrate traffic from computers More on how to switch frames the in 4.8
Switch
Twisted pair Switch ports
Hub
Switch: Traffic Isolation Switch breaks subnet into LAN segments Switch filters packets
Same-LAN-segment frames not usually forwarded onto other LAN segments
Segments become separate collision domains
hub hub hub
switch
collision domain collision domain
collision domain
October 08 138 CMSC417 Set 11
Switched/Fast Ethernet (3)
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Fast Ethernet extended Ethernet from 10 to 100 Mbps Twisted pair (with Cat 5) dominated the market
Gigabit Ethernet (1)
A two-station Ethernet
Gigabit / 10 Gigabit Ethernet (1)
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Switched Gigabit Ethernet is now the garden variety With full-duplex lines between computers/switches
Gigabit / 10 Gigabit Ethernet (1)
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Gigabit Ethernet is commonly run over twisted pair
10 Gigabit Ethernet is being deployed where needed
40/100 Gigabit Ethernet is under development
Benefits of Ethernet
Easy to administer and maintain Inexpensive Increasingly higher speed
Moved from shared media to switches Change everything except the frame format A good general lesson for evolving the Internet
October 08 143 CMSC417 Set 11
cable headend
CMTS
ISP
cable modem termination system
multiple 40Mbps downstream (broadcast) channels single CMTS transmits into channels
multiple 30 Mbps upstream channels multiple access: all users contend for certain upstream
channel time slots (others assigned)
Cable access network
cable modem splitter
…
…
Internet frames,TV channels, control transmitted downstream at different frequencies
upstream Internet frames, TV control, transmitted upstream at different frequencies in time slots
Link Layer 5-145
DOCSIS: data over cable service interface spec FDM over upstream, downstream frequency channels TDM upstream: some slots assigned, some have contention downstream MAP frame: assigns upstream slots request for upstream slots (and data) transmitted
random access (binary backoff) in selected slots
MAP frame for Interval [t1, t2]
Residences with cable modems
Downstream channel i
Upstream channel j
t1 t2
Assigned minislots containing cable modem upstream data frames
Minislots containing minislots request frames
cable headend
CMTS
Cable access network
Link Layer 5-146
Summary of MAC protocols
channel partitioning, by time, frequency or code Time Division, Frequency Division
random access (dynamic), ALOHA, S-ALOHA, CSMA, CSMA/CD carrier sensing: easy in some technologies (wire), hard
in others (wireless) CSMA/CD used in Ethernet CSMA/CA used in 802.11
taking turns polling from central site, token passing bluetooth, FDDI, token ring
Link Layer 5-147
Link layer, LANs: outline
5.1 introduction, services 5.2 error detection,
correction 5.3 multiple access
protocols 5.4 LANs addressing, ARP Ethernet switches VLANS
5.5 link virtualization: MPLS
5.6 data center networking
5.7 a day in the life of a web request
Link Layer 5-148
MAC addresses and ARP
32-bit IP address: network-layer address for interface used for layer 3 (network layer) forwarding
MAC (or LAN or physical or Ethernet) address: function: used ‘locally” to get frame from one interface to
another physically-connected interface (same network, in IP-addressing sense)
48 bit MAC address (for most LANs) burned in NIC ROM, also sometimes software settable
e.g.: 1A-2F-BB-76-09-AD
hexadecimal (base 16) notation (each “number” represents 4 bits)
Link Layer 5-149
LAN addresses and ARP each adapter on LAN has unique LAN address
adapter
1A-2F-BB-76-09-AD
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
71-65-F7-2B-08-53
LAN (wired or wireless)
Link Layer 5-150
LAN addresses (more)
MAC address allocation administered by IEEE manufacturer buys portion of MAC address space
(to assure uniqueness) analogy: MAC address: like Social Security Number IP address: like postal address
MAC flat address ➜ portability can move LAN card from one LAN to another
IP hierarchical address not portable address depends on IP subnet to which node is
attached
Link Layer 5-151
ARP: address resolution protocol
ARP table: each IP node (host, router) on LAN has 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)
Question: how to determine interface’s MAC address, knowing its IP address?
1A-2F-BB-76-09-AD
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
71-65-F7-2B-08-53
LAN
137.196.7.23
137.196.7.78
137.196.7.14
137.196.7.88
Link Layer 5-152
ARP protocol: same LAN A wants to send datagram
to B B’s MAC address not in
A’s ARP table. A broadcasts ARP query
packet, containing B's IP address dest MAC address = FF-FF-
FF-FF-FF-FF all nodes on LAN receive
ARP query B receives ARP packet,
replies to A with its (B's) MAC address frame sent to A’s MAC
address (unicast)
A caches (saves) 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
Link Layer 5-153
walkthrough: send datagram from A to B via R focus on addressing – at IP (datagram) and MAC layer (frame) assume A knows B’s IP address assume A knows IP address of first hop router, R (how?) assume A knows R’s MAC address (how?)
Addressing: routing to another LAN
R
1A-23-F9-CD-06-9B 222.222.222.220
111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111 74-29-9C-E8-FF-55
A
222.222.222.222 49-BD-D2-C7-56-2A
222.222.222.221 88-B2-2F-54-1A-0F
B
R
1A-23-F9-CD-06-9B 222.222.222.220
111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111 74-29-9C-E8-FF-55
A
222.222.222.222 49-BD-D2-C7-56-2A
222.222.222.221 88-B2-2F-54-1A-0F
B
Link Layer 5-154
Addressing: routing to another LAN
IP Eth Phy
IP src: 111.111.111.111 IP dest: 222.222.222.222
A creates IP datagram with IP source A, destination B A creates link-layer frame with R's MAC address as dest, frame
contains A-to-B IP datagram
MAC src: 74-29-9C-E8-FF-55 MAC dest: E6-E9-00-17-BB-4B
R
1A-23-F9-CD-06-9B 222.222.222.220
111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111 74-29-9C-E8-FF-55
A
222.222.222.222 49-BD-D2-C7-56-2A
222.222.222.221 88-B2-2F-54-1A-0F
B
Link Layer 5-155
Addressing: routing to another LAN
IP Eth Phy
frame sent from A to R
IP Eth Phy
frame received at R, datagram removed, passed up to IP
MAC src: 74-29-9C-E8-FF-55 MAC dest: E6-E9-00-17-BB-4B
IP src: 111.111.111.111 IP dest: 222.222.222.222
IP src: 111.111.111.111 IP dest: 222.222.222.222
R
1A-23-F9-CD-06-9B 222.222.222.220
111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111 74-29-9C-E8-FF-55
A
222.222.222.222 49-BD-D2-C7-56-2A
222.222.222.221 88-B2-2F-54-1A-0F
B
Link Layer 5-156
Addressing: routing to another LAN
IP src: 111.111.111.111 IP dest: 222.222.222.222
R forwards datagram with IP source A, destination B R creates link-layer frame with B's MAC address as dest, frame
contains A-to-B IP datagram
MAC src: 1A-23-F9-CD-06-9B MAC dest: 49-BD-D2-C7-56-2A
IP Eth Phy
IP Eth Phy
R
1A-23-F9-CD-06-9B 222.222.222.220
111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111 74-29-9C-E8-FF-55
A
222.222.222.222 49-BD-D2-C7-56-2A
222.222.222.221 88-B2-2F-54-1A-0F
B
Link Layer 5-157
Addressing: routing to another LAN R forwards datagram with IP source A, destination B R creates link-layer frame with B's MAC address as dest, frame
contains A-to-B IP datagram
IP src: 111.111.111.111 IP dest: 222.222.222.222
MAC src: 1A-23-F9-CD-06-9B MAC dest: 49-BD-D2-C7-56-2A
IP Eth Phy
IP Eth Phy
R
1A-23-F9-CD-06-9B 222.222.222.220
111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111 74-29-9C-E8-FF-55
A
222.222.222.222 49-BD-D2-C7-56-2A
222.222.222.221 88-B2-2F-54-1A-0F
B
Link Layer 5-158
Addressing: routing to another LAN R forwards datagram with IP source A, destination B R creates link-layer frame with B's MAC address as dest, frame
contains A-to-B IP datagram
IP src: 111.111.111.111 IP dest: 222.222.222.222
MAC src: 1A-23-F9-CD-06-9B MAC dest: 49-BD-D2-C7-56-2A
IP
Eth Phy
Link Layer 5-159
Link layer, LANs: outline
5.1 introduction, services 5.2 error detection,
correction 5.3 multiple access
protocols 5.4 LANs addressing, ARP Ethernet switches VLANS
5.5 link virtualization: MPLS
5.6 data center networking
5.7 a day in the life of a web request
Link Layer 5-160
Ethernet switch link-layer device: takes an active role store, forward Ethernet frames examine incoming frame’s MAC address,
selectively forward frame to one-or-more outgoing links when frame is to be forwarded on segment, uses CSMA/CD to access segment
transparent hosts are unaware of presence of switches
plug-and-play, self-learning switches do not need to be configured
Link Layer 5-161
Switch: multiple simultaneous transmissions
hosts have dedicated, direct connection to switch
switches buffer packets Ethernet protocol used on each
incoming link, but no collisions; full duplex each link is its own collision
domain switching: A-to-A’ and B-to-B’
can transmit simultaneously, without collisions switch with six interfaces
(1,2,3,4,5,6)
A
A’
B
B’ C
C’
1 2
3 4 5
6
Link Layer 5-162
Switch forwarding table
Q: how does switch know A’ reachable via interface 4, B’ reachable via interface 5?
switch with six interfaces (1,2,3,4,5,6)
A
A’
B
B’ C
C’
1 2
3 4 5
6 A: each switch has a switch table, each entry: (MAC address of host, interface to
reach host, time stamp) looks like a routing table!
Q: how are entries created, maintained in switch table? something like a routing protocol?
A
A’
B
B’ C
C’
1 2
3 4 5
6
Link Layer 5-163
Switch: self-learning switch learns which hosts
can be reached through which interfaces when frame received,
switch “learns” location of sender: incoming LAN segment
records sender/location pair in switch table
A A’
Source: A Dest: A’
MAC addr interface TTL Switch table
(initially empty) A 1 60
Link Layer 5-164
Switch: frame filtering/forwarding
when frame received at switch: 1. record incoming link, MAC address of sending host 2. index switch table using MAC destination address 3. if entry found for destination
then { if destination on segment from which frame arrived
then drop frame else forward frame on interface indicated by entry } else flood /* forward on all interfaces except arriving interface */
A
A’
B
B’ C
C’
1 2
3 4 5
6
Link Layer 5-165
Self-learning, forwarding: example A A’
Source: A Dest: A’
MAC addr interface TTL switch table
(initially empty) A 1 60
A A’ A A’ A A’ A A’ A A’
frame destination, A’, locaton unknown: flood
A’ A
destination A location known:
A’ 4 60
selectively send on just one link
Link Layer 5-166
Interconnecting switches
switches can be connected together
Q: sending from A to G - how does S1 know to forward frame destined to F via S4 and S3? A: self learning! (works exactly the same as in
single-switch case!)
A
B
S1
C D
E
F S2
S4
S3
H I
G
Link Layer 5-167
Self-learning multi-switch example Suppose C sends frame to I, I responds to C
Q: show switch tables and packet forwarding in S1, S2, S3, S4
A
B
S1
C D
E
F S2
S4
S3
H I
G
Link Layer 5-168
Institutional network
to external network
router
IP subnet
mail server
web server
Link Layer 5-169
Switches vs. routers
both are store-and-forward: routers: network-layer
devices (examine network-layer headers)
switches: link-layer devices (examine link-layer headers)
both have forwarding tables: routers: compute tables
using routing algorithms, IP addresses
switches: learn forwarding table using flooding, learning, MAC addresses
application transport network
link physical
network link
physical
link physical
switch
datagram
application transport network
link physical
frame
frame
frame datagram
Link Layer 5-170
VLANs: motivation consider: CS user moves office to
EE, but wants connect to CS switch?
single broadcast domain: all layer-2 broadcast
traffic (ARP, DHCP, unknown location of destination MAC address) must cross entire LAN
security/privacy, efficiency issues
Computer Science Electrical
Engineering
Computer Engineering
Link Layer 5-171
VLANs port-based VLAN: switch ports
grouped (by switch management software) so that single physical switch ……
switch(es) supporting VLAN capabilities can be configured to define multiple virtual LANS over single physical LAN infrastructure.
Virtual Local Area Network 1 8
9
16 10 2
7
…
Electrical Engineering (VLAN ports 1-8)
Computer Science (VLAN ports 9-15)
15
…
Electrical Engineering (VLAN ports 1-8)
…
1
8 2
7 9
16 10
15
…
Computer Science (VLAN ports 9-16)
… operates as multiple virtual switches
Link Layer 5-172
Port-based VLAN
1
8
9
16 10 2
7
…
Electrical Engineering (VLAN ports 1-8)
Computer Science (VLAN ports 9-15)
15
…
traffic isolation: frames to/from ports 1-8 can only reach ports 1-8 can also define VLAN based on
MAC addresses of endpoints, rather than switch port
dynamic membership: ports can be dynamically assigned among VLANs
router
forwarding between VLANS: done via routing (just as with separate switches) in practice vendors sell combined
switches plus routers
Link Layer 5-173
VLANS spanning multiple switches
trunk port: carries frames between VLANS defined over multiple physical switches frames forwarded within VLAN between switches can’t be vanilla
802.1 frames (must carry VLAN ID info) 802.1q protocol adds/removed additional header fields for frames
forwarded between trunk ports
1
8
9
10 2
7
…
Electrical Engineering (VLAN ports 1-8)
Computer Science (VLAN ports 9-15)
15
…
2
7 3
Ports 2,3,5 belong to EE VLAN Ports 4,6,7,8 belong to CS VLAN
5
4 6 8 16
1
Link Layer 5-174
type
2-byte Tag Protocol Identifier (value: 81-00)
Tag Control Information (12 bit VLAN ID field, 3 bit priority field like IP TOS)
Recomputed CRC
802.1Q VLAN frame format
802.1 frame
802.1Q frame
dest. address
source address data (payload) CRC preamble
dest. address
source address preamble data (payload) CRC
type
Link Layer 5-175
Link layer, LANs: outline
5.1 introduction, services 5.2 error detection,
correction 5.3 multiple access
protocols 5.4 LANs addressing, ARP Ethernet switches VLANS
5.5 link virtualization: MPLS
5.6 data center networking
5.7 a day in the life of a web request
Link Layer 5-176
Multiprotocol label switching (MPLS)
initial goal: high-speed IP forwarding using fixed length label (instead of IP address) fast lookup using fixed length identifier (rather than
shortest prefix matching) borrowing ideas from Virtual Circuit (VC) approach but IP datagram still keeps IP address!
PPP or Ethernet header IP header remainder of link-layer frame MPLS header
label Exp S TTL
20 3 1 5
Link Layer 5-177
MPLS capable routers
a.k.a. label-switched router forward packets to outgoing interface based only on
label value (don’t inspect IP address) MPLS forwarding table distinct from IP forwarding tables
flexibility: MPLS forwarding decisions can differ from those of IP use destination and source addresses to route flows to
same destination differently (traffic engineering) re-route flows quickly if link fails: pre-computed backup
paths (useful for VoIP)
Link Layer 5-178
R2
D R3
R5
A
R6
MPLS versus IP paths
IP router IP routing: path to destination determined
by destination address alone
R4
Link Layer 5-179
R2
D R3 R4
R5
A
R6
MPLS versus IP paths
IP-only router
IP routing: path to destination determined by destination address alone
MPLS and IP router
MPLS routing: path to destination can be based on source and dest. address fast reroute: precompute backup routes in
case of link failure
entry router (R4) can use different MPLS routes to A based, e.g., on source address
Link Layer 5-180
MPLS signaling modify OSPF, IS-IS link-state flooding protocols to
carry info used by MPLS routing, e.g., link bandwidth, amount of “reserved” link bandwidth
D R4
R5
A
R6
entry MPLS router uses RSVP-TE signaling protocol to set up MPLS forwarding at downstream routers
modified link state flooding
RSVP-TE
Link Layer 5-181
R1 R2
D R3 R4
R5 0
1 0 0
A
R6
in out out label label dest interface
6 - A 0
in out out label label dest interface
10 6 A 1 12 9 D 0
in out out label label dest interface
10 A 0 12 D 0
1
in out out label label dest interface
8 6 A 0
0
8 A 1
MPLS forwarding tables
Link Layer 5-182
Link layer, LANs: outline
5.1 introduction, services 5.2 error detection,
correction 5.3 multiple access
protocols 5.4 LANs addressing, ARP Ethernet switches VLANS
5.5 link virtualization: MPLS
5.6 data center networking
5.7 a day in the life of a web request
Link Layer 5-183
Data center networks
10’s to 100’s of thousands of hosts, often closely coupled, in close proximity: e-business (e.g. Amazon) content-servers (e.g., YouTube, Akamai, Apple, Microsoft) search engines, data mining (e.g., Google)
challenges: multiple applications, each
serving massive numbers of clients
managing/balancing load, avoiding processing, networking, data bottlenecks
Inside a 40-ft Microsoft container, Chicago data center
Link Layer 5-184
Server racks
TOR switches
Tier-1 switches
Tier-2 switches
Load balancer
Load balancer
B
1 2 3 4 5 6 7 8
A C
Border router
Access router
Internet
Data center networks load balancer: application-layer routing receives external client requests directs workload within data center returns results to external client (hiding data
center internals from client)
Server racks
TOR switches
Tier-1 switches
Tier-2 switches
1 2 3 4 5 6 7 8
Data center networks rich interconnection among switches, racks: increased throughput between racks (multiple routing
paths possible) increased reliability via redundancy
Link Layer 5-186
Link layer, LANs: outline
5.1 introduction, services 5.2 error detection,
correction 5.3 multiple access
protocols 5.4 LANs addressing, ARP Ethernet switches VLANS
5.5 link virtualization: MPLS
5.6 data center networking
5.7 a day in the life of a web request
Link Layer 5-187
Synthesis: a day in the life of a web request
journey down protocol stack complete! application, transport, network, link
putting-it-all-together: synthesis! goal: identify, review, understand protocols (at all
layers) involved in seemingly simple scenario: requesting www page
scenario: student attaches laptop to campus network, requests/receives www.google.com
Link Layer 5-188
A day in the life: scenario
Comcast network 68.80.0.0/13
Google’s network 64.233.160.0/19 64.233.169.105
web server
DNS server
school network 68.80.2.0/24
web page
browser
router (runs DHCP)
Link Layer 5-189
A day in the life… connecting to the Internet
connecting laptop needs to get its own IP address, addr of first-hop router, addr of DNS server: use DHCP
DHCP UDP
IP Eth Phy
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP UDP
IP Eth Phy
DHCP
DHCP
DHCP
DHCP DHCP
DHCP request encapsulated in UDP, encapsulated in IP, encapsulated in 802.3 Ethernet
Ethernet frame broadcast
(dest: FFFFFFFFFFFF) on LAN, received at router running DHCP server
Ethernet demuxed to IP demuxed, UDP demuxed to DHCP
router (runs DHCP)
Link Layer 5-190
DHCP server formulates DHCP ACK containing client’s IP address, IP address of first-hop router for client, name & IP address of DNS server
DHCP UDP
IP Eth Phy
DHCP
DHCP
DHCP
DHCP
DHCP UDP
IP Eth Phy
DHCP
DHCP
DHCP
DHCP
DHCP
encapsulation at DHCP server, frame forwarded (switch learning) through LAN, demultiplexing at client
Client now has IP address, knows name & addr of DNS server, IP address of its first-hop router
DHCP client receives DHCP ACK reply
A day in the life… connecting to the Internet
router (runs DHCP)
Link Layer 5-191
A day in the life… ARP (before DNS, before HTTP)
before sending HTTP request, need IP address of www.google.com: DNS
DNS UDP
IP Eth Phy
DNS
DNS
DNS
DNS query created, encapsulated in UDP, encapsulated in IP, encapsulated in Eth. To send frame to router, need MAC address of router interface: ARP
ARP query broadcast, received by router, which replies with ARP reply giving MAC address of router interface
client now knows MAC address of first hop router, so can now send frame containing DNS query
ARP query
Eth Phy
ARP
ARP
ARP reply
router (runs DHCP)
Link Layer 5-192
DNS UDP
IP Eth Phy
DNS
DNS
DNS
DNS
DNS
IP datagram containing DNS query forwarded via LAN switch from client to 1st hop router
IP datagram forwarded from campus network into comcast network, routed (tables created by RIP, OSPF, IS-IS and/or BGP routing protocols) to DNS server
demux’ed to DNS server DNS server replies to client
with IP address of www.google.com
Comcast network 68.80.0.0/13
DNS server
DNS UDP
IP Eth Phy
DNS
DNS
DNS
DNS
A day in the life… using DNS
router (runs DHCP)
Link Layer 5-193
A day in the life…TCP connection carrying HTTP
HTTP TCP IP
Eth Phy
HTTP
to send HTTP request, client first opens TCP socket to web server
TCP SYN segment (step 1 in 3-way handshake) inter-domain routed to web server
TCP connection established! 64.233.169.105 web server
SYN
SYN
SYN
SYN
TCP IP
Eth Phy
SYN
SYN
SYN
SYNACK
SYNACK
SYNACK
SYNACK
SYNACK
SYNACK
SYNACK
web server responds with TCP SYNACK (step 2 in 3-way handshake)
router (runs DHCP)
Link Layer 5-194
A day in the life… HTTP request/reply HTTP TCP IP
Eth Phy
HTTP
HTTP request sent into TCP socket
IP datagram containing HTTP request routed to www.google.com
IP datagram containing HTTP reply routed back to client
64.233.169.105 web server
HTTP TCP IP
Eth Phy
web server responds with HTTP reply (containing web page)
HTTP
HTTP
HTTP HTTP
HTTP
HTTP
HTTP
HTTP
HTTP
HTTP
HTTP
HTTP
HTTP
web page finally (!!!) displayed
Link Layer 5-195
Chapter 5: Summary principles behind data link layer services: error detection, correction sharing a broadcast channel: multiple access link layer addressing
instantiation and implementation of various link layer technologies Ethernet switched LANS, VLANs virtualized networks as a link layer: MPLS
synthesis: a day in the life of a web request
Link Layer 5-196
Chapter 5: let’s take a breath
journey down protocol stack complete (except PHY)
solid understanding of networking principles, practice
….. could stop here …. but lots of interesting topics! wireless multimedia security network management
CSMC 417Chapter 5: Link layerLink layer, LANs: outlineLink layer: introductionLink layer: contextLink layer servicesLink layer services (more)Where is the link layer implemented?Adaptors communicatingLink layer, LANs: outlineError detectionParity checkingInternet checksum (review)Cyclic redundancy checkCRC exampleCyclic Redundancy CheckCRC BasisError Detection – CRCs (1) Cyclic Redundancy CheckCommon CRC PolynomialsError Detection – CRCs (2)Framing MethodsFramingBit Oriented ProtocolsFraming (Continued)Framing – Byte countFraming – Bit stuffingFraming – Byte stuffingByte-Oriented ProtocolsFrame StructureClock-Based Framing (SONET)Sonet FrameElementary Data Link ProtocolsLink layer environment (1)Link layer environment (2)Protocol DefinitionsProtocol �Definitions�(ctd.)Utopian Simplex ProtocolUtopian Simplex Protocol (1)Utopian Simplex Protocol (2)Reliable TransmissionStop and Wait with 1-bit Seq NoStop and Wait ProtocolsStop and WaitStop-and-Wait – Error-free channelStop-and-Wait – Noisy channel (1)Stop-and-Wait – Noisy channel (2)Stop-and-Wait – Noisy channel (3)Sliding Window ProtocolsSliding Window concept (1)Sliding Window ProtocolSliding Window ProtocolSliding WindowSliding Window concept (2)Sliding Window concept (3)One-Bit Sliding Window (1)One-Bit Sliding Window (2)One-Bit Sliding Window (3)Go-Back-N (1)Go-Back-N (2)Selective Repeat (1)Selective Repeat (2)Selective Repeat (3)Example Data Link ProtocolsPacket over SONETPacket over SONET (2)PPP (1)PPP (2)PPP – Point to Point Protocol (3)ADSL (1)ADSL (2)High-Level Data Link ControlHigh-Level Data Link Control (2)The Data Link Layer in the InternetLink layer, LANs: outlineThe MAC SublayerMAC protocols: taxonomyChannel partitioning MAC protocols: TDMAChannel partitioning MAC protocols: FDMAMultiple access protocolsAn ideal multiple access protocolMultiple access links, protocolsRandom access protocolsALOHA (1)Pure ALOHA (2)Pure (unslotted) ALOHAPure ALOHA efficiencyPure ALOHA (3)Slotted ALOHASlotted ALOHASlotted ALOHA: efficiencyCSMA (carrier sense multiple access)CSMA (1)Persistent and Nonpersistent CSMACSMA CollisionsCSMA/CD (collision detection)Ethernet CSMA/CD algorithmCSMA/CD efficiencyCSMA/CD Collision DetectionCSMA (3) – Collision Detection“Taking turns” MAC protocols“Taking turns” MAC protocols“Taking turns” MAC protocolsCollision-Free Protocols (1) – BitmapCollision-Free Protocols– CountdownLimited-Contention Protocols (1)Limited Contention�Adaptive Tree WalkWavelength Division Multiple Access ProtocolsEthernetEthernetClassic Ethernet– Physical LayerEthernet Transceiver and AdapterEthernet Uses CSMA/CDEthernet CablingEthernet Cabling (2)Ethernet Cabling (3)Ethernet SignallingEthernet Frame FormatEthernet frame structureEthernet frame structure (more)Ethernet: unreliable, connectionless802.3 Ethernet standards: link & physical layersClassic Ethernet (2) – MAC Ethernet Transmitter AlgorithmIEEE 802.2: Logical Link ControlLimitations on Ethernet LengthLimitations on Ethernet LengthEthernet MAC Sublayer Protocol (2)Worst Case SecnarioEthernet PerformanceEthernet PerformanceEthernet RepeatersHubs: Physical-Layer RepeatersInterconnecting with HubsSwitchSwitched/Fast Ethernet (1)Switched/Fast Ethernet (2)Switch: Traffic IsolationSwitched/Fast Ethernet (3)Gigabit Ethernet (1)Gigabit / 10 Gigabit Ethernet (1)Gigabit / 10 Gigabit Ethernet (1)Benefits of EthernetSlide Number 144Slide Number 145 Summary of MAC protocolsLink layer, LANs: outlineMAC addresses and ARPLAN addresses and ARPLAN addresses (more)ARP: address resolution protocolARP protocol: same LANAddressing: routing to another LANAddressing: routing to another LANAddressing: routing to another LANAddressing: routing to another LANAddressing: routing to another LANAddressing: routing to another LANLink layer, LANs: outlineEthernet switchSwitch: multiple simultaneous transmissionsSwitch forwarding tableSwitch: self-learningSwitch: frame filtering/forwardingSelf-learning, forwarding: exampleInterconnecting switchesSelf-learning multi-switch exampleInstitutional networkSwitches vs. routersVLANs: motivationVLANsPort-based VLANVLANS spanning multiple switchesSlide Number 174Link layer, LANs: outlineMultiprotocol label switching (MPLS)MPLS capable routersMPLS versus IP pathsMPLS versus IP pathsMPLS signalingMPLS forwarding tablesLink layer, LANs: outlineData center networks Slide Number 184Slide Number 185Link layer, LANs: outlineSynthesis: a day in the life of a web requestA day in the life: scenarioA day in the life… connecting to the InternetA day in the life… connecting to the InternetA day in the life… ARP (before DNS, before HTTP)A day in the life… using DNSA day in the life…TCP connection carrying HTTPA day in the life… HTTP request/reply Chapter 5: SummaryChapter 5: let’s take a breath
Recommended