Skip to content

Throughput & Latency

Why does a 1 Gbit/s link between two sites only give you 150 Mbit/s on a single file copy? Usually the bandwidth-delay product: TCP can only have one window of data in flight per round trip, so throughput ≀ window Γ· RTT. This tool does that arithmetic in both directions.

Bandwidth-delay product
Window needed for line rate (per stream)
Max throughput with the window above
Link utilisation with that window
Packets per second at line rate
One-way serialisation delay per frame
Data on the wire at any moment
Window scaling (RFC 7323)
Single-stream throughput vs RTTwith the window above
RTTTypical pathMax throughputWindow for line rate

The formulas

  • Bandwidth-delay product BDP = bandwidth Γ— RTT β€” the amount of data that must be in flight to keep the pipe full.
  • Max single-stream throughput β‰ˆ window Γ· RTT β€” if the receiver’s window is smaller than the BDP, this is your ceiling regardless of link speed.
  • Window scaling: the classic TCP window field tops out at 65 535 bytes; anything larger needs the window-scale option (on by default in every modern OS, but often capped by net.core.rmem_max / net.ipv4.tcp_rmem on Linux or by middleboxes).
  • Frames per second = bandwidth Γ· ((frame size + 20 B) Γ— 8) β€” the 20 bytes are preamble, start-frame delimiter and inter-frame gap, which is why 64-byte frames on 1 Gbit/s come to 1.488 Mpps.

Tip

If a long-distance copy is slow, check the window size on the receiver before blaming the WAN. Tools like iperf3 -w 4M and ss -ti show what is actually negotiated.

Last updated on