stringtranslate.com

Control de enlace de datos de alto nivel

El control de enlace de datos de alto nivel (HDLC) es un protocolo de comunicación utilizado para transmitir datos entre dispositivos de telecomunicaciones y redes . Desarrollado por la Organización Internacional de Normalización (ISO), se define en la norma ISO/IEC 13239:2002.

HDLC garantiza una transferencia de datos confiable, lo que permite que un dispositivo comprenda los datos enviados por otro. Puede funcionar con o sin una conexión continua entre dispositivos, lo que lo hace versátil para diversas configuraciones de red.

Originalmente, HDLC se utilizaba en redes multidispositivo, donde un dispositivo actuaba como maestro y los demás como esclavos, a través de modos como el Modo de Respuesta Normal (NRM) y el Modo de Respuesta Asíncrona (ARM). Estos modos ahora se utilizan raramente. Actualmente, HDLC se emplea principalmente en conexiones punto a punto , como entre enrutadores o interfaces de red , utilizando un modo llamado Modo Asíncrono Balanceado (ABM).

Historia

HDLC se basa en el protocolo SDLC de IBM , que es el protocolo de capa 2 de la arquitectura de redes de sistemas (SNA) de IBM. La ITU lo amplió y estandarizó como LAP (Link Access Procedure), mientras que ANSI denominó su versión, que es esencialmente idéntica, ADCCP .

La especificación HDLC no especifica la semántica completa de los campos de trama. Esto permite que se deriven de ella otros estándares totalmente compatibles, y desde entonces han aparecido derivados en innumerables estándares. Se adoptó en la pila de protocolos X.25 como LAPB , en el protocolo V.42 como LAPM , en la pila de protocolos Frame Relay como LAPF y en la pila de protocolos ISDN como LAPD.

Los estándares ISO originales para HDLC son los siguientes:

La norma actual, ISO/IEC 13239:2002, reemplazó todas estas especificaciones.

HDLC fue la inspiración para el protocolo IEEE 802.2 LLC , y es la base para el mecanismo de trama utilizado con PPP en líneas sincrónicas, como el que utilizan muchos servidores para conectarse a una WAN , más comúnmente Internet .

Se utiliza una versión similar como canal de control para las líneas telefónicas multicanal SONET y de portadora E (E1) . Cisco HDLC utiliza técnicas de tramado HDLC de bajo nivel, pero agrega un campo de protocolo al encabezado HDLC estándar.

Enmarcado

Las tramas HDLC se pueden transmitir a través de enlaces de comunicación serial síncronos o asíncronos . Estos enlaces no tienen ningún mecanismo para marcar el comienzo o el final de una trama, por lo que se debe identificar el comienzo y el final de cada trama. Esto se hace utilizando una secuencia única de bits como delimitador de trama, o indicador , y codificando los datos para garantizar que la secuencia de indicadores nunca se vea dentro de una trama. Cada trama comienza y termina con un delimitador de trama. Un delimitador de trama al final de una trama también puede marcar el comienzo de la siguiente trama.

En los enlaces sincrónicos y asincrónicos, la secuencia de bandera es binaria "01111110" o hexadecimal 0x7E, pero los detalles son bastante diferentes.

Encuadre sincrónico

Debido a que una secuencia de indicadores consta de seis bits 1 consecutivos, los demás datos se codifican para garantizar que nunca contengan más de cinco bits 1 seguidos. Esto se hace mediante el relleno de bits : cada vez que aparecen cinco bits 1 consecutivos en los datos transmitidos, los datos se pausan y se transmite un bit 0.

El dispositivo receptor sabe que esto se está haciendo y, después de ver cinco bits 1 seguidos, se elimina el siguiente bit 0 de los datos recibidos. Si, en cambio, el sexto bit es 1, se trata de una bandera (si el séptimo bit es 0) o de un error (si el séptimo bit es 1). En este último caso, se cancela el procedimiento de recepción de trama y se reinicia cuando se ve una bandera nuevamente.

Este relleno de bits tiene un segundo propósito: asegurar un número suficiente de transiciones de señal. En enlaces síncronos, los datos se codifican en NRZI , de modo que se transmite un bit 0 como un cambio en la señal en la línea y se envía un bit 1 como ningún cambio. De este modo, cada bit 0 proporciona una oportunidad para que un módem receptor sincronice su reloj a través de un bucle de enganche de fase . Si hay demasiados bits 1 seguidos, el receptor puede perder la cuenta. El relleno de bits proporciona un mínimo de una transición cada seis tiempos de bit durante la transmisión de datos y una transición cada siete tiempos de bit durante la transmisión de un indicador.

Cuando no se transmiten tramas en un enlace síncrono simple o dúplex completo, se transmite continuamente un delimitador de trama en el enlace. Esto genera una de dos formas de onda continuas, según el estado inicial:

La especificación HDLC permite que el bit 0 al final de un delimitador de trama se comparta con el inicio del siguiente delimitador de trama, es decir, "011111101111110". Algunos dispositivos no admiten esta opción.

En el caso de comunicaciones half-duplex o multi-drop, donde varios transmisores comparten una línea, un receptor en la línea verá bits 1 inactivos continuos en el período entre tramas cuando ningún transmisor está activo.

HDLC transmite bytes de datos con el bit menos significativo primero (no debe confundirse con el orden little-endian , que se refiere al orden de bytes dentro de un campo de varios bytes).

Encuadre asincrónico

Al utilizar una comunicación serial asincrónica, como los puertos seriales RS-232 estándar , el relleno de bits de estilo sincrónico es inadecuado por varias razones:

En cambio, el enmarcado asincrónico utiliza "transparencia de octetos de control", también llamada " relleno de bytes " o "relleno de octetos". El octeto límite del marco es 01111110 (0x7E en notación hexadecimal ). Un " octeto de escape de control " tiene el valor 0x7D (secuencia de bits '10111110', ya que RS-232 transmite primero el bit menos significativo). Si aparece cualquiera de estos dos octetos en los datos transmitidos, se envía un octeto de escape, seguido del octeto de datos original con el bit 5 invertido. Por ejemplo, el byte 0x7E se transmitiría como 0x7D 0x5E ("10111110 01111010"). Otros valores de octetos reservados (como XON o XOFF ) se pueden escapar de la misma manera si es necesario.

La "secuencia de interrupción" 0x7D 0x7E finaliza un paquete con una secuencia de bytes incompleta, lo que obliga al receptor a detectar un error. Esto se puede utilizar para interrumpir la transmisión de paquetes sin posibilidad de que el receptor interprete el paquete parcial como válido.

Estructura

El contenido de una trama HDLC se muestra en la siguiente tabla:

Tenga en cuenta que la bandera final de un cuadro puede ser (pero no tiene que ser) la bandera de inicio del siguiente cuadro.

Los datos generalmente se envían en múltiplos de 8 bits, pero solo algunas variantes lo requieren; otras, teóricamente, permiten alineaciones de datos en límites distintos a los de 8 bits.

La secuencia de verificación de trama (FCS) es una CRC-CCITT de 16 bits o una CRC- 32 de 32 bits calculada sobre los campos Dirección, Control e Información. Proporciona un medio por el cual el receptor puede detectar errores que pueden haberse inducido durante la transmisión de la trama, como bits perdidos, bits invertidos y bits extraños. Sin embargo, dado que los algoritmos utilizados para calcular la FCS son tales que la probabilidad de que ciertos tipos de errores de transmisión pasen desapercibidos aumenta con la longitud de los datos que se verifican en busca de errores, la FCS puede limitar implícitamente el tamaño práctico de la trama.

Si el cálculo del FCS del receptor no coincide con el del remitente, lo que indica que la trama contiene errores, el receptor puede enviar un paquete de confirmación negativa al remitente o no enviar nada. Después de recibir un paquete de confirmación negativa o de esperar un paquete de confirmación positiva, el remitente puede retransmitir la trama fallida.

El FCS se implementó porque muchos de los primeros enlaces de comunicación tenían una tasa de error de bits relativamente alta y el FCS se podía calcular fácilmente mediante circuitos o software simples y rápidos. En la actualidad, otros protocolos utilizan ampliamente esquemas de corrección de errores de avance más efectivos .

Tipos de estaciones (computadoras) y modos de transferencia de datos

El control de enlace de datos sincrónico ( SDLC ) se diseñó originalmente para conectar una computadora con varios periféricos a través de un bus multipunto . El "modo de respuesta normal" original es un modo primario-secundario en el que la computadora (o terminal primaria ) le da permiso a cada periférico ( terminal secundaria ) para hablar por turno. Debido a que toda la comunicación es hacia o desde la terminal primaria, las tramas incluyen solo una dirección, la de la terminal secundaria; a la terminal primaria no se le asigna una dirección. Existe una distinción entre los comandos enviados por la terminal primaria a una secundaria y las respuestas enviadas por una secundaria a la primaria, pero esto no se refleja en la codificación; los comandos y las respuestas son indistinguibles excepto por la diferencia en la dirección en la que se transmiten.

El modo de respuesta normal permite compartir el enlace entre el secundario y el primario sin contención , ya que el primario debe dar permiso a los secundarios para transmitir uno a la vez. También permite el funcionamiento en enlaces de comunicación half-duplex , siempre que el primario sepa que no puede transmitir cuando ha permitido que un secundario lo haga.

El modo de respuesta asíncrono es una adición de HDLC [1] para su uso en enlaces full-duplex . Si bien conserva la distinción entre primario y secundario, permite que el secundario transmita en cualquier momento. Por lo tanto, debe haber algún otro mecanismo para garantizar que varios secundarios no intenten transmitir al mismo tiempo (o solo un secundario).

El modo balanceado asíncrono agrega el concepto de un terminal combinado que puede actuar como primario y secundario. Desafortunadamente, este modo de operación tiene algunas sutilezas de implementación. Si bien las tramas más comunes que se envían no tienen en cuenta si se encuentran en una trama de comando o de respuesta, algunas tramas esenciales sí lo tienen en cuenta (en particular, la mayoría de las tramas sin numerar y cualquier trama con el bit P/F activado), y el campo de dirección de una trama recibida debe examinarse para determinar si contiene un comando (la dirección recibida es la nuestra) o una respuesta (la dirección recibida es la de la otra terminal).

Esto significa que el campo de dirección no es opcional, incluso en enlaces punto a punto donde no es necesario para desambiguar el par con el que se está hablando. Algunas variantes de HDLC extienden el campo de dirección para incluir tanto las direcciones de origen como de destino, o un bit de comando/respuesta explícito.

Operaciones HDLC y tipos de tramas

Se pueden distinguir tres tipos fundamentales de tramas HDLC:

Campo de control

El formato general del campo de control es:

También existen formas extendidas (de dos bytes) de tramas I y S. Nuevamente, el bit menos significativo (más a la derecha en esta tabla) se envía primero.

Broca P/F

Poll/Final es un bit único con dos nombres. Se denomina Poll cuando forma parte de un comando (establecido por la estación principal para obtener una respuesta de una estación secundaria) y Final cuando forma parte de una respuesta (establecido por la estación secundaria para indicar una respuesta o el final de la transmisión). En todos los demás casos, el bit está en blanco.

El bit se utiliza como un token que se pasa de ida y vuelta entre las estaciones. Solo debe existir un token a la vez. El secundario solo envía un Final cuando ha recibido un sondeo del primario. El primario solo envía un sondeo cuando ha recibido un Final del secundario o después de un tiempo de espera que indica que se ha perdido el bit.

Al operar como una estación combinada, es importante mantener la distinción entre los bits P y F, ya que puede haber dos ciclos de punto de control operando simultáneamente. El bit AP que llega en un comando desde la estación remota no responde a nuestro bit P; solo lo hace un bit F que llega en respuesta.

N(R), el número de secuencia de recepción

Tanto las tramas I como las S contienen un número de secuencia de recepción N(R). N(R) proporciona un acuse de recibo positivo de la recepción de tramas I desde el otro lado del enlace. Su valor es siempre el de la primera trama que aún no se ha recibido; reconoce que se han recibido todas las tramas con valores N(S) hasta N(R)−1 (módulo 8 o módulo 128) e indica el N(S) de la siguiente trama que espera recibir.

