15,698 views

Consider the following statements regarding the slow start phase of the TCP congestion control algorithm. Note that cwnd stands for the TCP congestion window and MSS window denotes the Maximum Segments Size:

1. The cwnd increases by $2$ MSS on every successful acknowledgment
2. The cwnd approximately doubles on every successful acknowledgment
3. The cwnd increases by $1$ MSS every round trip time
4. The cwnd approximately doubles every round trip time

Which one of the following is correct?

1. Only $\text{(ii)}$ and $\text{(iii)}$ are true
2. Only $\text{(i)}$ and $\text{(iii)}$ are true
3. Only $\text{(iv)}$ is true
4. Only $\text{(i)}$ and $\text{(iv)}$ are true

can anybody tell the difference between 'every successful acknowledgement ' and 'every round trip time'. i think both are same .

@, how do you say iii and iv both are correct, how can both be correct as in both round trip time is there. It can either double or increase by 1 MSS, but how both?

From the statements it is pretty clear they are mutually exclusive

1. FALSE ...one can easily understand
2. cwnd increases by 1 MSS on sucessfully receiving ACK , it does’nt doubles unless it receives all of its ACK’s  thus FALSE.
3. FALSE ..1 RTT is a sufficient time in which all ACK’S are received thus cwnd gets doubled
4. TRUE...all above statements justifies this statement to be true

@akshat16

### Subscribe to GO Classes for GATE CSE 2022

Each time an $ACK$ is received by the sender, the congestion window is increased by $1$ segment: $CWND = CWND + 1$.

$CWND$ increases exponentially on every $RTT$.

https://www.utdallas.edu/~venky/acn/CongestionControl.pdf

by
2 10 20

Can. u elaborate more??
at first we will send 1MSS from sender to receiver and then its ack will come back. this all we be done in 1RTT.

After this 2MSS will be sent to receiver then both of their ACK will come back to sender. This will take another RTT.

So my question are both these RTT will be same or different ?
RTT will be same for all. Why they will be different?
Ok. I thought that since now data is increased to it will take more time to propogate so RTT will increase.

Round trip time(RTT) is the length of time it takes for a signal to be sent plus the length of time it takes for an acknowledgement of that signal to be received.

Whenever a successful acknowledgement is received cwnd increases by 1. Now coming to RTT we are supposed to receive all acknowledgements within RTT. let number of segments sent is n, then in turn we will receive n ack. so now new cwnd size will be equal to last_cwnd_size(n) + number_of_ack_received(n) i.e. cwnd=n+n. which can also be said as cwnd doubles on every RTT.

now we can say that only (iv) option is the correct one

by
2 2 5

### 1 comment

Very well explained!

In slow start phase, reception of each ACK adds 1 MSS to cwnd.

Generally, if you send, say 4 packets (cwnd = 4) then in the time approximately equal to an RTT you'll get 4 ACKs in return. These 4 ACKs would add a total of 4 MSS in the cwnd.

Hence approximately we double our cwnd every RTT in Slow Start Phase. Statement iv is True.

Statement i is wrong as cwnd increases by 1 MSS on every ACK received. Hence, Statement ii is also wrong.

Statement iii could be true with slight modifications.

If every RTT successfully delivers you an ACK, then in the time somewhat equal to RTT, cwnd will get doubled. "Somewhat equal" because we'll have to wait for ACKs to get delivered back-to-back.

by
4 8 39

in slow start algorithm sender first send one packet if it receives ack with in timeout the it send two packets in 2nd rtt tf it receives ack within timeout then it increase cwnd as exponentially.if it will not receive with in timeout the sender will decrease the size of cwnd to half.so in slow start

The cwnd approximately doubles every round trip time .

so option c correct

by
2 4 5
TCP uses sliding window protocol and that too sr protocol as it can receive out of window packets and with each ack received it it shift the window. In case of slow start with each ack congestion window is increased by 1 and effectively after each rtt congestion window has increased by 2 times. If an ack acknowledges 2 segment than also cwnd is still increased by 1 segment, enven if ack acknowlsedges a segment that is less than mss still cwnd is increased by 1.

In congestion avoidance phase increase cwnd as cwnd=cwnd+1/(floor(cwnd)). So cwnd segment is increased  if all the cwnd segment has been acknowledged.
by
3 14 25
JUST LOOK THE BELOW EXAMPLE -->

mss=1KB

max window size (packet we send in one window) = 16 segment ( 16 KB / 1 KB =16 )

now reciever at the position to hold all the 16 segments even we send all at once ,but congestion control says that dont send all 16 segments once because network is not able to position to hold that.

threshold=( max packet we send in one window ) / 2 = (16 segment ) /2 =8 segment

first we send 1 packet then increase exponentially till threshold , then linearly till  max which is 16segment here , and then constant

so order we send segment is - (1 2 4 8 9 10 11 12 13 14 15 16 16)

so it increases exponentially after every RTT till threshold which is called slow start phase (name is slow but process is not slow)

after threshold - congestion avoidance phase starts ( here growth is linearly)
by
1 2 8

• INITIALLY CWND = 1
• CWND DOUBLES ON EVERY RTT
• CWND INCREMENTS BY ONE ON EVERY ACKNOLDEGEMENT

(i) False, because the cnwd increases by 1MSS(cnwd=cnwd+1) on every successful acknowledgement (when sender receive an acknowledgement).

(ii) False, because same reason as above.

(iii) False, because the cnwd increases exponentially on every RTT.

(iv) True, because the cnwd increases exponentially on every RTT so we can say that it approximately double the cnwd.

i hope the above picture clears everything.

by
3 7