TCP- and UDP-based applications

Problem: Evaluate TCP

Why does TCP perform poorly in ad-hoc/vehicular networks?

  • Developed for wire-line networks.

  • Assumes all losses are due to congestion.

Many TCP variants have been proposed.

  • How good are they?

  • Are they sufficient?

Are there any other alternatives?

  • Are non-TCP protocols the solution?

Overview of TCP concepts

Conventional TCP: Tahoe, Reno, New-Reno.

Sending rate is controlled by:

  • Congestion window (cwnd): limits the number of packets in flight.

  • Slow-start threshold (ssthresh): when congestion avoidance starts.

Loss detection.

  • 3 duplicate ACKs (faster, more efficient).

  • The retransmission timer expires (slower, less, efficient).

Overview of congestion control mechanisms:

  • Slow-start phase: cwnd starts from 1 and increases exponentially.

  • Congestion avoidance (CA): cwnd increases linearly.

  • Fast retransmit and fast recovery: Triggered by 3 duplicate ACKs.

Wireless networks and ad-hoc

1. Mobility

  • Route stability and availability.

2. High bit error rate

  • Packets can be lost due to “noise”.

3. Unpredictability/Variability

  • Difficult to estimate time-out, RTT, bandwidth.

4. Contention: packets compete for airtime

  • Intra-flow and inter-flow contentions.

5. Long connections have poor performance

  • More than 4 hops throughput drops dramatically.

Why does TCP fail wireless and in ad-hoc networks?

TCP misinterprets route failures as congestion

  • Effects: Reduce sending rate.

  • Buffered packets (Data and ACKs) at intermediate nodes are dropped.

  • Sender encounters timeouts.

    • Under prolonged disconnection, a series of timeouts may be encountered.

TCP misinterprets wireless errors as congestion

  • Effects: Incorrect execution of congestion control -> performance drops.

  • The wireless channel is error-prone compared to the wireline.

    • Fading, interference, noise.

A delay spike causes TCP to invoke unnecessary retransmissions

  • Effects: Performance drops and many unnecessary retransmissions exist.

  • Variability: Spikes are not uncommon here.

  • Spikes throw off parameter estimation and tuning.

    • RTO, window size, slow-start threshold.

Inefficiency due to the loss of retransmitted packet

  • Effects: performance drops significantly under a high-loss environment.

  • Losing a retransmitted packet hurts.

    • TCP can recover from one loss (fast retransmission).

  • Wired networks: packet loss rate is low.

  • Here, high packet loss makes the problem significant.

Last updated