El control de flujo es la forma en que TCP evita enviar más datos de los que el receptor puede procesar. El control de congestión hace lo mismo, pero para no saturar la red. Las dos cosas se manejan con ventanas: cuántos datos se pueden enviar sin esperar confirmación.
Imagina que alguien te pasa cajas para acomodar en un estante. Le dices: «puedes pasarme hasta cinco sin esperar a que te diga que ya las acomodé». Si te atrasas, le dices «solo dos más»; si el pasillo está lleno de gente, él mismo decide ir más despacio.
En términos técnicos
- Pertenece a TCP, en la capa 4 (Transporte).
- La ventana de recepción (rwnd) la anuncia el receptor en cada segmento: «tengo espacio para N bytes más».
- La ventana de congestión (cwnd) la calcula el emisor según cómo responde la red.
- El emisor puede tener en vuelo, sin confirmar, el mínimo de las dos.
- Se llama ventana deslizante porque, a medida que llegan los acuses, la ventana «avanza» sobre el flujo de datos.
¿Dónde lo vas a encontrar?
En toda conexión TCP. Se nota cuando una descarga empieza lenta y va acelerando, o cuando un enlace con mucha latencia (satélite, otro continente) rinde menos de lo que debería.