2016-08-22 2 views
2

После некоторого времени поиска в Интернете я действительно смущен. Ответ прямо на моих глазах, но я до сих пор этого не понимаю! Сообщается, что:Некоторое замешательство относительно пакетов

Максимальный размер пакета - 65535 (включая заголовки пакетов), но на самом деле это не так! Это значение максимального передаточного блока (MTU)!

С точки зрения программиста, какое значение я должен учитывать? Если это значение, которое я должен учитывать, это MTU, каково минимальное значение MTU, которое когда-либо существовало в этом мире?

Еще одна вещь. Поскольку UDP использует дейтаграммы для отправки пакетов по сети, имеет максимальный размер пакета. Однако TCP передает данные как поток октетов, поэтому почему существует максимальный размер пакета? (Просто интересно) Разъяснения в комментариях ниже ✓

+0

MTU - вещь IP, а не вещь TCP. –

+0

Не отправляет ли TCP байты 1 на 1 (а не целый пакет)? – None

+0

TCP использует пакеты под капотом, чтобы обеспечить «поток байтов» для приложений. Кроме того, у нас нет способа узнать, кто бы ни сказал, что это могло означать без него. MTU и максимальный размер пакета одинаковы. –

ответ

1

От программиста точка-обзора, что значение, которое следует принять во внимание? Если это значение, которое я должен учитывать, это MTU, каково минимальное значение MTU, которое когда-либо существовало в этом мире?

С точки зрения программиста вам все равно, что происходит под капотом. Просто используйте TCP как поток байтов, поскольку это то, что TCP предоставляет программисту приложений. Постарайтесь не делать много мелких записей, хотя это может привести к неэффективному использованию сети и дополнительной задержке.

+0

Могу ли я просто отправить и количество байтов, которые я хочу? – None

+0

Да. В идеале отправьте столько, сколько у вас есть. Старайтесь не качать мелкие биты, потому что это приведет к тому, что реализация TCP будет вести себя плохо. Если вы можете отправить по крайней мере 2 КБ на каждый ход, все будет в порядке. Очевидно, если у вас меньше данных для отправки, отправьте меньше. –

+0

Итак, могу ли я просто отправить 100 КБ в один пакет, и никто ничего не может сделать? – None

Смежные вопросы