Bandwidth Delay Product Calculator – BDP & TCP Buffer Sizing

Bandwidth Delay Product Calculator

Compute the bandwidth delay product with BDP = bandwidth times round-trip time, then size the TCP window and receive buffer needed to keep a long fat pipe full. See BDP in kilobytes and megabytes, the minimum window, packets in flight for your MSS, and the link utilization a configured window would achieve.

📡Real Network Path Presets

📝Link and TCP Inputs

Usable throughput of the bottleneck link.

Bits are counted as 1000-based (1 Mbps = 1,000,000 bit/s).

Ping time there and back along the full path.

TCP payload per packet, typically 1460 on Ethernet.

Current send or receive window. Used for utilization.

Bytes are 1024-based (1 KB = 1024 bytes).

Controls rounding on every result card.

Bandwidth Delay Product 0 KB bits in flight on the wire
Minimum window / buffer 0 KB to keep the pipe 100% full
Packets in flight 0 segments of the given MSS
Link utilization 0% with the configured window

🔢Formula Snapshot

BDPbw × RTT
÷ 8bits to bytes
NBDP / MSS
%window / BDP

📈Bandwidth and RTT to BDP Examples

BandwidthRTTBDP (bytes)Reads As
1 Mbps20 ms2,500 B2.44 KB
10 Mbps30 ms37,500 B36.6 KB
100 Mbps20 ms250,000 B244 KB
100 Mbps80 ms1,000,000 B977 KB
1 Gbps20 ms2,500,000 B2.38 MB
1 Gbps100 ms12,500,000 B11.9 MB
50 Mbps600 ms3,750,000 B3.58 MB
10 Gbps10 ms12,500,000 B11.9 MB

🔧TCP Window Scale Factors

Scale FactorMultiplier 2^nMax WindowFits BDP Up ToTypical Use
01x64 KB64 KBLAN, low RTT
12x128 KB128 KBFast metro WAN
24x256 KB256 KBRegional 100M
38x512 KB512 KBNational WAN
416x1 MB1 MBTransatlantic
664x4 MB4 MBLong-haul 1G
7128x8 MB8 MBGEO satellite
9512x32 MB32 MB1G intercontinental

🌐Real Path Examples With BDP

Path TypeBandwidthRTTBDPWindow Needed
Gigabit LAN1 Gbps1 ms122 KB128 KB
Office WAN100 Mbps40 ms488 KB512 KB
Fiber to cloud1 Gbps25 ms2.98 MB4 MB
4G LTE mobile50 Mbps60 ms366 KB512 KB
5G broadband300 Mbps25 ms916 KB1 MB
GEO satellite50 Mbps600 ms3.58 MB4 MB
LEO Starlink150 Mbps45 ms824 KB1 MB
10G data center10 Gbps0.5 ms610 KB1 MB

🗃Link Comparison Grid

LinkBandwidthRTTBDP (KB)BDP (MB)Window Needed
Home ADSL16 Mbps30 ms58.6 KB0.06 MB64 KB
Gigabit LAN1 Gbps1 ms122 KB0.12 MB128 KB
100M Metro100 Mbps10 ms122 KB0.12 MB128 KB
100M National100 Mbps80 ms977 KB0.95 MB1 MB
1G Transatlantic1 Gbps90 ms10,986 KB10.7 MB16 MB
4G LTE50 Mbps60 ms366 KB0.36 MB512 KB
5G mmWave1 Gbps15 ms1,831 KB1.79 MB2 MB
GEO Satellite50 Mbps600 ms3,662 KB3.58 MB4 MB
LEO Starlink150 Mbps45 ms824 KB0.80 MB1 MB
10G DC Fabric10 Gbps0.5 ms610 KB0.60 MB1 MB

Formula Breakdown

BDP in bits = bw × RTTMultiply bandwidth in bits per second by the round-trip time in seconds. A 1 Gbps link at 20 ms gives 1,000,000,000 × 0.02 = 20,000,000 bits.
BDP in bytes = bits / 8Divide by 8 bits per byte. The 20,000,000 bits above become 2,500,000 bytes, about 2.38 MB using 1024-based units.
Min window ≥ BDPTo keep the pipe full, the sender must have at least one BDP of unacknowledged data outstanding, so set the TCP window and buffer to the BDP or the next power of two above it.
Packets in flight = BDP / MSSDivide the BDP in bytes by the segment size. 2,500,000 / 1460 is roughly 1,712 segments traveling at once.
Scale factor to beat 64 KBThe base TCP window maxes at 65,535 bytes. The needed scale n satisfies 65,535 × 2^n ≥ BDP, so a 2.5 MB BDP needs n = 6 (64x) for a 4 MB window.
Utilization = window / BDPIf the configured window is smaller than the BDP, throughput is capped. A 64 KB window on a 2,500 KB BDP fills only about 2.6% of the link.

💡BDP Tuning Tips

Latency dominates the product: Doubling RTT doubles the BDP just as surely as doubling bandwidth does. A 100 Mbps link at 80 ms needs a 977 KB window, four times the 244 KB required at 20 ms, so a distant server can starve a fast pipe unless the window grows with the delay. Measure real RTT with ping before sizing buffers.
Round the window up to a power of two: TCP window scaling multiplies the base 64 KB by 2^n, so usable windows land on 128 KB, 256 KB, 512 KB, 1 MB and so on. If your BDP is 2.98 MB, do not set exactly that value; choose the next step of 4 MB (scale factor 6) so brief RTT spikes still leave headroom to keep the link saturated.

