NIC Advanced Settings for Low-Latency Gaming on Windows 11
Your internet connection’s raw bandwidth matters less for gaming than most people think. What truly determines whether you feel lag is latency — specifically the round-trip time between your input and the server’s acknowledgment — and how consistently that latency behaves. Your network adapter’s advanced driver settings have a direct impact on both, and the defaults are tuned for throughput, not responsiveness.
Accessing NIC Advanced Settings
- Press Win + X → Device Manager.
- Expand Network adapters.
- Right-click your Ethernet adapter (e.g., “Intel(R) Ethernet Controller I225-V”) → Properties.
- Click the Advanced tab.
This tab lists all driver-level parameters you can tune. The options vary by manufacturer and driver version, but most modern Intel, Realtek, and Killer adapters expose the settings covered below.
You can also access these settings via PowerShell for scripting or bulk configuration:
# List all advanced NIC properties for your adapter
Get-NetAdapterAdvancedProperty -Name "Ethernet" | Format-Table DisplayName, DisplayValue -AutoSize
Replace "Ethernet" with the exact name shown in Get-NetAdapter.
Interrupt Moderation
This is the single most impactful setting for gaming latency.
What It Does
Interrupt Moderation (also called Interrupt Coalescing) groups multiple received packets into a single CPU interrupt rather than interrupting the CPU for every individual packet. This reduces CPU overhead dramatically at high throughput — which is great for file transfers and streaming — but it adds latency by delaying the delivery of your game packets.
Recommended Setting
| Use Case | Interrupt Moderation Setting |
|---|---|
| Gaming / low latency | Disabled or Minimal |
| General use / streaming | Adaptive or Low |
| High-throughput file server | High |
# Disable interrupt moderation (Intel adapters)
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Interrupt Moderation" -DisplayValue "Disabled"
# For adapters using "Adaptive Inter-Frame Spacing" naming:
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Interrupt Moderation Rate" -DisplayValue "Off"
Trade-off: Disabling interrupt moderation increases CPU interrupt load. On a modern 6-core or better CPU, this is negligible. On older quad-core systems, you may see a 1–2% CPU usage increase under heavy network load.
Receive Buffers and Transmit Buffers
What They Do
Receive and transmit buffers are ring buffers in the NIC driver that hold packets waiting to be processed by the OS or sent to the wire. Too small and you drop packets under burst load; too large and you introduce bufferbloat — packets queuing in the adapter instead of being delivered immediately.
Recommended Values
# Set receive buffers (256–512 is good for gaming; reduce to minimize queue latency)
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Receive Buffers" -DisplayValue "256"
# Set transmit buffers
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Transmit Buffers" -DisplayValue "256"
Default values are often 2048 or higher. Reducing to 256 lowers the maximum queue depth, which means packets are delivered to the OS faster at the cost of slightly higher drop probability under extreme burst conditions — a trade-off that favors latency consistency.
TCP/UDP Offloading Settings
Modern NICs can perform TCP/IP processing in hardware, offloading work from the CPU. While this is beneficial for throughput, some offloading features introduce small latencies or interact poorly with certain games.
Large Send Offload (LSO)
LSO allows the NIC to split a large TCP segment into MTU-sized packets in hardware. Disable for gaming:
# Disable Large Send Offload v2 (IPv4 and IPv6)
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Large Send Offload V2 (IPv4)" -DisplayValue "Disabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Large Send Offload V2 (IPv6)" -DisplayValue "Disabled"
TCP Checksum Offload
Keep this enabled — the latency benefit of disabling it is negligible and CPU overhead increases:
# Verify TCP checksum offload is enabled
Get-NetAdapterAdvancedProperty -Name "Ethernet" | Where-Object DisplayName -like "*Checksum*"
Receive Side Scaling (RSS)
RSS distributes network interrupt processing across multiple CPU cores. For gaming, enable this and pin it to performance cores:
# Enable RSS
Set-NetAdapterRss -Name "Ethernet" -Enabled $true
# Set RSS base processor (use core 2 or 3; avoid core 0 which handles system interrupts)
Set-NetAdapterRss -Name "Ethernet" -BaseProcessorNumber 2 -MaxProcessors 4
Flow Control
Flow control allows the NIC and switch to signal “slow down” to each other when buffers fill up. For gaming, disable it — you want packets to arrive at maximum rate, not throttled by the switch’s buffer state:
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Flow Control" -DisplayValue "Disabled"
Energy Efficient Ethernet (EEE)
Energy Efficient Ethernet puts the link into a low-power idle state during quiet periods. This adds a wakeup latency when traffic resumes — potentially 100 µs to 1 ms each time. For gaming rigs that are plugged into the wall anyway, disable this completely:
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Energy Efficient Ethernet" -DisplayValue "Disabled"
# Also disable green ethernet if present
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Green Ethernet" -DisplayValue "Disabled"
Speed and Duplex
Always set your adapter to 1 Gbps Full Duplex (or 2.5 Gbps if your adapter and switch support it) explicitly rather than leaving it on Auto Negotiation. Auto Negotiation can occasionally down-negotiate and takes time to renegotiate if the link drops:
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Speed & Duplex" -DisplayValue "1.0 Gbps Full Duplex"
Full Gaming NIC Configuration Script
Here is a complete PowerShell script that applies all recommended settings at once. Save as OptimizeNIC.ps1 and run as Administrator:
$nic = "Ethernet" # Change to match your adapter name from Get-NetAdapter
$settings = @{
"Interrupt Moderation" = "Disabled"
"Receive Buffers" = "256"
"Transmit Buffers" = "256"
"Large Send Offload V2 (IPv4)" = "Disabled"
"Large Send Offload V2 (IPv6)" = "Disabled"
"Flow Control" = "Disabled"
"Energy Efficient Ethernet" = "Disabled"
"Green Ethernet" = "Disabled"
"Speed & Duplex" = "1.0 Gbps Full Duplex"
}
foreach ($setting in $settings.GetEnumerator()) {
try {
Set-NetAdapterAdvancedProperty -Name $nic `
-DisplayName $setting.Key -DisplayValue $setting.Value -ErrorAction Stop
Write-Host "Set $($setting.Key) = $($setting.Value)"
} catch {
Write-Host "Skipped $($setting.Key) (not available on this adapter)"
}
}
Set-NetAdapterRss -Name $nic -Enabled $true -BaseProcessorNumber 2 -MaxProcessors 4
Write-Host "RSS configured."
Write-Host "NIC optimization complete. Reconnecting may be required."
Measuring the Impact
Use PingPlotter or WinMTR to measure your baseline latency and jitter before and after applying these settings. Run a 10-minute test to a stable server (your game’s region server, or 8.8.8.8):
- Average latency: May improve slightly (1–5 ms).
- Jitter (standard deviation): This is where you should see the biggest improvement — interrupt moderation off typically cuts jitter by 30–50%.
Lower jitter means your game’s netcode has a more predictable stream of packets to work with, which translates to smoother hit detection and less rubber-banding, even when your average ping looks the same.