← Home

DNP3

Distributed Network Protocol Version 3 (DNP3) is an open, reliable industrial communication protocol designed primarily for electric utilities, water treatment, oil and gas, and other critical infrastructure requiring reliable Supervisory Control and Data Acquisition (SCADA) over long-distance and often unreliable communication links.

DNP3 Overview
Figure – DNP3 master/outstation SCADA communication architecture.

Overview

Distributed Network Protocol Version 3 (DNP3) is an open, reliable industrial communication protocol designed primarily for electric utilities, water treatment, oil & gas, and other critical infrastructure requiring reliable Supervisory Control and Data Acquisition (SCADA).

Unlike Modbus, DNP3 was specifically designed for telemetry over unreliable communication links, making it ideal for long-distance communications using:

DNP3 is widely deployed throughout electrical transmission and distribution networks and is one of the most common protocols used in modern SCADA systems.


Why DNP3 Was Developed

Earlier SCADA protocols suffered from limitations including:

DNP3 was designed to provide:


Primary Applications

DNP3 is commonly used in:

Typical devices include:


Typical Architecture

A typical DNP3 SCADA deployment connects a central master station to multiple remote outstations over a wide-area communication network.

SCADA Master
       │
 Ethernet / Radio / Cellular
       │
------------------------------
      RTU / Gateway
       │
------------------------------
 PLCs / IEDs / Relays
       │
 Sensors & Actuators

One master generally communicates with many remote stations.


Master-Outstation Architecture

DNP3 uses a master-outstation architecture. Instead of "Master" and "Slave", DNP3 terminology uses Master Station and Outstation.

Master Station
      ↓
Outstation

Master Station

The master:

Outstation

The outstation:

Unlike Modbus, outstations can report events without requiring continuous polling.


Communication Media

DNP3 supports a wide range of communication media:

Serial

Network

Wireless


Transport Variants

DNP3 Serial

The original implementation runs directly over RS-232 or RS-485 using the DNP3 Data Link Layer.

DNP3 over TCP/IP

Also known as DNP3 TCP, this variant encapsulates DNP3 packets inside TCP for integration into modern Ethernet SCADA systems.

Default TCP port: 20000


Protocol Stack

DNP3 loosely follows the OSI model.

OSI Layer DNP3
Application DNP3 Application Layer
Transport DNP3 Transport Layer
Data Link DNP3 Data Link
Physical RS-232, RS-485, Ethernet

Communication Process

Typical polling sequence:

Master
  ↓
Read Request
  ↓
Outstation
  ↓
Returns Current Values
  ↓
Stores Events
  ↓
Master Requests Events
  ↓
Only Changed Values Returned

Event-Driven Communication

One of DNP3's biggest improvements over Modbus is event-driven reporting. Instead of sending all values repeatedly:

Temperature = 50°C
No change
  ↓
No transmission

Temperature = 60°C
  ↓
Only change transmitted

Advantages include:


Unsolicited Messaging

DNP3 can send unsolicited responses. Instead of waiting for polling:

Breaker Trips
  ↓
RTU Immediately Sends Event
  ↓
Master Receives Alarm

This significantly improves alarm response times.


Time Synchronization

Every event may include:

The master periodically synchronizes clocks across the network. This is critical for:


Data Objects

Unlike Modbus registers, DNP3 organizes information into objects.

Binary Inputs

Example: Breaker Status — Open / Closed

Analog Inputs

Examples: Voltage, Current, Temperature, Pressure

Counters

Examples: Energy Usage, Flow Totals

Control Outputs

Examples: Open Breaker, Close Breaker, Start Pump, Stop Pump


Object Groups

DNP3 data is organized into standard object groups:

Group Description
Binary Inputs Digital status
Binary Outputs Commands
Analog Inputs Measurements
Analog Outputs Setpoints
Counters Energy totals
Time Objects Clock synchronization
Device Attributes Device information

Static vs Event Data

Static Data

Static data represents the current value. Example: Pump Running.

Event Data

Event data records only changes. Example:

Stopped
  ↓
Started
  ↓
Stopped

The master can request:


Class-Based Polling

DNP3 divides events into priority classes, allowing the master to poll different classes at different rates.

Class Description
Class 0 Static data
Class 1 High priority events
Class 2 Medium priority events
Class 3 Low priority events

For example, the master may poll:

This reduces network traffic while ensuring critical events are reported promptly.


Data Integrity

DNP3 includes robust mechanisms for reliable delivery over noisy links:

Making it highly reliable over noisy communication links.


Advantages


Limitations


DNP3 Secure Authentication (DNP3-SA)

Traditional DNP3 had no authentication or encryption, making it vulnerable to:

To address this, the protocol was enhanced with Secure Authentication (DNP3-SA).

Key security features include:

DNP3-SA authenticates control commands before they are executed, helping prevent unauthorized operations. However, it does not encrypt all traffic; confidentiality typically requires additional measures such as VPNs or secure network architectures.


DNP3 and IEC 62351

The IEC 62351 series defines cybersecurity measures for power system communications, including DNP3.

Relevant protections include:

Utilities commonly implement DNP3-SA together with IEC 62351 guidance to strengthen security across SCADA environments.


DNP3 within IEC 62443

DNP3 is frequently deployed within Industrial Automation and Control Systems (IACS) covered by IEC 62443. IEC 62443 does not replace DNP3; instead, it provides security requirements for systems using DNP3.

Key recommendations include:

Network Segmentation

Secure Remote Access

Least Privilege

Monitoring

Monitor for:

Asset Management

Maintain an inventory of:


Comparison with Modbus

Feature DNP3 Modbus
Designed for SCADA Yes Originally no
Event reporting Yes No
Time stamps Yes No
Unsolicited messaging Yes No
Class polling Yes No
Data objects Yes Registers only
Reliable over radio Excellent Limited
Secure Authentication Yes (DNP3-SA) No native equivalent
Complexity Higher Lower
Bandwidth efficiency High Lower

Packet Structure

A simplified view of the DNP3 packet structure shows how each layer contributes to reliable delivery, sequencing, and application-level interpretation.

+------------------------------------------------------+
| Data Link Header                                     |
+------------------------------------------------------+
| CRC                                                   |
+------------------------------------------------------+
| Transport Header                                      |
+------------------------------------------------------+
| Application Header                                    |
+------------------------------------------------------+
| Function Code                                         |
+------------------------------------------------------+
| Object Header(s)                                      |
+------------------------------------------------------+
| Data Objects                                          |
+------------------------------------------------------+
| CRC                                                   |
+------------------------------------------------------+

SCADA Data Flow

SCADA Master
      │
Read Class 1 Events
      │
      ▼
Remote RTU
      │
Changed Analog Values
Binary Alarms
Counter Updates
      │
      ▼
Master Updates HMI
Historian Stores Events
Operator Receives Alarm

Best Practices


Related Topics


Standards Reference