Understanding the bandwidth-delay product calculator — concept and principle
The bandwidth-delay product (BDP) is the amount of data that is "in flight" on a network path: sent but not yet acknowledged. It tells you how large a TCP window (or any sliding-window buffer) must be to keep a link full. This calculator gives the BDP, the window size needed in kilobytes, and the maximum throughput a single TCP stream can reach with a window you choose. It is used to tune servers for long-distance transfers, size buffers, and explain why a fast link feels slow across continents.
How it is calculated
- BDP (bytes) = bandwidth (bit/s) × RTT (s) ÷ 8. The calculator shows it in MB (10^6 bytes).
- Window needed (KB) = the same number of bytes ÷ 1,024.
- Max throughput (bit/s) = window (bytes) × 8 ÷ RTT (s). The window input is in KB of 1,024 bytes; the result is shown in Mbps.
Bandwidth is entered in Mbps (10^6 bit/s) and RTT in milliseconds.
The principle
TCP may send only as much unacknowledged data as the window allows. After sending a full window it must wait about one round-trip time for acknowledgements before sending more. So a single stream can deliver at most one window per RTT, giving throughput ≤ window ÷ RTT. To fill a pipe of rate B, the window must cover everything sent during one RTT, which is B × RTT. Picture a hose: its volume is flow rate times length, and you must keep the whole hose full.
Worked example
- Inputs: 1,000 Mbps, RTT 80 ms, window 64 KB.
- BDP = 1,000 × 10^6 × 0.080 ÷ 8 = 10,000,000 bytes = 10 MB.
- In KB: 10,000,000 ÷ 1,024 = 9,765.625 KB.
- With a 64 KB window: 64 × 1,024 × 8 = 524,288 bits per RTT. 524,288 ÷ 0.080 = 6,553,600 bit/s = 6.5536 Mbps.
- So an untuned 64 KB window uses well under 1% of a gigabit link at this distance.
| Bandwidth (Mbps) | BDP (MB) |
|---|---|
| 250 | 2.5 |
| 500 | 5 |
| 750 | 7.5 |
| 1,000 | 10 |
| 1,250 | 12.5 |
| 1,500 | 15 |
| 2,000 | 20 |
How to read the result
If your window is smaller than the BDP, a single flow is window-limited and the max-throughput figure is your ceiling. If it is larger, the link speed or congestion becomes the limit. Local networks with RTT under 1 ms have tiny BDPs; intercontinental paths of 100–200 ms at gigabit speeds need windows of tens of megabytes, which requires TCP window scaling (RFC 7323).
Common mistakes
- Mixing bits and bytes; bandwidth is in bits, windows in bytes.
- Using one-way latency instead of round-trip time.
- Assuming more bandwidth fixes slow transfers when the window is the bottleneck.
Frequently asked questions
Why is my 1 Gbps download slow from a distant server?
With a small window, throughput is capped at window ÷ RTT regardless of link speed.
What is the largest TCP window without scaling?
65,535 bytes, because the header field is 16 bits. Window scaling allows up to about 1 GiB.
Do parallel connections help?
Yes, each stream has its own window, so N streams can move roughly N windows per RTT.
Sources: IETF RFC 7323, TCP Extensions for High Performance · IETF RFC 1323 (obsoleted by RFC 7323), TCP Extensions for High Performance