Resumen

  • La opción MSS, de tipo 2 y longitud 4, viaja en un SYN e indica cuántos octetos de datos TCP puede recibir su emisor en un segmento.
  • Cada dirección tiene su propio límite. El valor excluye las cabeceras IP y TCP; el emisor debe considerar después las cabeceras reales y las restricciones del camino.

Dos SYN, dos límites de recepción

Llamarlo «negociación» induce a error. El anuncio de A describe la recepción de A y el de B describe la de B. Por eso pueden diferir sin que exista conflicto: controlan sentidos opuestos.

El formato no deja mucho margen para la interpretación: tipo 2, longitud 4 y un valor MSS de 16 bits. RFC 9293 define ese valor como el tamaño máximo de segmento que el emisor está dispuesto a recibir. Puede aparecer en una petición inicial con SYN y no debe aparecer en segmentos posteriores. Es una restricción establecida al abrir la conexión, no un informe continuo de capacidad.

MSS cuenta octetos de datos TCP y excluye las cabeceras IP y TCP. No es el tamaño del datagrama IP, la MTU de una interfaz ni el tamaño de una escritura de aplicación. El emisor combina el anuncio del par con sus propios datos sobre el camino y con las cabeceras que realmente coloca.

RFC 879 ya advertía en 1983 que se lo llamaba «negociación» de forma equivocada. El receptor declara lo que puede aceptar; el emisor decide cómo formar cada paquete.

Por qué 536 era un valor predeterminado

En el caso IPv4 descrito por RFC 879, un host debía poder reensamblar un datagrama de 576 octetos. Tras restar las cabeceras mínimas de 20 octetos de IPv4 y 20 de TCP, quedaban 536 octetos para datos TCP.

Ese cálculo era una base de compatibilidad, no una medición del trayecto. No demostraba que todos los caminos tuvieran una MTU de 576 ni que Ethernet impusiera una cifra universal.

MSS tampoco equivale a descubrimiento de MTU de ruta. PMTUD intenta conocer una propiedad del camino, que puede cambiar; MSS se intercambia durante la apertura y describe la capacidad de recepción de un endpoint.

La corrección sobre las opciones

Algunas implementaciones reducían el MSS anunciado para reservar espacio para futuras opciones IP o TCP. RFC 6691 corrigió esa práctica: el receptor debe anunciar la mayor carga útil TCP que puede reensamblar, sin descontar espacio hipotético.

Al construir cada paquete, el emisor ajusta los datos para acomodar las opciones que estén realmente presentes y respetar el límite IP aplicable. Una oferta grande no autoriza a ignorar un camino más pequeño, y una oferta de 1460 no certifica una MTU de 1500 en cada salto.

Lo que puede cambiar un intermediario

Un middlebox puede reescribir MSS en un SYN, por ejemplo para tener en cuenta un túnel. Eso modifica la restricción presentada al otro endpoint; no convierte el valor en una medición autorizada de la capacidad del camino.

Una captura prueba el valor visible desde su punto de observación. Puede no mostrar el anuncio original, la MTU de todos los saltos ni la razón de una carga útil menor.

La lección histórica es una división de autoridad: el receptor declara su límite, el emisor construye el paquete y el camino conserva sus propias restricciones.

Fuentes