# TCP Bandwidth-Delay Product Calculator

> Find the bandwidth-delay product of a path in bytes, the TCP window scale it needs, and the maximum throughput a given receive window allows.

Category: IT, networking & security · Applies to: Worldwide · Last updated: 2026-10-29
Interactive calculator: https://calculators.geekmidst.com/calculators/tcp-bandwidth-delay-product-calculator

To keep a link full, TCP must have bandwidth × round-trip time worth of data in flight. If the receive window is smaller than this bandwidth-delay product, throughput is capped at window ÷ RTT.

Also called: BDP calculator, TCP window size calculator.

## Inputs
- Bandwidth (default 1)
- Bandwidth unit (options: kbps, Mbps, Gbps; default Gbps)
- Round-trip time (unit ms; default 50)
- Receive window to test (unit KiB; default 64)

## Results
- Bandwidth-delay product
- BDP
- BDP
- Minimum TCP window scale shift
- Max throughput with that window
- Does the window fill the path?

## Formula

```
BDP (bytes) = Bandwidth (bit/s) × RTT (s) ÷ 8;  Max throughput = min(Window × 8 ÷ RTT, Bandwidth);  Scale shift = ⌈log₂(BDP ÷ 65,535)⌉
```

Where:
- Window: TCP receive window in bytes (1 KiB = 1,024 bytes)
- Scale shift: RFC 7323 window scale option, 0–14

## Worked example
1. BDP = 10⁹ bit/s × 0.05 s = 5 × 10⁷ bits = 6,250,000 bytes (6.25 MB).
2. 6,250,000 ÷ 65,535 = 95.4, and 2⁷ = 128 ≥ 95.4, so a window scale of 7 is needed.
3. A 64 KiB window allows 65,536 × 8 ÷ 0.05 s = 10.486 Mbps, about 1% of the link.

**Result:** A 1 Gbps path with 50 ms RTT needs about 6.25 MB in flight; a 64 KiB window would cap one TCP flow at 10.5 Mbps.

## What the result means

Set socket buffers (for example net.ipv4.tcp_rmem on Linux) to at least the BDP for long, fast paths. If raising buffers is not possible, parallel streams each add their own window.

## Assumptions and limits
- RTT is measured under load, not just idle ping.
- Only the receive window limits throughput; packet loss and congestion control are not modelled.
- With packet loss, TCP throughput falls well below the window limit.

## Questions

### Why 65,535 bytes?

The TCP header’s window field is 16 bits. Larger windows need the window scale option, which shifts the value left by up to 14 bits.

### Is the BDP in MB or MiB?

Both are shown: buffer settings are usually in bytes, so the exact byte figure is the safest to use.

## Related calculators
- [Network Latency (RTT) Calculator](https://calculators.geekmidst.com/calculators/network-latency-rtt-calculator)
- [Network Throughput Calculator](https://calculators.geekmidst.com/calculators/network-throughput-calculator)
- [Download Time Calculator](https://calculators.geekmidst.com/calculators/download-time-calculator)

Source: GM¹X CalcVerse — https://calculators.geekmidst.com/calculators/tcp-bandwidth-delay-product-calculator
