80 likes | 171 Views
Congestion Avoidance and Control. CSCI 780, Fall 2005. Contributions. Packet conservation principle Self-clocking How to reach equilibrium Slow-start ( ssthresh ) How to set RTO (retransmission timer) Consider variance estimation Exponential back-off
E N D
Congestion Avoidance and Control CSCI 780, Fall 2005
Contributions • Packet conservation principle • Self-clocking • How to reach equilibrium • Slow-start (ssthresh) • How to set RTO (retransmission timer) • Consider variance estimation • Exponential back-off • Adjust window size on congestion (AIMD) • Additive increase if no congestion • Multiplicative decrease if congested
Conservation principle • A new should not put into the network until an old packet leaves • Transmit a new data packet after receiving an ACK • Pre-condition: the connection is “in equilibrium” • How to reach equilibrium (slow-start) • How to maintain at equilibrium (congestion-avoidance)
Slow-start • NOT slow, the window size exponentially increases per RTT • cwnd + 1 per ACK • cwnd doubles per RTT • Quickly reach the equilibrium (fill the empty pipe) • Slow-start threshold (ssthresh) value is crucial
Retransmission timer • Detection of packet loss, implying congestion occurs • It is not easy to set RTO properly • Old RTO ignore the RTT variance • New RTO setup considers • RTT variance estimation • Exponential back-off (double RTO) for each retranmission
Congestion-avoidance • Slow-start —> Congestion-avoidance • cwnd reaches ssthresh • Window size linearly increases • cwnd + 1 per RTT • Congestion is detected via RTO or fast retransmit • Multiplicatively reduce window size • Switch back to slow-start
Karn’s algorithm • Purpose: avoid retransmission ambiguity problem • Cannot update RTT estimation when retransmission occurs • Reuse the backed off RTO, update RTO until an ACK received for an un-retransmitted packet