Make your own free website on Tripod.com
HDLC

Tecnologías y protocolos de red* Nivel de aplicación DNS, FTP, HTTP,
IMAP, IRC, NFS, NNTP, NTP, POP3, SMB/CIFS, SMTP, SNMP, SSH, Telnet,
SIP, ver más
Nivel de presentación ASN.1, MIME, SSL/TLS, XML, ver más
Nivel de sesión NetBIOS, ver más
Nivel de transporte SCTP, SPX, TCP, UDP, ver más
Nivel de red AppleTalk, IP, IPX, NetBEUI, X.25, ver más
Nivel de enlace ATM, Ethernet, Frame Relay, HDLC, PPP, Token Ring,
Wi-Fi, STP, ver más
Nivel físico Cable coaxial, Cable de fibra óptica, Cable de par
trenzado, Microondas, Radio, RS-232, ver más
* según el Modelo OSI
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.
El NRM suele usarse en líneas con múltiples conexiones y en enlaces punto a
punto, mientras que el ABM es el más utilizado de los tres modos; debido a que
en ABM no se necesitan hacer sondeos, la utilización de los enlaces punto a punto
con full-duplex es más eficiente con este modo. ARM solo se usa en casos muy
particulares.

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.
Flag Dirección Control Información FCS Flag (comienzo de la trama siguiente)
8 bits 8 bits 8 or 16 bits Longitud variable, 0 o más bits, múltiplos de 8 16 bits 8 bits

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:

00 RR (Ready to Receive)

01 REJ (Reject)

10 RNR (Ready Not to Receive)

11 SREJ (Selective Reject)

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:

CODIGO ORDEN RESPUESTA
00001 SNRM
11011 SNRME
11000 SARM DM
11010 SARME
11100 SABM
11110 SABME
00000 UI UI
00110 UA
00010 DISC RD
10000 SIM RIM
00100 UP
11001 RSET
11101 XID XID
10001 FRMR

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.

Campo de Dirección

El campo de dirección identifica a la estación secundaria que ha transmitido o que va a
recibir la trama. Este campo no se usa en enlaces punto a punto. El mismo tiene
normalmente 8 bits, puede usarse también un formato ampliado en el que la dirección tendrá
un múltiplo de 7 bits. El bit menos significativo de cada octeto será respectivamente
1 o 0, si es o no el último octeto del campo de dirección. Los 7 bits restantes de cada
octeto formarán la dirección propiamente dicha.

Campo de control

En HDLC se definen tres tipos de tramas, cada una con formato diferente para el campo de
control. Las tramas de información (tramas-I) transportan los datos generados por el
usuario. En estas tramas también se incluye información para el control ARQ de errores y
de flujo. Las tramas de supervisión (tramas-S) proporcionan el mecanismo ARQ cuando la
incorporación de las confirmaciones en las tramas-I no es factible. Las tramas no numeradas
(Tramas- N) proporcionan funciones complementarias para controlar el enlace.

El primer o los dos primeros bits del campo de control se utilizan para identificar el tipo
de trama. El resto de los bits se ubican en subcampos como se indica en la figura. 6. (c) y
(d) Todos los formatos posibles del HDLC contienen el bit sondeo/fin (P/F ¨poll/final¨). Su
utilización es dependiente del contexto. Normalmente en las tramas de órdenes se denomina
bit P, y se fija a 1 para solicitar (sondear) una respuesta a la entidad HDLC par. En las
tramas de respuesta, el bit se denomina F, y se fija a un valor 1 para identificar a la
trama tipo respuesta devuelta tras la recepción de una orden.

Campo de información

El campo de información solo está presente en las tramas- I y en algunas tramas N. Este
campo puede contener cualquier secuencia de bits, con la única restricción que el número
de bits sea igual a un múltiplo entero de 8. La longitud de este campo es variable y
siempre será menor que un valor máximo predefinido.

Campo para la secuencia de comprobación de la trama

La secuencia de comprobación de la trama (FCS, Frame Check Sequence) es un código para la
detección de errores calculado a partir de los bits de la trama excluyendo los delimitadores.

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.