JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Who Talks Now? The Multiple-Access Problem

The last three guides got one frame safely from A to B over a single wire. But what if the wire is shared by a whole crowd? When everyone can shout at once, you need rules for who talks now. Meet the multiple-access problem and the three classic families that solve it.

Two kinds of link, and why one is hard

So far in this rung we have quietly assumed a point-to-point link: one sender on one end of a wire, one receiver on the other, and nobody else. On that kind of link the question of who gets to talk never comes up, because there is only one talker. Framing, the CRC, and the sliding window all just work, hop by hop. The phone cord from your house to the exchange is like this.

But a huge fraction of real links are broadcast links: a single shared medium that many machines connect to, where one machine's signal reaches everyone. Early Ethernet on a shared coaxial cable was exactly this. So is Wi-Fi, where the air around an access point is one channel everyone breathes. Picture a quiet meeting room with no chairperson: any number of people can speak, but the moment two speak at once, both voices garble into noise and nobody understands either. That garbling is called a collision, and it is the whole problem.

Coordinating who may transmit on a shared medium is the job of the MAC sublayer, the lower half of the data-link layer. The MAC in media access control is not about addresses yet (that is guide 5); it is the referee deciding access to the channel. A set of rules for that refereeing is a multiple-access protocol, and over the decades engineers found three genuinely different philosophies for it.

Family one: partition the channel so nobody ever collides

The first instinct is to make collisions impossible by handing each talker a private slice of the channel in advance. There are two natural ways to slice. With time-division you give each station its own repeating time slot, like a round-robin where everyone gets a fixed turn to speak even if they have nothing to say. With frequency-division you give each station its own frequency band, like assigning every conversation a different radio station so they can all talk at once without overhearing each other. These are the same time-division and frequency-division multiplexing ideas you met in the physical layer rung, now used to keep peace among many talkers.

Channel partitioning is wonderfully fair and totally collision-free, and that is exactly why it is used where load is steady and heavy, like the backbone trunks between phone switches. But it has a fatal flaw for bursty traffic. Suppose ten stations share a 10 Mbps channel, split into ten equal slices. Each station is forever capped at 1 Mbps, even when the other nine are idle. The channel sits nine-tenths empty while one station crawls. For computers, which talk in sudden bursts and then go silent for ages, that waste is unbearable.

Family two: just talk, and recover from collisions

The opposite philosophy is random access: hand out no slices at all, let any station transmit a full-rate frame whenever it has one, and accept that two frames will sometimes overlap and collide. The bet is that on bursty traffic collisions are rare, so most of the time a station gets the whole channel to itself. The job of a random-access protocol is what to do when a collision does happen: detect it, and have each loser wait a different random amount of time before trying again, so they do not just collide all over again in lock-step.

The grandparent of all random access is ALOHA, built in the early 1970s to link the Hawaiian islands by radio. Pure ALOHA is almost recklessly simple: when a frame arrives from the upper layer, send it immediately; if you do not get an acknowledgment back, assume it collided, wait a random time, and resend. No listening, no slots, no coordination. It works, and it taught the whole field how random access behaves, but its efficiency is humbling.

Pure ALOHA  -- a frame collides if ANY other frame starts during a 2-frame window:

  ...|---- frame X ----|...
  ...........|---- frame Y ----|...   <- overlap! both X and Y are lost

Best-case channel use:
  Pure ALOHA    ~ 18%   (vulnerable window = 2 frame times)
  Slotted ALOHA ~ 37%   (force starts onto slot edges -> window = 1 frame time)
ALOHA's vulnerable window is why so much of the channel is wasted; aligning sends to fixed slots halves the window and roughly doubles the usable throughput.

Why so low? A frame is wrecked if any other frame begins during a window of two frame-times around it: one frame-time before (someone already started and you crash into them) and one after (someone starts before you finish). Slotted ALOHA adds one rule, forcing every transmission to begin only at the edge of a shared time slot. That removes the half of the window where a frame could start mid-way through yours, shrinking the danger zone to one frame-time and roughly doubling efficiency to about 37 percent. The next guide's CSMA pushes far higher by adding one more humble habit: listen before you speak.

Family three: take turns by passing a permission

Partitioning is fair but wasteful when idle; random access is efficient when quiet but melts down under heavy load, because the busier the channel the more often everyone collides. The third family, taking turns, tries to get the best of both: be efficient like random access when only one station is busy, yet stay collision-free and fair like partitioning when everyone is busy. The idea is to make stations hand a single permission around so only the holder may speak.

There are two shapes of this. In polling, a master node invites each station in turn, like a teacher going around the table asking each child if they have anything to add; a station with nothing to send is skipped quickly. In token passing, there is no master at all: a tiny control frame called a token circulates, and you may transmit only while you hold the token, then you pass it on. Token Ring and FDDI worked this way. The walkthrough below makes the token version concrete.

  1. A single token frame circulates around the stations in a fixed order, like a baton passed hand to hand around a circle.
  2. A station with nothing to send simply forwards the token to its neighbour the instant it arrives, so an idle ring spins fast and wastes almost nothing.
  3. A station that does have a frame grabs the token, transmits its frame (it now owns the whole channel with zero collision risk), then releases the token onward.
  4. Because only the token holder may speak, two frames can never overlap, so efficiency stays high right up to full load instead of collapsing.

Choosing a family, and an honest caveat about wireless

Step back and the three families line up by what they optimise. Channel partitioning is collision-free and fair, ideal under steady, heavy load, but wasteful when traffic is bursty. Random access gives a lucky station the full channel and is brilliantly efficient at low load, but degrades as collisions pile up under heavy load. Taking turns is the careful compromise: collision-free and fair, efficient across the range, at the cost of overhead and a fragile dependence on the token or master. No family is best everywhere; the right choice is the one matched to how the traffic actually behaves.

One honest warning before the next guide. Random access leans on a station's ability to notice a collision, and on a wire that is easy: a transmitter can listen to its own signal and hear the garble, which is how wired Ethernet's CSMA with collision detection works. But a radio cannot do this. While a Wi-Fi card is transmitting, its own outgoing signal is millions of times stronger than any incoming one, so it is effectively deaf and literally cannot hear a collision happening. That single physical fact is why Wi-Fi uses collision avoidance rather than detection, and it is the first thing the next guide untangles.