1-28 假定要在网络上传送1.5MB的文件。设分组长度为1KB,往返时间RTT=80ms。传送数据之前还需要有建立TCP连接的时间,这时间是2×RTT=160ms。试计算在以下几种情况下接收方收完该文件的最后一个比特所需的时间。
(1)数据发送速率为10Mb/s,数据分组可以连续发送。
(2)数据发送速率为10Mb/s,但每发送完一个分组后要等待一个RTT时间才能再发送一个分组。
(3)数据发送速率极快,可以不考虑发送数据所需的时间。但规定在每一个RTT往返时间内只能发送20个分组。
(4)数据发送速率极快,可以不考虑发送数据所需的时间。但在第一个RTT往返时间内只能发送一个分组,在第二个RTT内可发送两个分组,在第三个RTT内可发送四个分组(即 2 3 − 1 2^{3-1} 23−1= 2 2 2^2 22=4个分组)
题解
(1)TCP建立时间
t
0
t_0
t0=2
×
\times
×RTT=0.16s
发送全部比特所需时间
t
1
t_1
t1=1.5×
2
20
2^{20}
220×8 bit /(10×
1
0
6
10^6
106 bit/s)=1.258(s)
最后一个分组传播到达目的地需要
t
2
t_2
t2 =0.5×RTT=40ms=0.04s
总共需要的时间
t
总
t_总
t总 =
t
0
t_0
t0+
t
1
t_1
t1+
t
2
t_2
t2=1.458(s)
(2)需要划分的分组数 s=1.5MB / 1KB=1.5 × \times × 2 10 2^{10} 210 KB / 1KB=1536
TCP建立时间
t
0
t_0
t0=2
×
\times
×RTT=0.16s
发送全部比特所需时间
t
1
t_1
t1=1.5×
2
20
2^{20}
220×8 bit /(10×
1
0
6
10^6
106 bit/s)=1.258(s)
最后一个分组传播到达目的地需要
t
2
t_2
t2 =0.5×RTT=40ms=0.04s(二分之一往返时间)
从第一个分组最后一个比特到达 直到最后一个分组第一个比特 到达需要时间
t
3
t_3
t3 =(s-1)
×
\times
×RTT= 1535×RTT=1535×0.08=122.8(s)
总共需要的时间 t 总 t_总 t总 = t 0 t_0 t0+ t 1 t_1 t1+ t 2 t_2 t2+ t 3 t_3 t3=0.16+1.258+0.04+122.8=1.458+122.8=124.258(s)
(3)TCP建立时间 2
×
\times
× RTT,在两个RTT后就开始传送数据。在每一个RTT往返时间内只能发送20个分组。1536个分组,需要76个RTT,76个RTT可以发送76×20=1520个分组,最后剩下16个分组,一次发送完。
但最后一次发送的分组到达接收方也需要0.5×RTT。
因此,总共需要的时间 t 总 t_总 t总=2×RTT+76×RTT+0.5×RTT=6.12+0.16=6.28(s)
(4)TCP建立时间 2
×
\times
× RTT,在两个RTT后就开始传送数据。
共 1536个分组
经过n个RTT后就发送了 1+2+4+…+ 2 n − 1 2^{n-1} 2n−1= 2 n 2^n 2n-1个分组。
若n=10,那么只发送了 2^n-1=1023个分组。
若n=11,那么只发送了 2^n-1= 2047个分组。
10个RTT可以发送1023个分组,最后剩下1536-1023=513个分组,一次发送完。
但最后一次发送的分组到达接收方也需要0.5×RTT。
这样,考虑到建立TCP连接的时间和最后的分组传送到终点需要的时间,(最后一次,不考虑返回)现在总共需要的时间 t 总 t_总 t总=(2+10+0.5)×RTT=12.5×0.08=1(s)