Simple Network Management Protocol (SNMP) is a vendor-independent protocol for transporting management data between networked devices and applications and the systems that control and monitor those devices and applications. The Internet community first developed SNMP in 1987 to augment existing TCP/IP network management tools (e.g., ping). SNMP is based on Internet standards. Several Internet Engineering Task Force (IETF) Request for Comments (RFCs) define SNMP (notably RFC 1157). Because of SNMP's origins, many users implement it over IP. In fact, User Datagram Protocol (UDP) ports 161 and 162 identify SNMP agents and managers, respectively. However, you can deliver SNMP messages using other protocols such as SNA.
MIBs, Agents, and Traps
SNMP-compliant hardware and software ship with agent software to help track relevant information about network traffic and device or application statistics. These hardware and software resources store up-to-date information in management information bases (MIBs--see IETF RFCs 1213 and 1573). MIBs are hierarchical name spaces that contain relevant information about the device or application that you are monitoring with SNMP.
Agent software generally waits to be polled by the SNMP-monitoring software and then returns the current values for the requested MIB objects. In addition to receiving information from devices and applications with built-in MIBs, several agent-building toolkits let you define custom MIBs and agents.
SNMP primarily uses two types of commands: get (to retrieve information) and set (to change it). Another command, trap, sends an alarm to a management station under predefined conditions.
SNMP's primary goal is simplicity, so it contains only three get commands: GetRequest, GetResponse, and GetNextRequest. A new get command, GetBulk (which will let you retrieve information from more than one MIB at a time), is part of the proposed SNMPv2* (V2 star) specification in IETF RFCs 1441 through 1452.
SNMPv2* is emerging to address problems of scalability--because of the nature of the simple manager and agent model, SNMP doesn't scale well--manager-to-manager communications, and security. Be aware, however, that many individuals in the computer industry do not support the adoption of SNMPv2* because it isn't a simple superset of SNMP and it doesn't support backward compatibility. For more information about SNMP, check the following Web sites and USENET newsgroup:
- University of Twente's SNMP site: http://wwwsnmp.cs.utwente.nl
- Douglas Stevenson's overview of network management: http://netman.cit.buffalo.edu/Doc/DStevenson
- LIDO Telecommunications Learning Center: http://www.lidoorg.com/networkmgt.htm
- USENET newsgroup: comp.protocols.snmp