N(R) funciona de la misma manera ya sea que forme parte de un comando o de una respuesta. Una estación combinada solo tiene un espacio de número de secuencia.

N(S), el número de secuencia del marco enviado

Esto se incrementa para los fotogramas I sucesivos, módulo 8 o módulo 128. Dependiendo de la cantidad de bits en el número de secuencia, hasta 7 o 127 fotogramas I pueden estar esperando reconocimiento en cualquier momento.

I-Frames (datos del usuario)

Los marcos de información, o I-frames , transportan datos de usuario desde la capa de red. Además, también incluyen información de control de flujo y errores incorporada a los datos. Los subcampos del campo de control definen estas funciones.

El bit menos significativo (el primero que se transmite) define el tipo de trama. 0 significa una trama I. A excepción de la interpretación del campo P/F, no hay diferencia entre una trama I de comando y una trama I de respuesta; cuando P/F es 0, las dos formas son exactamente equivalentes.

Marcos S (control)

Las tramas de supervisión, o "tramas S", se utilizan para el control de flujo y error cuando la transferencia de datos es imposible o inadecuada, como cuando una estación no tiene datos para enviar. Las tramas S en HDLC no tienen campos de información, aunque algunos protocolos derivados de HDLC utilizan campos de información para el "rechazo multiselectivo".

El campo de control de trama S incluye un "10" inicial que indica que se trata de una trama S. A continuación, se incluye un tipo de 2 bits, un bit de sondeo/final y un número de secuencia de 3 bits (o un campo de relleno de 4 bits seguido de un número de secuencia de 7 bits).

Los primeros 2 bits (menos significativos) significan que se trata de una trama S. Todas las tramas S incluyen un bit P/F y un número de secuencia de recepción, como se describió anteriormente. A excepción de la interpretación del campo P/F, no existe diferencia entre una trama S de comando y una trama S de respuesta; cuando P/F es 0, las dos formas son exactamente equivalentes.

Recibir listo (RR)

Recibir no está listo (RNR)

Rechazar (REJ)

Rechazo selectivo (SREJ)

Marcos en U

Los marcos no numerados, o U-frames , se utilizan principalmente para la gestión de enlaces, aunque algunos se utilizan para transferir datos de usuario. Intercambian información de control y gestión de sesiones entre dispositivos conectados, y algunos U-frames contienen un campo de información, utilizado para información de gestión del sistema o datos de usuario. Los primeros 2 bits (11) significan que es un U-frame. Los cinco bits de tipo (2 antes del bit P/F y 3 bits después del bit P/F) pueden crear 32 tipos diferentes de U-frame. En algunos casos, la misma codificación se utiliza para diferentes cosas como un comando y una respuesta.

Configuración de modo

Los distintos modos se describen en § Configuraciones de enlaces. Brevemente, hay dos modos no operativos (modo de inicialización y modo desconectado) y tres modos operativos (respuesta normal, respuesta asincrónica y modos asincrónicos equilibrados) con números de secuencia de 3 o 7 bits (extendido).

Respuesta en modo desconectado (DM)
Cuando el secundario está desconectado (el estado predeterminado al encenderse), envía esta respuesta genérica a cualquier sondeo (marco de comando con el indicador de sondeo activado) excepto un comando de configuración de modo aceptable. Alternativamente, puede dar una respuesta FRMR a un comando de configuración de modo inaceptable.
Respuesta de reconocimiento sin numeración (UA)
Esta es la respuesta del secundario a un comando de configuración de modo aceptable, lo que indica que ahora está en el modo solicitado.
Comando Establecer modo... (SNRM, SARM, SABM)
Coloca el secundario en el modo especificado, con números de secuencia de 3 bits (campo de control de 1 byte). El secundario confirma con UA. Si el secundario no implementa el modo, responde con DM o FRMR.
Comando Establecer modo extendido (SNRME, SARME, SABME)
Coloque el secundario en el modo especificado, con números de secuencia de 7 bits (campo de control de 2 bytes).
Comando de modo de configuración (SM)
Conjunto de modos genéricos, nuevo en la norma ISO/IEC 13239, que utiliza un campo de información para seleccionar parámetros. La norma ISO/IEC 13239 agregó muchas opciones adicionales a HDLC, incluidos números de secuencia de 15 y 31 bits, que solo se pueden seleccionar con este comando.
Comando de desconexión (DISC)
Este comando hace que el secundario confirme con UA ​​y se desconecte (ingrese al modo desconectado). Se pierden todos los marcos no confirmados.
Respuesta de solicitud de desconexión (RD)
Esta respuesta solicita al servidor principal que envíe un comando DISC. El servidor principal debe hacerlo de inmediato, pero puede demorarse lo suficiente para garantizar que se reconozcan todos los marcos pendientes.
Comando para establecer el modo de inicialización (SIM)
Este comando, que rara vez se implementa, se utiliza para realizar alguna inicialización secundaria específica, como la descarga de firmware . Lo que sucede en el modo de inicialización no se especifica de otra manera en el estándar HDLC.
Respuesta del modo de inicialización de solicitud (RIM)
Esto solicita al primario que envíe la tarjeta SIM e inicialice el secundario. Se envía en lugar del DM si el secundario requiere inicialización.

Transferencia de información

Estos marcos pueden utilizarse como parte de la transferencia normal de información.

Información no numerada (UI)
Este marco (comando o respuesta) comunica datos del usuario, pero sin acuse de recibo ni retransmisión en caso de error.
Interfaz de usuario con comprobación de encabezado (UIH)
Este marco (comando o respuesta), una adición a la norma ISO/IEC 13239 y poco utilizado, es como la interfaz de usuario pero también excluye la protección CRC. El polinomio CRC solo cubre un prefijo de longitud configurable ("encabezado") del marco; no se detectan errores en el resto del marco.
Comando de sondeo no numerado (UP)
Este comando solicita una respuesta del secundario. Con el bit de sondeo establecido, actúa como cualquier otro marco de sondeo, sin el acuse de recibo que debe incluirse en el marco I o S. Con el bit de sondeo libre, tiene un significado especial en el modo de respuesta normal: el secundario puede responder, aunque no haya recibido el bit de sondeo. Esto rara vez se utiliza en HDLC, pero se utilizó en el SDLC original de IBM como sustituto de la falta de modo de respuesta asíncrono; donde el canal de comunicación podía manejar respuestas simultáneas, el primario enviaba periódicamente UP a la dirección de difusión para recopilar cualquier respuesta pendiente.

Recuperación de errores

Respuesta de rechazo de trama (FRMR)
La respuesta FRMR contiene una descripción de la trama inaceptable, en un formato estandarizado. Los primeros 1 o 2 bytes son una copia del campo de control rechazado, los siguientes 1 o 2 bits contienen los números de secuencia de envío y recepción actuales del secundario (y un indicador que indica que la trama era una respuesta, aplicable solo en modo balanceado), y los siguientes 4 o 5 bits son indicadores de error que indican el motivo del rechazo. El secundario repite la misma respuesta FRMR en cada sondeo hasta que se elimina el error mediante un comando de configuración de modo o RSET. Los indicadores de error son:
  • W: el tipo de marco (campo de control) no se entiende o no está implementado.
  • X: el tipo de marco no se entiende con un campo de información no vacío, pero había uno presente.
  • Y: el marco incluye un campo de información más grande que el que el secundario puede aceptar.
  • Z: la trama incluía un número de secuencia de recepción no válido N(R), que no se encuentra entre el valor recibido anteriormente y el número de secuencia más alto transmitido. (Este error no se puede solucionar recibiendo RSET, pero sí enviándolo ) .
  • V: la trama incluía un número de secuencia de envío no válido N(S), mayor que el último número reconocido más el tamaño de la ventana de transmisión. Este error solo es posible si se ha negociado un tamaño de ventana de transmisión menor que el máximo.
  • Los indicadores de error normalmente se rellenan con 0 bits hasta un límite de 8 bits, pero HDLC permite tramas que no son múltiplos de un byte de longitud.
