Quiz Entry - updated: 2026.07.05
What is TCP congestion avoidance?
When congestion causes routers to drop packets, missing ACKs signal it; TCP reacts by reducing the amount of data sent before an ACK, then gradually increasing again - using algorithms like slow start, congestion avoidance, fast retransmit, and fast recovery.
* Slow start grows the window exponentially, congestion avoidance grows it linearly, and a loss halves it. *
TCP Congestion Avoidance:
When network congestion occurs, routers may discard packets. TCP detects this and reduces its transmission rate.
Congestion Detection:
- Missing acknowledgments indicate possible congestion
- Sender doesn't receive expected ACKs
Congestion Response:
- Sender reduces the number of bytes sent before requiring an acknowledgment
- Gradually increases rate as ACKs are received
- This prevents overwhelming congested network segments
Congestion Control Algorithms:
- Slow Start: Begin with small window, double each RTT
- Congestion Avoidance: Increase window linearly after threshold
- Fast Retransmit: Retransmit after 3 duplicate ACKs
- Fast Recovery: Don't reset to slow start after fast retransmit
Key insight: TCP automatically adjusts its sending rate based on network conditions, balancing throughput and congestion.
Go deeper:
TCP Congestion Control — animates slow start, AIMD, and how the window backs off on loss.
Computer Networks: A Systems Approach §6.3 — TCP Congestion Control — the textbook walkthrough of slow start, congestion avoidance, and fast recovery.
TCP congestion control — Wikipedia overview of the algorithms (Tahoe, Reno, CUBIC) for the carousel.