¿Qué es eso de Explicit Congestion Notification?


Dentro de las opciones “raras” que han aparecido en la serie 2.4 del kernel, una de ellas es la de Explicit Congestion Notification (ECN a partir de ahora) y podemos encontrarlo en las opciones de Networking. Esta opción tiene muchas cosas buenas pero, de momento, también puede provocarnos algún problemilla.

¿Pero qué es eso del ECN?
Básicamente es un nuevo protocolo que está diseñado para mejorar la velocidad de Internet, permitiendo que un router o un servidor notifiquen cuando hay una congestión en la red debida a un tráfico intenso. Con los estandares actuales de TCP/IP la única forma de detectar una congestión es porque los routers descartan los paquetes cuando se quedan sin ancho de banda. Estos paquetes son retrasmitidos por el emisor, pero el servidor debe notar que los paquetes están siendo descartados de forma que debería decrementar su ratio de transmisión.
Con ECN habilitado todo esto cambia para mejor, los routers son capaces de indicar que están saturados y presumiblemente el servidor toma un papel activo para ayudar a descongestionar el tráfico realizando nuevas peticiones de una forma más racional.
Pero como he dicho antes resulta que también presenta unos problemas, resulta que aún existen bastantes dispositivos antiguos (routers, firewalls…) que tratan estos paquetes como erróneos de forma que son descartados.
Una forma sencilla de comprobar esto es visitar una página muy concurrida, que hasta la fecha nos había funcionado correctamente, y ver que no aparece nada,
absolutamente nada, en el navegador.
De todas formas, si nos encontramos con este problema podemos desactivar el soporte de ECN de forma dinámica tecleando
echo “0” > /proc/sys/net/ipv4/tcp_ecn
si queremos volver a tener el soporte activado cambiaremos el “0” por un “1”.
Por supuesto, todo esto no tiene efecto si nuestro kernel no está compilado con la opción “IP: TCP Explicit Congestion Notification” cosa que como hemos visto parece bastante recomendable.
Los detalles técnicos de ECN los podemos encontrar en el RFC 2481 y en el RFC 2884 que proporciona información adicional.

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1089 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.