Control de Flujo



La comunicación entre dispositivos conectados a una red es algo más que un emisor que emite unas señales eléctricas codificadas, hay que controlar cual de los dispositivos de la red recibe la señal, hay que evitar que dos dispositivos transmitan a la vez, etc. La comunicación necesita, al menos, dos dispositivos trabajando juntos, uno para enviar y otro para recibir, esto necesita coordinación para que el intercambio sea inteligible. La coordinación en la transmisión (evitar que dos dispositivos transmitan a la vez) es parte de un procedimiento llamado disciplina de línea, además hay que controlar el flujo de datos y los errores. Todas estas funciones son misión del control del nivel de enlace




Control de flujo.

El control del flujo es un conjunto de procedimientos que le dicen al emisor cuantos datos puede transmitir antes de esperar un reconocimiento del receptor. El dispositivo de recepción tiene una velocidad limitada para procesar los datos que recibe y una cantidad limitada de memoria. El receptor realiza un procesado y comprobación de los datos recibidos, la velocidad de esos procesos puede ser más lenta que la velocidad de transmisión, por lo que el receptor debe decirle al emisor que pare la transmisión hasta que vuelva a ser capaz de recibir.

Hay dos procedimientos para el control del flujo de datos: parada y espera y ventana deslizante.




Parada y espera

En el método de para y espera (stop and wait), el emisor espera un reconocimiento después de cada trama que envía, sólo envía la siguiente trama cuando se ha recibido un reconocimiento. El proceso de enviar datos y recibir acaba cuando el emisor envía una trama de fin de transmisión. La ventaja de la parada y espera es su sencillez, cada trama es comprobada y reconocida antes de que se envíe la siguiente, la desventaja es su ineficiencia, ya que es lenta. 




Ventana deslizante.

En el método de control de flujo de ventana deslizante, el emisor puede transmitir varias tramas antes de necesitar un reconocimiento. El receptor notifica el reconocimiento usando un único ACK para confirmar la recepción de múltiples tramas de datos.
La ventana deslizante proporciona un límite superior en el número de tramas que se pueden transmitir antes de esperar un reconocimiento, no obstante las tramas pueden reconocerse sin esperar a que la ventana se llene, para saber que tramas se han transmitido y cuales se han recibido, la ventana deslizante introduce un esquema de identificación basado en el tamaño de la ventana: si la ventana puede tener n tramas, éstas se enumeran desde 0 hasta n-1, repitiendo la numeración en la ventana siguiente (p.e. Con n=8 sería 0, 1, 2, 3, 4, 5, 6, 7, 0, 1 …) Cuando el receptor envía un ACK, incluye el número de la trama que espera recibir, por lo que el emisor sabe que ha llegado bien todas las tramas hasta esa. La ventana trabaja así:



Ventana del emisor: al principio de la transmisión, con una ventana de n tramas, la ventana se llena con n-1 tramas, al emitirlas, el límite izquierdo se reduce, si se ha transmitido t tramas y se recibe un ACK, la ventana , que en ese momento tiene (n-1) – t tramas, se vuelve a llenar con t tramas más . Por ejemplo si n = 7, y se han enviado 4 tramas recibiendo un ACK, en la ventana quedaban las tramas 5, 6 y 7, por lo que se llena con las siguientes 4 tramas, teniendo entonces las tramas 5, 6, 7, 0, 1, 2 y 3.

Ventana del receptor: Al principio de la transmisión, la ventana del receptor contiene n -1 espacios para tramas, al ir llegando las tramas, la ventana se va encogiendo (menos espacios), si al cabo de s tramas se envía un ACK, el número de espacios de la ventana era (n – 1) – s, en el momento que se envía el reconocimiento, la ventana se expande en s tramas hasta volver a tener el tamaño n – 1.

No hay comentarios:

Publicar un comentario