Bandwidth vs Throughput vs Latency vs Jitter
Four words everyone uses interchangeably that measure completely different things. Two of them are rates — bandwidth and throughput, in bits per second. Two are times — latency and jitter, in milliseconds. Rates and times cannot be traded for each other, which is why the most expensive mistake in network performance work is buying more bandwidth for a problem that was never about bandwidth. The question that prevents it: is this workload latency-bound or bandwidth-bound?
Key Components
- Bandwidth
- The maximum rate a link can carry, in bits/sec. It is a ceiling, not a speed: it says how many bits can be in motion side by side, never how quickly any one of them arrives. Quoted in bits (Mbps), while files are measured in bytes (MB) — a factor of 8 apart.
- Throughput
- The rate actually achieved, in bits/sec. Always ≤ bandwidth, pushed below it by header overhead, congestion, packet loss and retransmission, and — less obviously — by latency itself. Throughput is what you measure; bandwidth is what you bought.
- Latency (and RTT)
- The time for data to travel, in milliseconds. It is the sum of four delays: propagation (distance ÷ signal speed, ~200,000 km/s in fiber — a physics floor), transmission (packet size ÷ bandwidth), queuing in router buffers, and processing at each hop. Usually quoted as round-trip time (RTT) — what
pingreports — roughly twice the one-way figure. A workload is latency-bound when its finish time is dominated by round trips, and bandwidth-bound when it is dominated by bits/sec. - Jitter
- The variation in latency from packet to packet, in milliseconds. Average latency can be excellent while jitter is terrible. It is irrelevant to file transfers — TCP reassembles in order and only the total matters — and lethal to real-time media, where irregular arrival becomes audible stutter.
- Bandwidth-delay product (BDP)
BDP = bandwidth × RTT: the amount of data that can be "in flight" at one time. It is the volume of the pipe rather than its width, and it is the one place where a rate and a time multiply into something meaningful. It sets how much a sender must be willing to have unacknowledged before it is forced to stop and wait.
Concrete Example
Take a single satellite internet plan: 200 Mbps bandwidth, 600 ms RTT. One link, one set of numbers, and two workloads that it treats in opposite ways.
Workload A — download a 40 GB game
transfer = 40 GB × 8 = 320,000 Mb ÷ 200 Mbps = 1,600 s
latency = 0.6 s paid once at the start
total ≈ 1,600.6 s → latency is 0.04% of the job
Workload B — a video call
every gesture, word and frame waits a full 600 ms round trip
bandwidth used ≈ 3 Mbps out of 200 available
total → unusable, and 2 Gbps would not change it
The same link is excellent and unusable at once. Nothing about the plan changed between the two runs; what changed is which quantity the work depends on. The download is bandwidth-bound — one round trip amortized over 1,600 seconds of streaming bits. The call is latency-bound — thousands of round trips, each paid in full, using a rounding error of the available capacity.
The same split explains the most common disappointment in consumer networking: upgrading a home connection and finding that the web feels identical. A typical page pulls 80 small resources, and the ones that matter arrive over a handful of sequential round trips:
Page load, 100 ms RTT, resources fetched over 10 sequential round trips
round trips 10 × 100 ms = 1,000 ms ← pure waiting
bytes 2 MB at 100 Mbps = 160 ms
upgrade 100 Mbps → 1 Gbps:
round trips 10 × 100 ms = 1,000 ms ← unchanged
bytes 2 MB at 1 Gbps = 16 ms
---------
total 1,160 ms → 1,016 ms (12% better for 10× the bandwidth)
A tenfold bandwidth increase removed 144 ms from a 1,160 ms page load, because 86% of that page load was never bandwidth at all. It was distance and round trips. This is why so much of modern protocol design is a war on round trips rather than a hunt for capacity: HTTP/2 multiplexing removes serialized requests, connection reuse removes repeated handshakes, TLS 1.3 cuts setup to one round trip, QUIC to zero on resumption, and CDNs attack the RTT itself by moving the content physically closer.
That last one is the deepest point. Propagation delay is distance ÷ ~200,000 km/s, so New York to London is about 28 ms one-way, permanently. No amount of money buys a shorter speed-of-light path. It only buys a shorter distance — which is precisely, and only, what a CDN sells.
Visual Model
Picture a highway between two cities. The number of lanes is your bandwidth — how many cars can travel abreast. The length of the road is your latency — how long any single car takes to get from end to end. The cars actually arriving per hour at the far end is throughput, and how irregularly spaced those arrivals are is jitter.
Now hold the picture and ask the question that settles the whole topic: if you add lanes, does the road get shorter? It does not. You can widen a 3,000 km highway to twelve lanes and every car still drives 3,000 km. That is the entire reason "upgrade to gigabit" so often changes nothing — and the reason the only real fix for a long road is to move the destination closer, which is a CDN.
Drag the two sliders below and watch which numbers move. Adding lanes transforms the bulk transfer and barely touches the interactive page. Shortening the road does the reverse. Watch the third readout especially: with a fixed send window, a long road can cap your throughput far below the lanes you paid for.
Loading…
The third readout is the one that surprises people. A sender may only keep a limited amount of data unacknowledged — a window. If that window is smaller than the BDP, the sender fills the road, stops, and waits for the far end's acknowledgement to travel all the way back before it may send again. With a 64 KB window and a 600 ms RTT, throughput is pinned near 0.9 Mbps no matter how many lanes exist. The road is wide and long, and mostly empty. That configuration has a name: a long fat network, and it is the cleanest proof that latency limits throughput.
Deeper — Edge Cases & Gotchas
Bits versus bytes — the most common practical error
Bandwidth is sold in bits per second; files are measured in bytes. Eight bits to the byte, so the headline number divides by 8 before it means anything about a download:
100 Mbps → 12.5 MB/s (theoretical ceiling)
1 Gbps → 125 MB/s
10 Gbps → 1.25 GB/s
A user reporting "I pay for 100 Mbps but only get 11 MB/s" is seeing correct behaviour: 12.5 MB/s is the ceiling and header overhead takes the rest. The lower-case b and upper-case B are doing all the work in that sentence.
Why throughput sits below bandwidth
Four independent taxes, only one of which is usually noticed:
- Header overhead — every layer adds bytes that are not payload. Small packets pay proportionally more.
- Congestion — the bottleneck is whichever link on the path is narrowest, not the one you bought.
- Loss and retransmission — a lost packet costs its own bytes again, plus at least one round trip of delay.
- Latency itself — via the window-versus-BDP ceiling above. This is the one that gets missed, because it looks like a bandwidth problem and is not one.
Jitter, and the buffer that trades latency to remove it
Two links can both average 40 ms while behaving completely differently: one varying by 2 ms, the other by 35 ms. For a file transfer the two are indistinguishable. For a voice call the second is unusable, because playback needs a packet every 20 ms and a late packet is as bad as a lost one. The standard fix is a jitter buffer: hold arriving packets for a few milliseconds so that late ones catch up and playback stays smooth. Note what it costs — the buffer adds latency to remove jitter, and it must be sized for the worst variation, so higher jitter means a bigger buffer means more delay. That trade is also why QoS exists: give the small, jitter-sensitive voice packets priority in router queues over bulk traffic that would never notice waiting.
RTT versus one-way
Latency is usually quoted as RTT because that is what is easy to measure — ping needs no clock synchronisation between the two ends. One-way delay is roughly half, and it is what a stream of media actually experiences. Interactive protocols pay in RTTs, so budget in RTTs: any handshake, any request-then-response, any acknowledgement is a full round trip.
Symptom: page takes 1.2 s, users complain
Action: upgrade server uplink 1 Gbps → 10 Gbps
Measured: link utilization was 4% before, 4% after
Result: 1.2 s → 1.19 s
The actual profile:
DNS + TCP + TLS setup 3 round trips = 300 ms
sequential resources 7 round trips = 700 ms
bytes on the wire 2 MB @ 1 Gbps = 16 ms ← the only part upgraded
Why it fails: 16 ms of that page load was bandwidth. The remaining 1,000 ms was round trips, and round trips are set by distance and protocol design, not capacity. The two conditions need opposite fixes — a bandwidth-bound workload wants more lanes, a latency-bound workload wants fewer round trips and a shorter road (connection reuse, multiplexing, TLS 1.3, an edge cache). Measure link utilization first: a saturated link is a bandwidth problem, an idle link with a slow page is a latency problem, and only one of them is for sale.
Link A: 25 Mbps, 20 ms RTT Link B: 200 Mbps, 600 ms RTT
"B is 8× faster" → false for every interactive workload
SSH keystroke echo: A 20 ms B 600 ms (unusable)
Video call round trip: A fine B fine as a monologue only
40 GB download: A 3.6 hours B 27 minutes
Why it fails: bandwidth and latency are independent axes, and "fast" names neither of them. A geostationary satellite hop is ~35,800 km each way — the propagation delay is a consequence of orbital geometry, and no capacity upgrade touches it. Specify both numbers, always, and state which one the workload depends on.
See Also
How the Internet Works End-to-End — A Packet's Journey Where the round trips actually come from: DNS lookup, TCP and TLS handshakes, and hop-by-hop forwarding are each a latency cost this entry only counts. Encapsulation & Decapsulation — Segments → Packets → Frames → Bits The header overhead that opens the first gap between bandwidth and throughput — every layer's wrapper is capacity spent on something other than payload.Sources consulted
- Stuart Cheshire, "It's the Latency, Stupid" (1996–97)
Test Yourself
A satellite plan offers 200 Mbps with a 600 ms RTT. Which workload does it serve well, and why?
Two links both average 40 ms latency. Link A varies by 2 ms, link B by 35 ms. Which is worse for a video call, and why doesn't the equal average rescue it?
A 1 Gbps link with a 200 ms RTT is measured at 2.6 Mbps, with no packet loss and an idle path. What would you check first, and what would adding more bandwidth do?