Category Archives: Communication Protocols

Modbus Parity and Character Format

On a Modbus serial line, every byte you send is wrapped in a few extra bits before it hits the wire. Those extra bits — the start bit, an optional parity bit, and one or two stop bits — make up the character format. Get them wrong on one device and it won’t talk to the rest of… Read More »

ICCP Device Control: SBO Select and Operate Explained

Device control is where ICCP stops being a data feed and becomes an operational tool — and a liability if misunderstood. Conformance block 5 lets one control center trip breakers, raise taps, and write setpoints in another organization’s network. The protocol wraps that power in the select-before-operate pattern every operations engineer knows from local SCADA, adapted for the… Read More »

ICCP Security: Hardening TASE.2 Links With IEC 62351

An ICCP link is a standing, months-long connection between two organizations, carrying real-time grid data and — where block 5 is enabled — live control of primary equipment. It crosses an organizational boundary by definition: the other end is somebody else’s network, somebody else’s patching discipline, somebody else’s incident. That makes it one of the most security-relevant connections… Read More »

ICCP Transfer Sets: How TASE.2 Reporting Really Works

A transfer set is the engine of an ICCP link. Data values are what you exchange; data sets group them; but the transfer set decides everything about the actual flow — when reports are sent, what they contain, how bursts are handled, and whether the client must acknowledge. Once transfer sets are enabled, the link runs itself: the… Read More »

The ICCP Protocol Stack: OSI Over TCP/IP Explained

The first time you capture ICCP traffic in Wireshark, the protocol column reads like an archaeology dig: TCP, then TPKT, then COTP, then Session, Presentation, ACSE, MMS. Seven layers deep before a single power system value appears. This article explains what each layer does, why the stack looks like this, and — since this is where commissioning time… Read More »

ICCP Conformance Blocks: What Servers Actually Support

Every ICCP datasheet says the same thing: “supports blocks 1, 2, and 5” or some variation. Conformance blocks are how TASE.2 capability is packaged, sold, tested, and written into bilateral agreements. They’re also where datasheets, the wire protocol, and the standard itself quietly disagree. This article decodes each block, explains why nearly half of them were deleted from… Read More »

What Is the ICCP Protocol? TASE.2 (IEC 60870-6) Explained

ICCP is the protocol utility control centers use to talk to each other. Not to substations. Not to RTUs. To other control centers: the neighboring utility, the regional transmission operator, the power pool, an independent generator’s dispatch center. Its official name is TASE.2, the Telecontrol Application Service Element 2. The standard behind it is the IEC 60870-6 series,… Read More »

MQTT 5 Payload Format Indicator & Content Type Explained

MQTT has always been data-agnostic. The broker treats the payload of every PUBLISH as an opaque byte string, forwards it verbatim, and never looks inside. That is one of the protocol’s core strengths — it means MQTT can carry anything without the broker needing to understand it. But it is also historically one of its weaknesses. In MQTT… Read More »

Modbus Unit Identifier Explained: Unit ID by Scenario

You just installed a Modbus TCP device. The manual says “set Unit ID to 1.” Your PLC configuration asks for a Unit ID. Another device manual says “Unit ID is ignored.” A third says “Unit ID must be 0xFF.” What is going on? Which one is right? All of them are right. The Unit Identifier — usually called… Read More »