Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Apertura rápida TCP

Intercambio de datos de manera más eficiente usando TCP Fast Open

TCP Fast Open (TFO) es una actualización de TCP que ahorra hasta un tiempo completo de ida y vuelta (RTT) sobre el protocolo de enlace de conexión de tres vías estándar durante una sesión TCP. La compatibilidad con TFO es para MS-MPC y MS-MIC.

El protocolo de enlace de conexión de tres vías estándar implica tres conjuntos de mensajes de envío y recepción entre dos hosts y el siguiente intercambio de paquetes SYN (sincronización) y ACK (confirmación):

  1. El host A envía un paquete TCP SYN al host B. El host B lo recibe.

  2. El host B envía un paquete SYN-ACK al host A. El host A lo recibe.

  3. El host A envía un paquete ACK al host B. El host B lo recibe.

En TCP estándar, aunque los datos se pueden transportar en paquetes SYN, estos datos no se pueden entregar hasta que se complete el protocolo de enlace de tres vías. TFO elimina esta restricción y permite que los datos en paquetes SYN se entreguen a la aplicación, lo que produce una mejora significativa de la latencia.

El componente clave de TFO es la cookie de apertura rápida (cookie), que es una etiqueta de código de autenticación de mensajes (MAC) generada por el servidor. El cliente solicita una cookie en una conexión TCP normal, luego la utiliza para futuras conexiones TCP para intercambiar datos durante el protocolo de enlace.

La opción TFO se utiliza para solicitar o enviar una cookie TFO. Cuando una cookie no está presente o está vacía, el cliente utiliza la opción de solicitar una cookie del servidor. Cuando la cookie está presente, la opción se utiliza para pasar la cookie del servidor al cliente o del cliente de vuelta al servidor.

La siguiente lista describe cómo el cliente solicita una cookie TFO:

  1. El cliente envía un SYN con una opción TFO que tiene el campo de cookie vacío.

  2. El servidor genera una cookie y la envía a través de la opción TFO de un paquete SYN-ACK.

  3. El cliente almacena en caché la cookie para futuras conexiones TFO.

A partir de entonces, los dos dispositivos realizan un intercambio TFO:

  1. El cliente envía un SYN con datos y la cookie en la opción TFO.

  2. El servidor valida la cookie:

    • Si la cookie es válida, el servidor envía un SYN-ACK reconociendo tanto el SYN como los datos.

      A continuación, el servidor entrega los datos a la aplicación.

    • De lo contrario, el servidor elimina los datos y envía un SYN-ACK reconociendo solo el número de secuencia SYN.

El resto de la conexión procede como una conexión TCP normal. El cliente puede repetir muchas operaciones TFO una vez que adquiere una cookie (hasta que el servidor expire la cookie). Por lo tanto, TFO es útil para aplicaciones en las que el mismo cliente se vuelve a conectar al mismo servidor varias veces e intercambia datos.

Configuración de TFO

En este tema, se describen los tres modos de TCP Fast Open (TFO) y se dan ejemplos. El caso de usar NAT con TFO también está cubierto.

Tres modos para TFO

No se requiere ninguna configuración para usar TFO. TFO está habilitado de forma predeterminada. En el modo predeterminado, la PIC de servicio reenvía todos los paquetes TFO. Además del valor predeterminado, hay otros dos modos para TFO que se configuran a través de la CLI:

  • Eliminar TFO: si se establece este modo, no se reenvía ningún paquete TFO.

  • Desactivar TFO: si se establece este modo, cualquier paquete SYN o SYN ACK que contenga TFO, datos o ambos, será despojado del TFO y de los datos antes de ser reenviado.

La opción TFO está habilitada por conjunto de servicios. El conjunto de servicios puede ser un conjunto de servicios del próximo salto o un conjunto de servicios de estilo interfaz. A continuación se muestra un ejemplo de configuración de conjunto de servicios de estilo de interfaz:

En este caso, TFO está habilitado de forma predeterminada (sin configuración de TFO). El resultado del show services service-sets statistics tcp comando es el siguiente:

Si descarta paquetes habilitados para TFO, tiene la siguiente configuración y salida:

Si elimina la opción TFO, la configuración y la salida cambian en consecuencia:

Uso de NAT y TFO

Si NAT está configurado en el conjunto de servicios y usa TFO, debe configurar la agrupación de direcciones emparejada (APP). APP permite que una dirección IP privada se asigne a la misma dirección IP pública de un grupo NAT para todas sus sesiones.

Si no configura la aplicación, NAT puede proporcionar una dirección IP diferente al cliente desde el mismo grupo de NAT que la que envió al servidor anteriormente. El servidor no reconoce la dirección IP, descarta la opción TFO y responde con SYN ACK y no se reconocen los datos que envió el cliente. Por lo tanto, aunque la conexión sea correcta y no se pierda ningún paquete, se pierde el beneficio de TFO. Pero si el cliente regresa con la misma dirección IP, el servidor lo reconoce y reconoce los datos. Por lo tanto, siempre habilite APP con un valor de tiempo de espera de asignación alto con TFO.

Para configurar la aplicación:

  1. Configurar la aplicación:
  2. Configure un valor de tiempo de espera de asignación alta:

Configuración del control de fragmentación para interfaces de servicio MS-DPC y MS-PIC

Hay dos opciones de configuración disponibles para evitar el consumo excesivo de ciclos de CPU computacionales en una PIC de servicios causado por el manejo de un gran número de paquetes fragmentados. Este manejo de fragmentos puede ser explotado en ataques DOS. La fragment-limit opción establece un número máximo de fragmentos para un paquete. Cuando se excede este número, el paquete se descarta. El reassembly-timeout especifica el tiempo máximo desde la recepción del primer y último fragmento de un paquete. Cuando se excede el número, el paquete se descarta.

