Protocolos / IEC 60870-5-104 — IEC 104

APCI no IEC 104: start, length, controle, sequência e tipo de frame

Leia o APCI do IEC 60870-5-104 byte a byte, identificando 0x68, comprimento, campos de controle, I/S/U frames, N(S), N(R) e falhas de sessão.

6 min de leitura Conteúdo técnico autoral Publicado em 25/08/2026
Ilustração técnica autoral para APCI no IEC 104: start, length, controle, sequência e tipo de frame, 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.

IEC 104: APDU, I/S/U e parâmetros que controlam a sessão

Diagrama do IEC 60870-5-104 com APDU, APCI, ASDU, formatos I S U e temporizadores.
Diagrama próprio do Portal da Automação. A IEC 104 usa TCP, mas mantém regras próprias de sessão, numeração e telecontrole.

Como ler esta figura

APCI / Control Field

Controla formato I/S/U, estado lógico e numeração N(S)/N(R).

Na implementação: Sequência travada, ACK atrasado ou TESTFR repetitivo deve ser correlacionado com timers e janelas, não só com TCP.

I-format

Transporta ASDU e usa números de envio e recebimento para acompanhar a sequência.

Na implementação: Compare N(S) e N(R) nos dois sentidos para encontrar a primeira divergência ou ACK ausente.

S-format

Confirma recepção sem transportar uma ASDU.

Na implementação: É diretamente relacionado ao controle de fluxo e ao limiar w/t2.

U-format

Executa STARTDT, STOPDT e TESTFR para controlar/testar a transferência.

Na implementação: STARTDT não é comando de processo; é habilitação da transferência de dados IEC 104.

ASDU

Type ID, VSQ, COT, CA e IOA dão significado às medidas, estados, eventos e comandos.

Na implementação: TCP saudável com CA/IOA/COT errados continua sendo uma integração quebrada.

t0, t1, t2, t3, k e w

Definem estabelecimento, confirmações, ociosidade e janelas de mensagens.

Na implementação: Dimensione usando RTT real, carga e requisitos da aplicação; não copie defaults entre fabricantes sem validar.

Leitura do APCI IEC 104

CampoFunçãoTeste
0x68marcar inícioressincronizar o parser
Lengthdelimitar APDUcomparar bytes disponíveis
Idados + N(S)/N(R)sequência e ASDU
Sreconhecimento N(R)t2/w
USTART/STOP/TESTestado e t1/t3

A fronteira da APDU independe da segmentação TCP.

APCI enquadra toda APDU IEC 104

Application Protocol Control Information ocupa o início da APDU e informa ao receptor como tratar a mensagem. O byte 0x68 marca o início, o octeto seguinte declara comprimento e quatro octetos formam o campo de controle. Somente I-frames carregam ASDU depois desse cabeçalho. Antes de interpretar Type ID ou IOA, o analisador precisa validar APCI; um comprimento incoerente ou controle inválido torna insegura qualquer conclusão sobre a aplicação.

O comprimento delimita o que pertence à APDU

O length informa a quantidade de octetos que seguem conforme o formato IEC 104, abrangendo controle e eventual ASDU. Ele permite separar mensagens em fluxo TCP, no qual fronteiras de segmento não correspondem necessariamente a fronteiras de APDU. Uma APDU pode chegar dividida em segmentos ou várias podem compartilhar um segmento. Parser correto acumula bytes até o tamanho declarado; ler “um pacote TCP igual a uma mensagem” gera falsos truncamentos.

Comparação entre IEC 60870-5-101 serial e IEC 60870-5-104 sobre TCP/IP.
Os protocolos compartilham a semântica de telecontrole, mas usam transportes e controles de sessão diferentes. Fonte: Portal da Automação · Conteúdo autoral do portal.

Bits iniciais distinguem I, S e U

