Learn
Lesson · Latency and the Tail · The floors

Latency Is Not Throughput

Latency is how long one round trip takes; bandwidth is how many bits a second the link carries once the answer is flowing. They are two numbers, and their product — the bandwidth-delay product — is how many bytes the wire holds at once. A transfer smaller than that finishes before the pipe is full, and for it the bandwidth figure is very nearly irrelevant.

BDP = bandwidth × RTT the bytes in flight at one instant t = RTT + size/bandwidth one waiting term, one sending term size ≪ BDP latency-bound more bandwidth buys almost nothing size ≫ BDP bandwidth-bound a shorter round trip buys almost nothing 100 Mbit/s × 80 ms = 1 MB 64 kB of it: 85.12 ms, 94.0% of it waiting
Two numbers, and the size at which they trade places

Core ideas

What this lesson establishes

One hard idea, and it is that there are two numbers here rather than one. Everything else on this page is the arithmetic of deciding which of the two you are paying.

1

Latency and bandwidth measure different things

The round-trip time RTT is a duration: how long a signal takes to reach the far end and an answer to come back. Bandwidth is a rate: how many bits a second the link carries once data is moving. Buying a bigger link raises the rate. It does not shorten the distance, so it does not move the duration, and the two can be changed independently of each other.

2

The bandwidth-delay product is the wire’s capacity, in bytes

A rate multiplied by a time is a quantity. 100 Mbit/s × 80 ms is 1 MB: that much data can be on the wire at once, sent and not yet arrived. That is the bandwidth-delay product, and it is measured in bytes rather than in bytes a second, which is what makes it comparable with the size of a transfer.

3

The transfer size decides which term you are paying

Time is RTT + size/bandwidth. Well below the BDP the first term is nearly all of it and the transfer is latency-bound; well above it the second takes over and the transfer is bandwidth-bound. No property of the link settles this on its own. The size does, against the link.

The material

Two numbers, their product, and the transfer that has to choose

What a bandwidth-delay product is a quantity of, and how to read a transfer’s size against it.

Definition · Bandwidth-delay product

The bandwidth-delay product of a link is its bandwidth multiplied by its round-trip time. A rate in bits a second times a time in seconds is a number of bits, so the product is a quantity of data: how much can be in flight — sent, and not yet acknowledged — at any instant.

It is worth doing that conversion once, slowly, because the units are where this goes wrong. 100 Mbit/s is 10⁸ bits a second, which is 1.25 × 10⁷ bytes a second. Eighty milliseconds of that is 10⁶ bytes — one megabyte, reading 1 kB as 1000 B, which is how link rates are quoted and how this course counts. So a 100 Mbit/s link with an 80 ms round trip has a megabyte of road on it.

bandwidth 100 Mbit/s = 10⁸ bit/s = 1.25 × 10⁷ B/s RTT 80 ms = 0.08 s BDP = 1.25 × 10⁷ × 0.08 = 10⁶ B = 1 MB size × 8 t = RTT + ──────────────── ms, with bandwidth in Mbit/s bandwidth × 1000

A 64 kB transfer over that link costs one round trip of 80 ms plus 64 000 × 8 / (100 × 1000) = 5.12 ms of sending. That is 85.12 ms in all, of which 94.0% is waiting. The sending term is the smaller number by a factor of more than fifteen, and it is the only one bandwidth touches.

Example · Pricing the two upgrades on the same transfer

Double the bandwidth to 200 Mbit/s and the sending term halves to 2.56 ms: the transfer saves 2.560 ms and now takes 82.56 ms. Halve the round trip to 40 ms instead and it saves 40 ms, finishing in 45.12 ms. The second change is worth about sixteen times the first, on the same transfer, and no amount of further bandwidth ever closes that gap.

The crossover, and which side of it you are on

There is exactly one size at which the two terms cost the same: the size for which size/bandwidth = RTT, which rearranges to size = bandwidth × RTT. That is the bandwidth-delay product again. The BDP is not merely a capacity; it is the crossover, and a transfer is latency-bound or bandwidth-bound according to which side of it the transfer falls on.

Example · The same link, a transfer sixty-two and a half times larger

4 MB over the same 100 Mbit/s link at 80 ms spends 320 ms sending and 80 ms waiting: 400 ms in all, of which the round trip is 20.0%. This transfer is past the 1 MB crossover and is bandwidth-bound. Here doubling the link saves 160 ms and halving the round trip saves 40 ms — the advice from the previous example, applied here, is four times worse than the alternative.

The misconception worth naming out loud is that a faster link lowers the round-trip time. It does not. The round trip is set by how far the signal goes and how many devices it passes through; a bigger pipe moves more per second through the same pipe, at the same distance. Someone whose page is slow because it makes four sequential requests over an 80 ms link can buy a gigabit connection and measure no change at all.

