Abstract
The DNP3 protocol was originally developed back in the day when a wired connection to devices was the norm. The protocol was designed to be robust and very reliable but not necessarily data efficient. This is normally not an issue with wired connections (serial or Ethernet) or even with wireless connections via Wi-Fi. The amount of data utilized by DNP3 can become an issue when coupled with a cellular data plan. In this case, the volume of data is tied to the cost of the cellular service so keeping data usage low (thereby avoiding overage charges) is an important consideration.
Integrity Poll
A common denominator of DNP3 remote terminal units (RTUs) like the Boomerang is known as the data integrity poll. This is a query for all the data available in the unit and is used to synchronize the SCADA master’s database with that of the RTU. The integrity poll is usually set up to occur on a timed basis to periodically refresh all data. This is a common first step when setting up communication between the SCADA master and an RTU. Often a SCADA master is then set to execute an integrity poll at the desired frequency of data sampling (sometimes only seconds apart) but this will always result in more data being transmitted than is actually needed. The integrity poll is not meant to be used as the primary means of data acquisition. It should be used for database synchronization and is sometimes not needed at all.
Data Points
DNP3 offers many options for retrieving data from an RTU. This includes data grouped within predefined classes, custom lists based on user preference, inclusive ranges of data points and individual data points. A Boomerang monitor (Figure 1) is often used to monitor voltage only. Using the integrity poll to collect only the voltage data would be a significant waste of the cellular data monthly allowance. Instead, the specific data points corresponding to the voltage data within a Boomerang could be requested. This would result in a significant saving of data transmitted per sample period.

Examples
Examples of data usage have been captured using a popular (and free) tool called Wireshark. It has the added ability of being able to decode and show the details of the DNP3 protocol. The following screen captures were taken from a Wireshark session monitoring the data received from various types of queries issued to a 3 phase Boomerang. Note that the screen capture shown in Figure 2 is displaying the final aggregation of all the TCP/IP packets needed to create the response to a data integrity poll. The size indicated in each example is actually the last received packet size but all packet sizes in the transaction have been included in the totals. In the first example (see Figure 2), the entire transaction from data integrity poll request to data received including the overhead of the TCP/IP protocol totals to 1469 bytes of data! A close examination of the data contained in the integrity poll shows that there were four types of data (object types 01, 20, 30 and 40) included each with many points. What is not shown in the data capture was that the volume of data required it to be broken into multiple packets each of which incurred additional protocol overhead.

In contrast is the screen capture shown in Figure 3 which is the result of a request to read a single data point. In this example, object 30 point 100 was chosen which corresponds to channel 1 voltage on a 3 phase Boomerang. The entire transaction from the read data point request to data received including the overhead of the TCP/IP protocol totals to just 213 bytes of data. Reading a single channel of voltage data using the read data point option resulted in a savings of 1256 bytes of data that did not get transmitted for each sample of voltage requested by the SCADA master. If all three channels of voltage are required then reading each in turn would require 639 bytes of transmitted data. This is a significant savings in data transmission volume over the integrity poll but in this 3 channel scenario the savings could be maximized by utilizing the DNP3 protocol to read a list of specific data points.

The example shown in Figure 4 is a screen capture of the transaction to read three channels of voltage from a 3 phase Boomerang. The data request was for object 30 points 100, 200 and 300. The entire transaction from the read data points request to data received including the overhead of the TCP/IP protocol totals to just 233 bytes of data.

A practical consideration of these values is illustrated in Table 1. The default data plan for a Boomerang unit allows for 25 megabytes of data per month. The average polling rate that stays within the data plan limit is shown for each of the previous examples. This is a simplistic example in that there will certainly be other data traffic between the SCADA master and the Boomerang but it serves to illustrate the need for efficient use of available data bandwidth.
| Poll Method | Bytes per Transaction | Number of Polls in 25 MB per Month |
|---|---|---|
| Full Data Integrity Poll | 1,469 | 17,845 |
| 3 Separate Point Reads | 639 | 41,024 |
| Combined 3 Point Read | 233 | 112,508 |
Conclusions
There are a few takeaways to be noted from these examples. The overhead of the various protocols involved (IP, TCP and DNP3) are significant and should be minimized whenever possible. The protocol overhead is needed for each request and response between SCADA master and RTU. Requesting data less often and/or requesting specific sets of data will result in the most efficient transactions. The DNP3 protocol is flexible in that it allows for a large variety of methods to specify data queries. These can be single pieces of data, related sets of data and customized lists. The data integrity poll by default is set up to send all data measured by an RTU so it will be one of the largest data requests and should be used sparingly. Because of the potentially large amount of data in the integrity poll response, additional overhead is often required to transmit the data using multiple TCP/IP protocol packets.
This whitepaper has shown a simple means to greatly reduce data usage when using DNP3 with Boomerang monitors. Additional savings could be realized if UDP were used (instead of TCP) as previous whitepapers have recommended (see WP138, UDP vs TCP on a Cellular Network).