Notificación de congestión explícita

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 19 de noviembre de 2019; la verificación requiere 1 edición .

La notificación de congestión explícita ( ECN , del  inglés  -  "Notificación de congestión explícita") es una extensión del protocolo IP descrito en RFC 3168 . ECN permite que ambos lados de la red sepan cuándo ocurre una congestión en la ruta a un host o red determinados sin descartar paquetes. Esta es una característica opcional que solo se usa cuando ambos extremos de la comunicación indican que quieren usarla.

Conceptos básicos

Por lo general, los hosts de las redes TCP/IP notifican la congestión descartando paquetes. Si una sesión ECN se establece con éxito, los enrutadores habilitados para ECN pueden señalar el comienzo de la congestión configurando bits en el encabezado IP en lugar de descartar paquetes. El receptor de los paquetes informa al emisor de la congestión, que debería reaccionar como si se hubiera detectado un paquete descartado.

ECN usa dos bits en la región DiffServ en el encabezado IP , para IPv4 en el byte TOS y en IPv6 en el octeto de clase de transferencia del paquete. Estos dos bits se pueden utilizar para establecerse en uno de los siguientes valores:

Algunos equipos de red heredados o de prueba eliminarán paquetes con bits ECN establecidos en lugar de ignorarlos [1] .

Uso

El uso de ECN requiere su soporte en la capa de transporte.

Uso en TCP/IP

Además de los dos bits ECN en el encabezado IP, TCP usa dos indicadores de encabezado TCP para señalar una congestión al remitente y reducir la cantidad de información que envía.

El uso de ECN en conexiones TCP es opcional.

Uso en otros protocolos de transporte

La extensión ECN también se define para otros protocolos de la capa de transporte que controlan la congestión de la red, en particular DCCP y SCTP . El uso general es similar a TCP, aunque los detalles de codificación son diferentes.

En principio, puede usar la extensión ECN con protocolos que se encuentran en los niveles superiores a UDP . Sin embargo, UDP requiere que el control de congestión se realice a nivel de aplicación, y las capacidades de aplicación actuales para las redes no les permiten acceder a los bits ECN.

Rendimiento

El uso de ECN solo es efectivo en combinación con una política de gestión activa de colas (AQM), y la utilidad de ECN depende del uso correcto de AQM.

Empíricamente, se ha encontrado que ECN tiene un efecto negativo en el rendimiento de una red muy congestionada si se utilizan algoritmos AQM que nunca descartan paquetes [2] . Las implementaciones modernas de AQM evitan este problema al reemplazar el marcado de paquetes con descartarlos en caso de congestión crítica.

Implementación

Muchas implementaciones modernas del protocolo TCP/IP tienen compatibilidad con ECN, pero generalmente se envían con ECN deshabilitado.

Soporte del servidor

Windows Server 2008 y Windows Vista admiten la extensión ECN, pero está deshabilitada de forma predeterminada [3] . La compatibilidad con ECN se puede habilitar con el siguiente comando:

netsh interface tcp set global ecncapability=enabled

Mac OS X 10.5 es compatible con ECN de forma predeterminada. La gestión se realiza mediante la interfaz sysctl [4]  :

net.inet.tcp.ecn_negotiate_in net.inet.tcp.ecn_initiate_out

El kernel de Linux ha admitido la extensión ECN durante algún tiempo, pero está deshabilitada de forma predeterminada. En la mayoría de las versiones del kernel, se puede activar a través de la interfaz Sysctl  :

sysctl net.ipv4.tcp_ecn=1

FreeBSD 8.0 admite la extensión ECN. Se puede activar a través de la interfaz Sysctl :

sysctl net.inet.tcp.ecn.enable=1

Soporte en enrutadores

El marcado de los campos ECN por parte de los enrutadores depende de alguna forma de la cola activa . Los enrutadores deben estar configurados correctamente para marcar los campos ECN.

Los routers Cisco IOS realizan etiquetado ECN si WRED está configurado a partir de la versión 12.2(8)T.

Notas

  1. Medición de interacciones entre protocolos de transporte y cajas intermedias. Alberto Medina, Mark Allman y Sally Floyd. Conferencia de Medición de Internet 2004, agosto de 2004.
  2. Aleksandar Kuzmanovic. El poder de la notificación explícita de congestión. En Actas de la conferencia de 2005 sobre aplicaciones, tecnologías, arquitecturas y protocolos para comunicaciones informáticas . 2005
  3. ^ "Nuevas funciones de red en Windows Server 2008 y Windows Vista" (enlace descendente) . Archivado desde el original el 15 de abril de 2012. 
  4. ^ "ECN (Notificación de congestión explícita) en TCP/IP" (enlace descendente) . Archivado desde el original el 15 de abril de 2012. 

Véase también

Enlaces