Bandwidth Delay Product Calculator - BDP and TCP Window Size

Use this bandwidth delay product calculator to turn a link speed and round-trip time into the bytes in flight on the wire, the TCP window size needed to fill that pipe, and the throughput cap a fixed window creates.

Updated: June 19, 2026 • Free Tool

Bandwidth Delay Product Calculator

Capacity of the link in the unit you select. The calculator converts this value to bits per second before computing the BDP.

Bits-per-second unit for the bandwidth input. bps for raw bits, Mbps for consumer links, Gbps for backbone links.

RTT is the standard BDP denominator. OWT is doubled automatically to match the RFC 1323 / RFC 7323 RTT-based definition.

Delay in milliseconds. The calculator divides by 1000 to convert to seconds.

TCP receive window (or socket buffer) size in KiB. The calculator uses this to back out the maximum throughput: throughput = window / RTT.

Results

Bandwidth-delay product
0bits
Bytes in flight 0bytes
BDP in MiB 0MiB
Suggested TCP window 0KiB
Max throughput from window 0B/s
Max throughput in Mbps 0Mbps

What Is the Bandwidth Delay Product Calculator?

A bandwidth delay product calculator multiplies a link's bandwidth by its round-trip time to find the maximum bytes in flight on the wire at any moment. It returns the BDP in bits and bytes, suggests a TCP receive window that fills the pipe, and back-calculates the throughput cap a fixed window creates. Use it to size socket buffers, configure window scaling, and explain why a 1 Gbps link with 80 ms of latency only delivers about 6.4 Mbps at the 64 KiB default.

  • Size a TCP receive window: Pick a link bandwidth and measured RTT, read the bytes in flight, and set the socket buffer to at least that value.
  • Diagnose slow throughput: Compare the BDP against the current window size to see whether the bottleneck is the link or the receive window.
  • Plan satellite or transcontinental links: Estimate the buffer a 600 ms RTT satellite or 80 ms RTT transcontinental fiber needs before window scaling kicks in.
  • Compare IPv4 and IPv6: Show why IPv4 still needs window scaling above 64 KiB while IPv6 advertises its window in bytes without that cap.

The BDP is the canonical quantity introduced in IETF RFC 1323 and carried forward in IETF RFC 7323, where the 16-bit TCP window field was extended with a scale option because the BDP of a long fat network regularly exceeded 65535 bytes.

The same two-input shape (a network parameter and a time value) is shared by the Upload Time Calculator; the BDP is the inverse question.

How the Bandwidth Delay Product Calculator Works

The calculator converts the bandwidth input to a single bits-per-second value, converts the delay to seconds, and multiplies the two to get the BDP in bits. It then divides by 8 for bytes and by 1024, 1,048,576, and 1,073,741,824 for KiB, MiB, and GiB, and uses the same delay to back out the maximum throughput the supplied window can sustain.

BDP (bits) = bandwidth (bits/s) x delay (s); BDP (bytes) = BDP (bits) / 8; max throughput (B/s) = window (bytes) / delay (s)
  • bandwidth: Link capacity. bps, kbps, Mbps, Gbps, and Tbps convert to a single bits-per-second value.
  • delayType: RTT is the standard BDP denominator; OWT is doubled automatically to match the RFC 1323 / RFC 7323 RTT-based definition.
  • delay: Delay in milliseconds, divided by 1000 to seconds for the BDP multiplication.
  • windowSize: TCP receive window in KiB, converted to bytes and divided by the delay in seconds for the throughput back-calc.

Round-trip time and one-way delay are interchangeable only on symmetric links. The calculator doubles the OWT input to match the RFC 1323 and RFC 7323 convention.

Worked example: 1 Gbps transatlantic link with 40 ms RTT

Bandwidth: 1000 Mbps. Delay: 40 ms. Window: 64 KiB.

1 Gbps x 0.04 s = 40,000,000 bits; /8 = 5,000,000 bytes; /1,048,576 = 4.77 MiB. Window throughput = (64 x 1024) / 0.04 = 1,638,400 B/s = 13.11 Mbps.

Window scaling is mandatory here: the suggested TCP window row of 4883 KiB is the smallest receive buffer that fills the pipe.

According to RFC 1323 - TCP Extensions for High Performance, the original 16-bit TCP window field limits the receiver to a 65535-byte advertised window, and the window-scale option exists so a sender can fill a pipe whose BDP exceeds 65535 bytes.

The same time-versus-throughput tradeoff shows up in the Data Transfer Calculator, which takes a fixed file size and a fixed bandwidth and reports how long the transfer takes; the BDP is the bridge between the two.

