O MSS do TCP oculta uma MTU intra-LAN incompatível?

1

Estou tentando entender como as MTUs incompatíveis se comportam em uma rede.

Suponha que dois hosts sejam capazes de se comunicar entre si por meio de uma rede baseada em Ethernet. A rede e o host A estão configurados para quadros jumbo até, mas não incluindo, um comutador no host de LAN B e no próprio host B. Pelo que entendi em relação ao TCP, o handshake de três vias no início de cada sessão TCP anuncia o MSS de cada host respectivo ao outro host. Como o host B anunciará um MSS de 1460 bytes após subtrair os cabeçalhos IP e TCP, e como usarão o menor dos dois MSSs anunciados, qualquer conversa TCP entre esses dois hosts funcionará sem problemas?

Por outro lado, como o UDP não possui um MSS, os pacotes UDP grandes não fragmentados enviados pelo host A serão descartados pelo host B?

    
por Stanley Yu 26.03.2015 / 21:07

1 resposta

1

O TCP faz o caminho da descoberta da MTU para evitar a fragmentação, o que pode resultar no aumento da perda de pacotes. Aplicativos usando UDP têm duas opções.

Eles podem apenas permitir que seus datagramas se fragmentem. Nesse caso, eles não serão descartados, mas se algum fragmento for descartado, todo o datagrama não será recebido. Isso pode aumentar as taxas de perda de pacotes.

Eles também podem fazer sua própria descoberta MTU de caminho, definindo o bit "não fragmentar" em seus datagramas. Eles terão que detectar a perda de datagramas e lidar com a possibilidade de que a MTU do caminho tenha mudado.

Aplicações UDP típicas apenas mantêm seus datagramas abaixo de 1.500 bytes no total e permitem que eles se fragmentem, se necessário. Isso resultará em nenhuma fragmentação nos links mais comuns e não precisará fazer a detecção de MTU de caminho.

    
por 26.03.2015 / 21:24