SNMP describes the Structure of network Management
Information (SMI) in network devices, and the protocols
for accessing (and possibly modifying) such information. In the
most common scenario, SNMP is used to monitor
network devices (usually, but not always, routers).
The key concept in SNMP is the Management Information
Base, or MIB. The MIB is formally
described using the Abstract Syntax Notation-1
(ASN.1) specification language, and defines all of the information
which a nettwork manager would like to measure in the network
device.
ASN.1 is used to define what the data items are. A
companion standard defines a set of Basic Encoding
Rules (BER)[1] which detail
how an ASN.1 data entity is encoded for transmission across a
network service. Note that for our purposes, ASN.1 is a
Read-Only Language -- you will not be required to
write ASN.1 specifications, but you will be expected to
understand (approximately, at least) definitions given in
ASN.1.
The use of ASN.1 illustrates an interesting aspect
of the history of the Internet. It was adopted in the 1980s when it
was widely believed that the OSI protocols would eventually replace
the TCP/IP protocol set -- that the Internet would eventually be
replaced by a global OSI-based network. ASN.1 was developed by the
OSI standards groups, and the designers of SNMP wanted their
protocol to survive the anticipated migration to OSI. In
the end, it never happened, and the use of ASN.1 is simply an
interesting historical artifact. Nevertheless, we have to deal
with it...
[1] In some ASN.1
applications (X.509 certificates in particular), a somewhat
"tightened" set of Distinguished Encoding Rules
are used, but SNMP uses the original BER, and so shall we! BTW:
ASN.1 and BER are International Standards, defined
in ISO/IEC 8824:1987 and ISO/IEC 8825:1987