Source: Forouzan Page 771
Congestion Avoidance Algorithm:
In this algorithm, each time the whole window of segments is acknowledged (one round), the size of the congestion window is increased by 1.
i'm still not sure how some people claim that after each ACK, the congestion window is incremented by 1/CNWD
i.e Wc = 1/Wc
https://youtu.be/uFR4WU86nuQ?t=4174
Suppose congestion window is 4.
1st ack received,
W = 4 + 1/4
4.25 (which i'm not even sure how possible, i think either it should be floor value or ceil value but if we do floor value then we never get pass 4.)
2nd Ack,
W = (4.25 + 1/4.25)
4.48
3rd ack,
W = 4.48 + 1/4.48
W=4.70
4th ack,
W = 4.70 + 1/4.70
W = 4.9
As you see the window size is not reached exactly 5.
For bigger value i think this will be more noticible.