求解一道计算机网络的题
如图所示,主机A和主机B通过路由器A和路由器B相连,其中主机A和路由器A之间的链路带宽为100Mb/s,路由器A和路由器B之间的链路带宽为10Mb/s,路由器B和主机B之间的链路带宽为1Mb/s。主机A和主机B之间所经过的链路总长度为1000km,电磁波在信道中的传播速率为2.0 x 10^5 km/s。现在主机A要向主机B发送10MB的数据,假设整个链路中没有其他数据,在不考虑处理时延的情况下,分别计算采用以下两种交换方式时所需要的总时延为多少?(以毫秒为单位,最终结果精确到小数点后2位)
1)整个数据作为一个报文发送(首部额外开销忽略不计);
2)把数据分成1KB的分组发送(分组中包含24B的额外开销);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1)从主机A发送报文的第一个bit到路由器A接收到报文的第一个bit的时间,是第一段链路的传播时延,设为t1;从路由器A接收到报文的第一个bit到路由器A接收完整个报文的时间,与从主机A发送报文的第一个bit到主机A发送完报文的最后一个bit的时间是相同的,也就是主机A的发送时延:10*2^20*8 bit /(100*10^6bit/s)=0.8388608s=838.8608ms。由于整个链路中没有其他数据,不会产生排队时延,且不考虑处理时延,则路由器A在经过(838.8608 + t1)ms后开始发送报文。与前面的分析类似,第二段链路的传播时延设为t2,路由器A的发送时延为8388.608ms,于是路由器B在经过(8388.608+838.8608+ t1+ t2)ms后开始发送报文。假设第三段链路的传播时延设为t3,路由器B的发送时延为83886.08ms。于是,在经过(83886.08+8388.608+838.8608+ t1+ t2+ t3)ms后,主机B接收完整个分组。而t1+ t2+ t3 = 1000km/(2.0 x 105 km/s)=5ms,所以总时延为83886.08+8388.608+838.8608+5=93118.55ms。
2)1 KB(1 KB=1024 B)的分组中含有24B的额外开销,则每个分组中的数据部分大小为1000 B,那么10MB的报文要分成10*2^20/1000 = 10485.76个分组,则可知一共分成10486个分组,其中最后一个分组大小为760 B + 24 B = 784 B。
从主机A发送第一个分组的第一个bit到路由器A接收到第一个分组的第一个bit的时间,是第一段链路的传播时延,设为t1;从路由器A接收到第一个分组的第一个bit到路由器A接收完整个分组的时间,与从主机A发送第一个分组的第一个bit到主机A发送完第一个分组的最后一个bit的时间是相同的,也就是主机A发送第一个分组的发送时延:1024*8 bit /(100*10^6bit/s)=0.00008192s=0.08192ms。由于整个链路中没有其他数据,则第一个分组在进入路由器A时不需要在输入队列中进行排队;由于不考虑处理时延,接收完毕的第一个分组会马上进入路由器A的输出队列进行转发;由于在第一个分组之前没有其他分组,所以第一个分组在路由器A的输出队列中也不需要排队。这样,第一个分组被路由器A接收完毕后会在同一时间发送给路由器B,而路由器A也在同一时间开始接收主机A发送过来的第二个分组。设路由器A到路由器B的传播时延为t2;路由器A发送第一个分组的发送时延是1024*8 bit /(10*10^6bit/s)=0.0008192s=0.8192ms,而路由器A接收第二个分组的时间是0.08192ms,接收第二个分组的时间比发送第一个分组的时间短,这样从第二个分组开始,路由器A的输出队列就会产生排队的现象。同样,在路由器B中,从第二个分组开始,路由器B的输出队列中就会产生排队的现象。设路由器B到主机B的传播时延是t3,这样,经过(0.08192+ t1+0.8192+ t2+ t3)ms后,主机A的第一个分组的第一个bit到达主机B。这就好比有一个大孔径的漏斗,把沙子漏到一个小孔径的漏斗里,小孔径的漏斗把沙子漏到一个孔径更小的漏斗里,而所有沙子漏完的时间是由孔径最小的漏斗决定的。主机B从接收第一个分组的第一个bit开始,到接收完最后一个分组的最后一个bit,以1Mb/s的速率连续接收了(10485*1024+784)*8 = 85899392 bit的数据,时间为85899392 b /(10^6 b/s) = 85.899392 s = 85899.392ms。由第一问可知,t1+ t2+ t3 = 5ms,所以,采用分组转发的总时延为85899.392 + 5 + 0.8192 + 0.08192 = 85905.29 ms。