Ventana deslizante

La Ventana deslizante es un mecanismo dirigido al control de flujo de datos que existe entre un emisor y un receptor pertenecientes a una red informática.

El Protocolo de Ventana Deslizante es un protocolo de transmisión de datos bidireccional de la capa del nivel de enlace ( modelo OSI).

La ventana deslizante es un dispositivo de control de flujo de tipo software, es decir, el control del flujo se lleva a cabo mediante el intercambio específico de caracteres o tramas de control, con los que el receptor indica al emisor cuál es su estado de disponibilidad para recibir datos.

Este dispositivo es necesario para no inundar al receptor con envíos de tramas de datos. El receptor al recibir datos debe procesarlo, si no lo realiza a la misma velocidad que el transmisor los envía se verá saturado de datos, y parte de ellos se pueden perder. Para evitar tal situación la ventana deslizante controla este ritmo de envíos del emisor al receptor.

Con este dispositivo se resuelven dos grandes problemas: el control de flujo de datos y la eficiencia en la transmisión.

Funcionamiento de la ventana de transmisión

Figura 1. a) b).

El protocolo de ventana deslizante permite al emisor transmitir múltiples segmentos de información antes de comenzar la espera para que el receptor le confirme la recepción de los segmentos, tal confirmación se llama validación, y consiste en el envío de mensajes denominados ACK del receptor al emisor. La validación se realiza desde el receptor al emisor y contiene el número de la siguiente trama que espera recibir el receptor, o el de la última trama recibida con éxito, ACK n (siendo n el número de la trama indicada). Con esta indicación el emisor es capaz de distinguir el número de los envíos realizados con éxito, los envíos perdidos y envíos que se esperan recibir.

Los segmentos se denominaran Unacknowledge si han sido enviados pero no han sido validados.

Técnicamente el número de segmentos que pueden ser Unacknowledge en un momento dado está limitado por el tamaño de la ventana, un número pequeño y fijo, se denomina el ancho de ventana.

Figura 2.

Por ejemplo, en una ventana deslizante de tamaño 8, el emisor puede transmitir hasta 8 segmentos sin recibir validación de ninguno de ellos. Figura 1.a). Entonces esperará una confirmación de recepción procedente del receptor sin enviar ningún paquete más. Una vez el emisor reciba una validación del primer paquete que envió, perteneciente al número 1 de 8 de la ventana deslizante, la ventana se deslizará abarcando 8 posiciones (su ancho de ventana definido), pero en este caso desde la 2 hasta la 9 y enviará la trama número 9 continuando a la espera de recibir más confirmaciones para poder seguir deslizándose y enviando las tramas siguientes. Figura 1.b).

Si el protocolo esperase una validación por cada trama enviada, no se enviarían más segmentos hasta recibir el reconocimiento del último paquete enviado. El concepto de ventana deslizante hace que exista una continua transmisión de información, mejorando el desempeño de la red. Figura 2.

El transmisor deberá guardar en un buffer todas aquellas tramas enviadas y no validadas (Unacknowledge packets), por si necesitase retransmitirlas. Sólo puede borrarlas del buffer al recibir su validación procedente del receptor, y deslizar así la ventana una unidad más. El número más pequeño de la ventana deslizante corresponde al primer paquete de la secuencia que no ha sido validado. El tamaño del buffer debe ser igual o mayor al tamaño de la ventana. El número máximo de tramas enviadas sin validar es igual al ancho de la ventana. De esta forma el buffer podrá almacenar temporalmente todas las tramas enviadas sin validar.

Figura 3.

A cada uno de los segmentos pertenecientes al buffer (aquellos enviados y no validados), se les asigna un temporizador. El temporizador es el límite de tiempo de espera para recibir la validación de un determinado paquete. Si el paquete se pierde en el envío, el emisor nunca recibiría validación. El paquete nunca llegaría al receptor, este continuaría a la espera de recibir el paquete perdido. De esta manera el temporizador expiraría, tomando la decisión de reenviar la trama asignada al temporizador consumido. A este proceso se le conoce como "Stop and Wait". Fig 3.

Existen situaciones distintas a la anterior en las que el emisor es consciente que debe retransmitir tramas sin que el temporizador llegue a expirar, explicadas adelante.

Other Languages