merlin2011
merlin2011

Reputation: 75565

TCP slow start vs congestion avoidance when a packet is lost

I have recently been reading the 1988 paper on Congestion Avoidance and Control, and it made an effort to differentiate slow-start from congestion avoidance.

However, there is one point which I did not understand, regarding which algorithm operates after a packet is lost.

Which algorithm will take precedence when a packet loss occurs? Will cwnd be set to 1 or to half its current size?

Upvotes: 2

Views: 1858

Answers (1)

merlin2011
merlin2011

Reputation: 75565

Apparently the answer is in Appendix B of the same paper, which I had skipped earlier.

The combined algorithm actually maintains two state variables, a cwnd and an ssthresh.

When a time-out occurs due to a packet loss, the variable ssthresh is set to half the current the current window size, cwnd is set to 1, and then slow-start is used to reach that threshold (adding one to the window for every ACK received).

Once the threshold is reached, cwnd is incremented using Additive Increase (one increase for every full window of ACK) received.

Upvotes: 3

Related Questions