计算传输速度

时间:2011-04-14 08:22:02

标签: networking data-transfer

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

假设您只有一条2Mbit/s链接,距离为240,000英里。数据以每秒186,000英里的光速传播。将30kb文件从月球转移到地球需要多长时间?要传输文件,必须进行最初的2 *回程握手时间。

我该如何解决这个问题?

  

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

     

2MB = 2000Kb。

     

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

这在哪里都很近?我有一种感觉,我应该考虑以某种方式转移30Kb所需的时间,但我不确定在哪里这样做。

2 个答案:

答案 0 :(得分:1)

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

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

signle_trip_delay = 240,000 / 186,000 round_trip_delay = single_trip_delay * 2 file_sending_time = 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(文件通过链接传播)

答案 1 :(得分: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秒。

相关问题