Control de congestión TCP


El Protocolo de control de transmisión (TCP) utiliza un algoritmo para evitar la congestión de la red que incluye varios aspectos de un esquema de aumento aditivo / disminución multiplicativa (AIMD), junto con otros esquemas que incluyen el inicio lento [1] y la ventana de congestión (CWND), para lograr evitar la congestión. . El algoritmo TCP para evitar la congestión es la base principal para el control de la congestión en Internet. [2] [3] [4] Según el principio de extremo a extremo , el control de la congestión es en gran medida una función de los hosts de Internet., no la red en sí. Hay varias variaciones y versiones del algoritmo implementadas en pilas de protocolos de sistemas operativos de computadoras que se conectan a Internet .

Para evitar el colapso congestivo , TCP utiliza una estrategia de control de la congestión multifacética. Para cada conexión, TCP mantiene una CWND, lo que limita el número total de paquetes no reconocidos que pueden estar en tránsito de un extremo a otro. Esto es algo análogo a la ventana deslizante de TCP utilizada para el control de flujo .

El algoritmo de aumento aditivo / disminución multiplicativa (AIMD) es un algoritmo de control de circuito cerrado . AIMD combina el crecimiento lineal de la ventana de congestión con una reducción exponencial cuando se produce una congestión. Múltiples flujos que usan el control de congestión AIMD eventualmente convergerán para usar cantidades iguales de un enlace en disputa. [5]

En TCP, la ventana de congestión (CWND) es uno de los factores que determina la cantidad de bytes que se pueden enviar en cualquier momento. El remitente mantiene la ventana de congestión y es un medio para evitar que un enlace entre el remitente y el receptor se sobrecargue con demasiado tráfico. Esto no debe confundirse con la ventana deslizante mantenida por el remitente que existe para evitar que el receptor se sobrecargue. La ventana de congestión se calcula estimando cuánta congestión hay en el enlace.

Cuando se establece una conexión, la ventana de congestión, un valor que se mantiene independientemente en cada host, se establece en un pequeño múltiplo del tamaño máximo de segmento ( MSS ) permitido en esa conexión. La variación adicional en la ventana de congestión viene dictada por un enfoque de aumento aditivo / disminución multiplicativa (AIMD). Esto significa que si se reciben todos los segmentos y los reconocimientos llegan al remitente a tiempo, se agrega alguna constante al tamaño de la ventana. Seguirá diferentes algoritmos.

Un administrador del sistema puede ajustar el límite máximo de tamaño de la ventana, o ajustar la constante agregada durante el aumento aditivo, como parte del ajuste de TCP .