Controlling congestion in a network can be critical to performance. Explain in detail how TCP provides congestion control.
Try an answer before revealing the guidance below.
Key Concepts
- Congestion window (cwnd)
- Slow start
- ssthresh
- Congestion avoidance (AIMD)
- Triple duplicate ACK
- Timeout
Answer Approach
- State how the sender limits its rate with cwnd.
- Describe slow start and when it ends.
- Describe congestion avoidance.
- Describe the reactions to duplicate ACKs and to a timeout.
Full Answer
Answer status: Verified against study notes. Revision notes, not an official marking scheme.
TCP congestion control is end-to-end: the sender infers congestion from loss and limits unacknowledged data to min(cwnd, rwnd), so rate ≈ cwnd/RTT. Slow start: cwnd starts at 1 MSS and increases by 1 MSS per ACK (doubling each RTT) until it reaches ssthresh. Congestion avoidance: above ssthresh, cwnd grows by about 1 MSS per RTT (additive increase). On three duplicate ACKs (mild congestion) TCP fast-retransmits the missing segment, sets ssthresh = cwnd/2 and (Reno) sets cwnd to ssthresh, continuing in congestion avoidance (multiplicative decrease; Tahoe instead drops cwnd to 1). On a timeout (severe congestion) ssthresh = cwnd/2 and cwnd is reset to 1 MSS, restarting slow start.
Rate ≈ cwnd / RTTOn loss: ssthresh = cwnd / 2Shortcuts: K concepts · A approach · F answer · R reviewed · B bookmark · ← / → previous / next