Imagine a dinner party where everyone shares one microphone lying in the middle of the table. If two guests grab it and speak at once, neither is understood — the words collide into noise, and both have wasted their breath. There is no chairperson. Somehow the guests must invent their own etiquette for taking turns, using nothing but what they can hear. This is, almost exactly, the problem a shared broadcast medium poses to a link layer.
A
Every multiple-access protocol ever devised falls into one of three strategies. Each makes a different bet about traffic, and each shines under different load.
The random-access family is a ladder of increasingly clever manners, each rung fixing a flaw in the one below.
ALOHA (Norm Abramson, Hawaii, 1970) is the ancestor and the simplest: when you have a
frame, send it immediately; if it collides (no acknowledgement comes back), wait a random time
and retry. Delightfully simple, but two frames overlap if they merely touch at any point, so
each frame is vulnerable for twice its own duration. Its peak throughput is a dismal
CSMA — carrier-sense multiple access — adds the obvious human courtesy: listen before you talk. Sense the channel; if it is busy, wait. This cuts collisions dramatically, but does not abolish them, because of propagation delay: two stations can both sense an idle channel at nearly the same instant, both begin, and only discover the clash once their signals meet in the middle. The further apart they are, the wider this blind window.
The chart plots throughput
Classic wired Ethernet adds one more refinement: collision detection (CSMA/CD). Because a station on a wire can listen while it transmits, it can compare what it hears on the medium to what it is sending. The moment those differ, a collision is in progress — so abort immediately rather than wastefully finish the doomed frame. A short "jam" signal makes sure every station sees the collision, then everyone backs off. Detecting and aborting in microseconds, instead of transmitting a whole ruined frame, is what let Ethernet run efficiently on a shared cable.
But how long should a station wait before retrying? Wait too little and the same stations
collide again; wait a fixed time and every colliding station retries together forever. Ethernet's
answer is binary exponential backoff: after the
Radio changes the rules. On a wire a station can compare send-versus-hear, but a radio's own transmitter is so much louder than any distant signal that it cannot hear a collision while transmitting — its own outgoing signal drowns everything out. So Wi-Fi cannot do collision detection. Instead it does collision avoidance (CSMA/CA): sense the channel, wait a random backoff even when idle to desynchronise waiting stations, and use explicit ACK frames — because a sender can't tell a collision from a fade, silence is the only signal that something went wrong.
Radio also suffers the hidden-terminal problem. Stations A and C can both reach the access point B, but a wall (or sheer distance) means A and C cannot hear each other. Each senses the channel idle, both transmit to B, and their frames collide at B — yet neither A nor C ever sensed a problem. Carrier sensing failed because the "carrier" they needed to hear was invisible to them.
The fix is a brief handshake: a sender first transmits a tiny RTS (request-to-send); the access point answers with a CTS (clear-to-send) that everyone in range hears — including the hidden station — which then holds off for the announced duration. A few bytes of reservation prevent a whole frame's worth of collision.
A tempting mistake is to assume Wi-Fi works like wired Ethernet — sense, transmit, and abort if you hear a clash. It can't. A half-duplex radio transceiver cannot meaningfully listen to the faint channel while its own transmitter is blasting away, so collision detection is physically impossible on radio. That single fact is why the wireless protocol is CSMA/CA (avoidance) rather than CSMA/CD (detection): it leans on pre-transmission backoff, explicit ACKs, and RTS/CTS to dodge collisions, because it has no way to catch them mid-frame. If you ever write "Wi-Fi uses CSMA/CD," you have swapped the two worlds.
A shared medium needs a way to say who a frame is for. That is the MAC address
— a 48-bit identifier (written like 00:1B:44:11:3A:B7) burned into every network
interface at manufacture, globally unique, the first half naming the vendor. Every frame carries a
destination and source MAC; a station's card matches the destination against its own address (or the
all-ones broadcast address FF:FF:FF:FF:FF:FF) and discards the rest.
But applications address each other by
They live on different layers and answer different questions. A MAC address (layer 2) is a fixed, flat name for a physical interface — it never changes as the device moves, and it is only meaningful on the local link; routers strip and rewrite it at every hop. An IP address (layer 3) is a topological, hierarchical name that says where you are in the network, so packets can be routed across the whole internet, and it changes when you join a new network. A frame crossing five routers keeps the same source and destination IP end to end, but carries a fresh pair of MAC addresses on every one of its six link-layer hops. ARP is exactly the bridge between the two.