Summary
Congestion Control
Congestion is when too many sources sending too much data too fast for network to handle
- Throughput can never exceed capacity
- Delay increases as capacity approached
- Loss/Retransmission decreases effective throughput
- Un-needed deplicates further decreases effective throughput


End-end congestion control
- no explicit feedback from network
- congestion inferred from observed loss/delay
- used in TCP
- TCP sender limits
- is dynamically adjusted based on perceived congestion level
AIMD
Note
Additive Increase: increase sending rate by 1 maximum segment **Multiplicative Decrease:**cut sending rate in half at each loss event
- Senders can increase sending rate until packet loss occurs, then decrease sending rate on loss event.
Slow Start
when connection begins, increase rate exponentially until first loss event

Back to linear scale
Switch back to linear when cwnd gets to half of its value before timeout (determined by ssthresh slow start threshold)

React to Loss
Note
- TCP Tahoe = Loss via Timeout
- TCP Reno = Loss via Triple Duplicate ACK

- When loss detected by triple duplicate ACK (TCP Reno)
- no wait for timeout (Fast Retransmit)
cwndis cut in half window then grows linearly
- When loss detected by tiemout (TCP tahoe)
cwndis cut to 1 MSS (Maximum segment size— the size of largest segment TCP can send)- enter TCP Slow Start
TCP CUBIC
-
to probe for usable bandwidth

-
: sending rate at which congestion loss was detected
-
the larger the , the more aggressive the increase in sending rate
-
is the time when
- Concave Growth (Before K): When the current time is far from K, the window increases rapidly to regain lost throughput. As the time approaches K, the increments become smaller and more cautious to avoid overshooting network capacity.
- Convex Probing (After K): Once the time surpasses K, the function flips, and the window begins to grow more aggressively again to “probe” for new available bandwidth.
Delay-based TCP congestion control
- : minimum observed RTT (uncongested path)
- uncongested throughput with congestion window
cwndis - if measured throughput close to uncongested throughput:
- increase
cwndlinearly
- increase
- if measured throughput significantly less than uncongested throughput:
- decrease
cwndlinearly
- decrease
Network-assisted congestion control
-routers provide direct feedback to sending/receiving hosts with flows passing through congested router
- used in DECbit+, TCP ECN
Explicit Congestion Notification
- router sets ECN bit in packet header to indicate congestion (
ToSfield) - sender reduces sending rate when receives ACK with ECN bit set
- Using both IP header (
ECNbit) and TCP header(C,Ebit)

