You are on page 1of 19

CAMADA DE APRESENTAO DO MODELO OSI

Traduo e adaptao de textos referenciados no final deste captulo por Ademar


Felipe Fey em 19/04/2014.
1.1 INTRODUO
A Camada de Apresentao a de nmero seis do modelo OSI2 e pertence s
chamadas camadas superiores.
A sua PDU chamada de Dados ou Mensagem.1
No modelo OSI, ela atende as solicitaes de servio da camada de aplicao e
solicita servio para a camada de sesso.
1.2 Papel da Camada de Apresentao
A camada de apresentao a primeira das camadas que prov a
interoperabilidade entre mensagens trocadas entre aplicaes. As primeiras cinco
camadas prestam um servio de comunicao, transferindo um conjutno de bytes,
mas no abordam o significado (semntica) ou estrutura (sintaxe) da comunicao.
Portanto, como veremos em seguida, a camada de apresentao tem a ver com a
sintaxe e a semntica das mensagens, converso de cdigos entre mquinas e
outros servios de converso de dados para que possa ocorrer a troca de
informaes entre aplicaes finais.
Quando utilizamos em nossos aplicativos e na tela de um computador caracteres
intermitentes, vdeo reverso, formataes especiais para entrada de dados, grficos
e outros recursos, estamos exatamente atuando na camada de apresentao.
Portanto, ao executar tais tarefas, as pessoas comeam a se preocupar com o que
elas esto enviando em um nvel mais avanado do que apenas usar ou transferir
uma quantidade de zeros e uns. Esta camada lida com questes como quanto a
forma de como as sequncias so representadas - se eles usam o mtodo do Visual
Basic ("13, thisisastring") ou o mtodo C/C + + ("thisisastring \ 0"). A ideia que a
camada de aplicao deve ser capaz de apontar para os dados a serem movidos, e
a camada de apresentao ir se encarregar de transferi-los corretamente.
A camada de apresentao, conforme seu prprio nome diz, apresenta dados para a
camada de aplicao. Ela essencialmente um tradutor e fornece funes de
codificao e converso. A tcnica de transferncia de dados bem-sucedida
aquela que adapta os dados em um formato padro antes da transmisso. Os
computadores so configurados para receber esses dados genericamente
formatados e, em seguida, converter os dados de volta para o seu formato nativo
para uma leitura real (por exemplo, EBCDIC para ASCII). Ao fornecer servio de
traduo, a camada de apresentao assegura que os dados transferidos a partir da
camada de aplicao de um sistema possam ser lidos pela camada de aplicao de
outro host.

Camada de Apresentao do Modelo OSI

O papel da camada de apresentao transformar os dados no formato que a


camada de aplicao possa aceitar. O servio prestado pela camada de
apresentao o de lidar com os problemas de compatibilidade de representao
dos dados. Esta camada converte, comprime, formata e criptografa os dados a
serem enviados atravs de uma rede.
Nesse sentido, a camada de apresentao fornece independncia aos processos de
aplicao contra diferenas na representao dos dados (sintaxe), permitindo que o
usurio selecione o contexto da apresentao, para tentar atenuar as diferenas na
representao dos dados entre os hosts. Permite processos incompatveis na
camada de aplicao se comunicar por meio da camada de sesso.
A camada de apresentao responsvel pela entrega e formatao das
informaes para a camada de aplicao para processamento posterior ou exibio.
Ela libera a camada de aplicao da preocupao com as diferenas sintticas em
representao de dados nos sistemas do usurio final. Um exemplo de um servio
de apresentao seria a converso de um arquivo de texto com cdigo EBCDIC para
um arquivo com cdigo ASCII.
A camada de apresentao se preocupa com a representao dos dados
transferidos entre as aplicaes, possuindo as seguintes responsabilidades:

Traduo (Sintaxe e semntica da Informao transmitida): gerencia


informaes em formato de dados para comunicaes em rede;
Codificao de cdigos padres de Informao (ASCII, EBCDIC, Unicdigo):
para mensagens enviadas, ela converte os dados em um formato genrico
para transmisso em rede; para as mensagens recebidas, ela converte os
dados do formato de rede genrico para um formato que o aplicativo
destinatrio possa entender;
Compatibilizao das estruturas de representao de dados para a
comunicao de computadores baseados em diferentes processadores, com
diferentes representaes da informao, atravs do uso de cdigos de dados
abstratos (ASN.1);
Criptografia e descriptografia (propsitos de segurana);
Compresso e descompresso de dados (melhoria da eficincia na
transmisso dos dados).

1.3 Protocolos da Camada de Apresentao


Exemplos de protocolos de formatao genricos desta camada:
AFP, AppleTalk Filing Protocol
LPP, Lightweight Presentation Protocol
NCP, NetWare Core Protocol
NDR, Network Data Representation
XDR, eXternal Data Representation
X.25 PAD, Packet Assembler/Disassembler Protocol
Exemplos de protocolos de codificao dos dados da camada de apresentao so:

Ademar Felipe Fey. Direitos Reservados. 2014.

Camada de Apresentao do Modelo OSI

JPEG, ASCII, EBCDIC, TIFF, GIF, PICT, encryption, MPEG, MIDI


