OK, so basically I'm getting confused with all the terms, and if some are related to others or not.
I'll explain myself:
From what I understand, flow control depends on the receiver side buffer capabilities, which are basically how many packets per unit of time can the receiver receive per unit of time.
Congestion control, on other hand, depends on the capabilities of the network between the receiver and the sender (we don't want to overflow the network with packets until the network won't be able to route them around).
Now, here is where I'm not sure about the other terms.
- The MTU is the unit for the Congestion control, and the MSS is the unit for flow control?
- In the Rwnd (receive window) there will be the value of the MSS of the receiver?
- Now, here is where i get really confused, the Cwnd (Congestion window) is basically to know how many packets can the receiver receive before starting to lose some data (duplicate ACKs). Why do we need this window if the sender already knows the MSS of the receiver and the MTU between them? Is the MSS used to know the size of each packet individually that the sender should send, while the MTU is the capability of the network to transfer each packet from one point to another and the Congestion window will be related to the quantity of the packets that the receiver can receive?