Se creó un protocolo llamado TCP Flow Control para controlar el flujo de datos entre el usuario y el servidor.
Se asegura de que una cierta cantidad de ancho de banda esté disponible para enviar y recibir datos para que el procesamiento pueda continuar sin encontrar problemas serios.
El protocolo TCP utiliza un método conocido como protocolo de ventana deslizante para lograr esto.
Echaremos un vistazo profundo al control de flujo de TCP en esta pieza, incluido cómo funciona y, lo que es más importante, el protocolo de ventana deslizante.
¿Qué es el control de flujo TCP?
El protocolo TCP garantiza que se pueda establecer un canal de comunicación confiable a través de una red impredecible.
Los paquetes de datos pueden perderse, llegar fuera de secuencia, respaldarse en la red o sobrecargarse en el nodo receptor a medida que se envían de un nodo a otro.
Sin embargo, mientras desarrollamos una aplicación, normalmente no tenemos que lidiar con esta complejidad; en su lugar, solo enviamos algunos datos a un socket y TCP se asegura de que los paquetes se entreguen con éxito al nodo receptor..
El control de flujo es una característica adicional crucial que ofrece TCP.
Mediante el uso del control de flujo, TCP esencialmente se asegurará de que un remitente no envíe demasiados paquetes a un receptor a la vez.
¿Cómo funciona el Protocolo de control de transferencia – Control de flujo?
Esto suele ocurrir cuando necesitamos comunicar datos a través de una red.
La aplicación del remitente envía datos a un socket, la capa de transporte (en este caso, TCP) empaqueta estos datos en un segmento y la capa de red (por ejemplo, IP) pasa este paquete al nodo receptor por alguna ruta.
La capa de red transmitirá estos datos a TCP en el extremo receptor de la conversación, y TCP los pondrá a disposición de la aplicación receptora como un duplicado idéntico de los datos proporcionados.
TCP no entregará paquetes desordenados y esperará la retransmisión en caso de que detecte una brecha en el flujo de bytes.
Esto es lo que veremos si hacemos zoom.
Tanto el búfer de transmisión como el de recepción en TCP se utilizan para almacenar datos que deben enviarse y recibirse, respectivamente.
La aplicación leerá los datos del búfer de recepción cuando esté preparado.
Asegurarse de que no enviamos paquetes adicionales mientras el búfer de recepción del receptor ya está lleno es el objetivo principal del control de flujo, ya que hacerlo obligaría al receptor a descartar paquetes adicionales que no podría manejar.
El receptor anunciará su ventana de recepción, o el espacio disponible en el búfer de recepción, para limitar la cantidad de datos que TCP puede transferir.
El protocolo de ventana deslizante
El protocolo de ventana deslizante en TCP es uno de los métodos de control de flujo más utilizados. Es un procedimiento orientado a bytes de tamaño variable.
En este enfoque, el receptor envía al emisor la ventana del receptor tan pronto como el emisor y el receptor están conectados.
El tamaño del búfer actual del receptor se denomina ventana del receptor.
TCP calcula ahora la cantidad de datos que se pueden enviar más adelante sin acuse de recibo en función de la ventana de recepción disponible.
Sin embargo, TCP detiene la transferencia de datos si el tamaño de la ventana del receptor es 0 y espera a que aumente.
El tamaño de la ventana del receptor es un componente del marco TCP.
El tamaño máximo de la ventana es de 65,535 bytes porque tiene un tamaño de ventana de 16 bits.
Las dimensiones de la ventana son elegidas por el destinatario. Con cada mensaje de reconocimiento, el receptor transmite el tamaño de la ventana del receptor que está disponible actualmente.
Proceso de Protocolo de Ventana Deslizante
Cuando se utiliza la técnica del protocolo de ventana deslizante, se establecen dos búferes cuando el emisor y el receptor se conectan.
Estos dos búferes se dividen en dos grupos: la ventana de envío, que pertenece al remitente, y la ventana de recepción, que pertenece al receptor.
La ventana de recepción devuelve el espacio restante del búfer de recepción cuando el remitente transmite datos al receptor.
Como resultado, el remitente está limitado a la cantidad de datos que caben en el búfer de recepción.
La ventana de transmisión del ejemplo anterior transmite datos a la ventana de recepción.
Después de recibir los datos, la ventana de recepción envía un reconocimiento y luego la ventana de transmisión transmite una nueva trama de datos.
Esta vez, sin embargo, la ventana de recepción envía además un mensaje que indica que la memoria disponible está llena además del reconocimiento que ha recibido.
La ventana de transmisión detiene la transmisión de datos hasta que recibe la confirmación de la ventana de recepción de que se ha liberado espacio, momento en el que puede reanudar la transmisión de datos.
Conclusión
En conclusión, la capa de conexión de datos y la capa de transporte son responsables de manejar las cuestiones de control de flujo.
El objetivo básico del mecanismo de control de flujo es evitar que el receptor se sobrecargue con datos del emisor que transmite más rápido.
Incluso si los datos que transfiere el remitente no tienen errores y se envían a una velocidad más rápida gracias a una máquina potente, es posible que el receptor del extremo más lento no pueda manejar la velocidad de datos más rápida y, por lo tanto, pierda algunos datos.
Deje un comentario