Simple Network Management Protocol (SNMP) is a network protocol that allows configuration changes to be made remotely to network devices and allows devices to notify a monitoring station of events by sending messages known as "traps".
SNMP is widely used in many industries. It is a component of the internet protocol suite defined by the Internet Engineering Task Force.
SNMP is used by Tekron clocks to send notifications of events to a monitoring system (manager). The information is reported to a managing system by a software component called an agent running on the Tekron clocks.
SNMP exposes management data in the form of variables on managed systems, which describe their status and configuration. These variables can be queried, and sometimes set, by managing systems.
SNMP does not define which information (variables) a managed system should offer. Rather, SNMP uses an extensible design where the information is defined by Management Information Bases (MIBs). A MIB is a database which specifies the variables relating to a specific device in a network. Tekron uses its own custom MIBs for the variables relating to its products.
- MIBs use a hierarchical namespace containing object identifier strings (OIDs). Each OID identifies a variable that can be read or set via SNMP. As an example, the OID for the “AntennaOK” variable in the Tekron MIBs is .1.3.6.1.4.1.34689.2.1.0.6.
- A MIB file contains a description of the object hierarchy on a managed device, as well as the syntax and access privileges for each variable in the MIB.
The SMNP agent receives sends and receives requests on UDP port 161. The agent’s response will then be sent back to the source port (162) of the manager.
The manager receives notifications (Traps and InformRequests) on port 162, however the manager may generate notifications on any available port as long as it is sent to port 161 of the agent.
When Traps and InformRequests are used with Transport Layer Security or Datagram Transport Layer, Security requests are received on port 10161 and traps are sent to port 10162.
Protocol data units (PDU) is a generic term for a unit, or container, of data in a network protocol.
For layer 2, a PDU is a single frame. For layer 3, a PDU is a single packet.
- SNMPv1 specifies five core PDUs that can be used. GetRequest, SetRequest, GetNextRequest, Response and Trap
- SNMPv2 added the next two, GetBulkRequest and InformRequest PDUs.
- SNMPv3 added the Report PDU.
The seven SNMP PDU’s types are:
- GetRequest - A manager-to-agent request to retrieve the value of a variable or list of variables
- SetRequest- A manager-to-agent request to change the value of a variable or list of variables.
- GetNextRequest– A manager-to-agent request to discover available variables and their values. The entire MIB of an agent can be walked by iterative application of GetNextRequest starting at OID 0.
- GetBulkRequest – Optimized version of GetNextRequest. A manager-to-agent request for multiple iterations of GetNextRequest.
- Response (or GetResponse in SNMPv1) – Response message (returns variable bindings and acknowledgement) from agent to manager for various (Get, Set & inform) commands. Error reporting is provided by the error-status and error-index fields
- Trap - An asynchronous notification from agent to manager. SNMP traps enable an agent to notify the management station of significant events using an unsolicited SNMP message. These are sent from the SNMP client to the server without being explicitly requested
- InformRequest- Acknowledges asynchronous notification. This sends an acknowledgement on receipt of Traps
A Walk will perform a sequence of chained GETNext requests automatically, rather than having to issue the repeated getNexts requests manually. It returns a list of all MIB objects which lie within the subtree rooted on the current OID. It could return nothing if the agent doesn’t implement any MIB objects underneath the specified OID.
For more information refer to these two articles: