Circuit, Packet & Cell Switching
Switching systems differ in when they allocate resources, how much data they buffer before forwarding, and whether intermediate nodes keep per-connection state. This entry compares circuit, message, datagram, virtual-circuit, and fixed-cell designs through delay, utilization, isolation, and failure behavior.
Switching is the act of moving traffic from an input toward an appropriate output. The major families differ along three independent axes: resource reservation, transfer unit, and state held inside the network. Treating “circuit versus packet” as one binary choice hides important hybrids.
The design space #
| Mechanism | Resource allocation | Forwarding unit | Network state | Characteristic behavior |
|---|---|---|---|---|
| circuit switching | reserved before transfer | continuous bit stream or scheduled slot | connection and reserved path | predictable service after setup; idle reservations waste capacity |
| message switching | acquired hop by hop | whole message | queue/storage state | tolerates interrupted paths; large messages create large storage delay |
| datagram packet switching | statistical, per packet | bounded packet | little or no per-flow forwarding state | flexible rerouting and sharing; variable queueing and possible reordering |
| virtual circuit / label path | statistical or reserved | packet/cell with short path identifier | path state at intermediate nodes | cheap forwarding and traffic engineering; setup/state recovery required |
| fixed-cell switching | usually virtual-circuit based | fixed-size cell | connection/path state | bounded serialization and simpler hardware scheduling; cell tax and segmentation |
Circuit switching #
A circuit system performs setup, reserves a path or periodic resource allocation, transfers payload, then releases it. If a flow is entitled to rate throughout its holding time, other traffic cannot consume that allocation even while the source is silent. This isolation gives a simple service model but poor utilization for bursty traffic.
Circuit setup delay is paid before useful data. Once established, queueing inside the reserved schedule can be small and bounded. A failure usually breaks the circuit until protection or a new path is established; the connection state itself is part of recovery.
Modern circuits need not be an analog copper path. Optical wavelengths, time slots, and deterministic scheduled resources are circuit-like whenever capacity is committed to a connection in advance.
Store-and-forward and message switching #
In pure store-and-forward, a node receives a complete unit before transmitting it. For a unit of bits on a link of rate , serialization alone costs
Across equal-rate hops with no overlap, complete-unit store-and-forward contributes roughly , before propagation, processing, and queueing. Packetization reduces the unit size and permits pipelining: after the first packet advances, different links can transmit different packets of the same message simultaneously.
Delay-tolerant networking deliberately returns to persistent whole-bundle storage when an end-to-end path may not exist at one instant. Here storage is not a historical accident; it is the mechanism that spans disruption.
Datagram packet switching #
IP offers a datagram service: each packet contains destination information and can be forwarded without establishing a circuit first. Packets from many flows statistically share each link. When aggregate arrivals temporarily exceed service capacity, a queue forms; if buffering or policy is exhausted, packets are dropped.
For packet on one hop,
Propagation and serialization have physical lower bounds. Queueing is workload-dependent and can dominate near saturation. Statistical multiplexing is efficient precisely because it loans idle capacity between flows; that same sharing makes per-packet delay variable without additional scheduling and admission control.
Packets can follow different paths after a topology change, so delivery may be lost, duplicated, or reordered. Higher layers must use only the service actually promised, not circuit assumptions projected onto a datagram network.
Virtual circuits and labels #
A virtual-circuit system establishes forwarding state first. Each subsequent unit carries a compact local identifier; intermediate nodes map incoming interface and label to outgoing interface and label. The physical resource may still be statistically shared—virtual circuit does not mean dedicated bandwidth.
Per-path state enables explicit traffic engineering, quality-of-service policy, and quick forwarding lookup. It also creates lifecycle work: admission, label allocation, refresh or persistence, failure recovery, and teardown. A control-plane partition can leave stale data-plane state even when links are healthy.
Why fixed cells existed #
ATM standardized a 53-byte cell: a 5-byte header and 48-byte payload. A fixed small unit bounded the time a long low-priority transfer could occupy an output and simplified high-speed switching hardware of its era. The tradeoff is visible:
before higher-layer adaptation overhead. Large packets must be segmented into many cells; losing one cell can damage a much larger reassembled unit. Current IP/Ethernet networks generally use variable-size packets and frames, while fixed-size scheduling units survive inside some hardware and transport systems for different implementation reasons.
Choose by workload and failure contract #
- Use reservation when isolation and bounded service matter enough to justify admission and idle capacity.
- Use statistical sharing when sources are bursty and aggregate efficiency matters, then design queues, scheduling, and congestion response explicitly.
- Use path state when traffic engineering or fast local forwarding warrants its lifecycle and recovery cost.
- Use persistent store-and-forward when connectivity itself is intermittent.
- Measure setup, serialization, propagation, queueing, and recovery separately; a single “network latency” number cannot reveal which switching choice caused it.
The useful comparison is not which family is universally superior. It is which resource promise the system makes, where it keeps state, how it behaves under overload, and what must be rebuilt after failure.