Maximum Segment Size

Maximum Segment Size (pol. Maksymalny rozmiar segmentu) – parametr protokołu TCP, który określa maksymalny rozmiar użytecznego bloku danych w bajtach pakietu (segmentu) TCP. Dlatego ten parametr nie uwzględnia długości nagłówków TCP i IP[1]. Aby nawiązać poprawną sesję TCP ze zdalnym hostem, musi zostać spełniony następujący warunek:

  • MSS + nagłówek TCP + nagłówek IP ≤ MTU Zatem maksymalny rozmiar MSS = MTU – Rozmiar nagłówka IP – Rozmiar nagłówka TCP.

Zatem każdy host wymaga dostępności usługi MSS:

  • IPv4  - ostatnie 536 oktetów (= 576 - 20 - 20)
  • IPv6  - ostatnie 1220 oktetów (= 1280 - 40 - 20).

Zwykle konkretna wartość MSS jest określana przez system operacyjny podczas „uzgadniania TCP” z hostem docelowym w oparciu o wartości MTU lub PMTUD (ang. Path MTU Discovery)[2].

Jednak router pośredni (na przykład posiadający łącze o małej MTU) może podsłuchiwać pakiety TCP SYN i przesłaniać wartości MSS ogłaszane przez urządzenia końcowe. W rezultacie węzły końcowe „zgodzą się” na mniejsze MSS i pakiety nie będą musiały być fragmentowane.

Przypisy edytuj

  1. RFC 879 - The TCP Maximum Segment Size and Related Topics [online], web-archive-org.translate.goog, 11 listopada 2020 [dostęp 2023-10-24].
  2. OpenNET: статья - О PPPoE, MTU и проблеме Path MTU Discovery Black Hole (pppoe mtu) [online], web-archive-org.translate.goog, 11 lipca 2018 [dostęp 2023-10-24].