Network stack

Checksum offload, RSS and Large Send Offload

What offloading moves onto the network card, and why turning it off is usually wrong

Last updated

Should you disable checksum offload and other NIC offloads?

Offload features move work such as checksum calculation and TCP segmentation from the CPU onto the network adapter. Receive-Side Scaling spreads received packet processing across multiple CPU cores instead of one. These reduce CPU overhead. Disabling them moves work back onto the CPU, which is the opposite of an optimisation in most cases.

Registry location and values

TCP/UDP Checksum Offload (IPv4/IPv6)

Location
Device Manager → network adapter → Advanced
Value name
TCP/UDP Checksum Offload (IPv4/IPv6)
Type
Adapter property
Default
Rx & Tx Enabled
ValueWhat it does
Rx & Tx EnabledAdapter computes and verifies checksums. The default.
DisabledCPU does the work instead.

Receive Side Scaling

Location
Device Manager → network adapter → Advanced
Value name
Receive Side Scaling
Type
Adapter property
Default
Enabled
ValueWhat it does
EnabledReceived packet processing is distributed across cores.
DisabledAll receive processing lands on one core.

Large Send Offload (LSO) v2

Location
Device Manager → network adapter → Advanced
Value name
Large Send Offload (LSO) v2
Type
Adapter property
Default
Enabled
ValueWhat it does
EnabledAdapter segments large sends.
DisabledCPU segments them.

What Windows actually does with this

Checksum offload has the adapter compute and verify per-packet checksums. Large Send Offload hands the adapter a large buffer and lets it split it into wire-sized segments. RSS hashes incoming flows across receive queues bound to different cores, so a single core does not become the bottleneck for all inbound traffic.

What it affects

CPU utilisation attributable to networking, and whether receive processing is spread across cores. On high-throughput links the difference is substantial; at gaming packet rates it is small either way.

Is it worth changing?

Leave checksum offload and RSS enabled -- disabling them adds CPU work for no benefit. The exception is genuine: some adapter and driver combinations have buggy offload implementations that cause packet loss or corruption, and disabling the offload is a legitimate diagnostic step when you are chasing a real, reproducible connectivity fault. "Disable checksum offload for lower ping" as a blanket recommendation is backwards. Large Send Offload is the one with a real history of driver bugs and is the first to try disabling when troubleshooting.

What can go wrong

Higher CPU usage during network activity. On a machine that is CPU-limited in a game, that is a direct cost.

How to undo it

Device Manager → adapter → Advanced, and set each property back to its default. Or uninstall the adapter and let Windows redetect it.

Create a System Restore Point before editing the registry. Every setting on this page is reversible, but a restore point is the difference between undoing one change and reinstalling Windows.

Which Windows versions this applies to

All modern Windows versions. Available properties vary by adapter and driver.

Checksum offload, RSS and Large Send Offload: common questions

Will disabling offloads lower my ping?

No. Offloads affect CPU cost per packet, not the time a packet spends travelling to the server and back.

Sources

Does JINSHI Tweaks change this?

This page documents settings that correspond to the following toggles in JINSHI PC Tweaks: Disable Checksum Offload, Enable Receive-Side Scaling (RSS), Enable TCP Task Offloading, Maximize Network Adapter Buffers.

The reference above is written to be usable without the product. Everything here can be applied by hand for free. What the application adds is that the change is applied in one pass, a System Restore Point is created first, and each toggle can be reversed individually.

What JINSHI Tweaks changes

Related settings