Back

What is Bandwidth-Delay Product (BDP)?

The Bandwidth-Delay Product (BDP) is a fundamental networking metric that represents the maximum amount of data that can be in transit on a network link at any given time. It is calculated by multiplying the link's capacity (in bits per second) by the Round-Trip Time (RTT, in seconds). This concept was originally proposed by Villamizar and Song in 1994 as a guideline for sizing router buffers in conjunction with the Random Early Detection (RED) congestion avoidance algorithm.

BDP is critical for TCP performance because it determines the minimum congestion window size needed to keep the link fully utilized. If the sending window is smaller than the BDP, the link will be underutilized as the sender spends time waiting for acknowledgments. Networks with a large BDP are known as Long Fat Networks (LFNs), defined in RFC 1072 as those whose BDP significantly exceeds 10⁵ bits. Typical examples include geostationary satellite connections (high RTT) and high-speed WAN links such as those used in international research and education networks.

Common Use Cases

  • TCP tuning: BDP determines the optimal TCP receive window (RWIN) size to maximize throughput. Without proper tuning, high-speed connections can waste up to 90% of available bandwidth.
  • Network buffer sizing: Network engineers use BDP to calculate appropriate buffer sizes in switches and routers, preventing both packet loss and bufferbloat.
  • Satellite connection optimization: On geostationary satellite links with ~600 ms RTT, BDP helps configure TCP acceleration proxies and receive windows that prevent link underutilization.

How to use BDP to diagnose TCP performance problems

Bandwidth-Delay Product is not only for tuning TCP windows — it's also a diagnostic tool. When actual connection throughput is significantly lower than expected, BDP helps identify the root cause.

Symptom 1: Low throughput without packet loss. If throughput is lower than available bandwidth and there's no packet loss, the TCP window is likely too small for the BDP. Solution: increase net.core.rmem_max and automatic receive window (net.ipv4.tcp_rmem).

Symptom 2: Erratic throughput with packet loss. If you see sudden throughput drops accompanied by losses, the router buffer may be insufficient. BDP tells you the minimum buffer size needed. Solution: adjust switch/router buffers (avoid bufferbloat with CoDel or FQ-CoDel).

Symptom 3: High RTT with low sustained throughput. On satellite or transcontinental WAN links, BDP can be enormous (e.g., 100 Mbps × 600 ms = 60 Mbits). Standard TCP windows are insufficient. Solution: enable TCP window scaling (net.ipv4.tcp_window_scaling=1) and use BBR as the congestion algorithm.