In high-throughput networking environments, processing gigabits of raw network packets can consume substantial CPU cycles. To alleviate processor bottlenecks and minimise packet latency, modern network adapters and Windows 11 rely on hardware offloading technologies. These mechanisms transfer computation-heavy networking tasks—such as TCP checksum calculation, packet segmentation, and multi-core packet scheduling—directly to the network interface controller (NIC) silicon.
In Windows 11, the global behaviour of these hardware acceleration features is governed by the TCP/IP stack configuration. Using the native PowerShell NetTCPIP module, system administrators and power users can query and fine-tune global offload parameters, including Receive Side Scaling (RSS), Receive Segment Coalescing (RSC), and Task Offload. In this guide, we explore how to inspect global offload settings, modify parameters using PowerShell, and understand when disabling or enabling specific offloads resolves latency and throughput issues.
Core TCP/IP Offload Technologies in Windows 11
Before executing configuration cmdlets, understanding what each global offload parameter controls ensures optimal system stability:
| Offload Parameter | Default State | Function & Architectural Benefit |
|---|---|---|
| Receive Side Scaling (RSS) | Enabled |
Distributes incoming network packet receive processing across multiple CPU cores, preventing single-core saturation on high-speed 2.5GbE, 10GbE, and Wi-Fi 6/7 links. |
| Receive Segment Coalescing (RSC) | Enabled |
Combines multiple incoming TCP segments into larger units before presenting them to the host network stack, dramatically cutting down CPU interrupts. |
| Task Offload | Enabled |
Offloads IPv4/IPv6 checksum calculation and Large Send Offload (LSO) segmentation directly to the NIC hardware. |
| NetworkDirect (RDMA) | Enabled |
Enables Remote Direct Memory Access across compatible high-speed adapters, bypassing the operating system kernel for direct memory-to-memory transfers. |
| NetworkDirect RoCE | Enabled |
Governs RDMA over Converged Ethernet protocol support across enterprise adapters. |
How to Query Global TCP/IP Offload Settings
To view the current status of all global offload features, open an elevated PowerShell window:
- Right-click the Start menu button on the Windows taskbar (or press Windows Key + X).
- Select Terminal (Admin) or PowerShell (Admin).
- Execute the
Get-NetOffloadGlobalSettingcmdlet:Get-NetOffloadGlobalSetting
PowerShell will return a structured list displaying the operational status of every offload mechanism:
ReceiveSideScaling : Enabled
ReceiveSegmentCoalescing : Enabled
TaskOffload : Enabled
NetworkDirect : Enabled
NetworkDirectRoCE : Enabled
NetworkDirectRoCEv2 : Enabled
Chimney : Disabled
Note: The legacy TCP Chimney offload has been superseded in modern versions of Windows and is maintained primarily for backward architectural compatibility.
Configuring Global Offload Parameters Using PowerShell
The Set-NetOffloadGlobalSetting cmdlet allows administrators to modify one or more offload options simultaneously. All modifications take effect immediately at the network kernel level without requiring a computer restart.
1. Managing Receive Side Scaling (RSS)
If you suspect an errant NIC driver is triggering CPU core micro-stuttering or packet misordering, you can temporarily disable RSS:
Set-NetOffloadGlobalSetting -ReceiveSideScaling Disabled
To re-enable RSS for multi-core packet parallelisation:
Set-NetOffloadGlobalSetting -ReceiveSideScaling Enabled
2. Managing Receive Segment Coalescing (RSC)
While RSC substantially lowers CPU utilisation during large file downloads, certain low-latency gaming titles, real-time audio streams, or virtual switch environments can experience micro-jitter when packets are held briefly for coalescing. To disable RSC globally:
Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled
To restore standard RSC coalescing behaviour:
Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Enabled
3. Managing Task Offload
Task Offload delegates IP checksum validation and TCP segmentation to your physical network adapter. If you are diagnosing suspected hardware checksum corruptions on a malfunctioning NIC, disable Task Offload so the Windows CPU kernel handles checksumming directly:
Set-NetOffloadGlobalSetting -TaskOffload Disabled
To re-enable hardware task offloading:
Set-NetOffloadGlobalSetting -TaskOffload Enabled
Verifying Adapter-Specific RSS Capabilities
While Get-NetOffloadGlobalSetting controls the OS-level global policies, individual physical network adapters must also support and enable RSS. You can verify the adapter-level RSS configuration using the Get-NetAdapterRss cmdlet:
Get-NetAdapterRss | Select-Object Name, InterfaceDescription, Enabled, NumberOfReceiveQueues, BaseProcessorNumber
This command reveals:
- NumberOfReceiveQueues: The number of hardware queues assigned to handle incoming packets across CPU cores.
- BaseProcessorNumber: The initial logical processor core assigned to the network adapter.
- Enabled: Confirms whether hardware RSS is actively negotiated with the physical NIC driver.
Auditing Advanced Hardware Adapter Offloads
To cross-reference whether your physical network adapter’s driver matches your global settings, query the adapter’s advanced driver registry properties:
Get-NetAdapterAdvancedProperty -Name "*" | Where-Object { $_.DisplayName -match "Offload|Checksum|Scaling|Coalescing" } | Select-Object DisplayName, DisplayValue
This reveals granular driver settings such as IPv4 Checksum Offload, Large Send Offload v2 (IPv4 & IPv6), and UDP Checksum Offload.
Troubleshooting Performance and Restoring Defaults
If you made experimental modifications to offload flags while troubleshooting network throughput and wish to revert your Windows 11 system back to recommended factory standards, execute the following baseline configuration command:
Set-NetOffloadGlobalSetting -ReceiveSideScaling Enabled -ReceiveSegmentCoalescing Enabled -TaskOffload Enabled -NetworkDirect Enabled
After reapplying defaults, confirm that all parameters reflect Enabled by executing Get-NetOffloadGlobalSetting. This ensures optimal balance between high bandwidth throughput, minimal interrupt latency, and balanced multi-core CPU scheduling.