+1 (617) 7782998 |

Windows Server 2012 and TCP slow start


TCP slow-start is an algorithm used by TCP to explore the amount of data that the network can transmit without causing congestion. Per RFC, the initial assumption about this is fairly pessimistic, and increasing this value lead to a snappier web experience, as more data can be send in the initial network packets.
For an in-depth writeup, see Faster Web vs. TCP Slow-Start by Ilya Grigorik (Google). Increasing the initial congestion window helps in making the first tcp packets deliver more useful data (e.g. the head section of the html page, allowing the browser to initiate fetching of other css and js resources faster).

With Windows Server 2012, using an elevated PowerShell console you can set the initial congestion windows like this for port 80 (plain http) and 443 (https / ssl):

C:\>New-NetTransportFilter -SettingName Custom -LocalPortStart 80 -LocalPortEnd 80 -RemotePortStart 0 -RemotePortEnd 65535
C:\>New-NetTransportFilter -SettingName Custom -LocalPortStart 443 -LocalPortEnd 443 -RemotePortStart 0 -RemotePortEnd 65535
C:\>Set-NetTCPSetting -SettingName Custom -InitialCongestionWindow 10 -CongestionProvider CTCP

If you are on Windows 2008 R2, Andy Davies has written an article on how to configure this.

Share View Comments