2. O Modelo OSI de Arquitetura

2.1. Introdu��o

O final da d�cada de 70 apresentava um panorama curioso em termos de comunica��o de dados em redes de computadores: por um lado, uma perspectiva de crescimento vertiginoso causados pelo investimento e desenvolvimento que estavam sendo feitos, mas por outro lado uma tend�ncia que poderia acarretar em uma profunda crise no setor, a heterogeneidade de padr�es entre os fabricantes, praticamente impossibilitando a interconex�o entre sistemas de fabricantes distintos.

Ent�o os fabricantes come�aram a perseguir alguns objetivos necess�rios para a implementa��o de um sistema aberto. Esses objetivos s�o:

Para se atingir estes objetivos, a ISO (International Organization for Standardization) passou a se ocupar em criar um padr�o de arquitetura aberta e baseada em camadas. Foi ent�o definido o Modelo de Refer�ncia para Interconex�o de Sistemas Abertos (Reference Model for Open Systems Interconection - RM OSI).

A utiliza��o de um ambiente de sistema aberto nos oferece algumas vantagens, como:

A ado��o de um modelo baseado em camadas tamb�m n�o � arbitr�ria. Considerando que uma rede de computadores tem como objetivo o processamento de tarefas distribu�das pela rede de forma harm�nica e cooperativa entre os v�rios processos de aplica��o, o projeto desta deve levar em conta v�rios fatores, como:

Podemos perceber, ent�o, que o problema � extremamente complexo e abrangente. A fim de se lidar com esta complexidade (facilitando a implementa��o e manuten��o), projeta-se a rede como um conjunto de camadas.

Este conjunto de camadas � hier�rquico, ou seja, cada camada baseia-se na camada inferior [Moura 86]. Reduzindo-se o projeto global da rede ao projeto de cada uma das camadas, simplifica-se consideravelmente o trabalho de desenvolvimento e de manuten��o. O projeto de uma camada � restrito ao contexto dessa camada e sup�e que os problemas fora deste contexto j� estejam devidamente resolvidos.

Na realidade existem duas vantagens pr�ticas na utiliza��o de uma arquitetura em camadas. Em primeiro lugar, a complexidade do esfor�o global de desenvolvimento � reduzida atrav�s de abstra��es (n�o interessa para uma determinada camada como as demais implementam o fornecimento de seus servi�os, s� o que elas oferecem). Na arquitetura hier�rquica, a camada (N) sabe apenas que existem a camada (N-1), prestadora de determinados servi�os e a camada (N+1), que lhe requisita os servi�os. A camada (N) n�o toma conhecimento da exist�ncia das camadas (N�2), (N�3), etc.

O segundo aspecto � relacionado com a independ�ncia entre as camadas. A camada (N) preocupa-se apenas em utilizar os servi�os da camada (N-1), independentemente do seu protocolo. � assim que uma camada pode ser alterada sem mudar as demais (facilidade de manuten��o) - desde que os servi�os que ela presta n�o sejam modificados. � assim tamb�m que novas aplica��es podem ser implementadas, na camada apropriada, aproveitando os mesmos servi�os j� fornecidos pelas outras camadas (redu��o dos esfor�os para evolu��es).

Por�m a elabora��o de um sistema aberto passa por algumas etapas obrigat�rias que podemos observar claramente na defini��o do modelo OSI, da ISO:

Podemos observar que o modelo OSI da ISO corresponde exatamente ao primeiro �tem citado acima. O modelo OSI � um modelo de refer�ncia e define apenas a arquitetura do sistema. O padr�o criado para o modelo OSI, ent�o, define exatamente o que cada camada deve fazer, mas n�o define como isto ser� feito, ou seja, define os servi�os que cada camada deve prestar, mas n�o o protocolo que o realizar�. Este primeiro passo j� est� bem definido pela ISO.

A defini��o dos protocolos de cada camada, ent�o, fica por conta do segundo passo. Esta parte tamb�m est� definida pela ISO, mas � realizado por grupos de estudo diversos. Este passo � uma tarefa muito din�mica, pois novas tecnologias de transmiss�o surgem a todo instante. Portanto por um lado temos alguns padr�es bem documentados, mas por outro, temos tecnologias emergentes que precisam ser adaptadas �s condi��es do modelo OSI e ainda est�o em processo de defini��o.

