One trend in computing is toward an ever more distributed computing environment, where services are increasingly disseminated across a multiplicity of nodes and where access to a network is desirable and commonplace. People depend more and more on their network to take advantage of these services. A distributed environment allows users to accomplish this on remote systems and, in the optimal case, interconnects nodes together seamlessly. One example of this is Network File System (NFS) from Sun Microsystems, which allows a node to access a remote file system as if it were a local file system.
However, as use of these distributed services increases, so does the dependency of users on the network. If one critical part goes down (for example, a file server), all nodes that rely on that service are affected.
Furthermore, in a distributed environment, there are more points of potential failure than in a single-host environment. For example, if some distributed service is not available, that lack of availability can arise for a number of reasons. It might be a local software configuration problem, a malfunctioning network link (if so, which one?), an unavailable remote node, an unavailable remote application, and so forth. It is clear that in order to troubleshoot network problems effectively, information about the various nodes in the network must be available.
In the past, when a network problem occurred, a set of disjoint tools such as ping, tcpdump, and traceroute were often used to obtain information about network nodes. These tools were generic, however. In order to obtain specific information about a device or service, a systems administrator would often have to walk to the device (or possibly log in remotely to the device) and use specialized vendor-supplied methods to configure and query the device.
Although several network management solutions may have been available, they were mostly proprietary and limited to managing only the devices produced by a specific vendor. The need became evident for an open and comprehensive network management solution that provided a uniform method of configuring and obtaining information on nodes across the network. SNMP is such a solution.