Bandwidth-Delay Product Calculator
This calculator works out the bandwidth-delay product (BDP) of a network link, the amount of data that can be travelling across the connection at any single moment, and uses it to tell you whether your TCP settings are holding your speed back. Bandwidth-delay product matters because TCP can only send as much unacknowledged data as your receive window allows; if that window is smaller than the BDP, the sender keeps stopping to wait for acknowledgements and your link never runs at full speed. You choose a bandwidth from presets ranging from 1 Mbps up to 10 Gbps, or enter a custom figure, and a round-trip time from presets covering a local LAN through to a geostationary satellite link, or your own measured RTT from ping or mtr. The calculator returns the BDP in bits, bytes, kilobytes and megabytes, a full calculation breakdown, and a TCP window sizing panel showing the minimum window needed, whether the standard 64 KB default window is enough, whether RFC 7323 window scaling is required, and the maximum throughput that default window would actually achieve. A table then shows how the BDP changes across common RTT values at your chosen bandwidth, with a plain-language verdict underneath. Use it to diagnose slow transfers on long-distance or high-speed links, or to check your systems are configured to use the full capacity you are paying for.
1. Link Bandwidth
2. Round-Trip Time (RTT)
Calculation Breakdown
TCP Window Sizing
BDP at Common RTT Values (your bandwidth)
| RTT | BDP (bits) | BDP (bytes) | BDP (KB) | Default 64 KB window limits throughput? |
|---|
What Is the Bandwidth-Delay Product?
The bandwidth-delay product (BDP) is a networking concept that describes the amount of data that can be "in flight" on a network path at any given instant. It is calculated by multiplying the link capacity (bandwidth) by the round-trip time (RTT):
BDP = Bandwidth (bits/second) x RTT (seconds)
The result is in bits. Divide by 8 to convert to bytes. For example, a 100 Mbps link with a 50 ms RTT has a BDP of 100,000,000 x 0.050 = 5,000,000 bits = 625,000 bytes (625 KB).
Why It Matters for TCP Performance
TCP uses a sliding window to control how much data can be sent before an acknowledgement (ACK) must be received. If the TCP receive window is smaller than the BDP, the sender will fill the window and then have to pause and wait for an ACK before sending more. This creates gaps in the data stream and means the link is never fully utilised.
The classic default TCP receive window is 65,535 bytes (64 KB), which was set when networks were slow and RTTs were short. On a modern gigabit link with 100 ms RTT, the BDP is 12.5 MB, so the 64 KB default allows the sender to keep only 0.5% of the pipe full. This is a major throughput bottleneck.
TCP Window Scaling (RFC 1323 / RFC 7323)
RFC 1323 (updated by RFC 7323) introduced TCP window scaling, which allows the receive window to be up to 1 GB. Most modern operating systems enable window scaling by default. However, some firewalls, routers, or older network equipment may strip the window scale option, causing performance problems on high-BDP paths. If large-file transfers are slow but ping latency is fine, a misconfigured or capped TCP window is a common cause.
Long Fat Networks (LFNs)
A network path with a large BDP is called a "long fat network" (LFN, sometimes pronounced "elephant"). This typically means either a very high bandwidth link, a very high latency path, or both. Satellite links are classic examples: a geostationary satellite link at 600 ms RTT and 10 Mbps has a BDP of 750 KB, meaning the sender must have that much data outstanding to keep the link busy. Dedicated transport protocols (such as SCP, QUIC, or BBR-based TCP) often outperform standard TCP on LFN paths.
Worked Example
Using the default inputs of 100 Mbps bandwidth and 50 ms RTT:
- Bandwidth in bits/s: 100,000,000 bits/s
- RTT in seconds: 0.050 s
- BDP = 100,000,000 x 0.050 = 5,000,000 bits
- BDP in bytes = 5,000,000 / 8 = 625,000 bytes
- BDP in KB = 625,000 / 1,000 = 625 KB
- BDP in MB = 625,000 / 1,000,000 = 0.625 MB
- The default 64 KB TCP window would limit throughput to: 65,535 x 8 / 0.050 = approx 10.49 Mbps, not 100 Mbps
To achieve full 100 Mbps throughput, the TCP window must be at least 625 KB, which requires window scaling to be enabled.
Related Calculators
- Essential Calculators hub
- Bandwidth Calculator: convert between bandwidth units and estimate transfer times
- Download Time Calculator: how long to download a file at a given speed
- Data Transfer Rate Converter: convert between bps, Kbps, Mbps, and Gbps
- IP Subnet Calculator (CIDR): network and host address ranges from CIDR notation
- Horse Gestation Calculator NZ: Mare Foaling Date and the Real Window.
- IV Drip Rate Calculator: drops per Minute and mL per Hour.
- Amdahl's Law Calculator: Amdahl's Law calculator: enter the parallel portion and number of processors to get the speedup, parallel efficiency ...
Sources and method: RFC 7323 "TCP Extensions for High Performance" (tools.ietf.org/html/rfc7323). RFC 1323 "TCP Extensions for High Performance" (original, superseded). Mathis, Madhavi, Peterson, Sikdar (1997) "The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm", ACM SIGCOMM CCR. Formula: BDP (bits) = Bandwidth (bits/s) x RTT (s); BDP (bytes) = BDP (bits) / 8.
This calculator provides theoretical BDP values based on the formula BDP = bandwidth x RTT. Actual achievable throughput depends on TCP implementation, window scaling support, congestion, packet loss, and network equipment. Use measured RTT values (from ping or mtr) for the most accurate results.