A Guide to Windows NIC Advanced Settings - RSS/LSO/EEE/Wake on LAN

· Updated: · · Windows, Networking, NIC, Ethernet, Performance Tuning, Windows Development

Revision history (1 updates, last updated Sep 1, 2026)

A log of the changes made to this article. Where a pre-update version was archived, it stays readable at a permanent DOI link.

Retranslated as a full translation of the Japanese original. The previous English version was an abridgement that carried only part of the source, so sections, tables, Mermaid diagrams, figure captions and FAQ entries were missing. All of them have been restored to match the Japanese original, and the technical claims are the same as in the Japanese version. Read the version before this update (DOI: 10.5281/zenodo.21614499)
First published
Cite this article(DOI: 10.5281/zenodo.21614498)

This article is archived on Zenodo. Below are both the DOI that always resolves to the latest version and the DOI pinned to the version you are reading.

Go Komura (2026). A Guide to Windows NIC Advanced Settings - RSS/LSO/EEE/Wake on LAN. KomuraSoft LLC. https://doi.org/10.5281/zenodo.21614498 https://comcomponent.com/en/blog/2026/03/15/001-windows-nic-advanced-properties-guide/

DOI (latest version)
10.5281/zenodo.21614498
DOI (this version)
10.5281/zenodo.22217145

The [Advanced] tab of a Windows NIC is packed with unfamiliar words. Jumbo Packet, Large Send Offload, Interrupt Moderation, Receive Side Scaling, Flow Control, Energy Efficient Ethernet. Looking at the names alone makes you want to enable everything, but in reality the right answer depends on what you want to prioritize.

  • Do you want to raise throughput for bulk transfers?
  • Do you want to squeeze latency out of small packets?
  • Do you want to lower CPU usage?
  • Do you want sleep resume and Wake on LAN to be stable?
  • Do you want to isolate a compatibility problem with a driver or a switch?

Leave that vague and go with “just turn everything On,” “just set Jumbo 9014,” or “it’s slow, so pin it to 1Gbps Full,” and you will break something, quite routinely.

Touching settings without a clear goal breaks thingsA diagram showing that turning everything On, enabling Jumbo, or pinning the speed while it is still vague what you want to prioritize tends to break things, and that deciding the priority first changes which setting is the right one.that changes the right answerUnclear what to prioritizeEverything On, Jumbo, pinned speedSomething breaks, quite routinelyDecide what to prioritizeThe settings worth touching narrow down

Figure 1: Touching the impressive-looking settings without a goal breaks things; deciding the goal narrows down where to touch.

This article covers the practical way to think when touching NIC advanced settings, targeting mainly wired Ethernet adapters on Windows 10 / 11 / Windows Server. It lays out what each setting means, what tends to happen when you raise it, lower it, enable it, or disable it, and when each one is worth touching, so you can survey the whole area at once.

Note that NIC display names and selectable values vary considerably by vendor and driver. Jumbo Packet may be Jumbo Frames, Receive Buffers may be Receive Descriptors, and Priority & VLAN may be Packet Priority & VLAN. In this article, settings with closely related meanings are treated together.

How to Use This Article

There are 14 chapters and it runs long, so here is a map first. You do not need to read all of it.

Goal Where to read
Just see the conclusions Chapter 1
See what is currently configured Chapter 2 (GUI and PowerShell)
Learn the discipline before touching anything Chapter 3 (change one item at a time, decide what to measure)
Understand what a setting means Chapter 4 overview table then Chapters 5-9 (per-setting detail)
Just get the conclusion for my goal Chapter 10 (desktop / NAS / low latency / Hyper-V / isolation)
Start from a symptom Chapter 11 (drops to 100Mbps, slow transfers, jitter, resume failures, checksum errors)
Check and change things from a script Chapter 12

The most common path is probably “start from the symptom, go to Chapter 11, then the chapter for that setting, then Chapter 10 to put things back.”

The most common reading pathA diagram showing the reading path of starting from a symptom, checking the symptom-based starting points in Chapter 11, confirming the meaning in the relevant setting chapter, and putting things back with the goal-based guidance in Chapter 10.Start from a symptomChapter 11 (symptom-based starting points)Chapter for that setting (Chapters 5-9)Chapter 10 (put things back with goal-based guidance)

Figure 2: Enter from a symptom into Chapter 11, pass through the chapter for that setting, and put things back with the guidance in Chapter 10.

A Mini Glossary of Abbreviations

So you can read this side by side with the settings dialog, here are the abbreviations that appear in this article.

Abbreviation Expansion In one line
MTU Maximum Transmission Unit The largest size that fits in one packet. Normally 1500 bytes
RSS Receive Side Scaling Spreads receive processing across multiple CPUs
RSC Receive Segment Coalescing Coalesces received TCP segments on the NIC
LRO Large Receive Offload Another name for RSC. Some vendors use this label
LSO Large Send Offload Has the NIC split large TCP send data into frames
TSO TCP Segmentation Offload Another name for LSO
USO UDP Segmentation Offload Has the NIC split large UDP packets
URO UDP Receive Segment Coalescing Offload Coalesces received UDP datagrams on the NIC
EEE Energy Efficient Ethernet (IEEE 802.3az) Lowers power consumption while the link is idle
WoL Wake on LAN Wakes a sleeping PC over the network
VMQ Virtual Machine Queue Assigns a receive queue per Hyper-V VM
VMMQ Virtual Machine Multi-Queue Extends VMQ across multiple queues
SR-IOV Single Root I/O Virtualization Splits the NIC virtually and exposes it directly to VMs
RDMA Remote Direct Memory Access Reads and writes the peer’s memory directly without going through the CPU
DCB Data Center Bridging A family of standards for building lossless Ethernet
PFC Priority-based Flow Control Flow Control that applies pause per priority
DPC Deferred Procedure Call A high-priority deferred routine that handles the back half of interrupt processing
NDIS Network Driver Interface Specification The interface specification for Windows network drivers

1. The Conclusion First

To start, here are the conclusions that are hard to get wrong in practice.

  • Speed & Duplex stays on Auto by default. When a link drops to 100Mbps, jumping straight to a pinned 1.0 Gbps Full Duplex is the last move, not the first.
  • Checksum Offload / RSS / LSO / RSC should, as a rule, be enabled or left at their defaults. Turning them all off carelessly tends to waste CPU.
  • Use Jumbo Packet only when it lines up end-to-end. Setting only your NIC to 9014 while a hop along the path stays at 1500 is a trap.
  • Interrupt Moderation is a tug-of-war between throughput and latency. Raise it and the CPU gets an easier time, but latency grows.
  • Flow Control can work in the direction of reducing drops, but it can also spread congestion.
  • EEE / Green Ethernet / Selective Suspend are power-saving settings, not settings that make things faster.
  • VMQ / SR-IOV are for Hyper-V hosts, not magic that speeds up an ordinary desktop PC.
  • Wake on Pattern Match easily becomes a source of unintended wakes, so if all you want is Wake on LAN, leaning on Magic Packet is safer.
  • Old items such as TCP Chimney Offload are better left alone today.

In short, the NIC advanced settings tab is not a place to enable everything that sounds powerful. It is a place where you decide which of throughput, latency, CPU, power consumption, and compatibility you are going after, and then touch one item at a time.

What the advanced settings tab is forA diagram showing that NIC advanced settings are not a place to enable everything that sounds powerful, but a place to decide which of throughput, latency, CPU, power consumption, and compatibility you are going after and then touch one item at a time.not what this place is forEnable everything that sounds powerfulNIC advanced settingsDecide which axis you are going afterTouch one item at a time

Figure 3: Use the advanced settings tab as a place to decide the axis you want first, then touch one item at a time.

In the diagram a solid line marks a relation that always holds and a dashed line marks a conditional one (the conditions are given per relation on the detail page). The full list of relations (26 in total, with evidence and certainty) and the definitions of the main concepts are collected on the knowledge map detail page (in Japanese). Data: JSON-LD / Turtle

2. Where to Look at the Settings

2.1 Looking Through the GUI

Entering from Network Connections

  1. Run ncpa.cpl
  2. Right-click the target adapter
  3. Properties then Configure
  4. The Advanced tab

Entering from Device Manager

  1. Open Device Manager
  2. Go to Network adapters
  3. Right-click the target NIC and choose Properties
  4. The Advanced tab

The items listed there are the subject of this article. That said, the settings on the Power Management tab also matter a great deal in practice, so they are covered later on.

2.2 Looking Through PowerShell

PowerShell makes it easier to list the current values and to back them up before making changes.

Get-NetAdapter

Get-NetAdapterAdvancedProperty -Name "Ethernet" |
  Sort-Object DisplayName |
  Format-Table DisplayName, DisplayValue, RegistryKeyword, RegistryValue -Auto

On some NICs the RegistryKeyword uses a standardized name, so you see things like *RSS, *VMQ, *SRIOV, and *EEE. However, DisplayName and DisplayValue are driver dependent. When writing a script that changes settings, it is safer to list them on the actual device first.

The order to follow when checking with PowerShellA diagram showing the safe order of listing the properties on the actual device first, confirming that display names are driver dependent, and only then writing a script that changes settings.List the properties on the actual deviceConfirm display names are driver dependentOnly then write the change scriptAlso back up the settings before changing

Figure 4: Because display names are driver dependent, list the properties on the actual device before writing the script.

3. Ground Rules Before Touching Anything

Before touching NIC settings, getting these wrong is usually what turns the work into a slog.

3.1 First Decide What You Want to Improve

The same phrase “the network is slow” can mean completely different things.

  • Large file copies are slow -> throughput, RSS, RSC, LSO, Jumbo, buffers
  • Small request/response traffic feels sluggish -> Interrupt Moderation, RSC, EEE, queue depth
  • CPU usage is high -> offloads, RSS, RSC, interrupts
  • Something is wrong after sleep resume -> Selective Suspend, Power Management, WoL
  • The link occasionally drops or falls to 100Mbps -> the cable, the peer device, Speed & Duplex, EEE, the driver

Touching the same setting for a different goal makes things worse rather than better.

Separate what slow actually means firstA diagram showing that the same symptom of a slow network can mean completely different things, and that unless you decide what to improve first and touch only the matching group of settings, things get worse instead of better.touching without separatingThe network is slowSeparate what it actually means firstTouch only the settings that match the goalWorse rather than better

Figure 5: Unless you separate what the symptom actually is before touching anything, the same word “slow” leads you the wrong way.

3.2 Suspect the Physical Layer and the Peer Device First

Plenty of problems are not fixed by NIC settings at all.

  • A bad cable
  • Compatibility with a switch, router, or dock
  • Old firmware
  • Insufficient power for a USB NIC
  • Errors on the port side
  • Packet loss and retransmissions

In particular, for drops to 100Mbps, a flapping link, and only bulk transfers breaking, it is faster to look at the physical layer and the peer before the settings.

Look at the physical layer and the peer device firstA diagram showing that for symptoms such as downshifts to 100Mbps, a flapping link, or only bulk transfers breaking, suspecting the physical layer including the cable and the peer device is faster than starting from NIC settings.if it still remainsSymptoms such as downshift or flappingFirst the cable, the peer device, the physical layerMove on to isolating NIC settingsPlenty of problems settings cannot fix

Figure 6: For link-related symptoms, suspecting the physical layer and the peer device is faster than starting from the settings.

3.3 Change Exactly One Item at a Time

Change Jumbo, LSO, RSC, RSS, and EEE all at once and you will not know which one did anything. The baseline is to write down the settings before the change, alter one item at a time, and measure the difference.