Key Concepts Behind the Calculator

Four ideas make the bandwidth-delay product match what a real TCP connection experiences on a long fat network and explain why a fast link can still feel slow.

Bytes in flight on the wire

The BDP is the number of bits that have left the sender but have not yet been acknowledged. On a 1 Gbps transatlantic link with 40 ms RTT, five million bytes are sitting in undersea cables.

Round-trip time vs one-way delay

TCP waits for an acknowledgment before sending the next burst, so the relevant delay is round-trip. The calculator doubles OWT automatically to match the RFC 1323 / RFC 7323 definition.

TCP receive window and window scaling

The TCP receive window is the buffer the receiver advertises. The original 16-bit header field caps it at 65535 bytes, so any link whose BDP exceeds 64 KiB needs the RFC 1323 window-scale option.

Long fat network (LFN)

A long fat network is any link whose BDP exceeds the default 64 KiB TCP window. Geostationary satellite, transcontinental fiber, and intercontinental backbones all qualify.

RFC 7323 retains window scaling, PAWS, and the byte-counting approach introduced in RFC 1323. Both documents are the canonical source for the BDP formula and the rule that the receive window should be at least as large as the BDP for a single connection to reach the link's full capacity.

The same byte-versus-bit distinction shows up in the Baud Rate Calculator, where kbps, Mbps, and Gbps always refer to bits per second.

How to Use This Calculator

Five short steps take you from a measured link speed and round-trip time to a TCP window size that fills the pipe and a throughput cap that explains any gap to the headline speed.

  1. 1 Enter the link bandwidth: Type the link capacity and pick the matching unit (Mbps for residential broadband, Gbps for backbones).
  2. 2 Enter the delay as RTT or OWT: Pick RTT for the standard ping measurement or OWT for a traceroute. The calculator doubles OWT automatically.
  3. 3 Type the delay value: Enter the delay in ms. Transatlantic fiber is 30-80 ms RTT, geostationary satellite 500-700 ms, residential cable 10-30 ms, metro fiber 1-5 ms.
  4. 4 Set the TCP receive window: Enter the current receive window in KiB. Linux and Windows default to 64 KiB; macOS autotunes up to several MiB.
  5. 5 Read the BDP and the suggested window: The primary result is the BDP in bits and bytes; secondary rows show KiB and MiB readouts, the suggested TCP window, and the throughput cap a fixed window creates.

Practical example: a CDN engineer needs to size the receive buffer on edge servers pulling software updates over a 10 Gbps link with 80 ms RTT. They enter 10 Gbps, RTT, 80 ms, and 64 KiB. The calculator returns a BDP of 100 MB and shows the 64 KiB window caps throughput at 800 KB/s, or 6.55 Mbps. They raise net.ipv4.tcp_rmem max to at least 100 MB and confirm throughput now matches the link.

An engineer at a content delivery network also needs the byte and MiB readouts in familiar storage units, and the Data Storage Converter handles the cross-check between the KiB, MiB, and GiB numbers the calculator returns and the same units a kernel-tuning recipe expects.

Benefits of Using the Bandwidth Delay Product Calculator

Six practical reasons to reach for this calculator instead of guessing at window sizes or chasing phantom throughput bugs.

  • Right-sized TCP windows: Returns the smallest receive window that fills the link, so the engineer sets net.ipv4.tcp_rmem or SO_RCVBUF to a value that matches the pipe.
  • Faster long fat network throughput: Reveals the gap between link bandwidth and the throughput a 64 KiB window can sustain, the most common cause of slow transfers on transcontinental fiber and geostationary satellite links.
  • Diagnoses apparent ISP shortfalls: Shows whether a slow download is the link or the window.
  • Plan satellite and intercontinental links: Quantifies the cost of long latency on a fast link, so a satellite ISP customer knows in advance that 600 ms RTT will need multi-megabyte buffers.
  • Compare IPv4 and IPv6 behavior: Uses the same BDP output to show why IPv4 still requires window scaling above 64 KiB while IPv6 advertises its window in bytes.
  • Reference for protocols beyond TCP: The same bytes-in-flight quantity shows up in BBR, QUIC, and SCTP buffer sizing.

Window scaling is opt-in on IPv4, so a connection that never negotiates the option is stuck at a 65535-byte window. The calculator makes that limit explicit by reporting both the suggested window size and the throughput cap a fixed window creates.

Once the BDP shows the bytes in flight, the next network decision is which IP version carries that window, and the IP Address Converter translates the IPv4 and IPv6 representations a sysadmin has to compare when tuning the same link on both stacks.

