AIMD
- Add congestion window (CWND)
- Slowly increase to se up new bandwidth
- Quickly decrease to eliminate congestion
- Additive, increase maximum segment size every RTT
- Multiplicative decrease: decrease condo by 50% on every RTT
Improving AIMD
- Exponential increase for initial startup phase
- Reset cwnd to smallest value upon heavy congestion
- 4 algorithms
- Slow start
- AI
- MD
- Heavy congestion handling
- On no loss
- Slow start, quick jump-start by exponential growth at startup
- Congestion avoidance: switch to linear growth once exceeding threshold
Slow Start
- On TCP start, increase exponentially until ssthresh
- On every RTT (or equivalently new received ACK)
- ssthresh is hard of max cwnd
When loss is detected
- Multiple ACKs, fast retransmit (MD of cwnd)
- Through timeout (reset, start from scratch)
Nothing: