Definición


El control de congestión intenta evitar la congestión de la red, mientras que intenta que cada host tenga parte igual de bandwidth

Problemática


A medida que la tasa de arribo de paquetes se acerca a la capacidad del medio, entonces se experimentan grandes tiempos de encolado

Un remitente deberá realizar retransmisiones para compensar por los datos perdidos debido a buffer overflow

Las retransmisiones innecesarias ante los grandes delays pueden causar que el router gaste recursos en enviar copias innecesarias de un paquete

Cuando un paquete es perdido a lo largo de un camino, la capacidad de transmisión utilizada en cada uno de los links que había enviado el paquete hasta ese punto termina siendo desperdiciada

Enfoques al control de congestion


Examinemos algunos enfoques específicos de TCP para lidiar con el control de congestión

  • End-to-end
    • En este enfoque, de control de congestión, la capa de red no provee soporte explícito a la capa de transporte, incluso la presencia de congestión debe ser inferida por los hosts en función del comportamiento observado
  • Network-assisted
    • Definición


      En este enfoque, de control de congestión, los router proveen feedback explícito a los hosts respecto al estado de congestión de la red. Existen dos formas para un router de comunicarse con los hosts

      • Consiste en enviar notificaciones en la forma de un choke packet
      • Consiste en actualizar un campo en los paquetes que viajan entre los hosts para indicar congestión

      Recientemente, fueron surgiendo extensiones de IP y TCP para permitir a la red señalar congestión en la red de forma explícita, a través de dos bits en el campo Type of Service del datagramas de IP. Este tipo de control de congestión se conoce como explicit congestion notification

      Uno de los bits es utilizado para indicar que el router está experimentando congestión, mientras que el otro se utiliza para indicarle a los routers que los senders y receivers son capaces de entender el mensaje

      Si bien el RFC no provee una definición para cuando el router está congestionado, se recomienda que únicamente lo indique ante congestión persistente

      Existen otros protocolos de transporte además de TCP que hacen uso de este mecanismo

      Link to original

Fairness


Un mecanismo de control de congestión se dice que es justo si la tasa de transmisión promedio común para todas las conexiones. Todas obtienen una porción equitativa del ancho de banda del enlace

Si bien el algoritmo de control de congestión en la teoría es justo. En la práctica, los hosts con menos RTT tienden a obtener mejor throughput que aquellos con mayor RTT

Fairness con UDP

Muchas aplicaciones de multimedia prefieren utilizar UDP para que su tasa de transmisión no se vea entorpecida por el mecanismo de control de congestión. Desde la perspectiva de TCP, estas aplicaciones multimedia no están siendo justas con el resto de usuarios

Fairness con TCP

Incluso si podemos forzar a que el tráfico de UDP se comporte de forma justa, el problema no está totalmente resuelto. Nada impide a una aplicación basada en TCP de utilizar múltiples conexiones paralelas, efectivamente obteniendo una mayor porción del bandwidth en un medio congestionado