@Asparagales

Что такое MSS (Maximum segment size), как он вычисляется, чему он равен и как его поменять?

Википедия утверждает:
MSS (англ. Maximum segment size) является параметром протокола TCP и определяет максимальный размер полезного блока данных в байтах для TCP-пакета (сегмента). Таким образом этот параметр не учитывает длину заголовков TCP и IP.
Таким образом, максимальный размер MSS = MTU — размер заголовка IP — размер заголовка TCP.
Так каждый хост требует доступности для MSS:

IPv4 — последних 536 октетов (= 576 — 20 — 20)
IPv6 — последних 1220 октетов (= 1280 — 40 — 20).


В инструкции с сайта одного из производителей сетевого оборудования говорится, что:
MSS не учитывает длину заголовков ICMP и IP. И, т.о., MSS = MTU - (заголовок IP + заголовок ICMP) = 1500 - (20 + 8) = 1472


Вот здесь сказано:
Предположим MTU 1500 байтов, вычитаем из него 20 байтов IPv4 адреса и ещё 20 байтов TCP и получаем MSS 1460 байтов. IPv6 с его удлинённым заголовком оставит для MSS всего 1440 байтов.


Я так и не понял что из чего нужно вычитать и чему в итоге равно значение MSS. И может быть кто-нибудь еще знает как его можно изменить в Windows или Linux?
  • Вопрос задан
  • 6956 просмотров
Пригласить эксперта
Ответы на вопрос 1
kotomyava
@kotomyava
Системный администратор
MSS это размер данных, без заголовков которые могут быть переданы по TCP без фрагментации.

MSS устанавливается автоматически, обычно, на основе MTU. Менять его не надо. Иногда надо менять MTU, например, при использовании туннельных протоколов.

Ограничением MTU, зачастую, является размер ethernet кадра 1526b, как наиболее распространённой среды передачи, а потом мы поднимаемся выше по OSI модели, набераем заголовков, и он уменьшается на каждом уровне.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы