Two questions decide whether a network feels good: how long does a packet take to get there, and how many bits per second can I actually push? The first is delay (latency); the second is throughput. They sound like the same thing — "fast" — but they are almost independent, and confusing them is the root of more bad networking intuitions than anything else. A transatlantic fibre link can have enormous throughput and still make a video call laggy; a satellite link can have huge capacity and feel unusable for a phone call. This page pins down exactly where the time goes and exactly what limits the rate.
The plan: dissect the delay a single packet suffers at one router (four distinct sources), settle the classic transmission-vs-propagation confusion once and for all, watch queues fill and packets drop, and then switch from one packet to a stream — where throughput, the bottleneck link, and the "bits in flight" of the bandwidth–delay product take over.
Follow one packet as it passes through one router on its journey. The total time it spends there — the nodal delay — is the sum of four separate contributions, and it pays to keep them strictly apart because they scale with completely different things.
The two that people conflate are the middle pair, transmission and propagation. They deserve their own section — but first, an analogy that makes all four click.
Picture a caravan of ten cars (a packet of ten bits) driving down a motorway with a toll booth every so often (a router). Each toll booth takes 12 seconds to service one car — that is the transmission of one bit onto the road: the booth must "push" each car through before the next can go. Servicing all ten cars takes 120 seconds. The cars then drive the 100 km to the next booth at 100 km/h, taking one hour — that is propagation: pure travel time over distance, independent of how fast the booth works.
The analogy nails the key asymmetry: transmission is "how fast can I get the bits onto the road", propagation is "how long is the road." A short fat road and a long thin road behave completely differently, even at the same "speed."
Nothing dissolves this confusion like plugging in numbers. Send one 8,000-bit packet (1 KB) two ways: over a short, slow link and over a long, fast one. Run it and read the two breakdowns.
On the slow-short link, transmission (8 ms) dwarfs propagation (0.05 ms): the bottleneck is
pushing bits onto a thin pipe. On the fast-long link the picture flips completely —
propagation (25 ms) dwarfs transmission (0.008 ms): the pipe is fat, but the ocean is wide and
light is not instantaneous. Same packet, opposite stories. That is why "just buy a faster link" often
does nothing for latency: if you are propagation-bound, a bigger
The single most common delay mistake: assuming that a "faster" link (higher bit-rate
Concretely: a 1 Gb/s and a 100 Gb/s link across the Atlantic have essentially the same one-way delay for a small packet, because both are dominated by the ~30 ms it takes light to cross the ocean. Bandwidth buys you throughput (bits per second), not latency (time for one bit to arrive). A gamer on a fibre line in Sydney playing on a European server will never get below the round-trip light-speed floor, no matter how many gigabits they pay for. Keep the two terms in separate mental boxes: rate fixes transmission, distance fixes propagation.
Queuing delay is the wild card. It depends on the traffic intensity at the link, the dimensionless ratio
where
The curve below is the shape every network engineer carries in their head: queuing delay stays flat and boring until traffic intensity nears 1, then explodes. This is why a link that is "80% utilised" can feel fine and the same link at "98% utilised" feels broken — you are riding up the knee of this curve.
And when the queue is full? A router's buffer is finite. A packet that arrives to find no free
buffer space has nowhere to go — the router simply drops it. That is
packet loss: not corruption, not a wrong turn, just a full waiting room and no seat. The
lost packet must be detected and
Delay describes one packet. When you download a file you care about a stream of them, and the right measure is throughput: the rate, in bits/second, at which bits actually arrive at the receiver. It is tempting to equate this with "bandwidth," but they differ:
Why less? Because a path is a chain of links, and a chain is only as fast as its weakest link.
If bits flow from server to you through links of rates
That slowest link is the bottleneck. A gigabit server link and a gigabit backbone are wasted if your home link is 50 Mb/s — you will get about 50 Mb/s, and the fat links upstream sit idle. This is why upgrading a fast part of the path changes nothing: you have to find and widen the bottleneck. (It is also why one heavy user can starve a shared bottleneck for everyone behind it.)
Several culprits, all of which the "min of the links" rule hides at first glance. The
bottleneck might not be your link — the server, or some congested link in the
middle, may be slower right now. Throughput is also shared: if the bottleneck carries
One more quantity ties delay and throughput together, and it is the one that governs how fast protocols can actually go: the bandwidth–delay product (BDP). First, the round-trip time (RTT) is the time for a small packet to travel from sender to receiver and back — dominated by propagation, so it is essentially fixed by distance. A ping across a city might be 5 ms; across an ocean, 150 ms; via a geostationary satellite, ~500 ms.
Now multiply a link's bandwidth by the connection's RTT:
This is the number of bits "in flight" — the amount of data that can be travelling down the pipe at any instant before the first bit's acknowledgement can possibly come back. Picture the link as a physical pipe: bandwidth is its cross-section (how many bits fit per metre), RTT stands in for its length, and the BDP is the pipe's volume — how many bits it holds when completely full.
The consequence is profound: to keep a link busy, a sender must have at least a whole BDP of unacknowledged data outstanding. Send less and the pipe runs half-empty — you waste capacity waiting for ACKs. This is exactly why a protocol's window size must be at least the BDP to reach full throughput, and why "long fat networks" (high bandwidth × high RTT — think transcontinental gigabit links) demand large windows. Compute one to feel the size:
Notice the transatlantic gigabit link needs nearly 19 MB of data in flight to stay full — far more than a default TCP window, which is why bulk transfers over long fast paths need window scaling. The BDP is the bridge between our two headline quantities: it is literally bandwidth (throughput) multiplied by delay.