In: Computer Science
Describe the various mechanisms for avoiding and controlling congestion employed by TCP, namely: slow start, congestion avoidance phase and reaction to congestion. Further, assume that a TCP connection at steady state with AIMD parameters alpha = 1 Byte and beta = 0.5 is currently sending 107B of data (i.e., congestion_window = 107B). Assuming no congestion drops occur in the next three rounds of transmission, what is the congestion-window in the next three rounds? If there is a congestion drop after the third round, what is the new congestion_window? (Hint: use the AIMD algorithms with given values of alpha and beta to arrive at these answers)
Various mechanism for avoiding and controlling congestion employed by TCP are as follows
Congestion policy in TCP –
Slow Start Phase : exponential increment – In this phase after every RTT the congestion window size increments exponentially.
Initially cwnd = 1 After 1 RTT, cwnd = 2^(1) = 2 2 RTT, cwnd = 2^(2) = 4 3 RTT, cwnd = 2^(3) = 8
Congestion Avoidance Phase : additive increment – This phase starts after the threshold value also denoted as ssthresh. The size of cwnd(congestion window) increases additive. After each RTT cwnd = cwnd + 1.
Initially cwnd = i After 1 RTT, cwnd = i+1 2 RTT, cwnd = i+2 3 RTT, cwnd = i+3
Congestion Detection Phase : multiplicative decrement – If congestion occurs, the congestion window size is decreased. The only way a sender can guess that congestion has occurred is the need to retransmit a segment. Retransmission is needed to recover a missing packet which is assumed to have been dropped by a router due to congestion. Retransmission can occur in one of two cases: when the RTO timer times out or when three duplicate ACKs are received.
(a) ssthresh is reduced to half of the current window
size.
(b) set cwnd = 1
(c) start with slow start phase again.
(a) ssthresh value reduces to half of the current window
size.
(b) set cwnd= ssthresh
(c) start with congestion avoidance phase
AIMD algorithm
W(t+1) =w(t) +a, if Congestion not detected
=w(t) *b, if congestion detected
If there is no congestion drop in first three round of transmission then window size increase linearly..
Window size after first round=107+1=108 bytes
Window size after second round=108+1=109 bytes
Window size after third round=109+1=110 bytes
If there is congestion drop after that.. Then the new window size will be 110*1/2= 55 bytes.