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.
IEC 104: APDU, I/S/U e parâmetros que controlam a sessão
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
| Campo | Função | Teste |
|---|---|---|
| 0x68 | marcar início | ressincronizar o parser |
| Length | delimitar APDU | comparar bytes disponíveis |
| I | dados + N(S)/N(R) | sequência e ASDU |
| S | reconhecimento N(R) | t2/w |
| U | START/STOP/TEST | estado 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.
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.
- IEC 60870-5-104:2006+AMD1:2016 CSV — Network access for IEC 60870-5-101 — IEC. Companion standard consolidado do IEC 104; inclui o corrigendum publicado em 2023.
- IEC 60870-5-101:2003+AMD1:2015 CSV — Basic telecontrol tasks — IEC. Companion standard consolidado do IEC 101 para telecontrole serial.
- IEC 60870-5-1:1990 — Transmission frame formats — IEC. Formatos de quadro e requisitos de integridade usados pela família IEC 60870-5.
- IEC 60870-5-2:1992 — Link transmission procedures — IEC. Procedimentos de transmissão da camada de enlace, especialmente pertinentes ao IEC 101.
- IEC 60870-5-3:1992 — General structure of application data — IEC. Regras para estruturar unidades de dados de aplicação.
- IEC 60870-5-5:1995 — Basic application functions — IEC. Funções básicas de aplicação, incluindo aquisição, comandos e sincronização.
- IEC 60870-5-6:2006 — Guidelines for conformance testing — IEC. Método para ensaios de conformidade dos companion standards IEC 60870-5.
- IEC TS 60870-5-601:2015 — Conformance test cases for IEC 101 — IEC. Casos de ensaio de conformidade para implementações IEC 101.
- IEC TS 60870-5-604:2016 — Conformance test cases for IEC 104 — IEC. Casos de ensaio positivos e negativos para implementações IEC 104.
- IEC TS 60870-5-7:2025 — Security extensions for IEC 101/104 — IEC. Extensões de segurança alinhadas à série IEC 62351 para autenticação, integridade e RBAC.
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.