3.4 Decide What to Measure

At a minimum, these are worth watching.

  • Link speed (1G / 2.5G / 10G and so on)
  • Throughput
  • Latency
  • CPU usage
  • NIC statistics (drops, errors, buffer shortage)
  • Stability of sleep resume

Judging a settings change by numbers rather than by feel is far stronger.

Change one item at a time and compare with numbersA diagram showing the basic flow of a settings change: write down the settings before the change, alter exactly one item, measure the metrics you decided on, and compare with numbers rather than by feel.Write down the settings before the changeChange exactly one itemMeasure the metrics you decided onCompare with numbers, not by feel

Figure 7: Change one item at a time and compare before and after with numbers. That is the basic pattern.

4. Overview Table of the Main Settings

First, a single table showing the role of each setting at a glance.

Setting What the setting does What tends to happen when you raise / enable it What tends to happen when you lower / disable it Baseline policy
Speed & Duplex Negotiates or pins link speed and duplex Matching an old peer can get the link up, but a mismatch causes duplex mismatch or reduced speed Returning to Auto tends to be stable with modern equipment Auto by default
Jumbo Packet / Jumbo Frames Uses frames larger than the MTU Large transfers tend to see less CPU and less header overhead Compatibility is high, but the packet count goes up Only when it lines up end-to-end on a dedicated path
Checksum Offload Handles IP / TCP / UDP checksums on the NIC CPU usage tends to drop The OS does more of the math, so CPU tends to rise Enabled as a rule
LSO / TSO Has the NIC split large TCP send data Tends to help send-heavy throughput and CPU CPU load rises, but it is convenient for isolating compatibility issues Normally enabled
RSC / LRO Coalesces received TCP segments on the NIC Tends to help receive throughput and CPU Granularity gets finer, which is sometimes an advantage for low latency Enabled if receive matters
RSS Spreads receive processing across multiple CPUs Throughput and scalability tend to rise on multi-core Processing concentrates on a single CPU and tends to bottleneck Enabled by default on multi-core
Interrupt Moderation Throttles interrupt frequency CPU gets an easier time, but latency tends to grow Latency drops, but CPU and DPC load tend to rise Start from the default or Adaptive
Receive / Transmit Buffers Depth of the rings and buffers Tends to help burst tolerance and sustained throughput Memory usage drops, but the adapter becomes prone to drops Increase only when they run short
Flow Control Sending and receiving 802.3x pause frames Can reduce drops Can be an advantage for tail latency Align with the design of the whole network
Priority & VLAN 802.1p / 802.1Q tagging Lets you use VLAN and QoS Operates as plain L2 Only when you need it
VMQ / SR-IOV NIC assistance for Hyper-V and virtualization Helps VM throughput and CPU Keeps things simple for an ordinary host For Hyper-V hosts
EEE / Green Ethernet Low-Power Idle for power saving Power consumption drops, but compatibility problems can appear Power goes up, but things can be more stable Not a speed setting
Selective Suspend Puts the NIC into a low-power state while idle Power consumption drops Resume stability can improve A candidate for isolation when troubleshooting
Wake on Magic Packet / Pattern Match Wake conditions during sleep Lets you power on remotely Makes unintended wakes easier to prevent Enable only when you need it

5.1 Speed & Duplex

This setting governs the negotiation of link speed and full duplex or half duplex. Display names include Speed & Duplex, Link Speed, and Link Speed & Duplex.

What the Setting Does

In Ethernet, the NIC and the peer device determine which speed and which duplex mode to use.

  • Auto Negotiation
  • 100 Mbps Full Duplex
  • 1.0 Gbps Full Duplex
  • 2.5 Gbps Full Duplex
  • 10 Gbps Full Duplex

Options like these are the usual set.

What Changes When You Change It

Setting it to Auto

  • Between modern devices, this is fundamentally the most stable choice
  • At 1000BASE-T and above, Auto is often the assumed mode
  • It also stays consistent with EEE and master/slave negotiation

Pinning it manually

  • It sometimes improves compatibility with old switches, or with a peer that is itself hard-pinned
  • However, a state where one side is pinned and the other is on Auto is asking for trouble
  • Causing a duplex mismatch leads to reduced speed, retransmissions, and abnormal delays

The Baseline Policy in Practice

Normally, leaving it on Auto is fine. “It won’t do 1Gbps, so pin it to 1Gbps Full” looks decisive but usually misses the real issue.

The duplex mismatch that one-sided pinning invitesA diagram showing that a state where one side is pinned and the other is on Auto causes duplex mismatch leading to reduced speed, retransmissions, and abnormal delays, and that Auto on both sides is fundamentally the most stable between modern devices.between modern devicesOne side pinned, the other on Autoduplex mismatchReduced speed, retransmissions, abnormal delaysAuto on both sidesFundamentally the most stable

Figure 8: Mixing a pinned side with an Auto side causes duplex mismatch, so normally leave both sides on Auto.

5.2 Jumbo Packet / Jumbo Frames

This is the setting that uses Ethernet frames larger than the standard size. Display names include Jumbo Packet, Jumbo Frames, and Jumbo Packet Size.

What the Setting Does

Ordinary Ethernet usually runs on the assumption of MTU 1500. Enabling Jumbo Frames lets you use large frames of around 9000 bytes.

There are plenty of naming traps here, though.

  • The driver may show the frame size, such as 9014 Bytes
  • The OS and tools may take an L3 view, such as MTU 9000
  • The switch may count including CRC and VLAN tags

Comparing the numbers side by side is a very easy way to get stuck.

Different ways of counting the Jumbo numbersA diagram showing that for the same Jumbo configuration the driver may show the frame size, the OS and tools may show the MTU from an L3 view, and the switch may count including tags and CRC, so comparing the numbers side by side leads to trouble.Driver: shows the frame sizeLooking at the same thing counted differentlyOS and tools: MTU from an L3 viewSwitch: includes tags and CRCComparing raw numbers side by side leads to trouble

