Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Apertura rápida de TCP

Intercambio de datos más eficiente mediante 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 apretón de manos 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 apretón de manos 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 apretón de manos 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 y, a continuación, la utiliza para futuras conexiones TCP para intercambiar datos durante el apretón de manos.

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 para solicitar una cookie al servidor. Cuando la cookie está presente, la opción se utiliza para pasarla del servidor al cliente o del cliente 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 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 continuación, los dos dispositivos realizan un intercambio TFO:

  1. El cliente envía un SYN con los 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.

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

    • De lo contrario, el servidor descarta 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 de 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.

Configurar TFO

En este tema, se describen los tres modos de TCP Fast Open (TFO) y se dan ejemplos. También se cubre el caso del uso de TDR con TFO.

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 predeterminado, hay otros dos modos para TFO que se configuran mediante la CLI:

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

  • Deshabilitar TFO: si se establece este modo, cualquier paquete SYN o SYN ACK que contenga TFO, datos o ambos, se eliminará del TFO y los datos antes de reenviarse.

La opción TFO está habilitada por conjunto de servicios. El conjunto de servicios puede ser un conjunto de servicios de salto siguiente o un conjunto de servicios de estilo de 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 comando es el show services service-sets statistics tcp 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 TDR y TFO

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

Si no configura la aplicación, TDR puede dar una dirección IP diferente al cliente del mismo grupo de TDR que la que envió al servidor antes. El servidor no reconoce la dirección IP, descarta la opción TFO y responde con SYN ACK y no se reconoce los datos enviados por 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 la reconoce y reconoce los datos. Por lo tanto, habilite siempre la aplicación con un valor de tiempo de espera de asignación alto con TFO.

Para configurar la aplicación:

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

Configuración del control de fragmentación para las interfaces de servicio MS-CPC 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 se puede explotar en ataques DOS. La fragment-limit opción establece un número máximo de fragmentos para un paquete. Cuando se supera este número, se descarta el paquete. Especifica reassembly-timeout el tiempo máximo desde la recepción del primer y el último fragmento de un paquete. Cuando se supera el número, se descarta el paquete.

Para configurar el control de fragmentación para las interfaces de servicio MS-CPC 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.

Servicios de rastreo Operaciones de PIC

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

De forma predeterminada, no se realiza ningún seguimiento de eventos. Si incluye la traceoptions instrucción en el nivel de [edit services adaptive-services-pics] jerarquía o [edit services logging] , el comportamiento de seguimiento predeterminado es el 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 cambia el nombre a serviced.0, luego serviced.2, y así sucesivamente, hasta que haya tres archivos de seguimiento. A continuación, se sobrescribe el archivo de rastreo 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 rastreo.

No puede cambiar el directorio (/var/log) en el que se encuentran los archivos de rastreo. Sin embargo, puede personalizar el resto de la configuración del archivo de rastreo incluyendo las instrucciones siguientes:

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

Estas instrucciones se describen en las secciones siguientes:

Configuración del registro de servicios adaptables filename

De forma predeterminada, se atiende el nombre del archivo que registra la salida de rastreo. 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 servicios adaptables

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

Puede configurar los límites en el número y tamaño de los archivos de rastreo 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 rastreo (filename) alcanza los 2 MB, filename se cambia el nombre filenamea .0 y se crea un nuevo archivo llamado filename . Cuando el nuevo filename alcanza los 2 MB, filename.0 pasa a denominarse filename.1 y filename filename.0. Este proceso se repite hasta que hay 20 archivos de rastreo. Luego, el archivo más antiguo (filename.19) se sobrescribe con el archivo más nuevo (filename.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 rastreo.

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

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

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

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

Configuración de las operaciones de rastreo

De forma predeterminada, si la traceoptions configuración está presente, solo se registran los eventos importantes. Puede configurar las operaciones de rastreo 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 el Cuadro 1 se describe el significado de las banderas de rastreo de servicios adaptables.

Tabla 1: Indicadores de seguimiento de servicios adaptables

Bandera

Descripción

Configuración predeterminada

all

Rastree todas las operaciones.

Desactivado

command-queued

Rastrear eventos de cola.

Desactivado

config

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

Desactivado

handshake

Rastree eventos de apretón de manos.

Desactivado

init

Rastree los eventos de inicialización.

Desactivado

interfaces

Rastree eventos de interfaz.

Desactivado

mib

Rastree los eventos MIB SNMP de GGSN.

Desactivado

removed-client

Rastree los eventos de limpieza del cliente.

Desactivado

show

Seguimiento de mantenimiento de comandos de la CLI.

Desactivado

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