【问题标题】:Working out transfer speed计算传输速度
【发布时间】:2011-04-14 08:22:01
【问题描述】:

刚刚看了一些旧试卷,遇到了一个我无法弄清楚的问题:

假设您有一个 2Mbit/s 链接,仅在 240,000 英里外的电线。数据以每秒 186,000 英里的光速传播。将30kb 文件从月球传输到地球需要多长时间?要传输文件,必须进行初始的 2*Round Trip Time 握手。

我该如何解决这个问题?

240,000/186,000 = 1.29...秒 * 2 = 2.58 秒 = 2 * 往返时间。

2MB = 2000Kb。

30/2000 = .015 秒 + 2.58 = 2.595 秒。

这附近有吗?我觉得我应该考虑以某种方式传输 30Kb 所需的时间,但我不确定在哪里执行此操作。

【问题讨论】:

  • 嗯,这也有点取决于传输的方法!一些传输方法会执行“我发给你这个”“谢谢,我知道了”,所以往返时间是相关的,对于每个块,与其他方法一样,“我要给你发送日期”“好的,我准备好了” “给你......”“完成,谢谢”,所以不要在整个过程中握手。
  • 有人可以帮忙把“2MB”改成“2Mb”吗?这很令人困惑,因为网络中的 B 通常表示“字节”,而在这种情况下需要“位”。

标签: networking data-transfer


【解决方案1】:

是的,您的答案非常接近。如果我们忽略 2*Round Trip 时间握手(您已经计算正确,因此您可以稍后添加)答案的最后部分如下。

正如你所说,从这里发送的数据到达月球需要 240.000/186.00 = 1.29 秒。因为所有数据都以尽可能快的速度在线(所以以 2MB/s 的速度),在这 1.29 秒之后,最后一位到达只需要 30kb/2000kb/s = 0.015 秒。 (想象一个赛道,有 3 辆车在彼此后面行驶,它们一直紧跟在后面,但它们不会互相超车,最后一辆车将比第一辆车晚 x 秒到达 B 点。这是路线的所有部分都相同)。

所以数据在 1.29 + 0.015 秒 = 1.305 秒内被完全接收。

现在添加您的往返握手时间(2.58 秒),总时间为 3.885 秒。

【讨论】:

  • 感谢您的建议,已经更新,对我的粗心感到抱歉。问候:-)
【解决方案2】:

我认为你应该将文件发送时间加倍,因为在另一端接收文件的成本相同。

此外,通过链接传输文件也需要时间。这里的“2Mb”表示将文件从本地发送到链接所需的时间。所以我认为至少你的方程应该是这样的:

signle_trip_delay = 240,000/186,000 round_trip_delay = single_trip_delay * 2 文件发送时间 = 30/2000 file_receiving_time_at_the_other_end = 30/2000

time = round_trip_delay(握手)+ file_sending_time + file_receiving_time + single_trip_delay(文件通过链接)

更新: 无需考虑 file_receiving_time。对不起我的粗心。 现在 time = round_trip_delay(握手)+ file_sending_time + single_trip_delay(文件通过链接)

【讨论】:

  • 不,您不应该将发送时间加倍,请参阅我的“汽车”示例回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
  • 2011-05-16
  • 2011-03-09
  • 2021-02-01
  • 1970-01-01
相关资源
最近更新 更多