Bandwidth-Delay Product
Calculate BDP and optimal TCP buffer size
How to use Bandwidth-Delay Product
- 1Enter the bandwidth of the chain and the time of return.
- 2Reads bandwidth increments in bits and bytes.
- 3Use it to plan the TCP buffer with the window for the long distance link.
Bandwidth Delay (BDP)
BDP = bandwidth (bit/sec) x RTT (sec)BDP is the minimum TCP window required to keep the pipeline full.
BDP for 100 Mbps links, 100 ms RTT, about 1.25 MB, the window must exceed it to avoid underutilization.
BDP = bandwidth x RTT in bits (converted by bytes divided by 8). It answered a key question:** How much data must fly in the pipeline to keep the chain free? ** If the TCP window or intermediate device has a buffer zone smaller than BDP, the link will rotate in the air while awaiting confirmation, with actual throughput well below bandwidth.
BDP is also critical for the design of a buffer zone for network equipment. The classic law of experience requires a router buffer ≥ BDP, a 10 Gbps, RTT 200 ms link requires 250 MB buffers - This is a significant cost and delayed cost on the core router, so a more refined model (e.g. the Stanford model, buffer = BDP ÷ N, N is a combined flow number) is later proposed. ** This is also the source of the Bufferbloat problem**: too big a buffer has delayed the queues skyrocketing, but the speed of the videoconferences is fast.
| Chain Type | bandwidth | RTT | BDP |
|---|---|---|---|
| Local area network | 1 Gbps | 0.5 ms | 62.5 KB |
| The same city line. | 1 Gbps | 5 ms | 625 KB |
| Cross-provincial backbone | 1 Gbps | 30 ms | 3.75 MB |
| Central American submarine cable | 1 Gbps | 180 ms | 22.5 MB |
| GEO satellite | 100 Mbps | 550 ms | 6.9 MB |
| 5G Mobile Network | 300 Mbps | 30 ms | 1.1 MB |
BDP for typical links and required buffers
Frequently asked questions
BDP to TCP, why is it important?
If the window is smaller than BDP, the sender etc. ACK and the link always fills out a complaint.
How about a buffer?
Sets the TCP window and middle buffer at least as BDP.
BDP with distance?
Yes; RTT rises with distance, so long-distance links need bigger windows.
How do you measure your own connection, BDP?
Two steps: 1 to measure bandwidth with Speedtest or iperf; 2 to ping to measure RTT (or to view the entire path with mtr). BDP = bandwidth (bps) x RTT(s) ÷8 bytes. For example, bandwidth 200 Mbps, ping value 40 ms: BDP = 2 x 108 x 0.04 ÷ 8 = 1 MB. Check then if the TCP window setting of the system is ≥1 MB, if smaller, to run 200 Mbps.
Why is cross-border transmission particularly slow?
The main reason is that BDP is too big. Central America RTT is about 150-200 ms, even with a bandwidth of 1 Gbps, BDP has about 20 MB, requiring 20 MB TCP windows to run. The default window is often insufficient, and combined with a high drop rate (0.1 per cent-1 per cent across the ocean link, which is common), TCP will drop more frequently. Solutions: 1 enable BBR congestion control; 2 use wide-area network acceleration/CDN; 3 use multiple-wire parallel transmission of one-way connection limit; 4 use UDP acceleration protocols for large files (e.g. QUIC, Aspera, radon speed).
