Introduction to QoS (Quality of Service)

Hi Rene and staff,

i would suggest that TCP window (size) should be clarified in the lesson Intro to QoS
A comprehensive way for me is written below

First we have a basic mecanism, that is RWND, (also called slide windows, widows size ) in the TCP header: this mecanism prevent the sender to send no more packets that the receiver can hold. If the sender send more packets than the receiver can hold, you create congestion INSIDE the receiver.
But congestion can occur not only inside the receiver but mainly all along the path in routers that you dont know the way they are working, and RWND can do nothing for that !!

So there are another mecanisms/algorithms implemented by TCP: calculation of CWND.
The question is: how some mecanisms/algorithms in L4 can detect a congestion in L3, and make a flow TCP L4 taking the maximum L3 BW available, avoiding congestion all along the path, without any information from the routers along the path, simply just talking with the receiver: this is the magic !
So CWND is just a “window” that is calculated by the sender (not exchanged in the TCP header with the receiver on the contrary of RWND): the calculation is made by these algorithms to go as fast as possible to the best limit available to send packets, avoiding congestion: magic !!

So when WRED drop packets related to a TCP flow (randomly) inside a queue , recalculation of CWND is triggered at the sender (because it do not receive ACK for this packet from the receiver) and the flow TCP is lowered by the sender, and finaly congestion can be avoided in the queue. (Also these mecanisms allow to avoid TCP synchronisation)

To be exhaustive (?), a third mecanism is bits ECN in TOS used by L3 and L4

Hope this is right and helpful
Regards