Friday, September 26, 2008

A Comparison of MechanA Comparison of Mechanisms for Improving TCP Performance over Wireless Linisms for Improving TCP Performance over Wireless Links

Summary:
TCP proves to not provide good throughput in case of wireless networks. This is because packet losses in TCP are handled by invoking congestion control and avoidance algorithms. Wireless networks face packet losses due to high bit error rates, intermittent connectivity etc. There have been several schemes proposed to improve TCP performance in wireless networks:

  1. End-to-End protocol - In this scheme the losses are handled by the sender. There are two techniques that are typically used:
    • SACK provides selective acknowledgement to allow the sender to recover from multiple packet losses in a window without invoking timeout.
    • Use ELN (explicit loss notification) to distinguish loss from congestion.
  2. Link-Layer protocols - This protocol tries to hide the link layer losses from the sender by using local transmissions (ARQ) and FEC (forward error connection). The TCP sender may see the effect of losses because the lossy link is part of the connection. There are some protocols that use the knowledge of TCP along with link-layer protocols.
  3. Split-connection protocols - This scheme uses a separate reliable connection between the base and the sender to communicate SACK/NACK.
  4. Snoop Protocol - This places a snoop agent at the base station which monitors every packet in the TCP connection. A cache of packets that have not been acknowledged is kept by the receiver. Small number of duplicate acknowledgements or local timeout causes the snoop agent to retransmit the packet (if it is in the cache) and suppresses the duplicate acknowledgements.
Impact and Critique:
The authors evaluate different schemes that use one of the three protocols for improving performance. It is found that reliable link layer protocol with some knowledge of TCP provides very good performance. This is due to the fact that typical link layer protocols are affected by the TCP fast retransmissions while TCP aware link layer protocols suppress the excess duplicate acknowledgements thus improving performance. End-to-End protocols that have both ELN and SACK out perform typical end-to-end protocols. While split connection protocols improve performance but they are worse that TCP aware link layer protocols.

I found the paper interesting to read because it discusses what issues TCP faces in case of wireless networks. TCP is designed keeping in mind wired networks that generally have packet loss due to congestion. Comparison of different wireless protocols and how they perform in wireless networks was very insightful. Since I did not know much about wireless protocols this paper helped me understand different schemes that have been proposed and also the issues they face.

It would have been nice to discuss the pros and cons of each protocol in more detail. I could not understand how the ELN scheme distinguishes whether a loss is due to congestion or packet loss. It seems to me that the TCP aware Link layer protocol violates the layered concept. We are now mixing link layer with transport layer. Also, it would have been insightful if the paper also showed how the protocols perform in case of congestion.

1 comment:

Matthias Goerner said...

TCP aware link-layer protocols violate the layered concept, but I guess total separation of layers can only be achieved if you are willing to sacrifice performance: to work efficiently, the transport layer has to be aware of the congestion state which is seen at the link layer.
Having said that, I still think that there should be cleaner designs like hacks where the link layer is looking for dup ACKs and where the link layer is actually assuming how the congestion control algorithm of the transport layer is implemented.