Windows 7 has a default maximum upload (and download) rate.

To increase the upload/download rate the following can be done:

1) Regedit:

[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \Afd \Parameters]
DefaultReceiveWindow = 1024000
DefaultSendWindow = 1024000

If these keys are not present, the default is 8KB for both which was the amount of data

2) If the DefaultSendWindow /¬†DefaultReceiveWindow value is not in there, you will need to add it. Right-click on the right column and choose “New > DWORD Value (32-bit)” and name it DefaultSendWindow (DefaultReceiveWindow). Make sure that you enter it exactly like that, with the first letter of each word capitalized.

3) Calculate your ideal send window value by using this easy formula:

(Upload Speed Kbps / 8 ) * 1024 = DefaultSendWindow
(Download Speed Kbps / 8 ) * 1024 = DefaultReceiveWindow

Example:

Advertised Upload: 15 Mbps = 15,000 Kbps

(15000 / 8 ) * 1024 = 1920000

4) Once you have the value, double-click the DefaultSendWindow value and make sure the “Base” part is on Decimal. Enter the number you got from the formula above into the value field, then put the radio button on “Hexadecimal” and click OK. The value needs to be in hexadecimal format for it to work right, but it is easier to calculate the optimal value in decimal format so that is why I said to enter it in decimal then change it to hex before saving.

5) Restart your system and then go try out a speed test from the links below and see how your upload speed is. Choose the server closest to you to get the best result:

For download make sure that:

netsh interface tcp show global

does not show

Receive Window Auto-Tuning Level    : disabled

Otherwise TCP Window Scaling is disabled not only for receiving but also for sending which will significantly limit the connection speed. To enable TCP Window Scaling set Auto-Tuning level for example to normal:

netsh interface tcp set global autotuninglevel=normal

You can access netsh by opening a command window (windows CMD) and typing netsh.