Windows | NIC | Optimizing Advanced Driver Settings Network Interface Card

Some users have asked for optimal advanced settings for their Ethernet adapters. Keep in mind that, in most cases, the default settings for your Ethernet adapter will provide the same results.

These settings can be found in your Device Manager by double-clicking your adapter, then click the Advanced tab.

Keep in mind that these settings assume that your CPU is not overworked when you are gaming or otherwise making heavy use of your network adapter. If this is not the case, it may be advantageous to leave the default settings.
Even after optimizing these settings, you may not see an improvement in performance. For most situations, the default settings provide the same result as optimized settings.

You may see improved results by setting your advanced settings as such:

ARP Offload: Disabled (When enabled, this offloads some CPU work to the network adapter. Unless your CPU is struggling, this is undesirable)

ECMA: Disabled (Specific Wake-On-LAN technology that can be a potential security issue. Disable unless you know you need it.)

Energy Efficient Ethernet: Disabled (may use slightly more power, but will prevent conflicts with switches, routers, or modems that do not use this feature appropriately)

Flow Control: Disabled (TCP has its own flow control, and this can cause conflicts. UDP usage is rare enough that a dropped packet should not cause any impact.)

Interrupt Moderation: Disabled (Groups packets before sending them. Not desirable for most uses and can cause slowdowns)

Jumbo Frame: Disabled (Unless you know you are using the machine as a server with jumbo frame support, this is not desirable.)

Max IRQ per Second: Doesn’t matter. (This is a setting for Interrupt Moderation, and will be ignored if Interrupt Moderation is disabled.)

Network Address: Not Present. (The Windows Operating System handles this. This setting will not affect NIC performance)

Receive Side Scaling: Enabled (This will allow the NIC to send received data to multiple CPU cores)*

*If you notice that RSS is correctly configured but it doesn’t seem to work for you it’ might be time to check up on the other adaptor offloads like TCP Checksum Offload, Large Send Offload etc. These also get turned off a lot when trouble shooting performance or reliability issues but RSS depends on them to work. If turned off, this could be the reason RSS is not working for you..

IPv4 Checksum Offload: Disabled (When enabled, this offloads some CPU work to the network adapter. Unless your CPU is struggling, this is undesirable)*

Large Send Offload: Disabled (When enabled, this offloads some CPU work to the network adapter. Unless your CPU is struggling, this is undesirable)*

TCP Checksum Offload: Disabled (When enabled, this offloads some CPU work to the network adapter. Unless your CPU is struggling, this is undesirable)*

UDP Checksum Offload: Disabled (When enabled, this offloads some CPU work to the network adapter. Unless your CPU is struggling, this is undesirable)*

NS Offload: Disabled (When enabled, this offloads some CPU work to the network adapter. Unless your CPU is struggling, this is undesirable)*

Maximum Number of RSS Queues: 2 for dual-core CPUs, 4 for quad-core CPUs (This will only increase performance if CPU cores are underutilized when receiving large amounts of data. Unlikely to affect latency.)

Speed & Duplex: Auto-Negotiation (This allows the NIC to operate at 1 Gbps link speeds if the rest of the network negotiates appropriately. Will otherwise revert to 100 Mbps link speed.)

Receive Buffers: 1024 or experiment. (Increasing this setting will cause your network adapter to use more RAM for processing received data, but may improve performance. Experiment with your specific machine. May not affect latency at all.)

Transmit Buffers: 1024 (Increasing this setting will cause your network adapter to use more RAM for processing transmit data but may improve performance. Experiment with your specific machine. May not affect latency at all. 1024 is maximum.)

VLAN ID: This setting doesn’t matter. (Only used if your ISP requires your Ethernet to use VLAN, as is the case where one modem is serving multiple households. This setting will not affect latency.)

Shutdown Wake Up: Disabled. (Only relevant if you intend to use Wake-on-LAN when the machine is shut down. Most BIOSes do not support this. Might cause the computer to wake unexpectedly when enabled.)

SWOI: Doesn’t Matter (Security Wake On Internet – only relevant for Wake-On-LAN applications over the Internet using compatible technology – does not affect latency.)

Wake-on-magic-packet: Disabled (only relevant for Wake-On-LAN applications over the Internet using compatible technology. Will not affect latency, and may cause the machine to wake unexpectedly when enabled.)

Wake on pattern match: Disabled (only relevant for Wake-On-LAN applications over the Internet using compatible technology. Will not affect latency, and may cause the machine to wake unexpectedly when enabled.)


Network Adapter Optimization
2012-05-17 (updated: 2018-03-27) by Philip

The information in this article is intended to improve understanding of all common and advanced network adapter settings under current Windows versions. We will also offer some general suggestions on setting up your LAN for the best possible network performance. Keep in mind that many of these settings can significantly affect performance and reliability in a good or bad way. Consider testing performance using some type of network analyzer or even a simple throughput test before and after making changes. Many settings depend upon your particular network and usage.

General Recommendations
Use quality brand name network adapters - as trivial as this may sound, using a good quality Gigabit Intel/Broadcom network adapter helps improve throughput, reduces CPU utilization when under load, provides for good driver support, etc. While a basic off-brand NIC may  suffice for casual use on a home computer, any tech-savvy power user, if you use P2P appliactions, media streaming, gaming, or running any type of server, you should opt for a good brand NIC for better reliability and performance under load. Good quality NICs will also have more of the advanced adapter settings listed below.

Use latest adapter drivers - Using the latest drivers from your NIC vendor can solve any issues with buggy driver support for advanced NIC functions. Also, downloading drivers from your NIC vendor rather than the Windows defaults may provide additional advanced driver settings that can be fine-tuned by the user.

Use Gigabit devices - Gigabit is very popular, especially with the ever-increasing needs to transfer huge amounts of data over the network. Streaming multimedia from NAS devices, P2P, very fast broadband connections, multiple clients using the network resources at the same time, IPTV, etc. can all strain available resources. Use Gigabit Network adapters and switches, when possible, it increases network transfer speed 10 times over 100Mbps connections.

Switches are better than hubs - Hubs broadcast packets to all ports and introduce collisions, use switches whenever possible. The difference is especially apparent in UDP-based transfers like online gaming, for example - a hub can cause 5% or more increase in the experienced packet loss (depending on the size of the hub and its current usage).

Use CAT-6 Cables - Using quality network cables can be very important, as they vary in impedance, can cause crosstalk, dropped packets, etc. Unfortunately, price of network cables does not directly correlate to price, you may have better luck buying cables from a reputable vendor that uses quality components and actually tests each assembled cable properly. Buying newer standards (i.e. CAT-6 vs. CAT-5) should be preferred, especially in Gigabit environments.

Avoid Interference - Do not coil cables, avoid running network cables near possible sources of EMI (fluorescent lights, power supplies, monitors, etc.)

Changing Network Adapter Settings
Network adapter settings can be adjusted from Control Panel -> Network and Internet -> Network and Sharing Center -> Change adapter settings -> right-click on your network adapter and choose "Properties" -> click the "Configure" button

Alternatively, right-click on the Network adapter icon in the system tray and open Network and Sharing Center -> click "Change adapter settings" in the left pane -> right-click on your network adapter and choose "Properties" -> click the "Configure" button

Network Adapter General Settings
Speed and Duplex: Just as the name suggests, this allows for selecting the desired speed and duplex of the network adapter, the default setting is usually auto negotiation. It is recommended to set the highest speed your adapter supports (Gigabit, if supported), full duplex (two-way simultaneous communication), and auto-negotiation (enabling the adapter to negotiate the highest possible reliable speed). It may sometimes be necessary/helpful to manually set the adapter speed instead of using auto-negotiation.

Gigabit Master Slave Mode: Determines whether the adapter or the link partner is designated as the master; the other end of the link would be the slave. When this is set at the default (usually "Auto Detect", or "Hardware Default"), the devices automatically negotiate this based on the IEEE 802.3ab standard: multi-port devices such as switches become the master when connected to a single port device. If both ends are multi-port devices, the one with higher seed bits becomes the master.

MAC Address / Locally Administered Address: Enables overriding the default MAC address of the adapter by the user. This is an example of how easy it is to bypass MAC address filtering techniques; do a simple packet capture to find an authorized MAC address and apply it here in the advanced settings. However, a more legitimate use of this could be changing the MAC to match the address authorized by your ISP when you’re connecting a PC directly to the modem.

Log Link State Event: This allows you to enable or disable logging of the adapter’s link state changes (such as up/down, duplex mismatch, and STP detection) in the system logs.

QoS Packet Tagging: Enables the adapter to send and receive 802.1p QoS and 802.1Q VLAN indications.

