SNMP was developed in the mid-1980s as a protocol for managing and monitoring network devices remotely. The goal was to use SNMP to collect performance metrics for various parameters on devices such as routers and hubs and let network administrators change certain parameters without physically being at the actual device. The “simple” in SNMP is most likely derived from the fact that the target device's footprint is extremely light; there’s little overhead on the actual implementation, probably because devices at that time had limited amounts of memory. Therefore, all the overhead of definitions for monitored parameters, data types, and other relevant information is actually stored on the system doing the monitoring, not on the devices to be monitored. These parameters are stored in a file called a MIB, which is a standard way to store and represent objects that can be monitored by a network-management system. Storing the parameters in a MIB enables relatively easy deployment and rollout of new monitoring standards; doing so typically involves loading a new MIB at the main monitoring system for any new device types, updates, or other changes to monitoring standards.
SNMP is currently standardized in Internet Engineering Task Force (IETF) Request for Comments (RFC) 1157, published in April 1990, and Microsoft has included SNMP capabilities in Windows starting with Windows NT. In recent years, though, Microsoft has continually added new capabilities to Windows Management Instrumentation (WMI) while seemingly ignoring SNMP. Make no mistake, the breadth and depth of monitoring details that you can derive from WMI implementations is impressive. However, WMI—by definition—is useful only for monitoring Windows devices in your network. If you’d rather have one common interface that can provide decent monitoring capabilities for your hosts that run multiple OSs (e.g., Windows, Linux, Solaris), switches, routers, firewalls, and other network devices, SNMP is definitely worth a look.