Назад | Перейти на главную страницу

Меньшие сетевые пакеты против больших пакетов - запутано

Некоторые говорят, что лучше отправлять большие пакеты, чем меньшие.

Но в этом приложении: http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/message/messagesegmentation.html

Чем меньше размер пакета, тем меньше времени требуется для достижения пункта назначения. Так что я не понимаю, почему я предпочитаю больший размер? Не могли бы вы мне это объяснить? Спасибо

Есть много вещей, которые нужно учесть. Важными из них являются:

MTU

MTU определенного носителя определяет размер самого большого пакета, который может быть отправлен по нему. В Интернете это обычно 1500 байтов, хотя это может варьироваться, если задействованы другие технологии, такие как PPPoA. Если необходимо отправить данные, превышающие MTU, они будут фрагментированы на несколько пакетов - это займет время.

Накладные расходы

Все, что вы передаете, имеет накладные расходы - обычно это метаданные, описывающие то, что вы отправляете. Одновременная отправка больших объемов данных снижает эти накладные расходы и, следовательно, необходимую пропускную способность сети.

Неудачи

В зависимости от используемых вами протоколов вы можете обнаруживать и компенсировать потерянные пакеты. Если за один раз отправляются большие объемы данных, в случае сбоя их нужно повторно отправить. Точно так же, если отправляются меньшие объемы данных, увеличивается вероятность сбоя.

Требование

От клиентских приложений может требоваться быстрое или массовое получение данных. Например, для потоковой передачи видео требуется, чтобы небольшой объем данных как можно быстрее начал воспроизводиться. Системы обмена сообщениями, такие как IRC, не могут отображать сообщение, пока оно не будет полностью получено. Таким образом, потоковая передача видео подходит для пакетов меньшего размера, а обмен сообщениями - для пакетов большего размера.

Протокол

Протокол, который вы используете, определяет размер данных для отправки. Например, с TCP, если у вас небольшой размер окна, у вас будет больше накладных расходов на подтверждения. Если у вас был большой размер окна, у вас возникла проблема с ошибкой повторной отправки, упомянутой выше.

Автомобиль может передвигаться по стране быстрее грузовика. Но если вам нужно доставить две тонны тыкв из Нью-Йорка в Лос-Анджелес, грузовик выполнит эту работу намного быстрее, чем автомобиль. Зачем? Потому что грузовик, хотя и медленнее, везет больше и, следовательно, требует меньше поездок.

Для таких вещей, как VoIP-телефоны и обмен мгновенными сообщениями, вам нужны пакеты меньшего размера. Они путешествуют быстрее, но несут меньше данных. Вам понадобится их больше, но каждая отдельная деталь будет доставлена ​​быстрее.

Это оптимизирует задержку - сколько времени требуется, чтобы отдельное слово или звук добрались до места назначения.

Пакеты большего размера оптимизируют пропускную способность - сколько времени требуется для доставки всего набора информации. Это полезно для таких вещей, как передача файлов, когда наличие части файла не приносит вам пользы. Вы ничего не можете сделать, пока не получите все это.

VOIP, в частности, использует пакеты меньшего размера. Если вы подождете, пока у вас будет много данных для отправки, передача будет быстрее с момента начала отправки до момента, когда вы закончите, но парень на другом конце ничего не услышит, пока вы не закончите свое предложение и не начнете его отправлять.

Это довольно просто, у каждого пакета есть служебные данные. Время, необходимое для передачи пакета, зависит от его размера и задержки в сети.

Таким образом, один небольшой пакет быстрее всего попадет в пункт назначения. Но если у вас есть много данных для отправки, накладные расходы на множество небольших пакетов будут значительными. Если вы отправляете меньше пакетов большего размера, накладные расходы останутся небольшими, а общая передача будет быстрее.

Подвести итоги:

  • Для небольшого общего объема данных самый быстрый небольшой пакет
  • Для большого объема данных быстрее всего используются большие пакеты