UCLV 1 Mapas Conceptuales para la enseñanza de Redes de Computadoras Protocolo HDLC El protocolo HDLC (High-level Data Link Control) se diseñó para proporcionar un mecanismo de detección y corrección de errores de propósito general a los enlaces digitales, entendiendo como enlace un único cable que conecta dos máquinas (enlace punto a punto), o varias máquinas (enlace multipunto). Este protocolo es muy extenso, por lo que rara vez se utiliza la implementación completa; lo normal es que se utilicen subconjuntos. El protocolo HDLC es el más representativo de los protocolos orientados a bit y, quizás, el protocolo más extendido de todos en las redes de área extensa (redes WAN). Sus características están recogidas en varios documentos de la ISO: ISO 3309: Estructura de la trama ISO 4335: Elementos de procedimiento. ISO 7809: Clases de procedimientos. El estándar proporciona un gran número de funcionalidades de forma que cubra un amplio abanico de aplicaciones. Se considera un ámbito que engloba a otros protocolos, como son: SDLC, LAP, LAPB, LAPD, LAPX, LAPM y LLC. Sus características más importantes son: 1. Permite una explotación dúplex del canal de enlace. 2. Las unidades de transferencia, denominadas tramas, pueden contener a la vez tanto datos como informaciones de servicio (por ejemplo acuse de recibo). 3. Se puede realizar un envío continuo, sin necesidad de esperar acuse de recibo por trama. Un acuse de recibo puede validar varias tramas a la vez. 4. Todas las tramas, sean o no de datos, están protegidas contra errores mediante una FCS (Frame Check Sequence) o secuencia de verificación de trama. 5. Existe un único formato para todas las tramas, con un único delimitador de comienzo y final, denominado bandera. 6. Aseguran la transmisión de elementos binarios y no de caracteres. Sobre el campo de información no se realiza ninguna interpretación de su contenido, lo cual garantiza una total transparencia con respecto a los códigos utilizados. El protocolo HDLC permite gestionar dos tipos de enlaces: equilibrados y no equilibrados: Un enlace no equilibrado, ya sea punto a punto o multipunto, tiene una estación primaria, que controla el enlace y asegura el intercambio de datos entre ella, y una o varias estaciones secundarias. La estación primaria es la responsable de la activación y desactivación del enlace UCLV 2 Mapas Conceptuales para la enseñanza de Redes de Computadoras además de su reposición o restablecimiento en caso de anomalías de funcionamiento. Las tramas que emite la estación primaria se denominan comandos y las que recibe, respuestas. Los enlaces equilibrados son de tipo punto a punto y sus estaciones son mixtas (primarias y secundarias simultáneamente). Ambas estaciones tienen idénticas responsabilidades y las dos pueden emitir tanto comandos de control como respuestas. En el protocolo HDLC las transmisiones están organizadas en tramas, y todas las tramas, sean del tipo que sean, poseen el mismo formato: Como vemos en la figura, la trama consta de 5 o 6 campos (6 para las tramas con campo información) y un mínimo de 32 bits entre los delimitadores (banderas). Veamos detenidamente el significado de cada campo: Bandera 8 bits Dirección 8 bits Control 8 bits Información N bits Bandera 8 bits El campo Bandera: Todas las tramas comienzan y terminan con los campos delimitadores o banderas. Los otros campos son identificables por su posición respecto a ellos. Estas banderas tienen una configuración binaria única: 0 1 1 1 1 1 1 0. Entre estos campos, hay que asegurarse que ningún otro contiene la misma secuencia de bits. Esto se realiza mediante la técnica de inserción de cero: - Entre dos banderas, el emisor inserta un cero después de cada sucesión de cinco unos consecutivos. - El receptor elimina todo cero que siga inmediatamente a cinco unos consecutivos. El campo Dirección: Este campo identifica las estaciones primarias y secundarias involucradas en la transmisión de una trama particular. Cada estación debe tener una dirección única. En configuraciones no equilibradas, los campos de dirección de los comandos y de las respuestas contienen la dirección de la estación secundaria. En configuraciones balanceadas, las tramas de tipo comando contienen la dirección del destino mientras que las tipo respuesta contienen la dirección de la estación remitente. El campo Control. Define el tipo de trama y las funciones de ésta así como los números de secuencia necesarios para llevar cuenta del flujo de datos entre las estaciones. Como todas las tramas tienen el mismo formato, es UCLV 3 Mapas Conceptuales para la enseñanza de Redes de Computadoras a través de este campo como se identifican cada tipo de trama. Existen tres formatos para este campo que definen tres tipos de tramas: Tramas de Información (tipo I). Son tramas que se utilizan para la transferencia normal de datos. Tramas de Supervisión (tipo S). Empleadas para acuse de recibo y para control del tipo de datos en el enlace Tramas no Numeradas (tipo U). Se utilizan también para tareas de control, como definir el tipo de respuesta de una estación, su inicialización y su desconexión. También sirven para informar de algunos errores de procedimiento y para transferir determinados tipos de datos. El campo Información. En este campo se incluyen los datos a transmitir, por lo tanto, solo está presente en las tramas I y en alguna de tipo U que son las que portan datos. Contiene cualquier secuencia de bits cuyo número también puede ser cualquiera (a excepción de las tramas tipo U). El campo FCS (Frame Check Secuence). Está formado por dos bytes (u octetos) que contienen la división de los bits que contiene la trama (campos dirección, control e información) por un polinomio generador. Sirve para detectar y posteriormente corregir, errores producidos en la transmisión de las tramas. La norma ISO DIS 3309 proporciona descripción detallada de como se realiza el cálculo de este campo que de forma simplificada ya hemos visto en este documento en el apartado en que se describió el cálculo de los Controles Cíclicos de errores (CRC). El polinomio generador que se utiliza es el CRC-CCITT: x16 + x12 + x5 + 1 pero por convenio este campo se puede extender a 4 bytes en cuyo caso el polinomio generador que se utiliza es: x32 + x26 + x23+ x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 +x + 1.