MSS ( Tamaño máximo de segmento ) es un parámetro del protocolo TCP y determina el tamaño máximo de un bloque de datos útil en bytes para un paquete TCP (segmento). Por lo tanto, esta configuración no tiene en cuenta la longitud de los encabezados TCP e IP [1] .
Para establecer una sesión TCP válida con un host remoto, se debe cumplir la siguiente condición:
Por lo tanto, el tamaño máximo de MSS = MTU - tamaño del encabezado IP - tamaño del encabezado TCP.
Entonces, cada host requiere disponibilidad para MSS:
Por lo general, el sistema operativo determina el valor MSS específico durante el "intercambio de protocolos TCP" con el host de destino en función de los valores de MTU o PMTUD [ ( Path MTU Discovery ) [2] .
Sin embargo, un enrutador intermedio (por ejemplo, que tenga un enlace con una MTU pequeña) puede espiar los paquetes TCP SYN y falsificar los valores de MSS anunciados por los dispositivos finales. Como resultado, los nodos finales "negociarán" MSS más pequeños y no será necesario fragmentar los paquetes.