ASN.1 (Abstract Syntax Notation One) is een standaard manier om een bericht (een eenheid van toepassingsgegevens) te beschrijven dat in een netwerk kan worden verzonden of ontvangen. ASN.1 is onderverdeeld in twee delen: (1) de regels van de syntaxis voor het beschrijven van de inhoud van een bericht in termen van gegevenstype en inhoudsvolgorde of -structuur en (2) hoe je elk gegevensitem in een bericht daadwerkelijk codeert. ASN.1 is gedefinieerd in twee ISO-normen voor toepassingen die zijn bedoeld voor het Open Systems Interconnection (OSI)-raamwerk:
- ISO 8824/ITU X.208 specificeert de syntaxis (bijvoorbeeld welk gegevensitem als eerste in het bericht komt en wat het gegevenstype ervan is)
- ISO 8825/ITU X.209 specificeert de basisregels voor het coderen van ASN.1 (bijvoorbeeld hoe de lengte van een data-item moet worden aangegeven)
Hier volgt een voorbeeld van een berichtdefinitie gespecificeerd met ASN.1 notatie:
Rapport ::= SEQUENCE { author OCTET STRING, title OCTET STRING, body OCTET STRING, biblio Bibliography }
In dit zeer eenvoudige voorbeeld is "Report" de naam van dit type bericht. SEQUENCE geeft aan dat het bericht een opeenvolging van gegevenselementen is. De eerste vier gegevenselementen hebben het gegevenstype OCTET STRING, wat betekent dat elk een string van achtbits bytes is (de term OCTET werd gebruikt in plaats van BYTE omdat niet kan worden aangenomen dat alle computers acht bits in een byte hebben). Het gegevensitem bibliografie is een andere definitie met de naam "Bibliografie" die binnen deze definitie wordt gebruikt. Het zou er als volgt uit kunnen zien:
Bibliografie ::= SEQUENCE { author OCTET STRING title OCTET STRING publisher OCTET STRING year OCTET STRING }
Andere datatypes die kunnen worden gespecificeerd zijn onder andere: INTEGER, BOOLEAN, REAL, en BIT STRING. Een ENUMERATED datatype is een datatype dat een van meerdere mogelijke waarden heeft. Gegevenselementen kunnen worden gespecificeerd als OPTIONEEL (niet noodzakelijk aanwezig).