How this calculator works
Data cannot travel faster than the link, and it cannot arrive before the round trip completes. To fill the pipe, a sender must have enough unacknowledged data outstanding to cover the trip out and the acknowledgement back. That amount is the bandwidth delay product. On a 100 Mbit/s link with a 50 ms round trip it is 5,000,000 bits, about 625 kB. A file transfer with a smaller window stalls while it waits for acknowledgements, so it never reaches the link speed no matter how fast the link is. Long, fast links therefore need large TCP windows or many parallel connections.
Formula
bandwidth delay product (bits) = bandwidth (bits per second) x round-trip time (seconds). bandwidth = bandwidth delay product x 8 / round-trip time. round-trip time = bandwidth delay product x 8 / bandwidth.
Worked example
A 100 Mbit/s link with a 50 ms round trip: 100,000,000 bits per second x 0.05 seconds = 5,000,000 bits, which is 625,000 bytes. A single TCP connection needs a receive window of at least 625 kB to keep the link busy. At 1 Gbit/s the same latency needs 6.25 MB in flight.
Advertisement
Frequently asked questions
Why is the round-trip time not the one-way delay?
TCP acknowledgements travel back to the sender, so the window has to cover both directions. The round-trip time is the figure that matters for flow control. Ping reports a round-trip time directly.
What happens if the window is smaller than the product?
The connection becomes latency limited rather than bandwidth limited. Its throughput is roughly window size divided by round-trip time. A 64 kB window at 50 ms gives about 10 Mbit/s, even on a gigabit link.
Does this apply to UDP and video calls?
The same quantity describes how much data a real-time stream can have outstanding. UDP does not acknowledge every packet and congestion control is the application's job, but the cap from latency and bandwidth still applies to any protocol.
Why do long-distance downloads feel slow?
Distance adds round-trip time, which raises the product. Servers and operating systems often cap the receive window unless window scaling is negotiated, so a fast link across an ocean can underperform a slower one nearby.