20  Packet Switching and Performance

networking-core
network
mech
packet

20.1 Start With Many Small Decisions

Packet switching works because a long conversation is split into small pieces that can be forwarded independently. Each hop makes a local decision using addresses, tables, queues, and current load.

For IoT, those small decisions shape reliability and delay. A firmware update, alarm burst, or camera stream can all share a network, but only if the switching path has enough evidence to forward, queue, and recover without hiding failure.

Packet Pete, the networking guide

Packet Pete

“A packet you can’t trace is a claim you can’t defend — name the address, the route, and the hop that dropped it.”

Through this chapter, Pete follows each packet hop by hop: the header picks the route; the queue, retry, or drop explains the delay.

Overview: Shared Links, Independent Packets

Packet switching breaks a message into packets and lets each packet move through the network as its own forwarding unit. A router does not need to know the full application conversation. It reads delivery fields in the packet header, chooses a next hop, and sends the packet onward.

This is why packet switching fits IoT systems. Sensors, cameras, gateways, phones, and cloud services rarely need a private circuit for every conversation. They need a shared network that can carry bursts from many devices, then free the link for the next burst.

The sharing works because most devices are not transmitting at full rate all the time. A sensor may send a few bytes each minute, a camera may burst when motion is detected, and a gateway may forward a short acknowledgement between larger uploads. Packet switching lets those bursts statistically multiplex on the same physical and logical links. It does not promise that every packet will take a different path, and it does not promise instant delivery. It promises that each packet carries enough forwarding information for the next router or gateway to make a local decision when capacity is available.

A useful mental shift is to compare a telephone exchange with a shared packet medium. In the circuit-switched model, a switchboard, crossbar, or central office selects a conversation path and holds that circuit while Alice and Bob talk. In a packet-switched or shared-link model, the medium is not reserved for one pair forever; Bob's packet can occupy the common link for a moment, carry enough addressing information to reach Alice, and then release the capacity for George, Cathy, Doug, a sensor, or a gateway to use next.

Datagram moving from an IoT sensor through routers to a cloud destination
Each router forwards the packet based on header information and its current routing knowledge.

Forward by header

The packet header carries addressing and control information. Routers use that metadata to decide the next hop without opening the application payload.

Share by taking turns

Packets from different devices are interleaved on the same link. A camera frame, a thermostat reading, and an acknowledgement can all use the same path at different moments.

Recover by rerouting

Because packets are forwarded independently, later packets can use a different path when routing changes or a link becomes unavailable.

Multiple IoT data streams interleaved on one shared network link
Multiplexing lets several flows share one link instead of reserving a private channel for each device.
Packets rerouted through an alternate network path after a link failure
Independent forwarding gives the network room to adapt when a path changes.

IoT design habit: treat packet switching as shared infrastructure, not guaranteed private capacity. The packet may arrive, arrive late, arrive out of order, or be dropped. Application behavior should account for those outcomes.

Pete’s Delivery Slip

  • Address: the header carries addressing and control; routers forward without opening the payload.
  • Route: no reserved circuit — each hop decides locally, and later packets can reroute around a failed link.
  • Receipt: none promised; late, out-of-order, or dropped arrivals are the application’s problem to handle.

Practitioner: Plan for Useful Capacity, Not Just Link Speed

A packet-switched link can look healthy on a spec sheet and still disappoint an IoT workload. The practical question is not only "how fast is the link?" It is "how much useful application data arrives on time while other flows, headers, retries, and queues are present?"

Bandwidth, throughput, and goodput shown as progressively narrower measures of network performance
Bandwidth is capacity, throughput is what crosses the link, and goodput is the useful application data after overhead and recovery costs.
Measure
What it means
What reduces it
What to log
Bandwidth
The nominal capacity of the link or radio channel.
Shared media rules, channel width, modulation, duplex limits, and physical impairments.
Interface type, negotiated rate, channel plan, and signal or cable health.
Throughput
The actual rate of bits or bytes delivered across the network path.
Contention, retransmissions, congestion, routing changes, and device processing limits.
Measured transfer rate, retry counts, drops, and retransmission evidence.
Goodput
The application payload rate after protocol overhead and failed delivery attempts are excluded.
Small payloads, verbose encodings, security headers, acknowledgements, fragmentation, and duplicate sends.
Payload size, message rate, header stack, acknowledgement pattern, and useful records received.
Delay and jitter
How long packets take and how much that timing varies.
Output queues, bursty traffic, radio sleep schedules, gateway CPU load, and path changes.
Timestamped send and receive events, queue depth, priority class, and route observations.

Separate small control traffic

Control commands and alarms often need predictable delay more than raw bandwidth. Give them a traffic class, topic, or path that is not buried behind bulk uploads.

Batch only when it helps

Bundling readings can improve goodput by amortizing headers, but it can also increase latency and loss impact. Match batching to the freshness requirement.

Treat queues as evidence

Rising queue depth, delayed acknowledgements, and bursty retries explain many "the link is fast but the app is slow" incidents.

Review question: when a deployment misses a timing target, ask which packets were useful, which were overhead, which were retries, and which waited in a queue. That evidence is more actionable than a bandwidth number alone.

Pete’s Delivery Slip

  • Address: commands and alarms get their own traffic class, topic, or path — not buried behind bulk uploads.
  • Route: the shared uplink, where camera bursts, headers, retries, and queues contend.
  • Receipt: log goodput, retry counts, queue depth, and timestamped send and receive events.

Under the Hood: Forwarding Is a Series of Local Decisions

Packet switching feels end-to-end from the application view, but the network executes it as a chain of local choices. At each hop, a device receives a packet, checks enough metadata to decide what to do, waits for an output opportunity, and either forwards, marks, delays, or drops the packet.

Those local choices depend on tables and state that are smaller than the full application conversation. A router may use a forwarding table, a neighbor cache, a next-hop record, a hop-limit or TTL update, and optional quality-of-service markings. A constrained gateway may also decide whether a packet should cross from a low-power mesh into Ethernet, Wi-Fi, or a cellular backhaul. None of those devices needs to reconstruct the whole sensor workflow. They need enough header evidence to choose the next interface, enough buffer space to wait safely, and enough policy to reject traffic that should not pass.

Receive The interface accepts a frame and performs link-layer checks before handing the enclosed packet to the forwarding path.
Classify The device reads fields such as destination, protocol, priority marking, and ingress interface.
Lookup A forwarding table maps the destination or flow class to an output interface and next hop.
Queue If the output is busy, the packet waits according to buffer limits and scheduling policy.
Forward The packet leaves on the selected interface, often with updated hop metadata.

Store-and-forward

Many devices receive the complete packet before forwarding it. That gives the device a chance to validate the frame and make a forwarding decision before the next hop sees it.

Queues create variable delay

When an output link is busy, packets wait. The wait changes with burst size, scheduling policy, retransmissions, and the traffic already ahead in the buffer.

Drops are part of the contract

If a buffer is full, a link fails, or a policy rejects a packet, the packet can be discarded. Recovery must come from transport or application behavior.

Router Internals: Queues, Backplane, and Planes

A network router is more than one input port and one output port. Physical interfaces receive frames, line cards hold queues and forwarding hardware, and an internal backplane or switch fabric moves packets between those interfaces. A small router may share memory or a bus for this transfer. A high-capacity chassis uses switched fabrics and line cards so several ports can move traffic at once.

Queue placement changes the failure mode. An input-queued router can be simple, but a packet waiting for one busy output can hold packets behind it that were destined for free outputs. That is head-of-line blocking. Output queues avoid that particular block by collecting packets at the egress side, but they require enough fabric and buffer capacity to absorb bursts. Virtual output queues split each input into per-output queues, reducing head-of-line blocking at the cost of more buffer and scheduling complexity.

Keep the control plane and data plane separate in incident notes. The control plane computes routes, learns topology, and updates forwarding tables. The data plane applies those tables at line rate: classify, queue, forward, mark, or drop. A route processor or controller can be healthy while one output queue is congested, and an output queue can be empty while the routing table is wrong. Good evidence names which plane made the decision and where the packet waited.

Decision record for incidents: capture the path, the queue or radio state at each constrained hop, the retry behavior, and the application freshness requirement. That record connects forwarding mechanics to user-visible performance.

Pete’s Delivery Slip

  • Address: the classify step reads destination, protocol, priority marking, and ingress interface.
  • Route: the forwarding table maps destination to output interface and next hop, with hop metadata updated.
  • Receipt: a full buffer, failed link, or policy drop discards the packet — recovery belongs to transport or application.

20.2 Summary

Packet switching lets many IoT flows share the same network by forwarding independent packets instead of reserving a dedicated circuit for each conversation. Routers make local forwarding decisions from packet headers, while queues, retries, overhead, and path changes determine the performance that applications actually experience.

For design reviews, separate bandwidth, throughput, goodput, delay, and jitter. A link can have enough nominal capacity and still fail a control-loop requirement if useful packets wait behind bulk traffic or spend too much of the budget on overhead and recovery.

20.3 Key Takeaway

Packet switching scales IoT because shared links can carry many bursty flows, but shared links also create queueing, overhead, and loss tradeoffs. Measure useful delivered payload and timing evidence, not just nominal link speed.

20.4 See Also