Figure 9: The driver, the OS, and the switch count differently, so do not compare Jumbo numbers side by side.

What Changes When You Change It

Raising it or enabling it

  • The packet count drops when sending large amounts of data
  • Header processing happens fewer times
  • CPU usage tends to fall
  • On the other hand, each packet occupies the wire for longer
  • If any hop along the path does not support it, that causes drops or fragmentation

Returning to standard or disabling it

  • Compatibility is at its highest
  • The packet count goes up
  • CPU and header overhead tend to rise for bulk transfers

The Baseline Policy in Practice

Jumbo only means anything when it lines up end-to-end.

  • Your own NIC
  • The peer’s NIC
  • The switches along the way
  • The overhead of any VLAN or virtual switch in the path

If any one of these stays at 1500, you not only lose the benefit, you gain a source of trouble.

Jumbo only means anything when it lines up end-to-endA diagram showing that Jumbo Frames only mean anything when your NIC, the switches along the way, and the peer NIC line up end-to-end, and that if any one of them stays at 1500 you not only lose the benefit but gain a source of trouble.if any one stays at 1500Your own NICThe switches along the wayThe peer NICOnly means anything when all of them line upNo benefit and a source of trouble

Figure 10: Jumbo assumes everyone on the path lines up; one hop left at 1500 makes it counterproductive.

5.3 Gigabit Master / Slave Mode

On 1000BASE-T, this setting governs which side leads the clock as master and which follows as slave. On an ordinary PC you will hardly ever touch it.

Baseline Policy

  • Auto is the baseline
  • Evaluate it only for link quality problems with specific old peer devices
  • Unless a vendor tells you otherwise, do not treat it as a performance tuning knob

A setting such as Wait for Link governs whether the driver waits for auto negotiation to succeed before reporting link state. Log Link State Event is a diagnostic setting that records link up and down in the event log.

Baseline Policy

  • On an ordinary PC, the default is fine
  • These matter for how things look at boot and for failover diagnostics rather than for performance itself
  • They are not the first items to touch

6. Settings That Affect CPU Load, Throughput, and Latency

This is the band that looks the most “effective.” It often is effective, but the direction in which it works splits cleanly.

The settings in this band split by directionA diagram showing that the settings affecting CPU load, throughput, and latency split cleanly into a direction that batches processing to gain throughput and CPU headroom and a direction that processes finely to gain latency.The band of settings that look effectiveThe direction that batches processingThe direction that processes finelyFavors throughput and CPUFavors latency

Figure 11: Even within the same band, settings split into throughput-leaning and latency-leaning directions.

6.1 Checksum Offload

This setting moves IP / TCP / UDP checksum calculation onto the NIC.

Baseline Policy

  • Enabled as a rule
  • Keep it if you want lower CPU
  • Checksum errors in a capture are usually just how offload looks
  • Turning it off temporarily to isolate a compatibility issue is fair game

6.2 Large Send Offload (LSO) / TSO / Offload TCP Segmentation

This setting has the NIC split large TCP send data into individual frames.

What It Helps

  • Send-heavy throughput
  • Reduced CPU usage
  • Large sustained sends

Baseline Policy

  • Normally enabled
  • When a specific application or driver looks like a compatibility problem, disable it temporarily and look at the difference

6.3 Receive Segment Coalescing (RSC) / Large Receive Offload

This setting coalesces multiple TCP segments on the receive side.

What It Helps

  • Receive-side throughput
  • Reduced CPU usage

Points to Watch

  • It can work against you for low latency and per-packet observation
  • It slightly changes how you interpret captures and timing measurements

Baseline Policy

  • Enable it if you want receive throughput
  • Treat it as a candidate for evaluation if you care about the latency of small request/response traffic
How RSC works and where evaluation splitsA diagram showing that RSC coalesces multiple received TCP segments on the NIC and helps receive throughput and CPU reduction, while it can work against you for low latency and per-packet observation and therefore becomes a candidate for evaluation.when low latency or observation comes firstMultiple received TCP segmentsCoalesced on the NIC (RSC)Helps receive throughput and CPUCan work against you, so evaluate it

Figure 12: RSC batches receive processing, so if what you want is latency, it becomes a candidate for evaluation.

6.4 Newer UDP Offloads (USO / URO)

On recent NICs and operating systems, newer offloads can show up for UDP sends and receives as well.

Baseline Policy

  • Even when they are exposed, start by not deviating from the defaults
  • Measure only when the driver is new enough and the target workload is clearly defined
  • Do not force changes to them during troubleshooting

6.5 Receive Side Scaling (RSS)

This setting spreads receive processing across multiple CPUs. It matters a great deal in multi-core environments.

Baseline Policy

  • Enabled by default on multi-core
  • Check it first when the symptom is one CPU pegged at full load
  • It also tends to be the leading factor even before you get into Hyper-V or high-throughput territory
How receive processing changes with and without RSSA diagram showing that with RSS disabled receive processing concentrates on a single CPU and tends to bottleneck, while enabling it spreads the work across multiple CPUs so throughput tends to scale in multi-core environments.RSS disabledRSS enabledReceive trafficConcentrates on a single CPU and bottlenecksSpread across multiple CPUsTends to scale on multi-core

Figure 13: RSS is the mechanism that spreads receive processing across CPUs, so check it first when a single CPU is pegged.

6.6 RSS Queues / RSS Processors / RSS Profile

These items determine the degree of parallelism for RSS.

Baseline Policy

  • Start from the defaults
  • Increase them only once you can see CPU usage or queue imbalance
  • Cranking them to the maximum for no reason can increase interrupt and DPC load

6.7 Interrupt Moderation / Interrupt Moderation Rate