Para configurar el control de fragmentación para las interfaces de servicio de MS-DPC y MS-PIC:

  1. En el modo de configuración, vaya al nivel de [edit interfaces interface-name services-options jerarquía.
  2. Configure el límite de fragmentos.
  3. Configure el tiempo de espera de reensamblaje.

Operaciones de PIC de servicios de rastreo

Las operaciones de seguimiento realizan un seguimiento de todas las operaciones de servicios adaptables y las registran en un archivo de registro. Las descripciones de errores registrados proporcionan información detallada para ayudarle a resolver problemas más rápido.

De forma predeterminada, no se realiza un seguimiento de ningún evento. Si incluye la traceoptions instrucción en el nivel de jerarquía o[edit services logging], el comportamiento de seguimiento predeterminado es el [edit services adaptive-services-pics] siguiente:

  • Los eventos importantes se registran en un archivo llamado serviced ubicado en el directorio / var/log .

  • Cuando el archivo atendido alcanza los 128 kilobytes (KB), se le cambia el nombre serviced.0, luego serviced.2 y así sucesivamente, hasta que haya tres archivos de seguimiento. A continuación, se sobrescribe el archivo de seguimiento más antiguo (serviced.2). (Para obtener más información acerca de cómo se crean los archivos de registro, consulte el Explorador de registros del sistema).

  • Solo puede tener acceso a los archivos de registro el usuario que configura la operación de seguimiento.

No puede cambiar el directorio (/var/log) en el que se encuentran los archivos de seguimiento. Sin embargo, puede personalizar las demás configuraciones del archivo de seguimiento incluyendo las siguientes instrucciones:

Estas instrucciones se incluyen en el nivel de [edit services adaptive-services-pics traceoptions] jerarquía o [edit services logging traceoptions] .

Estas declaraciones se describen en las secciones siguientes:

Configuración del nombre de archivo de registro de Adaptive Services

De forma predeterminada, se atiende el nombre del archivo que registra la salida de seguimiento. Puede especificar un nombre diferente incluyendo la file instrucción en el nivel de [edit services adaptive-services-pics traceoptions] jerarquía o [edit services logging traceoptions] :

Configuración del número y el tamaño de los archivos de registro de Adaptive Services

De forma predeterminada, cuando el archivo de seguimiento alcanza los 128 kilobytes (KB) de tamaño, se le cambia el nombre filename.0, luego filenamea .1 y así sucesivamente, hasta que haya tres archivos de seguimiento. A continuación, se sobrescribe el archivo de seguimiento más antiguo (filename.2).

Puede configurar los límites del número y tamaño de los archivos de seguimiento incluyendo las siguientes instrucciones en el [edit services adaptive-services-pics traceoptions] nivel de jerarquía o [edit services logging traceoptions] :

Por ejemplo, establezca el tamaño máximo de archivo en 2 MB y el número máximo de archivos en 20. Cuando el archivo que recibe el resultado de la operación de seguimiento (filename) alcanza los 2 MB, filename se cambia el nombre filenamea .0 y se crea un nuevo archivo llamadofilename. Cuando el nuevo filename alcanza los 2 MB, filename .0 cambia el nombre a .1 y filename se le cambia el nombre filename filenamea .0. Este proceso se repite hasta que haya 20 archivos de seguimiento. A continuación, el archivo más antiguo (.19) se sobrescribe con el archivo más reciente (filenamefilename.0).

El número de archivos puede ser de 2 a 1000 archivos. El tamaño de cada archivo puede ser de 10 KB a 1 gigabyte (GB).

Configuración del acceso al archivo de registro

De forma predeterminada, solo puede tener acceso a los archivos de registro el usuario que configura la operación de seguimiento.

Para especificar que cualquier usuario pueda leer todos los archivos de registro, incluya la file world-readable instrucción en el nivel de [edit services adaptive-services-pics traceoptions] jerarquía o [edit services logging traceoptions] :

Para establecer explícitamente el comportamiento predeterminado, incluya la file no-world-readable instrucción en el nivel de [edit services adaptive-services-pics traceoptions] jerarquía o [edit services logging traceoptions] :

Configuración de una expresión regular para las líneas que se van a registrar

De forma predeterminada, el resultado de la operación de seguimiento incluye todas las líneas relevantes para los eventos registrados.

Puede refinar el resultado incluyendo la match instrucción en el nivel de [edit services adaptive-services-pics traceoptions file filename] jerarquía o [edit services logging traceoptions] y especificando una expresión regular (regex) para que coincida:

Configuración de las operaciones de seguimiento

De forma predeterminada, si la configuración está presente, solo se registran los traceoptions eventos importantes. Puede configurar las operaciones de seguimiento que se registrarán incluyendo las siguientes instrucciones en el nivel de [edit services adaptive-services-pics traceoptions] jerarquía o [edit services logging traceoptions] :

En la tabla 1 se describe el significado de los indicadores de seguimiento de servicios adaptables.

Tabla 1: Indicadores de seguimiento de servicios adaptables

Bandera

Descripción

Configuración predeterminada

all

Realice un seguimiento de todas las operaciones.

Desactivado

command-queued

El comando de seguimiento pone en cola eventos.

Desactivado

config

Lectura de registros de la configuración en el [edit services] nivel jerárquico.

Desactivado

handshake

Realice un seguimiento de los eventos del protocolo de enlace.

Desactivado

init

Rastrear eventos de inicialización.

Desactivado

interfaces

Realizar un seguimiento de eventos de la interfaz.

Desactivado

mib

Realizar un seguimiento de eventos MIB SNMP de GGSN.

Desactivado

removed-client

Realizar un seguimiento de los eventos de limpieza del cliente.

Desactivado

show

Servicio de comandos de Trace CLI.

Desactivado

Para mostrar el final del registro, ejecute el comando del show log serviced | last modo operativo: