Improve network performance for games

I was experiencing severe performance issues for ages and never could really pinpoint the source. CS:GO was pretty much unplayable because headshots were hardly ever registered as such even though I was 200% sure I nailed a headshot. And lately in Natural Selection 2 (NS2), attacking enemy and not getting the kills.

Someone from the NS2 dev team and a TAW NS2 clan member (TAW DCDarkling) suggested to check the game networking stats (you can usually enable it in most games by opening console menu in a game and using “net_stats 1” command to enable packet statistics) and they were off the charts. Big packet loss and a lot of out of order packets. And I figured out a rather simple solution without the need to change ISP as initially suggested by people 😛

I’m using Intel Pro LAN on my Sabertooth X99. And all I had to do to fix the issues was to change the advanced settings for it. I remember seeing the same/similar settings on Marvell and Realtek controllers so things are pretty similar.

The thing is, all these technologies/settings on network adapters ensure data transmission reliability at expense of increased delay. Which by itself is no problem for regular downloads, but very bad for online gaming. You can’t fix or change how game server behaves, but you can at least ensure client side (your system) is behaving as good as possible for gaming. I’ve seen a dramatic improvement, experience my vary depending on many other factors so don’t expect this guide to magically overcome old copper connections to your house or badly done internet wiring through your home…

Setting network card settings (Windows 8.1 and Windows 10)

Right click on Start button and select Device Manager. Look for Network adapters and double click it. Right click on a network adapter listed in this category and select Properties. Click on Advanced tab.


  • Disable Adaptive Inter-Frame Spacing
  • Disable all power saving settings (Green, Eco, Power Saving etc)
  • Disable Flow Control
  • Disable Interrupt Moderation
  • Set Interrupt Moderation Rate to OFF
  • Set Enable PME to DISABLED
  • Disable all features with “Offload” in the name
  • Disable Packet Priority & VLAN
  • Disable Jumbo Packet

Most of options in this category ensure reliability, but cause delay in network traffic, resulting in game network data being late when it should have already been processed, meaning kills you were suppose to make in a game never happen in time, which is always bad.

  • Set Receive Buffers and Transmit buffers to 96

Connection buffers are a different beast. In one way they help prevent data loss if data can’t be processed in time by your system, but having data in the buffers means it will have a delay again before it actually reaches the game engine (because it’s sitting in the buffers, waiting to get through). If you have a really fast system, using very low values will help reducing the delay because network adapter will be forced to “flush” them faster. With low end systems it may cause packet loss because network adapter will simply drop/reject packets that can’t be fit into the buffers. My Intel Pro LAN only goes as low as 80, but I know Realtek Gigabit LAN goes even below 32. If adapter allows even lower values, experiment with them.

  • Set Receive Side Scaling (RSS) to ENABLED
  • Set number of RSS Queues to a higher value value (2 in my case)

Receive Side Scaling (RSS) helps utilize multiple CPU cores in order to process received network packets faster and spread CPU utilization across many CPU cores. Having this enabled will ensure Receive and Transmit buffers will not get overflown by data, allowing you to have them set to a very low value. It may induce a slight DPC delay because multiple cores have to synchronize communication between each other, but I think faster processing in general helps more than slightly higher DPC delay penalizes it. RSS Queues number defines how many CPU cores will be utilized for network data processing. Value of 2 means 2 out of my 6 cores (Intel 5820K) will be used for networking. Checked the second Realtek LAN chip on my motherboard and it allows me to set up to 4 RSS queues.


After I’ve changed the settings, average received packet loss has dropped from 10-12% down to 0% (which is what you want at all times!). Out of Order value also dropped from ridiculous 480 down to like 9 or 12 after being in a game for several minutes. Which is acceptable though I’ll try to fiddle some more to make it even lower if possible.

I’ve also noticed my kill:death (kd) ratio has improved dramatically as well as less complaining over kills that didn’t happen even though they should have. So, try it, if you have horrible networking issues like I had, you can’t really make it worse lol 😉

Please note that I’m not an expert in networking, all the stuff described above is what I’ve learned from reading various networking documents and my past knowledge on how computers and networking works. If you have any corrections, please, tell us down below in comments section and I’ll update the info. I may also update this article in the future if I find any other game changing settings that improve things even further.

15 thoughts on “Improve network performance for games

  1. I’ve also tested CS:GO and things are a bit better. Though, hit reg is so fucked up I’m now starting to wonder if Valve has spent decades on researching and developing the most fucked up, broken netcode anyone can code and place into a game. And they surely succeeded. It’s that fucking broken. Also, you can imagine how bad it used to be if it’s still this shitty even after the networking settings change…


  2. Applied these settings, all but PME as I don’t have that. Should prove interesting if there is any improvement, won’t hold my breath as my ISP is just that bad, I doubt I would be able to notice.


  3. I do these tweaks as well, they work. I tweak the Receive Buffers and Transmit buffers & queues from the Registry. I have a number of gaming tweaks but i dont have UI. Some of them are my own & cant be found in internet.If someone can work with me to make small program would be great.


      1. Ok.So you can make an interface. I need different settings in a colon one below the other with on/off toggle or 2 options on & off and to be able to put different batch and .reg files. Can you do that?


    1. Not that it literally says “Intel Ethernet Connection” on the screenshot… I also don’t get it why everyone glorifies Intel networking so hard. I’ve had Realtek, Atheros, Intel and now Killer and they are all the exact same shit.


    1. Larger buffers prevent packet loss, but they induce delay. Smaller buffers ensure timely flow of packets because they need to constantly be flushed to have space for new packets, but in case of overflow (when there are more packets than buffer can process), it’ll drop packets and you’ll experience lag. So, finding good balance between both is key to have improved registration.


      1. Thats not quite true. Larger buffers ensure you have enough space so no need of flushing. The flushing causes small delay, not the other way around. Bigger buffers ensure the flushes will be less frequent. Also that depends on your hardware, its not a rule. In fact Intel recommends to increase them for lower latency. There is a way to increase them even further, outside their specs. You can check my blog if you wanna know how (RSS Queues too). RSS is also an offloading feature btw and you need to enable checksum to work properly. Intel recommends to enable it and increase the queues for lower latency but the RSS profile is important here. It shows only on some drivers though. For absolute lowest latency maybe its best to disable RSS. Like in competitive gaming for ex. Again, that depends on the hardware.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s