Transport Layer Part 3 Flashcards
Principles of Congestion Control
Congestion
- Too many sources sending too much data too fast for network to handle.
- Causes long delays (queuing)
- Causes packet loss (buffer overflow)
Principles of Congestion Control
Approaches to Congestion Control
- End-end congestion control
- Network-assisted congestion control
Principles of Congestion Control
End-end Congestion Control
- No explicit feedback from network
- Congestion inferred from observed loss, delay
- Approach taken by TCP
Principles of Congestion Control
Network-assisted Congestion Control
- Routers provide direct feedback to sending/receiving hosts about flows passing through congested router
- May indicate congestion level or explicitly set sending rate
- ECN protocol
Principles of Congestion Control
ECN Protocol
- Network-assisted Congestion Control
- 2 bits in IP header marked by network router to indicate congestion
- Congestion indication carried to destination
- Destination sets ECN bit on ACK seg to notify sender on congestion
- Involves both IP (IP header bit) and TCP (TCP header)
TCP Congestion Control
cwnd
- Congestion window
- Sender in-flight packets cannot exceed this number
TCP Congestion Control
rwnd
- Receiver window
- Sender in-flight packets cannot exceed this number
TCP Congestion Control
cwnd & rwnd
LastByteSent - LastByteAcked <= min{cwnd, rwnd}
Amount of unACKed data at sender cannot exceed minimum of cwnd and rwnd.
TCP Congestion Control
TCP Congestion Phases
- Slow Start Phase
- Congestion Avoidance Phase
- Congestion Detection Phase
TCP Congestion Control
Threshold
Point where congestion began in the past.
TCP Congestion Control
Slow Start Phase
Exponential increment: After every RTT the congestion window size increments exponentially
TCP Congestion Control
Congestion Avoidance Phase
Additive Increment: Starts after threshold val is reached. After each RTT, cwnd is incremented by 1.
TCP Congestion Control
Congestion Detection Phase
Multiplicative Decrement: If congestion occurs, cwnd is cut in half. Only way for sender to guess that congestion occured is if it needs to retransmits a segment.
Retransmission can occur if timer times out or when 3 duplicate ACKs are received.
TCP Congestion Control
AIMD
- Additive Increase, Multipicative Decrease
- Senders can increase sending rate until packet loss occurs, then decrease sending rate on loss event
- “Sawtooth” behavior, probing for bandwidth
TCP Congestion Control
Congestion Detection Phase Case 1
TCP Tahoe: Retransmission due to timeout.
* ssthresh is reduced to half of current window size
* set cwnd = 1
* start with Slow Start Phase again