En el mundo de las redes, uno de los fenómenos menos deseados es el de la congestión. Pese a que existen varias causas, la más común posiblemente sea la excesiva utilización del canal, que deriva en una degradación de la calidad del servicio. Y al igual que existen varios motivos para la congestión de red, existen distintos tipos de soluciones y algoritmos proactivos (de prevención) y reactivos (de solución).
Pero, aunque una red no sufra de congestión, es posible que un equipo sí la sufra. Para ello, existen otra serie de algoritmos de control de congestión en los extremos de una comunicación. En concreto, y en un sistema Linux, podemos ver cuáles son los algoritmos habilitados con la siguiente orden:
ramiro@cormanthor:~$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = cubic reno
En este caso, los algoritmos habilitados serían CUBIC TCP y Reno TCP. ¿Echas alguno de menos? No pasa nada, podemos cargar el módulo pertinente, siempre que éste se encuentre compilado. En este caso, añadiremos H-TCP.
ramiro@cormanthor:~$ sudo modprobe tcp_htcp
ramiro@cormanthor:~$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = cubic reno htcp
Si queréis cambiar el algoritmo de control por defecto, podéis hacerlo con la siguiente orden:
ramiro@cormanthor:~$ sudo sysctl -w net.ipv4.tcp_congestion_control=cubic
Por último, para echar un vistazo a los módulos disponibles, podéis cotillear directorio que los contiene:
ramiro@cormanthor:~$ ll /lib/modules/2.6.32-25-generic/kernel/net/ipv4/ | grep tcp_
-rw-r–r– 1 root root 9920 2010-09-18 01:34 tcp_bic.ko
-rw-r–r– 1 root root 6152 2010-09-18 01:34 tcp_highspeed.ko
-rw-r–r– 1 root root 9192 2010-09-18 01:34 tcp_htcp.ko
-rw-r–r– 1 root root 7304 2010-09-18 01:34 tcp_hybla.ko
-rw-r–r– 1 root root 8248 2010-09-18 01:34 tcp_illinois.ko
-rw-r–r– 1 root root 6024 2010-09-18 01:34 tcp_lp.ko
-rw-r–r– 1 root root 13520 2010-09-18 01:34 tcp_probe.ko
-rw-r–r– 1 root root 5168 2010-09-18 01:34 tcp_scalable.ko
-rw-r–r– 1 root root 10392 2010-09-18 01:34 tcp_vegas.ko
-rw-r–r– 1 root root 6272 2010-09-18 01:34 tcp_veno.ko
-rw-r–r– 1 root root 6792 2010-09-18 01:34 tcp_westwood.ko
-rw-r–r– 1 root root 6704 2010-09-18 01:34 tcp_yeah.ko
ramiro@cormanthor:~$
Ahí podemos reconocer los algoritmos BIC TCP, HighSpeed TCP, H-TCP, TCP Hybpa, TCP Illinois, TCP-LP, TCP Probe, TCP Scalable, TCP Vegas, TCP Veno, TCP Westwood y TCP YeAH. Como podéis ver, hay variedad.

Interesante!