Control de flujo (datos) - Flow control (data)

En las comunicaciones de datos , el control de flujo es el proceso de administrar la velocidad de transmisión de datos entre dos nodos para evitar que un remitente rápido abrume a un receptor lento. Proporciona un mecanismo para que el receptor controle la velocidad de transmisión, de modo que el nodo receptor no se vea abrumado por los datos del nodo transmisor. El control de flujo debe distinguirse del control de congestión , que se utiliza para controlar el flujo de datos cuando realmente se ha producido una congestión. Los mecanismos de control de flujo se pueden clasificar según si el nodo receptor envía retroalimentación al nodo emisor o no.

El control de flujo es importante porque es posible que una computadora emisora ​​transmita información a una velocidad más rápida que la que la computadora de destino puede recibir y procesar. Esto puede suceder si las computadoras receptoras tienen una gran carga de tráfico en comparación con la computadora emisora, o si la computadora receptora tiene menos potencia de procesamiento que la computadora emisora.

Detente y espera

El control de flujo de detener y esperar es la forma más simple de control de flujo. En este método, el mensaje se divide en varias tramas y el receptor indica que está preparado para recibir una trama de datos. El remitente espera un acuse de recibo (ACK) después de cada fotograma durante un tiempo específico (llamado tiempo de espera). El receptor envía el ACK para que el remitente sepa que la trama de datos se recibió correctamente. El remitente enviará la siguiente trama solo después del ACK.

Operaciones

  1. Remitente: transmite un solo fotograma a la vez.
  2. El remitente espera recibir ACK dentro del tiempo de espera.
  3. Receptor: transmite acuse de recibo (ACK) a medida que recibe una trama.
  4. Vaya al paso 1 cuando se reciba ACK o se agote el tiempo de espera.

Si se pierde una trama o ACK durante la transmisión, la trama se retransmite. Este proceso de retransmisión se conoce como ARQ ( solicitud de repetición automática ).

El problema con Stop-and-wait es que solo se puede transmitir una trama a la vez, y eso a menudo conduce a una transmisión ineficiente, porque hasta que el remitente recibe el ACK no puede transmitir ningún paquete nuevo. Durante este tiempo, tanto el remitente como el canal no se utilizan.

Pros y contras de detenerse y esperar

Pros

La única ventaja de este método de control de flujo es su simplicidad.

Contras

El remitente debe esperar el ACK después de cada trama que transmite. Esta es una fuente de ineficiencia y es particularmente mala cuando el retardo de propagación es mucho mayor que el retardo de transmisión .

Parar y esperar también puede crear ineficiencias al enviar transmisiones más largas. Cuando se envían transmisiones más largas, es más probable que se produzcan errores en este protocolo. Si los mensajes son breves, es más probable que los errores se detecten temprano. Se crea más ineficacia cuando los mensajes individuales se dividen en tramas separadas porque hace que la transmisión sea más larga.

Ventana deslizante

Método de control de flujo en el que un receptor da permiso a un transmisor para transmitir datos hasta que se llena una ventana. Cuando la ventana está llena, el transmisor debe dejar de transmitir hasta que el receptor anuncie una ventana más grande.

El control de flujo de ventana deslizante se utiliza mejor cuando el tamaño del búfer es limitado y preestablecido. Durante una comunicación típica entre un remitente y un receptor, el receptor asigna espacio de búfer para n tramas ( n es el tamaño de búfer en cuadros). El remitente puede enviar y el receptor puede aceptar n tramas sin tener que esperar un acuse de recibo. Se asigna un número de secuencia a las tramas para ayudar a realizar un seguimiento de las tramas que recibieron un acuse de recibo. El receptor reconoce una trama enviando un acuse de recibo que incluye el número de secuencia de la siguiente trama esperada. Este reconocimiento anuncia que el receptor está listo para recibir n tramas, comenzando con el número especificado. Tanto el emisor como el receptor mantienen lo que se llama una ventana. El tamaño de la ventana es menor o igual que el tamaño del búfer.

El control de flujo de ventana deslizante tiene un rendimiento mucho mejor que el control de flujo de detener y esperar. Por ejemplo, en un entorno inalámbrico, si las velocidades de transmisión de datos son bajas y el nivel de ruido es muy alto, esperar un acuse de recibo para cada paquete que se transfiere no es muy factible. Por lo tanto, la transferencia de datos de forma masiva produciría un mejor rendimiento en términos de mayor rendimiento.

El control de flujo de ventana deslizante es un protocolo punto a punto que asume que ninguna otra entidad intenta comunicarse hasta que se completa la transferencia de datos actual. La ventana mantenida por el remitente indica qué marcos puede enviar. El remitente envía todos los fotogramas de la ventana y espera un acuse de recibo (en lugar de reconocerlo después de cada fotograma). A continuación, el remitente cambia la ventana al número de secuencia correspondiente, lo que indica que se pueden enviar los fotogramas dentro de la ventana a partir del número de secuencia actual.

Regresar N

Un algoritmo de solicitud de repetición automática (ARQ), utilizado para la corrección de errores, en el que un acuse de recibo negativo (NAK) provoca la retransmisión de la palabra con error, así como las siguientes N – 1 palabras. El valor de N generalmente se elige de manera que el tiempo necesario para transmitir las N palabras sea menor que el retardo de ida y vuelta del transmisor al receptor y viceversa. Por lo tanto, no se necesita un búfer en el receptor.

El retardo de propagación normalizado (a) = tiempo de propagación (Tp)tiempo de transmisión (Tt) , donde Tp = longitud (L) sobre la velocidad de propagación (V) y Tt = bitrate (r) sobre la velocidad de fotogramas (F). De modo que a = LFVr .

Para obtener la utilización, debe definir un tamaño de ventana (N). Si N es mayor o igual que 2a + 1, entonces la utilización es 1 (utilización completa) para el canal de transmisión. Si es menor que 2a + 1, entonces se debe usar la ecuación N1 + 2a para calcular la utilización.

Repetición selectiva

La repetición selectiva es un protocolo orientado a la conexión en el que tanto el transmisor como el receptor tienen una ventana de números de secuencia. El protocolo tiene un número máximo de mensajes que se pueden enviar sin reconocimiento. Si esta ventana se llena, el protocolo se bloquea hasta que se reciba un acuse de recibo para el primer mensaje pendiente. En este punto, el transmisor está listo para enviar más mensajes.

Comparación

En esta sección se orienta hacia la idea de la comparación de parada y espera , ventana deslizante con los subconjuntos de vuelta go N y de repetición selectiva .

Detente y espera

Libre de errores: .

Con errores: .

Repetición selectiva

Definimos el rendimiento T como el número medio de bloques comunicados por bloque transmitido. Es más conveniente calcular el número promedio de transmisiones necesarias para comunicar un bloque, una cantidad que denotamos por 0, y luego determinar T a partir de la ecuación .

Transmitir control de flujo

El control de flujo de transmisión puede ocurrir:

La velocidad de transmisión puede controlarse debido a los requisitos de la red o del DTE. El control del flujo de transmisión puede ocurrir independientemente en las dos direcciones de la transferencia de datos, lo que permite que las tasas de transferencia en una dirección sean diferentes de las tasas de transferencia en la otra dirección. El control de flujo de transmisión puede ser

Se puede realizar el control de flujo

  • ya sea por líneas de señal de control en una interfaz de comunicación de datos (ver puerto serie y RS-232 ),
  • o reservando caracteres de control dentro de banda para señalar el inicio y la parada del flujo (como los códigos ASCII para XON / XOFF ).

Control de flujo de hardware

En el RS-232 común hay pares de líneas de control que generalmente se denominan control de flujo de hardware :

El control de flujo de hardware generalmente lo maneja el DTE o el "extremo maestro", ya que primero está levantando o afirmando su línea para ordenar al otro lado:

  • En el caso del flujo de control RTS, el DTE establece su RTS, que indica al extremo opuesto (el extremo esclavo, como un DCE) que comience a monitorear su línea de entrada de datos. Cuando esté listo para los datos, el extremo esclavo elevará su línea complementaria, CTS en este ejemplo, que indica al maestro que comience a enviar datos y que el maestro comience a monitorear la línea de salida de datos del esclavo. Si cualquiera de los extremos necesita detener los datos, baja su línea respectiva de "disponibilidad de datos".
  • Para enlaces de PC a módem y enlaces similares, en el caso del control de flujo DTR, DTR / DSR se activan para toda la sesión del módem (por ejemplo, una llamada de acceso telefónico a Internet en la que se activa DTR para indicar al módem que marque, y DSR se eleva por el módem cuando se completa la conexión), y se generan RTS / CTS para cada bloque de datos.

