Maximum segment size: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Unterwulf (обсуждение | вклад) м пунктуация |
Poherless (обсуждение | вклад) Изменение MSS промежуточными маршрутизаторами. |
||
Строка 11: | Строка 11: | ||
Обычно конкретное значение MSS определяется [[Операционная система|операционной системой]] во время «TCP-рукопожатия» с целевым хостом исходя из значений MTU или {{нп5|Path MTU Discovery|PMTUD}} ({{lang-en|Path MTU Discovery}})<ref>[http://www.opennet.ru/base/net/pppoe_mtu.txt.html PMTUD], «О PPPoE, MTU и проблеме Path MTU Discovery Black Hole».</ref>. |
Обычно конкретное значение MSS определяется [[Операционная система|операционной системой]] во время «TCP-рукопожатия» с целевым хостом исходя из значений MTU или {{нп5|Path MTU Discovery|PMTUD}} ({{lang-en|Path MTU Discovery}})<ref>[http://www.opennet.ru/base/net/pppoe_mtu.txt.html PMTUD], «О PPPoE, MTU и проблеме Path MTU Discovery Black Hole».</ref>. |
||
Однако промежуточный маршрутизатор (например, имея линк с малым MTU) может подслушивать TCP SYN пакеты и подменять значения MSS, анонсируемые конечными устройствами. В результате конечные узлы "договорятся" о меньших MSS и пакеты не придётся фрагментировать. |
|||
== Примечания == |
== Примечания == |
Версия от 16:49, 10 сентября 2019
MSS (англ. Maximum segment size) является параметром протокола TCP и определяет максимальный размер полезного блока данных в байтах для TCP-пакета (сегмента). Таким образом этот параметр не учитывает длину заголовков TCP и IP[1].
Для установления корректной TCP-сессии с удалённым хостом должно соблюдаться следующее условие:
- MSS + заголовок TCP + заголовок IP ≤ MTU
Таким образом, максимальный размер MSS = MTU − размер заголовка IP − размер заголовка TCP.
Так каждый хост требует доступности для MSS:
Обычно конкретное значение MSS определяется операционной системой во время «TCP-рукопожатия» с целевым хостом исходя из значений MTU или PMTUD[англ.] (англ. Path MTU Discovery)[2].
Однако промежуточный маршрутизатор (например, имея линк с малым MTU) может подслушивать TCP SYN пакеты и подменять значения MSS, анонсируемые конечными устройствами. В результате конечные узлы "договорятся" о меньших MSS и пакеты не придётся фрагментировать.