Factors That Affect Your Results

Four practical variables change the bandwidth-delay product and three caveats explain why a calculator reading is not always a perfect stand-in for a live TCP throughput measurement.

Doubling the link bandwidth doubles the BDP at the same delay. A 1 Gbps link with 40 ms RTT carries 5 MB in flight; a 10 Gbps link with the same RTT carries 50 MB.

Round-trip time

Doubling the RTT also doubles the BDP. Geostationary satellite adds about 600 ms of RTT, raising a 100 Mbps link from a 250 KB BDP to a 7.5 MB BDP.

Delay type (RTT vs OWT)

A one-way delay input is doubled automatically to keep the BDP consistent with the RFC 1323 / RFC 7323 RTT-based definition.

TCP receive window

The window size sets the throughput ceiling through throughput = window / delay. A 64 KiB window caps a 100 Mbps link with 20 ms RTT at 26.2 Mbps.

  • The calculator assumes the link is the bottleneck. On shared or wireless links, retransmissions lower effective bandwidth, so the BDP overstates actual bytes in flight.
  • The throughput back-calc uses window / delay, the steady-state ceiling. Slow-start, congestion avoidance, and packet loss keep a real TCP connection below it.
  • Round-trip time varies with route changes and queueing, so the BDP and suggested window row should be recomputed when the measured RTT changes by more than 10 ms.

Used inside its limits, the BDP ties bandwidth, latency, and buffer sizing together. Outside those limits, it is a starting point for tuning, not a precise predictor of throughput.

For the time-and-rate size math that underlies the BDP, the Time Lapse Calculator combines a shooting interval with an event duration to estimate photo storage.

According to RFC 7323 - TCP Extensions for High Performance, a modern TCP sender advertises a window in octets (bytes) and counts throughput in octets per second, which is why the calculator divides the bit-rate BDP by 8 before comparing it with a socket buffer.

According to Wikipedia - Bandwidth-delay product, the bandwidth-delay product is the product of a link's capacity (in bits per second) and its end-to-end delay (in seconds), and represents the maximum amount of data that can be in transit on the wire.

Bandwidth delay product calculator showing link bandwidth, round-trip time, bytes in flight in KiB and MiB, and TCP window size with throughput cap
Bandwidth delay product calculator showing link bandwidth, round-trip time, bytes in flight in KiB and MiB, and TCP window size with throughput cap

Frequently Asked Questions

Q: What is the bandwidth-delay product (BDP)?

A: The bandwidth-delay product is the product of a link's capacity (in bits per second) and its end-to-end round-trip time (in seconds). It represents the maximum number of bits that can be in transit on the wire at any given time, which is also the smallest TCP receive window that can fill the pipe without waiting for an acknowledgment between bursts.

Q: How is bandwidth-delay product calculated?

A: Multiply the link bandwidth (in bits per second) by the round-trip time (in seconds). The result is in bits; divide by 8 to express the BDP in bytes, by 1024 for KiB, and by 1048576 for MiB. For example, a 1 Gbps link with 40 ms RTT yields 5,000,000 bytes, or about 4.77 MiB, in flight at any moment.

Q: Why does the bandwidth-delay product matter for TCP?

A: TCP only sends new data after an acknowledgment arrives, so the receive window has to be at least as large as the BDP for the sender to keep the pipe full. A 64 KiB window on a 1 Gbps link with 40 ms RTT caps throughput at about 13 Mbps, which is the reason RFC 1323 introduced the window-scale option.

Q: What units does the bandwidth-delay product use?

A: The canonical BDP is in bits, because that is how bandwidth is measured (bits per second). The bandwidth delay product calculator also reports the BDP in bytes, KiB, and MiB so it can be compared directly with TCP window sizes and socket buffer sizes, which RFC 7323 requires to be expressed in octets (bytes).

Q: How do I size TCP window for high bandwidth-delay product links?

A: Set the TCP receive window to at least the BDP in bytes. For a 10 Gbps transcontinental link with 80 ms RTT the BDP is 100 MB, so the kernel's tcp_rmem max should be at least 100 MiB and the application should request a matching SO_RCVBUF, otherwise throughput will sit near window / RTT instead of the link's headline rate.

Q: What is a long fat network (LFN)?

A: A long fat network is any link whose BDP is large enough to exceed the default 64 KiB TCP window. Geostationary satellite (600 ms RTT), transcontinental fiber (80 ms RTT), and 10 Gbps+ intercontinental backbones are all LFNs, which is why the bandwidth delay product calculator's suggested window row grows from kilobytes to gigabytes as the user moves from a home broadband preset to a backbone preset.