Alguns exemplos de protocolos de converso de sintaxe da camada de
apresentao:
ASN.1, protocolo de apresentao ISO.
1.4 Funes da Camada de Apresentao
Existem trs funes bsicas normalmente associadas com esta camada:
converso interna de representao de dados,
criptografia,
compresso.
Essas funes so geralmente teis: uma ou muitas podem ser usadas por
protocolos de camada de aplicao.
1.4.1 Converso interna dos dados (codificao)
Provavelmente, a tarefa mais bsica que a Camada de Apresentao do OSI
confrontada a realizar, aquela referente as preocupaes das diferenas nas
maneiras em que os dados so armazenados internamente em vrias arquiteturas
de computadores. Estranhamente, a presena de um padro de codificao, como o
ASCII no faz muito para resolver este problema de representao de dados interna.
E os problemas no se estendem apenas aos caracteres alfanumricos, mas
tambm para os dados numricos. Abaixo segue a explicao do porqu.5
Como exemplo de incompatibilidade de representao interna de dados, podemos
citar a forma como os microprocessadores da Intel e da Motorola representam seus
dados: enquanto que os processadores da Intel (famlia 8086) representam seus
bytes da direita para esquerda, ou seja, de forma invertida, os microprocessadores
da Motorola (famlia 68000) os representam da esquerda para direita.
Os PCs baseados em chips Motorola 68000 PCs compartilham muitas
caractersticas com arquiteturas dos mainframes da IBM. Entre elas esto o fato de
que esses computadores so "big endian". Em uma arquitetura big endian, o byte
mais significativo da palavra armazenado com o menor endereo de memria. Isso
significa que eles armazenam seus bytes (octetos) formalmente na memria a partir
de byte 0 dentro de uma "palavra" (geralmente 32 bits). Assim, a seqncia de
caracteres ASCII "ab" (61 62 em hexadecimal) armazenada internamente como
11000001 11000010 (byte 0, byte 1).
Produtos baseados em chips Intel so "little endian". Numa arquitetura little endian, o
byte menos significativo da palavra armazenado com o menor endereo de
memria.
Assim, a seqncia de caracteres ASCII "ab" (61 62 em hexadecimal) armazenado
internamente como 11000010 11000001 (byte1, byte 0) nessas mquinas.

Ademar Felipe Fey. Direitos Reservados. 2014.

Camada de Apresentao do Modelo OSI

Os termos little endian e big endian vm do livro As Viagens de Gulliver de Swift


onde os polticos lutam guerras sobre a qual extremidade do ovo deve ser quebrada
em primeiro lugar. Nem existe o melhor caminho; eles so apenas diferentes.
Inteiros so diferentes tambm. Alguns computadores com arquiteturas de 32 bits
armazenam o inteiro "2" na memria como uma seqncia de 32 bits. Isso ocorre
porque o local de armazenamento de memria bsico de 32 bits de comprimento
(da o nome).
Outros computadores com arquiteturas de 64 bits armazenam o inteiro na memria
como uma seqncia de 64 bits. Mais uma vez, no melhor nem pior, apenas
diferente.
Em nenhum dos casos existe um problema com a representao interna de cadeias
de caracteres e nmeros. O problema quando esses dados so enviados atravs
da rede a partir de um tipo de computador para outro. Como deve ser a string "ab" e
o nmero "2" ser representado na rede de modo que eles no cheguem como "ba"
ou um "0 " seguido de um "2" ou algo ainda pior?
Pelo exposto acima, podemos dizer que a principal tarefa desta camada codificar
dados estruturados de acordo com o formato interno do transmissor a um formato
adequado para transmisso dos mesmos e depois decodific-los de acordo com o
exigido no equipamento destino. Essa camada responsvel pela formatao de
telas e de arquivos, de modo que o produto final tenha a aparncia que o
programador deseja.
Fica claro que se os dados fossem trasmitidos diretamente haveria uma grande
confuso quando da comunicao e interpretao dos dados. Para evitar isso, em
algum lugar deve ser feita uma converso desses dados.
Essa converso poderia ser feita de duas maneiras: cada receptor decodificaria os
dados recebidos ou o transmissor e o receptor codificariam os dados para um
formato de transmisso e os decodificariam de acordo com sua representao.
A primeira soluo seria inconveniente, pois o receptor deveria ser capaz de
identificar as diferenas entre ele e todos os demais processadores com os quais vai
se comunicar para ser capaz de adaptar os dados recebidos a seu formato interno.
J para a segunda soluo teramos um algoritmo bem mais simples: o codificador e
o decodificador poderiam se basear em uma estrutura padro para transmisso e o
formato de representao interna dos dados seria irrelevante. neste ponto que a
linguagem ASN.1 mostra sua importncia, conforme veremos mais adiante neste
artigo.
1.4.2 Compresso de dados
A compresso um mtodo de representao de dados com menos bits pela
remoo de redundncias, compactando deste modo os dados. Como a compresso
tecnicamente uma questo de representao de dados, ela se encaixa na camada
de apresentao. A compresso reduz a quantidade de bytes necessrios ao

Ademar Felipe Fey. Direitos Reservados. 2014.

Camada de Apresentao do Modelo OSI

armazenamento (o espao de disco) dos dados. Ela tambm reduz a largura de


banda necessria para transmitir os dados. Os dados comprimidos devem ser
descompactado, ou expandidos antes do uso. Obviamente, os esquemas de
compresso e descompresso devem ser compatveis, e com
com softwares e hardwares
a partir de uma variedade de fornecedores que precisam interoperar, deve haver
normas definidas para tal tarefa.
1.4.3 A criptografia de dados
A criptagrafia tipicamente feita a este nvel tambm, embora possa ser feita na
camada
a de aplicao, de sesso, de transporte, ou na camada de rede; tendo cada
uma suas prprias vantagens e desvantagens.
Da mesma forma que a compresso tecnicamente uma funo de representao
de dados, e, assim, um servio da camada de apresentao, a encriptao
tecnicamente uma funo de representao de dados, e, portanto, um servio da
camada de de apresentao tambm. Criptografia o processo de disfarar os
dados. Aqueles que no conhecem o mtodo (o "truque") no podem decifr-lo;
decifr
aqueles que sabem o truque, podem faz-lo.
faz
Com isso, documentos de real importncia poderiam ser enviados por computadores
sem que fossem lidos por pessoas no autorizadas.
Quando feita uma criptografia dos dados, uma unidade de criptografia inserida
entre as duas
uas mquinas, sendo que primeiramente os dados so codificados de
forma a serem entendidos por ambas as mquinas e depois so criptografados de
forma que s as duas mquinas vo conseguir interpretar os dados.