J� a terceira etapa n�o � uma fase de responsabilidade da ISO. Esta etapa de defini��o de perfis funcionais � realizada por cada pa�s, que escolhe os padr�es que lhe cabem baseados em condi��es tecnol�gicas, base instalada, vis�o futura, etc. Por exemplo, no Brasil temos o Perfil Funcional do Governo Brasileiro. A escolha do Perfil Funcional � uma etapa importante, pois apesar de dois sistemas seguirem o Modelo OSI, se eles adotarem perfis diferentes, eles nunca v�o conseguir interoperar.

A arquitetura OSI foi desenvolvida a partir de tr�s elementos b�sicos [Moura 86]:

Figura 2.1: Processos de aplica��o, conex�es e sistemas

O desenho abaixo nos d� uma id�ia da arquitetura de uma m�quina pertencente a um sistema de comunica��o:

Figura 2.2: Arquitetura de uma m�quina do sistema

Hardware: prov� a infraestrutura necess�ria (no n�vel mais baixo) para o processamento da aplica��o, como a manipula��o de bits, acesso a disco, etc. � Sistema operacional: prov� os servi�os b�sicos de acesso a hardware, etc. � Gerenciamento de dados: cuida de tarefas como o acesso, manipula��o e troca de v�rios tipos de dados. Uma consist�ncia nesta tarefa � um grande passo rumo � portabilidade de aplica��es. Existem v�rias formas de implementa��o de acesso a bancos de dados, mas a mais comum e aceita pela ind�stria � a SQL (Structure Query Language). � Linguagem: tem sido feitos esfor�os em rela��o � cria��o de uma linguagem com independ�ncia da plataforma, de forma a prover a portabilidade de c�digo. � Interface com o usu�rio: um dos principais fatores de portabilidade, j� que prov� a interface com o usu�rio da aplica��o. Cada vez mais est�o sendo desenvolvidas interfaces gr�ficas e orientadas a objetos baseadas em janelas, �cones e menus. Os principais padr�es para desenvolvimento de interfaces gr�ficas s�o X Window e Motif. � Comunica��o: a parte de comunica��o � o objeto principal do nosso estudo. Ela vai prover a comunica��o e interopera��o entre m�quinas e sistemas diferentes, cuidando de caracter�sticas como padr�es de interopera��o, endere�amento, etc.

O modelo OSI, ent�o, se encaixa na figura 2.2 como um conjunto de fun��es que possibilitam que m�quinas distintas possam se comunicar e trocar informa��es. Ele possui sete camadas (figura 2.3), onde cada camada � respons�vel por uma determinada fun��o espec�fica. Os princ�pios utilizados para se chegar a estas camadas s�o [Tanenbaum 94]:

Cada camada � usu�ria dos servi�os prestados pela camada imediatamente inferior e presta servi�os para a camada imediatamente superior. Esta troca de informa��es entre as camadas adjacentes ocorre por meio da troca de primitivas de servi�os nas interfaces entre as camadas.

Apesar do modelo OSI estar dividido em sete n�veis, pode-se considerar genericamente que as tr�s camadas mais baixas cuidam dos aspectos relacionados � transmiss�o propriamente dita e a camada de transporte lida com a comunica��o fim-a-fim, enquanto que as tr�s camadas superiores se preocupam com os aspectos relacionados � aplica��o, j� a n�vel de usu�rio.

A comunica��o entre sistemas ocorre a n�vel de camadas, ou seja, a camada de aplica��o do sistema A se comunica com a camada de aplica��o do sistema B e assim por diante at� o n�vel f�sico, onde ocorre a comunica��o f�sica entre os sistemas.

Figura 2.3: Modelo OSI

Uma maneira bastante f�cil e simplista de se enxergar a funcionalidade de um modelo em camadas, como o modelo OSI, � imaginar que cada camada tem como fun��o adicionar um cabe�alho aos dados do usu�rio a serem transmitidos para outro sistema (figura 2.4). Deste modo a fun��o de cada camada do outro sistema � exatamente a inversa, ou seja, retirar os cabe�alhos dos dados que chegam e entreg�-los ao usu�rio em sua forma original.

