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 en telecomunicaciones y redes . Desarrollado por la Organización Internacional de Normalización (ISO), está definido en la norma ISO/IEC 13239:2002.

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

Originalmente, HDLC se usaba en redes multidispositivo, donde un dispositivo actuaba como maestro y otros como esclavos, a través de modos como el Modo de respuesta normal (NRM) y el Modo de respuesta asincrónica (ARM). Estos modos ahora rara vez se utilizan. Actualmente, HDLC se emplea principalmente en conexiones punto a punto , como entre enrutadores o interfaces de red , utilizando un modo llamado Modo Equilibrado Asíncrono (ABM).

Historia

HDLC se basa en el protocolo SDLC de IBM , que es el protocolo de capa 2 para la arquitectura de red de sistemas (SNA) de IBM . La UIT lo amplió y estandarizó como LAP (Procedimiento de acceso a enlace), mientras que ANSI nombró a su versión esencialmente idéntica ADCCP .

La especificación HDLC no especifica la semántica completa de los campos del marco. Esto permite derivar de él otras normas totalmente compatibles y, desde entonces, han aparecido derivados en innumerables normas. Fue adoptado 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:

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

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

Una versión similar se utiliza como canal de control para líneas telefónicas multicanal E-carrier (E1) y SONET . Cisco HDLC utiliza técnicas de entramado 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 en serie síncronos o asíncronos . Esos enlaces no tienen ningún mecanismo para marcar el principio o el final de un cuadro, por lo que es necesario identificar el principio y el final de cada cuadro. Esto se hace utilizando una secuencia única de bits como delimitador de trama, o bandera , y codificando los datos para garantizar que la secuencia de banderas nunca se vea dentro de una trama. Cada cuadro comienza y termina con un delimitador de cuadro. Un delimitador de fotograma al final de un fotograma también puede marcar el inicio del siguiente fotograma.

Tanto en enlaces síncronos como asíncronos, la secuencia de indicadores es binaria "01111110" o hexadecimal 0x7E, pero los detalles son bastante diferentes.

Encuadre sincrónico

Debido a que una secuencia de banderas consta de seis bits 1 consecutivos, otros datos se codifican para garantizar que nunca contengan más de cinco bits 1 seguidos. Esto se hace mediante 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, esto es una bandera (si el séptimo bit es 0) o un error (si el séptimo bit es 1). En el último caso, el procedimiento de recepción de tramas se cancela y se reinicia la próxima vez que se vea una bandera.

Este relleno de bits tiene un segundo objetivo: garantizar un número suficiente de transiciones de señal. En enlaces síncronos, los datos están codificados NRZI , de modo que se transmite un bit 0 como un cambio en la señal en la línea y un bit 1 como ningún cambio. Por lo tanto, cada bit 0 brinda una oportunidad para que un módem receptor sincronice su reloj a través de un bucle de bloqueo 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 bits durante la transmisión de datos y una transición cada siete bits durante la transmisión de una bandera.

Cuando no se transmiten tramas en un enlace síncrono simplex o full-duplex, 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 compartir el bit 0 al final de un delimitador de trama con el inicio del siguiente delimitador de trama, es decir, "011111101111110". Algunos hardware no admiten esto.

Para comunicación semidúplex o multipunto, donde varios transmisores comparten una línea, un receptor en la línea verá 1 bit inactivo continuo en el período entre cuadros 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 los bytes dentro de un campo de varios bytes).

encuadre asincrónico

Cuando se utiliza comunicación serie asíncrona, como puertos serie RS-232 estándar , el relleno de bits de estilo síncrono no es apropiado por varios motivos:

En cambio, el encuadre asincrónico utiliza "transparencia de octeto de control", también llamada " relleno de bytes " o "relleno de octetos". El octeto de límite de trama 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 cualquiera de estos dos octetos aparece 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 octeto reservados (como XON o XOFF ) se pueden escapar de la misma manera si es necesario.

La "secuencia de aborto" 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 abortar la transmisión de paquetes sin posibilidad de que el receptor interprete el paquete parcial como válido.

Estructura

El contenido de un marco HDLC se muestra en la siguiente tabla:

