PAYDAY 2

PAYDAY 2

95 ratings
A Better Online Gaming Experience
By Quark Bent
... by Low-Latency Tweaking

This guide's intended readers are people with minimal technical expertise, aka, computer noobs, and its goal is helping them tweak their Ethernet connections for better latency (with some nods to WiFi). Intermediate and advanced users may still find things of note.

Please take note that this guide features a heavy Windows focus, as still at the time of writing, it remains the dominant choice of operating system for online gaming applications. Due to the research and edit-heavy nature of writing the guide, it is only offered in English at present.

The current version of this guide is 0.99, as it is nearly done but it needs polishing in the reference section. It has been published as a steam guide before being finalised in order to increase the feedback rate (which was basically nothing since most of the testers I tapped for the project have already given theirs).

Noted Testers (including critical feedback): Homicidal_Kitty, hal69000, Rocky Malone
 
Rate  
Favorite
Favorited
Unfavorite
Introduction & Summary of Purpose
Hey, you! Yes, you!

Have you ever felt like the game developers gave every other player than you some magical connection advantage in your online gaming experience? Before you condemn companies for bad netcode, it’s worth taking a look at your own configuration.

This guide attempts to flow in increasing levels of technical difficulty (for the most part) balanced by the most likely order of causes. Don’t expect it all to get too technical too quickly (unless you try instructions out of some of my references).

The guide assumes you’re in an Admin account and features a heavy Windows focus, as at the time of writing, Windows remains the dominant choice of operating system for online gaming applications.

There are some tweaks relevant to Linux users here and there, but most of the literature floating around about these topics are Windows specific and that is reflected in the content and focus of the guide.

Firstly, computers in Windows that aren't set to High Performance will take longer to process network data, adding CPU-based latency to your connection.

Secondly, the Maximum Transmission Unit (MTU) size on Windows is often left at 1500 bytes, which can cause packets to fragment when it doesn’t match the internet line’s MTU size (e.g. 1492 bytes).

In other words, Windows doesn’t adapt to match the maximum of your line and will cause errors in sending and receiving, like how a cup can overflow and lose fluids. This doesn’t affect most internet applications but impacts games where time-critical online elements are involved.

Thirdly, the default settings for on-board Ethernet can often be good for the average end-user with a meager CPU, but a gamer who wants reduced latency (the delay in send/receive packet cycles) will find some of these settings make their latency worse.

In other words, a gamer with a capable CPU won't need some features, while some settings are better left on for a gamer with a CPU that maxes out. In light of this, it is important for the user to be comfortable in knowing what to experiment with in order to find the best settings for their network’s hardware and software idiosyncrasies.

With this in mind, I have attempted to detail the apparent consensuses amongst general users and professionals about certain features and functions, especially since many have tradeoffs that bear some consideration.

Fourthly, sometimes the adapter’s drivers are to blame for poor performance. Most modern systems, including Windows, feature a driver rollback that will allow you to experiment. You’ll likely want to install the latest drivers for your Ethernet adapter, especially if you can’t find any other likely suspects.

Fifthly, apparently net adapters are able to be 'turned off' by Windows. While not the most likely cause, it’s worth a look into if other fixes do little.

And sixthly, http://www.speedguide.net appears to have everyone, including me, covered on registry and other tweak guides relating to this very topic. Yes, even Linux.

Included is an entry on what to do about Nagle's Algorithm that is worth the consideration of any MMORPG player. Since it bears commenting, also included is a section discussing the value of ‘game boosters’, a style of dynamic process canceller.

In case you think there are some issues with the claims of the document, I did perform a fair amount of research for this. If you still find issue with some claims, i.e. you feel they’re misleading or inaccurate, please, help me improve the guide (my contact details are on the landing page).

Lastly, this guide was initially informed by another guide, which an intellectual debt is owed to.

And of course, thank you for reading! I hope this guide helps you game on.

0: Technical Details - Latency vs Throughput

This ‘step’ is for explaining some technical details that would impede the flow of the instructions and don’t merit being shunted to some ignored addendum.

For instance, one acronym you’ll want to be familiar with is NIC, Network Interface Card. While the intro refers to it as an ‘Ethernet adapter’, NIC is how most network hardware will be referred to by technical documentation.

You can skip this step if you feel adequately technical already. This ‘step’ is mostly for readers who might not really know why they’d want to aim for a low latency setup and just what balances of functionality they’re toying with.

From a Speedguide.net entry on gaming tweaks (which has been slightly altered for readability/clarity), which aptly summarises the issues at hand:

Originally posted by www.speedguide.net:
“In general, any type of packet or memory coalescing can reduce CPU utilization (also power consumption) and increases throughput, as it allows the network adapter to combine multiple packets. However, coalescing can also have negative impact on latency, especially with more aggressive settings, as it causes the network adapter to combine packets before interacting with other hardware.”

Quite loaded with jargon though, isn't it? Let’s unpack this paragraph a bit.

  • Packet/Memory Coalescing: Grouping packet/memory units before processing.
    • Packet: Data being sent through networks.
    • Memory: Data being stored for fast access.

  • Throughput: From SpeedGuide.net - “Throughput (or transfer rate) in data transmission is the amount of data moved successfully from one place to another in a given time period.”

    In other words, how quickly something uploads or downloads.

  • Latency: From TechNet - “Latency is the elapsed time between the network driver processing an incoming packet and the network driver sending the packet back. This time is usually measured in microseconds. For comparison, the transmission time for packets over long distances is usually measured in milliseconds, a.k.a. ping (1 millisecond is composed of 1000 microseconds). Tuning for lower latencies will not reduce the time a packet spends in transit.”

    Commonly confused with ping, the difference between ping and latency can be boiled down to ‘latency = process turnaround’ while ‘ping = transmission turnaround’.

  • CPU Utilization: How much usage the CPU is tasked with; more use can cause more latency at CPU-level or choke out available overhead (no room for CPU to breathe).

In essence, the main settings and features that can be altered to achieve lower latency often result in a loss of throughput in the network and a rise in resource utilization, as a majority of the algorithms that impact network latency are also dedicated to both saving CPU usage and increasing network throughput.

If this is the case, I’d be interested in hearing which settings worked best for you (as well as the parameters of your hardware), as I have had a limited testing base to work with while composing the initial drafts of this document.

1: Check High Performance Power Setting is in Use

From a TechNet source, Microsoft themselves suggest that users should, when performance tuning for microsecond-sensitive (aka latency) networks:

Originally posted by TechNet, aka Microsoft:
"Set the computer BIOS to High Performance, with C-states disabled. However, note that this is system and BIOS dependent, and some systems will provide higher performance if the operating system controls power management. You can check and adjust your power management settings from Control Panel.”

[PLEASE NOTE: This guide does not recommend disabling C-States unless you know what you’re doing. See the entry below.]

Configuring BIOS is machine specific; it’s simpler to let the technically minded head to BIOS on their own and instead have the guide help people work out a similar arrangement at the Operating System layer. Regardless, it bears noting that “this will not work properly if the system BIOS has been set to disable operating system control of power management” (TechNet).

Like the step title says, ensure the OS power management profile is set to the ‘High performance’ plan. To change/check the power profile:
  1. Access Search, type ‘Power Options’, open Power Options.
  2. Click the ‘High performance’ plan, if it is not already in use.
A dot will fill the tick-circle of the currently select energy/power plan. To confirm it’s been selected, make sure this dot is besides ‘High performance’.

If using a laptop, make sure not to set your on-battery plan to ‘High performance’ absentmindedly; you only want the plugged-in plan to be ‘High performance’.

PERFORMANCE TROUBLESHOOTING
SOURCE: https://support.microsoft.com/en-us/kb/815069

This MS guide focuses on troubleshooting gaming performance with suggestions. Keep in mind that the following suggestion changes how Windows looks overall. The gains are small, if they exist at all, and this entry is only included for the sake of reader discretion. The power options tweak from above is far superior to this. If you need to use this fix to have better gaming, you might want a new computer!
  1. Access Search, type ‘Control Panel’, open Control Panel, click System, and then click Advanced system settings. You will likely need the admin password.
  2. On the Advanced tab, click Settings under Performance.
  3. On the Visual Effects tab, click Adjust for best performance, and then click OK. Click OK
  4. Test your game, i.e., use an FPS counter and compare the results.

MORE ON C-STATES

C-states are a number of CPU-based activity levels that your CPU can change between as it adapts to your use. Disabling C-states can decrease run-time latency spikes that can be caused by idled-CPU C-states but it also leads to excessive use of the processor and, as a result, it is usually only done by overclockers.

Simply put, if you have no intent or ability to overclock, pay disabling C-states no mind. Especially since this is the easier section of the guide!

For more details, consult Microsoft sources and/or overclocking communities.

2: Test Your MTU Size
In order of causes, this step covers one of the most likely and easily overlooked, mostly because people aren’t even aware of this setting’s existence.

If your line has a Maximum Transmission Unit (MTU) limit of 1492 bytes per packet and Windows is trying to send 1500 bytes per packet, your line will constantly snip 8 bytes off the Windows-borne packet, causing fragmentation. Fortunately, while divining the correct value is its own work, the process of changing the MTU value is relatively simple and painless. You just have to be willing to use command-line!

There are, in fact, a couple of ways to do this step. The most self-reliant way is unfortunately the one that uses the most guesswork. Guides will tell you to drop back from a MTU value of 1492 by X until you hit 1400. Essentially, there’s a continuous process of trial and error for the end-user to do this all manually.

Since this guide is aimed at keeping things simple (as difficult as that may prove), I won’t delve into the instructions on how to do all that tedium. So without further ado:

FINDING THE CORRECT MTU SIZE – THE EASY WAY

So, you want less packet fragmentation with less work to do it? Go download SpeedGuide’s SG TCP Optimizer @: http://www.speedguide.net/downloads.php

Once you’ve done that:
  1. Right click ‘TCPoptimizer.exe’ and select ‘Run as Administrator’.
  2. Once launched, click on the tab titled ‘MTU/Latency’.
  3. Now click on the button ‘Largest MTU Size’; record result.
Done. Now you just need to tell Windows to use the result for the MTU.

SETTING THE CORRECT MTU SIZE

Open a Command Prompt in Administrator Mode:
  1. Access ‘Search’ function, either by Windows key or by mouse.
  2. Type ‘cmd’ (spelling out ‘command prompt’ works but Windows recognises ‘cmd’).
  3. Right-click on ‘Command Prompt’ and click ‘Run as administrator’.
  4. If prompted, click the ‘Allow’ button.

Once the Command Prompt is open, follow these steps to change the MTU size:
  1. Type ‘netsh interface ipv4 show subinterface’ then press enter. You will see a list of network interfaces. There should be one that is clearly your NIC interface, often blatantly labeled as “Ethernet”. Take note of this name.
  2. Type ‘netsh interface ipv4 set subinterface “NAME OF YOUR NIC” mtu=XXXX store=persistent’. Replace NAME OF YOUR NIC with the name that appeared in the Interface column from step 1. Set the MTU value to what TCP Optimizer prescribed.
  3. Once you’re sure you’ve typed the values correctly, press enter.
  4. Restart computer for the changes to take effect, as Windows is still dumb.
Anyone who still wants to do it the hard way will find this guide helpful:

http://www.tp-link.us/article/?faqid=190

3A: Configure NIC’s Advanced Settings

TO ACCESS THE SETTINGS

Microsoft’s How To: https://technet.microsoft.com/en-us/library/cc737429(v=ws.10).aspx

You need administrator access to make these kinds of changes.

To change network adapter settings:
  1. Access Search, Type ‘Device Manager’, Open Device Manager.
  2. Double-click Network adapters.
  3. Right-click the network adapter for which you want to change settings (the currently used one is the one we want), then click Properties.
  4. Find the ‘Configure’ button in the Properties window, click it.
  5. Switch to the Advanced tab and make the appropriate changes.

!!!WARNING!!! - Any applied changes to the NIC will reset the device to use the new settings, temporarily losing connection to the internet while it restarts..

!PLEASE NOTE! - Not all settings are shared with all systems. Some settings options may be absent from your NIC, often depending on the driver installed.


Primary Culprit Settings:
Critically impacting. Turn off with great prejudice; only leave on if CPU-load becomes too much for system throughput


Flow Control

RECOMMENDATION:
Turn off, in most cases. Ethernet Flow Control sends out a pause frame that tells other machines to stop sending it data until it’s ready to process more. It seems to be a rarely used feature that most technical sites disavow the use of. The only dissenting voice I could find with credibility is from TCAT Shelbyville.

REASONS TO TURN OFF:
  • Pause frames have disadvantages for games; in a stream, you can reacquire packets, but in a game where packets get sent once and only once, you miss data packets until your NIC/CPU is willing and able to accept new inbound data.
  • Pause frames from one port can cause issues in other ports, affecting other machines connected; a congested port for a computer with FC on can affect a computer without FC on in a parallel port, throttling the affected computer’s speed.
  • You use QoS; FC interferes with QoS functionality by choking ports with what’s known as “head-of-line blocking” across QoS’s priority queues. If you don’t use QoS, it’s an interesting option but it requires specific configuration. If you don’t already have it on, it’s more than likely you don’t need QoS services active.
  • Your local network is small (less than 20 or so connected devices) and to be fair, unless you live in a rich household, it likely will be.
  • You don’t know why you’d turn it on.
  • “In Realtek Gigabit Network Adapters, disable: Flow Control (Rx & Tx DISABLED). Disabling Flow Control can reduce timeouts and considerably improve throughput under Windows 8, most likely due to buggy implementation at the driver level” (SOURCE: SpeedGuide.net).
  • Microsoft themselves say to turn it off
  • So does Speedguide
  • TCP already uses its own dynamic flow control, whose methods don’t match VIRTUALTHREADS - FIX THIS REFERENCE

REASONS TO LEAVE ON:
  • You know what you’re doing more than I do.
  • Flow control is on for the other devices (routers/PC) in your network.
  • Your CPU can’t cope with the work demand of the network with FC off.
  • Data processing congestion in the local network. Shelbyville says that FC is “a way for a network device to tell other devices that it is overloaded with data. With the mix of devices we have today from smartphones, smartTVs, netbooks, tablets, gaming stations and other devices, FC can help your network. It in its basic form it allows a device to pause when it is receiving data faster than it can process. In other words, an overloaded device will send out a pause frame, that asks the device on the other end to stop sending data temporarily.” Their guide recommends turning everything else off and leaving only Flow Control on.
  • "It is generally safe to leave flow control enabled on computers” (SOURCE: Virtual Threads). They say to turn it off on any network hardware like switches.


Interrupt Moderation

RECOMMENDATION:
Turn off if you can afford to; your mileage may vary.

