سؤال

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.

  • Based on the paper and Wikipedia's description of slow start, it wants TCP to start with a congestion window of size 1 after a loss event occurs.
  • Based on congestion avoidance's AIMD algorithm, the congestion window should be halved after a packet loss.

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

هل كانت مفيدة؟

المحلول

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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top