This setting throttles interrupt frequency, trading CPU load against latency.

Tendencies

  • Higher / Adaptive -> CPU tends to get an easier time, but latency tends to grow
  • Lower / Off -> Latency tends to drop, but CPU and DPC load tend to rise

Baseline Policy

  • Start from the default or Adaptive
  • If jitter on small packets bothers you, evaluate Low or Off
  • For bulk transfers, the default is usually the more straightforward choice
The tug-of-war in Interrupt ModerationA diagram showing the tug-of-war where setting Interrupt Moderation higher or to Adaptive gives the CPU an easier time but tends to grow latency, while setting it lower or Off drops latency but tends to raise CPU and DPC load.higher / Adaptivelower / OffInterrupt ModerationCPU tends to get an easier timeLatency tends to growLatency tends to dropCPU and DPC load tend to rise

Figure 14: Throttling interrupt frequency trades CPU against latency; start the evaluation from the default or Adaptive.

6.8 Receive Buffers / Receive Descriptors and Transmit Buffers / Transmit Descriptors

These settings change the depth of the rings and buffers.

What They Help

  • Burst tolerance
  • Sustained throughput
  • Avoiding drops

Side Effects

  • Memory usage grows
  • Deeper queues can add queueing delay

Baseline Policy

  • Increase them only when you can see drops or buffer shortage
  • Avoid cranking them to the maximum on a hunch
When to increase buffer depthA diagram showing that deeper buffers help burst tolerance and drop avoidance while increasing memory usage and possibly queueing delay, so the decision is to increase them only when drops or buffer shortage are visible.only when visibleavoidDrops or buffer shortage are visibleIncrease the buffersMemory usage and queueing delay can growCranking to the maximum on a hunch

Figure 15: Increase buffers only when the symptom shows up in the numbers, and avoid maxing them out on a hunch.

6.9 Flow Control

This setting governs sending and receiving 802.3x pause frames.

Baseline Policy

  • It is a candidate if you want to reduce drops
  • However, pause can also spread congestion elsewhere
  • Look at it carefully in low-latency scenarios
  • Think about it together with the design of the whole network
The two faces of Flow ControlA diagram showing that Flow Control pause frames can work in the direction of reducing drops while also spreading congestion elsewhere, so the decision has to be made together with the design of the whole network.can be effectivecan also spreadpause frame (Flow Control)In the direction of reducing dropsCongestion elsewhereDecide together with the whole network design

Figure 16: Flow Control reduces drops but can also spread congestion, so never judge it in isolation.

7. Settings Around VLAN, QoS, and Virtualization

7.1 Priority & VLAN / Packet Priority & VLAN / NDIS QoS

This is the band that deals with 802.1Q VLAN and 802.1p Priority.

Baseline Policy

  • Pay attention to it only when you genuinely use VLAN or QoS
  • In a plain access port environment, the defaults are fine
  • Be careful with configurations that add tags on their own, since they make isolation harder

7.2 VMQ / VMMQ / SR-IOV

These settings only mean something on a Hyper-V host or a virtualization platform.

Baseline Policy

  • Do not treat them as ordinary desktop tuning
  • On a Hyper-V host, evaluate them together with the vSwitch configuration, queue assignment, and guest-side settings
  • Looking at only one side rarely produces the right answer
The unit of evaluation for VMQ and SR-IOVA diagram showing that VMQ and SR-IOV only mean something on a Hyper-V host or virtualization platform, that they have to be evaluated together with the vSwitch configuration, queue assignment, and guest-side settings, and that looking at only one side rarely produces the right answer.not treated asVMQ / VMMQ / SR-IOVMeans something on a Hyper-V hostEvaluate with vSwitch, queues, and the guest side togetherOrdinary desktop tuning

Figure 17: Virtualization settings can only be evaluated when you look at the host, the vSwitch, and the guest as one whole.

7.3 RDMA / DCB / PFC Are a Different World

This area, which includes SMB Direct and lossless Ethernet, is a considerably different world.

Baseline Policy

  • Keep it separate from ordinary 1GbE / 2.5GbE desktop tuning
  • Check the vendor documentation and the switch-side design together

8. Settings Around Power Saving, Sleep, and Wake on LAN

8.1 Energy Efficient Ethernet (EEE) / Green Ethernet

This setting lowers power consumption while the link is idle, for the sake of power saving.

How to Look at It

  • It is not a setting that makes things faster
  • It does help power consumption
  • Depending on the peer device and cabling conditions, it becomes a candidate for isolating link instability or a downshift to 100Mbps

Baseline Policy

  • For general use, the default is fine
  • For link instability, drops to 100Mbps, or a low-latency focus, it is the first isolation candidate
Where EEE fitsA diagram showing that EEE is a power-saving setting that lowers power consumption while the link is idle rather than a setting that makes things faster, and that depending on the peer device and cabling conditions it becomes a candidate for isolating link instability or a downshift to 100Mbps.not a setting that makes things fasterdepending on the peer and cablingEEE / Green EthernetLowers power consumption while idleSpeed and performanceIsolation candidate for instability and downshift

Figure 18: EEE is a power-saving setting, and for link instability or a drop to 100Mbps it is the first isolation candidate.

Put plainly, these settings decide how deeply the NIC sleeps while idle or during system sleep.

Baseline Policy

  • On laptops, start from the defaults
  • If you have resume trouble, suspect these first
  • On equipment-control PCs and in 24/7 operation, turning them off is often the clearer choice

8.3 Wake on Magic Packet / Wake on Pattern Match

These settings let a sleeping PC be woken over the network.

Baseline Policy

  • Enable Magic Packet if you need Wake on LAN
  • Disable it if you do not
  • Use Pattern Match only when the need is clear

Turning it on only at the NIC often does not wake the machine. Line up the BIOS / UEFI side and the Power Management tab as well.

