Qual é a diferença entre MSS e MTU?

33

Estou confuso quanto à diferença entre o tamanho máximo do segmento e uma unidade máxima de transmissão.

Alguém pode explicar em relação às camadas 2 e 3?

Se eu tivesse um pacote de 800 bytes na carga útil. Seria correto dizer que o MSS seria de 800 bytes (se eu definir isso) e o MTU seria de 840? TCP 20 e IP 20 bytes. Seria diferente se eu estivesse usando PPPoE?

NetworkNinja
fonte
Embora não seja estritamente uma duplicata, a resposta a esta pergunta também pode responder à sua pergunta.
YLearn

Respostas:

19

Além do que, além do mais. O valor MSS deriva do valor MTU , se você tiver um pacote de 800 bytes, também pode dizer que esse pacote tinha originalmente 2260 bytes de comprimento e ele dividiu em 2 pacotes 1460 + 800 bytes, se usarmos MTU = 1500.
Você say é true, se você MSS = 800, o MTU deve ser pelo menos 840. Como a sobrecarga do PPPoE é de 8 bytes e, portanto, MTU = 1492 bytes e MSS = 1492-40 = 1452 bytes.

t3mp
fonte
28

A MTU é o tamanho máximo do pacote IP para um determinado link. Pacotes maiores que o MTU são fragmentados no ponto em que o MTU inferior é encontrado e remontado mais abaixo na cadeia.

Se nenhuma fragmentação for desejada, você deverá verificar a MTU em cada salto ou usar um protocolo auxiliar para isso ( Path MTU Discovery ).

Observe que o IPv6 NÃO suporta fragmentação de pacotes pelos roteadores; portanto, o PMTUD com ICMPv6 é obrigatório se você não quiser perder um pacote em algum lugar por causa da pequena MTU. Os pontos de extremidade podem fragmentar, mas não os roteadores. Além disso, o IPv6 possui uma MTU MÍNIMA muito mais alta.

MSS é o tamanho máximo do segmento TCP. Ao contrário do MTU, os pacotes que excedem os MSS não são fragmentados, são simplesmente descartados. O MSS normalmente é decidido no handshake de três vias do TCP, mas algumas configurações podem gerar um caminho em que o MSS decidido ainda é muito grande, levando à queda de pacotes. O MSS não é pacote negociado por pacote, mas para uma sessão TCP completa, nem leva em consideração os cabeçalhos TCP / IP

Ao usar o PPPoE, toda a sobrecarga significa que você precisa reduzir o MSS no caminho, normalmente especificando-o no roteador onde o ponto de estrangulamento é encontrado, que substituirá o MSS de passar o handshake de três vias pelo valor mais baixo correto, se for maior. O PPPoE está simplesmente adicionando 8 bytes (PPP6 de 6 bytes + PPP de 2 bytes) em cima de tudo (IP + TCP) e deve ser executado na Ethernet a 1500 bytes MTU, daí o MSS 1492 normalmente configurado para fazê-lo passar.

Sua pilha de IP cortará os dados a serem enviados para o MSS, os colocará em um segmento TCP e em um ou mais pacotes IP (dependendo se for maior que as configurações locais da MTU) antes de enviá-los. O roteador intermediário pode reduzi-lo ainda mais se eles tiverem MTU mais baixo, mas estão afetando apenas o próprio pacote IP, não sendo reproduzido no segmento / cabeçalho TCP.

Remi Letourneau
fonte
4
Clatification: IPv6 não suporta fragmentação em roteadores no entanto estações podem fragmento IPv6 pacotes acabar
Mike Pennington
1
Editou minha resposta para ser mais específico
Remi Letourneau
0

MTU é o tamanho máximo do pacote IP de um determinado link. MSS é o tamanho máximo do segmento TCP.

O MTU é usado para fragmentação, ou seja, pacotes maiores que MTU são fragmentados. Mas no caso de MSS, pacotes maiores que MSS são descartados.

O MSS é especificado durante o handshake TCP basicamente em SYN e seu valor não pode ser alterado depois que a conexão é estabelecida.

MSS = MTU-40 (cabeçalho IP (20 bytes) + cabeçalho TCP (20 bytes))

Prayag Singh
fonte
Acho cabeçalho TCP não é necessariamente 20 bytes, isso é apenas o comprimento mínimo?
Sajuuk
poderia haver um cabeçalho de opções adicionais
aneesh joshi 25/07