Tenga en cuenta que el indicador de fin de un fotograma puede ser (pero no tiene por qué serlo) el indicador de inicio del siguiente fotograma.

Los datos normalmente se envían en múltiplos de 8 bits, pero sólo algunas variantes lo requieren; otros, en teoría, permiten alineaciones de datos en límites distintos de los de 8 bits.

La secuencia de verificación de trama (FCS) es un CRC-CCITT de 16 bits o un CRC- 32 de 32 bits calculado sobre los campos Dirección, Control e Información. Proporciona un medio por el cual el receptor puede detectar errores que pueden haber sido inducidos 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 el 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, el 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 reconocimiento negativo al remitente o no enviar nada. Después de recibir un paquete de reconocimiento negativo o de esperar un paquete de reconocimiento positivo, 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 podía calcularse fácilmente mediante un circuito o software simple y rápido. Otros protocolos ahora utilizan ampliamente esquemas de corrección de errores directos más eficaces .

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

El control de enlace de datos síncrono ( SDLC ) se diseñó originalmente para conectar una computadora con múltiples periféricos a través de un bus multipunto . El "modo de respuesta normal" original es un modo maestro-esclavo en el que la computadora (o terminal principal ) da permiso a cada periférico ( terminal secundario ) para hablar por turno. Como toda comunicación se realiza hacia o desde el terminal primario, las tramas incluyen sólo una dirección, la del terminal secundario; al terminal principal no se le asigna una dirección. Existe una distinción entre los comandos enviados por el primario a un secundario y las respuestas enviadas por un secundario al primario, pero esto no se refleja en la codificación; Las órdenes y las respuestas son indistinguibles excepto por la diferencia en la dirección en la que se transmiten.

El modo de respuesta normal permite que el enlace secundario a primario se comparta sin contención , porque el primario otorga permiso a los secundarios para transmitir uno a la vez. También permite la operación a través de enlaces de comunicación semidúplex , siempre que el primario sea consciente de que no puede transmitir cuando ha dado permiso a un secundario.

El modo de respuesta asincrónica es una adición HDLC [1] para uso en enlaces full-duplex . Si bien conserva la distinción primario/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 equilibrado asíncrono añade el concepto de un terminal combinado que puede actuar como primario y secundario. Desafortunadamente, este modo de funcionamiento tiene algunas sutilezas de implementación. Si bien a las tramas más comunes enviadas no les importa si están en una trama de comando o de respuesta, a algunas esenciales sí les importa (en particular, la mayoría de las tramas sin numerar y cualquier trama con el bit P/F establecido), y el campo de dirección de una trama recibida debe ser examinado para determinar si contiene un comando (la dirección recibida es la nuestra) o una respuesta (la dirección recibida es la del otro terminal).

Esto significa que el campo de dirección no es opcional, incluso en enlaces punto a punto donde no es necesario eliminar la ambigüedad del interlocutor con el que se habla. Algunas variantes de HDLC amplían el campo de dirección para incluir direcciones de origen y de destino, o un bit de comando/respuesta explícito.

Operaciones HDLC y tipos de fotogramas

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 (el que se encuentra más a la derecha en esta tabla) se envía primero.

bit P/F

Encuesta/Final es un bit único con dos nombres. Se denomina Encuesta cuando forma parte de un comando (establecido por la estación primaria 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, la cuestión está clara.

El bit se utiliza como token que se pasa de un lado a otro entre las estaciones. Sólo debe existir un token a la vez. La secundaria sólo envía una Final cuando ha recibido una Encuesta de la primaria. El principal solo envía una encuesta cuando ha recibido un mensaje final del secundario o después de un tiempo de espera que indica que el bit se ha perdido.

Cuando se opera como una estación combinada, es importante mantener la distinción entre los bits P y F, porque puede haber dos ciclos de punto de control funcionando simultáneamente. El bit AP que llega en un comando desde la estación remota no responde a nuestro bit P; sólo lo es un bit F que llega a una respuesta.

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

Tanto la trama I como la 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 primer fotograma aún no 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) opera de la misma manera ya sea que sea parte de una orden o de una respuesta. Una estación combinada sólo tiene un espacio de número de secuencia.

