Course: CS176C — Advanced Topics in Internet Computing, Spring 2026
Instructor: Arpit Gupta, UC Santa Barbara
Date: April 16, 2026
Slides: Deployed slide deck
Pre-requisite: L5 (The Shared-Medium Problem)


From CSMA/CD to the wireless gap

Lecture 5 traced the assumption cascade that wired contention protocols rode for two decades. Each generation added shared state and shrank the vulnerable window: Pure ALOHA achieved 18.4% throughput, Slotted ALOHA doubled it to 36.8%, CSMA pushed utilization to 80-90% by sensing before transmitting, and CSMA/CD closed the loop at the transmitter to reach roughly 95% [1][2][7]. The cascade worked because Ethernet’s physical layer cooperated — a transmitter could listen to its own wire and detect a collision within microseconds.

Wireless broke that cooperation. A transmitter’s own signal at its antenna is roughly 50 dB stronger than any incoming signal, saturating the receiver. Collision detection is physically impossible on radio. And the generative exercise from L5 showed why this matters beyond WiFi: when propagation delay greatly exceeds frame time, sensing is useless — satellite reaches for TDMA, underwater is stuck near ALOHA. WiFi sits between those extremes. On a LAN, propagation delay is far smaller than frame time, so sensing still works. But collision detection does not. The question this lecture answers is: how does wireless close the feedback loop without it? And then: how does that loop scale under density, and what finally broke it?

CSMA/CA: the principle

The complete CSMA/CA principle — as it coalesced in the early 1990s, before 802.11 standardized anything — has three steps. First, sense before transmitting: if the medium is busy, wait; if idle, go. Second, transmit the whole frame, because you cannot detect a collision mid-transmission anyway, so commit fully. Third, wait for an acknowledgment from the receiver. If no ACK arrives, assume a collision occurred, wait a random time, and retry.

The crucial observation is where the loop closes. In CSMA/CD, the loop closes at the transmitter — the sender detects the collision on the wire and aborts. In CSMA/CA, the loop closes at the receiver. The ACK is the only feedback signal available given the physics. This makes the cost explicit: the sender must finish the entire frame before any feedback is possible. The loop is frame-time-bounded rather than propagation-bounded.

None of the machinery that students associate with WiFi — SIFS, DIFS, binary exponential backoff, NAV — belongs to the principle. Those are enhancements added by 802.11 DCF in 1997 [5]. The principle itself has a clear historical lineage: Karn’s MACA in 1990 introduced the handshake [3], MACAW in 1994 added the link-layer ACK that completed step three [4], Apple’s LocalTalk in 1985 provided commercial precedent, and 802.11 DCF in 1997 packaged the final form [5].

The 12 ms feedback loop

How long must the sender wait for that ACK? The wait must cover the frame transmission time, the ACK transmission time, and a small radio turnaround margin.

At 802.11b’s 1 Mbps basic rate with a 1500-byte frame, the arithmetic is straightforward:

ComponentCalculationValue
Frame TX time1500 x 8 / 10^612 ms
ACK TX time14 x 8 / 10^6~0.1 ms
Radio turnaround~10 us
Per-attempt loop~12 ms

The loop is dominated by frame transmission time. WiFi’s propagation delay at 100 m indoor range is roughly 333 ns — three orders of magnitude smaller than even the ACK transmission time. Propagation is not the bottleneck; frame time is [7].

Compare this to CSMA/CD on Ethernet:

PropertyEthernet (CSMA/CD)WiFi (CSMA/CA)
Loop closes in51 us (propagation round-trip, max 2500 m segment)~12 ms (frame TX at 1 Mbps)
Bounded byPropagation delayFrame transmission time
Ratio~250x slower per attempt

This is the core fragility of CSMA/CA. Ethernet’s tight loop tolerates roughly 95% load. WiFi’s loose loop cannot — and the throughput ceiling that results from this fragility appears later in the lecture.

One note of precision: the number “50 ms” sometimes appears in discussions of ACK timeouts. That number does not appear in pre-DCF CSMA/CA literature. If it surfaces elsewhere, it likely refers to worst-case binary exponential backoff wait under DCF saturation on legacy FHSS — CW_max (1023) times a 50 us slot yields approximately 51 ms — a backoff wait, not a feedback-loop period [5].

Four challenges, in chronological order

CSMA/CA’s three-step loop is clean in principle but fragile in practice. History recognized four challenges, roughly in the order they were diagnosed and addressed.

The first is the hidden terminal problem, recognized in 1975 [1]. Station A senses “idle” at its own antenna, but station C — hidden from A — is already transmitting to B. The collision occurs at B’s receiver. Neither sender knows why the frame was lost; only an ACK timeout reveals it.

The second is backoff collision cascading, addressed in 1994 by MACAW [4]. Two stations collide. Both retry. If they pick the same random wait from identical windows, they collide again. Without adaptive backoff, cascading retries waste airtime indefinitely.

The third is ACK vulnerability to new attempts, addressed in 1997 by 802.11 DCF [5]. After a frame, the receiver wants to send an ACK. But other stations were waiting too — they may try to transmit the moment the medium clears. The ACK collides with a new-attempt frame, and the original sender interprets the missing ACK as a data collision.

The fourth is density collapse, quantified in 2000 by Bianchi [6]. As the number of stations grows, the probability of two picking the same backoff slot approaches one. Even perfect random avoidance breaks down at scale. This challenge turns out to be structural — no amount of parameter tuning eliminates it.

Each challenge motivated a specific fix, and the fixes arrived in roughly the same chronological order.

Tobagi and Kleinrock (1975): discovering the limits of CSMA

The hidden terminal problem is the oldest of the four challenges — recognized fifteen years before CSMA/CA formalized as a principle. The setting was UCLA’s Packet Radio Network (PRNET) experiments, where Tobagi and Kleinrock applied Kleinrock’s CSMA analysis to terrestrial radio and found that throughput was much worse than the LAN model predicted [1].

Their diagnosis, published as “Packet Switching in Radio Channels, Part II,” identified two distinct pathologies. In the hidden terminal case, stations A and C cannot hear each other. Both sense “idle.” Both transmit to B. The frame is destroyed at B’s receiver. Neither learns why — only an ACK timeout reveals the loss. In the exposed terminal case, station C hears B’s transmission to A and defers. But C’s intended transmission to D would not have collided with the B-to-A exchange. Airtime is wasted by excessive conservatism.

The core insight was that carrier sense at the transmitter is the wrong measurement. The collision is determined at the receiver. Until the measurement reaches the receiver, no amount of backoff cleverness will close the gap [1].

A note of historical precision: the 1975 paper named and analyzed hidden terminal only. Exposed terminal was not formally named in that paper — its treatment came later in the MACA/MACAW era of 1990-94 [3][4].

The busy tone: moving measurement to the receiver

Tobagi and Kleinrock proposed a fix in the same paper: Busy-Tone Multiple Access (BTMA) [1]. The idea was to move the measurement to the receiver literally. Allocate a second narrow channel — the “busy tone” channel. Whenever a receiver is receiving a frame, it transmits a continuous tone on that channel. Every potential transmitter senses both the data channel and the busy-tone channel. If either is busy, defer.

The fix works elegantly for hidden terminal. Station A wants to transmit to B. A senses the data channel and hears nothing — it cannot hear C. But B is receiving from C and is therefore emitting the tone. A hears the tone and defers. Collision prevented.

The cost was prohibitive for consumer hardware. BTMA required a second radio per station (cost, power, board area), dedicated spectrum for the tone channel, receivers transmitting continuously during reception (power drain), and half-duplex commodity radios that could not transmit a tone while receiving data. The idea was excellent in theory and impractical for 1980s consumer hardware. It sat dormant for fifteen years — until Phil Karn asked whether the same effect could be achieved without the second radio [3].

Karn (1990): the busy tone, in-band

Karn (KA9Q), working in amateur packet radio, faced the same hidden terminal problem Tobagi and Kleinrock had identified. He had read their work, but commodity transceivers could not do busy tone [3]. His reformulation — Multiple Access with Collision Avoidance (MACA) — replaced the continuous out-of-band tone with a brief in-band handshake. The transmitter sends a short Request-to-Send (RTS) to the receiver: “I want to send for D microseconds.” The receiver replies with a Clear-to-Send (CTS), broadcast in all directions: “Go ahead — and everyone else, hold off for D microseconds.” The CTS plays the role of the busy tone, but only at the start of each frame exchange, not continuously.

