Thursday, October 1, 2009

A Comparison of Mechanisms for Improving TCP Performance over Wireless Links

Summary
This paper looks at a number of approaches for improving the performance of TCP over wireless links. TCP's assumption that a lost packet indicates congestion is not particularly valid in the wireless environment where packet loss is more often due interference of some sort. This leads to poor performance as TCP needs to wait for duplicate acks to retransmit, has long timeouts (200ms), and will reduce its congestion window even though it's not necessary.

The paper looks at three broadly different approaches to improving the performance of TCP over wireless links.

  • Link-layer protocols: The tools here are forward error correction and/or automatic repeat requests. The paper argues that the advantage of this approach is that it layers nicely in the network stack, operating independently of higher-level protocols and thereby shielding those higher-level protocols from the lossy nature of the wireless link. The challenge here is to make sure the link-layer protocol plays nicely with TCP. One proposed scheme that works quite well is that the base station snoops on the TCP traffic, and buffers some number of packets. When the station sees a duplicate ACK it can suppress it, and simply retransmit the packet itself. In the experiments this protocol is shown to perform well.
  • Split connection protocols: In this case the connection is 'split' on either side of the wireless link and a highly tuned (for wireless) protocol is used over the wireless hop. The concern here is that the end-to-end semantics of the link are not preserved. In particular the congestion window is independent for each side of the connection and this is shown to lead to poor performance in the experimentation section. The authors conclude that split connections are not necessary for good performance of TCP over wireless links.
  • end-to-end protocols: This approach modifies TCP itself to deal with wireless links. Techniques include adding selective ACKs and/or Explicit Loss Notification. This approach also performs quite well in practice.
The authors run a number of experiments with PC base stations and laptop nodes. The use an exponential drop model and test a number of different loss rates. They notice that link-level protocols that are not TCP aware perform quite poorly due to the fact that the order is not preserved by the link-layer and so often times both the link-layer and the end host end up retransmitting packets. Adding TCP awareness and SMART recovery leads to much better performance in this case.

The authors also note that split-protocols are not necessary. They can be made to perform almost as well as some of the link layer protocols, but the added complexity does not really buy you anything.

Comments
I enjoyed this paper. It gives a very nice summary of the various techniques for dealing with packet loss in a wireless network and why each protocol behaves the way it does. I also thought the snoop technique was particularly clever and was gratified to see it work well in practice.

As always in a paper who's results are based on experiments, more and more diverse experiments would have been nice. In particular it would have been nice to do some long running experiments in a real environment (the paper models packet losses) and see if the results looked similar to the modeled ones. I was nice that the network was real however, and not simulated.

I also think there is more work that could be done in improving split connection protocols. Rather than doing TCP why not use some super optimized wireless protocol. The problem of violating end-to-end semantics seems difficult to get around in this case however.

1 comment:

  1. I was also a bit curious about the whole concept of modeling packet losses. The paper had an exponential distribution error model which was assumed to be an accurate indication of the error model. Is there some prior study showing that this is indeed the case or is it just some kind of a random model chosen to illustrate the broader point?

    ReplyDelete