Object Identifier (OID)

An Object Identifier is, essentially, a series of whole numbers which are used to uniquely indentify an object. That object might be a business, a computer program, a storage location, a user, a method, or syntax, a protocol feature, a system capability, or anything else one might find necessary to uniquely identify. Naturally, being a series of whole numbers, OIDs are most useful to automated systems, rather than humans.

OIDs are used by a wide variety of computer applications and systems, including OSI applications, X.500-based directories (such as LDAP), SNMP, and communication systems (like H.323).

OIDs are logically structured and look similar to the following two alternative representations:

iso.org.dod.internet.private.enterprise.packetizer (1.3.6.1.4.1.17090)

{ iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) packetizer(17090) }

This OID uniquely identifier the organization "Packetizer" and was assigned by IANA. Each digit within the OID represents some logical relationship with the previous digit. This OID essentially says that Packetizer is an enterprise, assigned from the private number space allocated for the Internet by the U.S. Department of Defense, which is an organization whose assigned was made by ISO.

Usually, people do not dissect an OID with such care. But, it is helpful to understand, because any organization that wishes to use OIDs for computer systems and applications should assign OIDs logically.

When an entity is assigned an OID, such as 1.3.6.1.4.1.17090, new OIDs may be creating by appending digits to this "arc", as it is called. For example, 1.3.6.1.4.1.17090.1 is a new OID, as is 1.3.6.1.4.1.17090.0.0 and 1.3.6.1.4.1.17090.1.0 and 1.3.6.1.4.1.17090.1.1.

Numbers should not simply be assigned randomly, though one could legally do that. By logically structuring the definition of OIDs, they can also be useful in identifying what application or system or component or function to which an OID relates. For example, perhaps an organization might add the digit "1" to their assigned arc to represent all LDAP information and per "2" might represent all non-standard protocol features within a given protocol. So, *.1.1 would be recognized as some kind of LDAP schema.

Since OIDs may be of any length (i.e., they may contain an infinite series of digits), it is possible to structure the assignment of OIDs in any way that is logical and fitting to the purpose for which one might need an OID. Even so, OIDs should not be overly long, since computers must process these digits. The longer the series of digits, the loner it will take to process information.

Digits within the OID series are not restricted in terms of value. So, one might assign 2^8453 as an element in the OID. Such assignments are not useful in practice and many systems would not be able to accommodate such large numbers. In practice, one should try to limit numbers to values that are less than 32 or 64 bits in length.

Some systems will take advantage of the fact that an OID can be fit within 2, 4, or 8 bits when transmitted over a network, which suggests that one should also consider the operational environment of the OIDs. In short, keep OIDs as short (in terms of the number the number of digits) as possible and with values as low as possible, but not so short in length or so small in value that one loses the utility of nice structure discussed above.

The "root" of the OID shown above is "1", which refers to ISO. As of today, there are only three OID "roots" defined. They are:

Value Identifier Authority for subsequent assignments
0 itu-t ITU-T
1 iso ISO
2 joint-iso-itu-t Jointly through ISO and ITU-T

Resources: OID Repository, Packetizer OIDs, ITU-T Recommendation X.660

See Also: Open System Interconnection (OSI), Abstract Syntax Notation One (ASN.1)