N(S), el número de secuencia de la trama enviada

Esto se incrementa para fotogramas I sucesivos, módulo 8 o módulo 128. Dependiendo del número de bits en el número de secuencia, pueden haber hasta 7 o 127 fotogramas I esperando acuse de recibo en cualquier momento.

I-Frames (datos de usuario)

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

El bit menos significativo (primero transmitido) define el tipo de trama. 0 significa un cuadro I. Excepto por la interpretación del campo P/F, no hay diferencia entre un cuadro I de comando y un cuadro I de respuesta; cuando P/F es 0, las dos formas son exactamente equivalentes.

Marcos en S (control)

Los marcos de supervisión, o 'marcos S', se utilizan para el control de flujo y errores cuando el transporte es imposible o inapropiado, como cuando una estación no tiene datos para enviar. Los marcos 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 del marco S incluye un "10" inicial que indica que es un marco S. A esto le sigue 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 es un marco S. Todas las tramas S incluyen un bit P/F y un número de secuencia de recepción como se describió anteriormente. Excepto por la interpretación del campo P/F, no hay 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 listo (RNR)

Rechazar (REJ)

Rechazo selectivo (SREJ)

Marcos en U

Los fotogramas no numerados, o fotogramas en U , se utilizan principalmente para la gestión de enlaces, aunque algunos se utilizan para transferir datos del usuario. Intercambian información de control y gestión de sesiones entre dispositivos conectados, y algunos marcos en U contienen un campo de información, que se utiliza para información de gestión del sistema o datos del usuario. Los primeros 2 bits (11) significan que es un marco en U. 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 marco en U. En algunos casos, se utiliza la misma codificación para cosas diferentes como un comando y una respuesta.

Configuración de modo

Los distintos modos se describen en § Configuraciones de enlace. Brevemente, hay dos modos no operativos (modo de inicialización y modo desconectado) y tres modos operativos (respuesta normal, respuesta asíncrona y modos equilibrados asíncronos) 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 encender), envía esta respuesta genérica a cualquier sondeo (marco de comando con el indicador de sondeo establecido), excepto un comando de configuración de modo aceptable. Alternativamente, puede dar una respuesta FRMR a una orden de establecimiento de modo inaceptable.
Respuesta de reconocimiento no numerado (UA)
Esta es la respuesta del secundario a un comando de establecimiento de modo aceptable, lo que indica que ahora está en el modo solicitado.
Establecer el comando modo (SNRM, SARM, SABM)
Coloque el secundario en el modo especificado, con números de secuencia de 3 bits (campo de control de 1 byte). La secundaria reconoce con UA. Si el secundario no implementa el modo, responde con DM o FRMR.
Establecer... comando 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 Establecer modo (SM)
Conjunto de modo genérico, nuevo en ISO/IEC 13239, que utiliza un campo de información para seleccionar parámetros. 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 reconozca con UA ​​y se desconecte (ingrese al modo desconectado). Todos los fotogramas no reconocidos se pierden.
Solicitar respuesta de desconexión (RD)
Esta respuesta solicita al primario que envíe un comando DISC. El principal debe hacerlo con prontitud, pero puede demorarse lo suficiente para garantizar que se reconozcan todas las tramas pendientes.
Establecer el comando del 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.
Solicitar respuesta del modo de inicialización (RIM)
Esto solicita al primario que envíe SIM e inicialice el secundario. Se envía en lugar de DM si el secundario requiere inicialización.

Transferencia de información

Estas tramas pueden usarse como parte de la transferencia de información normal.