Disable unnecessary network protocols: under the Network Adapter Properties dialog, you can find a list of protocols currently in use. Each additional network client, service or protocol places additional overhead on system resources, and may introduce unnecessary network bindings and traffic. In many cases, only the following components are required for a standard TCP/IP based network:
- Client for Microsoft Networks - allows a computer to access resources on the MS network
- File and Print Sharing for Microsoft Networks - necessary to share local folders
- Internet Protocol Version 4 (TCP/IPv4) - necessary logical connection between network devices, superseded by the newer IPv6

These other services can usually be safely disabled without affecting connectivity:
- QoS Packet Scheduler - Quality of Service packet scheduler designed to control and prioritize IP traffic for various network services as a method of bandwidth management.
- Microsoft Network Adapter Multiplexor Protocol - kernel mode driver used for network card bonding.
- Microsoft LLDP Protocol Driver - Link Layer Discovery Protocol (LLDP) is a protocol for network devices to advertise their identity and neighbors, used for a network map.
- Link-Layer Topology Discovery Responder - kernel mode driver responsible for displaying the computer on a network map.
- Link-Layer Topology Discovery Mapper I/O Driver - used to discover other networked devices on a network map, and determine network bandwidth.
- Internet Protocol version 6 (TCP/IPv6) - latest revision of the Internet Protocol (IP), extending the v4 IP address limitation.

Advanced Settings
Jumbo Frames: This allows for increasing the standard 1500-byte MTU Ethernet frames to carry up to 9000 bytes of data. Using jumbo frames can help increase throughput and decrease CPU utilization on Gigabit LANs, however, the functionality and the same frame size needs to be supported by all devices on the network.

Receive Side Scaling (RSS): This enables the distribution of incoming network processing across multiple processor cores in multi-core computers, to help increase performance. It is the same setting that can be enabled/disabled at the OS level using our tweaking articles and the TCP Optimizer for newer Windows versions.

Adaptive Inter-Frame Spacing: This setting enables a time gap between packets to help compensate for excessive Ethernet packet collisions on the network.

Flow Control: Helps increase the efficiency of traffic regulation for connections that both support flow control frames. These frames are sent by an adapter when their receive queues reach a predefined limit, to signal the sending station to pause transmission so the adapter does not drop the packets. The implementation of Flow Control (Rx & Tx) in some Network Adapters is known to be buggy, likely at the driver level (Realtek Gigabit adapters confirmed). Flow control does not work well with QoS, and is generally not recommended. Disabling this feature can help reduce timeouts and improve throughput.

Interrupt Moderation Rate (coalescing): Sets the rate at which an adapter interrupts the system to handle incoming or outgoing packets. A lower rate causes the system to be more responsive to packet handling, but can decrease performance of other applications and services on the machine. A higher rate means less responsiveness of packet handling but can help increase machine performance, especially useful for when the adapter is sending and receiving larger packets. Interrupt Moderation should be disabled to get the lowest possible latency (at the expense of a bit more CPU utilization). It should be disabled for gaming, and set at a very conservative setting for pure throughput unless you are aiming for low CPU utilization at the expense of some possible delay.

Receive/Transmit Descriptors: Both settings are used to sets the number of descriptors that are allocated in the host memory for storing either received packets, or packets to be transmitted. These buffers can be increased to improve network performance if there is plenty of memory available.

Offloading Settings
Note that some of the "TCP offload" settings should be applied both globally at the OS level, and in the Network adapter properties. They have to be supported by the OS and the adapter to work. Offloading works better with fast/quality network adapters, and has been plagued by buggy implementations in the past. It can help reduce CPU utilization and power consumption, and it can improve throughput in some scenarios. However, some offloads (TCP Offloads, LSO Offloads) can can also add some latency to the connection, and introduce issues. We generally recommend enabling only Checksum offloads, and disabling other types of TCP offloads, because of many buggy driver implementations causing timeouts, incomplete file transfers, known SQL server issues, etc. See our broadband tweaks articles for more information.

IPv4/TCP/UDP Checksum Offload: Enables the adapter to compute the IPv4/TCP/UDP checksum of packets instead of the OS, which reduces CPU utilization, and  may theoretically increase adapter performance. This should be set to "enabled" in most common scenarios.

Offload TCP Segmentation: Allows the adapter to perform any necessary TCP segmentation of outgoing packets instead of the host OS, which can help increase transmission performance while also reducing CPU utilization. We recommend turning this off because of buggy implementations.

Large Send Offload / Large Receive Offload: This is enabled by default on many Intel/Broadcom adapters, however, there are known issues with its implementation. We recommend disabling this setting to avoid incomplete FTP file transfers and other sporadic internet issues.

Receive/Transmit Buffers: The buffer size of system memory that can be used by the adapter for received packets. This can be increased to help improve performance of network traffic, at the expense of some system memory. Intel adapter drivers usually have this setting under the network adapter properties -> Advanced -> Performance Options: "Receive Buffers" and "Transmit Buffers". Default is usually 256 for both, it can be increased to 512, or up to 1024 on systems with RAM to spare. This recommendation is true for both gaming/latency and pure throughput optimizations. Generally these buffers shouldn't be set to less than 256, as they can cause dropped packets and performance degradation if exhausted.

ARP Offload: Enables the adapter to respond to ARP requests, which prevents the computer from having to wake for them when asleep.

NS Offload: Enables the adapter to respond to Neighbor Discovery Neighbor Solicitation requests, which prevents the computer from having to wake for them when asleep.

Power Saving and Wake-On-LAN
Energy Efficient Ethernet: Allows the network adapter to toggle power saving mode on or off when not in use, while still keeping the connection active.

Green Ethernet (Short Reach Mode): Reduces the adapter’s power consumption if the connected cable is detected under a certain length.

Auto Disable Gigabit: When enabled, any Ethernet connections will be limited to 100Mbps, which requires less power. May be useful for laptops when using battery, to reduce power drain.

Wake on Magic Packet: Enables you to remotely power on the computer from sleep, hibernation, or when fully powered off by using the magic packet of the Wake-On-LAN feature.

Wake on pattern match: Enables you to remotely power on the computer from sleep, hibernation, or when fully powered off by using the pattern of the Wake-On-LAN feature.

Shutdown Wake-On-LAN: Enables Wake-On-LAN functionality if the computer is fully shutdown.

Wake-On-LAN and Shutdown Link speed: Specifies the link speed of the adapter when the computer is in sleep or hibernation.

Advanced Wireless Adapter Settings
Below is a number of additional wireless options that generally exist in some more advanced network adapter drivers (802.11ac Broadcom, Intel, ASUS, etc.).

20/40 Coexistence: When enabled, allows the 802.11n radio to drop from 40MHz mode to 20MHz mode when it detects interference. This allows it to coexist with older 802.11g radios that do not support 40MHz wide wireless channels.

40 Mhz Intolerant/Fat channel Intolerant: Setting forces the use of 20MHz channels only when enabled. Wider channels may be needed for higher throughput.

802.11n Preamble: Preamble type is an error checking function that helps with data transmission when signals are weak. Long Preamble is needed for older 802.11b/g adapters, for weaker signals (lower RSSI),  while strong signals and 802.11n/ac devices generally work well with short preamble. The short preamble will yield slightly better performance if the signal is strong and there is no packet loss, however, it needs to be set the same on all devices (routers/access points/repeaters). In noisy wireless environments, for better compatibility, and in low-signal distant connections it is best to use long preamble.

Afterburner: Proprietary Broadcom throughput boosting technique used with 802.11g only, must also be supported by the access point. Only use with 802.11g adapter and compatible AP, disable otherwise.

Antenna Diversity: wireless technique that uses multiple antennas to receive or transmit signals along different propagation paths to compensate for multi-path interference. Useful, if available.

Assoc Listen Interval: A number of beacons that a "dozing" adapter is not listening for beacon frames. It is a power-saving technique where the adapter signals an interval to the access point. The access point then should not drop any queued frames until the adapter's Listen Interval elapses. Usually defaults to 1.

Association Roam Preference: When a specific band is preferred (2.4GHz or 5GHz), and the client encounters a dual AP with the same SSID for both bands, this setting chooses which band to use. Generally 2.4GHz has better wall penetration and coverage area, while 5GHz is less congested and has higher throughput at smaller distances.

Bandwidth Capability: (20MHz, or 20/40MHz) Specifies whether the adapter should use 20MHz wide channels only, or allow for 40MHz channels if there is no interference. Generally, this should be set to 20/40MHz to allow for higher throughput.

Beamforming: an important MIMO companion, enabling considerable improvement in 802.11n/ac performance, reliability, range and throughput. It should be enabled, if available.

Bluetooth Collaboration: minimizes interference with Bluetooth devices by enabling I/O transmit suppression protocol.

