[3 pages — 2716 words]


One of the numerous acronyms from the Internet world is SNMP which stands for Simple Network Management Protocol. Of course, anything termed “simple” is suspect. SNMP is an Internet protocol for managing devices on IP networks. Usually people think SNMP only applies to managed Ethernet switches, but it can be applied to any device that supports IP or TCP protocols. This includes printers, workstations, servers, modems and even industrial I/O devices. SNMP introduces us to the concept of “managed” devices which offers numerous advantages over unmanaged devices and could prove beneficial in industrial applications. As more and more devices embrace Ethernet, adding SNMP support can lead to greater advantages.


When we say a device is managed, we mean the device supports the SNMP protocol beyond its normal functions. The SNMP protocol, described in RFC 1157, was developed in the 80s as a simple means of accessing devices remotely. Originally intended to manage routers, SNMP can be used to manage any device including programmable logic controllers and remote I/O blocks. The example that is usually given refers to its use in monitoring the temperature inside a router. If this can be done, then there are a host of industrial applications limited only by our imagination.

One would think there is only one version of SNMP since this acronym is frequently quoted as if it is understood by all. Actually, there are three. The first is SNMPv1 which remains the most popular version. SNMPv2 builds upon the commands of version 1. SNMPv3 addresses the biggest criticism of SNMP. The commands are sent in clear-text and, therefore, insecure. SNMPv3 adds cryptography. Simply understanding SNMPv1 is enough to learn the concepts.

SNMP is an application layer protocol that sits above the TCP/IP stack. However, SNMP does not use TCP at all. It uses the UDP (datagram) protocol for communication which provides no acknowledgment that a transmission was successful. This was done to minimize the software requirements in the “agent” which is the device being managed. The “manager” is the device requesting information from the agent and it is called a Network Management Station (NMS). The interaction between a manager and an agent is similar to the interaction between a master and a slave device. The manager can initiate a “poll” of the agent requesting information or directing an action. The agent, in turn, generates a response to the query from the manager. This is how a remote I/O protocol works. However, the manager can request that a “trap” be set by the agent. A trap is simply a report to be issued in the future which is triggered when a set of conditions are met, similar to an alarm. The trap is triggered upon an event and once it occurs, the agent immediately reports the occurrence without a poll from the manager. This is no different from having a remote I/O device report on a “change of state.” The NMS that receives the trap can then take appropriate action such as notifying personnel of the event. In this situation, the NMS is acting as a server by gathering data from agents and providing information on the state of devices to clients.

Figure 1 — SNMP Communication occurs between a manager
and agent by means of UDP datagrams.

Let’s consider a real-world example. We have a remote pumping station with a SCADA system attached to several devices. The SCADA system is powered from an uninterruptible power supply (UPS) that has an SNMP agent. An Ethernet fiber optic link is used for communication between the remote pumping station and the main control room. An Ethernet switch, located in the pump house, connects the UPS and the SCADA system to the Ethernet link. An SNMP manager application, running on a desktop workstation located in the main control room and functioning as a NMS, instructs the agent in the pump house UPS to set a trap that will be triggered if there’s a loss of main power. If this condition occurs, the agent would send a trap message back to the NMS which, in turn, pages the maintenance shop. This is a simple case in point of how SNMP can aid applications in our industry.

The beauty of SNMP is that it is indeed straightforward. There are only five commands with SNMPv1 and a total of nine for SNMPv2 and SNMPv3. The commands for SNMPv1 are listed below:

  • get
  • get-next
  • set
  • get-response
  • trap

The additional commands for SNMPv2 and SNMPv3 are as follows:
  • get bulk
  • notification
  • inform
  • report

Figure 2 — A manager polls an agent in a similar fashion to a master/slave protocol.

To understand how the commands are applied, we need to introduce an integral component in the process, the managed objects that reside in the agent.

(No part of this article may be reproduced without the written consent of the Industrial Ethernet University.)