Estructura de los paquetes del Protocolo de transmisión de control de flujo
El protocolo de transmisión de control de flujo (SCTP) tiene una estructura de paquetes básica más simple que la del protocolo TCP . Cada uno consta de dos secciones básicas:
- El encabezado común , que ocupa los primeros 12 bytes. En el diagrama adyacente, este encabezado está resaltado en azul.
- Los fragmentos de datos , que forman la parte restante del paquete. En el diagrama, el primer fragmento está resaltado en verde y el último de los N fragmentos (fragmento N ) está resaltado en rojo. Hay varios tipos, incluidos los datos de carga útil y diferentes mensajes de control.
Encabezado común
Todos los paquetes SCTP requieren la sección de encabezado común (que se muestra con un fondo azul).
- Puerto de origen
- Este campo identifica el puerto de envío.
- Puerto de destino
- Este campo identifica el puerto de recepción que utilizan los hosts para enrutar el paquete al punto final/aplicación apropiado.
- Etiqueta de verificación
- Un valor aleatorio de 32 bits creado durante la inicialización para distinguir los paquetes obsoletos de una conexión anterior.
- Suma de comprobación
- El diseño original de SCTP tenía en cuenta el algoritmo Adler-32 , pero el RFC 3309 cambió el protocolo para utilizar el algoritmo CRC32c . [1] [2]
Trozos
Cada paquete SCTP consta, además del encabezado común, de fragmentos . Cada fragmento tiene un formato común, pero el contenido puede variar. Los bytes verdes en el diagrama anterior representan un fragmento.
- Tipo de trozo
- Un valor de 8 bits predefinido por la IETF para identificar el contenido del campo de valor del fragmento.
- Banderas de trozos
- Ocho bits de bandera cuya definición varía según el tipo de fragmento. El valor predeterminado es cero.
- Longitud del trozo
- Un valor sin signo de 16 bits que especifica la longitud total del fragmento en bytes (excluye cualquier relleno) que incluye el tipo de fragmento, indicadores, longitud y campos de valor.
- Datos de fragmentos
- Campo de datos de propósito general cuya definición varía según el tipo de fragmento.
Si la longitud del fragmento no equivale a un múltiplo de 4 bytes, entonces el protocolo rellena implícitamente el fragmento con ceros finales.
Además, cada tipo de fragmento puede definir un conjunto de parámetros que incluye dentro del campo de valor del fragmento (y, en consecuencia, su longitud en la longitud del fragmento).
Existen dos tipos de parámetros:
- parámetros fijos: deben aparecer y en el orden especificado,
- parámetros de longitud variable u opcionales: aparecen después de los parámetros fijos y pueden aparecer en cualquier orden y en cualquier número.
En el caso de los parámetros opcionales o de longitud variable, los campos de tipo de parámetro, longitud de parámetro y valor de parámetro se comportan igual que sus contrapartes en fragmentos. El tamaño mínimo del parámetro es de 4 bytes, y esto ocurre cuando el campo de valor de parámetro está vacío y el parámetro consta únicamente de los campos de tipo y longitud.
Lista de tipos de fragmentos
La RFC 2960 define la siguiente lista de tipos de fragmentos. En las siguientes subsecciones se proporciona información más detallada sobre cada tipo.
A continuación de esta tabla se definen cada fragmento y sus parámetros. Tenga en cuenta el siguiente esquema de colores:
- gris: campos de fragmentos,
- rojo: parámetros fijos,
- verde/azul: parámetros opcionales/de longitud variable que alternan colores.
Fragmento de DATOS
- Tipo de trozo
- siempre 0 para datos de carga útil (DATOS)
- Banderas de trozos
- Actualmente [actualizar]solo se utilizan 4 banderas
- I — El fragmento SACK debe ser devuelto sin demora.
- U: si se configura, esto indica que estos datos son un fragmento desordenado y que el número de secuencia de transmisión no es válido. Si un fragmento desordenado está fragmentado, cada fragmento tiene esta bandera configurada.
- B: si se configura, marca el fragmento inicial. Un fragmento no fragmentado tiene esta bandera configurada.
- E: si se configura, marca el fragmento final. Un fragmento no fragmentado tiene esta bandera configurada.
- Longitud del trozo
- La longitud del fragmento tiene un valor mínimo de 17, ya que no se permiten datos de tamaño inferior a un byte.
- Parámetros fijos:
- Número de secuencia de transmisión (TSN)
- El número de secuencia para todo el flujo de DATOS (utilizado en la fragmentación para el reensamblaje).
- Identificador de flujo
- Identificador de la secuencia a la que pertenece este fragmento de datos.
- Número de secuencia de flujo
- Identificador del número de secuencia del mensaje en este flujo. Si un mensaje está fragmentado, este valor se mantiene para todos los fragmentos.
- Identificador de protocolo de carga útil
- Identificador de protocolo específico de la aplicación. [4] SCTP no utiliza este identificador ni lo modifica. Sin embargo, los dispositivos a lo largo de la ruta o los puntos finales pueden usarlo. Un valor de 0 indica que no se especifica ningún protocolo de carga útil.
- Datos
- Datos específicos de la aplicación.
- Parámetros opcionales: ninguno.
Fragmento INIT
- Tipo de trozo
- siempre 1 para iniciación (INIT).
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Esta es la longitud del fragmento que tiene un valor mínimo de 20 cuando el valor del fragmento está vacío y no se utilizan parámetros opcionales.
- Los parámetros fijos tienen un significado idéntico al de INIT ACK:
- Etiqueta de inicio
- Número de 32 bits sin signo que se utiliza en cada paquete SCTP en la etiqueta de verificación dentro del encabezado común.
- Crédito de la ventana del receptor anunciado (a_rwnd)
- Cantidad de espacio de buffer dedicado para esta asociación que nunca debe reducirse.
- # de transmisiones salientes
- Número de transmisiones salientes (del remitente del INIT) que desea utilizar para esta asociación. Cero es un valor no válido y el receptor debe ABORTAR la asociación al recibir un cero.
- # de transmisiones entrantes
- Idéntico al número de flujos salientes pero con el número de flujos entrantes. No se negocia el número establecido, sino que se debe utilizar el mínimo solicitado y ofrecido.
- TSN inicial
- Número de secuencia de transmisión inicial que se utilizará y puede ser cualquier valor.
- Los parámetros opcionales aparecen con colores de fondo alternados de verde y azul:
- Tipo de parámetro = 5
- Este parámetro enumera todas las direcciones IPv4 utilizadas en el punto de envío. Si se trata de una conexión multiconector, se puede incluir la dirección IP de cada una de ellas.
- Tipo de parámetro = 6
- Este parámetro enumera todas las direcciones IPv6 utilizadas en el punto de envío. Si se trata de una conexión multiconector, se puede incluir la dirección IP de cada una de ellas.
- Tipo de parámetro = 9
- Este parámetro proporciona un incremento de vida útil sugerido que el receptor debe agregar a la vida útil predeterminada de su cookie (en milisegundos).
- Tipo de parámetro = 11
- Este parámetro es un nombre de host según se define en RFC 1123, sección 2.1. La resolución real de este nombre está fuera del alcance de SCTP. Además, se debe incluir un carácter de terminación nulo y debe incluirse en la longitud del parámetro.
- Tipo de parámetro = 12
- Este parámetro enumera los tipos de direcciones que admite el remitente (por ejemplo, IPv4 = 5, IPv6 = 6, nombre de host = 11).
- Tipo de parámetro = 32768
- Este parámetro está reservado para el soporte explícito de notificación de congestión.
Fragmento INIT ACK
El fragmento INIT ACK replica el fragmento INIT excepto que el tipo de fragmento siempre es 2.
- Parámetros obligatorios, sólo en INIT ACK:
- Tipo de parámetro = 7 (cookie de estado)
- La cookie de estado contiene la información mínima para recrear el bloque de control de transmisión y está firmada con la clave privada del remitente. No se especifica el formato de la cookie.
Trozo de SACO
- Tipo de trozo
- Siempre 3 para reconocimiento selectivo (SACK).
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Esta es la longitud del fragmento, que tiene un valor mínimo de 16 cuando no se envían espacios ni duplicados.
- Parámetros fijos:
- TSN ACK acumulativo
- Reconoce todos los números de secuencia hasta este número inclusive. Los fragmentos con TSN superiores a este número aún no se han recibido, excepto aquellos incluidos en los bloques ACK de espacio opcionales (ver a continuación).
- Crédito de la ventana del receptor anunciado
- Cantidad de espacio de buffer dedicado para esta asociación que nunca debe reducirse.
- Número de bloques ACK de espacio
- Indica la cantidad de bloques ACK de espacio (es decir, pares de TSN de inicio y fin) incluidos en este fragmento.
- Número de TSN duplicados
- Indica la cantidad de TSN duplicados informados en este fragmento.
- Los parámetros opcionales aparecen con colores de fondo alternados de verde y azul:
- Bloque ACK de brecha # N inicio
- Indica un desplazamiento positivo (con referencia al valor TSN ACK acumulativo) al primer TSN de un bloque adicional de TSN que se reconocen.
- Bloque ACK de espacio N extremo
- Indica un desplazamiento positivo (con referencia al valor TSN ACK acumulativo) al último TSN de un bloque adicional de TSN que se reconocen.
- TSN duplicado # X
- Un TSN que se recibió más de una vez. Un TSN aparecerá en esta lista cada vez que se reciba después de la primera vez.
Fragmento de LATIDO DEL CORAZÓN
- Tipo de trozo
- Para el latido del corazón (HEARTBEAT), este valor siempre es 4.
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Esta es la longitud del fragmento que tiene un valor mínimo de 8 sin ningún valor de parámetro agregado.
- Parámetros fijos: Ninguno
- Los parámetros opcionales se muestran con colores de fondo alternos de verde y azul:
- Tipo de parámetro = 1
- Este parámetro contiene información de latidos específica del remitente
Fragmento de ACK de LATIDO
- Tipo de trozo
- Para el reconocimiento de latido (HEARTBEAT ACK), este valor siempre es 5.
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Esta es la longitud del fragmento, que tiene un valor mínimo de 8 sin ningún valor de parámetro agregado.
- Parámetros fijos: Ninguno
- Los parámetros opcionales se muestran con colores de fondo alternos de verde y azul:
- Tipo de parámetro = 1
- Este parámetro contiene la información de latido específica del remitente recibida en la solicitud.
Fragmento ABORT
- Tipo de trozo
- siempre 6 para abortar (ABORT).
- Banderas de trozos
- Actualmente sólo se utiliza una bandera:
- yo
- Establezca si el remitente envió su propia etiqueta de verificación (que el receptor debería verificar); no establezca si el remitente envió la etiqueta de verificación de su par (que debería verificarse de todos modos).
- Longitud del trozo
- Esta es la longitud del fragmento, que tiene un valor mínimo de 4 sin causas de error indicadas.
- Los parámetros opcionales (las causas del error) se definen en el fragmento ERROR.
Fragmento de APAGADO
- Tipo de trozo
- Para el apagado (SHUTDOWN), este valor siempre es 7.
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Esta es la longitud del fragmento, que tiene una longitud fija de 8.
- Parámetros fijos:
- TSN ACK acumulativo
- Contiene el último TSN recibido en secuencia por el remitente.
Fragmento de APAGADO ACK
- Tipo de trozo
- Para el reconocimiento de apagado (SHUTDOWN ACK), este valor siempre es 8.
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Esta es la longitud del fragmento, que tiene una longitud fija de 4.
Fragmento de error
- Tipo de trozo
- Para error (ERROR), este valor siempre es 9.
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Esta es la longitud del fragmento, que tiene un valor mínimo de 8 cuando solo se envía un error sin valor de parámetro. El tamaño es de 4 bytes más el tamaño de todas las causas de error.
- Parámetros fijos: Ninguno.
- Los parámetros opcionales se muestran con colores de fondo alternos de verde y azul:
- Tipo de parámetro = 1
- Este parámetro identifica que el remitente recibió un identificador de flujo no válido.
- Tipo de parámetro = 2
- Este parámetro indica que el remitente recibió un fragmento INIT o INIT ACK con parámetros obligatorios faltantes.
- Tipo de parámetro = 3
- Este parámetro indica la recepción de una cookie de estado válida pero que estaba desactualizada por una determinada cantidad de microsegundos.
- Tipo de parámetro = 4
- Este parámetro indica que el remitente no tiene recursos; esto generalmente acompaña a un fragmento ABORT.
- Tipo de parámetro = 5
- Este parámetro identifica una dirección que el remitente no pudo resolver (posiblemente porque no admite el tipo de dirección); esto generalmente acompaña a un fragmento ABORT.
- Tipo de parámetro = 6
- Este parámetro identifica un fragmento no reconocido cuando los bits más significativos del tipo de fragmento son 01 o 11.
- Tipo de parámetro = 7
- Este parámetro identifica que un parámetro obligatorio en un fragmento INIT o INIT ACK tiene un valor no válido.
- Tipo de parámetro = 8
- Este parámetro se dirige al originador de un fragmento INIT ACK que contenía un parámetro no reconocido.
- Tipo de parámetro = 9
- Este parámetro indica que un fragmento de DATOS no contenía datos de usuario; esto generalmente acompaña a un fragmento de ABORT.
- Tipo de parámetro = 10
- Este parámetro indica que el remitente recibió un COOKIE ECHO mientras el punto final estaba en un estado SHUTDOWN-ACK-SENT.
Fragmento de COOKIE ECHO
- Tipo de trozo
- siempre 10 para eco de cookie (COOKIE ECHO).
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Esta es la longitud del trozo.
- Valor del fragmento
- Contiene los datos de las cookies.
Fragmento de COOKIE ACK
- Tipo de trozo
- Para el reconocimiento de cookies (COOKIE ACK), este valor siempre es 11.
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Esta es la longitud del fragmento y siempre es 4.
Fragmento de ECNE
Aún no definido
Fragmento de CWR
Aún no definido
Fragmento APAGADO COMPLETO
- Tipo de trozo
- Para el apagado completo (SHUTDOWN COMPLETE), este valor siempre es 14.
- Banderas de trozos
- Actualmente solo hay una bandera definida
- yo
- Se establece si el remitente no tenía un TCB; no se establece si el remitente tenía uno (que destruyó).
- Longitud del trozo
- Esta es la longitud del fragmento, que tiene una longitud fija de 4.
Fragmento de autenticación
- Tipo de trozo
- Para el fragmento de autenticación (AUTH), este valor siempre es 15.
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Longitud del HMAC + 8.
- Parámetros fijos:
- Identificador de clave compartida
- Identifica la clave compartida que se utilizó.
- Identificador HMAC
- Identifica el tipo de HMAC utilizado. [5]
- HMAC
- Valor HMAC . Puede que no sea un múltiplo de 4 bytes. El protocolo SCTP se encarga de rellenar hasta un límite de 4 bytes. [6]
- Parámetros opcionales: ninguno
Fragmento ASCONF-ACK
- Tipo de trozo
- siempre 128 para el fragmento de reconocimiento de reconfiguración de dirección (ASCONF-ACK).
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Depende del número y la longitud de las respuestas del parámetro ASCONF incluidas.
- Parámetros fijos:
- Número de secuencia
- El número de secuencia del paquete ASCONF que se está reconociendo.
- Parámetros opcionales:
- Respuesta del parámetro ASCONF 1.. N
- Respuestas de parámetros de reconfiguración de direcciones (longitud variable).
Fragmento de RE-CONFIGURACIÓN
- Tipo de trozo
- siempre 130 para el fragmento de reconfiguración de transmisión (RE-CONFIG).
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Depende del número y la longitud de los parámetros de reconfiguración.
- Parámetros fijos:
- Parámetro de reconfiguración 1
- Primer parámetro de reconfiguración de flujo.
- Parámetros opcionales:
- Parámetro de reconfiguración 2
- Segundo parámetro de reconfiguración de flujo.
En este fragmento pueden aparecer como máximo dos parámetros de reconfiguración de los mencionados a continuación. No todas las combinaciones son válidas; consulte RFC 6525 para obtener más detalles.
Parámetro de solicitud de restablecimiento de SSN saliente
El remitente utiliza este parámetro para informar al receptor que desea restablecer los números de secuencia (o identificadores de mensajes si se utiliza I-DATA) de sus flujos salientes.
- Tipo de parámetro
- siempre 13 para el parámetro de solicitud de restablecimiento de SSN saliente.
- Longitud del parámetro
- 16 + 2 N .
- Parámetros fijos:
- Número de secuencia de solicitud de reconfiguración
- Número de secuencia de esta solicitud de reconfiguración.
- Número de secuencia de respuesta de reconfiguración
- Número de secuencia de la última solicitud de reconfiguración recibida.
- Último TSN asignado al remitente
- Último TSN asignado por el remitente (en sentido estricto: uno menos que el siguiente TSN a asignar).
- Parámetros opcionales:
- Número de transmisión 1.. N
- Números de transmisión para los que se debe restablecer el SSN o MID. Si no se especifica ninguno, se restablecerán todos los SSN y MID.
Parámetro de solicitud de restablecimiento de SSN entrante
Un remitente utiliza este parámetro para solicitar que el receptor restablezca los números de secuencia (o identificadores de mensajes si se utiliza I-DATA) para sus flujos salientes.
- Tipo de parámetro
- siempre 14 para el parámetro de solicitud de restablecimiento de SSN entrante.
- Longitud del parámetro
- 8 + 2 N .
- Parámetros fijos:
- Número de secuencia de solicitud de reconfiguración
- Número de secuencia de esta solicitud de reconfiguración.
- Parámetros opcionales:
- Número de transmisión 1.. N
- Números de transmisión para los que se debe restablecer el SSN o MID. Si no se especifica ninguno, se restablecerán todos los SSN y MID.
Parámetro de solicitud de restablecimiento de SSN/TSN
El remitente utiliza este parámetro para informar al receptor que desea restablecer todos los TSN y todos los SSN/MID de todas las transmisiones.
- Tipo de parámetro
- siempre 15 para el parámetro de solicitud de restablecimiento de SSN/TSN
- Longitud del parámetro
- 8
- Parámetros fijos:
- Número de secuencia de solicitud de reconfiguración
- Número de secuencia de esta solicitud de reconfiguración.
- Parámetros opcionales: ninguno
Parámetro de respuesta de reconfiguración
Este parámetro se utiliza como respuesta a una solicitud de reconfiguración, excepto posiblemente para una solicitud de restablecimiento de SSN entrante, que genera un parámetro de solicitud de restablecimiento de SSN saliente si se concede.
- Tipo de parámetro
- Siempre 16 para el parámetro de respuesta de reconfiguración
- Longitud del parámetro
- 12 o 20
- Parámetros fijos:
- Número de secuencia de respuesta de reconfiguración
- Número de secuencia de la solicitud de reconfiguración correspondiente.
- Resultado
- Código de resultado
- Parámetros opcionales: (deben estar presentes ambos o ninguno)
- Próximo TSN del remitente
- Próximo TSN que utilizará el remitente de la respuesta. Solo en respuesta a una solicitud de restablecimiento de SSN/TSN.
- Próximo TSN del receptor
- Próximo TSN que debe utilizar el receptor de la respuesta. Solo en respuesta a una solicitud de restablecimiento de SSN/TSN.
Agregar parámetro de solicitud de transmisiones salientes
El remitente utiliza este parámetro para solicitar que se agreguen transmisiones salientes adicionales a la asociación (es decir, transmisiones entrantes para el receptor).
- Tipo de parámetro
- Siempre 17 para el parámetro de solicitud de agregar flujos salientes
- Longitud del parámetro
- 12
- Parámetros fijos:
- Número de secuencia de solicitud de reconfiguración
- Número de secuencia de esta solicitud de reconfiguración.
- Número de nuevos streams
- Número de transmisiones salientes (de remitente a receptor) que se agregarán a la asociación.
- Parámetros opcionales: ninguno
Agregar parámetro de solicitud de transmisiones entrantes
El remitente utiliza este parámetro para solicitar que se agreguen transmisiones entrantes adicionales a la asociación (es decir, transmisiones salientes para el receptor).
- Tipo de parámetro
- Siempre 18 para el parámetro de solicitud de agregar transmisiones entrantes
- Longitud del parámetro
- 12
- Parámetros fijos:
- Número de secuencia de solicitud de reconfiguración
- Número de secuencia de esta solicitud de reconfiguración.
- Número de nuevos streams
- Número de transmisiones entrantes (del receptor al remitente) que se agregarán a la asociación.
- Parámetros opcionales: ninguno
Fragmento de PAD
El fragmento PAD se introdujo para facilitar el descubrimiento de la MTU de la ruta , [7] al permitir que un remitente aumente arbitrariamente el tamaño de un paquete SCTP.
- Tipo de trozo
- siempre 132 para el fragmento de relleno (PAD).
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Depende del tamaño de los datos de relleno. La longitud mínima es de 4 bytes.
- Parámetros fijos: ninguno
- Parámetros opcionales:
- Datos de relleno
- Datos arbitrarios: serán ignorados y descartados sin contemplaciones por el receptor.
Fragmento de I-DATA
El fragmento I-DATA se introdujo para evitar que un mensaje grande en un flujo bloqueara la transmisión de mensajes en todos los demás flujos: SCTP utiliza principalmente el TSN para lograr confiabilidad. En algunos casos, el TSN también es necesario para distinguir diferentes fragmentos de DATOS. [8]
Cuando se fragmenta un mensaje, el TSN de DATOS también funciona como un número de secuencia de fragmento. Esto significa que todos los fragmentos de un mensaje deben enviarse utilizando TSN consecutivos, lo que bloquea de manera efectiva todos los demás datos. El fragmento I-DATA desenreda los diferentes usos del TSN en los fragmentos de DATOS.
Como los fragmentos DATA e I-DATA no son compatibles, no es posible utilizarlos ambos en la misma asociación.
- Tipo de trozo
- siempre 64 para datos de carga útil que admiten intercalado (I-DATA).
- Banderas de trozos
- Actualmente [actualizar]solo se utilizan 4 banderas
- I — El fragmento SACK debe ser devuelto sin demora.
- U: si se configura, indica que estos datos son un fragmento desordenado. Si un fragmento desordenado está fragmentado, cada fragmento tiene esta bandera configurada.
- B: si se configura, marca el fragmento inicial. Un fragmento no fragmentado tiene esta bandera configurada.
- E: si se configura, marca el fragmento final. Un fragmento no fragmentado tiene esta bandera configurada.
- Longitud del trozo
- La longitud del fragmento tiene un valor mínimo de 21, ya que no se permiten datos de tamaño inferior a un byte.
- Parámetros fijos:
- Número de secuencia de transmisión (TSN)
- El número de secuencia para todo el flujo de DATOS (utilizado para reconocimiento y retransmisión).
- Identificador de flujo
- Identificador de la secuencia a la que pertenece este fragmento de datos.
- Identificador de mensaje (MID)
- Identificador del mensaje en este flujo. Si un mensaje está fragmentado, se utiliza el mismo valor para todos los fragmentos. En el caso de los mensajes ordenados, el MID también especifica el orden en el que se deben enviar los mensajes a la capa superior. Los mensajes ordenados y desordenados en el mismo flujo utilizan secuencias MID independientes.
- Identificador de protocolo de carga útil
- Identificador de protocolo específico de la aplicación, [4] presente únicamente si se establece el indicador B. SCTP no lo utiliza ni lo modifica. Sin embargo, los dispositivos a lo largo de la ruta o los puntos finales pueden usarlo. Un valor de 0 indica que no se especifica ningún protocolo de carga útil.
- Número de secuencia del fragmento
- Número de fragmento para paquetes fragmentados. Solo está presente si no se establece el indicador B. Si se establece el indicador B, el número de secuencia del fragmento es implícitamente cero y el identificador del protocolo de carga útil ocupa el mismo espacio.
- Datos
- Datos específicos de la aplicación.
- Parámetros opcionales: ninguno.
Fragmento TSN ADELANTE
El fragmento FORWARD-TSN se introdujo para soportar la falta de confiabilidad selectiva: permite al remitente decirle al receptor que no retransmitirá cierta cantidad de fragmentos y solicita que el receptor considere todos estos fragmentos como recibidos.
- Tipo de trozo
- siempre 192 para el fragmento TSN hacia adelante (FORWARD-TSN).
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Depende de la cantidad de nuevos números de secuencia de transmisión incluidos.
- Parámetros fijos:
- Nuevo número de secuencia de transmisión acumulativa (TSN)
- El siguiente TSN que el receptor debe esperar. Cualquier TSN anterior debe considerarse recibido.
- Parámetros opcionales:
- Identificador de flujo 1.. N
- Identificadores de secuencias de secuencias que fueron omitidas por este fragmento.
- Secuencia de flujo 1.. N
- Nuevos números de secuencia de transmisión asociados con las transmisiones que se omitieron.
Fragmento de ASCONF
- Tipo de trozo
- siempre 193 para el fragmento de reconfiguración de dirección (ASCONF).
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Depende del tipo de dirección IP y del número y longitud de los parámetros ASCONF incluidos.
- Parámetros fijos:
- Número de secuencia
- El número de secuencia del paquete ASCONF.
- Parámetro de dirección
- tipo de parámetro: Tipo de dirección en el parámetro de dirección: 5 para IPv4, 6 para IPv6.
- Parámetro de dirección
- longitud del parámetro: Longitud del parámetro de dirección: 8 para IPv4, 20 para IPv6.
- Parámetro de dirección
- Dirección IP: 4 bytes para IPv4, 16 bytes para IPv6.
- Parámetros opcionales:
- Parámetro ASCONF 1..N
- Parámetros de reconfiguración de direcciones (longitud variable).
Fragmento I-FORWARD-TSN
El fragmento I-FORWARD-TSN se introdujo para usarse en lugar de FORWARD-TSN cuando se usa I-DATA en lugar de DATA.
- Tipo de trozo
- siempre 194 para el fragmento TSN de avance con soporte para intercalado (I-FORWARD-TSN).
- Banderas de trozos
- Actualmente no hay banderas utilizadas.
- Longitud del trozo
- Depende de la cantidad de nuevos identificadores de mensajes de transmisión incluidos.
- Parámetros fijos:
- Nuevo número de secuencia de transmisión acumulativa (TSN)
- El siguiente TSN que el receptor debe esperar. Cualquier TSN anterior debe considerarse recibido.
- Parámetros opcionales:
- Identificador de flujo 1.. N
- Identificadores de secuencias de secuencias que fueron omitidas por este fragmento.
- tú
- 0 si el nuevo identificador de mensaje está asociado con los mensajes ordenados, 1 si está asociado con los mensajes desordenados en el flujo.
- Identificador del mensaje 1.. N
- Nuevos identificadores de mensajes asociados con las transmisiones que se omitieron.
Notas
- ^ Castagnoli, G.; S. Brauer; M. Herrmann (junio de 1993). "Optimización de códigos de comprobación de redundancia cíclica con 24 y 32 bits de paridad". IEEE Transactions on Communications . 41 (6): 883. doi :10.1109/26.231911.Trabajo de Castagnoli et al. sobre selección algorítmica de polinomios CRC
- ^ Koopman, P. (junio de 2002). "Códigos de redundancia cíclica de 32 bits para aplicaciones de Internet". Actas de la Conferencia internacional sobre sistemas y redes confiables . págs. 459–468. doi :10.1109/DSN.2002.1028931. ISBN. 0-7695-1597-5. Número de identificación del sujeto 14775606.. Verificación de los resultados de Castagnoli mediante una búsqueda exhaustiva y algunos nuevos polinomios buenos
- ^ ab Véase https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml; posiblemente utilizado en un borrador de Internet.
- ^ ab Consulte https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-25 para obtener una lista de PPID asignados.
- ^ Consulte https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-26 para obtener una lista de identificadores HMAC asignados.
- ^ Aunque el RFC 4895 menciona el relleno, estrictamente hablando, el relleno no es parte del fragmento AUTH: no está incluido en la longitud del fragmento, y su presencia ya está asegurada por el propio protocolo SCTP, ordenado por el RFC 4960 (sección 3.2).
- ^ RFC 4821 - Descubrimiento de MTU de ruta de la capa de paquetización
- ^ El orden de dos fragmentos ordenados puede depender de la combinación de TSN y SSN, y dos fragmentos desordenados idénticos solo se pueden distinguir por sus TSN.
Referencias
- RFC 8260 Programadores de flujo y entrelazado de mensajes de usuario para el protocolo de transmisión de control de flujo
- RFC 7053 SACK-IMMEDIATELY Extensión para el protocolo de transmisión de control de flujo
- RFC 6525 Reconfiguración de flujo del protocolo de transmisión de control de flujo (SCTP)
- RFC 5061 Reconfiguración dinámica de direcciones del protocolo de transmisión de control de flujo (SCTP)
- Protocolo de transmisión de control de flujo RFC 4960 (obsoletos: 2960, 3309)
- RFC 4895 Fragmentos autenticados para el protocolo de transmisión de control de flujo (SCTP)
- RFC 4821 Descubrimiento de MTU de ruta de la capa de paquetización
- RFC 4820 Fragmento de relleno y parámetro para el protocolo de transmisión de control de flujo (SCTP)
- Erratas y problemas de la especificación del protocolo de transmisión de control de flujo (SCTP) RFC 4460
- Base de información de gestión (MIB) del protocolo de transmisión de control de flujo (SCTP) RFC 3873
- Extensión de confiabilidad parcial del protocolo de transmisión de control de flujo (SCTP) RFC 3758
- RFC 3554 sobre el uso del protocolo de transmisión de control de flujo (SCTP) con IPsec
- RFC 3436 Seguridad de la capa de transporte sobre el protocolo de transmisión de control de flujo
- Cambio de la suma de comprobación del protocolo de transmisión de control de flujo (SCTP) RFC 3309
- RFC 3286 Introducción al protocolo de transmisión de control de flujo
- Declaración de aplicabilidad del protocolo de transmisión de control de flujo RFC 3257
- Protocolo de transmisión de control de flujo RFC 2960