Comando de reinicio (RSET)
El comando RSET hace que un secundario restablezca su número de secuencia de recepción, de modo que el siguiente cuadro esperado sea el número de secuencia 0. Esta es una posible alternativa al envío de un nuevo comando de configuración de modo, que restablece ambos números de secuencia. Se confirma con UA, como un comando de configuración de modo.

Descubrimiento entre pares

Identificación de intercambio (XID)
Un comando XID incluye un campo de información que especifica las capacidades del primario; el secundario responde con una respuesta XID que especifica sus capacidades. Esto normalmente se hace antes de enviar un comando de configuración de modo. Systems Network Architecture definió un formato para el campo de información, en el que el bit más significativo del primer byte está en blanco (0), pero las implementaciones de HDLC normalmente implementan la variante definida en ISO 8885, que tiene el bit más significativo del primer byte configurado (1).
PRUEBA
Un comando TEST es simplemente un comando ping con fines de depuración. La carga útil del comando TEST se devuelve en la respuesta TEST.

Definido en otras normas

Hay varios marcos U que no son parte de HDLC, pero están definidos en otros estándares relacionados.

No reservado (NR0, NR1, NR2, NR3)
El estándar HDLC garantiza que los comandos y respuestas "no reservados" estarán disponibles para otros usos.
Confirmación sin conexión (AC0, AC1)
Estos se definen en el estándar de control de enlace lógico IEEE 802.2 .
Configurar (CFGR)
Este comando se definió en SDLC para la depuración. Tenía una carga útil de 1 byte que especificaba un modo de prueba no estándar para el secundario. Los números pares deshabilitaban el modo, mientras que los números impares lo habilitaban. Una carga útil de 0 deshabilitaba todos los modos de prueba. El secundario normalmente reconocía un comando de configuración al repetirlo en respuesta.
Respuesta de Beacon (BCN)
Esta respuesta se definió en SDLC para indicar una falla de comunicaciones. Un secundario que no recibió tramas durante un largo tiempo comenzaría a enviar un flujo de respuestas de baliza, lo que permitiría localizar una falla unidireccional. Tenga en cuenta que la norma ISO/IEC 13239 asigna a UIH la misma codificación que a BCN.

Configuraciones de enlaces

Las configuraciones de enlace se pueden clasificar como:

Las tres configuraciones de enlace son:

Una configuración de enlace adicional es el modo Desconectado . Este es el modo en el que se encuentra una estación secundaria antes de que la estación primaria la inicialice o cuando se la desconecta explícitamente. En este modo, la estación secundaria responde a casi todos los cuadros, excepto a un comando de configuración de modo, con una respuesta de "Modo Desconectado". El propósito de este modo es permitir que la estación primaria detecte de manera confiable que una estación secundaria se apaga o se reinicia de otra manera.

Repertorio de comandos y respuestas HDLC

El conjunto mínimo necesario para su funcionamiento es:

Operaciones básicas

El módulo HDLC del otro extremo transmite una trama (UA) cuando se acepta la solicitud. Si se rechaza la solicitud, envía una trama en modo de desconexión (DM).

Extensiones funcionales (opciones)

Repertorio de comandos y respuestas HDLC

Marcos sin numerar

Los marcos no numerados se identifican porque los dos bits inferiores son 1. Con el indicador P/F, quedan 5 bits como tipo de marco. Aunque se utilizan menos de 32 valores, algunos tipos tienen significados diferentes según la dirección en la que se envían: como comando o como respuesta. La relación entre el comando DISC (desconectar) y la respuesta RD (solicitud de desconexión) parece bastante clara, pero la razón para hacer que el comando SARM sea numéricamente igual a la respuesta DM es oscura.

* ^ ^ Adición a la norma ISO/IEC 13239
^ ^ ^ No es parte de HDLC

Los marcos UI, UIH, XID y TEST contienen una carga útil y se pueden utilizar como comandos y respuestas. El comando SM y la respuesta FRMR también contienen una carga útil.

Véase también

Notas

  1. ^ (Friend y otros, 1988, pág. 191)
  2. ^ "Tipos de tramas X.25 - Martin Baker".
  3. ^ "Tipos de tramas X.25 - Martin Baker".
  4. ^ "Tipos de tramas X.25 - Martin Baker".

Referencias

Enlaces externos