Estou usando uma conexão TCP para determinar o Path MTU (PMTU) extraindo o MSS da resposta SYN-ACK.
No entanto, não tenho certeza se esse método permanece confiável em casos em que a rota entre meu ponto de extremidade e o servidor é assimétrica.
Pelo que li, o MSS no SYN-ACK reflete a MTU do destino da conexão e pode ser reduzido por qualquer nó ao longo do caminho de retorno se tiver uma MTU menor.
Mas quando os caminhos de ida e volta diferem, pois eles podem atravessar diferentes saltos com MTUs variáveis, então posso obter resultados imprecisos. Existe uma maneira de conter toda a jornada de ida e volta no valor MSS recebido por SYN_ACK ?
Obrigado
Você está correto ao dizer que as PMTUs podem ser assimétricas, portanto, obter apenas uma opção MSS TCP de direção do SYN-ACK não é suficiente.
Os roteadores ao longo do caminho geralmente não diminuem a opção MSS nos cabeçalhos TCP, pois mexer com cabeçalhos TCP geralmente é proibido (NATs — especificamente NAPTs — são uma exceção, mas NATs sempre foram amplamente considerados como uma gambiarra feia entre as pessoas que entendem a filosofia de design por trás dos protocolos da Internet).
Observe também que quando o SYN e o SYN-ACK são gerados, o Path MTU Discovery ainda não aconteceu, então a opção MSS TCP reflete apenas o MTU do link local (primeiro salto) de cada host, que pode ser maior que o PMTU real. Esse MTU inicial pode muito bem ser revisado para baixo quando os pacotes de tamanho completo começarem a fluir, permitindo que o PMTUD aconteça.