SNMP stands for Simple Network Management Protocol.
It was created in 1988. The purpose of its creation was to manage a growing number of network elements in a computer network. Slowly, this protocol started becoming popular and it forms the basis of network management today.
This article is the first part on our ongoing series on SNMP.
Through snmp one can retrieve information about network devices like routers, printers, hubs or even normal computers. The information that can be retrieved through snmp is endless. Some examples of the type of information that can be retrieved through snmp are :
- System up time
- CPU usage level
- Disk usage level
- Network settings etc.
Not only information can be retrieved but also these network devices can be configured with new values through snmp. Despite being simple in its design and approach, its the sheer power of this protocol that makes its popular network management protocol today.
SNMP system design
A computer network system that uses SNMP for network management consists of the three fundamental components :
- The SNMP manager : It is a software that usually runs on the machine of network administrator or any human manager managing the computer network.
- The SNMP agent : It is a software that usually runs on the network node that is to be monitored. This node could be a printer, router etc.
- The SNMP MIB : MIB stands for Management information base. This component makes sure that the data exchange between the manager and the agent remains structured.
So we can easily say that the SNMP manager acts as an interface between human network manager and the network node being managed. Similarly, the SNMP agent acts as an interface between the SNMP manager and the network node being monitored.
The SNMP MIB
The definition of SNMP MIB can be a bit cryptic to newbies. So lets understand the concept of SNMP MIBs through a small example here.
Suppose a mobile company server sends a poll question to all the company’s subscribers through SMS. Being that company’s subscriber, you get that message on your phone and you reply to it. Simple enough. Now, assume a situation where in a next poll the same company sends MMS this time. But, this time your phone is not able to comprehend that SMS due to some of its technology limitations (or any other problem). So, in this case you won’t be able to receive and hence reply to the MMS.
So we see that the problem above happened because of lack of some MMS capabilities on your phone. So, in a nutshell your phone was not able to comprehend the incoming message successfully.
One could assume that same is the case with SNMP manager and an SNMP agent. The network protocol used between them is of-course SNMP but there has to be a protocol for composing and comprehending the information being queried. The information being queried could be anything like the disk usage of the network node that has agent running on it. So the crux is that there should be a standard structure in which the the query should be formed by the SNMP manager and the query should be understood by the SNMP agent.
The very basic component of the structure used in case of SNMP is an object. Every information that can be queried through SNMP is looked in terms of an object. For example the a system’s up time is an object known as ‘sysUpTime’. Every object is has an associated ID known as Object ID or OID which is unique for every object. A group of objects form a MIB.
For example, if you take a look at the following image :
You will see that the whole information system in SNMP is in a form of tree where individual information nodes are objects having unique OIDs. For example the unique OID for the object sysUpTime is .22.214.171.124.126.96.36.199.0 . Looking at the figure above, you can easily deduce this OID. The ‘0’ at the last of OID signifies that this object is a scalar and not a table.
There is also a textual description of the numeric OID. For example, the textual description of sysUpTime OID (presented above) is iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.
SNMP communication between manager and agent takes place in form of messages. Following are the basic messages used for communication :
- SNMP GET
- SNMP GET-NEXT
- SNMP GET-RESPONSE
- SNMP SET
- SNMP TRAP
The messages GET and GET-NEXT are used to fetch the value of a particular MIB object. The message GET-RESPONSE is used mostly by the agent to send the response to a GET or GET-NEXT message. The message SET is used by the manager to set the new value of a particular MIB object at the agent. The message TRAP is used by the agent to send information about some alarming values for some object to the manager so that appropriate action could be taken by the manager.
SNMP uses UDP
At the transport layer, the protocol used for SNMP message transportation is UDP. This is because UDP outperforms TCP in lossy networks where congestion is usually very high. One thing to remember is to fine tune the time-outs of UDP to fetch the best performance in lossy networks.
Also, the implementation of SNMP is kept simple. Simple as in simple network management protocol. Using TCP makes things far more complex and should be avoided in network management until and unless absolutely required.
Comments on this entry are closed.
Nice. Expecting next chapter. KUTGW.
Great article. Thanks.
Do you have something that will work on two linux systems or windows systems that I can see it operate? What needs to be installed, configured, and running to see it operate.
Look out for next article in this series..
Very useful and great article.
Thanks a lot..
very clear and instructive.
Well written article and made perfect sense….thank you so much!!
Simply, a excellent introduction to snmp management protocol!
Some examples could be util to understand the snmp functionality, snmpwalk, snmpget, etc, to transform your great article in a perfect article 🙂
it is very simple and good to understand
Its written in a very simple language to understand the things and how its work. really aapreciate to you for knowledge sharing..
Nice article. Waiting for next part. Please let us know some tools to test these concepts.
Clear and instructive. Expecting the next series.
Thanks for the useful article…
wonderful tutorial, expect rest series
Nice concise article.
What about next articles?
Very nicely explained !! Thanks
Nicely elaborated stuff…
Little bit further would be helpful
Very good article. Was very helpful, hats off to u.
Very well explained in simple words….. is there any continuation post on SNMP?
This has been killing me from the time i started working on SNMP. Are SNMP Mibs found only at Agent side or both manager and agent side?
Very nice and easy explaination.
Very Nice description for SNMP newbies specially SNMP MIB & OID.
Its very simple and good. I am newbie to snmp. I understanding the basic about what snmp is.
Nice crystal clear article but very short and simple , Waiting for next part. !!!Thanks Dear !!!
Finally the SNMP has been decoded.. I have been struggling to understand how SNMP works.. I am keen to know how the SNMP is used to interface with EMS and NMS in bit more detail- thanks for the arcticle.. Looking froward to the next part
Good and precise article
Thank you 🙂
Great article with very good example to understand the basic concepts of SNMP…Thank you Sir !!!
Great Article. Thanks lot.
Very useful and great article.
Thanks a lot….
Very Nicely explained for beginners, Expecting more detailed information on this.
Good job, Himanshu!
In the quest of understanding SNMP I stumbled upon this link and I am glad.
The example is what i was searching for everywhere.
Thanks for the simple worded description.
Very nice and clear explanation, thanks for this
I need practical example of SNMP