Articulo de referencia

Tamaño máximo del segmento

El tamaño máximo de segmento ( MSS ) es un parámetro del campo Opciones del encabezado TCP que especifica la mayor cantidad de datos, especificada en bytes , que una computadora...

El tamaño máximo de segmento ( MSS ) es un parámetro del campo Opciones del encabezado TCP que especifica la mayor cantidad de datos, especificada en bytes , que una computadora o dispositivo de comunicaciones puede recibir en un solo segmento TCP . No cuenta el encabezado TCP ni el encabezado IP (a diferencia, por ejemplo, de la MTU para datagramas IP). [ 1 ] : §3.7.1 El datagrama IP que contiene un segmento TCP puede estar contenido dentro de un solo paquete, o puede reconstruirse a partir de varias piezas fragmentadas ; de cualquier manera, el límite MSS se aplica a la cantidad total de datos contenidos en el segmento TCP reconstruido final.

Para evitar la fragmentación en la capa IP , un host debe especificar el tamaño máximo del segmento como igual al datagrama IP más grande que el host puede manejar menos los tamaños de las cabeceras IP y TCP. Aunque no existe un MSS mínimo requerido definido en los RFC de la IETF , sí existe una MTU mínima, por lo que se calcula un MSS predeterminado restando los tamaños mínimos de las cabeceras IP y TCP de la MTU. Por ejemplo, los hosts IPv4 suelen tener por defecto un MSS de 536 octetos (= 576 − 20 − 20) y los hosts IPv6 generalmente pueden manejar un MSS de 1220 octetos (= 1280 − 40 − 20). [ 1 ] : §3.7.1

Los valores MSS pequeños reducirán o eliminarán la fragmentación de IP, pero darán como resultado una mayor sobrecarga . [ 2 ]

Cada dirección del flujo de datos puede utilizar un MSS diferente.

Para la mayoría de los usuarios de ordenadores, la opción MSS la establece el sistema operativo .

El tamaño de las opciones TCP (variable de 0 a 320 bits, en unidades de 32 bits) debe restarse del tamaño de MSS si las opciones TCP están habilitadas. Por ejemplo, las marcas de tiempo TCP están habilitadas de forma predeterminada en las plataformas Linux.

Valor predeterminado

El tamaño máximo de segmento TCP predeterminado para IPv4 es 536. Para IPv6 es 1220. [ 1 ] : §3.7.1 Cuando un host desea establecer el tamaño máximo de segmento a un valor distinto del predeterminado, el tamaño máximo de segmento se especifica como una opción TCP, inicialmente en el paquete TCP SYN durante el handshake TCP . El valor no se puede cambiar después de que se establece la conexión.

Comunicación entre capas

Para notificar a MSS al otro extremo, se realiza una comunicación entre capas de la siguiente manera: [ 3 ] : §11

  • El controlador de red (ND) o la interfaz debe conocer la unidad de transmisión máxima (MTU) de la red conectada directamente.
  • La IP debe solicitar al controlador de red la unidad de transmisión máxima.
  • El protocolo TCP debe solicitar al protocolo IP el tamaño máximo de datos del datagrama (MDDS). Este valor es la MTU menos la longitud de la cabecera IP (MDDS = MTU − IPHdrLen).
  • Al abrir una conexión, TCP puede enviar una opción MSS con un valor igual a: MDDS − TCPHdrLen. En otras palabras, el valor MSS a enviar es: MSS = MTU − TCPHdrLen − IPHdrLen

Al enviar segmentos TCP al otro extremo, se realiza una comunicación entre capas de la siguiente manera: [ 3 ] : §11

  • TCP debe determinar el tamaño máximo de datos de segmento (MSDS) a partir del valor predeterminado o del valor recibido de la opción MSS.
  • TCP debería determinar si la fragmentación de la fuente es posible (consultando la dirección IP) y deseable.
    • En ese caso, TCP puede entregar a IP segmentos (incluido el encabezado TCP) de hasta MSDS + TCPHdrLen.
    • De lo contrario, TCP puede entregar a IP segmentos (incluido el encabezado TCP) hasta el menor de (MSDS + TCPHdrLen) y MDDS.
  • El protocolo IP verifica la longitud de los datos que le transmite TCP. Si la longitud es menor o igual a MDDS, IP adjunta la cabecera IP y la entrega al ND. De lo contrario, IP debe realizar la fragmentación de origen.

MSS y MTU

MSS a veces se confunde con MTU/PMTU , que es una característica de la capa de enlace subyacente , mientras que MSS se aplica específicamente a TCP y, por lo tanto, a la capa de transporte . Ambos son similares en que limitan el tamaño máximo de la carga útil transportada por su respectiva unidad de datos de protocolo (trama para MTU, segmento TCP para MSS), y están relacionados ya que MSS no puede exceder la MTU para su enlace subyacente (teniendo en cuenta la sobrecarga de cualquier encabezado agregado por las capas inferiores a TCP). Sin embargo, la diferencia, además de aplicarse a diferentes capas, es que (1) MSS puede tener un valor diferente en cualquier dirección y que (2) las tramas que exceden la MTU pueden causar que los paquetes (que encapsulan segmentos) sean fragmentados por la capa de red , mientras que los segmentos que exceden el MSS simplemente se descartan.

Lecturas adicionales

  • Comer, Douglas E. (2006). Interconexión de redes con TCP/IP . Vol.  1 (5.ª  ed.). Upper Saddle River, NJ, EE. UU.: Prentice Hall.
  • Kozierok, Charles M. (2005-09-20). La guía TCP/IP (ed. 3.0  ) . Recuperado el 2011-09-08 .

Véase también

Referencias

  1. 1 2 3 W. Eddy, ed. (agosto de 2022). Protocolo de control de transmisión (TCP) . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC9293 . ISSN 2070-1721 . STD 7. RFC 9293 . Estándar de Internet 7. Deja obsoletos los RFC 793 , 879 , 2873 , 6093 , 6429 , 6528 y 6691. Actualiza los RFC 1011 , 1122 y 5961 .  
  2. La guía TCP/IP , tamaño máximo de segmento TCP (MSS) y su relación con el tamaño del datagrama IP.
  3. 1 2 J. Postel (noviembre de 1983). El tamaño máximo de segmento TCP y temas relacionados . Grupo de trabajo de redes. doi : 10.17487/RFC0879 . RFC 879 .Obsoleto. Obsoleto según las RFC 7805 y 9293. Actualizado por la RFC 6691 .