The conditions under which Wake on LAN worksA diagram showing that Wake on LAN only works when the NIC Magic Packet setting, the BIOS or UEFI side, and the Power Management tab side all line up, so all three places need to be checked together.NIC Magic Packet settingWake on LAN worksBIOS / UEFI side settingPower Management tab sidePattern Match easily causes unintended wakes

Figure 19: WoL only works when the NIC, the BIOS/UEFI, and the power management tab all line up.

8.4 ARP Offload / NS Offload

These settings let the NIC answer a minimum set of requests on the system’s behalf during sleep.

Baseline Policy

  • Normally enabled or at the default is fine
  • They are often touched temporarily when isolating sleep-related compatibility issues

8.5 Settings on the Power Management Tab

Separately from the Advanced tab, NIC properties have a Power Management tab. It matters more than it looks.

The three you see most often are these.

  • Allow the computer to turn off this device to save power
  • Allow this device to wake the computer
  • Only allow a magic packet to wake the computer

Baseline Policy

  • For resume failures, suspect Allow the computer to turn off this device... first
  • To avoid unintended wakes, enable Only allow a magic packet...
  • If you do not need Wake on LAN at all, disabling every wake option is fine
How to read the Power Management tabA diagram showing the decision of suspecting the allow-the-computer-to-turn-off-this-device setting first for resume failures, enabling the magic-packet-only wake setting to avoid unintended wakes, and disabling every wake option when Wake on LAN itself is not needed.resume failureavoid unintended wakesWoL not needed at allWhat is the actual problemSuspect the power-off permission setting firstWake only on Magic PacketDisable every wake option

Figure 20: On the Power Management tab, the first place to touch is determined by the kind of problem you have.

9. Other Settings You See Often but Rarely Touch

9.1 Network Address / Locally Administered Address

This setting overrides the MAC address by hand.

Baseline Policy

  • Do not touch it normally
  • It is not a performance setting
  • Use it only in lab environments or for special requirements

9.2 Adaptive Inter-Frame Spacing

A very old-school setting. On modern switched full-duplex Ethernet it is not a major factor.

Baseline Policy

  • On a modern ordinary LAN, leave it at the default
  • Touch it only for old equipment or special environments where the vendor says to

9.3 Header Data Split

Mainly a server-oriented setting, in the category of helping CPU processing by handling packet headers and payloads separately.

Baseline Policy

  • Server oriented and workload specific
  • On general clients, leave it at the default

9.4 Low Latency Interrupts

Some vendors expose an item such as Low Latency Interrupts.

Baseline Policy

  • Use it only when measurement shows it wins
  • This is not a band to switch On based on vibes

9.5 Old Items Such as TCP Chimney Offload and IPsec Task Offload

On older NICs and drivers, you sometimes see items like these.

Baseline Policy

  • Do not touch them, do not use them today
  • Do not get pulled along by compatibility concerns or old documentation
The shared stance for the items in Chapter 9A diagram showing the shared stance that overriding the MAC address, old-school settings, server-oriented settings, and legacy offload items are normally left at their defaults and touched only when there is a vendor instruction or a clear requirement backed by measurement.touch them onlyThe items listed in Chapter 9Normally left at the default, untouchedWhen there is a vendor instruction or a clear requirementUse only when measurement shows it wins

Figure 21: A band you normally leave alone even when you notice it, touched only with clear instructions or requirements plus measurement.

10. Rough Guidance by Goal

Below, the phrases “evaluate disabling” and “disable as a candidate” come up repeatedly. They do not mean “turn it off.” They mean make it a subject of evaluation. The substance is exactly the ground rules from 3.3 and 3.4, and concretely it is these four steps.

  1. Save the settings before the change (the Export-Csv in 12.1)
  2. Disable exactly one item (3.3)
  3. Measure the metrics you decided on in 3.4 (throughput, latency, CPU, NIC statistics, resume stability)
  4. Restore it if it had no effect

Skip step 4 and meaningless changes pile up, making the next round of isolation harder. Read each item below as a candidate list for running these four steps.

The four steps of evaluating a disableA diagram showing the loop of the four steps for evaluating a disable: save the settings before the change, disable exactly one item, measure the metrics you decided on, and restore it if it had no effect.if it had no effecton to the next candidateSave the settings before the changeDisable exactly one itemMeasure the metrics you decided onRestore it

Figure 22: “Evaluate disabling” does not mean turn it off; it means running these four steps and measuring.

10.1 An Ordinary Desktop or Laptop PC

  • Speed & Duplex: Auto
  • MTU / Jumbo: 1500 / disabled
  • Checksum Offload: enabled
  • LSO: enabled
  • RSC: enabled
  • RSS: enabled
  • Interrupt Moderation: default / Adaptive
  • Buffers: default
  • Flow Control: default
  • EEE / Green Ethernet: default
  • Selective Suspend: default
  • Wake on LAN: only when you need it

In other words, the baseline is not deviating from the defaults to begin with.

10.2 NAS, Backup, and Bulk Copies

  • Speed & Duplex: Auto
  • Jumbo: evaluate if you can line it up on a dedicated path
  • Checksum Offload: enabled
  • LSO: enabled
  • RSC: enabled
  • RSS: enabled
  • RSS queues: raise a little if needed
  • Receive / Transmit Buffers: raise a little if there are drops
  • Interrupt Moderation: default or slightly higher
  • EEE: evaluate disabling if stability comes first

For large transfers, fewer packets, less CPU, and avoiding queue shortage tend to be what pays off.

10.3 Industrial Cameras, Equipment Control, and a Low-Latency Focus

  • Speed & Duplex: Auto by default. Pin it to match the peer if you must
  • Jumbo: evaluate if the camera, the NIC, and the switch all line up
  • Checksum Offload: enabled first
  • LSO: evaluate disabling temporarily if the send path looks like a compatibility problem
  • RSC: a candidate for disabling if low latency or observation comes first
  • Interrupt Moderation: evaluate Low / Off
  • Buffers: do not overdo it
  • Flow Control: the side effects of pause need evaluation
  • EEE / Green Ethernet: a candidate for disabling
  • Selective Suspend and power management: candidates for disabling

