In: Computer Science
Explain why the client congestion window(cwnd) size varies differently for different load conditions. In context to tcp congestion control using aimd technique and tcp reno protocol.
The size of congestion windows varies according to the
acknowledgments of various packets.
Let's assume that Bob and Alice are two end points to one
of the TCP network.
Initially the congestion windows is set to 1 packet and
grows exponentially with the ACKs.
Bob sends one packets to the Alice:
If the ACKs of the packet is received from the Alice end
then the windows size gets doubled which means now it will be 2
instead of one and hence now the Bob can send two packets in one
go.
If both the packets again receives the ACKs from the Alice end
within a time limit(if timer gets off before ACK get received then
instead of growing the window, it will shrink) then the window size
again get doubled so now it will be 4 instead of 2.
As the ACKs are getting in right format and at right time, your
window size will increase every time and you can send more and more
bytes to the receiver at a faster pace.
But if your ACKs doesn't arrive or arrive after timer gets off then
your window size will reduce and you will not able to send more
packets anymore untill its size again gets increased.
I hope this will help.