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.

Offloading advantages

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.

SNP features

The Pack was developed as part of Microsoft’s Scalable Networking
Initiative and includes both stateful and stateless
offload features:

  • TCP
    chimney (stateful)
  • RSS
  • NetDMA (stateless)

The hardware (network interface card) must support
offloading for you to take advantage of these features.

TCP Chimney

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

  • Transmission
    Control Protocol (TCP)
  • IPv4/IPv6
  • 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.