NOTE
1.7 TCP Congestion Control
What TCP congestion control is, why it is needed, and the slow start, congestion avoidance, fast retransmit, and fast recovery algorithms.
This is a historical learning note and may contain outdated or incomplete understanding.
1. What Is TCP Congestion Control?
An algorithm used by TCP to avoid network congestion.
2. Why Is TCP Congestion Control Needed?
Congestion control prevents too much data from being injected into the network, causing the network to become overloaded and eventually fail.
3. TCP Congestion Control Principle
Congestion control uses the sending window min(sender's congestion window, receiver's sliding window) to control congestion.
The size of the sender’s congestion window is determined by slow start + congestion avoidance and fast retransmit + fast recovery.
3.1. How Is Network Congestion Detected?
Packet loss.
3.2. Congestion Control Algorithms
3.2.1. Slow Start + Congestion Avoidance

Exponential growth, linear growth, multiplicative decrease, and then the process repeats.
3.2.2. Fast Retransmit + Fast Recovery

After receiving three duplicate ACKs, retransmit immediately without waiting for the RTO.
There is no need to drop to 1; linear growth starts directly from the new threshold value.
Discussion
Sign in with GitHub to comment. Discussions are stored as GitHub Issues.View on GitHub