How ASN.1 Builds New Terms Out Of Existing Terms

How ASN.1 builds new terms out of existing terms

ASN.1 defines each term as a sequence of components, some of which may be sequences themselves. To give a simplified example, here's how you might describe a letter in ASN.1:

Letter ::= SEQUENCE {
opening OCTET STRING,
body OCTET STRING,
closing OCTET STRING,
address AddressType
}

Note that while most of the elements in this sequence are defined using a primitive element (the "octet string," which is the equivalent of a byte), the address is simply defined as a text string, "AddressType." You can do this because AddressType is defined in another sequence, like so:

AddressType ::= SEQUENCE {
name OCTET STRING,
number INTEGER,
street OCTET STRING,
city OCTET STRING,
state OCTET STRING,
zipCode INTEGER
}

For a computer parsing the sequence "Letter," AddressType will be read as an instruction to insert the octet string and integer structures listed in the sequence that defines AddressType.

This is why --IMPORT blocks in MIBs are so important. By importing other MIBs, we are able to avoid reinventing the wheel every time a new MIB is created. Lots of common elements, such as OCTET STRING, are defined in RFC MIBs, which are open for anyone to download and build off of just as in the example above. This enables faster development and greater ease of unification around common practices and adopting standards.

Need a Quote?

Get it by: 4:15 PM Monday (tomorrow)

Now: 12:12 AM
Next Step:
Send Us Your Quote Request
8:00 AM Monday
We'll Start Work on Your Detailed Quote
4:15 PM Monday
Get Your Quote (Email PDF)

It's 12:12 AM on Saturday at our Fresno, CA, USA headquarters. We'll start work on your quote first thing on Monday.

Get a Quote