«

»

[Guide] How to Lower Your Latency: a Compendium

Introduction:

I originally compiled this guide in December of 2008. At the time, I was heavily playing World of Warcraft during a period when latency issues abounded due to Lake Wintergrasp. On top of this, a certain ISP *cough* Comcast *cough* was also causing a lot of issues based on their own internal designs. Yet, even though Comcast customers had it worst, they weren’t the only folks suffering from ping-stress. I, as a Roadrunner customer in Western New York, suffered to. Strangely, it was only in instances where my computer had to trace a different path to connect to the game.

As a mage, the high latency made playing effectively almost impossible. So, I searched and scoured and scrounged though the interwebs until I uncovered every tip and trick I could find. Wanting to avoid going through that hassle again, and hoping to help others steer clear of it too, I put this together in the hopes that MMORPG’ers everywhere might benefit.

I’ve left the guide in its original form. Somehow, I feel that it captures the mood in which it was written better than an introduction would be able 🙂

If you have a tip or trick that’s not included below, please email me at admin@gamebynight.com. Enjoy!

The Guide:


Comcast customer’s had a lot of trouble with latency this past week but I have a secret… it wasn’t just them. Many Roadrunner customers were also affected, myself being one of them. Unfortunately, Blizzard refused to acknowledge the issue despite the many posts cropping up on the forums.

It affected me drastically actually but, honestly, had been occurring for some time. You see, I recently moved about five minutes outside of Rochester, a pretty big city in western New York, from a small rural town. Right around the time I moved, I noticed that my latency began to vary a lot. Being on the east coast, I’d usually sit at about a 300ms ping (tracked by the spell with Quartz). After the move though, I’d be at 300ms, then 500ms, then 200ms, then 700ms, and so on. I chalked it up to the move though. Over this past week, every 10-20 minutes I would get spikes of up to 3600ms. I’d pull a mob, cast a spell, and then watch it run in place for a few seconds until my screen exploded with scrolling combat text and either it, or me, died.

It culminated in my first Violet Hold run. I went in doing pretty well. My ping fluctuated between 350-450ms, nothing big but not too great either. Then, when we hit the first boss, I hit about 1200ms. It dropped but went back up again quickly. The highest I hit was 7800ms and I felt lucky to have not lost my connection completely. I apologized to the group and hit the technical support forums looking for help.

I got some, albeit indirectly (Blizzard wasn’t responding to Roadrunner threads). By doing the following I was able to stabilize my connection and drop my latency.

