Receive Segment Coalescing (RSC)
Updated: November 28, 2012
Applies To: Windows Server 2012
RSC is a stateless offload technology that helps reduce CPU utilization for network processing on the receive side by offloading tasks from the CPU to an RSC-capable network adapter. CPU saturation due to networking-related processing can limit server scalability. This problem in turn reduces the transaction rate, raw throughput, and efficiency. RSC enables an RSC-capable network interface card to do the following:
Parse multiple TCP/IP packets and strip the headers from the packets while preserving the payload of each packet.
Join the combined payloads of the multiple packets into one packet.
Send the single packet, which contains the payload of multiple packets, to the network stack for subsequent delivery to applications.
The network interface card performs these tasks based on rules that are defined by the network stack subject to the hardware capabilities of the specific network adapter. This ability to receive multiple TCP segments as one large segment significantly reduces the per-packet processing overhead of the network stack. Because of this, RSC significantly improves the receive-side performance of the operating system (by reducing the CPU overhead) under network I/O intensive workloads.
Examples of other stateless offloads are Internet Protocol (IP) and Transmission Control Protocol (TCP) checksum, and Large Send Offload, which is also called Segmentation Offload.
When your server has an RSC-capable network interface card installed, RSC provides benefits under many circumstances, including the following:
Hosted cloud deployments. RSC minimizes the CPU cycles that are spent for network storage and live migration.
I/O intensive database applications and database replication.
File servers that are deployed with the Windows Server 2012 File Services server role. In addition, if your file server is also configured as a BranchCache-enabled content server, BranchCache performance is improved by RSC.
I/O intensive server workloads.
Because RSC is designed to improve performance and reduce latency for receive-intensive workloads, it does not significantly improve performance for send-intensive workloads, such as Web servers that send HTML files to Web browsers running on client computers and other devices. For receive-intensive workloads, RSC allows virtual and physical servers to effectively service a larger number of clients and connections.
Here are some key facts about RSC:
RSC is enabled by default for clean installations of all editions of Windows Server 2012 on computers that have RSC-capable network adapters. You do not need to take any action to enable RSC when you have an RSC-capable network interface card installed in your physical computer or used by a virtual machine that is running Windows Server 2012. In addition, you can track RSC status and usage by using relevant Performance Monitor counters.
When you perform an operating system upgrade from a previous version of Windows to Windows Server 2012, RSC functionality is disabled by default. This ensures that server functionality remains consistent despite the upgrade of the operating system.
You can enable or disable RSC globally or on a per-interface basis.
RSC does not cause any difference in performance between IPv4 and IPv6 networks.
RSC works seamlessly with third-party drivers that support Network Driver Interface Specification (NDIS) 6.30 and above (NDIS Lightweight Filters, NDIS Intermediates and Windows Filtering Platform [WFP] callout drivers).
RSC is automatically disabled for older incompatible drivers.
RSC works well in virtualized environments. The availability of RSC is limited to the parent partition for storage and live migration, and to virtual machines (VMs) running Windows® 8 with SR-IOV capable network adapters. RSC functionality is not available for VMs that are not running Windows 8 and VMs that do not run SR-IOV.
RSC is defined only for TCP connections. RSC does not work with User Datagram Protocol (UDP) and other transport layer protocols.
RSC is a stateless offload technology and does not hold the state of TCP connections. It is not a replacement for TCP Chimney, because RSC-capable network adapters are not expected to handle the TCP state computer.
RSC does not function with IPsec encrypted traffic, because network adapters currently cannot coalesce IPsec packets.
RSC provides performance counters that capture the following for each interface: the number of TCP connections on which RSC is active; the number of packets that are coalesced per Deferred Procedure Call (DPC); the number of RSC aborts that are issued by the network adapter; the maximum number of packets coalesced in one DPC.
For more information, see the following Windows Dev Center topics.