Un ejemplo de control de flujo de hardware es un módem de radio semidúplex a una interfaz de computadora. En este caso, el software de control en el módem y el ordenador puede escribirse para dar prioridad a las señales de radio entrantes, de modo que los datos salientes del ordenador se pausen reduciendo el CTS si el módem detecta una recepción.

  • Polaridad:
    • Las señales de nivel RS-232 son invertidas por los circuitos integrados del controlador, por lo que la polaridad de la línea es TxD-, RxD-, CTS +, RTS + (claro para enviar cuando HI, el dato 1 es LO)
    • para los pines del microprocesador, las señales son TxD +, RxD +, CTS-, RTS- (claro para enviar cuando LO, los datos 1 son HI)

Control de flujo de software

Por el contrario, XON / XOFF se suele denominar control de flujo de software.

Control de flujo de bucle abierto

El mecanismo de control de flujo de bucle abierto se caracteriza por no tener retroalimentación entre el receptor y el transmisor. Este sencillo medio de control se utiliza ampliamente. La asignación de recursos debe ser de tipo "reserva previa" o "salto a salto".

El control de flujo de bucle abierto tiene problemas inherentes para maximizar la utilización de los recursos de la red. La asignación de recursos se realiza en el establecimiento de la conexión utilizando un CAC ( control de admisión de conexión ) y esta asignación se realiza utilizando información que ya es "noticias antiguas" durante la vida útil de la conexión. A menudo hay una sobreasignación de recursos y las capacidades reservadas pero no utilizadas se desperdician. El control de flujo de bucle abierto es utilizado por ATM en sus servicios CBR , VBR y UBR (ver contrato de tráfico y control de congestión ).

El control de flujo de circuito abierto incorpora dos controles; el controlador y un regulador. El regulador puede alterar la variable de entrada en respuesta a la señal del controlador. Un sistema de circuito abierto no tiene retroalimentación o mecanismo de avance, por lo que las señales de entrada y salida no están directamente relacionadas y hay una mayor variabilidad del tráfico. También hay una tasa de llegada más baja en dicho sistema y una tasa de pérdida más alta. En un sistema de control abierto, los controladores pueden operar los reguladores a intervalos regulares, pero no hay garantía de que la variable de salida pueda mantenerse en el nivel deseado. Si bien puede resultar más económico utilizar este modelo, el modelo de circuito abierto puede ser inestable.

Control de flujo de circuito cerrado

El mecanismo de control de flujo de bucle cerrado se caracteriza por la capacidad de la red de informar al transmisor sobre la congestión pendiente de la red . A continuación, el transmisor utiliza esta información de diversas formas para adaptar su actividad a las condiciones de la red existente. ABR utiliza el control de flujo de bucle cerrado (consulte el contrato de tráfico y el control de congestión ). El control de flujo de transmisión descrito anteriormente es una forma de control de flujo de circuito cerrado.

Este sistema incorpora todos los elementos de control básicos, como el sensor, el transmisor, el controlador y el regulador. El sensor se utiliza para capturar una variable de proceso. La variable de proceso se envía a un transmisor que traduce la variable al controlador. El controlador examina la información con respecto a un valor deseado e inicia una acción de corrección si es necesario. Luego, el controlador le comunica al regulador qué acción se necesita para garantizar que el valor de la variable de salida coincida con el valor deseado. Por lo tanto, existe un alto grado de seguridad de que la variable de salida se puede mantener en el nivel deseado. El sistema de control de circuito cerrado puede ser un sistema de retroalimentación o de avance:

Un sistema de retroalimentación en circuito cerrado tiene un mecanismo de retroalimentación que relaciona directamente las señales de entrada y salida. El mecanismo de retroalimentación monitorea la variable de salida y determina si se requiere una corrección adicional. El valor de la variable de salida que se retroalimenta se utiliza para iniciar esa acción correctiva en un regulador. La mayoría de los lazos de control en la industria son del tipo de retroalimentación.

En un sistema de circuito cerrado de alimentación directa, la variable de proceso medida es una variable de entrada. La señal medida se usa entonces de la misma manera que en un sistema de retroalimentación.

El modelo de circuito cerrado produce una menor tasa de pérdidas y retrasos en las colas, además de generar tráfico que responde a la congestión. El modelo de circuito cerrado siempre es estable, ya que el número de mínimos activos está limitado.

Ver también

Referencias

Ventana deslizante:

  • [1] consultado por última vez el 27 de noviembre de 2012.

enlaces externos