+1 vote
87 views
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 ?

(A)$M^n$

(B)$(M+1)^n$

(C)$M(M+1)^{n-1}$

(D)$n^M$
0
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.)
0

0
+2

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.

0

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.

0

well explained Somoshree Datta 5

1