|
In telecommunications and computer networking, Abstract Syntax Notation One (ASN.1) is a standard and flexible notation that describes data structures for representing, encoding, transmitting, and decoding data. It provides a set of formal rules for describing the structure of objects that are independent of machine-specific encoding techniques and is a precise, formal notation that removes ambiguities. Copy of the original phone of Graham Bell at the Musée des Arts et Métiers in Paris Telecommunication is the transmission of signals over a distance for the purpose of communication. ...
This article or section is in need of attention from an expert on the subject. ...
Standardization, in the context related to technologies and industries, is the process of establishing a technical standard among competing entities in a market, where this will bring benefits without hurting competition. ...
In general, data consist of propositions that reflect reality. ...
ASN.1 is a joint ISO and ITU-T standard, originally defined in 1984 as part of CCITT X.409:1984. ASN.1 moved to its own standard, X.208, in 1988 due to wide applicability. The substantially revised 1995 version is covered by the X.680 series. The International Organization for Standardization (ISO) is an international standard-setting body composed of representatives from national standards bodies. ...
The ITU Telecommunication Standardization Sector (ITU-T) coordinates standards for telecommunications on behalf of the International Telecommunication Union (ITU) and is based in Geneva, Switzerland. ...
1984 (MCMLXXXIV) was a leap year starting on Sunday of the Gregorian calendar. ...
1988 (MCMLXXXVIII) was a leap year starting on Friday of the Gregorian calendar. ...
1995 (MCMXCV) was a common year starting on Sunday of the Gregorian calendar. ...
ASN.1 in transfer
ASN.1 defines the abstract syntax of information but does not restrict the way the information is encoded. Various ASN.1 encoding rules provide the transfer syntax (a concrete representation) of the data values whose abstract syntax is described in ASN.1. Abstract syntax is a representation of data (typically either a message passing over a communications link or a computer program being compiled) which is independent of machine-oriented structures and encodings and also of the physical representation of the data (called concrete syntax in the case of compilation or transfer...
The standard ASN.1 encoding rules include: ASN.1 together with specific ASN.1 encoding rules facilitates the exchange of structured data especially between application programs over networks by describing data structures in a way that is independent of machine architecture and implementation language. Basic encoding rules (BER) are ASN.1 encoding rules for producing self-identifying and self-delimiting transfer syntax for data structures described in ASN.1 notations. ...
Canonical encoding rules (CER) are a restricted variant of basic encoding rules for producing unequivocal transfer syntax for data structures described by ASN.1. ...
DER or Distinguished Encoding Rules is a method for encoding a data object, such as an X.509 certificate, to be digitally signed or to have its signature verified. ...
XML Encoding Rules (XER) are a set of ASN.1 encoding rules for producing an XML-based verbose textual transfer syntax for data structures described in ASN.1. ...
Packed encoding rules (PER) are ASN.1 encoding rules for producing a compact transfer syntax for data structures described in ASN.1, defined in 1994. ...
Generic String Encoding Rules (GSER) are a set of ASN.1 encoding rules for producing a verbose, human-readable textual transfer syntax for data structures described in ASN.1. ...
Application layer protocols such as X.400 electronic mail, X.500 and LDAP directory services, H.323 (VoIP) and SNMP use ASN.1 to describe the PDUs they exchange. It is also extensively used in the Access and Non-Access Strata of UMTS. There are many other application domains of ASN.1 [1]. The application layer is the seventh level of the seven-layer OSI model. ...
In computing, X.400 is an OSI standard developed by the ITU-T (at the time the CCITT) in cooperation with ISO for the exchange of messages, both between people and between software applications. ...
Electronic mail, abbreviated e-mail or email, is a method of composing, sending, and receiving messages over electronic communication systems. ...
X.500 is the set of ITU-T computer networking standards covering electronic directory services such as white pages, Knowbot and whois. ...
In computer networking, the Lightweight Directory Access Protocol, or LDAP (ell-dap), is a networking protocol for querying and modifying directory services running over TCP/IP. A directory is a set of information with similar attributes organized in a logical and hierarchical manner. ...
A directory service is a software application â or a set of applications â that stores and organizes information about a computer networks users and network resources, and that allows network administrators to manage users access to the resources. ...
H.323 is an umbrella recommendation from the ITU-T, that defines the protocols to provide audio-visual communication sessions on any packet network. ...
IP Telephony, also called Internet telephony, is the technology that makes it possible to have a telephone conversation over the Internet or a dedicated Internet Protocol (IP) network instead of dedicated voice transmission lines. ...
The simple network management protocol (SNMP) forms part of the internet protocol suite as defined by the Internet Engineering Task Force (IETF). ...
In telecommunications, the term protocol data unit (PDU) has the following meanings: Information that is delivered as a unit among peer entities of a network and that may contain control information, address information, or data. ...
Universal Mobile Telecommunications System (UMTS) is one of the third-generation (3G) mobile phone technologies. ...
Example Data structures of FooProtocol defined using the ASN.1 notation: FooProtocol DEFINITIONS ::= BEGIN FooQuestion ::= SEQUENCE { trackingNumber INTEGER, question VisibleString } FooAnswer ::= SEQUENCE { questionNumber INTEGER, answer BOOLEAN } END This could be a specification published by creators of Foo protocol. ASN.1 does not define conversation flows, this is up to the textual description of the protocol. Let's assume you have a message, which complies Foo protocol and which you would like to send to the receiving party. This particular message (PDU) is: In telecommunications, the term protocol data unit (PDU) has the following meanings: Information that is delivered as a unit among peer entities of a network and that may contain control information, address information, or data. ...
myQuestion FooQuestion ::= { trackingNumber 5, question "Anybody there?" } Now, to actually send above message through the network we need to encode it to a string of bits. ASN.1 defines various algorithms to accomplish that task, called Encoding rules. There are plenty of them; one of the simplest is Distinguished Encoding Rules (DER). Foo protocol specification should have explicitly named one set of encoding rules to use. So now it is well known between users of Foo protocol to use DER.
Example encoded in DER Above particular data structure encoded in the DER format: 30 -- tag indicating SEQUENCE 13 -- length in octets 02 -- tag indicating INTEGER 01 -- length in octets 05 -- value 1a -- tag indicating VisibleString 0e -- length in octets 41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f -- value ("Anybody there?" in ASCII) (Note DER uses a pattern of tag-length-value triplets) Within data communication protocols optional information may be encoded as a type-length-value or TLV element inside of the protocol. ...
So what you actually get is the string of 21 octets: 30 13 02 01 05 1a 0e 41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f This is the end of ASN.1 and DER scope. You may transmit this encoded message to your party by any means (it is out of concern now if you use TCP or other protocol for transfer). Your party will be able to decode octets back using DER. The Transmission Control Protocol (TCP) is a virtual circuit protocol that is one of the core protocols of the Internet protocol suite, often simply referred to as TCP/IP. Using TCP, applications on networked hosts can create connections to one another, over which they can exchange streams of data. ...
Example encoded in XER Alternatively, you may encode the same ASN.1 data structure with XER (XML Encoding Rules) to achieve greater human readability "over the wire". It would then look like those 108 octets: <FooQuestion> <trackingNumber>5</trackingNumber> <question>Anybody there?</question> </FooQuestion> Example encoded in PER (unaligned) Alternatively, if Packed Encoding Rules are employed, the following 122 bits (less than 16 octets) will be produced: 01 05 0e 83 bb ce 2d f9 3c a0 e9 a3 2f 2c af c0 (Compare that with 108 octets of XER encoding above) (And then try to guess the content looking only on PER result)
ASN.1 versus other data structure definition schemes As commonly used for defining messages for communication protocols, ASN.1, with its associated encoding rules, results in a binary encoding. In networking, a communications protocol or network protocol is the specification of a set of rules for a particular type of communication. ...
Other communication protocols, such as Internet protocols HTTP and SMTP, define messages using text tags and values, sometimes based on the Augmented Backus-Naur form (ABNF) notation. The definition also defines the encoding, which is in text. HTTP (for HyperText Transfer Protocol) is the primary method used to convey information on the World Wide Web. ...
Simple Mail Transfer Protocol (SMTP) is the de facto standard for email transmission across the Internet. ...
The Augmented Backus-Naur form (ABNF) extends the Backus-Naur form. ...
There has been much debate over the two approaches, and both have their merits; the ASN.1 approach is believed to be more efficient, and with Packed Encoding Rules, certainly provides a more compact encoding. The textual approach is claimed to be easier to implement (through creation and parsing of text strings) and easier to debug, as one can simply read an encoded message. In the case of the Megaco protocol, consensus between the two points of view was not reached and so two encodings, one based on ASN.1 and one on ABNF, were defined. Packed encoding rules (PER) are ASN.1 encoding rules for producing a compact transfer syntax for data structures described in ASN.1, defined in 1994. ...
Megaco (a contraction of Media Gateway Controller) is a signalling protocol, used between a Media Gateway and a Media Gateway Controller (also known as a Call Agent or a Soft Switch) in a VoIP network. ...
The ASN.1 XML Encoding Rules (XER) attempts to bridge the gap by providing a textual encoding of data structures defined using ASN.1 notation. Generic String Encoding Rules were also defined for the sole purpose of presenting and inputting data to/from a user. XML Encoding Rules (XER) are a set of ASN.1 encoding rules for producing an XML-based verbose textual transfer syntax for data structures described in ASN.1. ...
Generic String Encoding Rules (GSER) are a set of ASN.1 encoding rules for producing a verbose, human-readable textual transfer syntax for data structures described in ASN.1. ...
Using ASN.1 in practice One may use an ASN compiler which takes as input an ASN.1 specification and generates computer code (for example in the C programming language) for an equivalent representation of the data structures. This computer code, together with supplied run-time libraries, can then convert encoded data structures to and from the computer language representation. Alternatively, one can manually write encoding and decoding routines.
Standards Standards describing the ASN.1 notation (free download from the ITU-T website): - ITU-T Rec. X.680 | ISO/IEC 8824-1
- ITU-T Rec. X.681 | ISO/IEC 8824-2
- ITU-T Rec. X.682 | ISO/IEC 8824-3
- ITU-T Rec. X.683 | ISO/IEC 8824-4
Standards describing the ASN.1 encoding rules (free download from the ITU-T website): - ITU-T Rec. X.690 | ISO/IEC 8825-1 (BER, CER and DER)
- ITU-T Rec. X.691 | ISO/IEC 8825-2 (PER)
- ITU-T Rec. X.693 | ISO/IEC 8825-4 (XER)
- ITU-T Rec. X.694 | ISO/IEC 8825-5 (XSD mapping)
- RFC 3641 (GSER)
See also TTCN is a programming language dedicated to testing of communication protocols and web services. ...
Extensible Binary Meta Language, or EBML, is a generalized file format for (theoretically) any kind of data, aiming to be a binary equivalent to XML. It was originally developed for the Matroska audio/video container format. ...
References This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL. Federal Standard 1037C entitled Telecommunications: Glossary of Telecommunication Terms is a U.S. Federal Standard, issued by the General Services Administration pursuant to the Federal Property and Administrative Services Act of 1949, as amended. ...
MIL-STD-188 is a series of U.S. military standards relating to telecommunications. ...
The Free On-line Dictionary of Computing (FOLDOC) is an online, searchable encyclopedic dictionary of computing subjects. ...
GNU logo (similar in appearance to a gnu) The GNU Free Documentation License (GNU FDL or simply GFDL) is a copyleft license for free content, designed by the Free Software Foundation (FSF) for the GNU project. ...
External links |