How to Configure Large Send Offload on Network Adapters in Windows 11 Using PowerShell

Large Send Offload (LSO), specifically Large Send Offload Version 2 (LSOv2), is a standard network hardware acceleration feature in Windows 11 designed to optimise outbound TCP/IP traffic transmission. Normally, when an application transmits data over a network, the operating system TCP/IP stack segments large data blocks into smaller packets conforming to the maximum transmission unit (MTU), typically 1,500 bytes. This segmentation process generates substantial CPU processing overhead and interrupt activity during heavy file uploads or network backups. LSO delegates packet segmentation directly to the network interface card (NIC) hardware controller. However, buggy NIC firmware or incompatible virtual network drivers can lead to outbound packet drops, connection timeouts, or degraded VPN throughput. Using PowerShell, you can query and configure LSO states across all physical and virtual adapters.

Understanding Large Send Offload Version 2 (LSOv2)

When LSOv2 is enabled on a Windows 11 network interface:

  • Offloaded Segmentation: Windows passes large data buffers (up to 64 KB or larger) directly to the network adapter. The NIC hardware segments the buffer into MTU-compliant TCP packets and appends appropriate TCP, IP, and Ethernet headers.
  • Checksum Calculation: Along with segmentation, modern NICs calculate the TCP and IP checksums in hardware.
  • Dual-Stack Support: Windows 11 manages LSO separately for IPv4 (IPv4Enabled) and IPv6 (IPv6Enabled).
  • Common Troubleshooting Scenarios: In certain scenarios—such as running legacy VPN clients, nested Hyper-V virtualisation, packet capture tools, or specific Realtek/Intel controller chipsets with outdated firmware—hardware segmentation can cause dropped packets or stalled upload streams. Disabling LSO forces the Windows kernel to perform segmentation in software, resolving hardware-level driver conflicts.

Auditing Active LSO Settings with Get-NetAdapterLso

To inspect the current Large Send Offload configuration on your system, launch an elevated PowerShell window and run Get-NetAdapterLso:

Get-NetAdapterLso

The output displays all detected network adapters alongside their IPv4 and IPv6 LSO operational states:

Name                   IPv4Enabled IPv6Enabled IPv4MaxOffloadSize IPv6MaxOffloadSize
----                   ----------- ----------- ------------------ ------------------
Ethernet               True        True        65536              65536
Wi-Fi                  False       False       0                  0
vEthernet (External)   True        True        65536              65536

To inspect a single adapter by name:

Get-NetAdapterLso -Name "Ethernet"

Disabling Large Send Offload via PowerShell

If you suspect that hardware segmentation is contributing to network timeouts, slow upload speeds, or broken RDP sessions, you can disable LSO across both IPv4 and IPv6 protocols using Disable-NetAdapterLso:

Disable-NetAdapterLso -Name "Ethernet"

To disable LSO exclusively for IPv4 while preserving IPv6 acceleration:

Disable-NetAdapterLso -Name "Ethernet" -IPv4

To disable LSO exclusively for IPv6:

Disable-NetAdapterLso -Name "Ethernet" -IPv6

Confirm that LSO has been deactivated:

Get-NetAdapterLso -Name "Ethernet"

Both IPv4Enabled and IPv6Enabled will now reflect False. The change takes effect immediately without requiring an interface restart.

Enabling Large Send Offload via PowerShell

To restore hardware segmentation and minimise CPU utilisation once network troubleshooting is complete or after updating your NIC drivers, run Enable-NetAdapterLso:

Enable-NetAdapterLso -Name "Ethernet"

To explicitly enable both IPv4 and IPv6 LSOv2 offloading:

Enable-NetAdapterLso -Name "Ethernet" -IPv4 -IPv6

Verify that the operational status returns to True:

Get-NetAdapterLso -Name "Ethernet"

Configuring Driver-Level Advanced Properties

In addition to the standard NetAdapter cmdlets, network card manufacturers expose low-level LSO properties via the driver’s advanced settings. To inspect vendor-specific keys in PowerShell, run Get-NetAdapterAdvancedProperty:

Get-NetAdapterAdvancedProperty -Name "Ethernet" | Where-Object { $_.DisplayName -match "Large Send|LSO" }

This command outputs entries such as Large Send Offload v2 (IPv4) and Large Send Offload v2 (IPv6) along with their numerical registry values (typically 1 for Enabled, 0 for Disabled).

To modify these low-level driver properties directly via PowerShell:

Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Large Send Offload v2 (IPv4)" -DisplayValue "Disabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Large Send Offload v2 (IPv6)" -DisplayValue "Disabled"

Testing Network Throughput and Packet Health

After adjusting LSO settings, evaluate your connection performance:

  1. Initiate a large file transfer (such as an SMB file copy or SFTP upload) to observe upload stability and throughput.
  2. Monitor CPU utilisation during heavy outbound transfers using Task Manager or Get-Counter:
    Get-Counter "\Processor(_Total)\% Processor Time" -Continuous
  3. Check for TCP retransmissions or packet resets using Get-NetTCPConnection to ensure the connection remains stable.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.