Thursday, October 1, 2009

A Comparison of Mechanisms for Improving TCP Performance over Wireless Links; Balakrishnan, Padmanabhan, Seshan, & Katz

This paper examines three different ways to improve TCP performance for wireless networks. Loss might equate to congestion in wired networks, but with wireless, the story is different. Assuming that loss is due to congestion can hinder performance by causing the connection to revert back to slow start and undertake recovery mechanisms. As such, there are three different techniques to improve wireless performance with TCP: end-to-end in which the sender is forced to handle the losses gracefully, split-connection in which the wireless link is hidden from the sender by connecting it to the base station, and link-layer solutions which also attempt to hide losses from the sender but via local retransmission and error correction.

This paper uses a wireless testbed of PC base stations with laptop mobile hosts. A sort of odd choice made for the tests was for bit-errors to be randomly chosen using an exponential distribution. Apparently this choice was made to allow for multiple packets to be lost in close proximity to one another, allowing the authors to really compare the techniques in this sort of worst-case loss scenario, and they actually state that this distribution was not intended to actually model a network.

Some options that improve end-to-end include partial and selective acks (SACKs) along with explicit loss notification (ELN), which prevents large congestion window fluctuations, with the greatest improvements combining SACKS and ELN. SACKs give a sender more information about which packets have actually made it through and ELN involves marking acks with the note that a loss happened so that retransmission of lost packets can occur without moving into congestion-control mode.

Split-connection protocols use a wired connection between a TCP source and a base station and a wireless connection between the base station and TCP receiver; two TCP connections are actually established, and since the wired connection doesn't experience loss, the base station need be the only one doing any retransmitting. However, since the wireless connection is the bottleneck for the completion of transmission, it still requires that some special mechanisms be used to improve performance.

The authors find that in general, link-layer protocols tend to give the best performance improvements, but particularly so if they actually do fine-grained retransmissions (and hence actually keep the sender from having to retransmit as well) and if they deliver packets in-order after a loss, thus preventing duplicate acks from being sent and causing fast retransmit/recovery. Interestingly, in face of low error rates, all techniques seem to do equally well.

No comments: