Web farm architecture

A Web farm has multiple servers that are exposed to browser clients as a single virtual server, with one virtual Media Access Card and TCP/IP address.

Behind this virtual layer, each server in the Web farm receives every network packet, but only processes a subset of those packets. The ability to equally share the workload is what gives Web farms their superior processing power.

This distribution of packets is managed by Network Load Balancing. Network Load Balancing does the following:

  • It balances the client requests between servers.

  • It determines which server will process which request.

  • It ensures that server resource use and client wait times are optimized.

  • It provides a superior alternative to client affinity.


    In a client affinity scenario, connecting clients are restricted to return to the same server each time.

    Client affinity is usually turned off, because it can create a bottleneck of requests for a particular server.

Each server on a Web farm has a Network Load Balancing network device driver, which communicates with the other servers, and each server typically has two network cards. The second card allows internal communications for Network Load Balancing to be done over a separate, internal network.

The Network Load Balancing network device driver is provided in the following operating systems:

  • Windows 2000 Advanced Server.
  • Windows Advanced Server 2003.

Web garden architecture

A Web garden is like a Web farm, except that rather than use several server machines linked together, it uses single machine with multiple CPUs.

This single SMP (symmetric multiprocessing) server uses ASP.NET to run a separate ASP.NET worker process on each CPU. The server manages multiple client requests against the multiple CPUs on the server.