ShockAbsorber: a TCP connection router

ShockAbsorber is a software router of TCP connections that supports load sharing across multiple TCP servers that share a set of virtual IP addresses. It consists of the executor, an O/S kernel extension that supports fast IP packet forwarding, and a user level manager process that controls it. The manager implements a novel dynamic load-sharing algorithm for allocation of TCP connections among servers according to their real-time load and responsiveness. This algorithm produces weights that are used by the executor to quickly select a server for each new connection request. The executor forwards client TCP packets to the servers without performing any TCP/IP header translations. Outgoing server-to-client packets are not handled by ShockAbsorber and can follow a separate network route to the clients. Depending on the workload traffic, the performance benefit of this half-connection method can be significant. Prototypes of ShockAbsorber were used to scale up several large and high-load Internet sites serving millions of TCP connections per hour.