Apresentao 5
Figura 1 Exemplo da Camada de Apresentao.
Em um exemplo prtico, duas empresas - A e B - implementam um sistema de
intercmbio eletrnico de dados (EDI) para compartilhar a compra de informaes
entre seus sistemas de computadores corporativos. Por questes de segurana e
Ademar Felipe Fey. Direitos
os Reservados. 2014.

Camada de Apresentao do Modelo OSI

privacidade, a Empresa A e a Empresa B desejam criptografar todas as mensagens


eletrnicas trocadas entre eles. A tarefa de criptografia reside na camada de
apresentao, que responsvel por todas as converses "geralmente teis". Esta
camada tambm executa a converso de cdigos e de compresso.5
Em um cenrio Internet a exigncia de criptografia muito real. Trocas EDI
freqentemente envolvem a transferncia de fundos monetrios, bem como a
entrada de um pedido. Uma srie de protocolos de criptografia foram desenvolvidos
para uso em aplicaes de Internet. Um que amplamente utilizado, especialmente
em sistemas baseados em PC, chamado de Pretty Good Privacy (PGP).
1.5 Exemplo de Protocolo Camada de Apresentao
O servio de camada de apresentao pode ser realizado pela linguagem abstrata
Abstract Syntax Notation One (ASN.1). Ela resolve o problema de formatos de dados
inconsistentes suportados em vrios computadores, especificando um formato de
dados padro. Nesse caso, a camada de apresentao presta um servio de modo
geral que usado por muitos protocolos da camada de aplicao. Embora os
servios de camada de apresentao poderiam ser oferecidos pela camada de
aplicao, eles so colocados na camada de apresentao, porque eles so gerais e
devem estar disponveis para todas as aplicaes.

Figura 2 Modelo de Protocolo da Camada de Aplicao.6


No mundo real, as PPDUs so mensagens com regras de codificao bsicas do
ASN.1 (BER), mas poderiam ser primitivas da camada de aplicao mapeadas em
primitivas da camada de sesso (Phantom PPDUs).6
Ademar Felipe Fey. Direitos Reservados. 2014.

Camada de Apresentao do Modelo OSI

1.6 Sintaxe (Linguagem) Abstrata e Sintaxe (Linguagem) de Transferncia


Na camada de Apresentao o parmetro dos dados do usurio so informaes
puras, separadas de qualquer representao. No transmissor, o protocolo da
camada de apresentao gera uma string de octetos apropriados (acordados por
negociao) para o servio de sesso levar esta informao durante a transferncia,
e decodifica em uma string de octetos recebidos para produzir as informaes puras
no receptor, para que possam ser entregues para a camada de aplicao.10
Este pode ser um conceito difcil de entender, principalmente para aqueles que
vem as camadas como uma arquitetura de implementao. evidente que um
pouco difcil de passar informaes puras divorciadas de representao em uma
interface de implementao real, e as pessoas s vezes dizem que "a Camada de
Apresentao mapeia uma representao local para uma representao de
transferncia negociada", porque isso o que alguma parte de cdigo em algum
lugar na implementao estar realmente fazendo. , no entanto, um modelo
imprprio, uma vez que implicaria que os padres da camada de aplicao
especificariam valores em alguma representao local - claramente um absurdo.
Representaes locais de informao so parte da implementao, e no tm
visibilidade no trabalho dos padres (OSI).
Em outras palavras, a sintaxe de transferncia fornece bitstrings que de forma
inequvoca (mas no necessariamente com exclusividade) representam os valores
abstratos (valores de dados de apresentao) na sintaxe abstrata com a qual ele
est associado. Onde houver mais de um bitstring na sintaxe de transferncia
associado com algum valor abstrato particular, ento uma opo da
implementao qual usar em qualquer transferncia particular. Se uma sintaxe de
transferncia tem um nico bitstring para cada valor abstrato, chamamos isso de
uma sintaxe de transferncia cannica (A importncia de sintaxes de transferncia
cannicas discutida mais tarde, mas se refere a questes de segurana.)
Falamos sobre o conjunto de valores de dados de apresentao para este protocolo
de aplicao como esta coleo de valores, e ns damos um nome a esta coleo.
Ns o chamamos de sintaxe abstrata do protocolo. Ento projetistas de protocolos
na camada de aplicao especificam a sua sintaxe abstrata (de alguma forma notao formal, Ingls comum, qualquer que seja).
Uma sintaxe abstrata, ento, uma coleo de valores de dados de apresentao
(s vezes chamada apenas de valores de dados, e s vezes chamada apenas de
valores ou valores abstratos) para ser transferida pela camada de apresentao
atravs da operao de algum protocolo especfico.
Para que a mquina do protocolo de apresentao possa converter esses valores
abstratos em bits para a camada de sesso poder transferir, necessrio ter
associado a esta sintaxe abstrata (esta coleo de valores de dados de
apresentao) um conjunto de bitstrings. Este conjunto de bitstrings chamado de
sintaxe de transferncia para esta sintaxe abstrata.

Ademar Felipe Fey. Direitos Reservados. 2014.

Camada de Apresentao do Modelo OSI

A sintaxe de transferncia (conjunto de bitstrings) para uma sintaxe abstrata tem as


seguintes propriedades:

Para cada (apresentao) valor de dados na sintaxe abstrata h uma


um ou mais
bitstrings na sintaxe de transferncia associados a esse valor.
Cada bitstring na sintaxe de transferncia distinto, e tem um valor
precisamente resumo associado a ele.

Em outras palavras, a sintaxe de transferncia fornece bitstrings que de forma


f
inequvoca (mas no necessariamente com exclusividade) representam os valores
abstratos (valores de dados de apresentao) na sintaxe abstrata com a qual ele
est associado. Onde houver mais de um bitstring na sintaxe de transferncia
associado com algum
gum valor abstrato particular, ento uma opo implementao
qual usar em qualquer transferncia particular. Se uma sintaxe de transferncia tem
um nico bitstring para cada valor abstrato, chamamos isso de uma sintaxe de
transferncia cannica. (A importncia
importncia de sintaxes de transferncia cannicas
discutida mais tarde, mas se refere a questes de segurana.)

Figura 5 Princpio da camada de Apresentao do OSI.6

Um contexto da camada de apresentao definido como uma associao entre


uma sintaxe abstrata e uma sintaxe de transferncia associada. Em outras palavras,
um conjunto de valores de dados de apresentao (aqueles na sintaxe abstrata)
para os quais a sintaxe de transferncia foi acordada, e que representa uma
instncia de uso de uma
ma sintaxe abstrata em alguma conexo da camada de
apresentao.
Para cumprir os requisitos discutidos acima, ns reconhecemos que qualquer
sintaxe abstrata dada pode ter vrias instncias de uso (mltiplos contextos de
apresentao, com o mesmo ou com diferentes
diferentes sintaxes de transferncia), e que a
unidade bsica de transferncia de dados deve ser a transmisso de um valor dos

Ademar Felipe Fey. Direitos


os Reservados. 2014.

Camada de Apresentao do Modelo OSI

dados de apresentao de algum contexto de apresentao identificado. Em


qualquer ponto no tempo em uma conexo, um nmero (potencialmente ilimitado) de
contextos de apresentao ter sido acordado para uso (definido), e os valores a
partir de qualquer um desses contextos pode ser transferido. Este conjunto de
contextos de apresentao chamado o conjunto de contexto definido (DCS).10
1.6 Introduo ao ASN.1
Ao contrrio dos nveis mais abaixos, cuja funo transferir bits de um transmissor
para um receptor, de forma confivel e eficiente, o nvel de apresentao cuida dos
significados desses bits. As mensagens no so compostas de um conjunto de bits
agrupados de forma aleatria, mais sim de informao bem estruturada, tal como
nomes de pessoas, endereos, saldos bancrios e assim por diante. No nvel de
apresentao possvel definirem-se registros contendo campos para recebimento
de informaco estruturada, e ento fazer com que o transmissor informe ao receptor
que a mensagem composta por registros em determinados formatos. Isto facilita
muito a comunicao entre mquinas com diferentes representaes internas.10
A camada de apresentao estabelece um contexto entre as entidades da camada
de aplicao, no qual as entidades de camadas mais altas podem usar diferentes
sintaxes e semnticas se o servio de apresentao fornecer um mapeamento entre
eles. Se um mapeamento est disponvel, unidades de dados de servios de
apresentao (PPDUs) so encapsuladas em unidades de dados de protocolo de
sesso, e passado para baixo na pilha.
Esta camada fornece independncia para a representao de dados (por exemplo,
criptografia), traduzindo os formatos dos aplicativos e da rede. A camada de
apresentao transforma os dados num formato que o aplicativo aceita. Esta
camada formata e criptografa os dados a serem enviados atravs de uma rede. s
vezes chamada de camada de sintaxe.9
A estrutura de apresentao original usa as regras bsicas de codificao da
Abstract Syntax Notation One (ASN.1), com capacidades, tais como a converso de
um arquivo de texto com cdigo EBCDIC para um arquivo com cdigo ASCII, ou
serializao de objetos e outras estruturas de dados de e para a linguagem XML.9
"Chamamos sintaxe concreta, a representao, em uma determinada lnguagem de
programao, das estruturas de dados a serem transferidas.
uma 'sintaxe' porque respeita as regras lexicais e gramaticais de
uma linguagem (C por exemplo); chamada concreta porque realmente
manipulada por aplicativos (implementados nesta mesma lnguagem) e que est em
conformidade com as restries das arquiteturas de mquinas ".10
A fim de se libertar da diversidade de sintaxes concretas acima mencionadas, as
estruturas de dados a serem transmitidas devero ser descritas independentemente
das linguagens de programao utilizadas. Esta descrio deve tambm respeitar as
regras lexicais e gramaticais de uma determinada lngua (ou linguagem), mas deve
manter-se independente da linguagens de programao e nunca ser diretamente

Ademar Felipe Fey. Direitos Reservados. 2014.

Camada de Apresentao do Modelo OSI

implementada em uma mquina. Por essas razes, chamamos de sintaxe abstrata


