- Forward


TCP Congestion Control
An Introduction


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

Motivation
Back SMYC Forward
  • History:
    • In the late 1980s congestion became a serious problem (leading to many dropped packets)
  • Kinds of Responses:
    • Pre-allocate resources to avoid congestion
    • Detect congestion and control it when it occurs
Where to Manage Resources
Back SMYC Forward
  • Routers in the Network:
    • This is a queueing problem
  • Hosts at the Edges:
    • This is a transport protocol issue
Congestion and Window Size
Back SMYC Forward
  • Smaller Window:
    • Fewer packets "in flight"
  • Larger Window:
    • More packets "in flight"
TCP Tahoe
Back SMYC Forward
  • History:
    • Van Jacobson (1988)
  • Components:
    • Additive Increase, Multiplicative Decrease (AIMD)
    • Slow Start
    • Fast Retransmit
TCP Tahoe (cont.)
Back SMYC Forward
  • AIMD:
    • Increase the size of the congestion window by a fixed increment (e.g., one packet) for each successful round trip
    • Divide the size of the congestion window by 2 each time there is a timeout (or four ACKS for a given segment -- an implicit loss event)
  • Slow Start:
    • Start with a congestion window size of 1
    • Use additive increase until there's a timeout or a threshold is exceeded
  • Fast Retransmit:
    • Send an ACK for each packet
    • Send a duplicate ACK when a packet is received out of order
    • Use duplicate ACKs to force retransmission
TCP Reno (and Derivatives)
Back SMYC Forward
  • Startup:
    • Don't use slow start; use the last successful congestion window instead.
  • Consecutive Packet Drops:
    • Use slow start (to try and determine the available capacity)
  • In Case of Fast Retransmit:
    • Decrease size of congestion window by 2
Retransmission Timers in Tahoe/Reno
Back SMYC Forward
  • Calculate the mean and variance of the round trip transmission times
  • The retransmission interval is based on the mean and the variance
TCP Vegas
Back SMYC Forward
  • The Concept:
    • Predict the onset of congestion and react accordingly
  • Possible Congestion Indicators:
    • Increasing round trip time
    • Flat sending rate
Aside: Congestion Avoidance in Routers
Back SMYC Forward
  • DECbit:
    • Router uses the queue length to predict congestion
    • Use a congestion bit in the packet header to inform hosts
  • Random Early Detection (RED):
    • Drop packets (probabilistically) before the queue becomes full (which will result in a TCP timeout)
  • RED with In and Out (RIO):
    • Categorize packets and drop the low priority (a.k.a., out of profile) packets before the high priority (a.k.a., in profile) packets
There's Always More to Learn
Back -