Está en la página 1de 27

 

Funciones de Presentación y
 ASN.1

Álvaro Rojas-Flores Pereña


Juan Antonio Águila Luque

Comunicación de Datos
Curso 2012/13
 

Modelo OSI. Presentación


 Nivel de Presentación
Presentación
 

Representación de datos
• Objetivos fundamentales del nivel de Presentación:
- Proporcionar una interfaz para ejecutar las primitivas del
inicio de sesión.
- Proveer y controlar una notación para especificar estructuras
de datos complejas.
- Servicios adicionales que afectan al transporte de la
información, como seguridad y compresión.

 
 

PARTE 1
FUNCIONES DE PRESENTACIÓN
 

Funciones de la capa de
Presentación

• Formateo de datos
• Cifrado de datos
• Compresión de datos
 

Formateo de datos
• Para comprender el funcionamiento del formateo de datos, existen
dos sistemas diferentes: EBCDIC y ASCII.
• Ambos sistemas representan los caracteres en la pantalla.
• La capa de presentación actúa como traductor entre EBCDIC y
ASCII.
• Los archivos de texto ASCII contienen datos de caracteres sencillos
sin comandos de formato (negrita, cursiva…). Ejemplo de
aplicación: El bloc de notas.
• El código EBCDIC es similar al ASCII por no tener ningún formato
sofisticado. Pero EBCDIC se utiliza en sistemas mainframe (grandes
ordenadores), y ASCII se utiliza en los PC’s.
• Unicode es una ampliación de ASCII muy utilizada actualmente.
 

Formateo de datos

