¿Cómo puede caer el rendimiento debido a la congestión?

Hay algunas formas en que la congestión puede reducir el rendimiento total:

  • La congestión (en forma de una larga cola permanente) puede hacer que los puntos finales expiren y retransmitan segmentos que ya están en ruta. El receptor eventualmente recibirá múltiples copias del mismo segmento, lo que significa que se desperdició parte de la capacidad del cuello de botella.
  • La congestión (en forma de una cola que está eliminando datagramas) puede causar la pérdida de un segmento, mientras que se entregan segmentos posteriores. Si el remitente y el receptor ejecutan TCP sin acuses de recibo selectivos, entonces “[con] la información limitada disponible de los acuses de recibo acumulativos , un remitente TCP solo puede aprender sobre un solo paquete perdido por tiempo de ida y vuelta. Un remitente agresivo podría optar por retransmitir paquetes temprano, pero es posible que dichos segmentos retransmitidos ya se hayan recibido con éxito “. (RFC 2018) Esto también significaría que se desperdició parte de la capacidad del cuello de botella y, por lo tanto, se sacrificó el rendimiento total.
  • En una red con múltiples cuellos de botella, una asignación deseable de recursos puede no maximizar el rendimiento total. Considere esta topología de red:

  • Los flujos son Axya, Byzb y Cxyzc, con capacidades de enlace de cuello de botella de 20 Mbps entre x e y, y 10 Mbps entre y y z. La forma de maximizar el buen rendimiento es dar 20 Mbps al flujo Aa, 10 Mbps al flujo Bb y 0 Mbps al flujo Cc. Esto proporciona un rendimiento total de 30 Mbps. Todos los cuellos de botella (xy e yz) se utilizan al 100%, y no hay colas ni pérdidas.

    Pero Cc podría no estar muy contento de no tener nada. Otra posible asignación es la asignación máxima-mínima, con Aa = 15, Bb = 5, Cc = 5. En la asignación max-min, ningún flujo puede aumentar su velocidad sin afectar el rendimiento de un flujo peor. Todos los cuellos de botella todavía se utilizan al 100% y todavía no hay colas ni pérdidas, por lo que esta podría ser una asignación deseable. ¡Pero ahora el rendimiento total es de solo 25 Mbps! Darle a C algo de rendimiento ha reducido el rendimiento total .

    En términos generales, un algoritmo de control de congestión TCP típico convergerá en una asignación que no maximiza el rendimiento total en este tipo de situación.

  • En una red con múltiples cuellos de botella, la congestión puede ocurrir “aguas abajo”, lo que significa que los datagramas que se han caído ya se han transmitido a través de un enlace ascendente, utilizando cierta capacidad que se desperdiciará.

    En la topología anterior, imagínese si Cc decidió hacer explotar datagramas lo más rápido posible, desplazando a Aa y Bb. El enlace xy se utilizaría al 100% con 20 Mbps de datos de CC. Esto llevaría a la congestión en el nodo y, ya que el enlace yz solo puede acomodar 10 Mbps de tráfico. Por lo tanto, otros 10 Mbps simplemente se caerían en el nodo y (aunque ya se había transferido a través del enlace xy). Aunque ambos enlaces se utilizan al 100%, la congestión en el nodo y significa que la mitad del enlace xy se está desperdiciando de manera efectiva. El rendimiento total sería de solo 10 Mbps.

    Cc podría lograr el mismo rendimiento simplemente enviando a 10 Mbps, en cuyo caso Aa también podría enviar a 10 Mbps. En ese caso, todos los enlaces volverían a ser 100% utilizados, pero no habría colas ni caídas. El rendimiento total sería de 20 Mbps.

    Entonces, en este caso, la congestión en el nodo y puede reducir el rendimiento total de 20 Mbps a 10 Mbps, ¡incluso si todos los enlaces permanecen 100% utilizados!

  • En realidad, hay varias asignaciones razonables para el enlace. Otro se llama “equidad proporcional”, donde ningún flujo puede aumentar su tasa en más de x% sin dañar otros flujos al menos en la misma cantidad relativa. Por lo tanto, el rendimiento total, o rendimiento, varía no solo en la cantidad de congestión, sino también en lo que los diseñadores de algoritmos consideran la mejor manera de asignar recursos sujetos a contención: