《计算机网络(第七版)谢希仁 编著》部分课后答案

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^{2}=4个分组)

 

注:题目的条件中的M=2^{20}=1048576=约等于10^{6},K=2^{10}=1024=约等于2^{3},1B=1字节=8bit=8b


解答:

(1)发送这些比特所需时间=1.5×2^{20}×8bit/(10×10^{6}bit/s)=1.258(s) 最后一个分组传播到达目的地还需要0.5×RTT=40ms时间。总共需要的时间=2×RTT+1.258+0.5×RTT=0.16+1.258+0.04=1.458(s)

(2)需要划分的分组数=1.5MB/1KB=1536

建立时间:2xRTT = 0.16(s)

总的发送时间:仍是1.258(s)

最后一个分组传播到达目的地需要:0.5×RTT=40(ms)=0.04(s)(二分之一往返时间)

从第一个分组最后一个比特到达 直到最后一个分组第一个比特 到达需要经历:1535×RTT=1535×0.08=122.8(s)

总共需要的时间=0.16+1.258+0.04+122.8=1.458+122.8=124.258(s)

(3)在每一个RTT往返时间内只能发送20个分组。1536个分组,需要76个整的RTT,76个RTT可以发送76×20=1520个分组,最后剩下16个分组,一次发送完。但最后一次发送的分组到达接收方也需要0.5×RTT。

因此,总共需要的时间=2×RTT+76×RTT+0.5×RTT=6.12+0.16=6.28(s)

(4)在两个RTT后就开始传送数据。

经过n个RTT后就发送了1+2+4+…+2n=2^{n+1}-1个分组。

若n=9,那么只发送了2^{10}-1=1023个分组。可见9个RTT不够。

若n=10,那么只发送了2^{11}-1=2047个分组。可见10个RTT足够了。

这样,考虑到建立TCP连接的时间和最后的分组传送到终点需要的时间,现在总共需要的时间=(2+10+0.5)×RTT=12.5×0.08=1(s)

  • 52
    点赞
  • 174
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值