Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción de la notificación de congestión explícita de CoS

La notificación de congestión explícita (ECN) permite la notificación de congestión de extremo a extremo entre dos puntos de conexión en redes basadas en TCP/IP. Los dos puntos de conexión son un remitente habilitado para ECN y un receptor habilitado para ECN. La ECN debe habilitarse en ambos puntos de conexión y en todos los dispositivos intermedios entre los puntos de conexión para que la ECN funcione correctamente. Cualquier dispositivo de la ruta de transmisión que no admita ECN rompe la funcionalidad de ECN de extremo a extremo.

ECN notifica a las redes sobre la congestión con el objetivo de reducir la pérdida y el retraso de paquetes haciendo que el dispositivo de envío disminuya la velocidad de transmisión hasta que la congestión se despeje, sin perder paquetes. El RFC 3168, La adición de la notificación de congestión explícita (ECN) a la IP, define ECN.

La ECN está deshabilitada de forma predeterminada. Por lo general, se habilita la ECN solo en colas que manejan el tráfico de máximo esfuerzo, ya que otros tipos de tráfico utilizan diferentes métodos de notificación de congestión: el tráfico sin pérdidas usa el control de flujo basado en prioridades (PFC) y el tráfico de prioridad estricta recibe todo el ancho de banda de puerto que necesita hasta el punto de una velocidad máxima configurada.

Para habilitar ecn en colas de salida individuales (representadas por las clases de reenvío) se habilita ECN en la configuración del programador de colas, se asigna el programador a clases de reenvío (colas) y, luego, se aplica el programador a interfaces.

Nota:

Para que la ECN funcione en una cola, también debe aplicar un perfil de caída de paquetes de detección temprana aleatoria ponderada (WRED) a la cola.

Cómo funciona la ECN

Sin ECN, los conmutadores responden a la congestión de la red mediante la caída de los paquetes TCP/IP. Los paquetes caídos indican a la red que se está produciendo una congestión. Los dispositivos de la red IP responden a las caídas de paquetes TCP mediante la reducción de la velocidad de transmisión de paquetes para permitir que la congestión se despeje. Sin embargo, el método de caída de paquetes de notificación y administración de congestión tiene algunas desventajas. Por ejemplo, los paquetes se pierden y se deben retransmitir. Además, el tráfico de ráfagas puede hacer que la red reduzca demasiado la velocidad de transmisión, lo que resulta en una utilización ineficiente del ancho de banda.

En lugar de dejar caer paquetes para señalizar la congestión de la red, la ECN marca los paquetes para señalar la congestión de la red, sin soltar los paquetes. Para que la ECN funcione, todos los conmutadores de la ruta entre dos puntos de conexión habilitados para ECN deben tener ecn habilitada. La ECN se negocia durante el establecimiento de la conexión TCP entre los puntos de conexión.

Los conmutadores habilitados para ECN determinan el estado de congestión de cola según la configuración del perfil de caída de paquetes WRED aplicada a la cola, por lo que cada cola habilitada para ECN también debe tener un perfil de caída WRED. Si una cola se llena al nivel en el que el perfil de caída WRED tiene una probabilidad de caída de paquete mayor que cero (0), el conmutador puede marcar un paquete que experimenta congestión. Si un conmutador marca o no un paquete como experimenta congestión es la misma probabilidad que la probabilidad de caída de la cola en ese nivel de llenado.

La ECN comunica si se experimenta o no congestión marcando los dos bits menos significativos en el campo servicios diferenciados (DiffServ) en el encabezado IP. Los seis bits más significativos del campo DiffServ contienen los bits de punto de código de servicios diferenciados (DSCP). El estado de los dos bits ECN indica si el paquete es o no un paquete compatible con ECN y si se ha experimentado o no congestión.

Los remitentes compatibles con ECN marcan paquetes como compatibles con ECN. Si un remitente no es compatible con ECN, marca los paquetes como no compatibles con ECN. Si un paquete compatible con ECN experimenta congestión en la cola de salida de un conmutador, el conmutador marca que el paquete experimenta congestión. Cuando el paquete llega al receptor compatible con ECN (punto de conexión de destino), el receptor hace eco del indicador de congestión al remitente (punto de conexión de origen) mediante el envío de un paquete marcado para indicar congestión.

Después de recibir el indicador de congestión del receptor, el punto de conexión de origen reduce la velocidad de transmisión para aliviar la congestión. Esto es similar al resultado de la administración y la notificación de congestión TCP, pero en lugar de soltar el paquete para señalar la congestión de la red, ECN marca el paquete y el receptor hace eco de la notificación de congestión al remitente. Dado que el paquete no se pierde, no es necesario retransmitirlo.

Bits ECN en el campo DiffServ

Los dos bits ECN del campo DiffServ proporcionan cuatro códigos que determinan si un paquete está marcado como paquete de transporte compatible con ECN (ECT), lo que significa que ambos puntos de conexión del protocolo de transporte son compatibles con ECN y si hay congestión experimentada (CE), como se muestra en la Tabla 1:

Tabla 1: Códigos de bits ECN

Bits ECN (código)

Significado

00

No ECT: el paquete se marca como no compatible con ECN

01

ECT(1): los puntos de conexión del protocolo de transporte son compatibles con ECN

10

ECT(0): los puntos de conexión del protocolo de transporte son compatibles con ECN

11

CE: congestión experimentada

Los códigos 01 y 10 tienen el mismo significado: los puntos de conexión de envío y recepción del protocolo de transporte son compatibles con ECN. No hay diferencia entre estos códigos.

Comportamiento de ECN de extremo a extremo

Después de que los puntos de conexión de envío y recepción negocien la ECN, el punto de conexión de envío marca los paquetes como compatibles con ECN estableciendo el campo ECN DiffServ en ECT(1) (01) o ECT(0) (10). Cada conmutador intermedio entre los puntos de conexión debe tener ECN habilitada o no funciona.

Cuando un paquete atraviesa un conmutador y experimenta congestión en una cola de salida que usa el mecanismo de caída de paquetes WRED, el conmutador marca el paquete como experimenta congestión estableciendo el campo ECN DiffServ en CE (11). En lugar de soltar el paquete (como con la notificación de congestión TCP), el conmutador reenvía el paquete.

Nota:

En la cola de salida, el algoritmo WRED determina si un paquete es o no apto para soltar según el nivel de llenado de cola (qué tan completa es la cola). Si un paquete es elegible para soltar y se marca como compatible con ECN, el paquete se puede marcar CE y reenviarse. Si un paquete es elegible para soltar y no está marcado como compatible con ECN, es posible que se caiga. Consulte Control de perfil de caída WRED de umbrales ECN para obtener más información acerca del algoritmo WRED.

Cuando el paquete llega al punto de conexión del receptor, la marca CE le indica al receptor que hay congestión de red. Luego, el receptor envía (hace eco) un mensaje al remitente que indica que hay congestión en la red. El remitente reconoce el mensaje de notificación de congestión y reduce su velocidad de transmisión. La figura 1 resume cómo funciona la ECN para mitigar la congestión de la red:

Figura 1: Notificación Explicit Congestion Notification explícita de congestión

El comportamiento de ECN de extremo a extremo incluye:

  1. El remitente y el receptor compatibles con ECN negocian la capacidad de ECN durante el establecimiento de su conexión.

  2. Después de la negociación exitosa de la capacidad de ECN, el remitente compatible con ECN envía paquetes IP con el campo ECT establecido al receptor.

    Nota:

    Todos los dispositivos intermedios en la ruta entre el remitente y el receptor deben estar habilitados para ECN.

  3. Si el algoritmo WRED en una cola de salida del conmutador determina que la cola está experimentando congestión y que el paquete es apto para soltar, el conmutador puede marcar el paquete como "congestión experimentada" (CE) para indicar al receptor que hay congestión en la red. Si el paquete ya ha recibido la marca CE (ya se experimentó congestión en la salida de otro conmutador), el conmutador reenvía el paquete con el marcado CE.

    Si no hay congestión en la cola de salida del conmutador, el conmutador reenvía el paquete y no cambia el marcado habilitado para ECT de los bits ECN, por lo que el paquete sigue marcado como compatible con ECN, pero no experimenta congestión.

    En los conmutadores QFX5210, QFX5200, QFX5100, EX4600, QFX3500 y QFX3600, y en sistemas QFabric, los paquetes que no están marcados como compatibles con ECN (ECT, 00) se tratan de acuerdo con la configuración del perfil de caída de WRED y podrían caerse durante períodos de congestión.

    En los conmutadores QFX10000, el conmutador usa el algoritmo de cola para soltar paquetes que se marcan ECT (00) durante los períodos de congestión. (Cuando una cola se llena hasta su nivel máximo de plenitud, simplemente se pierden todos los paquetes que llegan posteriormente hasta que haya espacio en la cola para almacenar en búfer más paquetes. Todos los paquetes que no son compatibles con ECN se tratan igual.)

  4. El receptor recibe un paquete marcado CE para indicar que se experimentó congestión a lo largo de la ruta de congestión.

  5. El receptor hace eco (envía) un paquete al remitente con el bit ECE (bit 9) marcado en el campo de marca del encabezado TCP. El bit ECE es el bit de marca de eco ECN, que notifica al remitente que hay congestión en la red.

  6. El remitente reduce la velocidad de transmisión de datos y envía un paquete al receptor con el bit CWR (bit 8) marcado en el campo de marca del encabezado TCP. El bit CWR es el bit de marca reducido de la ventana de congestión, que reconoce al receptor que se recibió la notificación de congestión experimentada.

  7. Cuando el receptor recibe el indicador CWR, el receptor deja de configurar el bit ECE en las respuestas al remitente.

En la tabla 2 se resume el comportamiento del tráfico en las colas habilitadas para ECN.

Tabla 2: Comportamiento del tráfico en colas habilitadas para ECN

Marcado de paquetes IP entrantes de bits ECN

Configuración de ECN en la cola de salida

Acción si el algoritmo WRED determina que el paquete es elegible para soltar

Marcado de paquetes de salida de bits ECN

No ECT (00)

No importa

Caída (QFX5210, QFX5200, QFX5100, EX4600, QFX3500, QFX3600, QFabric systems).

La caída de cola se produce cuando la cola alcanza la máxima plenitud porque no se aplica probabilidad de caída WRED (conmutadores QFX10000).

Sin bits ECN marcados

ECT (10 o 01)

ECN deshabilitado

Soltar

Paquete caído: sin bits ECN marcados

ECT (10 o 01)

Habilitado para ECN

No caiga. Marque el paquete como experimenta congestión (CE, bits 11).

Paquete marcado con ECT (11) para indicar congestión

CE (11)

ECN deshabilitado

Soltar

Paquete caído: sin bits ECN marcados

CE (11)

Habilitado para ECN

No caiga. El paquete ya está marcado como experimenta congestión, reenvío de paquete sin cambiar el marcado ECN.

Paquete marcado con ECT (11) para indicar congestión

Cuando una cola de salida no experimenta congestión según lo definido por el perfil de caída WRED asignado a la cola, se reenvían todos los paquetes y no se pierden paquetes.

ECN en comparación con PFC y Ethernet PAUSE

LA ECN es un mecanismo de notificación de congestión de red de extremo a extremo para el tráfico IP. El control de flujo basado en prioridades (PFC) (IEEE 802.1Qbb) y Ethernet PAUSE (IEEE 802.3X) son diferentes tipos de mecanismos de gestión de congestión.

LA ECN requiere que una cola de salida también tenga un perfil de caída de paquetes WRED asociado. Las colas de salida utilizadas para el tráfico en el que PFC está habilitado no deben tener un perfil de caída WRED asociado. Las interfaces en las que Ethernet PAUSE está habilitado no deben tener un perfil de caída WRED asociado.