Settings that optimize throughput are not necessarily an advantage for low latency.

10.4 A Hyper-V Host

  • VMQ / VMMQ / SR-IOV: evaluate according to the configuration
  • RSS: important for host-side traffic
  • RSC: constrained depending on the vSwitch configuration
  • QoS / VLAN: align with the vSwitch design
  • Flow Control / PFC: think about it together with the storage and RDMA design

This is not desktop tuning; it is virtualization platform design.

10.5 Temporary Settings for Troubleshooting

When isolating a fault, returning to a simple world for a while is a strong move.

  • Speed & Duplex: Auto
  • MTU: 1500
  • Jumbo: disabled
  • EEE: disabled
  • LSO: temporarily disabled
  • RSC: temporarily disabled
  • Interrupt Moderation: default or lower
  • Wake and power save: disabled if not needed
  • Settings before the change: always saved

During isolation, simplifying the behavior beats optimizing the performance.

11. First Places to Look, by Symptom

11.1 It Should Be 1Gbps or 2.5Gbps but Comes Up at 100Mbps

The order to look is roughly this.

  1. The cable
  2. The dock / USB NIC / converter adapter
  3. The switch port
  4. A driver update
  5. EEE / Green Ethernet
  6. Return Speed & Duplex to Auto
  7. If none of that works, try pinning it to match the peer

Jumping straight to a manual pin is the last move.

The order to look when a link drops to 100MbpsA diagram showing the order of looking at the cable, the dock or USB NIC, the switch port, a driver update, isolating EEE, returning to Auto Negotiation, and only if none of that works pinning the speed to match the peer.if none of that worksThe cabledock / USB NIC / converterThe switch portA driver updateIsolating EEESpeed & Duplex back to AutoPin it to match the peer

Figure 23: Investigate a downshift starting from the physical layer, and keep manual pinning as the last resort.

11.2 Bulk Transfers Are Slow but ping Looks Normal

These are the things to look at.

  • Checksum Offload
  • LSO
  • RSC
  • RSS
  • Receive / Transmit Buffers
  • Jumbo Frame (if the path is dedicated)
  • Drops and errors in the NIC statistics

This is a throughput-class problem, so Jumbo, queues, and offloads tend to be what helps.

11.3 Small request/response Latency Is High, or Jitter Bothers You

These are the five to check.

  • Interrupt Moderation
  • RSC
  • EEE
  • Flow Control
  • Whether the buffers have been piled up too high

In this band, optimizations that batch processing together can end up increasing the delay you perceive.

11.4 The NIC Disappears After Sleep Resume, or Cannot Connect for Several Seconds

Centered on power, these are the five to look at.

  • Selective Suspend
  • Device Sleep and standby-related settings
  • Allow the computer to turn off this device... on the Power Management tab
  • Dock or USB NIC firmware
  • The combination of wake settings

Resume trouble is more often about power management than about the NIC itself.

11.5 A Packet Capture Shows Masses of Checksum Errors

Before rushing to declare “the line is broken,” check these.

  • Whether Checksum Offload is enabled
  • Whether LSO is enabled
  • Whether the capture is before transmission or on the wire
  • Whether it looks the same from another host or a mirror port

Checksum errors in a local capture really are, very often, just how offload looks.

A note on the third item, “whether the capture is before transmission or on the wire.” When you capture on your own PC, you see packets before the NIC fills in the checksum. With offload enabled, the checksum field is still empty or holds a provisional value, so the analyzer naturally reports it as invalid. The packet that actually went out on the cable being correct is a perfectly ordinary outcome.

Why a local capture looks like a checksum errorA diagram showing the mechanism where a capture on your own PC sees packets before the NIC fills in the checksum so the analyzer reports them as invalid when offload is enabled, while the packet that actually went out on the cable can be correct.Capture on your own PCSees packets before the checksum is filled inThe tool reports them as invalidLook at the wire from a mirror portThe actual packets are correctComparing both confirms it is how offload looks

Figure 24: A local capture point sits upstream of the NIC, so with offload enabled the error display is usually an artifact of where you are looking.

The tools used to confirm this are roughly these three.

Tool Where it fits Notes
Wireshark The standard analysis GUI It has a setting to turn off checksum validation. In an offload environment, that is the first place to suspect
pktmon A packet monitoring tool built into Windows 10 / Windows Server 2019 (1809) and later No extra installation needed. It can also detect packet drops and apply filters
A switch mirror port The only sure way to see the wire itself It looks outside the sending PC, so it is unaffected by offload

pktmon logs can be converted to pcapng, so you can open them directly in Wireshark.

pktmon etl2pcap log.etl --out capture.pcapng

If it is “checksum errors locally, clean on the mirror port,” that settles it: it is how offload looks. Confirm that far before touching any settings.

11.6 Only the Hyper-V VMs Are Slow, or CPU Load Is Skewed

What to look at is not just desktop-style RSS.

  • VMQ / VMMQ
  • SR-IOV
  • vSwitch binding
  • VLAN / QoS
  • The division of work between host-side RSS and VM-side queues

In virtualization, drawing a diagram of who is handling the packets makes it easier to sort out.

12. Practical Notes for Checking and Changing Things in PowerShell

12.1 Save the Current State First

Backing things up before a change matters.

Get-NetAdapterAdvancedProperty -Name "Ethernet" |
  Select-Object Name, DisplayName, DisplayValue, RegistryKeyword, RegistryValue |
  Export-Csv .\nic-advanced-backup.csv -NoTypeInformation -Encoding UTF8

