Log In
24 votes

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
in Computer Networks
edited by
should be $C$

iii) & iv) both are correct. right? Since no such option is there so we select the answer as c). Am I right?

The value of the Congestion Window will be increased by one with each acknowledgment (ACK) received, effectively doubling the window size each round-trip time ("although it is not exactly exponential because the receiver may delay its ACKs, typically sending one ACK for every two segments that it receives"

Source: Wiki 

IF window is started with 2 mss then what is flow of packet transmission.

What is the difference b/w option B and D

B.The cwnd approximately doubles on every successful acknowledgment 

D.The cwnd approximately doubles every round trip time

 we get an ack in  RTT of packet transmission.


see Official site documentation on tcp congestion control


In the question, we have to choose correct statement for slow start phase.


What would be the answer if one of the option contained $\textbf{ii and iv}$. Because still it seems to me that both the answers are right. But none of the option matches here. But it does not mean that option $\textbf{ii}$ is wrong

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

6 Answers

30 votes
Best answer

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$.

Hence, correct answer is C.

edited by
(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.

Hence 'C' is the answer.
So Is that mean TCP doesn't use cumulative ack?

As if they are cumulative RTT = Time for which sender sees successful ack

then answer should be both ii & iv
@charan TCP works on cumulative acknowledgement. it is selective repeat ARQ which does not work on cumulative acknowledgement
What is round trip time means here?

Time for acknowledgment of 1 Segment  or All segments in  window
Round trip time here is for all segments . So is CWND increases exponantialy . two -four- eight- sixteen ... . lets there is cwnd is 4 then its sends 4 packets and increase its cwnd by one each time it gets ack .  at first cwnd =5 , after  second ack = 6 again after third ack cwnd = 7 on fourth ack cwnd = 8 .

This is what round trip time means here . you can consider its as ACK for Last frame in CWND  .

Every segment is acknowledged individually right ?

Then only we can say cwnd increases by 1 MSS per ack and time to get ack back is RTT for segment isn't it ?

yeah . you are  ryt . But in TCP congestion control RTT is used for Retransmission timer i e when this timer goes of and ack not recieved then retransmit that again . It increases CWND by one on each ACK . Lets say in first RTT it sends One frame after ack it will send two frames . say fr1 ,fr 3

when ack of fr1 arrives its end again two frames further when ack of fr3 arrrives it sends again two frames in network. Thats why in second RTT there is four frames in network . 

since slow start is exponatial in nature so when ADDITIVE INCREASE phase

RTT is a calculated value which follows jacobbes work to caculate it . REF: NETWORKIN TENENBOUM

cwnd increases by 1 MSS after every round trip time then  right??

Can anyone please explain why option $\text{ii}$ is false.

In Forouzan, it is clearly mentioned that after acknowledgement window size doubles.


 when ack is received of a segment then cwnd is increased by only 1MSS but when all acks are received of all segments then cwnd is doubled. 

for example 

we are yet to receive 2ACKS and cwnd is 2.

then after we receive 1st ACK, cwnd + 1MSS = 2 + 1 = 3

then after we receive 2nd ACK, cwnd + 1MSS = 3 + 1 = 4

so you see its doubled from 2 to 4

  1. The cwnd approximately doubles on every successful acknowledgment
  2. The cwnd approximately doubles every round trip time

can anyone help me to explain this . i didn't get it.

Both are true?

1)cwnd size increases by 1 MSS on every successful acknowledgement.

2)cwnd size approximately double on every RTT in case of slow start phase.

@talha hashim  cwnd size increases by 1 MSS on every successful acknowledgement by receiver....rt?


This point might clear some doubts :

When TCP uses cumulative acknowledgment then the acknowledgment we get is the acknowledgment for the last frame of the CWND, therefore we say the CWND increases exponentially on every ACK as ACK=RTT here in cumulative ACK.

But when there are not cumulative acknowledgments then every ACK we get we increase CWND = CWND+1 which become equivalent to the previous case when we get ACK for last frame. 

Hope this clears.



@Mk Utkarsh

In the daigram above

the RTT time for segment 1  = RTT for  segment2 + segement3 = RTT segment6 + segement7 + segment4 + segement5 ?

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.
2 votes

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 in slow start 

The cwnd approximately doubles every round trip time .

so option c correct

2 votes
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.
2 votes

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

2 votes

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.

0 votes

let adv. window(receiver capacity)=16KB


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)

edited by

Related questions

20 votes
5 answers
Consider a long-lived $TCP$ session with an end-to-end bandwidth of $1$ $\text{Gbps}$ (-$10^9$ bits-per-second). The session starts with a sequence number of $1234$. The minimum time (in seconds, rounded to the closet integer) before this sequence number can be used again is ____
asked Feb 14, 2018 in Computer Networks gatecse 9.1k views
36 votes
5 answers
Consider a simple communication system where multiple nodes are connected by a shared broadcast medium (like Ethernet or wireless). The nodes in the system use the following carrier-sense based medium access protocol. A node that receives a packet to transmit will ... ) that allows $Q$ to successfully avoid a collision between its proposed transmission and $P$'s ongoing transmission is _______.
asked Feb 14, 2018 in Computer Networks gatecse 8.2k views
57 votes
13 answers
Let the size of congestion window of a TCP connection be $32$ KB when a timeout occurs. The round trip time of the connection is $100$ msec and the maximum segment size used is $2$ KB. The time taken (in msec) by the TCP connection to get back to $32$ KB congestion window is _________.
asked Sep 26, 2014 in Computer Networks jothee 15.2k views
0 votes
1 answer