Lecture Date: 12th April 2020, 12:30 P.M. to 01:00 P.M.
Congestion Control in TCP
TCP uses Congestion window and congestion policy to avoid congestion.
1. Congestion Window: Sender window size is determined by available buffer space in the receiver (rwnd) or by congestion in the network. Actual window size = minimum (rwnd, cwnd) 2. Congestion Policy: It start with slow-start phase, increase the rate rapidly till reach a threshold. After reaching the threshold, data rate is reduced to avoid congestion. If congestion is detected then sender again follow slow-start or congestion avoidance. Congestion Policy in TCP Slow START: Exponential Increase In this phase after every Round Trip Time (RTT) the congestion window size increments exponentially. Initially congestion window (cwnd) starts with one maximum segment size (MSS). The MSS is determined during the connection establishment. Slow start increases till it will not reach to threshold. In most implementation, the size of ssthresh(slow-start threshold) is 65535 bytes. In the example shown in next slide, it is assumed that receiver window size is greater than cwnd. Congestion Control in TCP: Slow Start: Exponential Increase Congestion Policy in TCP Congestion Avoidance: Additive Increase To avoid the congestion, additive increase will be implemented rather exponential. This phase is starts after the slow start phase reached to threshold value Congestion Control in TCP: Congestion Avoidance: Additive Increase Congestion Policy in TCP Congestion Detection Phase: Multiplicative Decrement
If congestion occurs, then congestion window size must be decreased so that
sender can guess that congestion has occurred. Now there is the need to retransmit a segment. There are 2 cases for retransmission done: (i) Retransmission Due to time-out: In this, no information about the segment. In this case Following steps are taken: a) Set value of threshold to one-half of the current window size. b) It set cwnd to the size of 1 segment c) It starts the slow-start phase again. Congestion Policy in TCP Congestion Detection Phase: Multiplicative Decrement
(ii) 3 Acknowledgement Received: Some segments may be dropped or some arrived
safely for which acknowledgement is received. Following steps are done: a) Set the value of threshold to one half of the current window size b)Set cwnd to the value of the threshold. c) It starts the congestion avoidance phase TCP Congestion Policy Summary Congestion Control in TCP •In Example, it is assumed that the maximum window size is 32 segments. •The threshold is set to 16 segments (one-half of the maximum window size). •In the slow-start phase the window size starts from 1 and grows exponentially until it reaches the threshold. •After it reaches the threshold, the congestion avoidance (additive increase) procedure allows the window size to increase linearly until a timeout occurs or the maximum window size is reached. •In Figure, the time-out occurs when the window size is 20. At this moment, the multiplicative decrease procedure takes over and reduces the threshold to one-half of the previous window size. •The previous window size was 20 when the time-out happened so the new threshold is now 10. Congestion Control in TCP •TCP moves to slow start again and starts with a window size of 1, and TCP moves to additive increase when the new threshold is reached. •When the window size is 12, a three-ACKs event happens. The multiplicative decrease procedure takes over again. •The threshold is set to 6 and TCP goes to the additive increase phase this time. •It remains in this phase until another time-out or another three ACKs happen. Congestion Control in TCP