TCP Congestion Control
TCP Congestion Control
Overview of TCP Congestion Control
- TCP (Transmission Control Protocol) manages congestion in order to maintain efficient and effective transmission rates across networks.
- The process involves both the sender and potentially the network (routers, etc.) to adapt to changing conditions.
1. Approaches to Congestion Control
- Loss-Based Approach:
- Mechanism: The sender increases the sending rate until packet loss is detected, then decreases the rate accordingly.
- Timeouts: Response involves a timeout when a packet is lost.
- RTT Measurement: Delay-based methods increase the rate until the round-trip time (RTT) reaches a congested state.
- Network-Assisted Approach:
- Involves cooperation between sender, network routers, and receiver.
2. TCP’s AIMD (Additive Increase-Multiplicative Decrease)
- How It Works:
- Increases the sending rate by increasing the congestion window (cwnd) until a loss occurs.
- Upon detecting loss, it either cuts the sending rate in half (Multiplicative Decrease).
- Sawtooth Behavior: Sending rate follows a sawtooth pattern, probing for bandwidth.
Details of AIMD:
- Additive Increase (AI): Increase
cwnd
by 1 MSS (Maximum Segment Size) for each RTT until loss is detected. - Multiplicative Decrease (MD): On loss event, cut the
cwnd
in half. - Versions:
- TCP Reno: Cuts the
cwnd
roughly in half upon detection via triple duplicate ACKs. - TCP Tahoe: Cuts the
cwnd
to 1 MSS following a timeout or loss event.
- TCP Reno: Cuts the
3. TCP Congestion Control States
- Three States:
- Slow Start:
- Initiates with
cwnd = 1 MSS
, increases exponentially until the first loss. - Congestion Avoidance:
- Linear increase strategy kicks in when the
cwnd
reaches half of the previous maximum value. - Fast Recovery:
- Reacts to duplicate acknowledgments, adjusts
cwnd
accordingly.
- Transition Rules:
- Slow Start Threshold (ssthresh): When a loss occurs,
ssthresh
is set to half thecwnd
before loss.
- Slow Start Threshold (ssthresh): When a loss occurs,
4. TCP CUBIC
- Comparison with Reno:
- More aggressive initially, then becomes conservative as it approaches the maximum window size (
Wmax
). - Adjusts the window size with respect to the cube of the distance from
K
(the point where the window reachesWmax
).
- More aggressive initially, then becomes conservative as it approaches the maximum window size (
5. Delay-Based Congestion Control
- Objective: Monitor throughput to keep the network pipe fully utilized but not overloaded.
- Uses measured RTT to evaluate whether network conditions are congested.
- Throughput Calculation:
- If throughput is close to
cwnd/RTTmin
, increasecwnd
; if it’s low, decreasecwnd
linearly.
- If throughput is close to
6. Network-Assisted Congestion Control
- Explicit Congestion Notification (ECN):
- Uses 2 bits in the IP header to signal congestion without dropping packets.
- Enables communication of congestion indications from routers to the sender.
7. TCP Fairness
- Goal: Fair distribution of bandwidth among multiple TCP connections.
- Ideal Case: Each session should have an equal share (R/K, where R is bandwidth and K is the number of TCP sessions).
- Influencing Factors:
- Same RTT, controlled sessions contribute to fairness; differing conditions can impact this balance.
Conclusion
- TCP utilizes a combination of strategies for congestion control to optimize the flow of data.
- Understanding the details of AIMD, TCP CUBIC, and network-assisted controls is essential for enhancing network reliability and performance.