El control de enlace de datos síncrono ( SDLC ) es un protocolo de comunicaciones seriales de computadora introducido por primera vez por IBM como parte de su arquitectura de red de sistemas (SNA). SDLC se utiliza como capa 2, la capa de enlace de datos , en la pila de protocolos SNA . Admite enlaces multipunto, así como corrección de errores. También se ejecuta bajo el supuesto de que hay un encabezado SNA después del encabezado SDLC. [1] SDLC fue utilizado principalmente por mainframes y sistemas de rango medio de IBM; sin embargo, existen implementaciones en muchas plataformas de muchos proveedores. En los Estados Unidos y Canadá, SDLC se puede encontrar en gabinetes de control de tráfico. [2] SDLC se lanzó en 1975, [3] basado en el trabajo realizado para IBM a principios de la década de 1970. [4]
El SDLC funciona de forma independiente en cada enlace de comunicaciones de la red y puede funcionar en instalaciones de punto a punto , multipunto o de bucle , en circuitos conmutados o dedicados, de dos o cuatro cables , y con funcionamiento full-duplex y half-duplex . [5] Una característica única del SDLC es su capacidad de mezclar estaciones secundarias half-duplex con estaciones primarias full-duplex en circuitos de cuatro cables, reduciendo así el coste de las instalaciones dedicadas. [6]
Este estándar de facto fue adoptado por la ISO como High-Level Data Link Control (HDLC) en 1979 [4] y por la ANSI como Advanced Data Communication Control Procedures (ADCCP). Estos últimos estándares añadieron características como el modo equilibrado asíncrono , tamaños de trama que no necesitaban ser múltiplos de octetos de bit, pero también eliminaron algunos de los procedimientos y mensajes (como el mensaje TEST). [7]
Intel utilizó SDLC como protocolo base para BITBUS , todavía popular en Europa como bus de campo e incluyó soporte en varios controladores (i8044/i8344, i80152). El controlador 8044 todavía está en producción por parte de proveedores externos. Otros proveedores que pusieron soporte de hardware para SDLC (y el ligeramente diferente HDLC) en chips controladores de comunicación de la década de 1980 incluyeron Zilog , Motorola y National Semiconductor . Como resultado, una amplia variedad de equipos en la década de 1980 lo usaban y era muy común en las redes corporativas centradas en mainframe que eran la norma en la década de 1980. Las alternativas más comunes para SNA con SDLC fueron probablemente DECnet con Protocolo de mensajes de comunicaciones de datos digitales (DDCMP), Arquitectura de red Burroughs (BNA) con Control de enlace de datos Burroughs (BDLC) y ARPANET con IMPs . [8]
HDLC es en su mayor parte una extensión de SDLC, [9] : 69–72 pero se eliminaron o cambiaron de nombre algunas características.
Las características presentes en HDLC, pero no en SDLC, son:
Tampoco están incluidas en SDLC las extensiones HDLC posteriores en ISO/IEC 13239, como:
HDLC cambió el nombre de algunos marcos SDLC. Los nombres HDLC se incorporaron en versiones posteriores de SDLC: [9] : 73
Se agregaron algunas características en HDLC y luego se volvieron a agregar a versiones posteriores de SDLC.
Dos marcos U en SDLC que no existen en HDLC son:
Varios marcos U casi no se utilizan en HDLC y existen principalmente para compatibilidad con SDLC:
El marco TEST U no se incluyó en los primeros estándares HDLC, pero se agregó más tarde.
Un modo especial de funcionamiento SDLC que es compatible, por ejemplo, con el Zilog SCC pero que no se incorporó en HDLC es el modo de bucle SDLC. [9] : 42–49,58–59 En este modo, un primario y varios secundarios están conectados en una red de anillo unidireccional , con la salida de cada uno conectada a la entrada del siguiente. Cada secundario es responsable de copiar todos los marcos que llegan a su entrada para que alcancen el resto del anillo y finalmente regresen al primario. Excepto por esta copia, un secundario opera en modo semidúplex; solo transmite cuando el protocolo garantiza que no recibirá ninguna entrada.
Cuando se apaga un secundario, un relé conecta su entrada directamente a su salida. Cuando se enciende, un secundario espera el momento oportuno y luego entra en "bucle" insertándose en el flujo de datos con un retraso de un bit. Se aprovecha una oportunidad similar para salir del "bucle" como parte de un apagado limpio.
En el modo de bucle SDLC, las tramas llegan en un grupo, que termina (después del indicador final) con una señal de inactividad de todos unos. Los primeros siete bits 1 de esto (el patrón 01111111) constituyen una secuencia de "adelanto" (también llamada EOP, fin de sondeo) que otorga a un secundario permiso para transmitir. Un secundario que desea transmitir utiliza su retardo de 1 bit para convertir el último bit 1 de esta secuencia en un bit 0, lo que lo convierte en un carácter de indicador, y luego transmite sus propias tramas. Después de su propio indicador final, transmite una señal de inactividad de todos unos, que servirá como visto bueno para la siguiente estación en el bucle.
El grupo comienza con los comandos del primario y cada secundario agrega sus respuestas. Cuando el primario recibe la secuencia de inactividad de aprobación, sabe que los secundarios han terminado y puede transmitir más comandos.
La respuesta de baliza (BCN) está diseñada para ayudar a localizar interrupciones en el bucle. Un secundario que no ve tráfico entrante durante mucho tiempo comienza a enviar tramas de respuesta de "baliza" para informar al principal que el vínculo entre ese secundario y su predecesor está roto.
Como el primario también recibe una copia de los comandos que envió, que son indistinguibles de las respuestas, agrega un marco especial de "cambio de dirección" al final de sus comandos para separarlos de las respuestas. Cualquier secuencia única que no sea interpretada por los secundarios servirá, pero la convencional es un único byte de ceros. [9] : 44 Este es un "marco pequeño" con una dirección de 0 (reservado, sin usar) y sin campo de control ni secuencia de verificación de marco. (Los secundarios capaces de operar en dúplex completo también interpretan esto como una "secuencia de apagado", lo que los obliga a abortar la transmisión. [9] : 45 )
Toda comunicación dentro de la unidad de control del ATC deberá ser un protocolo de respuesta a comandos compatible con SDLC, admitir relleno de 0 bits y operar a una velocidad de datos de 614,4 kilobits por segundo.