Glosario de Automatización • Capa de enlace DNP3

¿Qué es la capa de enlace de datos de DNP3?

Ingeniería Merobix • • 5 min de lectura

DNP3 se suele dibujar como tres capas apiladas, y la de abajo - la capa de enlace de datos - es donde un flujo crudo de bytes se convierte en un mensaje entramado, direccionado y verificado contra errores. Si usted está decodificando una captura o explicando por qué un mensaje con carga útil correcta aun así se rechaza, necesita entender qué hace la capa de enlace con cada trama antes de que la capa de aplicación llegue a verla. Esta página describe la trama de enlace de DNP3, los campos de su encabezado y el CRC por bloque que permite al receptor confiar en lo que recibió.

Volver al glosario

Capa de enlace DNP3 en una línea: La capa de enlace de datos de DNP3 es la más baja de las tres capas de DNP3. Envuelve los datos salientes en una trama que comienza con los bytes de sincronía 0x0564, un byte de longitud, un byte de control y direcciones de enlace de origen y destino de 16 bits, y luego añade un CRC de dos bytes después del encabezado y después de cada bloque de datos de 16 bytes. El receptor verifica cada CRC, confirma que la trama va dirigida a él y solo entonces entrega la carga a la función de transporte.

El encabezado de la trama y sus campos

Toda trama de enlace DNP3 abre con el mismo patrón fijo, para que un receptor pueda encontrar el inicio de un mensaje dentro de un flujo de bytes. Los dos primeros bytes son el patrón de arranque 0x05 0x64, una firma que anuncia que sigue una trama DNP3. Después viene un byte de longitud que cuenta los bytes del resto del encabezado y de los datos de usuario, y luego un byte de control que lleva los bits de dirección, primario/secundario y código de función que usa la máquina de estados de la capa de enlace.

Tras el byte de control vienen los dos campos de 16 bits que más le importan a un integrador: la dirección de destino y la dirección de origen. El destino dice a qué estación remota (outstation) o maestro va dirigida la trama, y el origen dice quién la envió. Son direcciones de enlace DNP3, no direcciones IP; en un enlace TCP ambas siguen viajando dentro de la trama, y por eso un mismo extremo IP puede alojar varios dispositivos DNP3 lógicos. Acertar con estos campos es el tema completo del concepto de la dirección de maestro y outstation DNP3.

El CRC en cada bloque

DNP3 no pone un solo checksum al final del mensaje y cruza los dedos. Añade un CRC de 16 bits inmediatamente después del bloque de encabezado de 8 bytes, y luego después de cada bloque de 16 bytes de datos de usuario que sigue. Una trama larga lleva por tanto muchos CRC, cada uno protegiendo un pedazo pequeño. Este diseño viene del origen de DNP3 en enlaces seriales y de radio con ruido, donde un solo checksum al final del mensaje podría dejar pasar un error en ráfaga enterrado en una trama larga.

Para el receptor la regla es simple: si falla el CRC de cualquier bloque, la trama se descarta y nunca llega a la capa de aplicación. Por eso una carga útil que se ve correcta en aislamiento puede aun así descartarse: la falla vive en el entramado, no en los datos. Cuando diagnostique enlaces DNP3 silenciosos, la capa de enlace es lo primero que hay que descartar, igual que un error de CRC serial apunta al cableado y al ruido y no a la lógica de protocolo de más arriba.

Dónde queda la capa de enlace en la pila

DNP3 usa un modelo simplificado de tres capas - enlace, transporte (técnicamente una función de pseudotransporte) y aplicación - en lugar de la pila OSI completa de siete capas. El trabajo de la capa de enlace termina una vez que validó una trama y confirmó el direccionamiento. No sabe qué significan los datos; solo garantiza que una trama íntegra y correctamente direccionada se entregue hacia arriba, o que una trama mala se descarte.

En un bus serial multipunto la capa de enlace también carga el direccionamiento que permite a muchas outstations compartir un mismo par de cables, ya que cada trama nombra a su destino. En TCP la entrega física corre a cargo de la red, pero la trama de enlace se transmite intacta, de modo que el direccionamiento, el entramado y el CRC por bloque de DNP3 siguen aplicando. Entender esa separación es la clave para leer una captura: los campos de enlace le dicen quién y si la trama está íntegra, y las capas de arriba le dicen qué dice.

Preguntas frecuentes

¿Cuántos CRC hay en una trama DNP3?

Un CRC sigue al encabezado de 8 bytes, y uno más sigue a cada bloque de 16 bytes de datos de usuario. Una trama corta tiene dos CRC; una larga tiene muchos. Todos deben pasar para que la trama se acepte, y eso es lo que hace robusto el entramado de DNP3 en enlaces ruidosos.

¿Cuáles son los bytes de sincronía de DNP3?

Toda trama de enlace DNP3 comienza con 0x05 0x64. Un decodificador busca ese patrón en el flujo de bytes para engancharse al inicio de una trama, y luego lee los bytes de longitud y de control que le siguen.

¿La dirección de enlace DNP3 es lo mismo que la dirección IP?

No. En DNP3 sobre TCP la trama de enlace sigue llevando dentro de la carga las direcciones de enlace de origen y destino de 16 bits, independientes de la dirección IP del extremo. Así es como un mismo host IP puede presentar varias outstations DNP3 lógicas.

Fuentes y lecturas

Referencias primarias de los organismos de normas y reguladores que definen este tema:

Más en Protocolos industriales
Datos de Clase 0/1/2/3 en DNP3  •  Capa de aplicación DNP3  •  Puerta de enlace de datos local de Power BI  •  Probar un enlace SCADA serial RS-485  •  Borrar una excepcion Modbus de direccion de datos ilegal  •  Todo en Protocolos industriales →
Capacitación SCADA gratuita para operadores
Merobix University - 70 lecciones en video y 261 preguntas de examen, del primer inicio de sesión a los reportes de cumplimiento (contenido en inglés). Sin llamada de ventas.
Comenzar gratis →