- 论坛徽章:
- 0
|
本文转自:
http://www.alvestrand.no/objectid/
What is an object identifier?Object identifiers are, basically, strings of numbers.
They are allocated in a hierarchical manner, so that, for instance, the authority for "1.2.3" is the only one that can say what "1.2.3.4" means.
They are used in a variety of protocols.
The formal definition of OIDs comes from ITU-T recommendation X.208 (ASN.1), which is available from the
ITU
(if you have your checkbook handy).
The definition of OID is in chapter 28; the assignment of the "top of the tree" is given in appendixes B, C and D.
The encodings - how you can transfer an OID as bits on the wire - is defined in X.209.
What object identifiers exist?Millions and millions.... remember: once you have a valid OID that is yours to handle, you will automatically have the right to assign any OID that starts off with the digits in your OID.
The following is just a brief start at a tree....the intent is that you should be able to click your way through the tree until you find out what your current OID "means".
Click
here
to start walking the tree.
The Internet OID is
1.3.6.1
; this link leads directly to it.
If you know of an OID that is not listed, you may use this
entry form
to tell me about it. Input from other people (not yet vetted by me) is found
here
.
How to get an OID assignedThe original intention was that anyone should be able to get an OID if they needed one.
Some currently operating registries are:
- IANA - hands out OIDs for free under the "Private Enterprises" branch
- ANSI - hands out OIDs under the "US Organizations" branch for USD 1000
- BSI - hands out OIDs under the "UK Organizations" branch; fee policy unknown.
Several other countries are also establishing routines for handing out OIDs. Once you get one, nobody cares much where you got it from.
Where does the dot notation for object identifiers come from?The dot notation is an IETF invention.
The ITU thought it better to have a notation using spaces and braces, with optional text labels, so that 1.3.6.1 would become something like
{iso(1) org(3) dod(6) iana(1)}
{1 3 6 1}
{dod 1}
or variants thereof. The IETF folks thought this was somewhat inconvenient, and decided to use a space-free notation.
This is, among other things, spelled out in RFC 1778, section 2.15, but was in use long before that time:
Values of type objectIdentifierSyntax are encoded according to the
following BNF:
::= | '.' |
::=
::= | '.'
In the above BNF, is the syntactic representation of an
object descriptor. When encoding values of type
objectIdentifierSyntax, the first encoding option should be used in
preference to the second, which should be used in preference to the
third wherever possible. That is, in encoding object identifiers,
object descriptors (where assigned and known by the implementation)
should be used in preference to numeric oids to the greatest extent
possible. For example, in encoding the object identifier representing
an organizationName, the descriptor "organizationName" is preferable
to "ds.4.10", which is in turn preferable to the string "2.5.4.10".
This was refined in RFC 2252, 4.1. In particular, it eliminates the "ds.4.10" form.
(thanks to Kurt Zeilenga for providing the reference)
There is another OID database at
Elibel, France
, maintained by people who work more closely with the ITU and with ASN.1.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8780/showart_331733.html |
|