[Join me after the break for the full, 12 steps to guarantee improved latency. Cut off due to length.]

  • First, the obvious: update the drivers for your Ethernet card. You can do this by going to the device manager, locating the card, right clicking on it and selecting “Update device driver.”
  • Second, the not so obvious but still important. Close any background applications you’re not using. A lot of programs have networking functions that access the internet and more. This can cause a lot of issues for your ping rate and CPU, so close them out. I make it a point to close out most things not listed as “system” under the “user” column of the task manager (be sure to have “show processes from all users” checked). Apart from that, I shut down everything associated with my anti-virus (AVG Free) and anti-spyware programs (Winpatrol, Spybot S&D), Windows Searching and Indexing, and Windows Media Player/Center networking services. You don’t use them when gaming anyways and they can have a decent impact on game performance. Black-Viper has some good tips on what programs you can disable. Speaking of searching/indexing…
  • [General Performance] Disable searching/indexing of your WoW/other gaming folders. Vista has a nasty habit of indexing programs at inconvenient times… you know, like when system performance is important. Even great systems take performance hit due to this. Go to your game’s folder and right click on it. From there, go to the advanced options. You can then choose to keep the folder un-indexed. Make sure to apply it to all subfolders.
  • Disable all checksum offloading options for your network interface card. You can do this by going into your device manager, locating your card, right clicking on it and going into properties. From there, go to the “advanced tab.” Anything that says “checksum offloading” set to disable. This dropped my latency by about 50ms and has helped a lot of other people. *Not all cards offer this option.
  • Force your NIC card to the maximum duplex setting. This can be located located in the same area as above. On most cards, this will by full duplex and 100mbs. Your setting will depend on your maximum internet connection bandwidth. Most ISPs will (such as Time Warner, Comcast, AT&T, etc) provide this level of service in their standard packages. Find out what your connection is and make this change accordingly.
  • Set your card to optimize bandwidth. This option is also available in the “advanced” tab described above. On my laptop, it’s found under the “Roaming Decision” section; however, I’ve found that it varies a little bit from card to card. Again, not all cards will have this option.
  • Disable the power-saving options of your NIC. Most explicitly, turn off your pc’s ability to turn it off to save power.
  • Disable any addons that report game data on other players. As much as I love Omen and various damage meters, I found that disabling them when they’re not needed helps a little bit. These addons send and receive extra information to process and report back to you, thereby affecting latency. You can decide whether or not you can live without these and when.
  • Refresh your Cache, Interface, and WTF folders. This, along with router firmware (coming up), made one of the biggest differences in connection consistency for me. Despite the fact that it’s one of the most overused suggestions from Blizzard – for about any problem you’ll encounter – I’m still recommending it. Before looking into it, I tried my own variation. I deleted the WTF folder and, because I hate re-downloading addons, cleared out my interface folder of mods I didn’t use any more. There was almost no improvement. Surprisingly enough, when I found out about deleting Cache, it dropped my latency a bit and decreased the frequency and intensity of lag spikes. I don’t know what was in there but it helped and didn’t affect any other area of game play at all.
    • Delete/Update Questhelper. I don’t use it but I’ve heard that it’s caused problems with latency and the UI as well. I know lots of people do use this addon though, so consider updating it. Alternatively, try Lightheaded, DoubleWide, and Cartographer. That trio will allow you to view wowhead notes in your quest panel and set waypoints (big arrows) that point you in the direction of quest objectives. It also gives you information on rewards, exp. Gains, strategies, and more.
    • Delete your character specific Cache folder. Via the forums this morning, if you’re only deleting Cache (like I’ve done, I hate reconfiguring all my addons) you should also be deleting it specifically for your character at: World of Warcraft\WTF\Account\AccountName\RealmName\CharacterName.
  • Update your router’s firmware. As I mentioned above, this affected my connection’s stability for the better. Right after, I noticed that big spikes were decreased. It’s also something that’s highly recommended by Blizzard staff. Usually, new firmware is available from the manufacturer’s website. I’m only familiar with Linksys but, for them, you have to load the firmware file from your router’s web interface. Check the interwebz. They’ll steer you the right direction 51% of the time.
  • Set up a static IP address and port forwarding. WoW and the Blizzard Downloader use port number 3724. Check out port-forward.com for instructions on how to do this with your router. It helps.
  • Configure your firewall to accept WoW’s connection: The how-to for this will depend on the brand of firewall you use. Ultimately, you want to make TCP port 3724 and UDP port 6112 exceptions. Additionally, you’ll want to make WoW.exe a program exception. If you’re experienced altered latency or lag spikes in instances, this should fix it. Please note, it is possible to disable your firewall. According to a blue poster I corresponded with on the tech. support forums, simply disabling it (even manually disabling the service if it’s Windows Vista firewall) does not do the trick. You can’t just shut it off and expect it to work right (like I did, doh!). You have to configure it to accept the above to truly stabilize your connection. Thanks Evanm!
  • Take advantage of your router’s Quality of Service (QoS) settings. If your router firmware offers this function, use it! QoS allows you to set the priority of packets coming/going from applications and/or ports. What this means is that your router understands WoW, or whatever, is more important than anything else your computer is trying to do through the internet. When I set this up, I didn’t notice any real decrease in quality for other applications. Try it out.
    • There are also many third-party sources for router firmware that may offer additional features. If your router does not offer QoS, consider doing a quick internet search. Be aware that using any third part software entails a certain amount of risk. Inform yourself as much as possible before installing new software.

It’s a lot but the above dropped my reported latency by a solid 100-150ms. Haste gear now helps again! Now, Quartz still reports fluctuation. The difference is there, however, because it’s now fluctuating between 150-350ms instead of 350-800ms. In the open world, I’m no longer getting the huge spikes. As a matter of fact, the biggest spike I’ve gotten in the open world has been about 450ms. In Violet Hold, like most instances, the ping was a little higher than open world but not much and the spikes had disappeared.

TcpAckFrequency

Or, “Oh crap! How do I change it back?!”

There is one final option for helping your latency and that’s to modify your system registry. You can find the details for this on the forums but I’ll include it here to help you avoid internet searches.

I should also note that I didn’t find it necessary to complete this step. While I’m sure it would help, I’m not too keen on messing with my registry to help game play. For me, it’s a last resort.

Before I give you the details, there are a couple of very important disclosures.

First, your registry details how your computer functions in every regard. Making changes to it is not recommended for anyone unfamiliar with it. I’m not suggesting you make this change, even though it’s been said to work in almost every circumstance. If you do so, please only do exactly as is detailed otherwise you may have a very expensive paperweight on your hands.
This change will slow your download speeds for other applications. If you don’t download or use any other high bandwidth applications (including streaming video) then this probably won’t affect you. If you do do these things, consider changing your registry back when you’re done with WoW. It shouldn’t take long.

Okay, with that out of the way, there are two parts to this. Here’s what you do (courtesy of Elitist Jerks):

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

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.

I have found the performance to be at least as good as routing via a linux box, possibly better.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

There you have it. The hotfix described above can be downloaded here. Thanks to Baalzaman of Elitist Jerks.

So, if you’re having problems with your latency, try out the above. Oh yeah, and feel free to try your ISP. If they help you, you’re one of the lucky ones. I, unfortunately, wasn’t lucky enough to have ISP support I could put faith into. After a few days of searching, the above was the end, very functional, result.

Do you have any tips for dropping your latency? I plan on keeping this post on the sidebar for easy access, so feel free to share any advice you have. Your fellow gamers will appreciate it!

*Update #1: Added the forced duplexing option I forgot to include in the initial write up.

*Update #2: Added a bullet on configuring your firewall to accept WoW.

9 pings

Skip to comment form

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

CommentLuv badge