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
| RTT | Typical path | Max throughput | Window 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_rmemon 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