2. Control de Flujo

2.3. Ejemplo ventana deslizante


En la figura se muestra un ejemplo en el que se supone un campo de 3 bits para los números de secuencia y un tamaño máximo para la ventana igual a siete tramas

Inicialmente, A y B tienen las ventanas indicando que A puede transmitir siete tramas, comenzando con la 0 (F0). Tras transmitir tres tramas (F0, F1, F2) sin confirmación, A habrá disminuido su ventana hasta tener un tamaño de cuatro tramas, manteniendo una copia de las tres tramas transmitidas. 

La ventana indica que A puede transmitir cuatro tramas, comenzando por la número 3. B transmite entonces una trama RR (receptor preparado, Receive Ready) 3, lo que significa «he recibido todas las tramas hasta la número 2 y estoy preparado para recibir la número 3; de hecho, estoy preparado para recibir siete tramas, comenzando por la número 3». 

Tras ello, a la estación A se le permite transmitir siete tramas, comenzando por la trama 3; A también puede descartar las tramas almacenadas en la memoria temporal que acaban de ser confirmadas. 

Al pasa a transmitir las tramas 3, 4, 5 y 6. B devuelve una RR 4, con la que confirma F3 y permitiría la  transmisión de la trama F4 y siguientes hasta completar 7 tramas, hasta la F2. (F4, F5, F6, F7,F0,F1,F2).

Cuando la trama RR4 llega a A, éste ya ha transmitido F4, F5 y F6, por lo que A sólo desplaza un extremo derecho de la ventana para permitir la transmisión de cuatro tramas a partir de la F7,F0, F1, F2, F3.

Notar que si bien  con 3 bits puedo numerar 8 tramas, solo funciona este protocolo si de permiten 23 -1=7. Esto es por que si se recibe un RR8, no se puede saber si se validan las 7 enviadas o si se esta pidiendo que se envíen de nuevo.