PFC es un mecanismo de control de flujo par a par para admitir tráfico sin pérdidas. PFC permite que los dispositivos pares conectados pausan la transmisión de flujo durante los períodos de congestión. PFC le permite pausar el tráfico en un tipo de flujo especificado en un vínculo en lugar de en todo el tráfico de un vínculo. Por ejemplo, puede (y debería) habilitar PFC en clases de tráfico sin pérdidas, como la fcoe clase de reenvío. Ethernet PAUSE también es un mecanismo de control de flujo par a par, pero en lugar de pausar solo flujos de tráfico especificados, Ethernet PAUSE pausa todo el tráfico en un vínculo físico.

Con PFC y Ethernet PAUSE, los puntos de conexión de envío y recepción de un flujo no comunican información de congestión entre sí a través de los conmutadores intermedios. En su lugar, PFC controla los flujos entre dos dispositivos par habilitados para PFC (por ejemplo, conmutadores) que admiten estándares de puente de centro de datos (DCB). PFC funciona mediante el envío de un mensaje de pausa al par conectado cuando la cola de salida del flujo se congestiona. Ethernet PAUSE simplemente pausa todo el tráfico en un vínculo durante los períodos de congestión y no requiere DCB.

PFC funciona de esta manera: si una cola de salida del conmutador se llena hasta un umbral determinado, el conmutador envía un mensaje de pausa de PFC al dispositivo par conectado que está transmitiendo datos. El mensaje de pausa le dice al conmutador de transmisión que detenga la transmisión del flujo. Cuando se despeje la congestión, el conmutador envía otro mensaje PFC para indicar al par conectado que reanude la transmisión. (Si la cola de salida del conmutador de transmisión también alcanza un determinado umbral, ese conmutador puede, a su vez, enviar un mensaje de pausa de PFC al par conectado que le está transmitiendo. De esta manera, PFC puede propagar una pausa de transmisión de vuelta a la red.)

Consulte Descripción del control de flujo de CoS (Ethernet PAUSE y PFC) para obtener más información. Solo para conmutadores QFX5100 y EX4600, también puede consultar Descripción de la funcionalidad de PFC en interfaces de capa 3.

Control de perfil de caída WRED de umbrales ECN

Se aplican perfiles de caída WRED a clases de reenvío (que se asignan a colas de salida) para controlar cómo el conmutador marca paquetes compatibles con ECN. Una asignación de programador asocia un perfil de caída con un programador y una clase de reenvío, y, luego, aplica la asignación del programador a las interfaces para implementar las propiedades de programación para la clase de reenvío en esas interfaces.

Los perfiles de caída definen el nivel de llenado de cola (el porcentaje de la plenitud de la cola) y la probabilidad de caída (el porcentaje de probabilidad de que un paquete se caiga). Cuando una cola se llena a un nivel especificado, el tráfico que coincide con el perfil de caída tiene la probabilidad de caída emparejada con ese nivel de relleno. Cuando se configura un perfil de caída, se configuran pares de niveles de llenado y probabilidades de caída para controlar cómo los paquetes se caen en diferentes niveles de plenitud de colas.

El primer par de nivel de llenado y probabilidad de caída es el punto de inicio de caída. Hasta que la cola alcanza el primer nivel de relleno, los paquetes no se pierden. Cuando la cola alcanza el primer nivel de llenado, los paquetes que superan el nivel de llenado tienen una probabilidad de caída que es igual a la probabilidad de caída emparejada con el nivel de relleno.

El último par de nivel de llenado y probabilidad de caída es el punto final de caída. Cuando la cola alcanza el último nivel de relleno, todos los paquetes se pierden a menos que estén configurados para ECN.

Nota:

Las colas sin pérdidas (clase de reenvío configurada con el atributo de caída de no-loss paquetes) y las colas de prioridad alta estricta no utilizan perfiles de caída. Las colas sin pérdidas usan PFC para controlar el flujo de tráfico. Las colas de prioridad estricta y alta reciben todo el ancho de banda de puerto que requieren hasta el límite de ancho de banda máximo configurado (programador transmit-rate en conmutadores QFX10000 y shaping-rate en conmutadores QFX5210, QFX5200, QFX5100, QFX3500, QFX3600 y EX4600, y sistemas QFabric).

