On-the-fly TCP path selection algorithm in access link load balancing

Mon, 03/24/2008 - 13:35 by Damien Saucez • Categories:

The paper "On-the-fly TCP path selection algorithm in access link load balancing" written by Lin et al. proposes a new way to implement load balancer based on NAT.

Traditional load-balancer uses weighted round robin to define the uplink to use for a given stream. The model proposed by the authors deals only with TCP flows.

The load-balancer is a NAT box implemented on the NetBSD kernel. When the box receives a SYN from a local address, it send the SYN on all the uplinks. The link from which the first SYN+ACK arrives is considered as the best path and the flow is diverted through this link. A RST is sent on the other links.

The paper assumes the TCP throughput is a simple function of the RTT and the loss ratio. But as the loss ratio is hard to determine the authors assumes this ratio is equivalent on all links.

The experiments show that the choice is the best for 79%.

From my point of view, the paper makes not enough experiments, all the conclusions about performances are performs by measuring the average TCP throughput from one source to only 3 destinations (the three are FreeBSD FTP mirrors). I think that the measurements have to be performed with more targets and different services (FTP, HTTP but also P2P which are often badly connected).

In addition, I think the proposed solution is no viable in a real environment as it just imposes an overhead on both links and destinations (e.g., a company with 5 uplinks will send 5 TCP SYN requests to the same target and 4 RST). Nevertheless, the idea of using possible TCP throughput is interesting and a solution could be found to avoid active probing.