El control de la congestión

La congestión se define como una excesiva cantidad de paquetes almacenados en los buffers de varios nodos en espera de ser transmitidos. La congestión es indeseable porque aumenta los tiempos de viaje de los paquetes y retrasa la comunicación entre usuarios. Este es un gran problema que debe ser evitado

Para entender el fenómeno de la congestión es necesario analizar el comportamiento de la subred de conmutación de paquete como una subred de colas. En cada nodo, asociado a cada canal de entrada o salida habrá una cola de entrada o salida respectivamente. Si la velocidad de llegada de los paquetes al nodo excede la velocidad con que estos pueden ser transmitidos, la cola asociada al canal de salida empieza a crecer y los paquetes irán experimentando un retardo creciente, que podría llegar a tender a infinito si la longitud de las colas lo permitiera. El retardo crece de forma alarmante cuando la tasa de ocupación de la línea, para la que los paquetes están encolados, sobrepasa el 80%.


Cuando se alcanza el punto de saturación y el nodo no puede absorber más paquetes, tiene dos posibilidades:

  • Rechazar los nuevos paquetes que van llegando.
  • Ejercer un control de flujo sobre sus vecinos, impidiendo el envío de nuevos paquetes.


Ambas estrategias conducirán a la saturación de los nodos vecinos al que inicialmente tenía problemas, debido a que no podrán deshacerse de los paquetes que tenían para enviar. Así, la congestión en un punto de la subred se propaga rápidamente hacia las zonas vecinas. Por ello, será deseable establecer algún tipo de control para evitar estas situaciones. Ello disminuirá las prestaciones de la subred respecto al caso ideal en una tasa aproximadamente igual a la sobrecarga de control generada; pero evitará que se produzcan situaciones catastróficas que podrían conducir al bloqueo total de la subred.

Uno de los algoritmos que se utilizan a la hora de evitar la congestión es el : Algoritmo de cubeta con goteo.

En este algoritmo, el flujo de salida tiene una tasa constante sin importar el flujo de entrada, en caso de saturarse la cubeta, se procederá al rechazo de paquetes. Esto hace que cualquier flujo desigual se convierta en un flujo continuo, reduciendo la posibilidad de congestionar la red. En la siguiente figura puede observarse como el host produce un flujo continuo:

El host implementa la cubeta con goteo, haga "click" en el host de la siguiente animación para observar el flujo de entrada y el de salida.

 

Una variante de este algoritmo es el Algoritmo de cubeta con ficha, este algoritmo esta indicado para el tráfico a ráfagas.

La cubeta contiene fichas generadas por un reloj Los host inactivos acumulan permisos para luego enviar ráfagas grandes (hasta el tamaño de la cubeta 'n').

Nivel de Red/Control de la congestión