¿Cuál es la diferencia entre el control de flujo y el control de congestión en TCP?


82

¿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:

  1. ¿Cuál es el propósito general del control de flujo y congestión?
  2. ¿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.


46
No es una pregunta de tarea. Más bien una pregunta de preparación para la entrevista. ¿Qué tiene de "fuera de tema"? @EJP
GM Lucid

Respuestas:


125

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.)


3
Buena respuesta, pero hay al menos un error: las "tramas de PAUSA" no se utilizan en el control de congestión, son un mecanismo para el control de flujo.
Ángel

1
Estás absolutamente en lo correcto. Agregado en el párrafo incorrecto, editando ahora.
JP Doherty

24

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).


22

Control de flujo:

  • Se asegura de que el remitente no sobrecargue al receptor.
  • Es un fenómeno local, a diferencia del control de la congestión.
  • Generalmente lo inicia el remitente.

Control de congestión:

  • Se asegura de que la red pueda manejar la carga de paquetes.
  • Es un fenómeno global y afecta a todos los hosts conectados a esa red.
  • Lo inicia el enrutador.

4

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.


4

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.


2

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

  • Equidad : ningún host conectado a la red debe morir de hambre, aunque la terminología es mucho más compleja.
  • Eficiencia : los enlaces deben utilizarse a su máxima capacidad para que no provoquen congestión.

2

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.


Esto parece un intento honesto de responder la pregunta, pero ahora mismo, su respuesta es un poco confusa. También es bastante corto. Considere dedicar uno o dos párrafos completos al control de flujo y uno o dos párrafos completos al control de la congestión, con más comas y menos omisiones de palabras.
Julian

0

Control de flujo:

  1. Cuando el búfer del remitente está lleno, evitamos que la fuente envíe los datos para que no se descarten.
  2. El búfer del receptor está lleno en este caso.
  3. Se puede lograr fácilmente mediante el protocolo de ventana deslizante.

Control de congestión

  1. 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.

  2. Este problema está relacionado con la cola del enrutador

  3. Es más complicado de lograr porque el enrutador obtiene diferentes paquetes de diferentes fuentes conectadas a su red.


-4

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);

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.