ECN (Explicit Congestion Notification) es una extensión del protocolo IP y TCP definida en RFC 3168 que permite a los routers marcar paquetes para indicar la presencia de congestión en la red, en lugar de descartarlos. Cuando un router detecta que su cola de salida está a punto de llenarse (según un algoritmo de Active Queue Management como RED o CoDel), marca los paquetes ECN-capable con un bit específico en el encabezado IP (el campo ECN en el byte de Type of Service, ahora Differentiated Services Field). Al recibir un paquete marcado, el receptor TCP lo notifica al emisor, quien entonces reduce su ventana de congestión de manera similar a como lo haría si se hubieran descartado paquetes. Esto permite una respuesta más rápida y eficiente a la congestión, mejorando el rendimiento y reduciendo la latencia al evitar pérdidas de paquetes.

ECN se implementa en una variedad de sistemas operativos y dispositivos de red. Linux soporta ECN tanto en el kernel (para el stack TCP/IP) como en herramientas de configuración de red como `tc` (Traffic Control) para configurar algoritmos de Active Queue Management (AQM) como CoDel o FQ_CoDel que marcan paquetes ECN. Los routers de proveedores de servicios y equipos de red empresariales (Cisco, Juniper, etc.) a menudo soportan ECN, permitiendo su configuración en interfaces para trabajar con AQM. En entornos de cloud, servicios como AWS y Google Cloud Platform permiten la configuración de ECN en sus redes virtuales, y es un componente clave en la optimización de redes de centros de datos para reducir la latencia y mejorar el throughput en cargas de trabajo sensibles.

Para un arquitecto de sistemas, ECN es crucial porque ofrece una herramienta para optimizar el rendimiento de la red y la experiencia del usuario, especialmente en entornos de alta concurrencia o baja latencia. Al habilitar ECN, se pueden reducir significativamente las pérdidas de paquetes debido a la congestión, lo que se traduce en una menor retransmisión y una mayor eficiencia del ancho de banda. Esto es vital para aplicaciones en tiempo real, microservicios con dependencias interconectadas y bases de datos distribuidas donde la latencia es crítica. Sin embargo, su implementación requiere que tanto los hosts (servidores) como los dispositivos de red intermedios (routers, switches) soporten y estén configurados para ECN. Un arquitecto debe evaluar el soporte de ECN en toda la pila de red y considerar los trade-offs: aunque mejora el rendimiento, una configuración incorrecta de AQM o la falta de soporte en algún punto de la ruta puede anular sus beneficios o incluso introducir comportamientos inesperados. Es una decisión estratégica para redes de alto rendimiento.