Published on May 23rd, 2011 | by Bob0
>User Guide Request: Latency Tweaks
>A “Brief” Latency Tweak Guide
We had received a request via Twitter for advice on how to reduce ping in online games. There are plenty of factors involved with latency, and we could spend hours and hours discussing the subject starting from the basics, to discussing very high level networking. Grab a brew, sit back, and prepare for the wall of text. I’ll stick to the general, and try to simplify a couple quick changes you can make to your PC and your router that may have a positive effect for you.
Please keep in mind that these tweaks will not substitute for a high speed internet connection. In some cases, you may just need to acknowledge that it really is time to change ISPs. All results may or may not be perceivable – it’s entirely possible you’ll waste 15 minutes applying these tweaks and you won’t reap any benefit. You also have to understand the basics of latency – geographic location negatively impacts your ping to distant servers. If you’re trying to play a server on the other side of the planet, there’s virtually nothing you can do about it – play closer to home. Trans-ocean gaming is probably not the best idea in high paced online gaming.
PROCEED AT YOUR OWN RISK – this bare bones guide assumes that you understand the risks and the basic functionality of the Registry Editor on a Windows platform as well as the general usage of your home router. If you do NOT at this time, please return when you do. This may possibly have a negative effect on other network services throughout your LAN (and possibly WAN connection) and it is advisable to both proceed with caution and monitor your results diligently.
Now that we have that nasty disclaimer out of the way:
First items I have to offer are two changes to the way your PC handles TCP packets. TCP is used in the majority of the services and applications that we use on the web. Some games specifically utilize TCP rather than UDP (User Datagram Protocol) – I won’t go in to the virtues of each. Just be aware that some games rely on TCP to talk back and forth to the server, whereas others use UDP.
These Registry values do not exist by default in Windows XP, Vista, or 7 and need to be added manually. Your mileage may also vary between Windows XP, Vista, and Windows 7. Reportedly, these two tweaks have less of an effect in Windows 7. I can neither confirm nor deny. Again, please monitor your PC (and network) diligently after making the changes. Do yourself a favor if you’re running Vista – go ahead and punch yourself in the face now.
TO OPEN REGEDIT (if you don’t know how to do this, you probably should not proceed)
- Click the Start button
- Click Run
- Type “regedit” in the run box, without the quotation marks.
- Click Yes if prompted for elevated (administrator) rights (Windows 7 or Vista)
TCPNoDelay – this registry setting disables “Nagle’s Algorithm” which “optimizes” network traffic and increases “efficiency” by combining multiple smaller packets in to larger packets in order to reduce bandwidth used by TCP headers. This reduces overall packet volume through your router, but can hinder latency particularly in online gaming as your PC basically waits in order to stack smaller packets together, and ships them off together.
Here’s an analogy: Do you want to queue up at the bus stop with everyone else, or do you want to hop in to a waiting taxi with your bros? The bus will only leave with a full load, and you’re going to the same place either way. One is just quicker. For you.
Once you’ve navigated to the proper subfolder, right click in the right registry pane and click New > DWORD (32-bit) Value and name it “TCPNoDelay” exactly without quotations.
Right click on the new TCPNoDelay value, select modify, and enter a value of 1.
TCPAckFrequency – this registry setting works hand in hand with TCPNoDelay. It determines the number of TCP Acknowledgments pending before the delayed timer is ignored (Microsoft Support Link).
To continue with our Analogy, consider your PC as the destination from the server, and it’s waiting to count heads as they arrive whether by bus or by taxi. Instead of sending acknowledgement per bus load, it’ll acknowledge the TCP packets as they roll in. Please see this MSDN article for a detailed explanation.
Repeat the process from above, to create this DWORD (32bit) Value in the same folder as above. Right click on the new TCPAckFrequency value, select modify, and enter a value of 1.
Setting this value to 1 will force every packet to be acknowledged immediately and should improve realized latency.
Following these two changes, REBOOT YOUR PC and test thoroughly. If your ping has dropped sufficiently
I’m not even going to pretend to know what type of router that you have, so I’ll have to cover the following in general. You can refer to your user guide or manufacturer website in order to find how to change the default values.
Maximum Transmission Unit – this determines the size (in bytes) of the largest single data packet that can be passed along. Xbox Live for example requires a minimum MTU setting of 1364. Anything lower and your connection to Xbox Live will fail. In terms of PC gaming, if using a PPPoE (Point-to-Point Protocol over Ethernet) connection, it is recommended that your maximum MTU would be 1492.
A setting of 1500 is said to be the largest packet that can be transmitted without fear of fragmentation. This is the typical setting for anything but PPPoE or VPN connections. Refer to your router documentation, and your ISP IF NECESSARY. Their default value may be less for legitimate (or illegitimate) reasons.
Port Forwarding – This is where it gets a bit tricky of your NAT is not reporting as open. You may find yourself in a situation that requires forwarding a specific port, or range of ports, depending on the game of your choice. Refer to your game manual or support documentation (usually readily available on the web) as well as that of your router. Most important is to ensure that UPnP is enabled on your router.
http://www.dslreports.com/ is a personal favorite and a great source for tests and tweaks. You may find useful information on your connection in order to find ways to improve it.
Get a new router.
Mod your old router:
We received a great tweet from @Gussmeizter: For those who’d rather have a script perform the same functions, check out this link with a utility and a great write-up: http://www.wowinterface.com/downloads/info13581-LeatrixLatencyFix.html