Abstract
TCP Server is a system architecture aiming to offload network processing from the host(s) running an Internet server. The basic idea is to execute the TCP/IP processing on a dedicated processor, node, or device (the TCP server) using low-overhead, non-intrusive communication between it and the host(s) running the server application. In this paper, we propose, implement, and evaluate three TCP Server architectures: (1) a dedicated network processor on a symmetric multiprocessor (SMP) server, (2) a dedicated node on a cluster-based server built around a memory-mapped communication interconnect such as VIA, and (3) an intelligent network interface in a cluster of intelligent devices with a switch-based I/O interconnect such as Infiniband. Based on our experience and results, we can draw a few important conclusions: (i) an SMP-based approach to TCP servers is more efficient than a cluster-based one, given the lower overheads and the slightly more even division of labor between application and network processors of the former approach, (ii) the benefits of SMP and cluster-based TCP servers reach 18% and 30% respectively, in the scenarios we studied, (iii) the simulation results show greater gains of up to 45% for a cluster of intelligent devices, and (iv) it is clear that greater gains are possible only if we perform dynamic load balancing between hosts and the TCP servers.