¿Cuál es la relación entre control de flujo y congestión? ¿Qué tamaño de ventana es el más importante?

En el flujo de datos TCP entre el origen y el destino, siempre se supone que el origen es más rápido que el destino. En otras palabras, el remitente puede transmitir a una velocidad mayor que la que puede consumir el destino. Entonces, si el remitente envía a una velocidad muy rápida, el búfer del receptor comenzará a desbordarse, lo que provocará la pérdida de datos. Esto requeriría que el remitente envíe los mismos datos una y otra y otra y otra vez.
Para complicar la situación, esta pérdida de datos no se produjo debido a la congestión, sino solo porque el cliente (destino) era más lento que el servidor (remitente).
Por otro lado, el control de congestión es para evitar el desbordamiento del búfer en saltos intermedios (enrutadores). Podemos decir que el control de flujo también ayuda a controlar la congestión porque eventualmente, el remitente está enviando datos a una velocidad menor de la que es capaz. Por la misma razón, la ventana del cliente (representada en términos de MSS) es importante.
Let, rwnd = Ventana del receptor cwnd = Ventana de congestión
Luego, los datos que el servidor puede transferir <= min (rwnd, cwnd)
Sin embargo, tenga en cuenta que el remitente aún envía 1 MSS de datos, incluso si el receptor anuncia que su ventana es 0. Piense en el motivo, por qué es necesario.

Realmente no hay uno más importante entre estos dos, ya que ambos importan en diferentes niveles. Como se señaló, la ventana más pequeña entre la ventana de congestión cwnd y la ventana de recepción rwnd será la más relevante.
De ahí la relación: LastByteSent – LastByteAcked <= min {cwnd, rwnd}

Veo el control de flujo como un caso muy específico de control de congestión. El objetivo del control de congestión es garantizar que no haya congestión innecesaria en el corazón de la red. La congestión provoca fluctuaciones, retrasos, almacenamiento en búfer y, finalmente, pérdida de paquetes.

El control de flujo simplemente evita que este mismo tipo de congestión ocurra en el destino.

El tamaño de la ventana de recepción es, con mucho, el más importante, ya que eso es lo que realmente regula el control de flujo.

Para equilibrar las compensaciones cuando se discuten los tamaños de las ventanas, es importante considerar esto en el contexto de los mecanismos ARQ. Estos mecanismos se utilizan para permitir que los paquetes se soliciten nuevamente si no se reciben. Un tamaño de ventana más grande permite una mayor concurrencia.