We're always on the lookout for products that will make your networking technologies more scalable. Some of the primary elements of scalability include enhancements to network performance and server performance, which allows you to increase workload, volume of data, and/or number of connecting clients. The best solutions integrate with your existing platforms and operating systems, and if they're available at no cost, that's even more of a bonus.
Microsoft recently released the Windows Server 2003 Scalable Networking Pack (SNP), a "must have" for companies with growing networks who may not be ready or able to upgrade their physical infrastructures all at once. The Pack includes network acceleration technology as well as support for hardware offloading, to help you speed up access to your mission critical network applications for existing users and support a larger number of users as your organization grows. Best of all, it's a free download from the Microsoft web site, available for both x86 and x64 versions of Server 2003 and the x64 edition of Windows XP Professional.
Processing of the network protocols takes a significant amount of a server's processing resources—resources that could be used for other applications. Offloading technologies shift this burden from the operating system's software stack to dedicated hardware that can free up the server's CPU cycles, while at the same time accelerating network performance.
Offloading makes it possible for your hardware to scale more effectively, as you avoid having to upgrade to faster processors in order to handle an increasing workload because TCP/IP protocol processing tasks are being offloaded to the network controller card. The performance of enterprise-level servers can be dramatically increased and bottlenecks can be eliminated or reduced.
The Pack was developed as part of Microsoft's Scalable Networking Initiative and includes both stateful and stateless offload features:
- TCP chimney (stateful)
- RSS (stateless)
- NetDMA (stateless)
The hardware (network interface card) must support offloading for you to take advantage of these features.
TCP Chimney is a feature that will be introduced in Windows Vista and included (and enhanced) in future versions of the operating system, to help applications that are limited by the TCP/IP processing burden to perform better and scale more easily. In addition to the TCP Chimney that's part of the Pack, Microsoft's new Chimney architecture includes an RDMA Chimney for offloading Remote Direct Memory Access protocols and an IPsec Chimney for offloading Internet Protocol Security processing.
It's called a chimney because data transfer only happens at the top and bottom of the stack (as smoke enters at the bottom and goes out at the top of a chimney), but there are special function calls referred to as vents that allow the stack to query, update and terminate the offload state.
The TCP Chimney allows you to offload the following protocols:
- Transmission Control Protocol (TCP)
- IPv4/IPv6 functionality
- ARP/neighbor discovery and MAC layer encapsulation
A switch at the top of the chimney determines whether a particular connection is to be offloaded or not. When a connection is offloaded, all traffic goes through the chimney, when it's not, the traffic goes through the protocol stack on the host computer. For a detailed technical discussion of how the TCP Chimney works, see the white paper titled Scalable Networking: Network Protocol Offload — Introducing TCP Chimney on the Microsoft hardware developers' web site.
Receive Side Scaling (RSS) and Network Direct Memory Access (NetDMA)
The Network Driver Interface Specifications (NDIS) is a set of definitions for a standard Application Programming Interface (API) for network interface cards. Versions of NDIS prior to v6.0 were designed for systems with one CPU. This limits the network performance of systems with multiple processors, which have become common in the enterprise server space.
RSS is part two of Microsoft's Scalable Networking Pack, built on NDIS v6.0 (which will be included in Windows Vista and Longhorn Server) and designed to load balance the networking load of received traffic across multiple processors. This can dramatically improve performance on multiprocessor machines functioning as HTTP (web) servers, file servers, etc. RSS allows you to scale existing systems by adding additional processors for increased network performance.
With NDIS v6.0 and RSS, the receive packets from one network adapter can be processed simultaneously, in parallel by multiple processors, and the network processing load is dynamically balanced between the processors.
For systems with a large number of processors (16-way or 32-way systems), you can configure RSS to use only some of the processors, but the number of processors using RSS must be a power of 2. For a detailed technical discussion of how RSS works, see the white paper titled Scalable Networking with RSS on the Microsoft hardware developers' web site.
NetDMA lets you have a DMA engine on a PCI bus, and this DMA engine can be used by the TCP/IP stack for copying data instead of having that task handled by the system's processor.
Installing the SNP
Note that when you install the Scalable Networking Pack, your Network Driver Interface Specification (NDIS) will be updated to v6.0. The features in the Pack are turned off by default, so you won't see any difference upon installation. There's no graphic interface for configuring the Pack options; you do so by using the Netsh.exe tool or by editing the registry.
For detailed instructions on how to edit the registry and the Netsh.exe tool to configure the SNP features, see KB article 912222.
Some of the Pack features are incompatible with certain components. Specifically, neither the TCP Chimney nor NetDMA will work if the Windows Firewall is enabled on the system or a third party firewall is installed and enabled. They also do not work with IPsec and IPNAT (IP Network Address Translation). If you have bridging or routing services enabled, IPNAT and the IPsec Policy Agent will be turned on by default, preventing the Chimney and NetDMA from working.
Debra Littlejohn Shinder, MCSE, MVP is a technology consultant, trainer, and writer who has authored a number of books on computer operating systems, networking, and security. Deb is a tech editor, developmental editor, and contributor to over 20 additional books on subjects such as the Windows 2000 and Windows 2003 MCSE exams, CompTIA Security+ exam, and TruSecure's ICSA certification.