Ventaneo en la capa de transporte (control de flujo) explicado: Ventana deslizante TCP

Ventaneo = Control de flujo dinámico en TCP

En la Capa de Transporte (Capa 4 del OSI), el ventaneo es el mecanismo que permite a un receptor decirle al remitente "cuántos más datos puedo aceptar ahora" — evitando desbordamiento de búfer y optimizando el rendimiento.

Conceptos básicos

  • Tamaño de ventana (rwnd): Campo de 16 bits en el encabezado TCP (0–65,535 bytes). Escalado mediante la opción de Escala de ventana (WS) hasta 1 GB (RFC 7323).
  • Ventana de envío: Bytes que el remitente puede transmitir sin acuse = min(cwnd, rwnd).
  • Números de secuencia: Cada byte está numerado; ACK = siguiente byte esperado.

Operación de ventana deslizante

  1. El remitente transmite hasta el tamaño de la ventana.
  2. El receptor procesa y envía ACK con rwnd actualizado.
  3. La ventana "desliza" hacia adelante — nuevos bytes se vuelven elegibles.
  4. Si rwnd = 0, el remitente se detiene (sonda de ventana cero persiste).

Mejoras clave

  • ACK retardado: El receptor espera hasta 200 ms o 2 segmentos → reduce la sobrecarga de ACK.
  • ACK selectivo (SACK): Reporta bloques no contiguos recibidos → retransmisión rápida solo de datos faltantes.
  • Ventana adaptativa: rwnd se encoge/crece con la presión del búfer; cwnd (ventana de congestión) reacciona a pérdida/ECN.

Por qué importa

  • Sin ventaneo: espera y detente → 1 RTT por segmento → rendimiento terrible en enlaces de alto BDP (satélite, fibra de larga distancia).
  • Con ventaneo: uso completo del canal — el remitente mantiene datos "en vuelo" = Ancho de banda × RTT.

Analogía

Brigada de cubos: el tamaño del cubo del receptor = ventana. El remitente vierte hasta que el cubo está lleno; el receptor lo vacía (procesa) y señala "más espacio". Sin derrames, sin manos ociosas.

El ventaneo es por qué un enlace de 1 Gbps sobre 100 ms RTT puede entregar ~1 Gbps — no 14.6 kbps (espera y detente).