Protocolo HDLC

HDLC (High-Level Data Link Control) es un protocolo de comunicaciones de datos punto a punto entre dos elementos basado en el ISO 3309. Proporciona recuperación de errores en caso de pérdida de paquetes de datos, fallos de secuencia y otros. Mediante una red de conmutadores de paquetes conectados con líneas punto a punto entre ellos y con los usuarios se constituye la base de las redes de comunicaciones X25. Este es un protocolo de propósito general, que opera a nivel de enlace de datos. Este ofrece una comunicación confiable entre el trasmisor y el receptor. Es el protocolo más importante para el enlace de datos (IS0 3309, IS0 4335). No solo porque es el más utilizado, sino porque además es la base para otros protocolos importantes de esta capa, en los que se usan formatos similares e iguales procedimientos a los que se usan en HDLC.

Características básicas del HDLC

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: se caracteriza porque tiene la responsabilidad de controlar el funcionamiento del enlace. Las tramas generadas por la 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 para cada una de las secundarias presentes en la línea.

• Estación combinada: es una mezcla entre las características de las primarias y las secundarias. Una estación de este tipo puede 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 transmisión full-duplex y semi-duplex.

• Configuración balanceada: consiste en dos estaciones combinadas. Permite igualmente transmisión full-duplex o semi-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 a la secundaria, pero la secundaria solo puede transmitir datos usando 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 podrá 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 explicito por parte 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.

Estructura

HDLC usa transmisión síncrona. Todos los intercambios se realizan a través de tramas, HDLC utiliza un formato único de tramas que es válido para todos los posibles intercambios: datos e información de control.

En la Figura se muestra la estructura de una trama HDLC. Al campo de delimitación, de dirección y de control, que preceden al campo de información se denominan cabecera. La FCS junto con el otro campo de delimitación final que está a continuación del campo de datos de denomina cola.

Los campos de delimitación están localizados en los dos extremos de la trama, y ambos corresponden a la siguiente combinación de bits 01111110. Se puede usar un único delimitador como final y comienzo de la siguiente trama simultáneamente. A ambos lados de la interfaz entre el usuario y la red, los receptores estarán continuamente intentando detectar esta secuencia para sincronizarse con el comienzo de la trama. Cuando se recibe una trama, la estación seguirá intentando detectar esa misma secuencia para determinar así el final de la trama. Como se usa la secuencia 01111110 en la delimitación de las tramas, es necesario el uso del procedimiento denominado inserción de bits. Por el cual, el emisor cuando deba enviar una cadena que contenga una secuencia de cinco bits en 1 insertará inmediatamente después del quinto 1 un 0. El receptor, tras la detección del delimitador de comienzo, monitorizará la cadena de bits recibida, de tal manera que cuando aparezca una combinación de cinco 1 seguidos, el sexto bit se examinará. Si dicho bit es 0, se eliminará sin más. Si el sexto bit es un 1 y el séptimo es un 0, la combinación se considera como un delimitador. Si los bits sexto y séptimo son ambos igual a 1 se interpreta como una indicación de cierre generada por el emisor.

Cada dato que se envía, es encapsulado en una trama HDLC, esto añadiéndole un header y una cola. El header contiene una dirección HDLC y un campo de control HDLC. La cola contiene un campo de CRC (ciclic redundancy check).

Cada trama es separada por un delimitador o bandera con valor hexadecimal 7E. Este flag o bandera se puede utilizar para identificar el inicio de la siguiente trama.

Existen tres tipos de trama (DL_PDU): trama de información que transportan los datos del usuario, de supervisión y de gestión (o no numeradas). El orden de inyección de las tramas en el medio de transmisión es LSB (primero el bit menos significativo).

Las tramas de supervisión se utilizan para el reconocimiento de tramas, control de flujo y control de errores (siempre que no sea posible hacerlo mediante las tramas de información). Existen cuatro subtramas:

Ready to Receive: Reconocimiento Positivo: RR N Reconoce las tramas hasta la N-1 e indica que la próxima trama que espera recibir es la N.

Si tiene el bit P (poll/sondeo) activado indica que la estación primaria está sondeando a la estación secundaria.

Si tiene el bit F activado y es después de una selección, indica que el secundario está listo para recibir datos del primario. Si no es después de una selección, la estación secundaria indica a la primaria que no tiene más tramas que transmitir. Normalmente la estación secundaria envía tramas de información hasta que se le acaban los datos y entonces envía una trama RR con F activado para indicar finalización.

Ready Not to Receive: Reconocimiento Positivo No Listo Para Recibir: RNR N Reconoce las tramas hasta la N-1 e indica que ahora mismo no puede recibir más tramas.

