Максимальная длина TCP пакета в сети
От: AlexGin Беларусь  
Дата: 10.02.20 08:40
Оценка:
Доброе время суток, уважаемые коллеги!

Имеется вот нейкая сетевая структура, где сервер и клиент связаны по TCP.
Межде сервером и клиентом поддерживается постоянное соединение (OS: Linux Ubuntu).
Предполагается, что эти сервер и клиент — отдельные машинки локальной сети.

Вопрос: какова максимальная длина пакета, который НЕ будет разбиваться сетью на более мелкие пакеты?
Правильно ли я понимаю, что эта длина определяется параметром MTU (когда вызываем команду ifconfig или netstat -ie в Linux)?

Вот откуда инфа:
https://stackoverflow.com/questions/2613734/maximum-packet-size-for-a-tcp-connection

Вопросы:
MTU равный примерно 1.5 KBytes — это для произвольных данных?
Для текстовых данных этот показатель порядка 14 KBytes. Почему различие почти в десять раз?
ПРИМЕЧАНИЕ:
Данные насчёт показателя равного 14 KBytes (для текстовых данных) — взяты отсюда:
https://tylercipriani.com/blog/2016/09/25/the-14kb-in-the-tcp-initial-window

Для общего случая — следует ориентироваться значением 1.5 KBytes.

Насколько вероятна ситуация, что поменяется порядок следования пакетов? То есть — переданный в сеть позже, появится на приёме раньше.

Вышеуказанные данные получены экспериментально.
При работе без сети (local-loopback) — просто на 127.0.0.1 — максимальная длина TCP пакета намного больше. Порядка 64 KBytes.

P.S. Конечно же, я предусмотрел на стороне приёма, накопление сегментов_пакета — восствновление исходного пакета.
Оно основано на поиске 32-х битного маркера конца пакета.

Но меня интересует вопрос — как сеть дробит пакеты TCP?
Как защититься от изменения порядка следования пакетов?

Заранее благодарен за любые подсказки!
Отредактировано 12.02.2020 8:16 AlexGin . Предыдущая версия . Еще …
Отредактировано 11.02.2020 12:34 AlexGin . Предыдущая версия .
Отредактировано 11.02.2020 12:33 AlexGin . Предыдущая версия .
Отредактировано 10.02.2020 8:42 AlexGin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.