How to boost TCP download throughput on Windows

I’m quite often being asked by people testing wireless products: why is my single session TCP (FTP or HTTP single file transfer) throughput below 30Mbps when using Windows machines? In 90% of the cases the reason for that is very simple: because Windows TCP receive widow dynamic adjustment is not working properly! TCP transfer throughput is affected by the connection latency (time that data packets and acknowledgement packets have to travel from one end to another). If dynamic TCP receive widow adjustment mechanism is working properly – we are able to fulfil the capacity of the link with traffic = get faster downloads. This mechanism works properly on most of the Linux based OS but not on most of the Windows platforms (with default networking configuration)…

Please read very interesting article with more detailed explanation here:

https://www.duckware.com/blog/how-windows-is-killing-internet-download-speeds/index.html

and have a look below how I have increased my single session TCP throughput by executing just one command (netsh interface tcp set heuristics disabled) on my Windows 7 laptop.

Test configuration:

  • Cambium ePMP1000 GPS Synced Access Point fed with 250Mbps capable Internet traffic, 40MHz, TDD 75:25, Max range 5km
  • Cambium ePMP1000 Force180 Subscriber Module associated with AP (over the air)
  • laptop with Windows 7
  • Mozill Firefox used as http client for single file download
  • NetPerSec used for throughput measurements

Test 1 – default Windows settings (netsh interface tcp set heuristics enabled)

Single file download from one of the Ubuntu’s mirror – ~1000km away from my location

http://caesar.acc.umu.se/mirror/ubuntu-releases/wily/ubuntu-15.10-desktop-amd64.iso

enabled.png

Following the article mentioned above, I’ve disabled “Windows TCP receive window Scaling heuristics method” - on my Windows 7 laptop - by executing single command in command line interface (cmd.exe has to be launched with Administrator rights):

netsh interface tcp set heuristics disabled

Test 2 – modified Windows settings (netsh interface tcp set heuristics disabled)

The same single file download from one of the Ubuntu’s mirror – ~1000km away from my location

http://caesar.acc.umu.se/mirror/ubuntu-releases/wily/ubuntu-15.10-desktop-amd64.iso

disabled.png

I’ve got 5-7 times faster download in single session!

Average 100Mbps vs 21.4Mbps

Peak: over 150Mbps vs 22.5Mbps

It does make a difference!

Now is your turn. Following the article please check your system settings by executing the command:

netsh interface tcp show global

look for:

“** The above autotuninglevel setting is the result of Windows Scaling heuristics overriding any local/policy configuration on at least one profile.”

and if that present execute the below command and enjoy faster downloads experience!

netsh interface tcp set heuristics disabled

The throughput increase will be higher for far located servers (in fact for those with higher latency) and lower for servers located closer to you (in fact with lower latency).

ePMPMaster

10 Likes