Bandwidth-delay product calculator
Enter the link speed and the round-trip time, for example from ping. The calculator gives the bandwidth-delay product — how much data must be in flight to keep the link full — in bits, bytes, KiB and MiB, the TCP window scale shift needed to advertise such a window, and the throughput and link usage you get with the window size you enter.
Runs in your browser: nothing you enter is sent anywhere.
How to use it
- Enter the link speed and choose kbit/s, Mbit/s or Gbit/s.
- Enter the round-trip time in milliseconds.
- Enter the TCP window size in KiB to see the throughput it allows (without scaling a window is at most 65,535 bytes, just under 64 KiB).
- BDP (bits) = bandwidth (bit/s) × RTT (s); bytes = bits ÷ 8, 1 KiB = 1024 bytes, 1 MiB = 1,048,576 bytes
- Throughput with a window = min(bandwidth, window × 8 ÷ RTT)
- Window scale shift = the smallest s from 0 to 14 with 65,535 × 2ˢ ≥ BDP in bytes
Link speeds use decimal prefixes (1 Mbit/s = 1,000,000 bit/s), window sizes binary ones (1 KiB = 1024 bytes).
Worked example
A 100 Mbit/s path with 50 ms RTT:
- BDP = 100,000,000 × 0.05 = 5,000,000 bits = 625,000 bytes = 610.35 KiB = 0.596 MiB
- the window must be scaled: 625,000 ÷ 65,535 = 9.54, so a shift of 4 (×16)
- with a fixed 64 KiB window: 65,536 × 8 ÷ 0.05 = 10.486 Mbit/s, only 10.5 % of the link
Tips
- Long fat networks (fast links over long distances) are where small windows hurt most.
- Buffers matter too. Socket buffers on both ends must be at least the BDP, or the operating system will cap the window.
- Packet loss changes the picture: with loss, TCP shrinks its congestion window and throughput falls below what the BDP suggests.
Frequently asked questions
What is the bandwidth-delay product?
The amount of data that is on the way at any moment on a link running at full speed, bandwidth × round-trip time. 100 Mbit/s with a 50 ms RTT holds 5,000,000 bits, that is 625,000 bytes.
Why does the TCP window need to be at least the BDP?
A sender may only have one window of unacknowledged data in flight. If the window is smaller than the BDP, the sender waits for acknowledgements and the link sits partly idle; throughput is then window ÷ RTT.
What is TCP window scaling?
The window field in the TCP header is 16 bits, so at most 65,535 bytes. The window scale option (RFC 7323) shifts it left by up to 14 bits. 625,000 bytes need a shift of 4, because 65,535 × 2⁴ = 1,048,560 is the first value above it.
Which RTT should I use?
The round-trip time between the two ends under load, for example from ping. Use the worst typical value: a window sized for 20 ms underperforms on a 100 ms path.