¿Cuál es la diferencia entre el control de flujo y el control de congestión en TCP?
Esta pregunta se puede dividir en dos partes:
- ¿Cuál es el propósito general del control de flujo y congestión?
- ¿Cómo se realiza la tarea?
Según Wikipedia , el control de flujo de TCP se basa en el tamaño de la ventana informado en un mensaje ACK. El control de la congestión también se basa en mensajes de reconocimiento. Me gustaría saber cuál es la diferencia entre los dos objetivos y cómo funcionan.
networking
tcp
congestion-control
GM Lucid
fuente
fuente
Respuestas:
En cuanto a la parte 1, descripción general super general:
El control de flujo está controlado por el lado receptor. Asegura que el remitente solo envíe lo que el receptor pueda manejar. Piense en una situación en la que alguien con una conexión de fibra rápida podría estar enviando mensajes a alguien por marcación o algo similar. El remitente tendría la capacidad de enviar paquetes muy rápidamente, pero eso sería inútil para el receptor en el acceso telefónico, por lo que necesitaría una forma de limitar lo que el lado remitente puede enviar. El control de flujo se ocupa de los mecanismos disponibles para garantizar que esta comunicación se desarrolle sin problemas.
El control de la congestión es un método para garantizar que todos en una red tengan una cantidad "justa" de acceso a los recursos de la red, en cualquier momento. En un entorno de red mixta, todos deben poder asumir el mismo nivel general de rendimiento. Un escenario común para ayudar a comprender esto es una LAN de oficina. Tiene varios segmentos de LAN en una oficina, todos haciendo lo suyo dentro de la LAN, pero luego es posible que todos necesiten salir a través de un enlace WAN que sea más lento que los segmentos de LAN constituyentes. Imagínese tener conexiones de 100 MB dentro de la LAN que finalmente salen a través de un enlace WAN de 5 MB. Es necesario que exista algún tipo de control de congestión allí para garantizar que no haya problemas en toda la red.
En cuanto a la parte 2:
Si esta es una pregunta de preparación para la entrevista, como dijo anteriormente, consideraría tomarme un tiempo para leer sobre TCP / IP en general. No uses Wikipedia. RTFM! Vale mucho la pena su tiempo. Se podría argumentar que este es el protocolo más importante que soporta la mayor parte de la Internet moderna.
Cosas para leer sobre el control de flujo: detener y esperar, ventana deslizante, marcos de PAUSA.
Cosas para leer sobre el control de congestión: QoS (calidad de servicio), políticas de retransmisión, políticas de ventanas.
Más allá de eso, puede buscar implementaciones de cualquier proveedor en particular (Cisco, etc.)
fuente
Control de flujo: el remitente enviará suficientes datos que se pueden alojar en el extremo del receptor.
Control de congestión: el remitente reducirá la cantidad de paquetes enviados para evitar desbordar el búfer del enrutador (cola).
fuente
Control de flujo:
Control de congestión:
fuente
El control de flujo se realiza principalmente en el lado del receptor , para ajustar la cantidad de datos que el remitente inyecta en la red; El control de la congestión se realiza principalmente en el lado del remitente , tratando de detectar la congestión en la red mediante la sincronización de los paquetes ACK, para ajustar el volumen de datos enviados a la situación correspondiente.
fuente
El control de la congestión es un problema global: involucra a todos los enrutadores y hosts dentro de la subred
El control de flujo, que tiene un alcance de un punto a otro, involucra solo al remitente y al receptor.
fuente
Control de congestión : además de evitar que el búfer del enrutador se desborde, también se ocupa de otros dos factores importantes
fuente
El control de flujo se realiza en el lado del receptor. Si el remitente envía paquetes mayores que el tamaño del búfer del receptor, se produce un desbordamiento en el búfer del receptor. Para evitar este desbordamiento en el lado del receptor, se utiliza una técnica de ventanas en el lado del remitente. El control de la congestión se realiza en el lado del remitente. Este es un fenómeno global. Esto sucede en el enrutador. El búfer del enrutador se desborda cuando muchos remitentes intentan enviar más paquetes a través del mismo enlace.
fuente
Control de flujo:
Control de congestión
Cuando comenzamos a transmitir los datos desde la fuente, llega al destino con la ayuda de la red. El control de la congestión evita la fuente para que el enrutador no deje caer los datos en la red.
Este problema está relacionado con la cola del enrutador
Es más complicado de lograr porque el enrutador obtiene diferentes paquetes de diferentes fuentes conectadas a su red.
fuente
Control de flujo: indica cuánto puede absorber la red, ventana de congestión; Control de congestión: denota cuánto puede absorber el receptor, ventana publicitada; Max_window = min del remitente (ventana anunciada, ventana de congestión);
fuente