Network Congestion Problem

  • Too many sources send too much data too fast for network to handle.
  • Manifested when:
    • long delays (queuing in intermediate router buffers)
    • packet loss (buffer overflow at routers)

Network consists of wired and wireless connections

The differences in network throughput of wired and wireless connections cause:

  • congestion to occur in intermediate routers.
  • degraded overall throughput (100 Mbps).
  • packet lantecy to increase due to packet queuing inside buffer.

Solution: Congestion Control

Congestion Control

Approach

  • Step1: measure the throughput of the connection.
  • Step2: match the sending rate to the throughput.

Challenge 1 : Capacity Variations

  • Mobility causes capacity variations
  • Competition between connections causes capacity variations

Challenge 2: Fairness

End-to-end congestion control

  • no explicit feedback from network.
  • congestion is inferred from observed data lost and delay.
  • approach taken by TCP.

Pure end-to-end solution without cooperation from the network: probing for the capacity

  1. Sending rate slowly increases until bottleneck.
  2. Packets start to drop once the sending rate exceeds the network capacity.
  3. Sending rate slowly decreases until packet drops disappear and a maximum throughput is acheived.
  4. Repeat the process.

AIMD (Additive Increase Multiplicative Decrease): de-facto TCP Congestion Control Algorithm

  • Approach:
    • senders can increase sending rate until congestion occurs, then decrease sending rate on congesion.
  • Additive Increase:
    • Increase sending rate by 1 maximum segment size every RTT until loss is detected.
  • Multiplicative Decrease:
    • Cut sending rate in half at each loss event.

Why AIMD?

  • AIMD is a distributed and asynchronous algorithm which has been shown to
    • optimize congestion control rates to be network-wide.
    • have desirable stability properties.
  • These senders using AIMD end up using fair amount of bandwidth.