The mapping from BTMA to MACA is direct:

BTMA (1975)MACA (1990)
Continuous toneBrief CTS frame
Separate channelSame channel, in-band
Receiver always emits during RXReceiver emits at start of RX
Two radios neededSingle radio, control frames

Same idea, in-band — at the cost of handshake overhead [1][3].

Several distinctions about MACA matter for what follows. MACA had no link-layer ACK — it relied on TCP for loss detection. MACA had no carrier sensing — Karn believed CSMA was actively harmful in radio because the transmitter’s measurement was wrong. And the “CA” in MACA originally meant the handshake itself — avoiding collisions by delegating measurement to the receiver, not the random-backoff “avoidance” that 802.11 later folded in [3].

Bharghavan et al. fixed the remaining gaps four years later with MACAW — “MACA for Wireless” [4]. MACAW added the link-layer ACK after DATA, completing CSMA/CA’s step three and enabling microsecond-scale loss detection versus TCP’s second-scale timeouts. MACAW introduced MILD backoff (Multiplicative Increase, Linear Decrease), an adaptive window that prevents cascading collisions and shares airtime fairly — the fix for Challenge 2. MACAW also added the DS (Data Sending) frame to tell exposed terminals how long to defer. When 802.11 DCF arrived in 1997, it inherited MACAW’s structure, re-introduced physical carrier sensing, and swapped MILD for the simpler Binary Exponential Backoff [5].

What stations remember: the Network Allocation Vector

RTS/CTS solves hidden terminal only if overhearing stations know when to defer. Consider the scenario: A and B exchange RTS/CTS. Station C overhears the CTS. C can hear B but is hidden from A — that is precisely why RTS/CTS was needed. The CTS lasts roughly 100 microseconds, then the medium goes quiet from C’s perspective — A’s DATA frame is inaudible to C. What stops C from transmitting during A’s data exchange?

The answer must be memory, not sensing. C’s carrier sense will report idle right after the CTS ends, but the channel is actually busy at B’s receiver for the full data duration. The fix is the Network Allocation Vector (NAV) [5]. The CTS carries a Duration field: “I will be receiving for D microseconds.” C stores D in a countdown timer — the NAV. C defers until the NAV expires, regardless of what its antenna hears.

A: [RTS|D=500us]──────[DATA]────────
B:           [CTS|D=480us]──────[ACK]
C: ─── hears CTS ──[NAV=480us: defer]─
D: ─── hears RTS ──[NAV=500us: defer]─

Two kinds of “channel busy” now coexist:

KindSourceUpdated
Physical carrier senseAntenna energyContinuously
Virtual carrier sense (NAV)Overheard Duration fieldAt handshake

A station defers if either says busy. The conceptual shift is significant: medium-occupancy state is no longer purely measured from physics. It is partly announced via the protocol and remembered locally as a timer — forward-looking, trust-based, and local to each station [5].

Read through the four invariants, NAV marks a turning point. State is now layered — physical-medium state (measured) plus virtual-medium state (announced). More state, more measurement reach. Time acquires a new dimension — the reservation horizon encoded in the Duration field. Time includes “future committed,” not just “now.” Coordination is still distributed but now uses explicit announcement rather than only sensing — a small step toward centralization. And the interface widens with new control frames (RTS/CTS) and a new field (Duration) [5].

RTS/CTS: tradeoffs and why it is optional

RTS/CTS is expensive because control frames are sent at the PHY’s basic rate — so every legacy client can decode them — not at the high data rate [5]. For 802.11g, the basic rate is 6 Mbps while the peak data rate is 54 Mbps. Control frames run nine times slower than the data they protect.

The handshake cost per frame (RTS + SIFS + CTS + SIFS, at 802.11g rates) breaks down as follows:

ComponentDuration
RTS (20 B @ 6 Mbps + PHY header)~52 us
CTS (14 B @ 6 Mbps + PHY header)~44 us
2 x SIFS32 us
Total overhead~130 us

The cost relative to data airtime at 54 Mbps depends entirely on frame size:

Frame sizeData airtimeHandshake / data ratio
50 B (TCP ACK)~27 us~5x data
500 B~94 us~1.4x
1500 B~242 us~0.5x

For small frames, the handshake costs several times the payload. For large frames it is a tax, not a killer.

The benefit is collision shifting, not collision elimination. RTS/CTS does not prevent collisions — it shifts them to short control frames. A 20-byte RTS collision wastes roughly 52 microseconds; a 1500-byte data collision wastes roughly 242 microseconds plus the ACK timeout. The probability stays similar, but the cost-per-collision drops roughly fivefold [3].

There is a fundamental limit: stations hidden from both the transmitter and receiver never hear the handshake. RTS/CTS extends the measurement radius from “what A hears” to “what A or B hears” — still not global.

This is why 802.11 makes RTS/CTS optional. The cost-benefit flips with deployment density and frame size [5]. Dense environments with large frames favor enabling it — hidden terminals are common and the payoff is high. Sparse environments with small frames favor disabling it — overhead is not justified. The default RTSThreshold in most modern WiFi is roughly 2300 bytes, effectively disabling the handshake for normal traffic.

DCF (1997): protocol-level enhancements

802.11 DCF layers three additions on top of the CSMA/CA principle, addressing Challenges 2 and 3 [5].

The first enhancement is priority via timing, which fixes Challenge 3 — the ACK vulnerability. After a frame, the receiver wants to ACK and a new-attempt station also wants to transmit. Both are watching the medium. The fix is elegant: shorter wait equals higher priority. The Short Interframe Space (SIFS) is 16 microseconds — the ACK’s wait, bounded by radio turnaround time. The DCF Interframe Space (DIFS) is 34 microseconds — the new-attempt wait, equal to SIFS plus two slot times. The ACK’s shorter wait guarantees it preempts any new attempt. No priority bit, no reservation — just timing [5].

The second enhancement is Binary Exponential Backoff (BEB), which fixes Challenge 2 — backoff collision cascading. After a collision, the contention window doubles: CW becomes the minimum of twice the current CW and CW_max. After a success, CW resets to CW_min. For 802.11b, CW_min is 31; for 802.11a/g, CW_min is 15. CW_max is 1023 across all variants. This is the same mechanism Ethernet introduced in 1976 [7] — adapting collision-avoidance spread to observed load. MACAW had used MILD backoff; DCF adopted BEB as the simpler alternative [4][5].

The third enhancement is slot time — the duration that the random backoff counter decrements in. The slot must be long enough for any station to sense another’s transmission by the next slot boundary: propagation delay plus radio turnaround plus clear-channel-assessment detect time. For 802.11a/g with OFDM PHY, the slot is 9 microseconds. For 802.11b with DSSS PHY, the slot is 20 microseconds. This is PHY-dependent, not a free design parameter [5].

Together, these enhancements impose a fixed protocol overhead on every frame exchange. For 802.11a/g, the breakdown is:

ComponentValueReason
DIFS34 usSIFS + 2 x slot
Average backoff67.5 usCW_min = 15, avg = 7.5 slots x 9 us
PHY preamble20 usOFDM training symbols
SIFS16 usRX-to-TX switch
ACK at 6 Mbps basic~24 us14 bytes + preamble at lowest mandatory rate
Total~162 usNone of these scale with PHY data rate

These are enhancements, not definitions. CSMA/CA worked before them; DCF packaged them together for efficiency [5].

The integrated DCF state machine

The book figure V01 (v01_dcf_protocol.svg) captures the complete DCF protocol in two panels. The top panel shows the state machine: IDLE leads to SENSE, then DIFS_WAIT, then BACKOFF, then TRANSMIT, then ACK_WAIT, which resolves to either SUCCESS or COLLISION. On success, CW resets to CW_min and the station returns to IDLE. On collision (ACK timeout), CW doubles and a new random backoff is drawn from the larger window.

The bottom panel shows the timeline. Station A transmits a frame: DIFS wait, then backoff countdown, then transmission, then SIFS, then ACK. Station B is backlogged too, but its backoff counter freezes during A’s transmission and resumes after A completes. This counter-freeze mechanism is the fairness guarantee — B’s earlier wait is preserved across interruptions.

Every enhancement from the preceding sections appears in the figure. SIFS is shorter than DIFS, so the ACK fires before new attempts. BEB is the red arrow labeled “CW = [0, 2^k - 1], k++.” The backoff counter decrements one slot at a time. Station B’s “Backoff frozen” box during A’s transmission shows the freeze mechanism.

