What is the Bandwidth * Delay Product ?
The Bandwidth*Delay Product, or BDP for short determines the amount of data that can be in transit in the network. It is the product of the availalbe bandwidth and the latency, or RTT. BDP is a very important concept in a Window based protocol such as TCP. It plays an especially important role in high-speed / high-latency networks, such as most broadband internet connections. It is one of the most important factors of tweaking TCP in order to tune systems to the type of network used.
The BDP simply states that:
BDP (bits) = total_available_bandwidth (bits/sec) x round_trip_time (sec)
or, since RWIN/BDP is usually in bytes, and latency is measured in milliseconds:
BDP (bytes) = total_available_bandwidth (KBytes/sec) x round_trip_time (ms)
What does it all mean ? The TCP Window is a buffer that determines how much data can be transferred before the server stops and waits for acknowledgements of received packets. Throughput is in essence bound by the BDP. If the BDP (or RWIN) is lower than the product of the latency and available bandwidth, we can't fill the line since the client can't send acknowledgements back fast enough. A transmission can't exceed the (RWIN / latency) value, so The TCP Window (RWIN) needs to be large enough to fit the maximum_available_bandwidth x maximum_anticipaded_delay.
SG BDP Calculator
What latency should I use to calculate RWIN ?