Qual è la differenza tra MSS e MTU?


33

Sono confuso sulla differenza tra la dimensione massima del segmento e un'unità di trasmissione massima.

Qualcuno può spiegare in relazione agli strati 2 e 3?

Se avessi un pacchetto di 800 byte nel payload. Sarebbe corretto dire che l'MSS sarebbe di 800 byte (se lo impostassi così) e l'MTU sarebbe 840? Byte TCP 20 e IP 20. Sarebbe diverso se stessi facendo PPPoE?


Sebbene ciò non sia strettamente un duplicato, la risposta a questa domanda può anche rispondere alla tua domanda.
YLearn

Risposte:


19

Inoltre. Il valore MSS deriva dal valore MTU , se si dispone di un pacchetto da 800 byte, si può anche dire che un pacchetto del genere era originariamente lungo 2260 byte e si è rotto in 2 pacchetti 1460 + 800 byte, se si utilizza MTU = 1500.
Si diciamo che è vero, se MSS = 800, l'MTU dovrebbe essere almeno 840. Poiché l'overhead PPPoE è di 8 byte, quindi MTU = 1492 byte e MSS = 1492-40 = 1452 byte.


28

MTU è la dimensione massima del pacchetto IP per un determinato collegamento. I pacchetti più grandi dell'MTU vengono frammentati nel punto in cui si trova l'MTU inferiore e riassemblati più in basso nella catena.

Se non si desidera alcuna frammentazione, è necessario controllare l'MTU ad ogni hop o utilizzare un protocollo di supporto per questo ( Path MTU Discovery ).

Si noti che IPv6 NON supporta la frammentazione dei pacchetti da parte dei router, quindi PMTUD con ICMPv6 è obbligatorio se non si desidera perdere un pacchetto da qualche parte a causa di MTU di piccole dimensioni. Gli endpoint possono frammentare, ma non i router Inoltre, IPv6 ha un MTU MINIMO molto più elevato.

MSS è la dimensione massima del segmento TCP. A differenza di MTU, i pacchetti che superano MSS non sono frammentati, ma semplicemente scartati. MSS viene normalmente deciso nell'handshake a tre vie TCP, ma alcune impostazioni potrebbero fornire un percorso in cui MSS deciso è ancora troppo grande, portando a pacchetti persi. MSS non è un pacchetto negoziato per pacchetto, ma per una sessione TCP completa, né tiene conto delle intestazioni TCP / IP

Quando si utilizza PPPoE, tutte le spese generali significano che è necessario ridurre l'MSS lungo il percorso, normalmente specificandolo sul router in cui si trova il chokepoint, che sostituirà quindi l'MSS di passare l'handshake a tre vie con il valore inferiore corretto se è superiore. PPPoE sta semplicemente aggiungendo 8 byte (6 byte PPPoE + 2 byte PPP) sopra tutto (IP + TCP) ed è pensato per essere eseguito su Ethernet a 1500 byte MTU, quindi il MSS 1492 normalmente configurato per farlo passare.

Lo stack IP taglierà i dati da inviare all'MSS, li inserirà in un segmento TCP, quindi li inserirà in uno o più pacchetti IP (a seconda che sia maggiore delle impostazioni MTU locali) prima di inviarli. Il router intermedio potrebbe ridurlo ulteriormente se hanno un MTU inferiore, ma stanno influenzando solo il pacchetto IP stesso, non giocando nel segmento / intestazione TCP.


4
Clatificazione: IPv6 non supporta la frammentazione nei router, tuttavia le stazioni terminali possono frammentare i pacchetti IPv6
Mike Pennington,

1
Modificato la mia risposta per essere più specifici
Remi Letourneau,

0

MTU è la dimensione massima del pacchetto IP di un determinato collegamento. MSS è la dimensione massima del segmento TCP.

MTU viene utilizzato per la frammentazione, ovvero il pacchetto più grande di MTU viene frammentato, ma nel caso di MSS, il pacchetto più grande di MSS viene scartato.

MSS viene specificato durante l'handshake TCP sostanzialmente in SYN e il suo valore non può essere modificato dopo aver stabilito la connessione.

MSS = MTU-40 (intestazione IP (20 byte) + intestazione TCP (20 byte))


Penso che l'intestazione TCP non sia necessariamente di 20 byte, questa è solo la lunghezza minima?
Sajuuk,

potrebbe esserci un'intestazione di opzioni aggiuntive
aneesh joshi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.