Why is my file transfer slower than my internet connection? TCP window, latency, and overhead explained
A transatlantic transfer on a 1 Gbps link with the default 64 KB TCP window peaks at about 6.55 Mbps, which is 0.66% of the rated speed. The link is fine, the window is the bottleneck. Window scaling or parallel streams close the gap.
If your internet connection is rated 1 Gbps but your cross-country file transfer peaks at 5 or 6 Mbps, the link is not broken and your ISP is not lying. The bottleneck is the TCP receive window on a high-latency path. A 1 Gbps link at 80 ms transatlantic round-trip with the default 64 KB window delivers about 6.55 Mbps, which is 0.66% of the rated speed. The link could carry 1000 Mbps, but TCP is only allowed to put 64 KB of data in flight at a time, and the acknowledgment takes 80 ms to cycle back.
By TechCompare · Updated
Calculator
Data Transfer Calculator
Configuration
Latency & TCP window model
Window-limited to 6.6 MbpsModel is on with 80 ms RTT (Transatlantic) and a 64 KB unscaled TCP receive window. Change the settings below to see how a different RTT or window affects the transfer.
NY to London, ~5500 km
Window scaling lets the TCP window grow past the 64 KB limit (up to 1 GiB). Modern Windows, Linux, and macOS enable it by default, but older firewalls, load balancers, and legacy consumer routers silently strip the option, reintroducing the 64 KB cap at ~40+ ms RTT.
Bandwidth-delay product limit
The TCP window, not the link, is the bottleneck. Your 1 Gbps connection is delivering 0.66% of its rated speed because the receive window (64 KB) can't stay full long enough at 80 ms RTT. That's the bandwidth-delay product at work.
Speed Comparison
How this is calculated
There are several reasons a transfer runs below the link rate, and the bandwidth-delay product is the most common one people miss. The checklist, roughly in order of likelihood: the TCP window is smaller than the bandwidth-delay product (common on WAN and cloud transfers), the transfer tool is single-threaded and cannot parallelize, the disk at one end cannot sustain the link rate, the link is shared and contended, or the protocol (SMB, NFS, HTTPS) has per-connection overhead. On a local LAN the window almost never matters because the RTT is under 1 ms and even a 64 KB window cycles fast enough to fill a 1 Gbps link. On a WAN the window is the first thing to check, and the test is whether enabling window scaling materially changes the throughput.
Verdict
A file transfer running at a fraction of the rated link speed is almost always bottlenecked by the TCP receive window on a high-latency path rather than by the link itself, and the 1 Gbps transatlantic example is the cleanest proof: at 80 ms round-trip the default 64 KB window delivers 6.55 Mbps, which is 0.66% of the 1000 Mbps the link can carry. The diagnostic order that resolves most real cases is to check whether window scaling is negotiated first (because that is the cheapest fix and the most common silent failure), then check whether the transfer tool is single-threaded, then check whether the disk at either end can sustain the link rate, then suspect link contention. The structural reason a naive size-over-speed calculator misdiagnoses this is that it assumes the link is the only bottleneck, which is true on a LAN and false the moment the RTT crosses roughly 10 ms.
More WAN scenarios
Related guides
Frequently asked questions
Why is my transfer speed slower than my internet speed?
How do I speed up a slow WAN file transfer?
Is my ISP throttling my long-distance transfers?
Does a VPN make WAN transfer latency worse?
Related tools
Display Bandwidth Calculator
Check if your HDMI/DP cable supports your resolution and refresh rate.
Use tool ➜RAID Calculator
Calculate usable capacity and fault tolerance for RAID 0, 1, 5, 6, and 10.
Use tool ➜RAM Latency Calculator
Convert DDR3/DDR4/DDR5 timings (CL, tRCD, tRP, tRAS) into true latency in nanoseconds.
Use tool ➜Data Read Visualizer
Visualize the massive speed difference between CPU cache, RAM, and storage.
Use tool ➜