Congestión de redLa congestión de red es el fenómeno producido cuando a la red, o parte de ella, se le ofrece más tráfico del que puede cursar. Efectos típicos de esto es demora en la entrega, pérdida de paquetes o el bloqueo de nuevas conexiones. Una consecuencia de la congestión es que un aumento incremental lleva a un aumento menor del tráfico cursado o incluso a una disminución del throughput de la red.[1]
Causas de la congestiónHay varias causas de congestión. Las más importantes son:
Control de una congestiónComprende todo un conjunto de técnicas para detectar y corregir los problemas que surgen cuando no todo el tráfico de una red puede ser cursado. Mecanismos de control de una congestiónEl problema del control de congestión puede enfocarse matemáticamente desde el punto de vista de la teoría de control de procesos, y según esto pueden proponerse soluciones en bucle abierto y en bucle cerrado. SolucionesSoluciones en bucle abiertoTambién llamadas soluciones pasivas. Combaten la congestión de las redes mediante un adecuado diseño de las mismas. Existen múltiples variables con las que el diseñador puede jugar a la hora de diseñar la red. Estas variables influirán en el comportamiento de la red frente a la congestión. Las resumiremos en función del nivel del modelo OSI al que hacen referencia:
Soluciones en bucle cerradoTambién llamadas soluciones activas. Actúan cuando se detectan problemas. Tienen tres fases:
Algoritmos de control de congestiónSe describen dos algoritmos en bucle cerrado: el algoritmo de descarte de paquetes, y un algoritmo de paquetes reguladores, así como un algoritmo en bucle abierto llamado mecanismo de Traffic Shaping. Algoritmo de descarte de paquetesEs un algoritmo de control de congestión en bucle cerrado. Se basa en que los nodos descartan paquetes cuando su ocupación es alta. Para esto los nodos han de conocer sus recursos (CPU y memoria). Hace una asignación dinámica de los buffers sobre la base de las necesidades de cada línea. Sin embargo, cada línea necesita al menos una (o más) posiciones de memoria para gestionar información relevante, tal como asentimientos, que permite la liberación de posiciones de memoria ocupadas por paquetes que estaban esperando por si necesitaban retransmitirse. Si a la línea llegan datos (no asentiminentos u otra información relevante) y el buffers de salida de la línea correspondiente está lleno, se descarta el paquete. Hay varias formas de hacer la asignación de buffers:
Algoritmo de paquetes reguladoresEn terminología inglesa, al paquete regulador se le llama choke packet. Se hace en bucle cerrado. Asocia un peso a cada línea que cambia con el tiempo. Si el peso supera un cierto umbral, se pone la línea en estado de alerta y se considera que puede haber congestión. Si pasa un determinado tiempo sin recibir notificaciones de congestión, se vuelve a subir el flujo que puede cursar el origen. Si por el contrario se supera un umbral mayor, se pasa directamente a hacer descarte de paquetes. Se fundamenta en la siguiente función: Un=a·Un-1 + (1-a)·f donde:
En el momento en que Un alcanza el primer valor umbral asignado, la línea se colca en alerta, por lo que se envía un paquete regulador hacia atrás. En los sucesivos paquetes que el nodo anterior envía hacia adelante se coloca un flag a 1 que indica que el enrutador anterior está avisado. Este enrutador reduce su flujo de trasmisión y si, en un tiempo estipulado, no vuelve a recibir un paquete regulador aumenta de nuevo su flujo de transmisión. Si se alcanza el segundo valor umbral asignado, se pasa a descartar paquetes. Variaciones de este algoritmo:
Mecanismo de conformado de tráficoEl conformado de tráfico (en inglés: traffic shaping) es un mecanismo en bucle abierto. Conforma el tráfico que una fuente puede inyectar a la red. Se usa en redes ATM (Asynchronous Transfer Mode) con una tecnología de red orientada a conexión. Si se tiene una ráfaga lista para transmitir, el sistema obliga a no transmitir todo seguido (porque conforma el tráfico). Requiere un acuerdo entre proveedor y cliente. El proveedor garantiza que se cursa el tráfico si se transmite a una tasa determinada y descarta el tráfico si se supera. Esto puede realizarse mediante un algoritmo de Leaky Bucket (cubo agujereado), cuyo nombre se debe a que el sistema se comporta como un bidón que se va llenando con un caudal determinado y por el que sale el líquido con otro caudal (menor) distinto. Si llenamos muy deprisa el bidón acabará llenándose y vertiéndose por arriba, lo que asemeja una pérdida de paquetes en una red. Véase tambiénReferencias
Enlaces externos
|