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.
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.
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.
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.
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
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.
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.
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.
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.
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