Figura 2.4: Transfer�ncia de Dados entre Camadas

Os dados entregues pelo usu�rio � camada de aplica��o do sistema recebem a denomina��o de SDU (Service Data Unit). A camada de aplica��o, ent�o, junta � SDU (no caso, os dados do usu�rio) um cabe�alho chamado PCI (Protocol Control Information). O objeto resultante desta jun��o � chamado de PDU (Protocol Data Unit), que corresponde � unidade de dados especificada de um certo protocolo da camada em quest�o.

2.2. Primitivas de Servi�os

As primitivas de servi�os s�o informa��es trocadas entre duas camadas adjacentes de forma a realizar um servi�o. No modelo OSI s�o definidas quatro tipos de primitivas:

As primitivas possuem par�metros de entrada e sa�da. Por exemplo, em um pedido de conex�o, os par�metros podem especificar a m�quina � qual se conectar, o tipo de servi�o desejado e o tamanho m�ximo de mensagem a ser utilizada e os par�metros em uma indica��o de conex�o podem conter a identidade do solicitante, o tipo de servi�o e o tamanho m�ximo de mensagem proposto. Quem cuida dos detalhes desta negocia��o � o protocolo. Por exemplo, caso duas propostas para o tamanho m�ximo das mensagens trocadas seja conflitante, o protocolo deve decidir qual das duas ser� aceita.

Os servi�os prestados podem ser basicamente de dois tipos: confirmado e n�o-confirmado. No servi�o confirmado, h� um pedido, uma indica��o, uma resposta e uma confirma��o. J� no servi�o n�o-confirmado, h� apenas um pedido e uma indica��o. Um exemplo de um servi�o confirmado � o estabelecimento de uma conex�o, enquanto que a desconex�o � um servi�o n�o-confirmado. Vejamos o exemplo de um servi�o de conex�o na figura 2.5.

Figura 2.5: Diagrama de Tempo de Estabelecimento de Conex�o

Este servi�o pode ser descrito da seguinte forma:

Um exemplo muito did�tico � a analogia com o sistema telef�nico. Por exemplo, voc� liga para uma pessoa e a convida para sair:

Figura 2.6: Diagrama de Tempo da Conversa��o Telef�nica

A camada N � o usu�rio, ou seja, voc� e a pessoa com quem est� falando. A camada N-1 � a operadora do servi�o. De um modo bastante simplificado, este exemplo nos mostra a troca de primitivas em uma conversa��o gen�rica, mas que pode ser perfeitamente aplicada a situa��es mais complexas, como o modelo OSI.

2.3. Servi�os e Protocolos

Faz-se necess�rio neste ponto deixar bem clara a distin��o entre servi�os e protocolos. Um servi�o � um conjunto de primitivas que uma camada oferece � camada superior adjacente, ou seja, � uma interface entre duas camadas onde a inferior se comporta como provedora do servi�o e a superior a usu�ria do servi�o. O servi�o define as opera��es que a camada est� preparada para realizar em nome de seus usu�rios, mas n�o diz nada a respeito do modo como isso deve ser implementado.

J� um protocolo � um conjunto de regras que governa o formato e significado dos quadros, pacotes ou mensagens trocados entre entidades parceiras dentro de uma mesma camada. Os protocolos s�o utilizados para implementar os servi�os, n�o sendo diretamente vis�veis aos usu�rios, ou seja, o protocolo utilizado pode ser modificado, desde que o servi�o oferecido ao usu�rio permane�a o mesmo.

Devemos sempre lembrar que ao se falar em servi�os, estamos falando em camadas adjacentes (n�veis diferentes, no mesmo sistema), e protocolo falamos de entidades pares (no mesmo n�vel, em sistemas diferentes).

Figura 2.7: Servi�os e protocolos no modelo OSI

Os servi�os providos pela camada (N) s�o dispon�veis para a entidade (N+1) atrav�s dos SAP�s (Service Access Point). Os SAP�s s�o interfaces l�gicas entre as entidades (N) e (N+1). Portanto, quando a entidade (N+1) precisa utilizar o servi�o provido pela camada (N), ela busca este no SAP(N).

