Protocolos / DNP3

DNP3 por camadas: enlace, transporte e aplicação

Entenda a arquitetura DNP3 por camadas e aprenda a separar meio físico, Data Link, pseudo-transporte, Application Layer e transporte IP durante configuração e diagnóstico.

6 min de leitura Conteúdo técnico autoral Publicado em 25/08/2026
Ilustração técnica autoral para DNP3 por camadas: enlace, transporte e aplicação, destacando o fluxo e os elementos centrais do assunto.
Ilustração técnica autoral do Portal da Automação, criada para o foco específico deste artigo.

Camadas DNP3 e perguntas de diagnóstico

NívelResponsabilidade principalCampos/evidênciasFalhas típicas
Meio físico/redeTransportar sinais/quadrosnível, BER, CRC de interface, VLAN, rota, perdaruído, polaridade, fibra, RF, ACL, rota
Data Link DNP3Framing e endereço lógico0x05 0x64, Length, Link Control, Source, Destination, CRCendereço incorreto, quadro truncado, corrupção
Pseudo-transporteSegmentar/remontar fragmentosFIR, FIN, sequênciaperda de segmento, resposta grande incompleta
Application LayerTelecontrole e semânticaFunction Code, objetos, qualifier, IIN, sequênciaobjeto não suportado, request inválido, serviço incompatível
Processo/SCADAMapear informação e operaçãolista de pontos, qualidade, timestamp, comandoíndice errado, escala, classe, intertravamento

Por que pensar em camadas muda o diagnóstico

DNP3 foi desenhado para operar em meios diversos e, por isso, separa responsabilidades. Na prática de campo, essa separação é a ferramenta mais útil para evitar diagnósticos por tentativa. Se uma resposta chega com CRC inválido, o problema não é corrigido alterando Class 1. Se a sessão TCP abre mas o master recebe IIN de objeto desconhecido, o caminho IP já não é o primeiro suspeito. Cada camada produz evidências diferentes e deve ser validada na ordem correta.

O modelo DNP3 não deve ser confundido mecanicamente com o OSI de sete camadas. A implementação clássica possui Data Link Layer, uma função de pseudo-transporte para segmentar e remontar fragmentos da aplicação e a Application Layer. Quando DNP3 roda em IP, Ethernet, IP e TCP ou UDP acrescentam suas próprias responsabilidades abaixo do DNP3. O engenheiro precisa saber qual campo pertence a qual nível para interpretar uma captura.

Data Link Layer: framing, endereços e integridade do quadro

A camada de enlace DNP3 delimita o frame, identifica origem e destino lógicos e protege blocos com CRC. O cabeçalho conhecido inicia com 0x05 0x64, seguido por comprimento, controle de enlace, Destination, Source e CRC. O dado do usuário é protegido em blocos adicionais. Essa estrutura foi criada para detectar corrupção em canais que podem ser ruidosos ou de baixa qualidade.

Source e Destination são endereços DNP3, não endereços IP. Esse detalhe explica um cenário recorrente: o master conecta ao IP correto, recebe bytes na porta correta, mas a outstation ignora ou rejeita o tráfego porque o endereço lógico não corresponde ao configurado. Em enlaces seriais multiponto, o endereçamento é ainda mais importante porque vários dispositivos podem compartilhar o mesmo meio físico.

  • Start — O que é: assinatura 0x05 0x64 do frame. Efeito: permite delimitar o início de uma unidade DNP3. Validar: captura serial ou PCAP decodificada.
  • Length — O que é: campo de comprimento do frame. Efeito: define quanto dado pertence à unidade. Validar: comparar valor declarado e bytes recebidos em quadros problemáticos.
  • Link Control — O que é: campo de controle da camada de enlace. Efeito: expressa direção e função de enlace. Validar: observar sequência e função sem confundir com Function Code da aplicação.
  • Source/Destination — O que é: endereços lógicos DNP3. Efeito: selecionam origem e destino do frame. Validar: configuração das pontas e captura.
  • CRC — O que é: verificação de integridade por blocos. Efeito: detecta corrupção. Validar: erros recorrentes, qualidade do meio, serial, conversores e contadores.
