Wednesday, September 30, 2009

A Comparison of Mechanisms for Improving TCP Performance over Wireless Links

H. Balakrishnan, V. Padmanabhan, S. Seshan, R. H. Katz, "A Comparison of Mechanisms for Improving TCP Performance over Wireless Links," IEEE/ACM Transactions on Networking, (December 1997).

Traditionally, TCP always assumed an underlying wired network and hence believed that a packet loss could occur only due to congestion. Hence TCP congestion control primarily consisted of retransmitting in case of 3 duplicate ACKs and halving ints congestion window on each timeout. Moreover, the timeouts were pretty coarse grained (200ms) due to the underlying purpose of congestion control. However, in case of wireless networks, packet loss may very well be due to noise, bit errors and handoffs. Invoking congestion control in this scenario obviously degraded end-to-end performance. Several protocols have been proposed to improve the performance of TCP over wireless links:
  • Link-layer Protocols: This employs Forward Error Correction (FEC) and retransmission of lost packets in response to ARQ messages. Advantages: Fits naturally into layered structure of network protocol and is independent of higher-layer protocols. Disadvantage: Adverse effect on TCP.
  • Split Connection Protocols: Splits each TCP connection between sender and reciever into 2 separate connection at the base station. Sender -- Base Station -- Receiver. Advantages: A specialized protocol tuned to the wireless environment such as SRP-TCP can be used. Disadvantage: Per packet duplication/processing overhead at the base station, violation of TCP end-to-end semantics and the need to maintain states at the base station.
  • Snoop Protocol: A snoop agent module sits at the base station and monitors every packet that passes through a TCP connection and caches all those packets that have not yet been acknowledged. Now whenever it detects a packet loss (by duplicate acknowledgement or timeout), the snoop agent retransmits the cached copy to the receiver and supresses the dup ACKs. Advantages: Suppresses dup ACKs thereby avoiding fast retransmissions and congestion control policies at the sender. Moreover, it maintains a soft state. Disadvantages: Doesnt completely shield the sender from wireless losses and incurs overhead of per packet copying in the cache.
  • Selective Acknowledgements: SACK and SMART. Advantage: Resilience to reordering and lost ACKs. Disadvantages: Overhead in ACK generation/transmission.
Further, the authors implemented and evaluated the following protocols:
  • End-to-End Schemes: E2E-NEWRENO (Fast Recovery mode), E2E-SMART (TCP with SMART ACKs), E2E-IETF-SACK (TCP with Selective ACKs), E2E-ELN (TCP with an Explicit Loss Notification bit in the ACKs that notifies the sender that the loss is not due to congestion) and E2E-ELN-RXMT. 
  • Link-Layer Schemes: LL-TCP-AWARE,  LL-SMART-TCP-AWARE which leveraged TCP based ACKs instead of generating its own. 
  • Split Connection Schemes: SPLIT and SPLIT-SMART schemes were evaluated with a clever pointer passing trick that avoided data copying at the base station.
Through the evaluations, the authors found out that link layer TCP aware protocols performed best primarily due to the fact that TCP aware link layer protocols suppressed excess dup ACKs and improved performance. Further, E2E protocols with ELN and SACK were better than simple E2E protocols. Moreover, split connection protocols improved performance but were outperformed by the TCP aware link layer protocols. Overall, it seemed to me that LL-SMART-TCP-AWARE protocol emerged out to be the winner!

Critiques:

Overall, the paper was very well written, had nice and brief explanations of all the existing modifications of wireless communication protocols and did thorough evaluations of all of them. However, I think it was wrong to assume sufficient knowledge at the receiver about wireless losses to generate ELN information. I was not fully convinced by the implementation policies of E2E-ELN. Further, I am also curious as to why the exponential distribution error model was assumed to be an accurate indication of the error model. Thirdly, doesn't LL-SMART-TCP-AWARE go against the basic network layered design philosophy? Is it justifiable?

1 comment:

  1. The catch about LL-SMART-TCP-AWARE is an interesting finding. I didn't notice it while reading the paper! Now I also think that it goes against the layering principle.

    ReplyDelete