TCP usa control de flujo para
evitar que un emisor envié datos de forma más rápida de la que el receptor
puede recibirlos y procesarlos. El control de flujo es un mecanismo esencial en
redes en las que se comunican computadoras con distintas velocidades de
transferencia. Por ejemplo, si una PC envía datos a un dispositivo móvil que
procesa los datos de forma lenta, el dispositivo móvil debe regular el flujo de
datos.
TCP usa una ventana
deslizante para el control de flujo. En cada segmento TCP, el receptor
especifica en el campo receive window la cantidad de bytes que puede
almacenar en el buffer para esa conexión. El emisor puede enviar
datos hasta esa cantidad. Para poder enviar más datos debe esperar que el
receptor le envié un ACK con un nuevo valor de ventana.
- Receptor lee más despacio que lo que recibe (. . .)
- Buffer se desbordaría
- Receptor informa a emisor del espacio libre
Comunicación
full-duplex
- Por simplicidad hablaremos solo de un sentido
Buffers de
emisión y recepción
- Buffer circular (…)
- Protocolo de Ventana Deslizante
- Se confirma el último dato consecutivo recibido
Ventana
deslizante en TCP
- La aplicación receptor lee bytes del stream
– La ventana se abre en el emisor
– Se desliza en el receptor