Skip to main content

Delay, Loss & Throughput

A packet does not travel instantly. As it crosses each router on its path it accumulates delay, it may be dropped entirely, and the rate at which a stream of packets arrives is capped by the slowest link along the way. These three ideas - delay, loss, and throughput - are the vocabulary for talking about network performance.

The four sources of packet delay

At each node (router) on the path, a packet suffers nodal delay, the sum of four components:

  • Processing delay - time for the router to examine the packet header and decide where to forward it. Usually microseconds.
  • Queuing delay - time the packet waits in the output buffer behind other packets. Highly variable; grows as the link gets busier.
  • Transmission delay - time to push all of the packet's bits onto the link. Equal to packet size / link rate (L / R). A 1000-byte packet on a 1 Mbps link takes 8000 bits / 1e6 bps = 8 ms.
  • Propagation delay - time for a bit to travel the physical length of the link. Equal to distance / propagation speed (d / s). Across 3000 km at 2e8 m/s that is 15 ms, and it does not depend on packet size at all.

Worked example: total nodal delay

Suppose a 1500-byte (12,000-bit) packet crosses a single router on its way to the next hop, and the outgoing link runs at 100 Mbps over a 800 km fiber run:

  • Processing delay: 0.1 ms (fixed, essentially independent of load).
  • Queuing delay: 2 ms (measured under the router's current load - this is the one component that swings wildly minute to minute).
  • Transmission delay: 12,000 bits / 100,000,000 bps = 0.12 ms.
  • Propagation delay: 800,000 m / (2 x 10^8 m/s) = 4 ms.

Total nodal delay = 0.1 + 2 + 0.12 + 4 = 6.22 ms for that one hop. Chain five similar hops end to end (ignoring, for simplicity, that queuing delay differs at every router) and the packet has already spent roughly 31 ms just getting across the network core, before the receiving application does anything with it. Note how propagation (4 ms) dwarfs transmission (0.12 ms) here precisely because the link is fast but the fiber is long - the opposite would be true on a slow DSL link carrying the same packet only a few km.

Propagation delay ignored on long-haul and satellite links

A geostationary satellite sits at roughly 36,000 km altitude. Round-trip propagation alone is about 2 x 36,000,000 m / (2 x 10^8 m/s) ~= 360 ms, before any transmission, queuing, or processing delay is added. Satellite ISPs advertising "25 Mbps" or "100 Mbps" throughput can still deliver unusable voice and video calls, because throughput and delay are independent axes: the link isn't slow, it's just far away, and no amount of extra bandwidth buys back that distance. Rural, maritime, and in-flight VoIP deployments over satellite backhaul have to budget for this delay floor explicitly; teams that only provisioned for throughput and assumed "fast link means low latency" have shipped video-conferencing products that were unusable over these links until they added local media relays or fell back to lower-latency terrestrial paths.

info

These two are easy to confuse. Transmission delay depends on the packet size and the link rate - how fast you can clock bits onto the wire. Propagation delay depends on the distance and the speed of the medium - how long a bit takes to fly across. A short packet on a long transcontinental link is dominated by propagation; a large packet on a slow local link is dominated by transmission.

Step the sliders below and watch how the total nodal delay is split between the four components:

ProcessingQueuingTransmissionPropagation
Total nodal delay: 26.00 ms
Processing: 1.00 msQueuing: 2.00 msTransmission: 8.00 msPropagation: 15.00 ms
Transmission = packet / rate8000 bits / 1 Mbps = 8.00 ms
Propagation = distance / speed3000 km / 2e8 m/s = 15.00 ms
End-to-end throughputmin(1, 10) = 1 Mbps (bottleneck link)

Packet loss

Every output link has a finite buffer. When packets arrive at a router faster than the link can drain them, the queue grows; when the queue is full, any newly arriving packet has nowhere to go and is dropped. That is packet loss. Loss is not a malfunction - it is the normal signal a packet-switched network uses to tell senders they are pushing too hard, and protocols like TCP react by slowing down.

Throughput is the rate (bits/second) at which data actually arrives at the receiver. For a path made of several links in series, throughput is capped by the slowest link - the bottleneck:

throughput = min(R1, R2, ..., Rn)

Upgrading any link that is not the bottleneck changes nothing. A 1 Gbps home link behind a 50 Mbps access link still delivers at most 50 Mbps. This is why finding and fixing the bottleneck - not adding capacity everywhere - is the key to improving real end-to-end performance.

caution

Throughput and delay are separate axes. A satellite link can have enormous throughput yet punishing propagation delay, while a short link can be low-delay but low-throughput. Optimizing one does not automatically fix the other.