What does move the round trip is shortening the distance or removing a trip. “The Speed-of-Light Floor” puts a hard bound under the first of those, and “Round Trips, Not Bytes” counts the second, which is usually the one you can change.

Interactive

Latency and throughput are two numbers

The bandwidth-delay product, and which term your transfer is paying

Bandwidth-delay productone round trip against the bytes, at the size you choose
round tripbytes on the wirecrossover

Method

Deciding what a transfer is bound by

Four lines of arithmetic, and the fourth is the one that stops you buying the wrong thing.

1

Put the bandwidth into bytes a second

Divide the bit rate by eight. 100 Mbit/s is 1.25 × 10⁷ B/s. Doing this first is what prevents the factor-of-eight error, which is the most common arithmetic mistake in this whole subject.

2

Multiply by the round-trip time to get the BDP

Bytes a second times seconds is bytes. Keep the time in seconds for this one line even though the rest of the course is in milliseconds, then convert back; mixing the two here is how a thousand-fold error gets in.

3

Compare the transfer size with that product

Smaller means latency-bound: the answer is roughly one round trip and the bytes are a rounding error. Larger means bandwidth-bound: the answer is roughly size/bandwidth and the round trip is the rounding error.

4

Price both improvements before choosing either

Compute what halving the round trip saves and what doubling the bandwidth saves, in milliseconds, on this transfer. They are rarely close, and the larger one is almost never the one that was already being proposed.

Which term are you paying?

Score 0 / 0

64 kB and 4 MB over one 100 Mbit/s link at 80 ms

The link never changes. Only the size does, and it changes the answer to “what should we buy?” completely.

link 100 Mbit/s = 1.25 × 10⁷ B/s , RTT = 80 ms BDP 1.25 × 10⁷ × 0.08 s = 1 000 000 B = 1 MB 64 kB send = 64 000 × 8 / (100 × 1000) = 5.12 ms t = 80 + 5.12 = 85.12 ms waiting: 94.0% 64 kB < 1 MB → latency-bound double bandwidth saves 2.560 ms halve RTT saves 40.000 ms 4 MB send = 4 000 000 × 8 / (100 × 1000) = 320 ms t = 80 + 320 = 400 ms waiting: 20.0% 4 MB > 1 MB → bandwidth-bound double bandwidth saves 160 ms halve RTT saves 40 ms

The two verdicts point in opposite directions on the same link, which is the point. “Is this link fast?” has no answer. “Is this transfer fast on this link?” has one, and it is decided by the size against the bandwidth-delay product.

Notice what halving the round trip saves in both rows: 40 ms, exactly, regardless of the transfer size. The round-trip term does not know how big the payload is. That is why it is the term that dominates small transfers and the term that vanishes into the noise on large ones.

For a faded rehearsal, take a 20 Mbit/s link with a 200 ms round trip — a satellite hop. The supplied first move is the conversion: 20 Mbit/s is 2.5 × 10⁶ B/s. Compute the bandwidth-delay product, then decide what a 300 kB transfer is bound by, and how many milliseconds each of the two upgrades would save it. Write down which side of the crossover you are on before you open the quiz, and check the figure in the lab by setting those three sliders.

Common mistakes

1
Treating bandwidth and latency as one quality called ‘speed’They are a rate and a duration, they have different units, and they are changed by different things. A connection can be enormous and slow, or tiny and immediate. Any sentence of the form “the link is fast” that does not say which of the two it means is a sentence that will eventually buy the wrong upgrade.
2
Dividing by eight in the wrong direction, or not at allA 100 Mbit/s link moves 12.5 MB/s, not 100 MB/s and not 800 MB/s. Every figure in this course that came out eight times too large or eight times too small came from this line. Convert the rate to bytes a second as the very first step and the rest of the arithmetic has no unit in it at all.
3
Assuming a faster link lowers the round-trip timeIt does not, at any size. The round trip is set by distance and by the devices on the path. A transfer well below the bandwidth-delay product is almost entirely round trip, which is exactly the case in which a bandwidth upgrade is measured, celebrated, and found to have changed nothing.

Check your understanding

✓
Finish when you can say which term a transfer is paying before computing anything else.

You should be able to convert a link rate to bytes a second, compute its bandwidth-delay product, classify a given transfer against that product, and state in milliseconds what each of the two possible upgrades would save on that transfer.

Note: The round-trip time has been an input everywhere on this page. “The Speed-of-Light Floor” takes it apart: part of it is a distance divided by a speed and cannot be removed by anything, and the rest is the part worth arguing about. “Round Trips, Not Bytes” then shows that the count of round trips, not the size of any one of them, is usually what a slow first page load is made of.

Kept in this browser only, for you. Nothing is sent anywhere and nothing checks it. Carry it to another device.

Feedback and recommendations

Something to change about this lesson? Write it down, tick it off when it is handled, and export the list when you want to act on it. Kept in this browser only: nothing is sent anywhere, and nobody is notified.

No recommendations yet for this lesson.