Información no numerada (UI)
Esta trama (comando o respuesta) comunica datos del usuario, pero sin reconocimiento ni retransmisión en caso de error.
UI con verificación de encabezado (UIH)
Este marco (comando o respuesta), una adición a ISO/IEC 13239 y rara vez utilizado, es como la interfaz de usuario pero también excluye la protección CRC. El polinomio CRC sólo cubre un prefijo de longitud configurable ("encabezado") del marco; No se detectan errores en el resto del fotograma.
Comando de encuesta no numerada (ARRIBA)
Este comando solicita una respuesta del secundario. Con el bit de sondeo activado, actúa como cualquier otro marco de sondeo, sin el reconocimiento que debe incluirse en el marco I o S. Con el bit de sondeo limpio, 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 usa en HDLC, pero se usó en el SDLC de IBM original como sustituto de la falta de modo de respuesta asincrónica; donde el canal de comunicación pudiera manejar respuestas simultáneas, el primario enviaría periódicamente UP a la dirección de transmisión para recopilar las respuestas pendientes.

Error de recuperación

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 contienen los números de secuencia de envío y recepción actuales del secundario (y una bandera que indica que la trama fue una respuesta, aplicable solo en modo balanceado) y el Los siguientes 4 o 5 bits son indicadores de error que indican el motivo del rechazo. El secundario repite la misma respuesta FRMR a cada sondeo hasta que el error se soluciona mediante un comando de configuración de modo o RSET. Las banderas de error son:
  • W: el tipo de trama (campo de control) no se comprende o no se implementa.
  • X: no se entiende el tipo de trama con un campo de información no vacío, pero había uno presente.
  • Y: el marco incluía un campo de información que es más grande de lo que el secundario puede aceptar.
  • Z: la trama incluía un número de secuencia de recepción N(R) no válido, uno que no se encuentra entre el valor recibido previamente y el número de secuencia más alto transmitido. (Este error no se puede eliminar recibiendo RSET, pero se puede eliminar enviando RSET).
  • V: la trama incluía un número de secuencia de envío N(S) no válido, mayor que el último número reconocido más el tamaño de la ventana de transmisión. Este error sólo 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 tienen una longitud múltiplo de un byte.
Comando de reinicio (RSET)
El comando RSET hace que un secundario restablezca su número de secuencia de recepción, de modo que la siguiente trama esperada 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 reconoce 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. La arquitectura de red de sistemas definió un formato para el campo de información, en el que el bit más significativo del primer byte está limpio (0), pero las implementaciones HDLC normalmente implementan la variante definida en ISO 8885, que tiene el bit más significativo del primer byte establecido. (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 otros estándares

Hay varios marcos en U que no forman parte de HDLC, pero se definen 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 su 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 deshabilitaron el modo, mientras que los números impares lo habilitaron. Una carga útil de 0 deshabilitó todos los modos de prueba. El secundario normalmente reconocía un comando de configuración repitiéndolo en respuesta.
Respuesta de baliza (BCN)
Esta respuesta se definió en SDLC para indicar una falla de comunicaciones. Un secundario que no recibió ninguna trama durante mucho tiempo comenzaría a enviar un flujo de respuestas de baliza, lo que permitiría localizar una falla unidireccional. Tenga en cuenta que ISO/IEC 13239 asigna a UIH la misma codificación que BCN.

Configuraciones de enlace

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 primaria la inicialice o cuando se desconecta explícitamente. En este modo, el secundario responde a casi todos los fotogramas que no sean un comando de configuración de modo con una respuesta de "modo desconectado". El propósito de este modo es permitir que el primario detecte de manera confiable que un secundario se apaga o se reinicia de otra manera.

Repertorio de comando y respuesta HDLC

El conjunto mínimo necesario para su funcionamiento es:

Operaciones básicas

El módulo HDLC en el 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

Cuadros sin numerar

Las tramas no numeradas se identifican porque los dos bits inferiores son 1. Con el indicador P/F, eso deja 5 bits como tipo de trama. Aunque se utilizan menos de 32 valores, algunos tipos tienen diferentes significados según la dirección en la que se envían: como comando o como respuesta. La relación entre el comando DISC (desconexión) 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 ISO/IEC 13239
^ ^ ^ No forma parte de HDLC

Las tramas 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.

Ver también

Notas

  1. ^ (Friend et al. 1988, p. 191)
  2. ^ "Tipos de cuadros X.25: Martin Baker".
  3. ^ "Tipos de cuadros X.25: Martin Baker".
  4. ^ "Tipos de cuadros X.25: Martin Baker".

Referencias

enlaces externos