ASN.1 (Notación de sintaxis abstracta uno)

ASN.1 (Notación de sintaxis abstracta uno) es una forma estándar de describir un mensaje (una unidad de datos de aplicación) que se puede enviar o recibir en una red. ASN.1 se divide en dos partes: (1) las reglas de sintaxis para describir el contenido de un mensaje en términos de tipo de datos y secuencia o estructura del contenido y (2) cómo codifica realmente cada elemento de datos en un mensaje. ASN.1 se define en dos normas ISO para aplicaciones destinadas al marco de interconexión de sistemas abiertos (OSI):

  • ISO 8824 / ITU X.208 especifica la sintaxis (por ejemplo, qué elemento de datos aparece primero en el mensaje y cuál es su tipo de datos)
  • ISO 8825 / ITU X.209 especifica las reglas de codificación básicas para ASN.1 (por ejemplo, cómo indicar la longitud de un elemento de datos)

A continuación, se muestra un ejemplo de una definición de mensaje especificada con la notación ASN.1:

Informe :: = SECUENCIA {autor OCTET STRING, título OCTET STRING, cuerpo OCTET STRING, biblio Bibliografía}

En este ejemplo muy simple, "Informe" es el nombre de este tipo de mensaje. SECUENCIA indica que el mensaje es una secuencia de elementos de datos. Los primeros cuatro elementos de datos tienen el tipo de datos OCTET STRING, lo que significa que cada uno es una cadena de bytes de ocho bits (se usó el término OCTET en lugar de BYTE porque no se puede suponer que todas las computadoras tendrán ocho bits en un byte) . El ítem de datos de bibliografía es otra definición denominada "Bibliografía" que se utiliza dentro de este. Podría verse así:

Bibliografía :: = SEQUENCE {autor OCTET STRING título OCTET STRING editor OCTET STRING año OCTET STRING}

Otros tipos de datos que se pueden especificar incluyen: INTEGER, BOOLEAN, REAL y BIT STRING. Un tipo de datos ENUMERADO es uno que toma uno de varios valores posibles. Los elementos de datos se pueden especificar como OPCIONALES (no necesariamente presentes).