Abstract
TCP Server is a system architecture aiming to offload network processing from the host(s) running an Internet server. The TCP Server can be executed on a dedicated processor, node or intelligent network interface using low-overhead, non-intrusive communication between it and the host(s) running the server application. In this thesis, we present and evaluate an implementation of the TCP Server architecture for Internet servers on clusters built around a memory-mapped communication interconnect. We have quantified the impact of offloading on the performance of Internet servers for our TCP Server implementation, using a server application with realistic workloads. We were able to achieve performance gains of up to 30% due to offloading for the scenarios studied. Based on our experience and results, we conclude that offloading the network processing from the host processor using a TCP Server architecture is beneficial to server performance when the server is overloaded. A complete offloading of TCP/IP processing demands substantial computing resources on the TCP Server. Depending on the application workload, either the host processor, or the TCP Server, can become the bottleneck indicating the need for an adaptive scheme to balance the load between the host and the TCP Server.