Los estándares
•  presentación dede
laslaimágenes
capa 6 también
gráficasdeterminan la JPEG…).
(GIF, TIFF,
• Otros estándares regulan la presentación de sonido y vídeos
(MIDI, MPEG, QuickTime)
 

Cifrado de datos
• La capa 6 también se encarga del cifrado de datos, que evita
accesos no autorizados a cierta información en el host, y hace
inentendibles la información transmitida por la red (Por 
ejemplo, los datos de las tarjetas de crédito)
• El texto que el emisor debe transmitir de forma segura se
llama texto plano P. El emisor lo cifra (texto cifrado C) y el
receptor descifra C para obtener P.
• Se utiliza una función Ek(.) de encriptado y una función Dk(.)
de desencriptado.
 

Cifrado de datos
• Deben existir el mayor número posible de funciones Ek(.),
 para “despistar” a una persona no autorizada.
• Las diferentes funciones corresponden a diferentes códigos o
 parámetros del código usado por el cifrador.
• Cada código se identifica por una clave k que especifica el
algoritmo de codificación.
• Si las claves de cifrado y descifrado son iguales el cifrado es
simétrico.
• En caso contrario, el cifrado es asimétrico.
• El algoritmo debe estar acordado por emisor y receptor.
• Tipos de algoritmo simétrico: DES, RC5.
• Tipos de algoritmo asimétrico: RSA, Diffie-Hellman.
 

Tipos de cifrado
 

Compresión de datos
• Otra de las funciones de esta capa de presentación es la compresión
de los archivos.
• La compresión funciona mediante el uso
u so de algoritmos (fórmulas
matemáticas complejas) para reducir el tamaño de los archivos.
• El algoritmo busca patrones de bits repetidos en el archivo y
entonces los reemplaza con un token.
• Un token es un patrón de bit mucho más corto que representa el
 patrón largo.
• Una analogía sencilla puede ser el nombre Rafa (el apodo), el token,
 para referirse a alguien cuyo nombre completo sea Rafael.
• Existen dos tipos de algoritmos de compresión: con pérdida y sin
 pérdida .
 

Compresión de datos
• Algoritmos con pérdida: • Algoritmos sin pérdida:
Se utilizan para representar cierta Se utilizan para representar cierta
cantidad de información cantidad de información
utilizando una menor cantidad de ocupando un espacio menor. La
la misma. La reconstrucción reconstrucción de los datos
exacta de los datos originales es originales es posible. Ejemplos:
imposible. Ejemplos: JPEG, RAR, ZIP, 7Z.
MPEG, MP3.
 

  PARTE 2
CONVERSIÓN SINTÁCTICA

 
 ASN.1
 

Conversión Sintáctica
• Se trata de acordar una sintaxis de transferencia
común.

• La capa de presentación traduce entre la sintaxis


específica de la aplicación y la sintaxis de
transferencia.

• Se recomienda la notación sintáctica ASN.1 para la


definición de estructuras de datos
 

Conversión sintáctica  ASN.1


• ASN.1, es un lenguaje usado por SNMP para definir objetos
manipulados de manera independiente de los fabricantes.
• Es una gramática para definir Tipos de datos.
• Existen cuatro tipos posibles para un dato:
 – Universal
 – Específico del contexto
 – Aplicación
 – Privado
• Cada uno de los tipos es Primitivo o Construido
 

Conversión sintáctica  ASN.1


• El aspecto de la gramática es el mismo que el de un lenguaje
de alto nivel
• La sintaxis de transferencia se define especificando cómo se
codifican los distintos tipos de datos.
• La codificación empieza con un tag  que  especifica el tipo de
datos. Cada tipo tiene su propia regla de codificación.
• Para decodificar este dato, marcado con tag, la capa de
 presentación destino examina el tag 
tag ee invoca al procedimiento
de decodificación que corresponde al tipo de dato indicado.
 

 ASN.1 en SNMP
SNMP
• Existen distintos tipos en SNMP
 – Tipos estándares (p.e. INTEGER)
(p.e. INTEGER)

 – Tipos definidos por el usuario (p.e. Status)


 – Identificadores (p.e. count)
 – Los espacios en blanco y tabuladores no importan.
 – Comentarios con “-”.
 – No se puede usar en SNMP los tipos BOOLEAN
ni REAL.
 

 ASN.1 en SNMP
SNMP
• Datos primitivos ASN.1 permitidos en SNMP
 

 ASN.1 en SNMP
SNMP
• Ejemplos:
Def. de variable: count INTEGER ::= 100
Def. de enumerados: Status ::=
INTEGER{up(1),down(2),unknown (3)}
Def. de subrangos: PacketSize ::= INTEGER(0..1023)
Def. de objetos: {iso identified-organization(3)

dod(6) internet(1) ...}


 

 ASN.1 en SNMP
SNMP
• Se pueden construir tipos nuevos a partir de los
 básicos usando:
 – SEQUENCE: Secuencia ordenada de tipos.
 – SEQUENCE OF: Vectores del mismo tipo ordenados de
una dimensión.
 – CHOICE: Crea una unión a través de una lista de tipos.
 – Tipos referidos: Nuevos tipos a través de otros existentes.
Se pueden
contexto especificar categorías: universal, aplicación,
y privado.
 – Macros: Modelos genéricos que definen prototipos para
tipos de datos complejos.
 

 ASN.1 Sintaxis de
Transferencia
• Define la forma de codificar y decodificar sin ambigüedad los
valores expresados con ASN.1 para su transmisión y recuperación
 por la red.

• La sintaxis de transferencia se especifica mediante reglas básicas de


codificación.
• Tras usar las reglas, muchas veces recurrentes, llegamos a tener un
flujo de objetos primitivos organizados.

• Cada valor transmitido se codifica usando 4 campos:


- 1. Identificador.
- 2. Longitud del campo de datos.
- 3. Campo de datos.
- 4. Indicador de fin de contenido.
 

 ASN.1 Sintaxis de
Transferencia
• El identificador es uno o más octetos con tres campos:
 – Etiqueta (2 bits): 00-Universal, 01-Aplicación, 10-Específico, 11-
Privado.
 – Tipo (1 bit): 0-Primitivo, 1-Construido.
 – Valor etiqueta (5 bits): Tipo de valor si está en el rango 0..30. Si es 31
o mayor entonces la etiqueta será 11111 y habrá uno
un o o más octetos
detrás del primero. En caso de existir se usan los últimos 7 bits, el
 primer bit de cada octeto vale 0 excepto
excepto en el último, que vale 1.

La longitud
• octetos del campo de datos es un octeto que contiene el número de
de datos.
• El campo de datos contiene los valores de los objetos que se quieren
transmitir.
 

 ASN.1 Sintaxis de
Transferencia
• Las cadenas de octetos utilizan big endian (de izquierda a
derecha, MSB a la izquierda)
• El valor nulo tiene el campo de longitud 0. No transmite
ningún valor numérico.
• Ejemplos:
 – Entero 49: [ID. 00-0-00010] [LONG. 00000001] [VAL.
[ VAL. 00110001]
 – Cadena de octetos “xy”: [ID. 00-0-00100] [LONG. 00000010] [VAL.
01111000 01111001]
 – Valor Nulo: [ID. 00-0-00101] [LONG. 00000000]
 

 ASN.1. Ejemplo
FooProtocol DEFINITIONS ::= Mensaje .
BEGIN
FooQuestion ::= SEQUENCE
myQuestion FooQuestion ::= {
{
trackingNumber 5,
trackingNumber
INTEGER, question “Anybody there?”
}
question IA5String
}
END Este código lo vamos a
codificar en DER 
(Distinguished Encoding
Rules)
=> Siguiente Transparencia.
 

 ASN.1. Ejemplo
Traducción a DER 

30 — etiqueta de tipo indicando SEQUENCE


13 — longitud en octetos de los valores que siguen
02 — type tag indicating INTEGER 
01 — longitud en octetos de los valores que siguen
05 — value (5)
16 — etiqueta de tipo indicando IA5String
0e — longitud en octetos de los valores que siguen
41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f 
 — value (“Anybody There?")
There?")
 

 ASN.1. Ejemplo.
Ejemplo.
• 30 13 02 01 05 16 0e 41 6e 79 62 6f 64 79
20 74 68 65 72 65 3f

Esta cadena de 21 octetos sería el conjunto de instrucciones


del código anterior, traducido a DER (Distinguished Encoding
Rules)
 

Bibliografía
• Comunicación de Datos Tema 8, Enrique Alba Torres,
Universidad de Málaga
• http://www.adrformacion.com/cursos/wserver082/leccion
3/tutorial7.html
• http://msdn.microsoft.com/es-
es/library/windows/desktop/bb648643(v=vs.85).aspx
• http://en.wikipedia
http://en.wikipedia.org/wiki/Abstract_Syn
.org/wiki/Abstract_Syntax_Notation_O
tax_Notation_O
ne

También podría gustarte