Definition · BandwidthBandwidth is a rate of data across a link, measured in bits per second. A megabit per second is 10⁶ bits a second — decimal, like the rest of the units on this course, because that is what a link is sold in. A byte is 8 bits, so bytes per second times 8 is bits per second.
The chain runs requests per second, bytes per request, bits per byte, bits per megabit. Four rows, three of which are conversion factors, and each one carries the unit it leaves behind. Written out like that the factor of eight is unmissable; done in the head it is the single most common defect in a bandwidth estimate, and it is invisible in the answer because an eighth of a plausible number is another plausible number.
requests per second 2 000 req/s
× bytes per request 1 200 B/req
2 400 000 B/s
× bits per byte 8 bit/B
19 200 000 bit/s
÷ bits per megabit 1 000 000 bit/Mbit
19.2 Mbit/s
Skipping the third row gives 2.4, and calling that Mbit/s is the truth divided by eight. The lab prints both columns side by side with the ratio between them, which is 8 regardless of what the sliders say, because the error is a missing constant and not an approximation.
Definition · Per-request overheadOverhead is the bytes a request costs beyond its payload — request and response headers, framing, acknowledgements. It is charged per request and does not scale with the payload, so the bytes on the wire are payload + header and the header share is h/(p+h).
Theorem · The crossover payloadHeaders are at least half the bytes on the wire if and only if the payload is no larger than the header: h/(p+h) ≥ 1/2 exactly when p ≤ h.
p and h are positive, so p + h > 0 and the inequality h/(p+h) ≥ 1/2 may be multiplied through by 2(p+h) without changing direction, giving 2h ≥ p + h, that is h ≥ p.
Every step is reversible, so the two conditions are equivalent and the crossover sits at p = h exactly, where the share is 1/2.
□
Example · Two thousand requests a second, a kilobyte eachWith 200 bytes of headers, each request is 1 200 bytes on the wire and the link carries 19.2 Mbit/s. Headers are 1/6 of that — 16.7% — and the crossover is at a 200-byte payload, where they would be exactly half. Drag the payload slider down past 200 in the lab and the header share crosses 1/2 at precisely the header size, which is what the theorem says it must.
Why the fixed cost matters more than its size
Two hundred bytes is nothing. Two hundred bytes per request, at a rate high enough to matter, is a fixed cost on every one of them, and its share of the traffic is set by the payload rather than by anything about the link. A system whose requests carry kilobytes pays 16.7%; the same system after someone splits those requests into ten smaller ones pays far more, for the same data, without any line of the estimate looking different.
This is the bandwidth version of an argument that recurs on this path: a per-operation cost is the thing to count, and the number of operations is the thing to control. “Latency Numbers on a Log Scale” is the same point about time, and “Round Trips, Not Bytes” on Latency and the Tail is the same point again about the network.
Keep one base
This course is decimal end to end: 1 kB is 1000 bytes, 1 MB is 10⁶, 1 Mbit/s is 10⁶ bits a second. Disks and links are both sold that way. What produces silent errors is mixing the conventions inside one chain — a 1024-based kilobyte multiplied into a decimal megabit — because the discrepancy compounds at every thousand-step and every intermediate figure still looks like a sensible number.
So state the base once, at the top, and use it everywhere. If a figure arrives from somewhere else in the other base, convert it at the boundary rather than partway through, where the conversion is visible in the chain and can be argued with.