tal descrio e de Abstract Syntax Notation ou ASN a linguagem em que esta
sintaxe abstrata denotada.10
Embora independente de linguagens de programao, a notao da sintaxe abstrata
deve ser pelo menos to poderosa quanto qualquer lnguagem de formalismo de
tipos de dados, isto , uma notao recursiva que permita construir tipos de dados
complexos a partir de tipos bsicos (equivalente string, int, enum ... tipos C, por
exemplo) e tipo construtores (equivalente a struct, union ... em C). Devemos
salientar a palavra tipo de dados porque uma especicao ASN.1 apenas uma
descrio esttica dos dados; ele no pode descrever as operaes a ser aplicadas
a esses dados.
Muitas diferentes mensagens podem ser trocadas entre as aplicaes. A sintaxe
abstrata deve ento descrever de forma mais condensada todo o conjunto dessas
mensagens. Por isso, a sintaxe abstrata denotada por meio de uma gramtica que
os dados a serem transferidos devem respeitar. Nesse processo deve-se ter em
mente os dois nveis de gramticas: em primeiro lugar, a prpria gramtica da
notao da sintaxe abstrata ASN; segundo, a prpria sintaxe abstrata, a qual
tambm uma Gramtica e denotada usando a anterior. A linguagem definida por
esta segunda gramtica o conjunto de todos os valores que podem ser
transferidos.
Esta notao da sintaxe abstrata deve ser formal para evitar todas as ambigidades
quando est sendo interpretada e manipulada por ferramentas computacionais.
Traando um paralelo com a teoria da linguagem, a Notao da sintaxe abstrata
pode ser vista como uma BNF (ou Backus-Naur Form) que permite escrever
gramticas especficas, que so chamadas sintaxes abstratas num contexto de
transferncia de dados. Em poucas palavras, a ASN.1 no uma sintaxe abstrata
mas uma linguagem para descrev-las. Esta uma confuso muito comum (embora
inofensiva) feitas por usurios ASN.1
Referindo-se agora a um conceito mais geral de 'circulao de fluxos imateriais', que
apenas o componente material de uma parte de informao que est envolvida na
comunicao. No no sentido do que transportado, mas a sua representao
material que, em essncia, de natureza fsica.
Em outras palavras, a forma transmitida, mas no o contedo. s quando esta
representao chega do lado do receptor que assume seu pleno significado.
Pela mesma razo, a sintaxe abstrata denota precisamente a estrutura dos dados,
mas no diz nada sobre a semntica associada, ou seja, a interpretao destes
dados pela aplicao (assim pelo seu programador): que significado devemos
associar com um valor booleano VERDADEIRO? O que eu devo fazer se nenhum
valor for atribudo a um campo? Muitas perguntas para permanecerem sem
resposta, porque elas no so da competncia da transferncia de dados, mas so
resolvidas quando os dados so usados pela aplicao. No entanto, verifica-se que,
a partir de 1994, as classes de informaes de objetos podem formalizar fortes
ligaes semnticas que podem ser muito convenientes para os usurios.

Ademar Felipe Fey. Direitos Reservados. 2014.

10

Camada de Apresentao do Modelo OSI

A parte semntica descrita, se necessrio, por meio de observaes dentro da


sintaxe abstrata ou usando um texto explicativo associado com ele.
Parece ser vantajosa uma transferncia de dados, quando ela independente das
arquiteturas de mquinas. Tal como para os dados recebidos na forma de fluxos de
bytes ou bits, eles esto de acordo com uma sintaxe chamada sintaxe de
transferncia para que estes fluxos possam ser devidamente reconhecidos pelas
mquinas pares.
Naturalmente, esta sintaxe de transferncia depende completamente ds sintaxe
abstrata, uma vez que estabelece como os dados devem ser transmitidos de acordo
com esta sintaxe abstrata. Na verdade, a sintaxe de transferncia estrutura e ordena
os bytes (the formant) que so enviados para a outra mquina (este processo s
vezes chamado de marshalling"). Mas ao contrrio da sintaxe abstrata, uma
grandeza fsica e, por isso, deve ter em conta a ordenao dos bytes, o peso dos
bits, etc.
Sintaxes de transferncias diferentes podem ser associadas com uma nica sintaxe
abstrata. Isto particularmente interessante quando o rendimento aumenta e faz
com que a codificao mais complexa seja necessria: nesse caso, no entanto,
possvel alterar a sintaxe de transferncia, sem alterar a sintaxe abstrata.

Figura 4 Linguagem abstrata (ASN1) e linguagens concretas.10


Se agora voltar ao exemplo da figura anterior, ns terminamos com quatro sintaxes:
uma sintaxe abstrata, duas sintaxes concretas e uma sintaxe de transferncia. As
setas estabelecem as ligaes que existem entre a sintaxe abstrata e a sintaxe
concreta.

Ademar Felipe Fey. Direitos Reservados. 2014.

11

Camada de Apresentao do Modelo OSI

A partir de uma nica descrio de dados ASN.1, podemos derivar automaticamente


com muitas sintaxes concretas
concr
(ou seja, num maior nmero de linguagens de
programao) necessrias, e com muitos procedimentos implementando a sintaxe
de transferncia em codificadores (que codificam os dados em um bit ou fluxo de
bytes) e decodificadores como ns queremos.

Figura 3 Assimetria da linguagem abstrata (ASN1).


(ASN1) 10
Portanto, um compilador ASN.1 que realiza a gerao automtica para ns das
derivaes das sintaxes croncretas em abstratas, poupando,
poupando, assim, considervel
esforo e, entretanto, tornando possvel a interconexo
inter
de qualquer nmero de
mquinas).
O compilador deve ser implementado
implementad com algumas regras de codificao, as quais
descrevem as ligaes entre a sintaxe abstrata e a syntaxe de transferncia. Muitos
padres (incluindo a [ISO8822] na definio de servio
servio de apresentao, por
exemplo), por vezes, no distinguem a noo de uma sintaxe de transferncia
daquele de regras de codificao. Ns podemos igualmente usar um ou o outro, nos
prximos captulos, sempre que permanece ambgua.10
1.7 ASN.1 e BER
Esta
ta seo a transcrio do texto da Microsoft que descreve o Abstract Syntax
Notation One (ASN.1) e Basic Encoding Rules (BER), e esclarece as diferenas
entre os dois.19
Muitos profissionais de tecnologia da informao, incluindo profissionais com
bastante
nte experincia, normalmente se confundem sobre o que so ASN.1 e BER, as
diferenas entre os dois, ou mesmo sobre o porque da importncia da distino.
Essa confuso se torna compreensvel quando, mesmo as pessoas que conhecem
bem o ASN.1 e BER, usam os termos
t
de forma incorreta.19
A ASN.1 (Abstract Syntax Notation One) um padro internacional que
visa especificar de dados utilizados em protocolos de telecomunicaes.10
uma linguagem de computao que poderosa e complexa: ela foi projetada para
modelar de forma eficiente a comunicao entre sistemas heterogneos".
heterogneos" 10
Como o ASN.1
1 a linguagem dos padres, muito comum encontrar
recomendaes de padro programadas no ASN.1. Profissionais de suporte,
consultores e especialistas em tecnologia da informao so beneficiados pelo
Ademar Felipe Fey. Direitos
os Reservados. 2014.