REASON(S) TO TURN OFF:
  • Acts like a packet buffer for sending interrupts. “Allows the network driver to wait for enough packets of information to be generated before sending them, lowering the necessary number of times the driver has to send an interrupt message, which in turn lowers the CPU latency. However this has a negative effect in situations where it is necessary for data to be sent immediately. Disabling Interrupt Moderation will slightly increase CPU time; however the trade off is better registry in games” (SOURCE: [PSA] REDDIT).
  • “Disable the Interrupt Moderation setting for network card drivers that require the lowest possible latency” (SOURCE: TechNet). Even Microsoft agrees.

REASON(S) TO LEAVE ON:
  • Depending on the program and the hardware, you may not have the CPU runtime to spare, as turning Interrupt Moderation off “can use more CPU time and it represents a trade-off” (SOURCE: TechNet). It’s possible that without this setting on, you will lose performance by increasing the already taxed CPU-load.
  • Other theoretical reasons are that it improves latency at the CPU and the gains on that level exceeds the loss of latency in the network... or the NIC can handle the offloads/buffers enough to justify the CPU latency gains.

AUTHOR’S NOTE:
This is usually the biggest culprit of the primaries. This is due to the idea of ‘one packet, one interrupt’ which helps mitigates non-recoverable packet losses common to problematic online gaming. The principle is that one packet comes in, it gets a response from your system, the CPU turns it around back to the network card and it goes back out, for each packet. When they build up, the interrupts leaving your system pile up and delay your response. It’s hard to see how this couldn’t make any online gameplay that relied on time-critical elements problematic.


Large Send Offload
Large Send Offload v2 IPv4
Large Send Offload v2 IPv6

RECOMMENDATION:
See if it impacts you first; most should benefit with it off. Try turning off after you turn off Interrupt Moderation and Flow Control to see if this solves your latency issues. Offloads depend on your NIC’s ability to handle them and whether or not they save your CPU work so your mileage may vary from user to user.

REASON(S) TO TURN OFF:
  • “All ‘Large Send’ offloads should be turned to off as they interfere with autotuning functions in Windows networking stack. Many of those features would improve performance on a busy network server, but not on a desktop machine at home. They're not there to benefit gaming latency, i.e. a situation where a small packet load is being sent and received with minimum interference” (SOURCE: RPGCodex).
  • PEER WISDOM SAYS TURN OFF - FIX THIS REFERENCE
  • “For Intel/Broadcom Adapters, Large Send Offload (LSO) can cause issues. Disable it at the adapter driver level, and possibly in the OS TCP/IP network stack” (SOURCE: SpeedGuide.net).
REASON(S) TO LEAVE ON:
  • ”Enable Static Offloads, for example, UDP Checksums, TCP Checksums, and Send Large Offload (LSO)“ (SOURCE: Technet). Microsoft gives no further reason so you should keep in mind that this quote is from a list of their suggestions for tuning and tweaking your network for low latency.

AUTHOR’S NOTE:
Most testers reported benefits from Interrupt Moderation being turned off if they already had it on. However, one of my testers didn’t have it on by default and still had issues, with Interrupt Moderation on or off and with Flow Control on or off. It wasn’t until the tester turned off their Large Send Offloads that they came into latency parity with the other testers who had turned off Interrupt Moderation.

3B: Configure NIC’s Advanced Settings

Secondary Culprit Settings:
Low/Medium impacting. Settings worth experimenting with as your mileage may vary depending on hardware support.

Auto Disable Gigabit

RECOMMENDATION:
Keep this turned off.

REASON(S) TO TURN OFF:
  • As per it’s namesake, it will stop any Gigabit connections from being made. Speed & Duplex’s Auto-negotiation is already able to make it’s own informed speed selection judgements on an end-user’s behalf. You want a large enough data pipeline for most online gaming sessions and having this on would reduce that by tenfold.

REASON(S) TO LEAVE ON:
  • WARNING - “Gigabit has much higher power consumption than 10/100 Mbps” (SOURCE: Superuser.com). Only leave it on if more power consumption is a concern. If it still concerns you, you may want to turn this off for your gaming sessions and then turn it back on when you’re done; it may prove a hassle but you’ll still be able to use the energy saving features without them affecting your performance.


Energy Efficient Ethernet

RECOMMENDATION:
Keep this turned off.

REASON(S) TO TURN OFF:
  • Sends the NIC to sleep mode when low activity detected; reports indicate the ‘wake’ function often doesn’t return it to full activity, and can turn off the device when false-positive lulls occur.
  • “It can be said that EEE is incompatible with real time applications, such as audio or video streaming, which can lead to degraded clock synchronization and audio interruption” (SOURCE: yamahaproaudio.com). Online games work in real time.

REASON(S) TO LEAVE ON:
  • Only reconsider leaving it on if more power consumption is a concern. If it still concerns you, you may want to turn this off for your gaming sessions and then turn it back on when you’re done; it may prove a hassle but you’ll still be able to use the energy saving features without them affecting your performance.


Green Ethernet

RECOMMENDATION:
Keep this turned off. It “enables the feature to detect the length of the connected network cable and adjust the voltage accordingly (lower for shorter cables)” (SOURCE: hardwarecanucks.com) and you don’t want that mid-game.

REASON(S) TO TURN OFF:
See Energy Efficient Ethernet; does the same thing (more or less)


IPv4 Checksum Offload
TCP Checksum Offload IPv4
TCP Checksum Offload IPv6
UDP Checksum Offload IPv4
UDP Checksum Offload IPv6

RECOMMENDATION:
Experiment. As an offload process, similar to Large Send Offload, Checksum Offloads try to send the process demands of network packets off the workload of the CPU and on to the NIC. Checksum Offloads are handled with varying levels of ability by different NIC as they depend on the NIC’s ability to work with them. Some NIC may have these on by default even if they can’t cope with it. “Enabling this setting had some negative effects in the past because of buggy network adapter drivers, however its implementation has gotten much better with time” (SOURCE: SpeedGuide.net).

REASON(S) TO TURN OFF:
  • Your NIC/OS cannot handle the extra processing load, while your CPU can.
  • Sites like Shelbyville say to turn everything off but flow control.

REASON(S) TO LEAVE ON:
  • WARNING – Dependencies for other options and features. “Checksum offloading is also required for some other stateless offloads to work, including Receive Side Scaling (RSS), Receive Segment Coalescing (RSC), and Large Send Offload (LSO)” (SOURCE: SpeedGuide.net).
  • Your CPU cannot handle the extra processing load, while your NIC/OS can. Offload is designed so it “speeds up the connection and reduces CPU utilization when it works. Use it in client machines, and with newer OS variants where bugs have been corrected, but be very careful in server environments, especially with LSO, and with multi-threaded applications. Test, then test again!” (SOURCE: SpeedGuide.net).
  • For a further bit of explanation, having these offloads on hypothetically “enables Windows to offload all ... processing for a connection to a network adapter (with proper driver support). Offloads are initiated on a per-connection basis and reduce networking-related CPU overhead, theoretically enabling better overall system performance by freeing up CPU time for other tasks ... It is useful for CPU-bound client computers and very fast broadband connections, not recommended in some server environments” (SOURCE: SpeedGuide.net)

AUTHOR’S NOTE:
I experienced weirdness with these settings. With one router, it was fine being on, but with another, they were as disruptive as some primary culprits.


Maximum Number of RSS Queues

