Notificación de congestión explícita del CoS
La notificación de congestión explícita (ECN) permite la notificación de congestión de extremo a extremo entre dos puntos finales en redes basadas en TCP/IP. Los dos puntos de conexión son un emisor habilitado para ECN y un receptor habilitado para ECN. ECN debe estar habilitado en ambos puntos finales y en todos los dispositivos intermedios entre los puntos finales para que ECN funcione correctamente. Cualquier dispositivo en la ruta de transmisión que no admita ECN interrumpe la funcionalidad 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 desaparezca, sin perder paquetes. RFC 3168, La adición de notificación de congestión explícita (ECN) a IP, define ECN.
ECN está deshabilitado de forma predeterminada. Normalmente, ECN solo se habilita en colas que controlan el tráfico de mejor esfuerzo porque otros tipos de tráfico utilizan métodos diferentes de notificación de congestión: el tráfico sin pérdidas utiliza el control de flujo basado en prioridad (PFC) y el tráfico de prioridad estricta alta 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 clases de reenvío) habilita ECN en la configuración del programador de colas, asigna el programador a clases de reenvío (colas) y, a continuación, aplica el programador a las interfaces.
Hay dos tipos de ECN: ECN estático y ECN dinámico (D-ECN). La ECN estática requiere que configure manualmente los umbrales que activan las notificaciones de congestión, y los umbrales permanecen iguales hasta que cambie la configuración. La ECN dinámica ajusta los umbrales automáticamente en función de las condiciones en tiempo real, como la longitud de la cola y los patrones de tráfico.
En dispositivos compatibles, ambas versiones ECN se pueden habilitar en su dispositivo al mismo tiempo, pero solo se puede asignar una versión a una cola determinada a la vez.
Para que 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 ECN
Sin ECN, los dispositivos responden a la congestión de la red dejando caer los paquetes TCP/IP. Los paquetes perdidos indican a la red que se está produciendo congestión. Los dispositivos en la red IP responden a las caídas de paquetes TCP reduciendo la velocidad de transmisión de paquetes para permitir que se despeje la congestión. Sin embargo, el método de entrega de paquetes de notificación y administración de congestión tiene algunas desventajas. Por ejemplo, los paquetes se descartan y deben ser retransmitidos. Además, el tráfico en 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 soltar paquetes para señalar la congestión de la red, ECN marca los paquetes para señalar la congestión de la red, sin dejar caer los paquetes. Para que ECN funcione, todos los dispositivos en la ruta entre dos puntos de conexión habilitados para ECN deben tener ECN habilitado. ECN se negocia durante el establecimiento de la conexión TCP entre los puntos finales.
Los dispositivos habilitados para ECN determinan el estado de congestión de la cola en función de la configuración del perfil de colocación 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 hasta el nivel en el que el perfil de colocación de WRED tiene una probabilidad de caída de paquetes mayor que cero (0), el dispositivo podría marcar un paquete como congestionado. Si un dispositivo marca o no un paquete como experimentando congestión es la misma probabilidad que la probabilidad de caída de la cola en ese nivel de llenado.
ECN comunica si se experimenta o no congestión marcando los dos bits menos significativos en el campo de 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 los 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 dispositivo, el dispositivo marca el paquete como experimentando congestión. Cuando el paquete llega al receptor compatible con ECN (punto final de destino), el receptor se hace eco del indicador de congestión al remitente (punto final de origen) enviando un paquete marcado para indicar congestión.
Después de recibir el indicador de congestión del receptor, el punto final de origen reduce la velocidad de transmisión para aliviar la congestión. Esto es similar al resultado de la notificación y administració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 se hace eco de la notificación de congestión al remitente. Debido a que el paquete no se descarta, no es necesario retransmitir el paquete.
- Bits ECN en el campo DiffServ
- Comportamiento ECN de extremo a extremo
- ECN en comparación con la pausa de PFC y Ethernet
Bits ECN en el campo DiffServ
Los dos bits ECN en el campo DiffServ proporcionan cuatro códigos que determinan si un paquete está marcado como un paquete de transporte con capacidad ECN (ECT), lo que significa que ambos puntos finales del protocolo de transporte son compatibles con ECN y si hay congestión experimentada (CE), como se muestra en la Tabla 1:
Bits ECN (código) |
Significado |
---|---|
00 |
No ECT: el paquete está marcado como no compatible con ECN |
01 |
ECT(1): los puntos finales del protocolo de transporte son compatibles con ECN |
10 |
ECT(0): los puntos finales 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 finales de envío y recepción del protocolo de transporte son compatibles con ECN. No hay diferencia entre estos códigos.
Comportamiento ECN de extremo a extremo
Después de que los extremos de envío y recepción negocian ECN, el punto de conexión de envío marca los paquetes como compatibles con ECN estableciendo el campo ECN de DiffServ en ECT(1) (01) o ECT(0) (10). Todos los dispositivos intermedios entre los puntos de conexión deben tener habilitado ECN o no funcionará.
Cuando un paquete atraviesa un dispositivo y experimenta congestión en una cola de salida que utiliza el mecanismo de colocación de paquetes WRED, el dispositivo marca el paquete como experimentando congestión estableciendo el campo ECN de DiffServ en CE (11). En lugar de soltar el paquete (como con la notificación de congestión TCP), el dispositivo reenvía el paquete.
En la cola de salida, el algoritmo WRED determina si un paquete es elegible para descartarse según el nivel de llenado de la cola (qué tan llena está la cola). Si un paquete es elegible para descartarse y marcado como compatible con ECN, el paquete puede marcarse como CE y reenviarse. Si un paquete es elegible para descartarse y no está marcado como compatible con ECN, es posible que se descarte. Consulte Control de perfil de caída WRED de umbrales ECN para obtener más información sobre el algoritmo WRED.
Cuando el paquete llega al punto final 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 ECN para mitigar la congestión de red:

El comportamiento de ECN de extremo a extremo incluye:
-
El emisor y el receptor compatibles con ECN negocian la capacidad de ECN durante el establecimiento de su conexión.
-
Después de una negociación exitosa de la capacidad ECN, el remitente compatible con ECN envía paquetes IP con el campo ECT establecido al receptor.
Nota:Debe habilitar ECN en todos los dispositivos intermedios en la ruta entre el remitente y el receptor.
-
Si el algoritmo WRED en una cola de salida de dispositivo determina que la cola está experimentando congestión y el paquete es elegible para descarte, el dispositivo 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 sido marcado como CE (ya se ha experimentado congestión en la salida de otro dispositivo), el dispositivo reenvía el paquete con la marca CE.
Si no hay congestión en la cola de salida, el dispositivo 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 como congestionado.
-
El receptor recibe un paquete marcado como CE para indicar que se experimentó congestión a lo largo de la ruta de congestión.
-
El receptor hace eco (envía) un paquete de vuelta al remitente con el bit ECE (bit 9) marcado en el campo de bandera del encabezado TCP. El bit ECE es el bit de indicador de eco ECN, que notifica al remitente que hay congestión en la red.
-
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 flag del encabezado TCP. El bit CWR es el bit de indicador reducido de ventana de congestión, que reconoce al receptor que se recibió la notificación de congestión experimentada.
-
Cuando el receptor recibe el indicador CWR, el receptor deja de establecer 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.
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 descartarse |
Marcado de paquetes salientes de bits ECN |
---|---|---|---|
No ECT (00) |
No importa |
Soltar. |
Sin bits ECN marcados |
TEC (10 o 01) |
ECN deshabilitado |
Soltar |
Paquete caído: sin bits ECN marcados |
TEC (10 o 01) |
ECN habilitado |
No deje caer. Marque el paquete como experimentando congestión (CE, bits 11). |
Paquete marcado ECT (11) para indicar congestión |
CE (11) |
ECN deshabilitado |
Soltar |
Paquete caído: sin bits ECN marcados |
CE (11) |
ECN habilitado |
No deje caer. El paquete ya está marcado como congestionado, reenvíe el paquete sin cambiar el marcado ECN. |
Paquete marcado ECT (11) para indicar congestión |
Cuando una cola de salida no experimenta congestión según lo definido por el perfil de colocación WRED asignado a la cola, se reenvían todos los paquetes y no se descarta ningún paquete.
ECN en comparación con la pausa de PFC y Ethernet
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 prioridad (PFC) (IEEE 802.1Qbb) y la pausa de Ethernet (IEEE 802.3X) son diferentes tipos de mecanismos de gestión de la congestión.
ECN requiere que una cola de salida también tenga asociado un perfil de colocación de paquetes WRED. Las colas de salida utilizadas para el tráfico en el que PFC está habilitado no deben tener asociado un perfil de caída de WRED. Las interfaces en las que está habilitada la pausa de Ethernet no deben tener asociado un perfil de colocación de WRED.
PFC es un mecanismo de control de flujo punto a punto para admitir tráfico sin pérdidas. PFC permite que los dispositivos pares conectados detengan la transmisión de flujo durante períodos de congestión. PFC le permite pausar el tráfico en un tipo específico de flujo en un vínculo en lugar de en todo el tráfico en un vínculo. Por ejemplo, puede (y debe) habilitar PFC en clases de tráfico sin pérdidas, como la clase de reenvío. La pausa de Ethernet también es un mecanismo de control de flujo punto a punto, pero en lugar de pausar solo los flujos de tráfico especificados, la pausa de Ethernet pausa todo el fcoe
tráfico en un vínculo físico.
Con PFC y Ethernet PAUSE, los puntos finales de envío y recepción de un flujo no se comunican información de congestión entre sí a través de los dispositivos intermedios. En su lugar, PFC controla los flujos entre dos dispositivos pares habilitados para PFC (por ejemplo, dispositivos) que admiten estándares de puente de centro de datos (DCB). PFC funciona enviando un mensaje de pausa al par conectado cuando la cola de salida de flujo se congestiona. La pausa de Ethernet 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 de dispositivo se llena hasta un cierto umbral, el dispositivo envía un mensaje de pausa PFC al dispositivo par conectado que está transmitiendo datos. El mensaje de pausa indica al dispositivo transmisor que detenga la transmisión del flujo. Cuando la congestión desaparece, el dispositivo envía otro mensaje PFC para indicarle al par conectado que reanude la transmisión. (Si la cola de salida del dispositivo transmisor también alcanza un cierto umbral, ese dispositivo puede, a su vez, enviar un mensaje de pausa PFC al par conectado que le está transmitiendo. De esta manera, PFC puede propagar una pausa de transmisión a través de la red).
Consulte Descripción del control de flujo CoS (pausa y PFC de Ethernet) para obtener más información. También puede consultar Descripción de la funcionalidad PFC en interfaces de capa 3.
Control WRED Drop Profile de umbrales ECN
Puede aplicar perfiles de colocación WRED a clases de reenvío (que se asignan a colas de salida) para controlar cómo marca el dispositivo los paquetes compatibles con ECN. Una asignación de programador asocia un perfil de colocación a un programador y una clase de reenvío y, a continuación, se aplica la asignación del programador a las interfaces para implementar las propiedades de programación de la clase de reenvío en esas interfaces.
Los perfiles de colocación definen los pares de nivel de llenado de cola (el porcentaje de llenura de la cola) y probabilidad de caída (el porcentaje de probabilidad de que se descarte un paquete). Cuando una cola se llena a un nivel especificado, el tráfico que coincide con el perfil de colocación tiene la probabilidad de caída emparejada con ese nivel de relleno. Cuando se configura un perfil de entrega, se configuran pares de niveles de llenado y probabilidades de colocación para controlar cómo caen los paquetes en diferentes niveles de llenura de cola.
El primer par de nivel de llenado y probabilidad de caída es el punto inicial de eliminación. Hasta que la cola alcanza el primer nivel de llenado, los paquetes no se descartan. Cuando la cola alcanza el primer nivel de llenado, los paquetes que superan el nivel de llenado tienen una probabilidad de descarte igual a la probabilidad de caída emparejada con el nivel de llenado.
El último nivel de llenado y el último par de probabilidad de caída es el punto final de eliminación. Cuando la cola alcanza el último nivel de llenado, todos los paquetes se descartan, a menos que estén configurados para ECN.
Las colas sin pérdida (clase de reenvío configurada con el no-loss
atributo packet drop) y las colas de prioridad estricta alta no utilizan perfiles de drop. Las colas sin pérdida utilizan PFC para controlar el flujo de tráfico. Las colas de prioridad estricta alta reciben todo el ancho de banda de puerto que necesitan hasta el límite de ancho de banda máximo configurado.
Diferentes dispositivos admiten diferentes cantidades de pares de probabilidad de nivel de llenado/caída en los perfiles de gota.
No configure el último nivel de llenado como 100 por ciento.
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 extremo de descarte: los paquetes compatibles con ECN siempre tienen la marca CE.
A medida que una cola se llena desde el punto de inicio de colocación hasta el punto final de entrega, la probabilidad de que un paquete ECN esté marcado como CE es la misma que la probabilidad de que se descarte un paquete que no es ECN si se aplica el perfil de colocación al tráfico de mejor esfuerzo. A medida que la cola se llena, la probabilidad de que un paquete ECN se marque como CE aumenta, al igual que la probabilidad de que se descarte un paquete que no es ECN aumenta cuando se aplica el perfil de caída al tráfico de mejor esfuerzo.
En el punto final de entrega, todos los paquetes ECN están marcados como CE, pero los paquetes ECN no se descartan. Cuando el nivel de llenado de la cola supera el punto final de entrega, todos los paquetes ECN se marcan como CE. En este punto, todos los paquetes que no son ECN se descartan. Los paquetes ECN (y todos los demás paquetes) se caen si la cola se llena por completo.
Para configurar un perfil de colocación de paquetes WRED y aplicarlo a una cola de salida (mediante la programación jerárquica en dispositivos compatibles con ETS):
Configure un perfil de colocación 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
.Asigne el perfil de colocación a un programador de cola 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 colocación es el nombre del perfil WRED configurado en el paso 1.Asigne el programador, que el paso 2 asocia con el perfil de colocación, 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 asignar a colas diferentes mediante una configuración de usuario explícita. El nombre del programador es el programador configurado en el paso 2.Asocie el mapa 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 del mapa del programador es el nombre configurado en el paso 3.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 utiliza la asignación del programador en el perfil de control de tráfico para aplicar el perfil de colocación (y otros atributos, incluido el atributo enable ECN) a la cola de salida (clase de reenvío) en esa interfaz. Dado que puede utilizar diferentes perfiles de control de tráfico para asignar distintos programadores a interfaces diferentes, el mismo número de cola en interfaces diferentes puede controlar el tráfico de diferentes maneras.
Puede configurar un perfil de colocación de paquetes WRED y aplicarlo a una cola de salida en dispositivos que admitan la programación de puertos (la programación jerárquica de ETS no se admite o no se usa). Para configurar un perfil de colocación de paquetes WRED y aplicarlo a una cola de salida en dispositivos que admiten la programación de puertos (la programación jerárquica de ETS no se admite o no se usa):
Configure un perfil de colocación 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 probabilidad de nivel de llenado/caída o hasta 32 pares.Asigne el perfil de colocación a un programador de cola 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 colocación es el nombre del perfil WRED configurado en el paso 1.Asigne el programador, que el paso 2 asocia con el perfil de colocación, 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 asignar a colas diferentes mediante una configuración de usuario explícita. El nombre del programador es el programador configurado en el paso 2.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 utiliza la asignación del programador para aplicar el perfil de colocación (y otros atributos) a la cola de salida asignada a la clase de reenvío en esa interfaz. Dado que puede utilizar diferentes asignaciones de programador en interfaces diferentes, el mismo número de cola en interfaces diferentes puede controlar el tráfico de diferentes maneras.
ECN dinámico
La ECN dinámica mejora el conjunto de características de la ECN al proporcionar una forma de automatizar los umbrales que desencadenan un evento de notificación de congestión. Junos OS Evolved supervisa las condiciones en tiempo real, como la longitud de la cola y los patrones de tráfico, para evaluar si se debe ajustar o no un umbral. Esto da como resultado una respuesta más rápida a los eventos de congestión que la ECN estática y mejora la eficiencia del control de la congestión.
La D-ECN es más difícil de implementar que la ECN estática y requiere una supervisión activa. Debe evaluar las condiciones y la configuración de su red para decidir si D-ECN es la mejor opción para su red.
Puede consultar el Explorador de características para ver si su dispositivo es compatible con D-ECN.
Soporte, limitaciones y notas
Si el algoritmo WRED que está asignado a una cola no encuentra una descarte de paquetes elegible, entonces la configuración ECN y el marcado de bits ECN no importan. El comportamiento de transporte de paquetes es el mismo que cuando ECN no está habilitado.
ECN está deshabilitado de forma predeterminada. Normalmente, ECN solo se habilita en colas que controlan el tráfico de mejor esfuerzo y no se habilita ECN en colas que controlan tráfico sin pérdidas o tráfico de prioridad estricta alta.
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 IP tunelizados (pero no el encabezado IP interno)
ECN no admite lo siguiente:
-
Paquetes IP con encapsulación MPLS
-
El encabezado IP interno de los paquetes IP tunelizados (sin embargo, ECN funciona en el encabezado IP externo)
-
Tráfico de multidifusión, difusión y error de búsqueda de destino (DLF)
-
Tráfico no IP
Para aplicar un perfil de colocación WRED a tráfico que no es ECT, configure un clasificador de múltiples campos (MF) para asignar tráfico no ECT a una cola de salida diferente que no esté habilitada para ECN y, a continuación, aplique el perfil de colocación WRED a esa cola.
Comportamiento específico de la plataforma
Utilice el Explorador de características para confirmar la compatibilidad de la plataforma y la versión para ECN.
Use la tabla siguiente para revisar los comportamientos específicos de la plataforma para esta característica.
Plataforma |
Diferencia |
---|---|
PTX10001-36MR, PTX10004, PTX10008, PTX10016 |
Puede implementar ECN de umbral bajo (comience el marcado ECN tan pronto como el búfer comience a llenarse) definiendo una tasa de búfer para un programador y un perfil de caída de porcentaje bajo. La tasa de amortiguación actúa como tasa base para el cálculo del tamaño de la colchón. La tasa de búfer es la tasa objetivo de un VOQ, que es la tasa de cola de salida prevista durante la congestión típica. Establezca el También puede definir porcentajes más granulares (hasta las décimas de porcentaje) y porcentajes de nivel de relleno más pequeños para los perfiles de colocación. Es decir, puede establecer un nivel de llenado tan bajo como 0.7 por ciento.
Nota:
Los enrutadores PTX solo admiten ECN estático. |
Serie QFX5000 |
En las plataformas QFX5K, la funcionalidad ECN está estrechamente integrada con los umbrales WRED. Los umbrales WRED son estáticos, por lo que ECN también funciona en función de cálculos estáticos de umbrales de búfer. Sin embargo, el uso real del búfer compartido de las colas es dinámico. A continuación se muestran las fórmulas utilizadas para los cálculos del umbral de marcado ECN en el momento de la configuración de ECN.
Durante la congestión de paquetes compatibles con ECN, el marcado ECN CE comienza después de En el cálculo anterior de
Dos parámetros, y Por lo tanto, con ciertas configuraciones de nivel de llenado WRED y búfer compartido, existe la posibilidad de caídas de cola de paquetes debido al agotamiento del búfer compartido que ocurre incluso antes del marcado ECN en colas con pérdida habilitadas para ECN. Para colas sin pérdida, debido a la limitación anterior, PFC puede comenzar desde un puerto de entrada antes del marcado ECN, ya que el umbral PFC XOFF es dinámico, a diferencia del umbral ECN estático. Puede determinar los umbrales de marcado ECN adecuados supervisando el uso máximo de búfer de las colas congestionadas y ajustando los umbrales ECN/WRED en consecuencia. |
Serie QFX10000 |
|