Si tiene el bit P activado sirve para seleccionar la estación secundaria que recibirá los datos, indicando que la estación primaria no va a recibir datos.

Si tiene el bit F activado sirve para que la estación secundaria indique a la estación primaria que no está listo para recibir datos.

Reject: Rechazo: REJ N Reconoce las tramas hasta la N-1 e indica que a partir de la trama N hay que retransmitir.

Selective Reject: Rechazo Selectivo: SREJ N Indica que la trama N no llegó correctamente y debe ser retransmitida.

Las órdenes que se pueden encontrar en las tramas de gestión son:

Las órdenes SNRM, SNRME, SARM, SARME, SABM y SABME sirven para activar el modo en que se comunicarán las estaciones: NRM o modo de respuesta normal, ARM o modo de respuesta asíncrona y ABM o modo asíncrono equilibrado, con sus respectivas extensiones (NRME, SARME y SABME).

La orden RSET sirve para reiniciar la conexión y poner a cero los contadores y ventanas deslizantes de las tramas. La orden DISC sirve para desconectar la conexión.

Funcionamiento del HDLC

El funcionamiento del HDLC implica tres fases. Primero, uno de los dos extremos inicia el enlace de datos, de tal manera que las tramas se puedan intercambiar de una forma ordenada. Durante esta fase, se pactan las opciones que se usarán en el intercambio posterior. Después de la iniciación, los dos extremos intercambian los datos generados por los usuarios así como información de control para llevar a cabo los procedimientos de control del flujo y de errores. Finalmente, uno de los dos extremos comunicará la finalización de la transmisión.

Iniciación

La iniciación la puede solicitar cualquiera de los dos extremos transmitiendo una de entre las seis órdenes previstas para fijar el modo. Esta orden sirve para tres objetivos: 1. Se avisa al otro extremo sobre la solicitud de la iniciación. 2. Se especifica cual de los tres modos (NRM, ABM, ARM) se está solicitando. 3. Se especifica si se van a utilizar números de secuencia de 3 o 7 bits.

Si el otro extremo acepta la solicitud, se informará al extremo sobre esta contingencia mediante la transmisión de una trama de confirmación no numerada (UA, unnumbered acknowledged). Si la solicitud se rechaza, se envía una trama de modo desconectado (DM, disconnected mode).

Transferencia de datos

Cuando la iniciación se haya solicitado y haya sido aceptada, entonces se habrá establecido la conexión lógica. A partir de entonces, ambos lados pueden comenzar a enviar datos mediante tramas-I, comenzando con el número de secuencia igual a 0. Los campos N(S) y N(R) de una trama-I contendrán los números de secuencia con los que se lleva a cabo el control del flujo y de errores. La secuencia de tramas-I se numerará secuencialmente módulo 8 o módulo 128, dependiendo de si se utilizan respectivamente 3 o 7 bits, utilizando el campo N(S). El campo N(R) se utiliza para la confirmación de las tramas- I recibidas; de esta forma se facilita que el módulo HDLC indique al otro extremo el número de trama-I que se espera recibir.

Las tramas-S también se usan para controlar el flujo y los errores. La trama receptor preparado (RR, receive ready) confirma una trama-I recibida, indicando a la vez la siguiente trama-I que se espera recibir. La RR se usa cuando no hay tráfico en el sentido contrario (tramas-I) en el que se puedan incluir las confirmaciones. La trama receptor no preparado (RNR, receive not ready) confirma una trama-I, como la hace la RR, pero a la vez solicita a la entidad situada al otro extremo del enlace que suspenda la transmisión de tramas-I. Cuando la entidad que envió la RNR este de nuevo preparada, enviará una RR. La trama REJ sirve para iniciar el procedimiento ARQ con vuelta-atrás-N. Con ella se indica que la última trama-I recibida se ha rechazado y solicita la retransmisión de todas las tramas-I con números de secuencia posteriores a la N(R). La trama de rechazo selectivo (SREJ, selective reject) se usa para solicitar la retransmisión de una única trama.

Desconexión

Cualquiera de las dos entidades situadas a ambos lados del enlace pueden iniciar la desconexión; tanto por iniciativa propia (si es que ha habido algún tipo de fallo) como tras la petición cursada por capas superiores. HDLC lleva a cabo la desconexión transmitiendo una trama de desconexión (DISC, disconnect). El otro extremo podrá aceptar dicha desconexión devolviendo una trama UA e informando al usuario de la capa 3 sobre el cierre de la conexión. Se puede perder cualquier trama-I pendiente de confirmarse, en ese caso su recuperación es responsabilidad de las capas superiores.

REGRESAR A LA PAGINA PRINCIPAL