El control de flujo es necesario para no saturar al receptor de uno a más emisores. Se realiza normalmente en la capa de transporte, y también a veces en la capa de enlace. Utiliza mecanismos de retroalimentación. El control de flujo conlleva dos acciones importantísimas que son la detección de errores y la corrección de errores.
Existen 2 técnicas:
- Control de flujo mediante parada y espera
- Control de flujo mediante ventana deslizante
6.1.4.1. Control de flujo mediante parada y espera
Nota
La numeración de tramas es 0 y 1.
Después se reinicia la numeración, lo que no significa que se vuelvan a enviar las tramas, sino que la numeración vuelve a iniciarse.
El procedimiento más sencillo para controlar el flujo, denominado control de flujo mediante parada y espera, funciona de la siguiente manera. Una entidad origen transmite una trama. Tras la recepción, la entidad destino indica su deseo de aceptar otra trama mediante el envío de una confirmación de la trama que acaba de recibir. El origen debe esperar a recibir la confirmación antes de proceder a la transmisión de la trama siguiente. De este modo, el destino puede parar el flujo de los datos sin más que retener las confirmaciones. Este procedimiento funciona adecuadamente y, de hecho, es difícil mejorar sus prestaciones cuando el mensaje se envía usando un número reducido de tramas de gran tamaño.
Sin embargo, en la práctica las tramas tienden a ser pequeñas puesto que así:
- el receptor necesita menor memoria temporal.
- se reduce el riesgo de errores.
- se evita la ocupación excesiva del medio por parte de una única estación transmisora.
6.1.4.2. Control de flujo mediante ventana deslizante
Con el procedimiento anterior solo puede haber en tránsito una trama a la vez. Si se permite que transiten varias tramas al mismo tiempo sobre el enlace, la eficiencia mejorará significativamente.
Veamos cómo funcionaría este procedimiento para dos estaciones, A y B, conectadas mediante un enlace full-duplex. La estación B reserva memoria temporal suficiente para almacenar 3 tramas. Por tanto, B puede aceptar 3 tramas, permitiéndosele a A enviar este mismo número de tramas sin tener que esperar ninguna confirmación. Para saber qué tramas se han confirmado, cada una de ellas se etiqueta con un número de secuencia. B confirma una trama mediante el envío de una confirmación que incluye el número de secuencia de la siguiente trama que se espera recibir. Esta confirmación informa también, implícitamente, acerca de que B está preparado para recibir las 3 tramas siguientes, comenzando por la de número especificado.