Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ASN.1 fue desarrollado como parte de la capa 6 (presentación) del modelo de referencia
OSI (esta capa define la forma en que los datos serán almacenados en los nodos).
ASN.1 es una notación que ofrece un rico conjunto de tipos de datos y contructores que
permiten definir estructuras de datos complejas a partir de tipos simples o primitivos. Al
igual que cualquier lenguaje de programación, la notación es especificada utilizando
gramática BNF.
● Componentes de Aplicación
Es la forma de cómo el usuario ve los datos a través de las aplicaciones, que no es
más que un conjunto estructurado de información. En tal sentido, el componente de
aplicación es quien debe proporcionar una representación de estos datos que se
puedan convertir en bits, que esté relacionado con la sintaxis de los datos. Asimismo,
para el componente de aplicación, la información se representa en una sintaxis
abstracta que trata con tipos de datos y los valores de esos datos para intercambiar
información entre componentes de aplicación en sistemas diferentes (heterogéneos),
de esta forma, es como los protocolos de la capa de aplicación describen sus PDU en
términos de esta sintaxis.
● Componente de Transferencia
Los datos recibidos de una aplicación se muestran como una secuencia de octetos
binario (10001110 = A, 00110101 = s), donde estos se pueden ensamblar
directamente en Unidades de Datos de Servicio (SDU) para ser transferidos entre
capas (Aplicación, Presentación) y en Unidades de Datos de Protocolo (PDU) para ser
transferidos entre entidades de una misma capa. Para el componente de trasferencia,
la sintaxis de transferencia especifica la representación de los datos que se van a
intercambiar entre los componentes de transferencia de datos. La traducción de
ambas sintaxis la abstracta y la de transferencia se realiza por medio de reglas que
especifican la representación de cada valor de los datos de cada tipo de datos.
Tipos de Datos
ASN.1 está diseñado para definir información estructurada (mensajes) de tal
forma que sea independiente de la máquina utilizada. Para hacer esto ASN.1
define los tipos de datos básicos, según si son simples (primitivos), compuestos
(construidos a partir de otros, simples o compuestos) o definidos, con una etiqueta de
nombre para identificarlos.
Tipos primitivos: son escalares, es decir, almacenan un único valor, como por ejemplo
una cadena de texto o un entero. Los tipos primitivos más importantes son:
Tipos construidos son tipos compuestos. Se usan para crear arrays y tablas. Los más
importantes son:
Tipos Definidos: Son tipos derivados de los anteriores pero con un nombre más
descriptivo. Los más importantes son:
● IpAddress sirve para almacenar una dirección IP. Son 4 bytes y se define como
"OCTET STRING (SIZE (4))".
● Counter representa un contador que únicamente puede incrementar su valor y que
cuando llega a su valor máximo, vuelve a cero. Se define como un entero sin
signo, que sólo puede tomar valores positivos y el cero.
● Gauge es como un indicador de nivel. Es un valor que puede incrementar o
decrementar. Puede llevar asociadas acciones a tomar en caso de que se superen
unos umbrales. Un ejemplo es un medidor del ancho de banda medido en un
determinado interfaz. Está definido como un entero de 32 bits.
● TimeTicks es un tipo de datos usado para medir tiempos. Indica el número de
centésimas de segundo que han transcurrido desde un determinado evento
temporal. Es un entero de 32 bits.
● Opaque define datos arbitrarios codificados como OCTET STRING.
● NetworkAddress es un CHOICE que permite seleccionar varios formatos de
direcciones. Actualmente sólo IpAddress.
Clases De Etiquetados
Los Etiquetados son empleadas generalmente para activar el sistema de recepción
para decodificar correctamente los valores de varios tipos de datos, que determina un
protocolo que se puede transmitir en cualquier momento dado. La etiqueta no tiene
notación de valor propio, su tipo de notación se compone de tres (3) elementos: una
etiqueta definida por el usuario, posiblemente seguida por una implícita ó explícita, y
por último, seguido por la notación del tipo valor que se ha marcado. Asimismo,
existen las clases de etiquetados o etiquetas corresponden a un tipo de valor definido
previamente como base para ser utilizado por las etiquetas. ASN.1 define cuatro (4)
tipos de etiquetas:
● Específica al contexto: Definidos para el contexto local en que se usan estos tipos.
● Privada: Definidos por el usuario.
Formato BER
Un formato BER detalla un formato auto-descriptivo y auto-delimitativo para codificar
las estructuras de datos ASN.1, donde cada elemento de datos está codificado por un
identificador de tipos, una descripción longitud, los elementos de datos actuales,
donde sea necesario y un marcador de fin-de-contenido. Según lo antes expuesto,
estos tipos de codificaciones son llamados comúnmente TLV (Tipo-Longitud-Valor).
Este formato permite a un equipo receptor decodificar la información ASN.1 desde una
corriente incompleta de bits, sin necesitar conocimiento
previo del tamaño, contenido, o significado semántico de los datos. Existen tres (3)
campos del formato BER, tales como: campo TYPE, longitud y valor; los cuales
se describen a continuación.
Hay dos tipos de campos Tipo; su uso depende de la magnitud del número del tag.
Cuando el número del tag está entre 0 y 30, el campo Tag contiene un solo octeto (ver
figura 4). Cuando el número del tag es 31 o superior, el campo Tipo contiene múltiples
octetos. En cualquier caso, el primer octeto contiene tres subcampos: Clase (Class), bit
P/C y numero de tag (tag number). El subcampo Clase codifica la clase de tag en uso:
Las aplicaciones SNMP utilizan las primeras tres clases: universal, application, y
context-specific. La clase universal codifica el tipo INTEGER, el tipo OCTET STRING y
así sucesivamente. La clase application codifica los tipos definidos (IpAddress,
Counter, y así sucesivamente). La clase context-specific codifica las cinco unidades de
datos de protocolo de SNMP (PDUs), GetRequest, GetResponse, y así
sucesivamente.
El subcampo P/C (bit 6) indica la forma del elemento de dato. Codificación primitiva
(Primitive encoding) (P/C = 0) quiere decir que el contenido de los octetos representan
el valor directamente. Una codificación estructurada (Constructor encoding) (P/C = 1)
significa que el contenido de los octetos codifican uno o más valores de datos
adicionales, tal como un SEQUENCE.
SNMP usa números de tag entre 0 y 30. EL número del tag aparece en el tercer
subcampo y es representado en binario. El bit 5 es el MSB del tag; el bit 1 es su LSB.
La forma definida corta indica una longitud de entre 0 y 127 octetos en el contenido del
campo; la forma definida larga indica 128 o más octetos en el contenido del campo,
aunque esto puede indicar longitudes más cortas.
La forma larga usa múltiples octetos para representar la longitud total. En esta forma,
el primer octeto del campo Longitud tiene el bit 8 = 1, seguido por un número binario
indicando el número de octetos a seguir. Este número debe estar entre 1 y 126; 127
está reservado para extensiones futuras. El bit 8 del segundo octeto es considerado el
MSB del campo Longitud, y el octeto siguiente determina el resto de la longitud. De
esta manera, la forma definida larga puede representar una longitud hasta de 21008-1
octetos. (El 1008 viene del producto entre 126 y 8: 126 octetos subsecuentes a razón
de 8 bits por octeto.
Campo Valor (Value field)
El campo Valor contiene cero o más octetos, los cuales transportan los valores de los
datos. Los ejemplos incluyen un entero, un carácter ASCII, ó un OBJECT IDENTIFIER,
tal como { 1.3.6.1.2. }.
https://leandrojhumbrial.wordpress.com/gestion-de-redes/notacion-sintactica-abstracta-uno-
asn-1-iso-8824/
https://es.wikipedia.org/wiki/ASN.1
http://www.arcesio.net/snmp/asn1.html