Diferentes conmutadores admiten diferentes cantidades de pares de nivel de llenado/probabilidad de caída en perfiles de caída. Por ejemplo, los conmutadores QFX10000 admiten 32 pares de nivel de llenado/probabilidad de caída, por lo que puede haber hasta 30 pares de nivel de llenado intermedio/probabilidad de caída entre los puntos de conexión de caída y caída. Los conmutadores QFX5210, QFX5200, QFX5100, QFX3500, QFX3600 y EX4600, y los sistemas QFabric admiten dos pares de nivel de llenado/probabilidad de caída; por definición, los dos pares que configura en estos conmutadores son los puntos de inicio y fin de caída.

Nota:

No configure el último nivel de llenado como 100 %.

La configuración del perfil de caída afecta a los paquetes ECN de la siguiente manera:

  • Punto de inicio de caída: los paquetes compatibles con ECN pueden marcarse como congestión experimentada (CE).

  • Punto de caída: los paquetes compatibles con ECN siempre tienen la marca CE.

A medida que una cola se rellena desde el punto de inicio de caída hasta el punto de caída final, la probabilidad de que un paquete ECN esté marcado CE es la misma que la probabilidad de que un paquete que no sea ECN se caiga si aplica el perfil de caída al tráfico de mejor esfuerzo. A medida que se completa la cola, aumenta la probabilidad de que un paquete ECN se marque CE, del mismo modo que aumenta la probabilidad de que se caiga un paquete que no sea ECN cuando se aplica el perfil de caída al tráfico de mejor esfuerzo.

En el punto de caída, todos los paquetes ECN se marcan CE, pero los paquetes ECN no se pierden. Cuando el nivel de llenado de cola supera el punto de caída, todos los paquetes ECN se marcan CE. (En este punto, en los conmutadores QFX5210, QFX5200, QFX5100, EX4600, QFX3500 y QFX3600, y en los sistemas QFabric, todos los paquetes que no sean ECN se pierden). Los paquetes ECN (y todos los demás paquetes) se pierden si la cola se completa.

Para configurar un perfil de caída de paquetes WRED y aplicarlo a una cola de salida (mediante programación jerárquica en conmutadores compatibles con ETS):

  1. Configure un perfil de caída mediante la instrucción set class-of-service drop-profiles profile-name interpolate fill-level drop-start-point fill-level drop-end-point drop-probability 0 drop-probability percentage.

  2. Asigne el perfil de caída a un programador de colas mediante la instrucción set class-of-service schedulers scheduler-name drop-profile-map loss-priority (low | medium-high | high) protocol any drop-profile profile-name. El nombre del perfil de caída es el nombre del perfil WRED configurado en el paso 1.

  3. Asigne el programador, que el paso 2 asocia con el perfil de caída, a la cola de salida mediante la instrucción set class-of-service scheduler-maps map-name forwarding-class forwarding-class-name scheduler scheduler-name. La clase de reenvío identifica la cola de salida. Las clases de reenvío se asignan a colas de salida de forma predeterminada y se pueden volver a aplicar a diferentes colas mediante la configuración explícita del usuario. El nombre del programador es el programador configurado en el paso 2.

  4. Asocie la asignación del programador con un perfil de control de tráfico mediante la instrucción set class-of-service traffic-control-profiles tcp-name scheduler-map map-name. El nombre de la asignación del programador es el nombre configurado en el paso 3.

  5. Asocie el perfil de control de tráfico con una interfaz mediante la instrucción set class-of-service interface interface-name forwarding-class-set forwarding-class-set-name output-traffic-control-profile tcp-name. El nombre del perfil de control de tráfico de salida es el nombre del perfil de control de tráfico configurado en el paso 4.

    La interfaz usa la asignación del programador en el perfil de control de tráfico para aplicar el perfil de caída (y otros atributos, incluido el atributo habilitar ECN) a la cola de salida (clase de reenvío) en esa interfaz. Dado que puede usar diferentes perfiles de control de tráfico para asignar programadores diferentes a diferentes interfaces, el mismo número de cola en diferentes interfaces puede manejar el tráfico de diferentes maneras.

A partir de la versión 15.1, puede configurar un perfil de caída de paquetes WRED y aplicarlo a una cola de salida en conmutadores que admitan programación de puertos (la programación jerárquica ETS no se admite o no se utiliza). Para configurar un perfil de caída de paquetes WRED y aplicarlo a una cola de salida en conmutadores que admiten programación de puertos (no se admite o no se utiliza la programación jerárquica ETS):

  1. Configure un perfil de caída mediante la instrucción set class-of-service drop-profiles profile-name interpolate fill-level level1 level2 ... level32 drop-probability probability1 probability2 ... probability32. Puede especificar tan solo dos pares de nivel de llenado/probabilidad de caída o hasta 32 pares.

  2. Asigne el perfil de caída a un programador de colas mediante la instrucción set class-of-service schedulers scheduler-name drop-profile-map loss-priority (low | medium-high | high) drop-profile profile-name. El nombre del perfil de caída es el nombre del perfil WRED configurado en el paso 1.

  3. Asigne el programador, que el paso 2 asocia con el perfil de caída, a la cola de salida mediante la instrucción set class-of-service scheduler-maps map-name forwarding-class forwarding-class-name scheduler scheduler-name. La clase de reenvío identifica la cola de salida. Las clases de reenvío se asignan a colas de salida de forma predeterminada y se pueden volver a aplicar a diferentes colas mediante la configuración explícita del usuario. El nombre del programador es el programador configurado en el paso 2.

  4. Asocie la asignación del programador con una interfaz mediante la instrucción set class-of-service interfaces interface-name scheduler-map scheduler-map-name.

    La interfaz usa la asignación del programador para aplicar el perfil de caída (y otros atributos) a la cola de salida asignada a la clase de reenvío en esa interfaz. Dado que puede usar diferentes mapas de programador en diferentes interfaces, el mismo número de cola en diferentes interfaces puede manejar el tráfico de diferentes maneras.

Soporte, limitaciones y notas

Si el algoritmo WRED asignado a una cola no encuentra que una caída de paquete sea elegible, la configuración de ECN y el marcado de bits ECN no importan. El comportamiento de transporte de paquetes es el mismo que cuando la ECN no está habilitada.

La ECN está deshabilitada de forma predeterminada. Por lo general, habilita la ECN solo en colas que manejan el tráfico de máximo esfuerzo y no habilita la ECN en colas que manejan tráfico sin pérdidas o tráfico de prioridad estricta.

LA ECN admite lo siguiente:

  • Paquetes IPv4 e IPv6

  • Paquetes sin etiquetar, con una sola etiqueta y con doble etiqueta

  • El encabezado IP externo de los paquetes tunelados IP (pero no el encabezado IP interno)

La ECN no admite lo siguiente:

  • Paquetes IP con encapsulación MPLS

  • El encabezado IP interno de los paquetes tunelizadas IP (sin embargo, ECN funciona en el encabezado IP externo)

  • Tráfico de errores de multidifusión, difusión y búsqueda de destino (DLF)

  • Tráfico que no es IP

Nota:

En los conmutadores QFX10000, cuando habilita una cola para ECN y aplica un perfil de caída WRED a la cola, el perfil de caída WRED solo establece los umbrales para marcar el tráfico de ECN como experimenta congestión (CE, 11). En las colas habilitadas para ECN, el perfil de caída de WRED no establece umbrales de caída para tráfico que no es ECT (00) (tráfico que no es compatible con ECN). En su lugar, el conmutador usa el algoritmo de cola en el tráfico que está marcado como no ECT en colas habilitadas para ECN durante los períodos de congestión.

Para aplicar un perfil de caída WRED al tráfico que no es de ECT, configure un clasificador de varios campos (MF) para asignar tráfico que no sea ECT a una cola de salida diferente que no esté habilitada para ECN y, a continuación, aplique el perfil de caída WRED a esa cola.

Tabla de historial de versiones
Lanzamiento
Descripción
15.1
A partir de la versión 15.1, puede configurar un perfil de caída de paquetes WRED y aplicarlo a una cola de salida en conmutadores que admitan programación de puertos (la programación jerárquica ETS no se admite o no se utiliza).