Latency Reduction Fix

Started by usonian, January 15, 2008, 07:09:32 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

usonian

I just read this article on http://www.mmo-champion.com about reducing your latency via some sort of registry fix.  I have no idea what is technically happening here but maybe some of our computer genuises can explain and see if it's safe or not.  This would be awesome for improving all kinds of timing issues in Arenas, Battlegrounds and even some PvE situations.  Lots of warnings of course, so don't go messing up your computer unless you know what you're doing.

Lag fix - Repost

I hesitated a lot before reposting it, but I didn't have any hate mail saying "omg you broke my computer !" the first time, so I'll assume it's fairly safe. (It's not like you'll be able to send a mail to complain if your computer isn't working anyway, right ?)

A few weeks ago I posted this fix from the ElitistJerks forums and it worked well for most of the people but it's not really safe and it was supposed to be fixed in 2.3.2, however it seems that the Nagle Algorythm fix in the 2.3.2 patch isn't as effective as expected for most of the players, and if you're in desperate need of a lower ping this is still the best way to go.

<><><> Read this first <><><>
1 - It might have side effects, like slowing down your download speed or affecting your performance on other softwares. (In most case, it doesn't change anything, but you've been warned)
2 - If you're not sure about what you're doing, just don't do it. I don't want to be responsible because you crashed your computer in some way because you made a huge error when editing the registry.
2.1 - Seriously, if you don't know what you're doing, don't do it.
3 - If you don't have the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\ directory, you can download and apply this file to your registry.
4 - Windows Vista users might want to check this post too.

Source - Elitistjerks.com

1 - TcpAckFrequency - NOTE if you are running Windows Vista this setting may not have any effect - a hotfix is needed which i'm tracking down. This works fine under Windows XP

Type "regedit" in windows "run.." dialog to bring up registry menu

Then find:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

There will be multiple NIC interfaces listed in there, find the one you use to connect to the internet, there will be several interfaces listed (they have long names like {7DBA6DCA-FFE8-4002-A28F-4D2B57AE8383}. Click each one, the right one will have lots of settings in it and you will see your machines IP address listed there somewhere. Right-click in the right hand pane and add a new DWORD value, name it TcpAckFrequency, then right click the entry and click Modify and assign a value of 1.

You can change it back to 2 (default) at a later stage if it affects your other TCP application performance. it tells windows how many TCP packets to wait before sending ACK. if the value is 1, windows will send ACK every time it receives a TCP package.

2 - TCPNoDelay
This one is pretty simple (Discussed here)

Type "regedit" in windows "run.." dialog to bring up registry menu

Then find:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters

Right-click in the right hand pane and add a new DWORD value, name it TCPNoDelay, then right click the entry and click Modify and assign a value of 1.

Click Ok and close the registry editor, then reboot your PC.

Once you're done with the technical stuff (it probably won't take more than 1 minute if you're not too bad at it), you can finally get your reward.

Even if in this case, the fix was used to decrease a very high ping, it seems to work very well on low (~100ms) ping for some people (lowered to ~20 or ~30ms).

Nixphire

I'll see if I can find more info on those keys. But please, PLEASE if you're going to do this, back up your registry first. If you don't know how to do that, you probably shouldn't be looking through the registry. I might even change the post to just say open the registry editor and not give the specifics, if you don't know how to open it, probably shouldn't be in there either.

Nixphire

From MS
QuoteThe Nagle TCP/IP algorithm was designed to avoid problems with small packets, called tinygrams, on slow networks. The algorithm says that a TCP/IP connection can have only one outstanding small segment that has not yet been acknowledged. The definition of "small" varies but usually it is defined as "less than the segment size", which on ethernet is about 1500 bytes.
http://support.microsoft.com/kb/235624/en-us


QuoteTcpAckFrequency is a new registry entry in Microsoft Windows XP and Microsoft Windows Server 2003 that determines the number of TCP acknowledgments (ACKs) that will be outstanding before the delayed ACK timer is ignored.
MORE INFORMATION
As specified in RFC 1122, TCP uses delayed acknowledgments to reduce the number of packets that are sent on the media. Instead of sending an acknowledgment for each TCP segment received, TCP in Windows 2000 and later takes a common approach to implementing delayed acknowledgments. As data is received by TCP on a particular connection, it sends an acknowledgment back only if one of the following conditions is true:
• No acknowledgment was sent for the previous segment received.
• A segment is received, but no other segment arrives within 200 milliseconds for that connection.
Typically, an acknowledgment is sent for every other TCP segment that is received on a connection unless the delayed ACK timer (200 milliseconds) expires. You can adjust the delayed ACK timer by editing the following registry entry.
http://support.microsoft.com/kb/328890/