How fast can something move across a long-distance network? It’s a simple question with an answer provided by this page: the bandwidth delay product (BDP) calculator. To maintain a full-link transfer, you have to push as many bits down the wire in one shot as possible.

The number to calculate is called the bandwidth delay product. It’s the link bandwidth times the round-trip time. Get this calculation correct and your stream flows at full-line rates. Get it wrong and a gigabit link crawls, even though the connection’s rated for maximum throughput.

Understanding Bandwidth Delay Product

Imagine if you have a pipe used for transporting water. It will have some amount of water based off its diameter and length. Even if they is moving the same amount of water, a longer pipe has more water than a shorter one. Similarly, a network path are like this. Bandwidth is the diameter, round-trip time is the length, and BDP is how much total data the path can contain without acknowledging the first byte.

In other words, the BDP in bits equals (bandwidth in bits per second) * (RTT in seconds), then you divide by eight to get it in bytes. At any given moment, a 1 Gbps link with 20 milliseconds of round trip will have about 2.38 megabytes in flight.

The TCP window size represent how much data a sender is allowed to have sent out but not acknowledged. If the window is smaller than the BDP, the sender empties its allowance and stalls, idle, until the first acknowledgment completes its round trip. Since TCP is a reliable protocol, the sending host will only have a certain amount of unacknowledged data in flight. The window is the amount. When this is less than the BDP, then the sender exhausts their allowance and stops until an acknowledgement makes it back after one round trip. During each of these pauses, the link is sitting there half-full. You want to keep the pipe full.

This means the receive window, the send window, and the socket buffers behind them should be big enough to hold at least one BDP. The calculator above does the math for you and reports that number right back to you so you can size your buffers from something other than a wild guess.

Back in the day, when the TCP header was defined, it allocated a mere sixteen bits for its window field, limiting it to no more than 65,535 bytes, roughly 64 kilobytes. In today’s world, on a fast path, that limit’s too small. Our 2.38 megabyte example requires nearly forty times as large a base window. The solution? TCP’s window scaling option effectively multiplies the advertised window size by two raised to some agreed-upon scale factor. The tool calculates the necessary scale factor for your path by finding the minimum power of two that raises the base window above your BDP. (For a 2.5 megabyte BDP, the scale factor is six; that gives you a 4 megabyte usable window and comfy headroom.)

For each calculation, we get four cards: First, the BDP (in kilobytes or megabytes), followed by an exact count of bits and bytes below that. Second, we get the recommended minimum buffer and window, rounded up to the nearest power of two, and the scale factor used to get there. Third, packets in flight is BDP divided by max segment size, which tells you how many segments are on the wire at any given time. Fourth, link use, i.e., what percentage of the pipe is your configured window filling? If it’s low, you’re not starving the connection.

Take our example, a 90-millisecond round-trip for a transatlantic 1 Gbps circuit: 90 million bits = 10.7 megabytes. At a default window size of just 64 KB we’ll be using less than 0.6 percent of the bandwidth. In other words, it’s as if you’ve throttled that gigabit circuit down to a few megabits per second. For a transatlantic 1 Gbps circuit with a 90 millisecond round trip, increasing your window to 16 megabytes lets the transfer run at line rate. All of these figures, including the maximum throughput you’d achieve with a tiny window, are surfaced in the calculator; you quickly see the price paid for an insufficiently-sized buffer.

The key insight here is that bandwidth and RTT enter the product symmetrically: doubling either one doubles the BDP. That’s why satellite links are so demanding. Geostationary hops add about 600 milliseconds of round-trip delay. Even with a modest 50 Mbps satellite link, we have a 3.58 megabyte BDP; bigger than many gigabit terrestrial paths.

Why does moving a server closer to its users often make throughput better? Because it improves both sides of the equation. You see this laid out in the reference table on the page. It compares LAN, WAN, mobile and satellite paths so you can easily compare the effect side by side.

Host TCP tuning isn’t all there is to the BDP. Historically, one BDP was the rule of thumb for sizing queues in routers and switches. This allows them to buffer enough data for a full round trip during congestion and avoid dropping packets too early. If you undersize the router buffers things go wrong: lots of losses and throughput collapse. If you grossly oversize them, things goes wrong too. The queues fill up. Latency grows. Buffer bloat. Knowing the BDP for the paths a device serves provides a principled starting point for both host buffers and network equipment.

Pick a scenario that’s similar to yours: 4G mobile link? Gigabit LAN? Geostationary satellite hop. Tweak the bandwidth, RTT, and your configured window to reflect what’s actualy happening. Change the delay some more, and observe what happens to utilization and the recommended window. For troubleshooting a slow backup over a WAN, or even tuning a data transfer node, the tool will make what’s normally an abstract formula concrete, the width of the pipe isn’t all there is; it’s also about how much data it can hold while it waits for the echo to return.

You should of checked your settings earlier. Use different than you think for a largger window. Most people finds it difficultly.

Bandwidth Delay Product Calculator – BDP & TCP Buffer Sizing