- ECN is a network-based congestion control mechanism. ECN is distributed because any packet switch can signal the congestion.
- Host-based congestion control occurs at the source host (or transmitter). The transmitter can detect congestion with variables such as packet retransmissions, duplicate ACKs, window size reduced,…
- With congestion control, TCP tries to determine the amount of outstanding segments that can be sent at a time without overwhelming the network..
- TCP relies on the Sliding Window mechanism to perform congestion control. In fact, TCP defines the concept of congestion window (cwnd). And the relationship between cwnd and the Sender’s Window size is given by the following formula:
Sender’s Window size = min (Advertized window, congestion window)
- Advertized window: the window size as announced by the receiver (this is the flow control window)
- congestion window (cwnd): the window size calculated by AIMD algorithm at the transmitter side
- the congestion window characterizes a TCP connection. This means that for each new TCP connection we have a different congestion window.
- cwind is calculated as follows:
- If the packet is received: cwnd ← cwnd + 1/cwnd
- If a packet is dropped: cwnd ← 1/cwnd
- “1” can also be interpreted this way: if all outstanding segments of one window have been acknowledged, then cwnd ← cwnd + 1, which means “increase the congestion window size by one MSS”. This supposes that all outstanding segments have been sent in one RTT, and that no packet has been lost.
- by the way, AIMD stands for “Additive Increase, Multiplicative Decrease”.