Why is my file transfer slower than my internet connection? TCP window, latency, and overhead explained

By TechCompare · Updated · How we check

The modeled 6.55 Mbps ceiling applies to a fixed unscaled window at 80 ms RTT. Confirm the actual bottleneck before changing TCP settings or blaming the connection.

A slow distant file transfer can be limited by its receive window, congestion, packet loss, storage, encryption, or the application. In the example here, a fixed unscaled window of about 64 KiB on a 1 Gbps link at 80 ms RTT gives a ceiling of about 6.55 Mbps. This is a deliberately constrained example with scaling disabled and a fixed window of about 64 KiB, not a general OS default.

Windows normally enables receive-window autotuning, and Linux enables receive-buffer autotuning by default. A small initial advertised window need not remain a persistent cap.

Transfer time
1d 9h 54m 32s
Window-limited to 6.6 Mbps
File size
100 GB
100 GB
Link speed
1 Gbps
Gigabit Ethernet
Effective throughput
6.6 Mbps
at 80 ms RTT
Link utilized
0.66%
Bottleneck: TCP window

How this is calculated

Start with measurements: test end-to-end network throughput, inspect storage speed and application CPU use, and check packet loss and contention. If the effective receive window is smaller than the bandwidth-delay product, it can be a bottleneck.

At 1 Gbps and 80 ms, BDP is 10 MB. Modern autotuning often grows a scaled window, so a slow WAN transfer alone does not prove a 64 KiB cap. Parallel streams can help some workloads, but share the same link and storage limits.

Verdict

A 1 Gbps connection doesn't guarantee 1 Gbps file copies, but a slow copy doesn't prove a receive-window problem either. Check effective receive windows, scaling negotiation, packet loss, congestion, storage, and application throughput. If the window is the limit, scaling plus an adequately sized buffer can help. In the calculator, enter at least 10 MB (about 9,766 KiB) with scaling on to remove that modeled limit.

More WAN scenarios

100 GB over USB 3.0
A 100 GB transfer over USB 3.0 works out to 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 is my transfer speed slower than my internet speed?
Possible limits include congestion, packet loss, storage throughput, encryption, application behavior, and the TCP window. In this deliberately constrained example, a fixed unscaled window near 64 KiB at 80 ms RTT gives about 6.55 Mbps. That result is not proof that the window is limiting your own connection.
How do I speed up a slow WAN file transfer?
First, confirm TCP window scaling is enabled on both endpoints and not stripped by a middlebox. Second, use a tool that opens parallel streams (rsync with parallel jobs, SMB Multichannel, or a tuned FTP client). Third, check that the disk at both ends can sustain the link rate. Each of these can be the bottleneck on its own.
Is my ISP throttling my long-distance transfers?
A slow distant transfer alone does not establish throttling or a receive-window bottleneck. Compare endpoints and times of day, inspect packet loss and congestion, and measure storage, CPU use, and effective TCP windows. A fast local speed test checks a different path and cannot identify the cause by itself.
Does a VPN make WAN transfer latency worse?
Often yes, by adding encryption overhead and sometimes an extra network hop. More importantly, some VPN clients reset TCP window settings or disable window scaling for compatibility, which reintroduces the 64 KB cap on links that need a much larger window.