5.4.4 Control de flujo en TCP


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

  • Por simplicidad analicemos solo un sentido
  • Por simplicidad analicemos solo un sentido
  • La aplicación receptor lee bytes del stream
            – La ventana se abre en el emisor
            – Se desliza en el receptor