PDA

View Full Version : Reducing latency



Teq
02-06-2008, 08:55 AM
I found this on my guildforum today (Thanks Moon). Although i dont realy understand it, it looks like it could be quite usefull for some of you.
Have a look :D


My latency was usually about 200 and by using the information in this thread ('http://elitistjerks.com/f15/t17761-server_locations_latency_australia/'), I managed to reduce latency to constant 100. Here's a summary of relevant information:



To get low pings with 2 simple registry hacks do the following. You need to apply both registry changes to get the maximum effect.

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\Servic es\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 ('http://technet2.microsoft.com/windowsserver/en/library/e6491291-872e-4260-8ced-77525b0d79a51033.mspx?mfr=true')

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

Then find:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Paramet ers

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.

For people with Vista there might be additional steps needed:


For Vista users, you can download this hotfix from here.

Vista 32 bit - http://thehotfixshare.net/board/index.php?showtopic=3265

Vista 64 bit - http://thehotfixshare.net/board/index.php?showtopic=5976

You will have to register on that site to download it, but it is free and I have never received any kind of ads or spam from them. Pretty good site for Windows hotfixes that are generally unpublished to the public on any kind of widespread basis.

Use it at your own risk, but it helped for me to cut latency in half :)

dRiN
02-06-2008, 08:59 AM
This has been included in the latest patch. I went from a constant 400 ms latency to a stable 50-100 ms. Others had annoying crashes ;).

Anihoe, I don't believe this gives any advantage.

But still thanks for posting this : )

Teq
02-06-2008, 09:07 AM
The OP of this information applied these changes after the last patch. Do you mean this will be incuded in the coming patch?... or... might this actually still be usefull?

Ah well. If you have lattency issues it might still be worth a shot :D

Eteocles
02-06-2008, 10:21 AM
It was in 2.3 or 2.3.2, aka it's live...I didn't notice any difference, so I may still try the above since it affects ALL windows connections, not just WoW's. I Also need to remember to do that damn WinMediaPlayer trick when I start up lol

Tehtsuo
02-06-2008, 10:29 AM
According to mmo-champion, the changes in the recent patch to reduce latency helped, but don't do as much as the afformentioned hacks. I have them done on mine, but as I already get 40ms it doesn't help too much. Dropped me down to around 32-35, but that makes me happy cause I'm a min/maxer.

dRiN
02-06-2008, 10:56 AM
Okay my bad, I have read about this before and they mentioned in that thread it would be applied in the blizz patch that is why I assumed it would not give any extra after the patch.

Will try this on my xp installation also to see if it makes any difference on the latency in WoW.

BobGnarly
02-06-2008, 02:36 PM
Yeah, I think Blizzard kind of made this confusing for everybody.

What they included in the patch was disabling Nagle, or "TCPNoDelay". However, the lion's share of the improvement that people were seeing from these two changes was actually the first change, namely the change to the ack behavior.

It's worth giving it a try, especially if you are > 100 currently. Everyone I know that has applied it has noticed a significant reduction (mine went from 180ish to 80-90).

Eteocles
02-06-2008, 02:48 PM
Yeah my ping used to be 60-70 most of the time...even without multiboxing, my ping has been no lower than 180 for a few months now, sundays it skyrockets to 200-300+ regularly, I'm a bit skittish about touching the registry though so I haven't bothered doing the whole thing yet, though I want to =\

BobGnarly
02-06-2008, 02:54 PM
Cool thing about actually following the steps given in this example, as opposed to just applying a patch, is that you can reverse it if it does something bad to your networking. Just go back in and delete that "TcpAckFrequency" dword, disable/enable the adapter, and you're right back to where you started.

Honestly though, I'd be very surprised if you notice it at all in anything else. I know I haven't.

Eteocles
02-06-2008, 03:06 PM
That's WoW for ya...where a simple registry change, or running a completely unrelated program can vastly improve performance for random people lol

BobGnarly
02-06-2008, 04:10 PM
That's WoW for ya...where a simple registry change, or running a completely unrelated program can vastly improve performance for random people lolheh, yeah. How they went this long without figuring out that Nagle on a latency sensitive application (like a video game) is not a good idea is a bit of a head-scratcher. :)

Chorizotarian
03-12-2008, 07:26 PM
This worked really well for me. My ping with 1 client is typically 70-100 ms. As I added more it would always creep us, usually to about 250 ms with 5 clients. Now I'm able to run 5 with pretty normal latency, maybe slightly higher but still < 150 ms. Ftw!

Btw, for you Vista users the hotfix above is in SP1.

Anozireth
03-12-2008, 08:09 PM
I just gave this a shot using only the TcpAckFrequency and it seems to have taken my ping from in the 250s to in the 190s for a single instance of WoW (Charter cable is terrible btw). I couldn't find the folder for TCPNoDelay so I didn't bother with it.

Chorizotarian
03-13-2008, 02:33 AM
I just gave this a shot using only the TcpAckFrequency and it seems to have taken my ping from in the 250s to in the 190s for a single instance of WoW (Charter cable is terrible btw). I couldn't find the folder for TCPNoDelay so I didn't bother with it.

It's the same registry key (folder). You have to create a DWORD value if it's not already present.

Sam DeathWalker
04-07-2008, 11:49 AM
I dont even bother to play if my latency is over 70ms, ususaly its 50 or so. I am in San Jose, Ca and the Servers are in San Deigo for EQ I think, 6 Meg dsl. I have two 1 gig connections to the router on my main.

I used this don't know if its any good or not though but it did seem to help

http://downloads.zdnet.com/download.aspx?&q=tz+connection&docid=189293

aetherg
04-07-2008, 12:10 PM
I live on the east coast, play on a west coast server. It's a great day when I'm at 200-250; usually I play at 300 or more. Honestly it isn't a big deal. Maybe one day I'll play from a low latency area and notice some huge difference, but I have zero problems playing at 300. It has to be over 400 before I notice, and over ~700 to really become unplayable.

Back pre-TBC, the top DPS in our Naxx guild played at over 1K ms from Taiwan. Spell cancel-queuing ftw!