1. Home
  2. Developer tools
  3. TCP Window Calculator

TCP Window Calculator

Why is a gigabit link slow across an ocean? Enter bandwidth, round-trip time and window size to see the window you need and the speed you will really get.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use TCP Window Calculator

  1. Enter bandwidth and round-trip time.
  2. Enter your TCP receive window.
  3. Read the window needed and the throughput.

Features

  • Bandwidth-delay product in bytes and bits
  • Window scale shift needed
  • Throughput limit of your window
  • Table for common window sizes
  • Says whether window or bandwidth is the limit
  • Examples for long-distance and satellite links

Supported formats

Input

  • Bandwidth and round-trip time

You get

  • Bandwidth-delay product
  • Window size needed

Private by design

Everything you enter is processed by your browser on this device. Nothing is sent to openWorkstand or anyone else, so the TCP Window Calculator is safe for private and work data. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • It gives the theoretical window; real throughput also depends on loss, congestion control and the receiving application.
  • Window scaling must be enabled for windows above 64 KiB.

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.

Checked against the current version of the TCP Window Calculator on .

Frequently asked questions

Why is my download slow on a fast line when speed tests look fine?

Speed tests open many parallel connections, each limited by its own window. A single transfer to a far server with a small window or high loss uses only a fraction of the line, as this calculator's ceiling shows.

Is a bigger window always better?

Only up to the bandwidth-delay product. Beyond that it just fills buffers along the path and adds delay, a problem known as bufferbloat.

Why is a single download slower than my line speed?

One TCP connection can have only one window of data in flight. Window divided by round-trip time caps its speed, however fast the link.

What window do I need for 1 Gbit/s at 100 ms?

About 12.5 MB: 1 Gbit/s times 0.1 s is 100 megabits, which is 12.5 megabytes.

Keep working with the result

openWorkstand also includes a free workspace with documents, spreadsheets, tasks, projects and a calendar that save to a folder on your computer.