Simple Network Management Protocol (SNMP) is a language used by managers and management tools to perform the communication necessary for carrying out network management activities. SNMP uses the Management Information Base (MIB) as a data store to determine each type of devices are being used to send and receive information. The specific language used to create the MIB is called Structured Management Information (SMI). So, while the language of SMI was created to make data stores in MIB to send and receive data through the SNMP protocol, there can be many issues that arise creating the need for SNMPv2 and SNMPv3 later on. Scalability was a major issue addressed in SNMPv2 along with security issues and limits of the SMIv1 language.
SNMPv1 is notoriously inefficient at retrieving large amounts of management information, knowing no concept of scoping or bulk requests. It offers only minimal security, making it vulnerable to security threats, which effectively prevents SNMPv1 from being used to change the configuration of managed devices-in many cases, the risk of compromising the integrity of the network is simply too great (Clemm, 2007). The creation and deletion of logical entities wasn't expressive enough which meant it may need to be updated as well. However, SNMP was created to be simple, not complex, so SNMPv1 should still be available for those that want to keep things simple, while SNMPv2 can be available for those that want more complex configurations that include security and sending/receiving bulk requests.
The most important aspect of SNMPv2 as a protocol was the introduction of two new management operations in addition to those already known from SNMPv1: a get-bulk request and an inform request (Clemm, 2007). SNMPv1 uses “get-next” to retrieve the next object ID, but SNMPv2 can use a get-bulk request to send/receive a group of messages with only one request. SNMPv2 brings improvements over SNMPv1 beyond those two operations. It redefines PDU formats so that the same PDU structure can be used for any SNMP operation, including requests and responses. This facilitates the processing of SNMP messages. To take into account that get-response is in no way restricted to responses to get requests, SNMPv2 also renames the get-response operation simply as response. In addition to the protocol improvements, with SNMPv2, SMIv2 was introduced as a MIB specification language (Clemm, 2007).
The addition of security and administration capabilities represents the major enhancement in SNMPv3 over SNMPv2 (Kurose & Ross, 2013). To make things confusing, SMI updated to SMIv2 in order to support the new version of SNMPv3. Due to the security issues of the simple protocol, encryption, authentication, protection against playback, and access control are all important updates to version 3. SNMP PDUs can be encrypted using the Data Encryption Standard (DES) in Cipher Block Chaining (CBC) mode (Kurose & Ross, 2013). Access control is monitored and authentication because the MAC requires the sender and receiver to share a common secret key. In versions 1 and 2, information contained in SNMP traffic (including community strings) can be captured using a network analyzer (Brooks, 2002).
Maybe security wasn't as prevalent in 1988 when the first version of SNMP was created, so it's understandable that new versions were created to address security, but it's not so Simple. SMI also had issues to consider as SNMP created new versions. The language and dictionary (MIB) needed to be updated in order to use the Simple Network Management Protocol. Computers run with different operating systems, software, applications to complete the same tasks for the users. In order to have an exact replication of data there's an option for that, "to have a machine-independent, OS-independent, language-independent method for describing integers and other data types (that is, a definition language) and rules that state the manner in which each of the data types is to be transferred over the network (Kurose & Ross, 2013)." The operating system adheres ASN.1 which allows SNMP to read from any OS and write to any OS through the SMI language and MIB dictionary.
SNMP is widely used through email because the bits and bytes of an email are created using different software and applications. SNMP has a simple and fast way of sending a message from a Microsoft Outlook application to a cell phone's Gmail application with nearly flawless replication. The initial idea of SNMP was clearly to keep things simple, but when computer frameworks are too simple, they can be easily hacked. SNMPv2 and SNMPv3 addressed those areas of security, and in another 20-30 years will probably address more concerns in security. Historically this has been a difficult problem for system designers. By providing a language for the specification of communications protocols, ASN.1 provides a solution to this sort of problem.
Brooks, Gregory (2002). Use offense to inform defense. Find flaws before the bad guys do. Retrieved from:
Clemm, A. (2007). Network management fundamentals. Indianapolis, IN: Cisco Press.
Kurose, J. F., & Ross, K. W. (2013). Computer networking: A top-down approach (6th ed.). Boston, MA: Pearson.