HuntsvilleEngineers mark

TCP Bandwidth-Delay Product & Window

Size the TCP receive window for a fat pipe — get the bandwidth-delay product and whether window scaling is required.

InputBDP = bandwidth × RTT , max throughput = window / RTT , scaling required when BDP > 65 535 bytes

Your recent runs (stored only in your browser)

No calculations yet — results land here so you can compare runs.

The engineering

The bandwidth-delay product is how many bytes are in flight on a link at any instant — the pipe's volume. TCP can only keep the pipe full if the receive window is at least the BDP; a smaller window forces the sender to stall waiting for ACKs, capping throughput at window ÷ RTT regardless of how fat the link is.

The classic gotcha lives in the 16-bit window field: it tops out at 65,535 bytes. On any modern long-fat network — a 1 Gbit/s link with 40 ms RTT needs ~5 MB in flight — you're two orders of magnitude short without the RFC 7323 window-scaling option. If a bulk transfer stalls well below line rate on a high-latency path, check that scaling is negotiated before you blame the NIC.

Watch your units: vendors quote bandwidth in decimal Mbit/s but OS buffer settings are usually binary KiB/MiB. This card reports both so the buffer you set matches the pipe you measured.

Where this math comes from

The bandwidth-delay product moved from theory to daily pain as backbone links outran the original TCP window field. Van Jacobson's late-1980s congestion-control work made TCP survive on a busy Internet, but the 16-bit window — fine for 1981-era links — became the bottleneck as satellite and cross-continental fiber paths appeared. The 'long fat network' (LFN, pronounced 'elephant') got its own acronym.

Jacobson, Braden, and Borman specified the fix in RFC 1323 (1992): a window-scaling option that shifts the advertised window left by up to 14 bits, plus timestamps for better RTT measurement. It was refined and re-issued as RFC 7323 in 2014, which remains the reference this card follows.

  1. 1981Jon Postel / RFC 793Original TCP fixes the receive-window field at 16 bits (65,535 bytes).
  2. 1988Van JacobsonCongestion avoidance and control paper — makes TCP viable at scale.
  3. 1992Jacobson, Braden & Borman / RFC 1323Window-scaling and timestamp options for long fat networks.
  4. 2014Borman, Braden, Jacobson & Scheffenegger / RFC 7323Current TCP extensions for high performance — the standard pinned here.

See the full timeline of the math behind every calculator →

Runs entirely in your browser — nothing you enter leaves this page. Your recent runs are stored only on your device.