12

Camada de Apresentao do Modelo OSI

conhecimento de ASN.1, j que isso lhes permite um aprofundamento nos padres e


a decodificao e compreenso do contedo dos dados do problema que esto
tentando solucionar. Os padres mais comuns programados no ASN.1 so aqueles
produzidos pela CCITT (International Telegraph and Telephone Consultative
Committee) e pela ITU (International Telecommunications Union). No entanto,
membros da IETF (Internet Engineering Task Force) esto usando cada vez mais o
ASN.1 para expor sutilmente suas recomendaes. O ASN.1 expe em uma pgina
o que ocuparia cinco ou seis pginas para ser programado em outro formato.19
A seguir est uma lista dos padres comumente usados que so programados no
ASN.1:
X.400 (Mensagens eletrnicas)
X.500 (Servios de diretrio)
X.200 (Comunicaes de rede)
Solicitao de comentrios (RFCs) 2251-2256 (Lightweight Directory
Access Protocol ou LDAP)
Muitos outros RFCs para mencionar
Qualquer especialista em computao ou em comunicaes de dados que realmente
deseja se destacar, precisam ter pelo menos um conhecimento bsico de ASN.1 e
BER. Como o Microsoft Windows 2000 e o Microsoft Exchange 2000 Server
implementam os padres mencionados acima de uma forma ou de outra, ter fluncia
na leitura e compreenso do ASN.1 e BER facilita a soluo dos problemas desses
dois produtos.19
1.7.1 ASN.1
Abstract Syntax Notation One (normalmente conhecido como ASN.1) uma
linguagem para definio de padres sem levar em considerao a implementao.
a linguagem de programadores padro. Quando John Smith da CalTech quer
programar uma recomendao para a padronizao dos procedimentos que um
componente segue para comunicar-se com outro componente, ele programa a
recomendao em notao ASN.1 e envia essa recomendao para um corpo
padro como o ITU. O ASN.1 facilita a comunicao entre profissionais membros do
comit, oferecendo uma linguagem comum para descrio de um padro. O ASN.1
est definido nas recomendaes ITU-T X.209 e X.690.
Por exemplo, o ASN.1 define:

O que "Tipo".
O que um "mdulo" e qual deve ser sua aparncia.
O que um INTEIRO.
O que um BOOLEANO.
O que um "tipo estruturado".
Qual o significado de determinadas palavras-chave (por exemplo,
INCIO, FIM, IMPORTAR, EXPORTAR, EXTERNO e assim por diante).
Como colocar um tipo entre "tags" para que possa ser devidamente
codificado.

Ademar Felipe Fey. Direitos Reservados. 2014.

13

Camada de Apresentao do Modelo OSI

O ASN.1 no leva em considerao nenhum padro especfico, mtodo de


codificao, linguagem de programao ou plataforma de hardware. simplesmente
uma linguagem para definio de padres. Em outras palavras, padres so
programados em ASN.1.
1.7.2 BER
BER (pronuncia-se "burr") o nome comum para as Regras de codificao bsica
do ASN.1. O BER est definido nas recomendaes ITU-T X.209 e X.690. BER um
conjunto de regras para codificao de dados do ASN.1 para um fluxo de octetos
que pode ser transmitido por um link de comunicaes. Entre outros mtodos de
codificao de dados do ASN.1 esto DER (Distinguished Encoding Rules), CER
(Canonical Encoding Rules) e PER (Packing Encoding Rules). Cada mtodo de
codificao possui sua prpria aplicao, mas o BER o mtodo de codificao
usado com mais frequncia e o mais comentado.19
O BER define:
Mtodos para codificao de valores ASN.1.
Regras para deciso de quando usar um determinado mtodo.
O formato de octetos especficos nos dados.

1.7.3 Contrastando o ASN.1 e o BER


O ASN.1 como uma linguagem de programao (por exemplo C), enquanto o BER
como um compilador para essa linguagem. Compiladores so especficos de
plataforma, enquanto muitas linguagens de programao de alto nvel no o so. A
linguagem C define as regras e idioma para a programao de um programa. Um
programa no C, mas programado em C. O programa no ser til at que seja
compilado para uma plataforma especfica (como Intel x86). Assim funciona com o
ASN.1 e o BER. O ASN.1 a linguagem para programao de um padro. Um
padro no ASN.1, mas programado em ASN.1. Os dados, gerados por um
programa compatvel com o padro, podem ser chamados erroneamente de "dados
do ASN.1." Os dados ASN.1 no so teis (ou seja, no podem ser transmitidos por
uma LAN) at que os dados ASN.1 sejam codificados em um fluxo de octetos que
pode ser facilmente decodificado no destino. Para ilustrar isso, segue um exemplo
desses conceitos derivados das recomendaes ITU-T X.209, Apndice I. Essa
uma descrio informal de um registro de dados particular:
Nome:
John P Smith
Data de nascimento: 17 de julho de 1959
(outros dados)
A descrio ASN.1 de um registro particular (o padro) pode ser:
Registro particular::= [APPLICATION 0] IMPLICIT SET {
Nome,
ttulo [0]
VisibleString,
Data de nascimento [1]
Data,
(outros tipos definidos)
}

