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.
Los paquetes se denominaran Unacknowledge si han sido enviados pero no han sido validados.
Técnicamente el número de paquetes 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.
Por ejemplo, en una ventana deslizante de tamaño 8, el emisor puede
transmitir hasta 8 paquetes 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). Figura 2.
Si el protocolo esperase una validación por cada trama enviada, no se
enviarían más paquetes 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.
Ventana deslizante 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.
A cada uno de los paquetes 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. Fig 3.
Recuperación de errores
El receptor es capaz de reconocer una trama errónea mediante los códigos de Control de redundancia cíclica. El
receptor cuando detecta que una trama no es correcta, por que se han producido errores en la transmisión, la descarta
siempre.
Existen 2 estrategias diferentes para la recuperación de errores:
• Estrategia de rechazo simple (retroceso N, vuelta atrás, pullback
NACK).
Tamaño ventana recepción=1. El receptor rechaza todas las tramas
recibidas a partir de detectar una trama con error en el número de
secuencia. Al detectar la trama errónea envía una señal REJ n (señal
Figura 4. a) b) c).
propia para este tipo de estrategia, n=nº trama errónea), o NACK n,
(trama n no validada, n=nº trama errónea), al emisor para indicarle la
situación. En ese instante el emisor comienza con la retransmisión de todas las tramas descartadas por el receptor,
tanto la trama errónea como las tramas enviadas después de la trama errónea. Estas tramas retransmitidas por el
receptor se encontraban en el buffer del transmisor a espera de validación (Unacknowledge packets). No es un
método efectivo, pierde mucho tiempo en la retransmisión. Fig 4.b).
Referencias
• Comer, Douglas E. "Internetworking with TCP/IP, Volume 1: Principles, Protocols, and Architecture", Prentice
Hall, 1995. ISBN 0-13-216987-8
• Peterson, Larry L. & Davie, Bruce S. "Computer Networks: A Systems Approach", Morgan Kaufmann, 2000.
ISBN 15586051428888
Véase también
• Capa de Enlace de datos
• Congestion de red
• Detección y corrección de errores
• RFC 1323 - Extensiones TCP para un alto rendimiento
• Escalado de ventana TCP y rotura de routers (http://lwn.net/Articles/92727/), 2004
• Demostración de ventana deslizante (http://www2.rad.com/networks/2004/sliding_window/) (necesario
Flash)
• Demostración de ventana deslizante (http://www.humboldt.edu/~aeb3/telecom/SlidingWindow.html)
(necesario Shockwave)
Fuentes y contribuyentes del artículo 4
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported
http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/