Die Abstract Syntax Notation One (ASN.1) ist ein gemeinsamer Standard der ITU-T (International Telecommunication Union - Telecommunication Standardization Sector) und der ISO (International Organization for Standardization).
Der Standard dient der abstrakt Beschreibung von Datentypen , ohne auf die rechnerinterne Darstellung einzugehen. Die Notation ist im ITU-T Standard X.680ff definiert. Die zugehörigen Standards X.690ff definieren verschiedene "Encoding Rules" wie die ASN.1 Datenwerte auf Bitebene kodiert werden. Mit Hilfe von ASN.1 und einer gemeinsamen Encoding Rule können Systeme mit unterschiedlichen internen Datendarstellungen Nachrichten austauschen.
ASN.1 ist eine mögliche und verbreitete Umsetzung der Darstellungsschicht des OSI-Modells und wird von OSI-konformen Technologien wie X.500 und X.509, aber auch von Internetprotokollen wie SNMP verwendet. Breite Anwendung findet ASN.1 auch im Telekommunikationsbereich, z.B. bei den Standards GSM und UMTS.
Meist werden in ASN.1 spezifizierte Daten mit den einfach zu handhabenden Basic Encoding Rules (BER) kodiert. In Bereichen, bei denen eine platzsparende Kodierung erwünscht ist (zum Beispiel Mobilfunk), werden die Packed Encoding Rules (PER) bevorzugt. Weiterhin existieren die injektiven Canonical Encoding Rules (CER) und Distinguished Encoding Rules (DER), wobei letztere weiter verbreitet ist.
Syntax und Semantik
ASN.1 wird in einer leicht verständlichen, BNF-ähnlichen Darstellung beschrieben, z.B.:
Record ::= SEQUENCE { kopf Header, daten Data OPTIONAL } Header ::= IA5String Data ::= SET OF INTEGER
ASN.1 kennt dazu
- Elementare Typen, z.B.
- BOOLEAN
- INTEGER
- BIT STRING (binäre Zeichenfolge)
- IA5String (nach IA5-Tabelle kodierte Zeichenfolge)
- Zusammengesetzte Typen, z.B.
- SEQUENCE (geordnete Abfolge verschiedener Typen)
- SEQUENCE OF <Typ> (geordnete Abfolge gleichen Typs)
- SET (ungeordnete Abfolge verschiedener Typen)
- SET OF <Typ> (ungeordnete Abfolge gleichen Typs)
- CHOICE
- Spezielle Datentypen, z.B.
- Object Indentifier (Welweit eindeutige Kennung)
- ANY (Platzhalter für beliebige Datentypen)
- ANY DEFINED BY (Platzhalter später festzulegende Datentypen)
Standards
- X.208: ersetzt durch X.680
- X.209: ersetzt durch X.690
- X.680: Specification of Basic Notation
- X.681: Information Object Specification
- X.682: Constraint Specification
- X.683: Parameterization of ASN.1 Specifications
- X.690: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
- X.691: Specification of Packed Encoding Rules (PER)
- X.692: Specification of Encoding Control Notation (ECN)
- X.693: XML Encoding Rules
- X.694: Mapping W3C XML Schema Definitions into ASN.1