Ademar Felipe Fey. Direitos Reservados. 2014.

14

Camada de Apresentao do Modelo OSI

Nome ::= [APPLICATION 1] IMPLICIT SEQUENCE {


Nome determinado VisibleString,
Inicial
VisibleString,
Sobrenome
VisibleString }
Essa descrio do ASN.1 demonstra qual a aparncia de um registro pessoal. Mas,
mais importante que isso, descreve como os dados do aplicativo devem ser
formatados para que se tornem dados ASN.1 antes de dar lugar codificao.
Depois disso, o aplicativo mapeia os dados pessoais em uma estrutura de registro
pessoal (formato de dados ASN.1), e aplica o BER (Basic Encoding Rules) aos
dados ASN.1. Essa a apArncia que dever ter (com exceo de que os nomes
devero ser convertidos para ASCII):
Pessoal
Registro
60

Comprimento Contedo
8185
Nome Comprimento Contedo
61
10
String_visvel Comprimento Contedo
1A
04
"John"
String_visvel Comprimento Contedo
1A
01
"P"
String_visvel Comprimento Contedo
1A
05
"Smith"
Data de nascimento Comprimento Contedo
A0
0A
Data comprimento Contedo
43
08
"19590717"

Quando tudo estiver concludo, o que realmente ser transmitido (ou, mais
especificamente, o que torna-se a parte dos dados para o pacote na prxima
camanda) :
60 81 85 61 10 1A 04 ....
.... 0A 43 08 19 59 07 17
1.8 A XML
Um exemplo de funes da camada de apresentao a representao da
estrutura, a qual normalmente normalizada neste nvel, muitas vezes utilizando a
linguagem XML. Assim como simples partes dos dados, como strings, as coisas
mais complicadas so padronizadas nesta camada.
A XML (eXtensible Markup Language, ou Linguagem de Marcao Estendida) um
subconjunto da SGML (Standard Generalized Markup Language, ou Linguagem de
Marcao Padro Generalizada) que permite que uma marcao especfica seja

Ademar Felipe Fey. Direitos Reservados. 2014.

15

Camada de Apresentao do Modelo OSI

criada para especificar idias e compartilh-las na rede. Ela tem as virtudes da


SGML e da HTML sem qualquer das limitaes bvias.3
Pontos fortes da XML

Inteligncia: a XML inteligente para qualquer nvel de complexidade. A


marcao pode ser alterada de uma marcao mais geral como "<CO>
Lassie
</CO>"
para
uma
mais
detalhista,
como
"<CO>
<VENHA_PARA_CASA>
<COLLIE>
Lassie
</COLLIE>
</VENHA_PARA_CASA> </CO>".
As idias so bem marcadas para que "<VENDO_DOIS> duplo
</VENDO_DOIS>" e "<MAIS_LICOR> duplo</MAIS_LICOR>" sejam sempre
valores diferentes. A informao conhece a si mesma. No necessria mais
nenhuma idia indesejvel;
Adaptao: a XML a lngua-me de outras linguagens. Assim, linguagens
como DickML e JaneML tornaram-se possveis. A adaptao infinita.
Marcaes personalizadas podem ser criadas para qualquer necessidade.
Se uma marcao que descreva como uma pizza pepperoni diferente de
uma pizza calabresa for necessria, ela pode ser feita;
Manuteno: a XML fcil de manter. Ela contm somente idias e
marcaes.
Folhas de estilos e links vm em separado, e no escondidas no documento.
Cada um pode ser alterado separadamente quando preciso com fcil acesso
e fceis mudanas. No preciso mais se achar em uma baguna de
marcaes; Ligao: a XML possui uma maneira de ligar que inclui todas as
formas de ligao.No s isso; ela liga de maneiras que a HTML no pode. A
HTML pode fazer de uma maneira simples, onde um objeto se liga a outro. A
XML faz isso, mas tambm pode ligar dois ou mais pontos a uma idia.
Existem ainda links gmeos que ligam todas as ideas dentro de uma mesma.
Qualquer link entre uma idia pode ser manipulado de uma nica maneira;
Simplicidade: a XML simples. Um usurio de mdia experincia que olha a
XML pode ach-la difcil de acreditar no que v. Comparada com a HTML
no. Comparada com a SGML um estudo de simplicidade. A especificao
da SGML tem 300 pginas.
A da XML, 33. Idias obscuras e desnecessrias foram retiradas em favor de
idias concisas. A XML vai direto ao ponto;
Portabilidade: a XML de fcil portabilidade. A razo da sua existncia
fora e portabilidade. A SGML tem fora. A HTML tem portabilidade. A XML
tem ambas. A XML pode ser navegada com ou sem o seu DTD (Document
Type Definition, ou Definio de Tipo de Documento - as normas que definem
como as tags so estruturas nos documentos XML), tornando o download
mais rpido. Tudo que um navegador precisa para ver XML ter a noo que
ela prpria e a folha de estilos controlam a aparncia. Se uma validao
estrita necessria, o seu DTD pode acompanh-lo e fornecer detalhes
exatos da sua marcao.3

Objetivos do desenvolvimento da XML:


Deveria ser claro usar a XML na Internet;
A XML deveria suportar uma grande variedade de aplicaes;
Ademar Felipe Fey. Direitos Reservados. 2014.

16

Camada de Apresentao do Modelo OSI

A XML deveria ser compatel com SGML;


Deveria ser fcil escrever programas que processem documentos XML;
O nmero de recuros opcionais em XML deveria ser mantido em um mnimo
absoluto, idealmente zero;
Os documentos XML deveriam ser legveis pelos seres humanos e razoavelmente
claros;
O projeto XML deveria ser preparado rapidamente;
O projeto XML deveria ser formal e conciso;
Os documentos XML deveriam ser fceis de serem criados;
A conciso na marcao em XML de mnima importncia.3
A XML definida pelas seguintes especificaes:
1. Extensible Markup Language (XML) 1.0: define a sintaxe da XML;
2. XML Pointer Language (XPointer) e XML Linking Language (XLink): define um
padro para representar os links entre os recursos. Alm dos links simples, como a
tag <A> da HTML, a XML possui mecanismos para ligar recursos mltiplos e
diferentes.
A XPointer descreve como enderear um recurso e a XLink descreve como associar
dois ou mais recursos;
A Extensible Style Language (XSL) define a linguagem de folhas de estilos padro
para a XML.3
1.9 Tradutor ASN.1 para XML
A Abstract Syntax Notation One (ASN.1) um framework (estrutura) para
representar dados estruturados em rvore. amplamente utilizada em protocolos de
comunicao (por exemplo , SNMP e LDAP), protocolos de segurana (por exemplo,
X.509), formatos de dados (por exemplo , PKCS # 7), e assim por diante .
A ASN.1 projetada para a eficincia e os dados so geralmente embalados em
limites de byte, e, portanto, no muito legvel e difcil de manipular. Como os
dados ASN.1 so estruutrados, deve ser possvel para representar a mesma
informao em Extensible Markup Language (XML). A XML no particularmente
eficiente em termos de comprimento de dados, mas mais legvel, e tem muitas
ferramentas off-the -shelf grtis (por exemplo , processadores de XML para anlise e
gerao, processadores XSL para renderizao, editores XML para autoria e assim
por diante). Por tais razes, a traduo entre ASN.1 e XML nos permitir manipular
dados ASN.1 eficientes de uma forma amigvel. Existem uma biblioteca Java para
tal traduo . Utilizando a biblioteca, a ASN.1 pode ser traduzida em XML e viceversa.
O Projeto da linguagem ASN.1 da ITU-T comeou a trabalhar (em conjunto com a
ISO) em duas iniciativas relacionadas a XML, que tm objetivos semelhantes, mas
nenhuma relao com a nossa tecnologia. Veja sua pgina oficial para mais
detalhes.12
1.10 Camada de Apresentao em redes modernas

Ademar Felipe Fey. Direitos Reservados. 2014.

17

Camada de Apresentao do Modelo OSI

As funes da Camada de Apresentao, em geral, so teis para a comunicao


de dados, mas no so essenciais para o bom funcionamento da rede.
A tendncia no TCP/IP foi a disperso das funes da camada de apresentao em
outras camadas, principalmente na camada de Aplicao..
No TCP/IP, em muitas aplicaes e protocolos amplamente utilizados, no feita
qualquer distino entre as camadas de apresentao e aplicao. Por exemplo, o
HTTP, em geral, considerado como um protocolo da camada de aplicao, possui
aspectos da camada de apresentao, tais como a capacidade para identificar as
codificaes para a converso adequada, que depois feito na camada de
aplicao.5
Traduo e adaptao de textos referenciados no final deste captulo por Ademar
Felipe Fey em 19/04/2014.

Ademar Felipe Fey. Direitos Reservados. 2014.

18

Camada de Apresentao do Modelo OSI

REFERNCIAS BIBLIOGRFICAS
1. FEY, Ademar; Gauer, Raul R. Fundamentos de Redes de Computadores.
Curso on-line. www.itit.moodlelivre.com. 2009-2013.
2. FEY, Ademar F. Mas afinal o que o modelo OSI? 2010. Disponvel em:
<http://ademarfey.wordpress.com/2010/12/25/mas-afinal-o-que-e-o-modelo-osi/>.
Acesso em 09/08/2013.
3. CAMADA DE APRESENTAO. Disponvel em:
http://www.oocities.org/starwosi/apresent.htm. Acesso em: 14/09/2012
4. INETDAEMON.COM. Presentation Layer. Disponvel em:
<http://www.inetdaemon.com/tutorials/basic_concepts/network_models/osi_model/tra
nsport.shtml>. Acesso em: 17/09/2012.
5. HILL2DOT0. Presentation Layer. Disponvel em:
<http://www.hill2dot0.com/wiki/index.php?title=Presentation_Layer>. Acesso em:
28/03/2012.
6. UNIVERSITEIT TWENTE. Presentation Layer. 1998. Disponvel em:
<http://wwwhome.cs.utwente.nl/~widya/AP/sh-col3b.pdf>. Aesso em: 18/04/2014.
7. WIKIPEDIA. Presentation layer. Retirado de. Disponvel em:
<http://en.wikipedia.org/wiki/Presentation_layer>. Acesso em: 14/09/2012.
8. ENOTES. Presentation Layer. Disponvel em:
<http://www.enotes.com/topic/OSI_model#Layer_6:_presentationr>. Acesso em:
14/09/2012.
9. Olivier Dubuisson. ASN.1 Communication between Heterogeneous Systems.
2000. http://www.oss.com/asn1/booksintro.html.17/04/2014.
10. PACKETIZER. Chapter 7: The encoding question, Introduction to
Presentation
Layer
concepts.
Disponvel
em:
<http://www.packetizer.com/osi/understandingosi/chapter7.html>.
Acesso
em:
17/04/2014.
11. MICROSOFT. Uma breve introduo ao ASN.1 e ao BER. Disponvel em:
<http://support.microsoft.com/kb/252648/pt-br>. Acesso em: 14/09/2012.
12. IBM. ASN.1/XML Translator. Disponvel em:
<http://www.research.ibm.com/trl/projects/xml/xss4j/docs/axt-readme.html>. Acesso
em: 18/04/2014

Ademar Felipe Fey. Direitos Reservados. 2014.

19