The cocktail party mental model

The full DCF protocol reduces to six rules — one sentence each. Thirty people in a room, one bartender (the AP), no moderator.

First, listen. If anyone is talking, stay quiet — this is carrier sense. Second, when silence falls, do not rush. Count to a polite pause — DIFS, roughly 34 microseconds — this is inter-frame spacing. Third, roll a random die (0 to CW) and count that many short beats. If someone else starts talking mid-count, freeze and resume later — this is random backoff with freeze. Fourth, talk when you hit zero and say your whole sentence — transmit the entire frame. Fifth, wait for the bartender’s “got it.” The bartender replies after a shorter pause — SIFS, roughly 16 microseconds. That shorter pause is the only reason their reply wins over anyone else trying to start a new sentence — this is ACK priority via timing. Sixth, if no “got it” comes back, assume you collided. Roll a bigger die next time, doubling on each failure — this is BEB.

Every piece of this lecture — SIFS, DIFS, BEB, NAV, RTS/CTS, the 12 ms feedback loop, the four challenges — is a zoom-in on one of these six rules.

One caveat: hidden terminal is not in the six rules. Rule one (“listen”) assumes your listening tells you the truth about the medium at the receiver’s location. When it does not, RTS/CTS plus NAV is an optional add-on — covered because it is a classic and pedagogically rich story, but it lives outside the six-rule skeleton.

Bianchi (2000): the throughput ceiling is real

Even with all DCF enhancements in place, a fundamental ceiling remains. Bianchi quantified it in 2000, addressing Challenge 4 — density collapse [6].

The setup: n stations, all backlogged, all using DCF. Each station transmits in any given slot with stationary probability tau — a function of CW and collision probability p. The definition of tau matters: it is the per-slot stationary probability that a station transmits, not a “first-attempt probability.” It is a snapshot: in this one slot, is station i’s backoff counter at zero? [6]

At low load, the approximation is simple: tau is approximately 2 / (CW_min + 1). For CW_min = 15, that gives tau of approximately 0.125. This approximation holds only when collision probability p is near zero. At high n, BEB grows the average CW far beyond CW_min, and the real stationary tau is much smaller than the low-load approximation.

The collision probability per attempt is p = 1 - (1 - tau)^(n-1). Bianchi’s analytical model gives the saturated throughput as the ratio of successful payload time to the sum of idle slots, successful transmissions, and collision transmissions:

\[S = \frac{\text{successful payload time}}{\text{idle slots} + \text{successful TX} + \text{collision TX}}\]

The results for 802.11b (CW_min = 31, slot = 20 microseconds, frame = 1500 B) trace a clear decline [6]:

n (stations)Approx. throughput
5~78% of PHY rate
15~65%
30~50%
50~35%
100~15%

Two regimes are visible. At low n (ten or fewer stations), PHY rate dominates and MAC overhead — not collisions — is the bottleneck. At high n (above thirty stations), collisions grow faster than BEB can compensate. Throughput degrades structurally.

The ceiling at roughly 40-55% when n reaches 50 is not a bug — it is the equilibrium of a slow control loop trying to manage many independent contenders with stale feedback. This is structural, not implementational: you cannot fix it by tuning CW_min, choosing better backoff distributions, or improving carrier sensing [6].

The cascade continues: a framework checkpoint

Lecture 5 ended at CSMA/CD. Wireless could not do CD, so the cascade bent. The following table traces the full evolution:

GenerationShared StateThroughputLoop closes inKey Failure
Pure ALOHANothing18.4%Vulnerable window = 2T
Slotted ALOHASlot timing36.8%Bistable instability
CSMABusy/idle (local)80-90%tau (~5 us)Hidden terminal
CSMA/CD (wired)Collision signal~95%51.2 us(Wired only)
CSMA/CA (principle)ACK from receiverN/A~12 ms @ 1 MbpsBackoff, ACK vuln., hidden, density
+ DCF (1997)+ SIFS/DIFS + BEB + NAV~30% at n=50~12 ms / attemptDensity (irreducible)

The trade is clear: wireless got a working protocol, but its feedback loop is frame-time-bounded — roughly 250 times slower than Ethernet’s propagation-bounded loop. DCF’s enhancements address three of the four challenges. Density is structural [1][2][5][6][7].