D2 Listen Interval: similar technique to "Assoc Listen Interval", use values between 3-7. In general, higher beacon periods and DTIM intervals in wireless networks allow for better battery life, however, data has to be buffered at the AP between DTIM beacons, which may be undesirable for VoIP/gaming.

Fragmentation Threshold: Specifies the maximum number of bytes a packet can contain before it is fragmented. Typically, the default value is 2347 bytes and should be left alone, unless there is a high number of collisions and/or interference.

HT Mode: Allows for choosing which specific wireless modes are supported. High Throughput (802.11n), and/or Very High THroughput (802.11ac).

Intel Throughput Enhancement: Enables Intel packet bursting technology for transmissions. It utilizes either a WMM capable access point, or client enhancements (even without AP support).

LTR Enable/Disable, LTR Active Value: (default = 60 microseconds) Latency Tolerance Reporting (LTR) is a PCI Express power-saving technique allowing the the adapter to specify when it is idle, and maximum latency. LTR is optional.

Minimum Power Consumption: when enabled, the client can turn off the radio or stop scanning for networks when the adapter is not associated with an access point, or when the computer is in idle state. It is useful to enable in many cases.

NS Offload: responds to network discovery when computer is asleep. It should be left enabled in most cases.

PLCP Header (BSS PLCP Header): Used to set the header type for CCK (Complimentary Code Keying) rates (long, or auto short/long), only relevant for 802.11b. By default it automatically switches between long and short depending on the situation the card is in. In some environments with older clients it may be necessary to set this to long for backward compatibility.

Power Output: Usually in percentage increments, allows for reducing the transmit power below 100%. Wireless Power outputs that are unnecessarily high may actually degrade performance by introducing additional noise to the area.

Priority & VLAN: By default, packets are send using FiFo (First-in, First-out) regardless of any priority information in the packet. When this is enabled, you can give certain classes of traffic a priority in the queue. This setting is related to WMM/QoS and only useful if one needs to improve throughput of one of the four WMM classes at the expense of other traffic.

Rate: This setting can limit the wireless transmit/receive rate of the network adapter, it should be left at auto in most cases.

Roaming Decision: Specifies the signal strength when other access points in the area should be considered for connections. This can be lowered to make the client switch access points faster. "Optimize bandwidth", or "Optimize distance" are automatic settings in some Broadcom adapter drivers as well.

Roam Tendency: Specifies how fast the client should switch to a new distant access point, lower values can make the adapter switch faster.

RTS Threshold: Numeric value, typically 2347, range from 0 to 2347. Lowering the RTS Threshold causes the device to use "Request-to-send/Clear-to-send" (RTS/CTS) whenever it sends data, essentially clearing the channel before data is sent. RTS clears the area around the transmitter, and CTS clears the area around the receiver. Lowering the value can sometimes help reduce collisions in very congested Wi-Fi areas (many adapters/APs on the same channel). However lowering RTS/CTS also adds overhead to the channel by increasing the number of packets without data. Only lower in areas with significant interference.

Short GI: Shortening the Guard Interval is a 802.11n standard that specifies shorter delay between transmitted packets and can reduce wireless latency. It should be set to "auto", or "enabled" for 802.11n and newer WLANs.

WFD Channel Number: Wireless Flash Drive channel number.

WiFi Rekeying Offload (GTK rekeying): Speci fies if the network adapter can offload GTK rekeying tor WoWLAN (Wake on WLAN) when the computer goes to sleep state.

WMM / WME:  Wi-Fi Multimedia (WMM), previously known as Wireless Multimedia Extensions (WME) is a wireless quality of service (QoS) standard subset of 802.11e. It prioritizes data packets according to four categories (voice, video, best effort, background) and also features a power save mode. It should only be enabled if needed for power saving or VoIP. It may reduce throughput in some cases.

Xpress Technology: Broadcom adapter specific based on 802.11e and WMM. Aims to improve Wi-Fi network efficiency and boost throughput by repackaging data to reduce overhead. It is only useful for mixed 802.11b/g/n networks, disable for n/ac networks. Also see: What is Xpress Technology

Use only the protocols and options that you need with network adapters. For example, you can turn off "QoS Packet Scheduler", "IPv6", etc. if you do not use them.

Some of the advanced network adapter settings above can vary between different models and drivers, and typically not all of them will be available.

If you're experiencing problems with your network after editing the above settings, you can reset TCP/IP and Winsock, delete and reinstall your Network adapter driver from the Device manager to restore its factory defaults.