Estaba leyendo RFC4987 que describe las cookies de SYN y parece que el Tamaño de segmento máximo (MSS) está codificado en la SYN cookie y no estoy seguro de por qué ese es el caso? ¿Alguien puede explicar por qué necesitamos el MSS en la cookie SYN?
Esto tiene algo que ver con MTU y Path MTU Discovery (PMTUD).
Supongamos que su MTU es 1400 y la MTU de su servidor es 1500. Cuando intenta descargar el archivo, sin MSS o PMTUD, el servidor intentaría enviarle el archivo en paquetes de aproximadamente 1500 bytes que se eliminarán desde que se encuentra su MTU sólo 1400.
Con Path MTU Discovery, el servidor puede descubrir cuál es el tamaño de MTU, la cosa es que se basa en ICMP. Entonces, cuando el paquete se cae, el mensaje ICMP se devuelve. Sin embargo, si ICMP está bloqueado, el servidor debe confiar en el valor MSS incluido en el paquete SYN. Entonces, si reduce su MTU, su valor de MSS en paquetes SYN también se reducirá para que los servidores ahora sepan cómo dimensionar los paquetes.
Su enrutador también puede estar modificando el campo MSS en paquetes SYN para ajustarse a MTU de su línea de banda ancha como ADSL. Es la característica de iptables "SYN TCPMSS clamp to PMTU". Esto se debe a que si el MTU de su línea de banda ancha es más bajo que su MTU WIFI (que normalmente es 1500), el enrutador puede necesitar aplaudirlo para que los paquetes que regresan de los servidores de Internet tengan el tamaño adecuado para su Banda ancha y no para WIFI.