Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Сообщество системных администраторов Litl-Admin.ru За какое время будет передан файл размером … если скорость соединения …


Ссылка на материал

Всем привет! В заголовке весьма популярная задачка по Информатике, которая, к сожалению, не так уж и проста. Сейчас объясню.

Пуст мы имеем следующее условие:

Вася принимает файл размером 2 мегабайта по каналу 56 Кбит/с. За какое время Вася получит файл?

Школьники тут же кинулись вычислять 2 * 1024 Кб = 2048 Кбайт * 8 = 16384 Кбит / 56 Кбит/с = 292секунды. И их возможно похвалят, где-нибудь на информатике в классе. Но мы-то знаем, что дело нечисто.

Я сейчас начну, всё станет понятно. Предположим, что Вася получает файл по самому простому протоколу UDP…. Догадались?

  1. Предположим, что у нас используется весьма стандартный MTU (Maximum Transfer Unit) = 1538 байт, то есть максимальный объём, который может быть передан по Ethernet в одну итерацию.
  2. Вычитаем преамбулу и разделитель в 20 байт.
  3. Отнимаем заголовок канального уровня в 14 байт. Сюда входят MAC-адреса источника и назначения, а так же тип протокола вышестоящего уровня.
  4. Отнимаем контрольную сумму в 4 байта.
  5. Отнимаем заголовок протокола IP в 20 байт. Здесь информация об IP адресах и т.д. (см. RFC)
  6. Отнимаем заголовок протокола UDP в 8байт. Здесь порты, размер и контрольная сумма.

Итого, полезная нагрузка одного фрейма у нас 1538 – 20 – 14 – 4 – 20 – 8 =1472 байта полезной нагрузки!

Прикинем, в какое количество фреймов у нас влезет файл (без учёта дополнительных издержек) только полезная нагрузка.

2,097,152 байт / 1472 =1424 фрейма. Теперь рассмотрим, какой объём будут занимать эти фреймы при нашем MTU:

1424 * 1538 =2,190,112 байт. Теперь передадим этот объём данных по указанному каналу связи. Простые вычисления привели меня к числу305 секунд. А это на целых 13 секунд дольше, чем при примитивных расчётах.

700

Такая вот сетевая арифметика. Все замечания прошу обсудить в комментариях.

P.S. В литературе можно встретить различные значения MTU, но результирующее значение от этого исказится ненамного.



В избранное