2.3 CONTROL DE FLUJO
El problema a resolver con el control de flujo de datos
o de congestión es que una entidad emisora no sobrecargue a otra receptora de
datos. Esto puede suceder cuando la memoria reservada (buffer) en la recepción
se desborda. El control de flujo no contempla en principio la existencia de
errores de transmisión, sin embargo a menudo se integra con del control de
errores que se verá más adelante. Existen dos formas diferentes de hacer el
control del flujo: control hardware y control
software.
2.3.1
ASENTAMIENTO
Un primer protocolo capaz
de controlar la congestión muy simple es el conocido como de parada y espera o
en términos más formales se conoce como Asentamiento. Únicamente para evitar
desbordar al receptor, el emisor enviaría una trama y esperaría un acuse de
recibo antes de enviar la siguiente (fig 15. ).
Este procedimiento resulta adecuado cuando hay que enviar pocas tramas de gran tamaño.
Sin embargo, la información suele transmitirse en forma de tramas cortas debido
a la posibilidad de errores, la capacidad de buffer limitada y la necesidad en algunos
casos de compartir el medio.
La eficiencia de este sistema sería la proporción entre el tiempo empleado en transmitir información útil (Trama) y el tiempo total del proceso (Total). El primero sería igual al tamaño de la trama partido por la velocidad de transmisión del emisor.
2.3.2
VENTANAS DESLIZANTES
Un mecanismo más
sofisticado y muy empleado es el de la
ventana deslizante. La ventana determina cuantos mensajes pueden estar
pendientes de confirmación y su tamaño se ajusta a la capacidad del buffer del
receptor para almacenar tramas. El tamaño
máximo de la ventana está además limitado por el tamaño del número de secuencia
que se utiliza para numerar las tramas.
Si las tramas se numeran
con tres bits (en modulo 8, del 0 al 7), se podrán enviar hasta siete tramas
sin esperar acuse de recibo y sin que el protocolo falle (tamaño de
ventana = 2k-1). Si el número de
secuencia es de 7 bits (modulo 128, del 0 al 127) se podrán enviar hasta 127
tramas si es que el buffer del receptor tiene capacidad para ellas. Normalmente,
si el tamaño no es prefijado por el protocolo, en el establecimiento del enlace
el emisor y receptor negociarán el tamaño de la ventana atendiendo a las características
del elemento que ofrece menos prestaciones.
2.4.3 CONTROL
POR HARDWARE
Consiste
en utilizar líneas dispuestas para ese fin como las que tiene la conexión RS-232-C.
Este método de control del flujo de transmisión utiliza líneas del puerto serie
para parar o reanudar el flujo de datos y por tanto el cable de comunicaciones,
además de las tres líneas fundamentales de la conexión serie: emisión,
recepción y masa, ha de llevar algún hilo más para transmitir las señales de
control.
En
el caso más sencillo de que la comunicación sea en un solo sentido, por ejemplo
con una impresora, bastaría con la utilización de una línea más. Esta línea la
gobernaría la impresora y su misión sería
la de un semáforo. Por ejemplo, utilizando los niveles eléctricos reales
que usa la norma serie RS-232-C, si esta línea está a una tensión positiva de
15 V. (0 lógico) indicaría que la impresora está en condiciones de recibir
datos, y si por el contrario está a -15 V. (1 lógico) indicaría que no se le
deben enviar más datos por el momento.
Si
la comunicación es en ambos sentidos, entonces necesitaríamos al menos dos
líneas de control, una que actuaría de semáforo en un sentido y la otra en el
otro. Las líneas se han de elegir que vayan de una salida a una entrada, para
que la lectura sea válida y además se debe tratar de utilizar las que la norma
RS-232-C recomienda para este fin.
2.4.4.
CONTROL POR SOFTWARE
La otra forma de control
del flujo consiste en enviar a través de la línea de comunicación caracteres de
control o información en las tramas que indican al otro dispositivo el estado
del receptor. La utilización de un control software de la transmisión permite
una mayor versatilidad del protocolo de comunicaciones y por otra parte se
tiene mayor independencia del medio físico utilizado. Así por ejemplo, con
un protocolo exclusivamente hardware
sería bastante difícil hacer una comunicación vía telefónica, ya que las
señales auxiliares de control se tendrían
que emular de alguna manera.
Las formas más sencillas de control de flujo por
software son el empleo de un protocolo como el XON/XOFF que se verá más
adelante o como la espera de confirmación antes del envío mediante un ACK o
similar como se indicaba en el ejemplo del protocolo de parada y espera.
No hay comentarios:
Publicar un comentario