As informa��es entre entidades (N+1) s�o trocadas atrav�s de uma associa��o chamada conex�o (N) , estabelecida na camada (N) usando o protocolo (N). A figura 2.8 ilustra este conceito.

Figura 2.8: SAP�s e conex�es

2.4. Camada F�sica

A camada f�sica � a �nica camada que possui acesso f�sico ao meio de transmiss�o da rede devendo, portanto, se preocupar com fatores como as especifica��es el�tricas, mec�nicas, funcionais e procedurais da interface f�sica entre o equipamento e o meio de transmiss�o, ou seja, a camada f�sica tem como fun��o b�sica a adapta��o do sinal ao meio de transmiss�o.

� mec�nicas: propriedades f�sicas da interface com o meio f�sico de transmiss�o, incluindo, por exemplo, o tipo de conector utilizado; � el�tricas: se relacionam com a representa��o de um bit em termos de, por exemplo, n�vel de tens�o utilizado e taxa de transmiss�o de bits; � funcionais: definem as fun��es a serem implementadas por esta interface; � procedurais: especificam a seq��ncia de eventos trocados durante a transmiss�o de uma s�rie de bits atrav�s do meio de transmiss�o.

A camada f�sica possui as seguintes fun��es:

� estabelecimento/encerramento de conex�es: ativa e desativa conex�es f�sicas mediante a solicita��o de entidades da camada de enlace; � transfer�ncia de dados: a unidade de transmiss�o utilizada � o bit. O n�vel f�sico tem como fun��o transmitir os bits na mesma ordem em que chegam da camada de enlace (no sistema de origem) e entreg�-los � camada de enlace na mesma ordem que chegaram (no sistema de destino); � gerenciamento das conex�es: ger�ncia da qualidade de servi�o das conex�es f�sicas estabelecidas. Deve monitorar taxa de erros, disponibilidade de servi�o, taxa de transmiss�o, atraso de tr�nsito etc.

Os padr�es de n�vel f�sico utilizados s�o, por exemplo, X.21, X.21 bis, V.24, V.28, RS-232 I.430, I.431 etc.

2.5. Camada de Enlace

A camada de enlace tem o objetivo de prover uma conex�o confi�vel sobre um meio f�sico. Sua fun��o b�sica � detectar e, opcionalmente, corrigir erros que por ventura ocorram no n�vel f�sico. As suas principais fun��es s�o:

O protocolo de enlace mais conhecido � o HDLC, antecessor de outros como LAPB, LAPD e LLC.

2.6. Camada de Rede

A camada de rede deve tornar transparente para a camada de transporte a forma como os recursos dos n�veis inferiores s�o utilizados para implementar conex�es de rede. Deve tamb�m equalizar as diferen�as entre as diversas sub-redes utilizadas de forma a fornecer um servi�o �nico a seus usu�rios (independente da rede utilizada).

Suas principais fun��es s�o:

A camada de rede pode prestar servi�os orientados � conex�o (CONS - Connection Oriented Network Service) ou servi�os n�o-orientados � conex�o (CLNS - ConnectionLess Oriented Network Service). Um exemplo de protocolo utilizado na camada de rede � o X.25.

2.7. Camada de Transporte

A camada de transporte prov� mecanismos que possibilitam a troca de dados fim-a-fim, ou seja, a camada de transporte n�o se comunica com m�quinas intermedi�rias na rede, como pode ocorrer com as camadas inferiores.

As principais fun��es da camada de transporte s�o:

As fun��es implementadas pela camada de transporte dependem da qualidade de servi�o desejada. Foram especificadas, ent�o, cinco classes de protocolos orientados � conex�o:

2.8. Camada de Sess�o

A camada de sess�o � a respons�vel pelo estabelecimento de sess�es entre dois usu�rios permitindo o transporte ordin�rio de dados (assim como a camada de transporte), por�m com alguns servi�os mais refinados, que podem ser �teis em algumas aplica��es.

Alguns servi�os que a camada de sess�o deve prover s�o, por exemplo:

2.9. Camada de Apresenta��o

A camada de apresenta��o, ao contr�rio das camadas inferiores, j� n�o se preocupa com os dados a n�vel de bits, mas sim com a sua sintaxe, ou seja, sua representa��o. Nela � definida a sintaxe abstrata, ou seja, a forma como os tipos e os valores dos dados s�o definidos, independentemente do sistema computacional utilizado e a sintaxe de transfer�ncia, ou seja, a maneira como � realizada esta codifica��o. Por exemplo, atrav�s da sintaxe abstrata define-se que um caracter A deve ser transmitido. A sintaxe de transfer�ncia especifica, ent�o, como este dado ser� codificado em ASCII ou EBCDIC ao ser entregue � camada de sess�o.

Outras fun��es que a camada de apresenta��o pode executar s�o a criptografia e compress�o de dados.

2.10. Camada de Aplica��o

Basicamente, as fun��es da camada de aplica��o s�o aquelas necess�rias � adapta��o dos processos de aplica��o ao ambiente de comunica��o. A camada de aplica��o � estruturada modularmente para permitir a flexibilidade das fun��es e de forma, para se determinar os requisitos de comunica��o de cada aplica��o distribu�da. A camada de aplica��o deve seguir o descrito na norma ISO 9545. Ela � formada por v�rias ASE's (Elemento de Servi�o de Aplica��o), que s�o os componentes b�sicos das AE's (Entidade de Aplica��o). Uma AE � a fun��o que um processo de aplica��o utiliza para se comunicar com os seus pares. Um processo de aplica��o pode utilizar diversas AE's, cada uma das quais provendo um conjunto de defini��es de cada uma das fun��es e das regras que governam o uso destas fun��es.

O componente b�sico de uma AE � um Elemento de Servi�o de Aplica��o (ASE). Um ASE � um elemento que define uma fun��o ou um conjunto de fun��es que ajudam na realiza��o da aplica��o. Desta forma, pode-se imaginar que um AE � um grande programa feito de muitos sub-programas ou procedimentos, que s�o os ASE.

As principais fun��es da camada de aplica��o s�o:

2.10.1. Elementos de Servi�o de Aplica��o de Prop�sito Geral

Aqui ser�o apresentados os elementos de servi�o de aplica��o que exercem fun��es b�sicas, podendo ser utilizados pela maioria das aplica��es.

2.10.1.1. ACSE (Association Control Service Element)

O elemento de servi�o de aplica��o ACSE � o respons�vel pelo gerenciamento das associa��es de aplica��o. Presta os servi�os b�sicos de estabelecimento e libera��o (ordenada e abrupta) de associa��es de aplica��o. Desta forma, est� presente em todas as entidades de aplica��o.

2.10.1.2. ROSE (Remote Operations Service Element)

O ROSE � um elemento de servi�o de aplica��o que oferece suporte a aplica��es interativas, sendo bastante �til em aplica��es distribu�das. O ROSE n�o pode ser utilizado isoladamente. Em geral, ele � utilizado em aplica��es envolvendo MHS (Message Handling System), DS (Directory Service) e gerenciamento OSI. No caso particular do gerenciamento, o ROSE � usado, por exemplo, para transportar opera��es de gerenciamento (como � o caso da leitura de atributos de um objeto gerenciado) do gerente para o agente e para transportar o resultado da opera��o realizada (valor dos atributos lidos) do agente para gerente.

2.10.1.3. RTSE (Reliable Transfer Service Element)

Como vimos anteriormente, uma das fun��es da camada de sess�o � garantir que ap�s uma interrup��o em uma conex�o estabelecida, a transfer�ncia dos dados possa se reestabelecer a partir do ponto em que houve a interrup��o, havendo uma perda m�nima. O RTSE deve executar esta mesma fun��o atrav�s de uma interface simples e ser capaz, ent�o, de transferir as unidades de dados de um forma confi�vel entre entidades de aplica��o.

2.10.1.4. CMISE (Common Management Information Service Element)

Cada recurso que est� sujeito ao gerenciamento de sistemas � representado por um objeto gerenciado. Os objetos gerenciados podem ser criados, suprimidos e ter os valores dos seus atributos modificados. O gerenciamento de objetos descreve o servi�o para relat�rios de cria��o e supress�o de objetos gerenciados, modifica��o de nomes de objetos gerenciados, modifica��o de atributos dos objetos gerenciados. Estas aplica��es de ger�ncia de rede s�o realizadas atrav�s do CMISE.

A descri��o do servi�o CMISE � detalhada na X.710 e na ISO 9595-1 vers�o 2. O Protocolo de Informa��o de Gerenciamento Comum (CMIP) � o protocolo utilizado para a troca de unidades de dados de protocolo de informa��o de gerenciamento comum entre o agente e o gerente. O CMIP especifica os elementos de protocolo que podem ser usados para prover as Opera��es e Notifica��es definidas na X.710, a qual define o Servi�o de Gerenciamento Comum (CMIS). A X.711 define a sintaxe abstrata do CMIP.

2.10.1.5. TP (Transaction Processing)

O TP tem como objetivo prover a infra-estrutura necess�ria ao suporte do processamento de transa��es distribu�das envolvendo v�rios sistemas abertos. Uma transa��o distribu�da deve ser caracterizada por:

� responsabilidade do TP prover facilidades e mecanismos de forma a garantir que estes objetivos sejam alcan�ados.

2.10.1.6. CCR (Commitment, Concurrency and Recovery)

Para os casos em que o processamento se d� de forma distribu�da, as facilidades s�o providadas pelo TP. J� no caso do processamento ocorrer entre duas aplica��es residentes em sistemas abertos distintos, ela deve ser coordenada de forma que haja a garantia de que a execu��o de unidades de trabalho ocorra somente quando tais aplica��es estejam prontas e aptas a faz�-lo.

2.10.2. Elementos de Servi�o de Aplica��o de Prop�sito Espec�fico

A fun��o dos elementos de servi�o de aplica��o � prover suporte a aplica��es de uma maneira gen�rica, por�m algumas aplica��es como a transfer�ncia de arquivos e o correio eletr�nico se tornaram t�o comuns que foram criados elementos de servi�o espec�ficos para estes casos.

2.10.2.1. MHS (Message Handling System)

O MHS � o servi�o de correio eletr�nico. Este tipo de servi�o surgiu h� v�rios anos, na d�cada de setenta, por�m funcionava de maneira propriet�ria, ou seja, sistemas de fabricantes diferentes n�o conseguiam trocar mensagens entre si. Na d�cada de oitenta, o CCITT em conjunto com a ISO resolveram padronizar este tipo de servi�o.

A opera��o do MHS se baseia no sistema store and forward, ou seja, n�o h� nenhuma conex�o entre o originador da mensagem e o seu destinat�rio durante o momento em que esta � enviada. As facilidades que o MHS oferece incluem:

A vers�o de 88 do MHS cont�m, ainda, facilidades adicionais relativas a seguran�a, listas de distribui��o e redirecionamento de mensagens.

2.10.2.2. FTAM (File Transfer Access and Management)

O FTAM tem por objetivo permitir a consulta, acesso, transfer�ncia e gerenciamento de arquivos em um ambiente aberto. � muito �til, por exemplo, no caso de transfer�ncia de arquivos de tarifa��o, que possuem um volume muito grande. As opera��es que podem ser executadas sobre arquivos podem ser classificadas em tr�s tipos:

Os servi�os prestados pelo protocolo FTAM deve servir de base para o desenvolvimento de sistemas que envolvam a manipula��o de arquivos em v�rios n�veis de complexidade. Por exemplo, a transfer�ncia parcial ou completa de arquivos entre sistemas interconectados atrav�s de uma rede local ou de longa dist�ncia; o acesso a um sistema de arquivos compartilhado entre m�ltiplas esta��es interconectadas atrav�s de uma rede; a transfer�ncia de arquivos para fins de impress�o, etc.

2.10.2.3. DS (Directory Service)

O Servi�o Diret�rio consiste em um reposit�rio de informa��es mantido por um conjunto de sistemas abertos distribu�dos. Estes sistemas posssuem acesso a estas informa��es e podem, por exemplo, ler e modificar estas informa��es.

Proximo Topico: Arquitetura TCP/IP

Hosted by www.Geocities.ws

1