Разработка скорости передачи - PullRequest
0 голосов
/ 14 апреля 2011

Только что просмотрел несколько старых экзаменационных работ и натолкнулся на вопрос, который я не могу понять:

Предположим, у вас есть только 2Mbit/s ссылка на провод, который находится в 240 000 миль. Данные передаются со скоростью света, которая составляет 186 000 миль в секунду. Сколько времени занимает передача файла 30kb с Луны на Землю? Для передачи файла должно произойти начальное 2 * Время прохождения туда-обратно рукопожатия.

Как мне это решить?

240 000/186 000 = 1,29 ... с * 2 = 2,58 сек = 2 * Время туда и обратно.

2 МБ = 2000 КБ.

30/2000 = 0,015 сек + 2,58 = 2,595 сек.

Это где-нибудь близко? У меня есть ощущение, что я должен учитывать время, необходимое для передачи 30Kb, но я не уверен, где это сделать.

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

Да, ваш ответ очень близок.Если мы проигнорируем рукопожатие 2 * Round Trip Time (которое вы уже правильно рассчитали, так что вы можете добавить его позже), последняя часть ответа будет выглядеть следующим образом.второй для данных, отправленных отсюда, чтобы достичь луны.Поскольку все данные помещаются в линию как можно быстрее (т. Е. Со скоростью 2 МБ / с), через эти 1,29 секунды потребуется только 30 КБ / 2000 КБ / с = 0,015 секунды для получения последнего бита.(Подумайте о гоночной трассе с 3 автомобилями, движущимися друг за другом, которые продолжают двигаться близко друг к другу, но они не обгоняют друг друга, последняя машина будет двигаться в точке B ровно через x секунд после первой машины. Этото же самое для всех частей маршрута).

Таким образом, данные будут полностью получены за 1,29 + 0,015 секунды = 1,305 секунды.

Теперь добавьте время подтверждения соединения (2,58 с)общее время составляет 3,885 секунды.

1 голос
/ 14 апреля 2011

Я думаю, вам следует удвоить время отправки файла, учитывая, что получение файла на другом конце стоит столько же.

Кроме того, для передачи файла по ссылке также требуется время.'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_ длявстряхивание) + file_sending_time + file_receiving_time + single_trip_delay (файл перемещается по ссылке)

ОБНОВЛЕНИЕ: не нужно принимать во внимание file_receiving_time.Извините за мою невнимательность.Теперь время = round_trip_delay (для рукопожатия) + file_sending_time + single_trip_delay (файл перемещается по ссылке)

...