When implementing a network component, be it software services or a hardware device, sooner or later it becomes necessary to determine how you will manage the component. Inevitably you are faced with the question of whether or not it should be remotely managed and, if so, what network protocol should be used. Early network developers had little choice but to "roll their own" API sets and implement them remotely through some proprietary protocol encapsulated in their favorite network protocol. They would then write both the instrumentation of the controlled component (the agent) and the controlling console (the manager) and deliver these modules with the component itself.
As mentioned earlier, network administrators, the component developers' customers, eventually began to demand that all these proprietary management schemes work together. To have these schemes working together would enable an administrator to manage any network device, regardless of the manufacturer, from a single management console. Several management schemes have been developed to address this need, SNMP thus far being the most widely accepted.
The advantages of using SNMP as the management protocol for your network component include:
Because SNMP provides a mechanism by which management consoles can dynamically learn about new components and new component instrumentation, consoles that were written years ago are capable of managing components developed today.