DNP3 Protocol and IEC 60870-5-104 Protocol: SCADA Communication Compared

Share:
SCADA and Automation
DNP3 and IEC 60870-5-104 Protocols: SCADA Communication Compared

DNP3 protocol and IEC 60870-5-104 are the two dominant SCADA protocols between master stations, RTUs, and IEDs in electric utility and infrastructure automation.

Both were designed for the same job — reliable data acquisition and control over long-distance or unreliable links — but took different engineering paths.

This guide explains how each protocol works, compares their architecture and data models, and shows when to choose one over the other.

DNP3 Data Priority Classes IEC 104 APCI/ASDU Structure Secure Authentication v5 Geographic Deployment Patterns

DNP3 protocol dominates North American electric utility SCADA deployments. IEC 60870-5-104 dominates European and international markets.

Both emerged from the IEC 60870-5 document series and solve the same problem: reliable process data transfer between a control centre and field devices over a network not designed for real-time traffic.

DNP3

DNP3 Protocol and IEC 60870-5-104: Common Origin, Different Evolution

Hello! Today we are comparing the DNP3 protocol and IEC 60870-5-104 — the two most widely deployed SCADA protocols in the utility and infrastructure sector. Engineers who have worked on one protocol often encounter the other when their company acquires a site in a different country, or when integrating with a partner company's control centre. Understanding the structural differences is essential for designing protocol gateways and multi-master SCADA architectures.

Both DNP3 and IEC 60870-5-104 trace their origins to IEC 60870-5. That series defined a three-layer architecture — physical, data link, and application — without a full OSI stack.

DNP3 was developed in 1993 by GE-Harris Canada from the partially completed IEC 60870-5 draft specifications, because IEC standardisation was too slow for the commercial need.

IEC 60870-5-104 was standardised later as the TCP/IP transport variant of the serial IEC 60870-5-101 protocol.

Did You Know? The "3" in DNP3 comes from the original product designation "DNP V3.00," not from the number of protocol layers as is commonly assumed.

The DNP Users Group later shortened the name to "DNP3" specifically to remove the version-number implication — signalling that the protocol would not keep incrementing to DNP4 or DNP5. There has never been a DNP 3.1, DNP 4.0, or any successor version name.

The protocol does happen to use a three-layer model (data link, pseudo-transport, application), but this is coincidental with the name. The three layers are what makes DNP3 efficient for RTU communication — no session or presentation layer overhead from the OSI model.
DNP3
Dominant in North America, Asia-Pacific, and Latin America. Standardised as IEEE Std 1815.
IEC 104
Dominant in Europe, the Middle East, and international markets. Part of the IEC 60870-5 series.
TCP/IP
Both protocols use TCP/IP transport on modern networks. DNP3 default port: 20000. IEC 104 default port: 2404.
3 layers
Both protocols use a reduced three-layer model (data link, transport/pseudo-transport, application) instead of the full OSI seven-layer stack.
Advertisement

DNP3 Protocol Architecture and Working Principle

A typical DNP3 protocol session has a master station and one or more outstations (RTUs or IEDs). The master sends requests; outstations respond.

All data points are organised into data objects grouped by object groups — binary inputs, analogue inputs, counters, binary outputs, analogue outputs, and time.

DNP3 uses three data priority classes plus Class 0 for static data.

The master polls each class at a different rate: Class 1 for alarms, Class 2 for process data, Class 3 for trends.

This is one of DNP3 protocol's strongest advantages on bandwidth-limited WAN links.

DNP3 Data Classes and Typical Use
Class 0: Static (complete) data — all current values, no change filtering. Polled infrequently (startup, integrity check).

Class 1: Highest priority change events. Protection relay trips, critical alarms. Master polls frequently (every 1 to 5 seconds).

Class 2: Medium priority change events. Process alarms, status changes, setpoint confirmations. Master polls every 10 to 30 seconds.

Class 3: Lowest priority change events. Analogue trending, counters, lower-priority status. Master polls every 30 to 60 seconds or on demand.

DNP3 supports unsolicited responses — the outstation sends data without being polled when a Class 1 or Class 2 change event occurs. This reduces polling traffic and improves alarm latency significantly.

The DNP3 pseudo-transport layer segments messages larger than one data link frame. This enables the DNP3 protocol to transfer device configuration and firmware as well as real-time data.

See the SCADA communication protocol guide and the Modbus RTU vs TCP guide for context.

Tip: Configure DNP3 unsolicited responses carefully before enabling them on a large SCADA network.

Unsolicited responses remove the need for the master to poll every outstation for changes, but they also mean the master must be ready to receive events at any time from any outstation.

On a network with hundreds of outstations, enabling unsolicited responses without tuning the hold-off timers and maximum event count per message can flood the master with simultaneous event reports during a grid disturbance. Set the hold-off timer (the delay before an unsolicited report is sent) to stagger reports across outstations, and limit the maximum number of events per unsolicited response to prevent large bursts.
Did You Know? DNP3 Secure Authentication version 5 (SA v5) was added to the IEEE 1815-2012 standard in response to increasing cybersecurity requirements in the utility sector under NERC CIP.

SA v5 adds a challenge-response authentication mechanism at the application layer. The master and outstation share a pre-configured update key. Any control command (OPERATE, SELECT, or DIRECT OPERATE) requires the outstation to challenge the master with a random number, and the master must respond with an HMAC-SHA-256 hash of the challenge data and the shared key before the command is accepted.

SA v5 is now required by many North American utility SCADA specifications and is supported by most modern DNP3 protocol stacks. It does not change the DNP3 data model or polling structure — it adds an authentication handshake on top of the existing protocol.
Advertisement

IEC 60870-5-104: How It Works

IEC 60870-5-104 is the TCP/IP variant of the IEC 60870-5-101 serial protocol. It carries the same ASDU data model as 101, transporting it over TCP port 2404 rather than a serial link.

All IEC 104 data is exchanged through ASDUs. Each ASDU has a type identification code (TI) defining the data type and a cause of transmission (COT) defining why it was sent.

Information objects inside the ASDU carry the actual data values with timestamps and quality flags.

IEC 60870-5-104: APCI and ASDU structure
APCI (Application Protocol Control Information):
4-byte header — controls the connection state and frame numbering.
Three frame formats: I-frame (information), S-frame (supervisory), U-frame (unnumbered control).

ASDU (Application Service Data Unit):
Type ID — what kind of data (e.g., 1 = single-point status, 30 = single-point with timestamp, 36 = measured analogue with float)
Cause of Transmission (COT) — why it was sent (1 = periodic, 3 = spontaneous, 6 = activation, 7 = activation confirmation)
Common Address — identifies the RTU/IED
Information Objects — actual data values + timestamps + quality flags

Window size: Maximum 12 unacknowledged I-frames (configurable: parameter W). Sender must pause if receiver has not acknowledged W frames.

IEC 104 uses a spontaneous transmission model: the outstation sends change events as they occur, without being polled. This is equivalent to DNP3 unsolicited responses but is the IEC 104 default.

The connection uses a persistent TCP connection. The APCI S-frame and U-frame control keep-alive and I-frame acknowledgement.

Unlike the DNP3 protocol, IEC 104 has no data priority class system — all events are sent in order of occurrence. See the DCS communication protocols guide.

Tip: Set the IEC 104 connection parameters (T1, T2, T3, W, K) based on your network latency, not the default values.

T1 is the timeout for acknowledgement of an I-frame (default 15 seconds). T2 is the maximum delay before sending an S-frame acknowledgement (default 10 seconds). T3 is the keep-alive test frame interval (default 20 seconds). W is the maximum number of received I-frames before an S-frame must be sent (default 8).

On a high-latency satellite or WAN link with 500 ms round-trip time, the default T1 of 15 seconds may cause unnecessary connection resets if a burst of traffic delays acknowledgements. Increase T1 to 3 to 5 times the maximum expected round-trip time. On a low-latency LAN, the defaults are conservative — reduce T2 to 1 to 3 seconds to improve event delivery responsiveness.

DNP3 Protocol vs IEC 60870-5-104: Full Comparison

ParameterDNP3 ProtocolIEC 60870-5-104
Standard bodyIEEE Std 1815. Maintained by the DNP Users Group.IEC TC 57. Part of the IEC 60870-5 series.
Geographic dominanceNorth America, Asia-Pacific, Latin AmericaEurope, Middle East, Africa, international markets
TransportTCP/IP (port 20000) or serial (RS-232, RS-485)TCP/IP only (port 2404). Serial variant is IEC 60870-5-101.
Data modelObject groups and variations (e.g., Group 1 = binary inputs, Group 30 = analogue inputs). Data class assigned per point.ASDU with Type ID and Cause of Transmission. No data priority classes — events sent in order of occurrence.
Data priorityClass 1, 2, 3 system. Master polls each class at different rates. Class 1 for critical events, Class 3 for trend data.No priority class system. All spontaneous events sent in chronological order to the master.
Event deliveryPolled mode (master asks) or unsolicited response (outstation sends without being asked — optional, configurable).Spontaneous transmission by default — the outstation sends events as they occur. No polling required for event data.
Maximum frame size250 bytes per data link frame. Pseudo-transport layer reassembles multiple frames into one application message (up to 2,048 bytes).253 bytes per ASDU (no native message segmentation). Large data sets require multiple separate ASDUs.
TimestampsDNP3 timestamps are 48-bit millisecond-resolution UTC. Outstation can record time-tagged events even when not communicating with master.IEC 104 uses CP56Time2a — 7-byte millisecond-resolution timestamp (year, month, day, hour, minute, second, millisecond).
SecurityDNP3 Secure Authentication v5 (SA v5) per IEEE 1815-2012. HMAC-SHA-256 challenge-response authentication for control commands.IEC TS 62351-5 defines security extensions for IEC 104. Less widely deployed than DNP3 SA v5 in practice.
Multi-point networksUp to 65,519 outstation addresses per master. Natively supports multi-drop networks (one master, many outstations on one link).Designed primarily for point-to-point (one master, one outstation per TCP connection). Multi-master configurations require careful design.
Best forNorth American utilities, bandwidth-constrained WAN links, networks requiring data priority classes, NERC CIP environments needing SA v5 authentication.International utility SCADA, European grid operators, systems where spontaneous event delivery is preferred over polling, and IEC 61850 substation automation integration.

DNP3 Protocol Poll Cycle and Bandwidth Estimator

DNP3 Protocol Poll Cycle and Bandwidth Calculator
Estimate polling traffic for a DNP3 master-outstation network
-
-
Advertisement

Watch: SCADA Communication Protocols — Modbus, DNP3 and IEC 60870

DNP3 Protocol vs IEC 60870-5-104 Questions

What is the DNP3 protocol and where is it used?
DNP-3 protocol is used for SCADA communication between master stations and RTUs or IEDs in electric utility, water, and oil and gas systems. It is dominant in North America and Asia-Pacific.
What is the difference between DNP3 and IEC 60870-5-104?
DNP-3 uses data priority classes (Class 1, 2, 3) for differential polling. IEC 60870-5-104 uses TCP/IP with spontaneous event transmission. DNP3 dominates North America; IEC 104 dominates Europe.
What are DNP3 data classes?
DNP-3 data classes group data points by priority. Class 1 holds critical events. Class 2 holds process data. Class 3 holds trend data. Class 0 is the complete static set.
What port does IEC 60870-5-104 use?
IEC 60870-5-104 uses TCP port 2404. DNP3 protocol uses TCP port 20000. Both ports must be open on any firewall between the master station and the RTU or IED.
Can DNP3 and IEC 60870-5-104 communicate directly?
No. DNP3 and IEC 60870-5-104 have different data object models and application layer structures. Direct communication requires a protocol gateway or RTU that implements both protocol stacks and translates between them.

External References

Advertisement

What We Learn Today

  • DNP3 protocol and IEC 60870-5-104 share the same three-layer architecture from IEC 60870-5 but differ in data model, event delivery, and geographic deployment. DNP3 dominates North America with its data class priority system. IEC 104 dominates Europe with its spontaneous event delivery model over TCP port 2404.
  • The key DNP3 advantage is differential polling: Class 1 events (protection alarms) are retrieved every few seconds; Class 3 trend data is retrieved much less frequently. This makes DNP3 more efficient than IEC 104 on bandwidth-limited WAN and satellite links where all traffic competes on the same channel.
  • Converting between DNP3 and IEC 60870-5-104 requires a protocol gateway — the two protocols have incompatible data object models. Any SCADA project integrating both North American and European systems must plan for gateway hardware in the architecture.
“DNP3 and IEC 104 solve the same problem with different philosophies. DNP3 gives the master control over what data arrives and when. IEC 104 lets the outstation decide when to report. The right choice depends on your network bandwidth, your control centre design, and which continent your utility regulator standardised on decades ago.”

Leave a Reply

Your email address will not be published. Required fields are marked *