计算机网络的,计算吞吐量的

img


10mb 除以 500k 不是20s么,为啥答案是42s

首先,20s肯定是错的, 速度是500kbit每秒,注意是bit,所以就算是走500k那条链路,时间也应该再乘以8.
如果根据答案反推,我觉得三条链路是并行,可以选择其中一条,所以就算10M / 2M * 8=40s,但答案是42s,可能是考虑到网络协议字段的消耗吧,但怎么来的就不清楚了,题目都说了是大约,干嘛要算这么精确,有点莫名其妙。

1、三条线路,根据开销值会自动选择最优路径,选择2M带宽链路;
2、数据10M,如楼上所说需要加上包头开销。IP包头20字节,TCP包头20字节,数据帧头26字节(7字节前导同步吗+1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+4字节的CRC校验)。IP包MTU1500字节,出去40字节的IP包头和TCP包头。一个报文可以传输1460字节。总共需要传送的流量是10M1526/14608/2M≈41.8秒,当然实际上传输报文前还需要进行TCP三次握手,断开连接还会4次挥手。所以约等于42秒。

我觉得这道题有问题,按照一般的理解,“有三段”这种说法,一般会理解为一条链路有三段,是串联的关系,而不是三条并行的链路。即使按出题人的意思,三条链路并行,实际上的传输,是可以多路传输的,可以叠加带宽的,也不应该是那个答案。