Чим відрізняється MSS від MTU?


33

Мене бентежить різниця між максимальним розміром сегмента і максимальним блоком передачі.

Чи може хтось пояснити, будь ласка, стосовно шарів 2 та 3?

Якби я мав пакет із 800 байтів у корисному навантаженні. Чи було б правильно сказати, що MSS складе 800 байт (якби я встановив це так), а MTU - 840? TCP 20 і IP 20 байт. Чи було б інакше, якби я робив PPPoE?


Хоча це не суворо кажучи, дублікат, відповідь на це питання також може відповісти на ваше запитання.
YLearn

Відповіді:


19

В додаток. Значення MSS походить від значення MTU , якщо у вас є 800-байтний пакет, він також може сказати, що такий пакет спочатку був 2260 байт, і він розбив на 2 пакети 1460 + 800 байт, якщо ми використовуємо MTU = 1500.
Ви Скажімо, це правда, якщо MSS = 800, MTU має бути не менше 840. Оскільки накладні витрати PPPoE - це 8 байт, а отже, MTU = 1492 байти, а MSS = 1492-40 = 1452 байт.


28

MTU - максимальний розмір пакета IP для даного посилання. Пакети, що перевищують MTU, фрагментовані в точці, де знайдена нижня MTU і знову зібрана далі по ланцюгу.

Якщо фрагментація не потрібна, вам потрібно перевірити MTU при кожному стрибку або використовувати для цього протокол помічника ( Path MTU Discovery ).

Зауважте, що IPv6 НЕ підтримує фрагментацію пакетів маршрутизаторами, отже, PMTUD з ICMPv6 є обов'язковим, якщо ви не хочете втратити пакет десь через невелику MTU. Кінцеві точки можуть фрагментувати, але не маршрутизатори. IPv6 також має МІНІМАЛЬНИЙ МТУ набагато вищий.

MSS - максимальний розмір сегмента TCP. На відміну від MTU, пакети, що перевищують MSS, не фрагментовані, вони просто відкидаються. MSS, як правило, вирішується в тристоронній рукостисканні TCP, але деякі налаштування можуть дати шлях, коли прийнято рішення про MSS все ще занадто велике, що призведе до випадання пакетів. MSS не узгоджує пакет на пакет, але для повного сеансу TCP, а також не враховує заголовки TCP / IP

Використовуючи PPPoE, усі накладні засоби означають, що вам потрібно зменшити MSS по дорозі, як правило, вказавши його на маршрутизаторі, де знаходиться точка чутливості, яка потім замінить MSS передачі рукостискання за трійкою на правильне нижнє значення, якщо воно вище. PPPoE просто додає 8 байт (6 байтів PPPoE + 2 байти PPP) поверх всього (IP + TCP) і призначений для запуску через Ethernet на 1500 байтів MTU, отже, 1492 MSS, як правило, налаштовані для його проходження.

Ваш стек IP відрізає дані, що надсилаються до MSS, розмістить їх у сегменті TCP, після чого помістить їх в один або декілька IP-пакетів (залежно від того, якщо він більший, ніж локальні параметри MTU) перед відправкою. Проміжний маршрутизатор може знизити його далі, якщо вони мають менший MTU, але вони впливають лише на сам IP-пакет, не граючи в сегмент / заголовок TCP.


4
Пояснення: IPv6 не підтримує фрагментацію в маршрутизаторах, проте кінцеві станції можуть фрагментувати пакети IPv6
Майк Пеннінгтон,

1
Редагував мою відповідь, щоб бути більш конкретним
Ремі Летурно

0

MTU - максимальний розмір пакета IP даної посилання. MSS - максимальний розмір сегмента TCP.

MTU використовується для фрагментації, тобто пакет, більший за MTU, фрагментований. Але у випадку MSS, пакет, більший за MSS, відкидається.

MSS задається під час рукостискання TCP в основному в SYN, і його значення не може бути змінено після встановлення з'єднання.

MSS = MTU-40 (IP-заголовок (20 байт) + заголовок TCP (20 байт))


Я думаю, що заголовок TCP не обов’язково 20 байт, це лише мінімальна довжина?
Саджук

може бути додаткова опція заголовка
aneesh joshi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.