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%.
|
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'). |