The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+1 vote
Consider a misbehaving TCP receiver. The receiver modifies its TCP such that upon receiving a data segment containing N bytes, the receiver divides the resulting acknowledgment into M, where M≤Nseperate acknowledgements each covering one of M distinct pieces of the received data segment. For e.g.
if it receives data acknowledging bytes 1 to 1000, then the receiver, for M=2 , will send 2 ACKs for 501 and 1001.

Assuming no losses and negligible packet transmission time, an expression for the sender window size during the slow start phase, in terms of n (number of RTTs) and M is ?




asked in Computer Networks by Boss (25.3k points) | 103 views
For each outgoing packet, the receiver sends back ACKs. The sender will increment the cwind by M. So if initially the window was 1, after 1 RTT the window size will be M+1. In the second RTT, the sender sends M+1 packets (the window size) and receives M(M+1) ACKs. So now the window will increase by M(M+1) and become M(M+1)+(M+1)=(M+1)^2. so after n RTTs window size will be (M+1)^n.

(this is copy pasted solution. language is simple and understanble, that's why i didn't modify it.)


please provide any source or link.


In slow start phase, sender window size increases by 1 on receiving an acknowledgement from the reciever each time. So in 1 RTT, the sender window size gets doubled its previous value in slow start phase.

Now initial sender window size= 1MSS

receiver divides the resulting acknowledgment into M

This means that in place of sending 1 ACK for a segment, the reciever sends M ACKS for a single segment.

According to the slow start alogrithm, as long as congestion window size is less than or equal to the threshold, each time  the sender recieves an ACK,it increases the congestion window size by 1. So when it recieves M acks for each segment, the congestion window size  increases by M*number of segments the sender had sent,         after each RTT.

inital congestion window size(cwnd)=1

After recieveing M acks, cwnd becomes= M+1 after 1RTT

now for these M+1 segments, sender recieves M(M+1) acks.

So cwnd after 2RTT= M+1+M(M+1)= M2+2M+1=(M+1)2

Similarly after 3RTT, cwnd= (M+1)2+M(M+1)2= (M+1)2(M+1)= (M+1)3

So after n RTTs, the sender window size will be (M+1)n.

Hence (b) is the answer.


Initially, Sender window size is 1.

Now When the sender sends the first packet, it will get 'M' acknowledgments for it.

Upon receiving each acknowledgment, Sender will increase its sender window size by 1.

So after getting 'M' acknowledgments for the first packet, the Sender's window size would be 1+M.(after 1st RTT).

Now for each of these '1+M' packets upon sending the sender will get (1+M) * M acknowledgments. (After 2nd RTT) So, 

Sender's window size will be 1+M + (1+M)*M= (1+M)2

After 3rd RTT, sender's window size would be (1+M)2 + (1+M)2 *M= (1+M)3

In general after n RTT's, (1+M)n.

An efficient way can be fixing M and n values and eliminating options.



well explained Somoshree Datta 5

Please log in or register to answer this question.


No related questions found

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,122 questions
53,242 answers
70,480 users