On Improving the Fairness of TCP Congestion Avoidance

Tom Henderson, E. Sahouria, S. McCanne, and R. Katz

Summary. Using the standard 1/snd_cwnd additive increase algorithm for TCP congestion control can result in an unfair distribution of bandwidth for connections with long RTTs. The authors experiment with a Constant-Rate algorithm originally suggested by Floyd and find that, although under certain conditions the algorithm yields substantially more "fairness", it would be hard to deploy in the real world. The authors then experiment with a Increment-by-K (IBK) algorithm whereby only the long RTT connection uses a more aggressive algorithm; they find that this helps the long RTT connection without adversely affecting other connections but they do not advocate a particular IBK policy.


More detail

By using the following window increase algorithm:
	snd_cwnd = snd_cwnd + (c*rtt*rtt)/snd_cwnd;
where c is a constant that controls the rate of increase, we affect a policy which causes an additive increase in the throughput rate that is the same for all connections. The above algorithm, however, can causes bursts when c*rtt*rtt grows much larger than snd_cwnd. Thus, the authors modify the algorithm to be:
	snd_cwnd = snd_cwnd + min((c*rtt*rtt), 1)/snd_cwnd;
so that the connection is never more bursty that TCP with the standard increase algorithm.

Performance metrics. Goodput is used as the measure of utilization:

			 segments sent * segment size
	Utilization   =  ----------------------------
			      bandwidth * time
The fairness metric ranges between 1/n (where n is the number of connections) and 1 with representing a perfectly fair connection where each connection gets 1/n of the available bandwidth.
		       {Sum of all links' portions}^2
	Fairness = --------------------------------------
		   n * Sum of {(all links' portions)^2}

Methodology. They used ns to simulate traffic from long-term TCP connections on three topologies with background traffic generated using Bruce Mah's HTTP traffic generator model from his INSANE simulator.

Results. They found that fairness increased substantially up until the point where the c was so great that the CR factor equaled the standard factor and so CR was not really in effect. However, at small values of c and when not as many connections shared the link, the utilization was not as good as that yielded when using the standard algorithm. The authors concluded then, "the following negative result: a good choice of the constant c cannot be determined with high confidence on an operational basis." They also found that the presence of connections using the standard algorithm negatively affected those using the CR algorithm such that fairness decreased.

IBK. The authors then performed a second experiment where long-RTT connections used an IBK algorithm (in contrast to the experiments above where all used the CR algorithm). They found that the fairness increased substantially. The affect on the short RTT connections was that of an additional short RTT connection. They note that if every connection adopted an IBK algorithm, the fairness situation would be back to that of the standard algorithm.