The invariant evolution table tells the same story from a different angle:

ProtocolStateTimeCoordinationInterface
Pure ALOHANoneContinuous TXDistributedBroadcast
Slotted ALOHA+ Slot boundarySlottedDistributed+ Slot timing
CSMA+ Busy/idle (local)SlottedDistributed+ Listen-before-talk
CSMA/CD (wired)+ Collision signalus detectionDistributed+ Abort + jam
CSMA/CA (principle)+ ACK presenceFrame-TX boundedDistributed+ Link-layer ACK
+ DCF (1997)+ CW history + NAVPrescribed us slotsDistributed+ SIFS/DIFS/RTS/CTS

The pattern across the table is striking. State kept growing at every step — each generation added one more piece of shared or inferred knowledge. Time got more structured (continuous, then slotted, then microsecond-prescribed) but stayed locally governed. Coordination remained fully distributed through the entire evolution. No generation introduced a central authority. Interface grew richer as more control frames appeared — ACK, RTS, CTS, Duration fields.

The ceiling is a coordination limit, not a state limit. Adding more state has diminishing returns — the next step requires changing who decides. This is the intellectual bridge to Lecture 7: breaking the ceiling means centralizing coordination [6].

The coffee shop at peak load

Consider one AP serving 40 devices: 20 laptops streaming video (continuous large frames), 15 phones browsing (small bursts, lots of ACKs), and 5 IoT sensors posting telemetry (tiny, infrequent). Throughput feels bad to everyone.

Rank the four challenges by severity in this setting. Density collapse (Challenge 4) dominates — 40 stations is well past Bianchi’s inflection point, and pure DCF throughput collapses to roughly 15-20% [6]. Hidden terminal (Challenge 1) comes next — in a coffee shop with pillars, walls, and different tables, clients on opposite ends of the AP’s range are likely hidden from each other [1]. ACK vulnerability (Challenge 3) follows — 15 phones each generating many small browsing transactions means many ACKs, each potentially colliding with other clients’ new attempts [5]. Backoff collisions (Challenge 2) rank last — BEB is working, but at high CW it means long waits rather than avoided collisions.

The insight the scenario drives toward: any fix that scales to this density needs someone who sees the aggregate. The only entity with that view is the AP. The protocol evolves toward centralization — which is Lecture 7’s story. WiFi shipped DCF in 1997 and survived twenty years on it. It survived because the deployment context from 1997 to 2010 was sparse — five to ten devices per AP, where DCF works fine. The ceiling did not bite until smartphones. The alternative was either faster feedback (impossible in a distributed system) or centralization (the AP becomes a scheduler). 802.11ax took the second path. Cellular was always there.


References

[1] F. A. Tobagi and L. Kleinrock, “Packet Switching in Radio Channels: Part II — The Hidden Terminal Problem in Carrier Sense Multiple-Access and the Busy-Tone Solution,” IEEE Trans. Communications, vol. COM-23, no. 12, pp. 1417-1433, Dec. 1975.

[2] L. Kleinrock and F. A. Tobagi, “Packet Switching in Radio Channels: Part I — Carrier Sense Multiple-Access Modes and Their Throughput-Delay Characteristics,” IEEE Trans. Communications, vol. COM-23, no. 12, pp. 1400-1416, Dec. 1975.

[3] P. Karn, “MACA — A New Channel Access Method for Packet Radio,” Proc. 9th ARRL Computer Networking Conference, pp. 134-140, 1990.

[4] V. Bharghavan, A. Demers, S. Shenker, and L. Zhang, “MACAW: A Media Access Protocol for Wireless LAN’s,” Proc. ACM SIGCOMM, pp. 212-225, 1994.

[5] IEEE, IEEE Std 802.11-1997: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, 1997.

[6] G. Bianchi, “Performance Analysis of the IEEE 802.11 Distributed Coordination Function,” IEEE Journal on Selected Areas in Communications, vol. 18, no. 3, pp. 535-547, March 2000.

[7] R. M. Metcalfe and D. R. Boggs, “Ethernet: Distributed Packet Switching for Local Computer Networks,” Communications of the ACM, vol. 19, no. 7, pp. 395-404, July 1976.