Circuit vs Packet Switching
The choice the internet made, shown as the same three conversations sharing one link two different ways.
Skip to the animationCircuit switching reserves capacity along a path before any data moves, so the rate is guaranteed and idle time is wasted; packet switching sends self-contained packets with no reservation at all, so capacity is never wasted and nothing is guaranteed.
Circuit switching
Before a single byte of data is sent, a setup phase walks the path from sender to receiver. Each switch along the way reserves capacity and records that traffic on this circuit leaves by that port. Only once the far end agrees does data start to flow, and at the end a teardown releases everything.
- The rate is guaranteed for the life of the call — nothing another user does can slow you down.
- Delay is constant, because there is no queueing: your capacity is always free when you want it.
- Switches are simple and fast — no per-packet decision, just a lookup of which circuit this is.
- Data arrives in order, since every bit follows the same physical path.
The cost is that a reservation cannot tell a pause from an ending. Computer traffic is bursty — a request, a long silence, a reply — so the reserved capacity sits idle most of the time. And when everything is reserved, a new caller is blocked outright rather than being served slowly.
Packet switching
Chop the message into packets, put the full destination address on each one, and send. There is no setup and nothing is reserved. Each switch receives a whole packet, decides where it goes, and forwards it — which is why the technique is called store and forward.
Because nobody owns capacity, whenever one sender pauses another gets the whole link. This is statistical multiplexing, and it is the reason a link can be sold to far more users than it could ever serve at once: bursty senders are rarely all busy simultaneously.
Statistical multiplexing is a bet on traffic patterns, not a guarantee. When the bursts do coincide, queues fill and packets are dropped — the loss is the deferred cost of the efficiency.
Store and forward, and where the delay comes from
A switch cannot start forwarding a packet until it has all of it, because it cannot verify the checksum otherwise. So each hop costs one full transmission time before anything moves on.
- Transmission delay — pushing the bits onto the link: packet size ÷ bandwidth.
- Propagation delay — the bits travelling the distance: length ÷ speed of signal. Buying a faster link does not change this.
- Queueing delay — waiting behind other packets. The only variable one, and the one congestion is made of.
- Processing delay — checking the header and looking up the route. Small, and usually ignored.
Sending L bits over N identical hops takes N × (L ÷ R) plus propagation — the classic exam calculation, and the direct consequence of store-and-forward.
Message switching, for completeness
The historical middle option: store and forward the whole message rather than packets. No reservation, so it shares links, but a switch must hold an entire message before passing it on — so delay is enormous and every switch needs a big disk. Packets are just message switching with a size limit, and that limit is what makes pipelining across hops possible.
The comparison, in the form it is usually asked
| Circuit | Packet | |
|---|---|---|
| Setup before sending | yes | no |
| Capacity reserved | yes, for the whole call | never |
| Path per unit of data | one fixed path | may differ per packet |
| Address carried in data | no — circuit id only | yes, full destination |
| Delay | constant | variable |
| Order of arrival | guaranteed | not guaranteed |
| Under overload | new calls blocked | everyone slows, packets dropped |
| Efficiency with bursty traffic | poor | high |
| Switch complexity | low | higher — a decision per packet |
Why the internet chose packets
Data traffic is bursty, and reservation punishes burstiness. But the deeper reason is architectural: with no per-connection state in the switches, a router can fail and traffic simply routes around it, because everything needed to deliver a packet is written on the packet.
The guarantees were not abandoned, only moved to the edges. TCP notices a missing packet and asks again; the routers never knew there was a connection. Keeping the network simple and the hosts clever is the end-to-end argument, and it is the single decision the rest of this subject is built on.
Advantages and disadvantages
Advantages
- Packet switching: no idle reserved capacity, so a link carries far more users.
- Packet switching: no setup delay — the first packet leaves immediately.
- Packet switching: no per-connection state in switches, so failures are routed around.
- Circuit switching: guaranteed rate and constant delay, which real-time media likes.
Disadvantages
- Packet switching: variable delay, reordering and loss, all of which the ends must repair.
- Packet switching: per-packet header and per-packet routing decision is pure overhead.
- Circuit switching: capacity is wasted whenever the sender pauses.
- Circuit switching: setup delay before anything is sent, and blocking when full.
Watch it work
Check yourself
question 1 / 4
One question at a time. Pick an answer to see why it is right or wrong, then move on — there is no score to keep and nothing is saved.