假定要在网络上传送1.5MB的文件。设分组长度为1KB,往返时间RTT=80ms。传送数据之前还需要有建立TCP连接的时间,这需要2*RTT=160ms的时间,试计算在以下几种情况下接收方收到该文件的最后一个比特所需的时间。
(1)数据发送率为10Mbit/s,数据分组可以连续发送。
(2)数据发送率为10Mbit/s,但每发完一个分组后要等待一个RTT时间才能发送下一个分组。
(3)数据发送速率极快,可以不考虑发送数据所需的时间。但规定在每一个RTT往返时间内只能发送20个分组。
(4)数据发送速率极快,可以不考虑发送数据所需的时间。但在第一个RTT往返时间内只能发送一个分组,在第二个RTT时间内可发送两个分组,在第三个RTT内可发送四个分组(即4个分组)。
题解:
(1)M=2^20=1048576,K=2^10=1024;
1.5MB=12582912bit;
发送这些比特所需的时间=12582912/10^7=1.258s;
最后一个分组的传播时间还需要0.5×RTT=40ms;
总时间=2*RTT+1.258+0.5*RTT=1.458s;
(2)总共有分组数=1.5MB/1KB=1536;
从第一个分组到达到最后一个分组到达需要经历1535×RTT=122.8s;
总时间=1.458+122.8=124.258s;
(3)1536/20=76...16
需要76个RTT往返时间,最后一个分组需要0.5×RTT;
总时间=76×RTT+2×RTT+0.5×RTT=6.28s;
(4)经过n个RT后就发送了2^(n+1)-1个分组;
n=9,2^10-1=1023,不够;
n=10,2^11-1=2047,足够了;
总时间=2×RTT+10×RTT+0.5×RTT=1s;