Released: 24.3.2012. by Dementorion Protection Paladin of Neltharion
Updated:
You can find my most popular guides here:
Disclaimer: Follow this tutorial at your own discretion, I am not resposible for any damages that may occur due to lack of experience.
This guide is about tweaking or disabling Nagle's alogrithm.
Disabling "nagling" allows for very small packets to be transferred immediately without delay.
Note that disabling Nagle's algorithm is only recommended for some games, and it may have negative impact on file transfers/throughput.
The dafault state (Nagling enabled) improves performance by allowing several small packets to be combined together into a single, larger packet for more efficient transmission.
While this improves overall performance and reduces TCP/IP overhead, it may briefly delay transmission of smaller packets.
Keep in mind that disabling Nagle's algorithm may have some negative effect on file transfers, and can only help reduce delay in some games.
{NIC-id} is key (folder icon) with some random numbers, in wich "DhcpDefaultGateway" exists.
That is the only key that should have "DhcpDefaultGateway" with some value like 192.xxx.xxx.xxx.
That is {NIC-id}, write down that numbers and letters. Because of those different {NIC-id} I cannot provide you .reg key to activate or deactivate this tweak.
To implement this tweak, in the registry editor (Start>Run>regedit) find:
This setting configures the maximum number of outstanding ACKs in Windows OS:
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-id}
Under this {NIC-id} key, create a new DWORD key:
TcpAckFrequency and give value of 1 (DWORD value, 1=disable, 2=default, 2-n=send ACKs if outstanding ACKs before timed interval. Setting not present by default).
For gaming performance, recommended is 1 (disable). For pure throughput and data streaming, you can experiment with values over 2.
If you try larger values, just make sure TcpAckFrequency*MTU is less than RWIN, since the sender may stop sending data if RWIN fills witout acknowledgement.
To configure the ACK interval timeout (only has effect if nagling is enabled), find the following key:
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-id}
TcpDelAckTicks and give value of 0 (DWORD value, default=2, 0=disable nagling, 1-6=100-600 ms). Note you can also set this to 1 to reduce the nagle effect from the default of 200ms without disabling it.
Also, find the following key (if present, if not you can create keys which are missing or you can skip this step and test results):
Code:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters
Add a new DWORD key:
TCPNoDelay and give value of 1 (DWORD value, 0 to enable Nagle's algorithm, 1 to disable, not present by default)
1. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
2. Right click on right side of window New > Key > Name it MSMQ
3. Enter MSMQ, right click on right side of window New > Key > Name it Parameters
Add a new DWORD key:
TCPNoDelay and give value of 1 (DWORD value, 0 to enable Nagle's algorithm, 1 to disable, not present by default).
Restart computer and see how much is your latency in game.
XP/2003 needs hotfix or SP2 for it to work (MS KB 815230)
Vista needs hotfix or SP1 for it to work (MS KB 935458)
This guide is 80% copy/paste from somewhere on internet but Im using this for World of Warcraft since 2.4.3 version. If your average latency is under 90ms, I think that you dont have to do this, anyway, try it, and test it, if it doesnt work, you can revert changes.
Please say thanks if my guide helped you, to keep this thread alive. Thanks.