12.2 List the Properties

Get-NetAdapterAdvancedProperty -Name "Ethernet" |
  Sort-Object DisplayName |
  Format-Table DisplayName, DisplayValue, RegistryKeyword -Auto

12.3 Look at RSS, RSC, and Statistics

Get-NetAdapterRss -Name "Ethernet"
Get-NetAdapterRsc -Name "Ethernet"
Get-NetAdapterStatistics -Name "Ethernet"

12.4 Examples of Changing a Setting

The actual display names differ per NIC, so list them first and then make the change.

# Example: change Jumbo Packet (the value differs per NIC)
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
  -DisplayName "Jumbo Packet" `
  -DisplayValue "9014 Bytes"
# Example: set the number of RSS receive queues
Set-NetAdapterRss -Name "Ethernet" -NumberOfReceiveQueues 4

12.5 A Connectivity Check for Jumbo

# Equivalent to the standard MTU 1500
ping <peer IP> -f -l 1472

# Equivalent to MTU 9000
ping <peer IP> -f -l 8972

1472 and 8972 are the payloads after subtracting the IP and ICMP headers. The 9014 Bytes shown in the driver UI and these ping numbers do not match.

12.6 Practical Notes

  • Some settings require disabling and re-enabling the adapter or a reboot
  • DisplayName can be localized
  • Even within the same vendor, item names can change between driver versions
  • If you automate with PowerShell, it is safer to enumerate the values on the actual device first and then write the script

13. Summary

Judging by the item names alone, every Windows NIC advanced setting looks powerful. In reality, though, this is a world where the right answer depends on which of throughput, latency, CPU, power, and compatibility you are going after.

The key points of this article are these.

  • Speed & Duplex stays on Auto by default
  • Jumbo only when it lines up end-to-end
  • Checksum / RSS / LSO / RSC are strongest at their defaults as a rule
  • Interrupt Moderation is a trade-off between throughput and latency
  • Buffers only as much as you need
  • EEE / Selective Suspend / wake settings are about power and resume
  • VMQ / SR-IOV are about Hyper-V
  • Do not touch the old offload items

And the three most important things are these.

  1. Decide what you want to improve
  2. Change exactly one item at a time
  3. Compare before and after with numbers

NIC settings are not a magic switch that makes things faster. But when the goal lines up, they work quite well. Conversely, when the goal is off, they backfire just as reliably.

The three most important patternsA diagram showing that if you keep the three patterns of deciding what you want to improve, changing exactly one item at a time, and comparing before and after with numbers, NIC settings work quite well as long as the goal lines up.when the goal is offDecide what you want to improveChange exactly one item at a timeCompare before and after with numbersWorks quite well when the goal lines upBackfires just as reliably

Figure 25: Keep the three patterns of goal, one item, and numbers and it works; miss them and it backfires.

14. References

The following are the official and vendor documents used as the foundation for this article. Windows and NIC drivers have a lot of terminology drift, so in the end it is safest to check against your own NIC’s driver name and version.

Recent articles sharing the same tags. Deepen your understanding with closely related topics.

These topic pages place the article in a broader service and decision context.

This article connects naturally to the following service pages.

Technical Consulting & Design Review

This topic calls for looking beyond NIC settings alone - at the network path, the application's send/receive patterns, and long-running operating conditions - so it pairs well with technical consulting and design review.

Frequently Asked Questions

Common questions about the topic of this article.

Should Large Send Offload (LSO) be disabled?
Normally it should stay enabled. LSO is the mechanism that hands large TCP send buffers to the NIC so the NIC splits them into individual frames, and it helps both throughput and CPU usage on send-heavy traffic. Disabling it carelessly tends to waste CPU. The cases worth considering are isolation work, where you turn it off temporarily to see the difference when a specific application or driver looks like a compatibility problem, and situations such as industrial cameras or equipment control where you want to evaluate how the send path behaves. Even when you disable it for isolation, the rule is to restore the default once you find the cause lies elsewhere.
What is Receive Segment Coalescing (RSC), and should it be disabled?
RSC is the setting that lets the NIC coalesce multiple received TCP segments on the receive side, also known as Large Receive Offload. It helps receive throughput and reduces CPU usage, so enabling it is the baseline policy when receive performance matters. On the other hand it can work against you for low latency and per-packet observation, and it slightly changes how you interpret packet captures and timing measurements. It becomes a candidate for evaluation when you want to shave latency off small request/response traffic, or in environments that prioritize low latency and observability. Get-NetAdapterRsc shows the current state.
What should I check when a link comes up at 100Mbps even though it should be 1Gbps?
Pinning Speed & Duplex by hand is the last resort. The order to look is: the cable first, then the dock / USB NIC / converter adapter, the switch port, a driver update, isolating EEE / Green Ethernet, returning Speed & Duplex to Auto, and only if none of that works, pinning it to match the peer. Downshifts to 100Mbps and link drops are more often caused by the physical layer or the peer device than by NIC settings. A state where one side is pinned and the other is on Auto causes duplex mismatch, which leads to reduced speed, retransmissions, and abnormal delays.
Which Windows NIC advanced settings should I actually enable?
On an ordinary desktop or laptop PC, the baseline is not to deviate from the defaults. Keep Speed & Duplex on Auto, keep Checksum Offload / LSO / RSC / RSS enabled or at their defaults as a rule, and use Jumbo Packet only when the NIC, the peer, and every switch in between line up end-to-end. EEE and Selective Suspend are power-saving settings, not settings that make things faster. When you do change something, decide first what you want to improve (throughput, latency, CPU, power consumption), change exactly one item at a time, and compare before and after with numbers. That is the ironclad rule.

Author Profile

Profile page for the article author.

Go Komura

Representative of KomuraSoft LLC

Focused on Windows software development, technical consulting, and investigations into failures that are difficult to reproduce.

Back to the Blog