in Computer Networks retagged by
14,206 views
17 votes
17 votes
Consider a $\textsf{TCP}$ connection between a client and a server with the following specifications; the round trip time is $6$ ms, the size of the receiver advertised window is $50$ KB, slow-start threshold at the client is $32$ KB, and the maximum segment size is $2$ KB. The connection is established at time $t=0$. Assume that there are no timeouts and errors during transmission. Then the size of the congestion window (in $\text{KB}$) at time $t+60$ ms after all acknowledgements are processed is _______
in Computer Networks retagged by
by
14.2k views

4 Comments

There is a little nuance one has to notice is, the question is asking the congestion window at $ k^{th}$ transmission. If the question is asking for the congestion window at the end of $ k^{th}$ transmission, then, the answer would be congestion window for $k+1^{st}$ transmission. ie. Congestion window at the end of $ k^{th}$ transmission $=$ congestion window for $k+1^{st}$ transmission. Ref

1
1
in this question what i am facing that i only consider 10 rtt which means 42 ans but in actual ans 44 means 11rtt . i dont know how it comes ?
0
0

@madhes23 even at the end of the Kth transmission window size will remain the same. Cause window size increases after receiving the acknowledgment. The link u provided says after the end of successful transmission. Successful transmission means their acknowledgment is also received.

0
0

4 Answers

21 votes
21 votes
Best answer

In Case of AIMD(Additive Increase/ Multiplicative Decrease): -

  1. Start with given MSS (Min Sequence Size)
  2. Increase the window size in multiples of MSS till the slow start threshold occurs
  3. Once the threshold reached, increase the window size by 1 MSS till the timeout occurs
  4. Once the timeout occurs, reduce threshold to half of current window size and again start from given start MSS.

$t=0$

$1\ \textsf{MSS}= 2 \ KB$

$W_{\textsf{threshold}} = 32\ KB$

$| \rightarrow \text{denotes } 1$ $\textsf{RTT}$

$\small \underbrace{2\ \overset{+1 \textsf{ MSS}}{ |_{t+6}}\ 4\ \overset{+2\textsf{ MSS}}{ |_{t+12}}\ 8\ \overset{+4\textsf{ MSS}}{|_{t+18}}\ 16\  \overset{+8\textsf{ MSS}}{|_{t+24}}\  }_{\textsf{exponential increase}}32\ \underbrace{ \overset{+1\textsf{ MSS}}{|_{t+30}} \ 34\ \overset{+1\textsf{ MSS}}{|_{t+36}}\ 36\ \overset{+1\textsf{ MSS}}{|_{t+42}}\ 38\ \overset{+1\textsf{ MSS}}{|_{t+48}}\ 40\ \overset{+1\textsf{ MSS}}{|_{t+54}}\ 42 \ \overset{+1\textsf{ MSS}}{|_{t+60}}\ 44}_{\textsf{linear increase after theshold}}$

$\therefore$ The size of the congestion window(in KB) at time $t+60$ ms after all acknowledgments are processed is $44$ KB

edited by

1 comment

One of the best explanations!!
0
0
21 votes
21 votes

The state of congestion window changes as below

Note : As specified in question, there are no errors and timeouts

  • At $t : 1\textsf{ MSS}$
  • At $t+6 : 2\textsf{ MSS}$
  • At $t+12 : 4\textsf{ MSS}$
  • At $t+18 : 8\textsf{ MSS}$
  • At $t+24 : 16\textsf{ MSS}$

Now here since threshold value is reached, it is no longer in slow start phase and enters congestion avoidance phase

  • At $t+30 : 17 \textsf{ MSS}$
  • At $t+36 : 18 \textsf{ MSS}$
  • At $t+42 : 19 \textsf{ MSS}$
  • At $t+48 : 20 \textsf{ MSS}$
  • At $t+54 : 21 \textsf{ MSS}$
  • At $t+60 : 22 \textsf{ MSS}$

So at time $t+60,$ the congestion window size is $22 \textsf{ MSS}$ i.e., $44 \textsf{ KB}.$

edited by

4 Comments

Reciever has advertised 50KB, then we should take threshold as 25KB right? 32KB is given as client threshold, so might be it is threshold for reciever when it is sending data
0
0
Upto t+18 30 KB of data is send and its not mentioned that receiver application has utilized or read the data from its buffer or not so considering the scenario of window shrinking at t+18 10 MSS of data can be send and then the receiver will advertise its window as 0 so no further data can be send to receiver Causing the Congestion window to be 0.

Isn't the approach to this question correct??
0
0
edited by

@priyesh9875 The congestion window threshold should be taken the minimum of the two. The receiver threshold is 25 packets but the senders threshold is 16 packets, So exceeding 16 might create congstion problem.

1
1

@Amar123 yup totally missed that point. The above answer is wrong.

The congestion window (cwnd) is a sender-side limit on the amount of data the sender can transmit into the network before receiving an acknowledgment (ACK), while the receiver's advertised window (rwnd) is a receiver-side limit on the amount of outstanding data.  The minimum of cwnd and rwnd governs data transmission.  

Another state variable, the slow start threshold (ssthresh), is used to determine whether the slow start or congestion avoidance algorithm is used to control data transmission

 

The threshold is 32 not 16

0
0
1 vote
1 vote

To the people having doubts whether the threshold will be 25 or 32

The congestion window (cwnd) is a sender-side limit on the amount of data the sender can transmit into the network before receiving an acknowledgment (ACK), while the receiver's advertised window (rwnd) is a receiver-side limit on the amount of outstanding data.  The minimum of cwnd and rwnd governs data transmission.  

Another state variable, the slow start threshold (ssthresh), is used to determine whether the slow start or congestion avoidance algorithm is used to control data transmission

So it clearly states that the minimum of the two thresholds will be taken if the slow start threshold is not given.

 

ref: https://datatracker.ietf.org/doc/html/rfc5681

1 vote
1 vote

.….….….….….….….…...

Answer:

Related questions