Guide
Why one TCP connection cannot fill a fast, distant link
A fast line does not make a single download fast. TCP sends a window of data and then waits for acknowledgements. If the window is smaller than the amount of data the line can hold in transit, the sender sits idle part of every round trip. The page calculates how big the window must be for a given bandwidth and delay, and how much speed a smaller window leaves on the table.
The bandwidth-delay product
The product of the link’s bit rate and its round-trip time is the number of bits that fit “in the pipe” at once. On a 100 Mbit/s link with a 50 ms round trip that is 100,000,000 × 0.05 = 5,000,000 bits, which is 625,000 bytes. To keep the link busy, the sender must be allowed to have at least that much unacknowledged data, so the receive window must be at least that large. The ceiling on a single connection is window divided by round-trip time, whatever the link speed.
Window scaling
The original TCP header has a 16-bit window field, which limits the window to 65,535 bytes. RFC 7323 defines window scaling, a multiplier agreed during the handshake, as a power of two with a shift of up to 14, making windows up to about 1 GiB possible. The page reports the shift you need: a required window of 610 KiB needs a shift of 4 (a multiplier of 16), because 64 KiB × 16 = 1 MiB covers it. Modern operating systems enable scaling and tune buffers automatically, but older embedded devices, some appliances and manually configured buffers can still be limited.
Using the page
Enter the link bandwidth in Mbit/s, the round-trip time in milliseconds (use the figure from ping) and the receive window in KiB, or choose a preset: 100 Mbit/s at 50 ms, a transoceanic gigabit link or a satellite link. The result lists the bandwidth-delay product, the window needed, the scale shift, the throughput your window allows, the share of the link that is used, and a statement of what limits you. A table shows throughput at 16 KiB, 64 KiB, 256 KiB, 1 MiB, 4 MiB and 16 MiB windows for your delay.
A worked example
The first preset is 100 Mbit/s with a 50 ms round trip and a 64 KiB window. The bandwidth-delay product is 625 kB (5,000,000 bits in flight), so the window needed is 610 KiB and the scale shift is 4. With only 64 KiB the connection reaches 65,536 × 8 ÷ 0.05 = 10.5 Mbit/s, which is 10.5 % of the link, and the page says it is limited by the window size. A 256 KiB window would give 41.9 Mbit/s and a 1 MiB window would fill the line.
Limits
These are upper bounds from the window alone. Packet loss, congestion control, the sender’s own buffer and the application add further limits, and the receive window is only one side of the conversation. The page does not read your real settings or measure your connection. For header overhead see the Network Goodput Calculator, and use real measurements for tuning.
Related tools
- Network Goodput Calculator shows how much of the line rate carries data.
- MTU and MSS Calculator sizes segments for tunnels.
- Network Jitter Test measures delay variation from your browser.
- Byte Converter converts between KiB, MiB and other units.
Checked against the current version of the TCP Window Calculator on .

