计算机网络(习题2)

原题为中国MOOC哈工大《计算机网络课程》的第二章作业题,老师讲的很好,推荐去看一下。
对了,声明一下,这是我自己的结果,我不认为我一定是对的,我也是第一次学,欢迎探讨。

题目一:

考虑两台主机A和主机B由一条带宽为R bps、长度为D米的链路互连,信号传播速率为V m/s。假设主机A从t=0时刻开始向主机B发送分组,分组长度为L比特。

试求:

  1. 链路传播延迟(时延)dp;
  2. 每个分组的传输延迟dt;
  3. 若忽略结点处理延迟和排队延迟,则一个分组从A到B的端到端延迟de是多少?
  4. 若dp>dt,则t=dt时刻,分组的第一个比特在哪里?
  5. 若V=200000 km/s,L=512比特,R=100 Mbps,则使带宽时延积刚好为一个分组长度(即512比特)的链路长度D是多少?
    (注:1k=103,1M=106)

1)传播时延dp=D/V,为分组在链路上传播所需要的时间

2)传输时延dt=L/R,为分组通过路由器上链路所需要的时间

3)端到端时延de=dp+dt,在这里由于没有考虑处理时延和排队时延,端到端时延实际上就是传播时延+传输时延

4)比特位于传输线路上,这个时候,第一个分组还没有到达B主机,所以所在位置是V*t

5)带宽时延为R*dp,带入可得D=1024m

题目二

如下图所示网络,主机A通过路由器R1和R2连接主机B,三段链路带宽分别是100kbps、2Mbps和1Mbps。假设A以存储-转发的分组交换方式向B发送一个大文件。
在这里插入图片描述

请回答下列问题:

  1. 假设网络没有其他流量,则传送该文件可以达到的最大吞吐量是多少?
  2. 假设文件大小为4MB,则A传输该文件到主机B大约需要多少时间?
  3. 分组在路由器中会发生排队吗?如果会,会在哪个路由器排队?如果不会,为什么?
    (注:1k=103,1M=106)

解:

1)如果没有其他流量,说明文件可以独占整个链路,此时他的最大吞吐量便是由带宽最小的链路决定的,即100kbps

2)假设不考虑传输时延的话,并且分组的首部开销可以忽略,那么当第一个分组上传到R1的时候,
会直接传送到R2(因为R2比R1快,所以R1不需要排队等待),然后计算最后一个分组到达R2的时间,
再计算最后一个分组需要等待的时间,加上最后一个分组到达B的时间即可,
公式为:假设分组大小为xMB
①第一个分组上传到R1的时间为x*8/1
②第二个分组上传到R1的时间为x*8*2/1,而第一个分组在x*8/1+x*8/2的时候已经到达了R2,
即第二个分组还没有到达R1的时候,第一个分组已经开始向B传输数据
③第三个分组上传到R1的时间为x*8*3/1,而第一个分组完全传播到B需要在x*8/1+x*8/2+x*8/0.1,
说明即便第三个分组已经上传到了R1,第一个分组还没有完全传播到B
④最后一个分组上传到R1的时间为4*8/1,这个时候,倒数第二个分组已经到达了R2,但在排队
⑤最后一个分组上传到R2的时间为4*8/1+x*8/2,这个时候,他也进入排队了
⑥而此时,距离第一个分组上传到R2,开始向B传输的时间,已经过去了4*8/1+x*8/2-x*8/1-x*8/2=32-8*x秒,
说明已经从R2向B传输了0.1*(32-8*x)大小的M比特,但我们仍不能确定第一个分组有没有完全传播到B
⑦但我们可以确定的是,在R2排队的有4*8-0.1*(32-8*x)大小的M比特,其中包括了最后一个分组,那么,
这些比特完全传播到B所需要的时间,就是最后一个分组的等待时间+传播时间,
即:
(4*8-0.1*(32-8*x))/0.1
⑧而我们所要求的端到端的时间,就是最后一个分组上传到R2的时间+排队中的分组完全传播到B所需要的时间,
即:
t=4*8/1+x*8/2+(4*8-0.1*(32-8*x))/0.1=320+12*x秒
⑨也就是说,传播的时间和分组的大小有关

3)会发生排队,会在R2路由器排队​

关于第二题的第二小问,我自己也不相信我的答案,直到我做了一个测试
我假设分组的大小为1MB,即x=1,那么根据公式,计算结果应该是332秒,然后,在excel表格中进行模拟,得到如下结果,因为太长,分成了两段:
在这里插入图片描述
在这里插入图片描述
由于分组大小为1MB,所以只有4个分组,分别对应4行,蓝色为从A到R1的时间,棕色为从R1到R2的时间,绿色为从R2到B的时间。
可以看到,对于第一个分组,一切都是顺序进行的,但他仍然需要92秒才能够完全传播到B,公式为

第一分组:1*8/1+1*8/2+1*8/0.1=8+4+80=92

第二分组需要在第一分组开始离开R1的时候才能够进行传输,如图所示,但是,由于第一分组在从R2传播到B的过程太慢,所以第二分组需要在第一分组完全传输到B,即92秒之后才能够从R2向B进行传输。
第三第四分组同理
从图中可以得到,四个分组完全传播完的时间为332秒,和我们的公式结果一致。

最后再说一句,我不认为我是对的,我也觉得这个答案非常神奇,但的确是我算出来的答案,欢迎讨论,但不欢迎杠精,谢谢。

2020.3.10更新

看了老师给出的答案,第二大题的第二问老师直接使用了第一问得到的最大吞吐量,计算出了文件的大概传输时间是
4x8x106/100x103=320s
这是一个估计的数值(应该是),因为很明显如果只用最大吞吐量的话,相当于只连接了一条线,所以线与线之间的连接处等所需要的时间就没有被计算。
当然,我给出来的公式也不能说是错的,因为在现实中,分组的大小一般为几百个比特,即对应公式中的x的数量级为10^-3以下,所以计算出的结果近似为320s。

应该可以说我考虑的更多了一些,计算出来了一个精确而非估计结果吧。

你可能感兴趣的:(计算机网络)