The Gateway to Computer Science Excellence
+18 votes
5.2k 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
in Computer Networks by Boss (16.8k points)
edited by | 5.2k views
0
should be $C$
0

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 

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

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.

0

see Official site documentation on tcp congestion control

https://tools.ietf.org/html/rfc2001

0

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

 

0
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
+1

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

5 Answers

+25 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.

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

by Active (1.3k points)
edited by
+16
(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.
+2
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
+1
@charan TCP works on cumulative acknowledgement. it is selective repeat ARQ which does not work on cumulative acknowledgement
+1
What is round trip time means here?

Time for acknowledgment of 1 Segment  or All segments in  window
+7
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  .
0
@Smishra95

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 ?
0

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

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

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

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

+3

 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

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

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

+2

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.

0

@srestha

@Mk Utkarsh

In the daigram above

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

0
Can. u elaborate more??
0
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 ?
0
RTT will be same for all. Why they will be different?
0
Ok. I thought that since now data is increased to it will take more time to propogate so RTT will increase.
+1 vote

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 (55 points)
+1 vote
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 Active (1.8k points)
+1 vote

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 (69 points)
0 votes
JUST LOOK THE BELOW EXAMPLE -->

let adv. window(receiver capacity)=16KB

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 (415 points)
edited by

Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
50,645 questions
56,616 answers
195,897 comments
102,357 users