3.7 TCP Congestion Control
TCP Congestion Control
TCP employs congestion control mechanisms learned from prior discussions on network behaviors.
Classic TCP: Ramp-up sending rate until loss occurs, then back off.
Delay-Based Approach: Measures round-trip times (RTTs) to manage congestion.
Explicit Congestion Notification (ECN): Involves active roles of routers in signaling congestion.
History of TCP Congestion Control
1988: Van Jacobsen's seminal paper laid foundation for modern congestion control.
TCP uses an end-to-end approach to detect congestion primarily through packet loss.
The aim is to maintain a balance where sending rate increases until a packet loss occurs.
AIMD Algorithm
Additive Increase Multiplicative Decrease (AIMD): Increases sending rate by one segment per RTT; cuts rate by half upon loss.
Results in a sawtooth pattern of sending rates, fluctuating based on congestion feedback.
Loss detection uses triple duplicate ACKs or timeouts.
TCP's Congestion Window
Segments:
Acknowledged segments (green)
Sent but not acknowledged segments (yellow)
Allowed to be sent (blue)
Too fast to be sent (not shown)
Size of the congestion window (CWND) determines transmission rate:
Throughput =
Slow Start
Initial phase begins with one Maximum Segment Size (MSS) per RTT, doubling rate every RTT (exponential increase).
Transitioning to AIMD occurs when CWND reaches half its last slow start window size.
TCP Cubic
A modification of AIMD that increases congestion window more quickly after loss, then cautiously approaches maximum sending rate (W max).
TCP Cubic more effectively utilizes allowable bandwidth than AIMD.
Delay-Based Approaches
Aim to manage congestion based on throughput and RTT measurements without inducing packet loss.
Example: BBR (Bottleneck Bandwidth and RTT), used internally by Google, measures both bandwidth and RTT.
Explicit Congestion Notification (ECN)
Routers signal congestion by setting a bit in the IP header, prompting senders to adjust their congestion window accordingly.
Allows proactive congestion control without overwhelming routers.
TCP Fairness
Fairness implies equal sharing of link capacity among sessions.
AIMD encourages fair sharing, causing throughput to stabilize at equal fair shares.
Lack of policing leads to varied application behaviors, with applications leveraging TCP's reliability potentially impacting fairness.
Conclusion
TCP's congestion control mechanisms have been vital for the Internet's success, illustrating the importance of these algorithms in managing network traffic.