TCP offload through connection handoff
Doctor of Philosophy thesis
TCP offload is a technique to improve TCP/IP networking performance of a network computer system by moving (parts of) TCP processing from the host processor to the network interface. There are several ways to achieve offload. The typical full offload moves all TCP functionalities to the network interface, and TCP processing is performed exclusively on the network interface. However, when the network interface has limited processing power, full offload creates a bottleneck at the network interface and degrades system performance. In contrast, TCP offload based on connection handoff allows the operating system to move a subset of connections to the network interface. This way, both the host processor and the network interface perform TCP processing, and the operating system can control the amount of work performed on the host processor and the network interface. Thus, by using connection handoff, the system can fully utilize the processing power of the network interface without creating a bottleneck in the system. This dissertation presents a design, implementation, and evaluations of handoff-based TCP offload. The design enables the application to transparently exploit offload-capable network interfaces. The prototype implementation shows that the operating system can support offload without complicating the existing software architecture. The evaluations show that significant performance gains are possible for various web workloads and across a range of processing capabilities of the network interface.