Os quatro octetos de controle assumem formatos diferentes. I-frame transporta dados e números de envio e recepção; S-frame reconhece recepção sem ASDU; U-frame conduz STARTDT, STOPDT e TESTFR. A classificação vem dos bits de controle, não do tamanho ou da direção. Monte linha do tempo por tipo. Se TCP está conectado, mas não houve STARTDT confirmado, a ausência de I-frames pode ser estado correto, não falha de mapping.

N(S) e N(R) usam codificação própria

Nos I-frames, o número de envio e o reconhecimento são representados nos campos de controle com deslocamento definido; o bit menos significativo participa da identificação do formato. A decodificação deve reconstruir o valor antes da comparação. Cada direção mantém seus contadores. N(S) avançando sem N(R) correspondente indica dados pendentes; salto, repetição ou regressão precisa ser distinguido de retransmissão TCP, reconexão e captura incompleta.

S-frame confirma sem carregar aplicação

Quando o receptor precisa reconhecer I-frames e não tem dado próprio para piggyback, envia S-frame com N(R). A ausência ou atraso dessa confirmação pode levar ao t1 e ao limite k; o envio é influenciado por w e t2. Um S-frame não contém Type ID, COT ou pontos. Ferramentas que mostram “pacote IEC 104 sem dados” não indicam erro. Avalie se N(R) reconhece exatamente a próxima sequência esperada.

U-frame controla a transferência

STARTDT act/con habilita dados, STOPDT suspende e TESTFR supervisiona ociosidade. Cada função possui ativação e confirmação. O APCI permite observar sessão IEC 104 acima do TCP. Firewalls podem manter conexão enquanto a aplicação está parada; um equipamento pode responder TESTFR e ainda ter problema de ASDU. Registre estados e timers. U-frame repetido sem confirmação aponta aplicação, processamento ou caminho de retorno, não necessariamente porta TCP fechada.

TCP precisa ser analisado em paralelo

Retransmissão, out-of-order e segmentação TCP podem fazer a mesma APDU aparecer em mais de um frame de captura. Use stream e números TCP para reconstituir antes de acusar duplicidade IEC 104. RST, FIN e zero window explicam interrupções que o APCI sozinho não mostra. Quando possível, capture nos dois lados e compare horários. A primeira divergência entre bytes enviados e recebidos localiza rede, enquanto divergência após recepção aponta implementação.

Comissionamento usa sequências completas

Valide conexão, STARTDT, I-frames nos dois sentidos, S-frames sob carga, TESTFR na ociosidade, STOPDT e reconexão. Gere volume para exercitar k e w sem saturar o sistema. Provoque perda e atraso controlados, observando timers e reinicialização dos contadores após nova sessão. O relatório inclui bytes, tipo, N(S), N(R), timestamps e ASDU associada. Assim APCI vira evidência operacional, não apenas detalhe hexadecimal.

Critério de engenharia e governança

Para transformar a leitura do APCI em método de diagnóstico, mantenha uma planilha temporal com TCP sequence/ack, tipo IEC 104, N(S), N(R), função U e tamanho. Ela permite provar se a aplicação parou antes ou depois de receber bytes. Durante pico, calcule quantos I-frames ficaram pendentes e o intervalo máximo até reconhecimento. Compare com k, w, t1 e t2 configurados. Em captura unilateral, marque limitações: um segmento ausente pode ser perda da captura, não da rede. Use SPAN/TAP dimensionado e valide drops da ferramenta. Depois de reconexão, os números IEC 104 reiniciam conforme nova sessão e não devem ser comparados como continuidade com a anterior. Para segurança, filtre origem, destino e porta, mas não trate porta 2404 como prova de protocolo válido. Fuzzing ou APDU malformada deve ser testado apenas em laboratório. O aceite do APCI inclui decodificação independente de exemplos, sessão nominal, ociosidade, carga, falha e retorno, mostrando que cada mudança de estado tem evidência observável.

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.

Trilhas em que este artigo se encaixa

Ver todas as trilhas de estudo →