Fluxo DNP3 entre estação mestre e outstations com polling, eventos e comandos.
Arquitetura de comunicação DNP3 entre sistema mestre e equipamentos remotos. Fonte: Portal da Automação · Conteúdo autoral do portal.

Pseudo-transporte: FIR, FIN e sequência entre fragmentos

A função de transporte DNP3 existe para dividir fragmentos maiores da aplicação em unidades que cabem no enlace e remontá-los no destino. Seus indicadores de início e fim permitem que o receptor saiba quando um fragmento começa e termina, enquanto o número de sequência ajuda a detectar perda ou ordem inesperada. É uma camada pequena, mas crucial quando respostas crescem, como em integrity polls com muitos pontos.

Uma instalação pode funcionar com poucas variáveis e falhar apenas em respostas grandes. Nesse caso, investigar somente o banco do SCADA é insuficiente. Compare o caso curto com o longo, verifique continuidade das unidades de transporte, perda de blocos, MTU do caminho IP quando aplicável, buffers de gateways e qualidade de rádio ou serial. A primeira quebra na sequência é a evidência que orienta o próximo passo.

Application Layer: Function Code, objetos, sequência e IIN

É na camada de aplicação que DNP3 passa a representar telecontrole. O master envia funções como leitura, escrita, confirmação ou operações de controle; a mensagem carrega objetos definidos por Group e Variation, qualifiers, ranges e índices. A resposta da outstation inclui informações internas que podem sinalizar restart, necessidade de tempo, eventos pendentes, overflow, função não suportada ou objeto desconhecido.

A sequência da aplicação e o mecanismo de confirmação não devem ser confundidos com ACK do TCP. TCP confirma entrega de bytes no transporte; DNP3 possui semântica própria para confirmar determinadas mensagens e eventos. Em troubleshooting, uma retransmissão TCP e uma repetição de uma transação DNP3 são fenômenos diferentes e podem ter causas diferentes.

DNP3 sobre TCP/IP: as camadas continuam existindo

Quando DNP3 usa TCP/IP, o frame DNP3 continua carregando seus endereços e controles. O IP resolve roteamento; TCP entrega um fluxo confiável e ordenado; DNP3 continua responsável por objetos, eventos, classes, IIN e comandos. A porta TCP 20000 é a porta convencional associada ao DNP3, mas deve ser confirmada na engenharia e no equipamento, porque projetos podem utilizar parâmetros diferentes.

O teste deve ser encadeado. Primeiro: ARP/VLAN/rota/ACL. Segundo: handshake TCP e estabilidade da sessão. Terceiro: framing DNP3 e endereços lógicos. Quarto: Function Code e objetos. Quinto: comportamento funcional do processo. Essa ordem economiza tempo porque elimina hipóteses inteiras a cada evidência obtida.

Exemplo de diagnóstico por primeira divergência

Considere um religador que responde a ping, aceita conexão TCP na porta configurada, mas permanece offline no SCADA. A captura mostra SYN, SYN-ACK e ACK normais. Em seguida aparece um frame DNP3 do master, porém nenhum frame DNP3 de retorno. Nesse ponto não faz sentido alterar deadband ou classes: ainda não existe resposta da aplicação. Compare Destination/Source com o Device Profile e a configuração do equipamento.

Em outro caso, a outstation responde e o analisador decodifica IIN com indicação de Object Unknown. Agora o enlace e o transporte já foram provados. A investigação deve migrar para Group/Variation, qualifier, range, capacidades do Device Profile e versão/firmware. A metodologia é sempre a mesma: localizar o primeiro ponto em que o comportamento observado diverge do esperado.

Referências técnicas e normas

As explicações do Portal são autorais. Normas e fontes oficiais são priorizadas; materiais acadêmicos e documentação pública de fabricantes complementam a implementação e não substituem a edição normativa aplicável ao projeto.

Continue estudando

Os próximos conteúdos foram escolhidos para formar uma sequência técnica, relacionando fundamento, configuração, diagnóstico e aplicação.

Ver todas as trilhas de estudo →