TechCompare LogoTechCompare

How long does it take to transfer 1 TB over a WAN with 100 ms latency? The TCP window trap

1 TB over a 1 Gbps WAN at 100 ms RTT takes about 17.5 days at the default 64 KB TCP window, not the 2.2 hours a naive size-over-speed calculator returns. The link is delivering 0.52% of its rated speed because the receive window can't stay full long enough.

Transferring 1 TB over a 1 Gbps WAN link with 100 ms round-trip time takes about 17 days 16 hours when the default 64 KB TCP window is in play. That is not a typo. The link can carry 1000 Mbps, but TCP only sends 64 KB of data before stopping to wait for an acknowledgment, and on a 100 ms RTT that acknowledgment takes a tenth of a second to come back. The resulting ceiling is roughly 5.24 Mbps, about 0.52% of the rated link.

By TechCompare · Updated

Transfer time
17d 15h 51m 42s
Window-limited to 5.2 Mbps
File size
1 TB
1000 GB
Link speed
1 Gbps
Gigabit Ethernet
Effective throughput
5.2 Mbps
at 100 ms RTT
Link utilized
0.52%
Bottleneck: TCP window

Calculator

Data Transfer Calculator

Bandwidth-delay product limit

Link speed
1 Gbps
rated
Effective throughput
5.2 Mbps
capped by 64.00 KiB window / 100 ms RTT
Link used
0.52%
of rated speed

The TCP window, not the link, is the bottleneck. Your 1 Gbps connection is modeled at 0.52% of its rated speed because the receive window (64.00 KiB) limits bytes in flight at 100 ms RTT. That's the bandwidth-delay product at work.

How this is calculated

The naive math (1 TB divided by 1000 Mbps) gives 2 hours 13 minutes, and that is what every size-over-speed calculator on the web returns. It is correct for a USB cable and wrong for the internet. On a long-distance link the throughput ceiling is the bandwidth-delay product: the receive window divided by the round-trip time. With an unscaled 64 KB window and 100 ms RTT that ceiling is 65536 bytes times 8 bits divided by 0.1 seconds, which works out to 5.24 Mbps. The link fills to 0.52% of its rated speed because TCP is not allowed to put more data in flight than the window allows, and the acknowledgments take too long to return.

Verdict

1 TB over a 1 Gbps WAN with 100 ms round-trip time takes about 17 days 16 hours when the default unscaled 64 KB TCP receive window is in play, which is the gap between the 2 hours 13 minutes a naive size-divided-by-speed calculator returns and what actually happens on the wire. The mechanism is the bandwidth-delay product: TCP is only allowed to have one receive window worth of data in flight at a time, so the throughput ceiling is the window size divided by the round-trip time. With 65536 bytes in the window and a 0.1 second round trip, that ceiling is 5.24 Mbps, about 0.52% of the 1000 Mbps link. The fix is RFC 1323 window scaling, which lets the window grow up to 1 GiB and pushes the ceiling well past the link rate so the transfer drops back to the 2 hours 13 minutes the link is actually capable of.

More WAN scenarios

100 GB over USB 3.0
A 100 GB transfer over USB 3.0 works out to exactly 2 minutes 40 seconds at the interface's 5 Gbps peak rate.
View details ➜
1 TB over USB 3.0
A 1 TB transfer over USB 3.0 works out to 26 minutes 40 seconds at the interface's 5 Gbps peak data rate.
View details ➜
4 GB over USB 2.0
A 4 GB transfer over USB 2.0 works out to 1 minute 6 seconds at the interface's 480 Mbps peak rate.
View details ➜

Frequently asked questions

Why does 1 TB take 17 days over a 1 Gbps WAN link?
Because TCP can only keep one receive window of data in flight at a time. With the default 64 KB window and 100 ms round-trip time, the throughput ceiling is 64 KB / 0.1 s = 5.24 Mbps, which is 0.52% of the 1 Gbps link. The link rate is irrelevant when the window is the bottleneck.
How do I fix the TCP window bottleneck on a WAN transfer?
Enable RFC 1323 window scaling on both endpoints, which lets the receive window grow up to 1 GiB. Modern OSes (Windows, Linux, macOS) support it by default, but legacy servers, some storage appliances, and misconfigured firewalls disable it. Tools like rsync over SSH and tuned SMB Multichannel also help by opening parallel streams.
What is the bandwidth-delay product for a 1 Gbps link at 100 ms?
The bandwidth-delay product is the link speed times the round-trip time: 1 Gbps times 0.1 s = 100 million bits, or about 12 MB. To fill the link your TCP window needs to be at least 12 MB. The default 64 KB window is about 0.5% of that, which is exactly why the throughput collapses.