El control de congestión TCP en realidad ayuda a la capa de red a mejorar el rendimiento de la red. Se requiere TCP ya que el remitente generalmente enfrenta las siguientes incertidumbres
(1) ¿Cuáles son las capacidades de los enlaces intermedios al receptor?
(2) Cuántos flujos comparten esos enlaces.
- ¿Cómo podemos calcular fácilmente la próxima ip de una subred compleja?
- ¿Cómo es que HTTP no tiene conexión cuando TCP / IP está orientado a la conexión?
- Si tengo una dirección IPv6, ¿puedo visitar un servidor web que tenga una dirección IPv4?
- ¿Qué es la capa de sesión?
- Cómo averiguar ISP desde una dirección IP
(3) Cuándo terminarán los flujos.
(4) Cuántos enlaces está usando un flujo.
(5) Cuándo llegará un nuevo flujo.
En realidad, la capa de red realmente enfrenta toda la congestión. Los enrutadores de la red tienen colas de paquetes con búfer limitado que permite retener los paquetes. Si se llena la cola, la técnica más simple sería descartar los paquetes en el enrutador. La caída de paquetes en el enrutador también se denomina caída de cola. Los paquetes descartados pueden ser de diferentes conexiones TCP. Esto permite que todas las conexiones TCP pateen el control de congestión TCP todos juntos. En este caso, una conexión TCP individual reduce la ventana de congestión y luego aumenta gradualmente las velocidades de envío. El punto interesante aquí es que toda la conexión TCP usa el mismo retraso antes de aumentar el tamaño de la ventana y, por lo tanto, el retraso también caduca al mismo tiempo. Esto a su vez hace que el búfer del enrutador vuelva a estar lleno y, por lo tanto, congestiones repetidas. Este comportamiento de toda la conexión TCP se sincroniza. Esto también se llama problema de sincronización global TCP. Por lo tanto, el control de congestión TCP por sí solo no es suficiente. En otras palabras, los controles de congestión de red y TCP están entrelazados.