RECOMMENDATION:
Experiment if you want to try using RSS; your mileage may vary.

REASON(S) TO SET A VALUE:
  • If you have a multi-core processor, you can set as many RSS Queues as you have processor cores; a value of 8 on an i7 will use all 8 processing cores for RSS queues. The amount of threads used may have some bearing on how useful RSS is.

AUTHOR’S NOTE:
I haven’t found time to test this myself or with my testers so far.


Receive-Side Scaling (RSS) State

WARNING – “Needs Checksum Offload to be enabled. Only supported by some network adapters.” - speedguide.net

WHAT IT DOES: from SPEEDGUIDE.NET
“The receive-side scaling setting enables parallelized processing of received packets on multiple processors, while avoiding packet reordering. It avoids packet reordering by separating packets into "flows", and using a single processor for processing all the packets for a given flow. Packets are separated into flows by computing a hash value based on specific fields in each packet, and the resulting hash values are used to select a processor for processing the flow. This approach ensures that all packets belonging to a given TCP connection will be queued to the same processor, in the same order that they were received by the network adapter.”

RECOMMENDATION:
Experiment; your mileage may vary. There’s too much conflicting research data to tell one way or another if it’s worth leaving on or not for everyone. While data suggests it can benefit modern machines more than it does older ones, this setting is an on odd. That is because it is as recommended to try for its benefits as much as it is recommended to leave it off for its problems, sometimes from the same source. - SOURCE: http://support.microsoft.com/kb/2643970 < while they recommend enabling RSS on newer OSes, there's a lot of talk of troubleshooting network drivers by disabling their features.”

REASON(S) TO TURN OFF:
  • If you have a single-core processor (god forbid), you can’t use this.
  • If your NIC is poor at handling RSS, then it’ll cause more problems.

REASON(S) TO LEAVE ON:
  • If you have a multi-core processor and a capable NIC, this could help you.

AUTHOR’S NOTE:
At the time of writing, I have an i5 CPU and I don’t use RSS at all. I couldn’t see any real benefits, nor have I spent much time getting results about it from the testers. Given how varied the existing research is, it’s a crapshoot.
EDIT: been trying it out, might not be so bad...

3C: Configure NIC’s Advanced Settings
Other Elements to Consider:
Minimal impact; can still need checking to ensure they are optimised


Priority & VLAN

RECOMMENDATION: – WHICH SETTING ADDs OR REMOVEs BYTES with regards to THE HEADER?


Receive Buffers
Transmit Buffers

RECOMMENDATION:
  • Set Receive Buffers to maximum value supported by NIC - NOT SURE - NEEDS MORE RESEARCH (other literature does mention buffer effects having a bad impact on latency but not much mentions it about these two)
  • Set Transmit Buffers to "96" or “128” NOT SURE - NEEDS MORE RESEARCH

REASON(S) TO USE VALUES:
SOURCE: From TechNet:
“For receive and send buffers, you should increase the allocated resources. Some network adapters set their receive buffers low to conserve allocated memory from the host. Low values result in dropped packets and decreased performance. Therefore, for receive-intensive scenarios, we recommend that you increase the receive buffer value to the maximum.”


Speed & Duplex

RECOMMENDATION:
Set and leave on ‘Auto-negotiation’ unless you have a good reason to keep it on a specific speed count; ‘Auto-negotiation’ will determine the maximum output methods available to you with nil-impact.

REASON(S) TO USE VALUES:
There’s little to no point in manually setting this to anything else when ‘Auto-negotiation’ saves you the headache of detecting what speeds your hardware is capable of (situations where you would have to set manual speeds in a home network elude me so I can’t elaborate).


Negligible Feature Settings:
Imperceptible differences between on and off. Turning off these should do very little either way but there’s a good chance turning them off will only help for the most part.


ARP Offload

RECOMMENDATION:
Keep this turned off. This offload is enables a feature where your computer responds to packets in sleep state. Unless you use that, there's little reason to leave it on. Impact on gaming latency unknown, likely negligible.


NS Offload

RECOMMENDATION:
Keep this turned off. Similar in nature to ARP offload. Responds to network discovery when computer is asleep. Impact on gaming latency unknown, likely negligible.


Network Address

RECOMMENDATION:
Don’t bother with it. Does nothing to latency.


Wake on Magic Packet
Wake on Pattern Match
WOL & Shutdown Link Speed

RECOMMENDATION:
Impact on gaming latency unknown, likely negligible.

REASON(S) TO TURN OFF:
  • If you don’t want/need to remotely wake up your computer. If your tweak targeted machine doesn’t double as someone’s work machine, then there’s almost no reason for an end-user to even need these features.

REASON(S) TO LEAVE ON:
  • The main reason you would leave these on is to turn on (wake) and your machine remotely with ‘magic’ packets to access files.

4: Check the NIC Driver

If you’re still having issues even after running high performance mode and trying the above tweaks, it could be the Network Interface Card driver itself.

Reports of the quality of NICs and their drivers have been varied. While it’s possible that there is nothing wrong with your NIC or the driver, it is something you want to rule out as a cause of any symptoms with your online gaming experience.

For example: https://ttcshelbyville.wordpress.com/2012/12/26/realtek-pcie-gbe-family-controller-performance-issues/

This link includes all the necessary details for describing the how and why of what to do with driver changes (as well as why sometimes drivers are the issue). It may be written for Realtek cards but the process is similar for each company.

What updating NIC drivers boils down to:
  1. Find out which company made your NIC
  2. Navigate to that company’s page for drivers
  3. Find the latest release for your OS and NIC model
  4. Download and install
If you find that the new drivers perform worse than the prior, Windows has driver rollback feature that will restore the older driver (since WinXP).

If using systems other than Windows, ensure either:
  • A) it has a driver rollback feature or
  • B) that you have copies of your original driver that you can use to reinstall.

!!!WARNING!!!

If you intend to install drivers to a machine which is your only accessible portal to the internet, you’ll want to observe safeguards. You need to make sure your internet portal can talk back out to the internet again to guard against any event of failure... especially before you lose the opportunity to do so.

Last, not Least: Check Power Settings of NIC

Microsoft’s How To: https://technet.microsoft.com/en-us/library/cc737429(v=ws.10).aspx

You need administrator access to make these kinds of changes.

Take note that Windows OS refers to NICs as 'network adapters'.

To change NIC settings:
  1. Access Search, Type ‘Device Manager’, Open Device Manager.
  2. Double-click on Network adapters.
  3. Right-click the network adapter for which you want to change settings (the currently used one is the one we want), and then click Properties.
  4. Find the ‘Configure’ button in the Properties window and click it.
  5. Switch to the Power Management tab and make the following changes:
    • Allow the computer to turn off this device to save power – Disabled
    • Allow this device to wake the computer – Disabled
    • Only allow a magic packet to wake the computer – Disabled
Disabling "Allow the computer to turn off this device to save power" should automatically gray out the other two options, disabling them by default. Setting these options to disabled should stop the device from being throttled down arbitrarily to conserve power by its own settings; other settings such as Window’s sleep function may still interfere.

RATIONALE

Whether or not the driver turning itself off presents as a genuine issue for your system seems dependent on many elements. Sources indicate most issues stem from moving from one Windows OS to another. Although informed literature on the issue is relatively scarce and I was hardly able to dig up anything that lends this fix consistency/credibility, it appears that the net adapter device can be turned off by Windows if it follows it’s own power management settings.

Relevant Links:

How should you set power management settings in Windows 10? @ superuser.com
SOURCE: http://superuser.com/questions/1039701/how-should-you-set-power-management-settings-in-windows-10
NOTE: Forum user ‘jmichaels’ reports issues of loss of functionality of both USB and network devices. After receiving instructions from user ‘Root’, ‘jmichaels’ confirms their issues were caused by the device power management.

How to disable network power management in W10 @ tenforums.com
SOURCE: http://www.tenforums.com/network-sharing/21551-how-disable-network-power-management-w10.html
NOTE: Forum user ‘jondoe’ reports that he’s finding the NIC going to sleep, in spite of doing the configuration above; however, ‘jondoe’ supplied limited information about their issue so it is impossible to conclude the cause.

Losing internet connection after installing Windows 10 @ bleepingcomputer.com
SOURCE: http://www.bleepingcomputer.com/forums/t/584747/losing-internet-connection-after-installing-windows-10/page-3
NOTE: Forum user ‘Trayah’ reports they’ve been having issues since migrating to 10, confirms the power management fix didn’t work and instead mentions that turning off Windows’ sleep mode did the trick; no more NIC drop-outs.

Advanced Options - Registry Tweaks & Under the ‘Hood’

The Windows registry is where a lot of the ‘beneath the hood’ settings are, while other settings are only available to engage at the command line level. As a result, a majority of these tweaks will be either at the Windows registry or via administrator level command lines by using Netsh or Powershell functions.

You can find a comprehensive collection of these kinds of tweaks at http://www.speedguide.net/articles.php?category=93, even WiFi tweaking, which the guide you’re reading does not cover. They’ve got such a comprehensive set of suggestions that there’s even a section of tweaks targeted at Linux users.

However, as a source, it too deserves some crosschecking. For instance, in their entry on the ‘System Responsiveness’ tweak on the Gaming Tweaks page, they imply from a Microsoft source that it is possible to set this registry value to 0 for “pure gaming/streaming.”

Okay then, let’s see for ourselves. From their own Microsoft reference {LINK REMOVED}:

Originally posted by Microsoft:
"Th[e] ... REG_DWORD value named SystemResponsiveness ... determines the percentage of CPU resources that should be guaranteed to low-priority tasks. For example, if this value is 20, then 20% of CPU resources are reserved for low-priority tasks. Note that values that are not evenly divisible by 10 are rounded up to the nearest multiple of 10. A value of 0 is also treated as 10."

According to this source, any 0 value will default to being interpreted as a value of 10, therefore it simply doesn’t matter that it can be set lower. This makes sense as there has to be SOME CPU run-time for background processes (at least I think so). I have been unable to find SpeedGuide’s rationale for diverting from what was indicated and emphasised in their source reference.

In the assumption that they are, in the apparent absence of evidence to the contrary, failing to augment their deviation from their source citation with conflicting or overriding research references… one should take precaution.

In other words, I can only advise that people take tweaks from www.speedguide.net with a metaphorical grain of salt. The credibility of their information is not in question, as no doubt they draw on a large experience base. Instead what remains questionable is the degrees of accuracy they manage, which becomes redoubtable when they issue seeming contrariness against the grain of their own sources, especially when married to a lack of depth in citation. If it is cross-referenced, I could not find cause to think so.

Remember, while it certainly pays dividends to do research, especially your own, but it surely pays more dividends to SHOW it! I couldn’t find anything to even back up this “0-value=gaming” claim of theirs myself.

Key Links for the Self-Motivated

Network Adapter Optimization
SOURCE: http://www.speedguide.net/articles/network-adapter-optimization-3449
DETAIL: While very comprehensive in it’s own regards, it is aimed at a more technically minded demographic than this guide. However, this guide leans on this entry as credible source reference heavily, in spite of the split focus it has between network tweaks and OS-level latency/registry tweaking.

Gaming Tweaks
SOURCE: http://www.speedguide.net/articles/gaming-tweaks-5812
NOTE: Some steps covered in this guide are also found echoed here. They’re a more technically minded set of instructions but some claims are poorly sourced.

Windows 8, 10, 2012 Server TCP/IP Tweaks
SOURCE: http://www.speedguide.net/articles/windows-8-10-2012-server-tcpip-tweaks-5077
NOTE: Detail's tweaks specific to the quirks of Windows 8 onwards

Linux Tweaks
SOURCE: http://www.speedguide.net/articles/linux-broadband-tweaks-121
NOTE: Self-explanatory; for the people WINEing their way through Linux?

Advanced Tweaking
SOURCE: http://www.speedguide.net/articles/advanced-tweaking-156
NOTE: Worth a look if you’re looking to tweak every last drop of performance out of your system available to you

Wireless Network Speed Tweaks
SOURCE: http://www.speedguide.net/articles/wireless-network-speed-tweaks-5681
NOTE: Worth a look for people who want to get more out of their WiFi

'SpeedGuide TCP Optimizer'

SpeedGuide.net offers a freeware program they dub the “SG TCP Optimizer”, a tool that compiles a lot of their registry and network tweaks in one package.

Any user who is deterred from tweaking these settings even with the instructions of this guide and the ones available at www.speedguide.net, “SG TCP Optimizer” will automate a lot of their recommended changes to your networking settings. Your mileage may vary with it’s useability as it is capable of an ‘optimal’ setting which causes broad changes that make assumptions of what it is optimal for you, but it is also highly configurable, allowing you to make minute individual changes through the program. Users seeking greater control and easier means should consider making use of the tool.

It seems well documented at first glance, but in the v4.05 that I tested, there’s one oversight. The test addresses for their ping-target domains includes one for Berkely University being spelled as www.berkley.edu (which is wrong and therefore leads to an absent domain), which will make non-experienced users have a false-positive time-out every time when they test their latency with it.

You can find a copy of the program here:

http://www.speedguide.net/downloads.php

Hopefully, by the time you’re reading this guide, they’ll have addressed such issues and I’ll need to update this entry!

Note on DPCs i.e. ‘Game Boosters’ (Dynamic Process Cancellers)
Some CPU-bound latency issues are caused by excessive processes monopolising the CPU-threads and choking up run-time with unused services and applications. In this instance, a Dynamic Process Canceller is defined as a program that can temporarily disable unneeded services and processes that take up CPU-runtime, saving the user from needing to turn off and on useful services accordingly every time. JetBoost, Wise Game Booster, SmartClose are examples of this kind of program.

In my research, a fair number of people’s quick and dirty answers for how to optimize a game was to simply run a program like ‘Game Booster’.

Most modern examples floating around recommending the use of ‘Game Booster’ styled programs will promise that it will be able to let users to get more out of their system. Such programs doubly target and turn off processes and services that can run in the background and by so doing they will reduce the workload on your system, however slightly. Impact on your in-game experience can be seen to be almost negligible from my years of testing; the real benefit of using one is that the CPU is able to process just that little bit faster and that only really helps if your CPU is the source of a bottlenecking problem. If anything, a dynamic process canceller will simply help your computer load things faster if services are holding it back.

How to Geek has a breakdown on the gist of why claims FPS gains from boosters are mostly just mythical bunk: http://www.howtogeek.com/171734/benchmarked-will-a-game-booster-improve-your-pc-gaming-performance/

The current build of the Game Booster product in the article comes bundled in Razer’s Cortex, a Razer in-house gaming platform program. You can try it but I find Cortex annoying and cumbersome, intended to be a catch-all. In other words, I simply would not recommend Cortex for anyone. If I were to recommend any process canceller, there’s only one I found remotely useful.

Look for “IoBIT Game Booster 3.5 Beta”. It is the last and most polished release version of the program floating about. If you can’t find a worthy or non-virus infected copy, should there be a god of the internet worthy of it’s keep, this god willing by the time you read this, you can still find a copy of the 3.4 release at wonderful tech-font sites like MajorGeek.com that are sure to be virus free (make sure to put them on your AdBlockPlus whitelist if you do visit them). The only real cost in using 3.4 over 3.5 is 3.4 has an ad channel it talks to.

Please also consider donating or otherwise contributing to the MajorGeek.com community if you do decide to use their services to download the program; they’re small guys and a long-term cornerstone of online software reviewing and archiving.

GB is not a perfect program and I can’t personally vouch for the validity of it’s computer tweaking section, but as a dynamic process canceller, I have found it to be both a capable and relatively easy method of turning off services unnecessary for gaming but may still be desired later, like a print spooler for a printing peripheral attached to the system or BlueTooth. Ordinarily, you’d have to enter the Services Configuration and manually adjust services one by one, often quite statically so as to require you to manually turn them back on should you need to.

I do not use the GameBox feature though, as that seems faulty and bugged. Instead, I use the Boost function AFTER carefully inspecting and checking the configuration of what it will and won’t turn off when I hit the Boost button.

In short, while streamlining services manually is a potential route for a gamer trying to tweak their system for lower CPU-bound latencies, it is often easier to let a dynamic process canceller do the work for them without permanently disabling stuff and rooting about Window’s guts like an unpaid intern techie. The real problem at the heart of the matter is finding a “good” one however you defined that best, and there are definitely some out there beyond GBv3.5beta, like Smart Game Booster 4.

BUT WAIT A SECOND QUARK, WHICH SERVICES ARE GOOD TO TWEAK?

For anyone willing to look that deep into service configuration, I recommend this site: http://www.blackviper.com/service-configurations/
Note on Nagle’s Algorithm

Nagle's Algorithm will make TCP/IP oriented programs experience greater latency with a tradeoff of superior buffering. It is on by default in modern Windows (Vista onwards) without any in-built direct method of disabling or (re-)enabling. This can be dealt with in two ways; disabling Nagle's Algorithm under the ‘hood’ or with Third-Party programs that modify the TCP/IP stack like Leatrix Latency Fix or SpeedGuide.net’s TCP Optimizer.

NAGLE’S ALGORITHM ONLY DIRECTLY AFFECTS TCP/IP-BASED PROGRAMS. Any program not based on TCP will be directly unaffected; any impacts/benefits on games that use UDP would be dependent on the flux of competing TCP traffic in the network.

!!!!!WARNING-WARNING-WARNING!!!!!

Nagle's Algorithm seems to be considered by most users as essential for streaming and file transfers. The apparent end-user consensus is that if you're a stream addict, you'll have to choose between your streaming buffering and your latency quality with TCP games.

While I can’t find much to genuinely support this ‘tradeoff’, www.speedguide.net says that while Nagle’s algorithm is active, “this improves throughput efficiency and reduces TCP/IP header overhead, it also briefly delays transmission of small packets … Keep in mind that disabling Nagle's algorithm may also have some negative effect on file transfers.“

TL;DR – the apparent consensus

Nagle's Off = lower latency for TCP/IP games, bad for file transfers/streaming
Nagle's On = better for transfers/streaming, higher latency from packet lumping

However, additional research shows that Nagle’s algorithm is “only a defense against careless applications, it will not benefit a carefully written application that takes proper care of buffering; the algorithm has either no effect, or negative effect on the application” (Wiki entry, as of 07/2016). While Windows doesn’t get affected by Nagle’s the same way a Linux OS will (due to a numerical fluke), not every Windows program will be written in a way that is ‘careful’.

For the curious, at the time of writing, the Leatrix Latency Fix is currently being maintained and updated, and it’s free. Consider donating or contributing feedback if you find the fix benefits you; other solutions are reported as less effective and caught up in payment models (20 minutes only on the trial version of http://www.smoothping.com/index.php before it disconnects).

Leatrix Latency Fix:
http://www.wowinterface.com/downloads/info13581-LeatrixLatencyFix.html

NOTE: LLF is a simple ‘one click fix’ approach that, because it doesn’t tell you all it’s changes without looking at the forums, may conflict with personal tweaks if you’ve been making use of the “SG TCP Optimizer” or followed SG entries.

If you wish to turn Nagle’s off yourself, www.technet.com or www.speedguide.net and other consultative resources should have you covered. See the reference section for relevant links.

Accepting the Limits of Your Control
Sometimes, it’s totally out of your hands how the connection is.

Sometimes:
  • if you run Windows 10 or share your connection with people in the same house, Windows could be sneaking in an update or someone could be downloading.
  • a bad connection is due to the people in the same game session as you and you may lack the power to address that by any other means than leaving.
  • a bad connection is due to conditions surrounding the host or servers responsible for the game session being up for play.
  • a bad connection has its source in your country’s infrastructure and unfortunately there isn’t much you can do for a quick turnaround on that one.
  • a bad connection has its source at your local exchange, i.e., the place your router talks out to in order to bring you internet connectivity.
  • your district is at peak traffic and is congested for each user.
  • you don't have a consistent enough set of data to draw a working conclusion from.
  • the developers really didn’t know how to assemble worthy netcode.

When it seems like you’ve done everything you can, often when it comes to the quality of your connection, you likely will have done everything you can already. I don’t mean to imply that there’s absolutely nothing left to try but there comes a time when you have run out of means to control or influence your situation.

The real difficulty is detecting when you’ve hit that wall, where solutions cannot address problems larger than how your computer talks to the internet. This guide can’t help you with family disgreements about sharing bandwidth as it is not a piece for counselling but it can help you detect when your connection is functioning below average or at sub-optimal speeds. You’ll want to know this:

*bps = Power of term (kilo = K, mega = M) bits per second

You might be familiar with megabytes. A byte is 8 bits. A 1000 bit connection is 1 Kilobit per second or 1 Kbps. It transmits 125 bytes a second. A 100Mbps connection hypothetically has a maximum transmission rate of 12.5MB per second.

However, because of the number of users, most people will never see the maximum speed out of their connection. What is pertinent is detecting when the line has dropped, for whatever reason; at the very least, you’ll know to be patient and that the issue with your internet isn’t anything on your end. To do that:

HOW TO DETECT THAT?

By getting a good average from sites that test the upload and download ability of your connection, like www.speedtest.net (among others), you can begin to see the level of performance you should be able to expect.

There will be peak periods of use from your neighbourhood’s internet users that can affect the quality of the speeds, much like peak traffic affects urban driving.

The basic method is as follows:

Check your upload/download speeds at different periods across a time frame (about 3-7 days perhaps), record them at regular intervals, and then compare the results.

Repeating this aforementioned process later can also help you see if something in your network has changed over time. Just remember to keep your records handy.

This kind of data, over time, will help give you a clearer picture of the internet connection performances you can expect at specific periods of most any given day.

If you don't feel like collecting that much data and it seems like too much busy-work, that's quite understandable. You'll still want to be able to know what you SHOULD be able to expect and when your values are different from that; at the very least, I recommend that you find a nominal peak performance value that you can easily remember or record and then use that to be able to know for sure when your connection quality drops too far below those values.

Influences and References
INFLUENCES

This guide was originally chiefly influenced by the pre-existing guide:

http://www.rpgcodex.net/forums/index.php?threads/increase-online-gaming-performance-by-tinkering-with-ethernet-card-driver.88083/

While effective, it provides concise yet all too terse details explaining the how and why of ideal network adapter settings in a spread out BBS format. It’s a bit TOO spread out through the thread, demanding readers siphon through the progression of it’s posts and citations (most of which have been incorporated). The original poster does note to their credit that when it comes to citing sources to back up their claims, “unfortunately this information is in bits and pieces everywhere,” and indeed it is. Besides guides like the one the OP put together and aggregated via thread responses, there are few, if any, sites one can find comprehensive Ethernet settings tweaks. One advanced technical rationale is on site X, another for another is on site Y.

In the interest of finding out for myself what worth there was to be had in it all, I decided to do my own testing and found that with the guide above, your mileage may vary depending on multiple elements of hardware and software. It definitely has for me and my small band of testers (test titles included latency sensitive games such as: GTA Online, Ultra Street Fighter 4, FightCade).

Even though the original poster does assemble effective responses and includes the major culprits that could be affecting your system, I felt it necessary to look further, to professional and first-hand sources (like Microsoft) to better understand why changing something was wise or not. While it was important to make informed changes, it was also important to have credible results.

https://www.reddit.com/r/GlobalOffensive/comments/31gju7/psa_network_adapter_settings_for_better_registry/

As evidenced by the above link, comments from people trying to also shed light on these issues is often met with calls of ‘placebo’ or people claiming they’ll ‘wait for more sheep to try it out’. Hopefully, the purpose of the following reference section will be multifaceted enough able to allay the concerned as well as aid the interested.

REFERENCES

While these references are here for the benefit of the guide and the assurances of its readers, feel free to look into them and go even deeper into researching this stuff than I have! There’s some source analysis to boot.

When it came to determining which source was more credible than others when resolving contradictory information, the references were ‘weighted’ for consideration of which authority trumped others in the following set of priorities:

1st Priority: Experienced Professional sources, e.g. Peer Wisdom
2nd Priority: Microsoft/TechNet sources
3rd Priority: ‘Power User’ resources, e.g. SpeedGuide.net
4th Priority: Anonymous End-User statements
Influences and References (cont'd)
STEP 1 – CHECK HIGH PERFORMANCE POWER SETTING IS IN USE

Performance Tuning Network Adapters @ TechNet
SOURCE: https://technet.microsoft.com/en-us/library/jj574151(v=ws.11).aspx
DETAIL: Provides rationale to use high performance power plans to achieve greater micro-second latency.

Everything You Need to Know About the CPU C-States Power Saving Modes @ Hardware Secrets
SOURCE: http://www.hardwaresecrets.com/everything-you-need-to-know-about-the-cpu-c-states-power-saving-modes/
DETAIL: Interesting reading; for the curious reader who wants to look further into it themselves or to check why I refrain from suggesting disabling them

Is it safe to turn off all the C-state? (C1E, C3, C6, C7) Rampage 4 Extreme @ ASUS Republic of Gamers
SOURCE: https://rog.asus.com/forum/showthread.php?23675-Is-it-safe-to-turn-off-all-the-C-state-(C1E-C3-C6-C7)-Rampage-4-Extreme
DETAIL: Interesting reading; for the curious reader

Disable C-State, Why That? @ DeinosCloud
SOURCE: https://deinoscloud.wordpress.com/2009/10/22/disable-c-state-why-that/
DETAIL: Interesting reading; for the curious reader

do you have intel c state disabled or enabled? @ Overclock.net
SOURCE: http://www.overclock.net/t/1494449/do-you-have-intel-c-state-disabled-or-enabled
DETAIL: Interesting reading; for the curious reader

STEP 2 – CHECK YOUR MTU SIZE

Changing the MTU size in Windows Vista, 7 or 8 @ Zen.co.uk
SOURCE: https://support.zen.co.uk/kb/Knowledgebase/Changing-the-MTU-size-in-Windows-Vista-7-or-8
DETAIL: May do a better job of explaining it for some people. To be fair, I’ve looked it up frequently when doing this on

http://www.tp-link.us/article/?faqid=190

http://www.sevenforums.com/tutorials/94721-mtu-limit-test-change-your-connections-mtu-limit.html


STEP 3 – CONFIGURE NIC’S ADVANCED SETTINGS

General Stuff

[PSA] Network Adapter Settings for better registry @ reddit
SOURCE: https://www.reddit.com/r/GlobalOffensive/comments/31gju7/psa_network_adapter_settings_for_better_registry/
DETAIL: A good example of how forums tend to respond to the subject.

Increase online gaming performance by tinkering with ethernet card driver @ RPGCodex.net
SOURCE: http://www.rpgcodex.net/forums/index.php?threads/increase-online-gaming-performance-by-tinkering-with-ethernet-card-driver.88083/
DETAIL: Speed guide’s gaming tweak contradicts (with more data) the reason to leave on RSS. Though their recommendation on this note emerges on their server tweak.

Change Settings for a Network Adapter @ TechNet
SOURCE: https://technet.microsoft.com/en-us/library/cc770718(v=ws.10).aspx
DETAIL: Instructions for doing as per title, quoted for namesake’s clarity.

Performance Tuning Network Adapters @ TechNet
SOURCE: https://technet.microsoft.com/en-us/library/jj574151(v=ws.11).aspx
DETAIL: Provides rationale FOR Offloads IF your card can handle it (otherwise, if it can’t, don’t), details how Receive Side Scaling is a server load specific algorithm, details the CPU-Load/Latency split of Interrupt Moderation, provides a set of recommendations for ‘Performance Tuning for Low Latency Packet Processing’. Quite a font of recommendations with a mixed amount of detail.


LSO Offloads

Large Send Offload and Network Performance @ Peer Wisdom
SOURCE: http://www.peerwisdom.org/2013/04/03/large-send-offload-and-network-performance/
DETAIL: Provides rationale on why Large Send Offload should be turned off; source is a 20 years experienced professional Windows systems administrator’s blog. Industry experience talks.

Disabling Large Send Offload – Windows @ Peer Wisdom
SOURCE: http://www.peerwisdom.org/2013/04/25/disabling-large-send-offload-windows/
DETAIL: Provides instructions on disabling Large Send Offload on Windows OS.

Beware Ethernet flow control @ Virtual Threads
SOURCE: http://virtualthreads.blogspot.com.au/2006/02/beware-ethernet-flow-control.html
DETAIL: Describes in technical detail why Flow Control is troublesome.

SPEED GUIDE GAMING TWEAK
SOURCE:
DETAIL:

https://ttcshelbyville.wordpress.com/2012/12/26/realtek-pcie-gbe-family-controller-performance-issues/


STEP 4 – CHECK THE NIC DRIVER

Realtek PCIe GBE Family Controller performance issues @ Tennessee College of Applied Technology - Shelbyville
SOURCE: https://ttcshelbyville.wordpress.com/2012/12/26/realtek-pcie-gbe-family-controller-performance-issues/
DETAIL: Provides proof/reference to the idea that driver’s also affect the quality of the internet signal, on top of everything else of course. Suggests turning off everything BUT Flow Control; claims it aids congestion on networks where multiple devices are in use, even in home networks (albeit implied).

Fixing Lag issues/Connection Timeouts @ GTAForums
SOURCE: http://gtaforums.com/topic/692081-fixing-lag-issuesconnection-timeouts/
DETAIL: Details WiFi issues and says don’t use wireless


STEP “LAST BUT NOT LEAST” - CONFIGURE POWER MANAGEMENT OF NIC

Every reference link/analysis is already in the aforementioned section.


ADVANCED OPTIONS – REGISTRY TWEAKS & UNDER THE ‘HOOD’

Every reference link/analysis is already in the aforementioned section.


NAGLE’S ALGORITHM RESEARCH

Nagle's algorithm @ Wikipedia
SOURCE: https://en.wikipedia.org/wiki/Nagle%27s_algorithm
DETAIL: For description quote, since it was better written than what I cooked up.

Disabling TCP/IP Nagle Algorithm Improves Speed on Slow Nets @ TechNet
SOURCE: https://support.microsoft.com/en-us/kb/138831
DETAIL: Describes Nagle’s Algorithm and instructs how to disable it; literally says it’s designed to help avoid small packet problems in ‘slow’ networks. Curiously absent is any comment that supports the assertion is in fact used as a backbone for modern media streaming (according to apparent consensus).

Boosting Socket Performance on Linux @ Slashdot
SOURCE: https://developers.slashdot.org/comments.pl?sid=174457&threshold=1&commentsort=0&mode=thread&cid=14515105
DETAIL: A good explanation (sans diagrams) for how Nagle’s Algorithm “works”. Credentials of poster unknown but they seem to know what they’re talking about.

TCP Performance problems caused by interaction between Nagle’s Algorithm and Delayed ACK @ Stuart Cheshire
SOURCE: http://www.stuartcheshire.org/papers/NagleDelayedAck/
DETAIL: More detailed diagrammatic analysis of Nagle’s Algorithm. Indicates the pros and cons in more technical terms and depth. It gives insight into why it affects Linux more than windows.

a proposed modification to the Nagle algorithm @ W3C
SOURCE: http://lists.w3.org/Archives/Public/ietf-discuss/1998Dec/0025.html
DETAIL: Of import to this guide, it details why turning off Nagle’s Algorithm can be a bad thing. Referenced by Stuart Cheshire; 1998 eh? Makes one think.

Leatrix Latency Fix @ WOW Interface
SOURCE: http://www.wowinterface.com/downloads/info13581-LeatrixLatencyFix.html
DETAIL: Freeware, TCP ACK frequency modulating program.
Addendum
In case you were wondering what settings I recommend generically:

ARP Offload - Disabled
** Auto Disable Gigabit - Disabled ** - will deny gigabit capable users auto-negotiated gigabit
* Energy Efficient Ethernet - Disabled * -
** Flow Control - Disabled **
** Green Ethernet - Disabled ** -
** Interrupt Moderation - Disabled ** (Even MS says turn this off for low latency)
* IPv4 Checksum Offload – Disabled *
Jumbo Frame - Disabled
** Large Send Offload v2 IPv4 - Disabled ** (affects net like IM, according to sys-admin blog)
** Large Send Offload v2 IPv6 - Disabled **
Maximum Number of RSS Queues – X - does nothing with RSS disabled
Network Address - Not Present
NS Offload - Disabled
Priority & VLAN - Disabled
Receive Buffers - 512 (MAX Setting)
** Receive Side-Scaling – Disabled ** - NEEDS RESEARCH
Speed & Duplex - Auto Negotiation
* TCP Checksum Offload IPv4 – Disabled *
* TCP Checksum Offload IPv6 – Disabled *
Transmit Buffers - 128
* UDP Checksum Offload IPv4 – Disabled *
* UDP Checksum Offload IPv6 – Disabled *
Wake on Magic Packet - Disabled
Wake on pattern match - Disabled
WOL & Shutdown Link Speed - Not Speed Down

The ** marked settings are the main culprits consistent across test subjects.
The * marked settings are one’s that you'll most want to experiment with.

An interesting note; with one router, I got a better performance with the Checksum Offloads being on and when I replaced it with a more recent one, the same settings offered a degraded performance. This was fixed for the new router by turning off Checksum Offloads.

The point being… experiment! The whole configuration can be sensitive to changes at any point from the computer drivers, down the cables and out to router hardware.
Searchtags
The ever obligatory "how else do you find me in the big wide world of the internet via search engines" BS that most things have. You can pretty much ignore this bit. And hey, I want this guide to get out there.

... though as you can see, I ain't put squat here yet. Taking suggestions!

< >
23 Comments
Sticky Nipples Oct 29, 2018 @ 4:45pm 
Great point, Quark! Thanks So the receive buffer I can just set as high as it will go (2048), but transmit buffer I've set to 96. Playing Black Ops IV so it's really hard to know what made the difference, my side, their side or a combo of both.
Quark Bent  [author] Oct 25, 2018 @ 3:42pm 
Point in case; experiment! But I suggest you only try high values with the Receive Buffer. The TechNet source (aka Microsoft themselves) practically suggests you should go high for receive-intensive scenarios... That being said, waiting on a buffer to fill means you're still waiting; when gaming you really don't want to wait to transmit too much, the transmit buffer I'd leave small but between 96-128 (but I recommend experimenting all the same, not all NICs are made equal).
Quark Bent  [author] Oct 25, 2018 @ 3:42pm 
First off, sorry for my delayed reply, I've been through the wringer and the hospital.

A gigabit internet service is all well and good but let's disregard it for now as it won't be what you're changing.

The reason I need more research on the subject is I personally had no access to a machine that would go as high as yours. If I recall, only one of my testers had a range up to what yours was and it was detrimental to use a large buffer as it affected the latency.

That being said, I'm drawing on over a year old memory after going through a lot of stress recently so I'm not sure my recall is clear.
Sticky Nipples Oct 14, 2018 @ 3:52am 
Regarding Receive/Transmit Buffers mine goes all the way up to 2048. I also have gigabit internet service if that makes a difference. So should I just use 96/128 like you suggested or go with the max? Thanks.
Quark Bent  [author] Aug 15, 2018 @ 7:58pm 
@^5 david slayer

Good to hear and thanks for sharing. Streaming isn't a subject I can speak much about directly.

I haven't streamed much and the general gist that was meant to be conveyed about Nagles was that it's contentious, so instead I discuss about how it is made to appear. I've been running with Nagling off and I personally am finding it hard to see any degradation of throughput for the improvement in latency. I just can't find much that's official or patently experienced backing that up with statements so I don't have much ground to stand on for such a claim beyond my own experience.
^5 david slayer Aug 15, 2018 @ 7:37pm 
Just wanted to share: disabling Nagling doesn't affect my Twitch stream watching ability, or streaming myself at all. For many years. :steamhappy:
kaoZelectic Jul 17, 2018 @ 6:05pm 
Fucking brilliant, well done on the hard work! :steamhappy:
LedgeIsANab Mar 27, 2018 @ 11:49pm 
Incredibly amazing, detailed, and extremely well referenced work. I am pretty sure I speak for all internet users (even if they are not yet aware of it) when I say: Thank you! (: /enthusiastic_clap
Tchaddeus Mar 21, 2018 @ 8:55pm 
Thanks for the input, I really appreciate it!
Quark Bent  [author] Mar 21, 2018 @ 6:38pm 
(because steam doesn't allow more than 1000 characters per post)

Without any further information, it has to be assumed that it won't know when "periods of low activfity" are in fact just a lull in your online gaming session, and it'll chance negatively affecting your online play if left on.