What is an OID?
An OID (Object Identifier) is the actual address of a single piece of data in SNMP - a dotted sequence of numbers like 1.3.6.1.2.1.1.1.0. Every value an SNMP agent can report has one, and it's genuinely what gets sent over the wire - the human-readable names you see in tools (sysDescr.0) are a convenience layered on top by a MIB, not something the protocol itself transmits.
Reading an OID as a tree
OIDs form a single, enormous global tree, and each number in the sequence is one step down from the root. 1.3.6.1.2.1.1.1.0 breaks down like this:
1-iso1.3-org(assigned by ISO to other organizations)1.3.6-dod(US Department of Defense, which originally funded ARPANET/early internet development)1.3.6.1-internet- essentially everything SNMP-relevant lives under here1.3.6.1.2.1-mib-2- the standard MIB-II subtree, defined by RFC 12131.3.6.1.2.1.1-system- basic system info1.3.6.1.2.1.1.1-sysDescr- the specific object: a text description of the device1.3.6.1.2.1.1.1.0- the actual instance - the trailing.0marks this as a scalar (single-value) object
Every level exists because someone registered it - either a standards body (for the common branches near the root) or an individual vendor for their own private subtree. Nothing about the numbering is arbitrary; it's all formally assigned.
Scalars vs. table entries
That trailing .0 matters. A scalar object - something with exactly one value on the whole device, like sysUpTime - always ends in .0. A column in a table works differently: the OID for the column itself (say, ifDescr at 1.3.6.1.2.1.2.2.1.2) isn't queryable on its own - you have to append an instance index identifying which row you want, like 1.3.6.1.2.1.2.2.1.2.1 for interface 1's description. See INDEX and table indexing for how that indexing actually works, including cases where the index is more than just a single number.
Symbolic root names
You'll sometimes see OIDs written with a word at the start instead of a number - iso.3.6.1.2.1.1.1.0 instead of 1.3.6.1.2.1.1.1.0. Some tools (particularly trap loggers) print OIDs this way. iso, org, dod, internet, mib-2, enterprises, and a handful of others are all just names for specific, fixed positions near the root of the tree - iso is always 1, enterprises is always 1.3.6.1.4.1, and so on.
Finding what an OID means
Given a bare numeric OID with no context, the only way to know what it represents is to check it against a MIB that defines it. That's the core function of MIB Viewer - paste in an OID and get back its name, description, data type, and where it sits in the tree, without needing to track down and load the specific MIB file yourself.