如何计算此场景中的端到端延迟

Ros*_*oss 8 networking end-to-end packet

这是我的问题:我们希望通过网络发送大小为150,000字节的消息.有四个跳,每个跳长20km,运行速度为100 Mb/s.但是,在发送之前,我们将消息拆分为1500字节的数据包.消息的端到端延迟是什么?使用铜的光速= c = 2*10 ^ 8 m/s,并将你的答案四舍五入到最接近的整数毫秒.

我到目前为止所用的是48ms,我按以下方式计算:1500字节= 12,000位12,000位/(100x10 ^ 6)[100Mb/s] = 0.00012s 20km /(2*10 ^ 8)[光速]在这个等式中] = 1e-7加起来你每跳得到0.0001201 x 4跳= 0.0004804s - > 48ms四舍五入到最接近的整数.

显然这是不正确的,我无法弄清楚我的错误.我的在线课程没有任何帮助,所以我转向SO.如果有人能直接指出我,我会很感激帮助.

Klu*_*uyg 8

编辑:

我想我终于明白了.网络拓扑如下所示:

source - link#1 - router#1 - link#2 - router#2 - link#3 - router#3 - link#4 - dest
Run Code Online (Sandbox Code Playgroud)

让我们首先从源头的角度考虑它.我们正在逐包发送消息.一旦我们将第一个数据包放在线路上,我们就会发送第二个数据包,然后发送第三个数据包,等等.将所有100个数据包放在线路上需要多长时间?

100 * 1500B * 8(b/B) / 100 Mb/s = 12 ms
Run Code Online (Sandbox Code Playgroud)

端到端延迟是将整个消息从源传输到dest所花费的时间.所以现在源只是将#100数据包放在链路#1上,让我们按照最后的数据包生命周期.对于最后一个数据包

20km/(2 * 10^8 m/s) = 0.1 ms - to get to the router#1
1500B * 8(b/B) / 100 Mb/s = 0.12 ms - to put it on the link#2
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the router#2
1500B * 8(b/B) / 100 Mb/s = 0.12 ms - to put it on the link#3
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the router#3
1500B * 8(b/B) / 100 Mb/s = 0.12 ms - to put it on the link#4
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the dest
Run Code Online (Sandbox Code Playgroud)

因此总共需要0.76 ms的最后一个数据包在它被链接到链路#1之后到达最终目的地.这给了我们最终答案:

12 ms + 0.76 ms = 12.76 ms ~= 13 ms
Run Code Online (Sandbox Code Playgroud)

原始答案:

下面显然是一个正确的答案,但我不明白为什么我们不将总和的第二部分乘以4,毕竟有4个箍.如果有人可以解释,我将非常感激.

说明

13毫秒.我们按如下方式计算端到端延迟:

4 * (1500B * 8(b/B) / 100 Mb/s + 20km/2 * 10^8 m/s)
+ (150,000/1500 - 1) * (1500 * 8 (b/B) / 100Mb/s) = 12.76 ms
Run Code Online (Sandbox Code Playgroud)

  • 我仍然认为这是正确的。在课程中也匹配说明。您认为错误在哪里? (2认同)