Protocolos de control del enlace de datos
La necesidad del control del enlace de datos se evidencia a partir de
los siguientes requisitos y objetivos para la comunicación efectiva
de datos entre dos estaciones conectadas directamente:
Sincronización de trama: los datos se envían en bloques denominados
tramas, cuyo principio y fin deben ser identificables. Este aspecto
se abordó brevemente cuando se estudiaron las tramas síncronas.
Control de flujo: la estación emisora no debe enviar tramas a una
velocidad superior a la que la estación receptora pueda absorberlas.
Control de errores: se debe corregir cualquier error en los bits
provocado por el sistema de transmisión.
Direccionamiento: en una línea multipunto, como por ejemplo una red
de área local (LAN), se debe identificar a las dos estaciones
involucradas en una transmisión.
Datos y control sobre el mismo enlace: por lo general, no se desea
tener un canal de comunicaciones independiente para la información
de control. En consecuencia, el receptor deberá ser capaz de
diferenciar entre la información de control y los datos.
Gestión del enlace: el inicio, mantenimiento y finalización de un
intercambio de datos precisa un alto grado de coordinación y
cooperación entre las estaciones. Se necesitan, pues, una serie de
procedimientos para llevar a cabo la gestión de este intercambio.
CONTROL
DE FLUJO
El control de flujo es una técnica utilizada para asegurar que una
entidad de transmisión no sobre cargue a la entidad receptora con
una excesiva cantidad de datos. Generalmente, la entidad receptora
reserva una zona de memoria temporal para la transferencia. Cuando se
reciben los datos, el receptor debe realizar cierta cantidad de
procesamiento antes de pasar los datos al software de las capas
superiores. En ausencia de procedimientos para el control de flujo,
la memoria temporal del receptor se podría llenar y desbordarse
mientras éste se encuentra procesando datos previos.
CONTROL
DE FLUJO MEDIANTE PARADA Y ESPERA
El procedimiento más sencillo para controlar el flujo, denominado
control de flujo mediante parada y espera, funciona de la siguiente
manera. Una entidad origen transmite una trama. Tras la recepción,
la entidad destino indica su deseo de aceptar otra trama mediante el
envío de una confirmación de la trama que acaba de recibir. El
origen debe esperar a recibir la confirmación antes de proceder a la
transmisión de la trama siguiente. De este modo, el destino puede
parar el flujo de los datos sin más que retener las confirmaciones.
Este procedimiento funciona adecuadamente y, de hecho, es difícil
mejorar sus prestaciones cuando el mensaje se envía usando un número
reducido de tramas de gran tamaño. No obstante, es frecuente que el
origen segmente la información en bloques pequeños, transmitiendo
los datos en varias tramas. Esto se hace así por las siguientes
razones:
El tamaño de la memoria temporal del receptor puede ser limitado.
Cuanto más larga sea la transmisión es más probable que haya
errores, precisándose en tal caso la retransmisión de la trama
completa. Si se usan tramas más pequeñas, los errores se detectarán
antes y, en consecuencia, se necesitará retransmitir una cantidad de
datos menor.
En un medio compartido, como por ejemplo una LAN, es frecuente que no
se permita que una estación ocupe el medio durante un periodo de
tiempo largo, evitándose así que las otras estaciones transmisoras
sufran grandes retardos.
CONTROL
DE FLUJO MEDIANTE VENTANA DESLIZANTE
Veamos cómo funcionaría este procedimiento para dos estaciones, A y
B, conectadas mediante un enlace full-duplex. La estación B reserva
memoria temporal suficiente para almacenar W tramas. Por tanto, B
puede aceptar W tramas, permitiéndosele a A enviar este mismo número
de tramas sin tener que esperar ninguna confirmación. Para saber qué
tramas se han confirmado, cada una de ellas se etiqueta con un número
de secuencia. B confirma una trama mediante el envío de una
confirmación que incluye el número de secuencia de la siguiente
trama que se espera recibir. Esta confirmación informa también,
implícitamente, acerca de que B está preparado para recibir las W
tramas siguientes, comenzando por la de número especificado. Este
esquema se puede utilizar también para confirmar varias tramas
simultáneamente. Por ejemplo, B podría recibir las tramas 2, 3 y 4,
pero retener la confirmación hasta que llegase la trama 4. Al
devolver una confirmación con número de secuencia 5, B confirma
simultáneamente las tramas 2, 3 y 4. A mantiene una lista con los
números de secuencia que se le permite transmitir y B mantiene una
lista con los números de secuencia que está esperando recibir...
Cada una de estas listas se puede considerar como una ventana de
tramas, de ahí que este procedimiento se denomine control de flujo
mediante ventana deslizante (sliding-window flow control).
CONTROL
DE ERRORES
El control de errores hace referencia a los mecanismos necesarios
para la detección y la corrección de errores que aparecen en una
transmisión de tramas.
Tramas perdidas: se produce cuando una trama enviada no llega al otro
extremo. Así, por ejemplo, una ráfaga de ruido puede dañar una
trama de manera que el receptor no se percate siquiera de su
transmisión.
Tramas dañadas: ocurre cuando una trama se recibe con algunos bits
erróneos (modificados durante la transmisión).
Las técnicas más usuales para el control de errores se basan en
algunas o todas las siguientes aproximaciones:
Detección de errores: discutida en el Capítulo 6.
Confirmaciones positivas: el destino devuelve una confirmación
positiva por cada trama recibida con éxito, libre de errores.
Retransmisión tras la expiración de un temporizador: la fuente
retransmite las tramas que no se han confirmado tras un periodo de
tiempo predeterminado.
Confirmación negativa y retransmisión: el destino devuelve una
confirmación negativa para aquellas tramas en las que se detecta la
ocurrencia de errores. El origen retransmitirá de nuevo dichas
tramas.
Estos mecanismos se denominan genéricamente solicitud de repetición
automática (ARQ, Automatic Repeat reQuest); el objetivo de un
esquema ARQ es convertir un enlace de datos no fiable en fiable. Hay
tres variantes ARQ estandarizadas:
ARQ con parada y espera.
ARQ con vuelta atrás N.
ARQ con rechazo selectivo.
CONTROL
DEL ENLACE DE DATOS DE ALTO NIVEL (HDLC)
El protocolo de control del enlace de datos más importante es HDLC
(High-level Data Link Control, ISO 3009, ISO 4335). No sólo porque
es ampliamente utilizado, sino también porque es la base de otros
importantes protocolos de control del enlace, en los que se usan los
mismos o similares formatos y los mismos procedimientos que los
empleados en HDLC.
CARACTERÍSTICAS
BÁSICAS
Para satisfacer las demandas de diversas aplicaciones, HDLC define
tres tipos de estaciones, dos configuraciones del enlace y tres modos
de operación para la transferencia de los datos. Los tres tipos de
estaciones son:
Estación primaria: es la responsable de controlar el funcionamiento
del enlace. Las tramas generadas por la estación primaria se
denominan órdenes.
Estación secundaria: funciona bajo el control de la estación
primaria. Las tramas generadas por la estación secundaria se
denominan respuestas. La primaria establece un enlace lógico
independiente con cada una de las secundarias presentes en la línea.
Estación combinada: combina las características de las primarias y
de las secundarias, pudiendo generar tanto órdenes como respuestas.
Las
dos posibles configuraciones del enlace son:
Configuración no balanceada: está formada por una estación
primaria y una o más secundarias. Permite tanto transmisión
full-duplex como half-duplex.
Configuración balanceada: consiste en dos estaciones combinadas.
Permite igualmente transmisión full-duplex y half-duplex.
Los
tres modos de transferencia de datos son:
Modo de respuesta normal (NRM, Normal Response Mode): se utiliza en
la configuración no balanceada. La estación primaria puede iniciar
la transferencia de datos hacia la secundaria, pero la secundaria
sólo puede transmitir datos en base a respuestas a las órdenes
emitidas por la primaria.
Modo balanceado asíncrono (ABM, Asynchronous Balanced Mode): se
utiliza en la configuración balanceada. En este modo, cualquier
estación combinada puede iniciar la transmisión sin necesidad de
recibir permiso por parte de la otra estación combinada.
Modo de respuesta asíncrono (ARM, Asynchronous Response Mode): se
utiliza en la configuración no balanceada. La estación secundaria
puede iniciar la transmisión sin tener permiso explícito de la
primaria. La estación primaria sigue teniendo la responsabilidad del
funcionamiento de la línea, incluyendo la iniciación, la
recuperación de errores y la desconexión lógica.
Comentarios
Publicar un comentario