Maximum segment size: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м пунктуация
Изменение 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:

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

Обычно конкретное значение MSS определяется операционной системой во время «TCP-рукопожатия» с целевым хостом исходя из значений MTU или PMTUD[англ.] (англ. Path MTU Discovery)[2].

Однако промежуточный маршрутизатор (например, имея линк с малым MTU) может подслушивать TCP SYN пакеты и подменять значения MSS, анонсируемые конечными устройствами. В результате конечные узлы "договорятся" о меньших MSS и пакеты не придётся фрагментировать.

Примечания

  1. RFC 879, page 2, Section 3, «The MSS counts only data octets in the segment, it does not count the TCP header or the IP header».
  2. PMTUD, «О PPPoE, MTU и проблеме Path MTU Discovery Black Hole».