311 views

On any given Sunday, Sam initiates a connection with his girlfriend Alice in order to plan out what movie they’re going to watch on Tuesdays with Morrie. This Sunday, immediately after Sam initiates the connection, Alice decides to send him a 60 KB picture using TCP. Assuming she sends the picture in 2500 byte segments including a 50-byte header over a 2 Mbps link with a propagation delay of 30 ms, what is the total time difference between when Sam initiates the connection to when Alice receives the last ACK? The TCP implements a slow-start mechanism with an initial congestion window of 1. Neglect queuing and processing delays at both the sender and receiver, and assume there are no losses.

Tprop be one-way propagation delay,

Ttrans be transmission time of one 2500 byte packet,

Tprop = 30 ms

Ttrans = (2500 bytes * 8bits/byte)/(10^6 bits/second) = 10 ms

T3-way handshake = 3 * Tprop = 90ms

Size of application data in a TCP packet = size of TCP segment – size of header = 2450 bytes.

Number of packets needed to transfer a 60 KB file = (60*1000)/2450 = 25

Hence, the window size grows as 1, 2, 4, 8, 10

Hence, the total time to transfer the packet after the 3-way handshake is:

Tdata = 25 packets transmission time + 5 * 2*propagation time

= 25 * 10 ms  + 300 ms

= 250 ms + 300 ms

= 550 ms

Hence, total time to transfer = T3-way-handshake + Tdata = 90 ms + Tdata ms = 640 ms

Why does congestion window grow to 10 after being 8? Shouldn’t it be 16 after 8?

1 – 2450

2 – 2 * 2450

4 – 4 * 2450

8 – 8 * 2450

total till now 2450(1+2+4+8) = 36750 Bytes

left over = 60000 – 36750 = 23250 Bytes

so required  23250 / 2450 = ceil(9.4890) = 10 more Mss of 2450 bytes data .

So there is no need to send 16 Mss, 10 will work fine.