Para satisfazer as
necessidades e solicitações das novas redes de comunicação,
os fabricantes de equipamentos e sistemas desenvolveram
soluções proprietárias para as várias arquiteturas
de sistemas. Conseqüentemente, várias redes foram
criadas a partir de diferentes implementações de hardware
e de software. Essas soluções passaram, então, a definir
o inter-relacionamento dos sistemas com os usuários.
Entretanto, muitas redes eram incompatíveis entre
si, com diferentes especificações, impossibilitando
a interoperabilidade e a comunicação entre elas. Essa
situação levou a elaboração de um modelo que servisse
como referência para que todos os fabricantes desenvolvessem
soluções capazes de interagir entre si. A arquitetura
RM-OSI (Reference Model for Open Systems Interconnection)
foi criada pela ISO (International Standards Organization)
com a finalidade de padronizar o desenvolvimento desses
produtos para redes de comunicação de dados, em resposta
ao crescente número de arquiteturas proprietárias.
Seu objetivo é permitir a interligação de equipamentos
e sistemas distintos sem problemas de compatibilidade.
É uma referência que mostra sempre o que fazer, mas
não como fazer.
1. Estrutura do Modelo
OSI
A ISO lançou o modelo de referência
OSI em 1984. Trata-se de uma descrição ou modelo de
referência e não um novo padrão estabelecendo o modo
como a informação deve ser transmitida entre os pontos
de uma rede. Esse modelo propõe uma estrutura em camadas
para o desenvolvimento de soluções que funcionem sob
qualquer plataforma, independentemente do hardware
ou software utilizado.
Para que os pacotes de dados trafeguem
de uma origem até um destino, através de uma rede,
é importante que todos os dispositivos da rede usem
a mesma linguagem, o mesmo protocolo. Logo, podemos
definir o protocolo como sendo um conjunto de regras,
ou um acordo, que determina o formato e como ocorrerá
a transmissão de dados. A camada n em um computador
se comunica com a camada n em outro computador.
No modelo de referência OSI, existem
sete níveis numerados e cada nível representa uma
função particular da rede. Essa separação das funções
da rede é chamada divisão em camadas. Dividir a rede
nessas sete camadas oferece uma solução para os problemas
de interoperabilidade apresentados anteriormente,
pois oferece como vantagens:
Decompor as
comunicações de rede em partes menores e mais
simples, facilitando sua análise;
Padronizar os
componentes de rede, permitindo o desenvolvimento
e o suporte por parte de vários fabricantes;
Possibilitar
a comunicação entre tipos diferentes de hardware
e de software de rede;
Evitar que as
modificações em uma camada afetem as outras,
possibilitando maior rapidez no seu desenvolvimento;
2. As Sete Camadas
O modelo de referência
OSI (RM-OSI) está dividido em sete camadas verticais
(Física, Enlace de Dados, Rede, Transporte, Sessão,
Apresentação e Aplicação), cada uma com sua função
específica e funcionando independente uma das outras
(Figura 1). As sete camadas por sua vez, se dividem
em dois grupos. As quatro camadas superiores são usadas
quando a informação passa de ou para o próprio elemento
de rede, enquanto as últimas três camadas são usadas
quando a informação é destinada a outro elemento na
rede. Esta divisão possibilita uma melhor compreensão
do modelo como um todo e a otimização de cada tarefa.
Entre as camadas,
a comunicação se dá apenas com a imediatamente inferior
ou superior àquela que deseja estabelecer a comunicação.
Para que isso ocorra são necessários, no mínimo, dois
sistemas com um mesmo conjunto de camadas.
2.1. Camada Física
ou de Acesso ao Meio
A Camada Física é
responsável pela interface física entre os equipamentos
e os protocolos a serem seguidos para a transmissão
das informações entre os diversos sistemas de informação
e gerencia a transferência física da informação sobre
os meios de transmissão possíveis. Com esta camada,
o modelo OSI permite a flexibilidade do uso de vários
meios físicos para interconexão, com procedimentos
de controle diferentes.
A camada física define
as características mecânicas, elétricas, funcionais
e os procedimentos para ativar, manter e desativar
conexões físicas para a transmissão de dados entre
as entidades da camada seguinte. Ela envolve a definição
de todos os aspectos relacionados com as características
físicas (tipos de cabos e conectores), elétricas (níveis
de tensão dos sinais, tipos de codificação etc.),
funcionais e procedurais do sistema.
2.2. Enlace de
Dados ou de Ligação Lógica
A Camada de Enlace
gerencia a transferência da informação através do
canal de transmissão. É responsável pelo controle
do fluxo da informação na rede, bem como sua sincronização
e garantia de entrega. Proporciona ainda, a detecção
e correção de erros de transmissão.
Sua principal função
é tornar o meio físico mais confiável e isento de
erros para as camadas superiores, fornecendo mecanismos
para ativar, manter e desativar a conexão. Para cumprir
sua função, nesta camada são implementados instrumentos
de controle e detecção de erros. Nesta camada, os
bits de informação são agrupados em unidades chamadas
"frames". O Institute of Electrical
and Electronic Engineers (IEEE) divide a camada
de Enlace de Dados em duas subcamadas: LLC e MAC.
A subcamada LLC
é responsável por fornecer às camadas superiores
um meio de transmissão que pareça livre de erros.
Sua implementação independe da subcamada MAC.
Na subcamada MAC
estão os métodos de acesso com os endereços de
hardware de cada sistema, também conhecidos como
MAC Address e o CRC. Um dos seus objetivos é ocultar
das camadas superiores o tipo de meio físico que
está sendo usado, assim como o método de acesso.
No processo de transmissão,
esta camada acrescenta suas próprias informações de
controle como o endereço de origem e de destino, o
comprimento do frame, os protocolos das camadas superiores
envolvidos na comunicação e um protocolo responsável
pela verificação de erros conhecido como "Cyclic
Redundancy Check" (CRC).
2.3. Camada de
Rede
A camada de rede é
responsável pelo gerenciamento do transporte das informações
entre uma rede composta de múltiplos segmentos. Proporciona
o encaminhamento e endereçamento da informação, quer
na origem, quer no destinatário da transmissão. Na
arquitetura de sistemas abertos, alguns sistemas são
destinatários terminais de dados, enquanto outros
funcionam apenas como nós intermediários que repassam
as informações para outros sistemas.
A camada de rede tem
como função favorecer uma trajetória de conexão de
rede entre um par de entidades da camada de transporte,
inclusive passando por nós intermediários. É o protocolo
voltado para a operação da rede propriamente dita.
Algoritmos de roteamento e de controle de congestionamento
são agrupados nessa camada.
2.4. Camada de
Transporte
Proporciona a interface
entre as três camadas superiores e as três camadas
inferiores, isolando o utilizador dos aspectos funcionais
e físicos da rede. Garante ainda, a comunicação ponto-a-ponto,
define e controla a qualidade da transmissão. A ISO
conjectura que há a necessidade de controlar o transporte
de dados do sistema fonte para o destino para que
o serviço de transporte atinja sua totalidade. Por
esse motivo há uma camada de transporte sobre a camada
de rede para aliviar as entidades de camadas superiores
das tarefas do transporte de dados entre elas.
O propósito principal
da camada de transporte é oferecer serviço de transferência
de dados de forma transparente entre as entidades
da camada de sessão. O termo "transparente"
refere-se ao fato de que as entidades de sessão não
têm a necessidade de conhecer os detalhes da transferência
dos dados. Os usuários da camada de transporte são
identificados pelos seus endereços.
A Camada de Transporte
fornece uma comunicação ponto a ponto confiável e
transparente, através de mecanismos de seqüenciamento,
controle de fluxo e confirmação / negação do recebimento
de pacotes. Normalmente é usada para compensar a falta
de confiabilidade das camadas inferiores.
2.5. Camada de
Sessão
A Camada de Sessão
fornece uma estrutura de controle para a comunicação
entre aplicações. Cuida do mecanismo conhecido como
"name-to-station address translation"
(NAT), ou seja, a tradução de endereços para o nome
de uma estação de rede específica. Gerencia a transferência
organizada da informação, desde o modo como se processa
o diálogo até o gerenciamento da troca de dados entre
as entidades de apresentação. Para isso, a camada
de sessão fornece serviços para o estabelecimento
de uma conexão de sessão entre duas entidades de apresentação
através do uso de uma conexão de transporte.
A camada de sessão
tem como serviços a administração da sessão (login
/ autenticação e logoff) e o diálogo da sessão,
controlando a troca de dados, delimitando e sincronizando
operações entre duas entidades.
2.6. Camada de
Apresentação
A Camada de Apresentação
realiza a conversão do formato de dados de forma que
eles sejam entendidos por todos os sistemas envolvidos
na comunicação. Esta camada também faz a compressão
/ descompressão e criptografia / descriptografia.
A Camada de Apresentação
também resolve problemas de diferenças de sintaxe
entre sistemas abertos comunicantes. Através dos serviços
da camada de apresentação, as aplicações no ambiente
OSI podem estabelecer a comunicação sem custos excessivos
oriundos de variações de interfaces, transformações
ou modificações das próprias aplicações.
2.7. Camada de
Aplicação
Na Camada de Aplicação
está o suporte das aplicações do usuário do sistema.
Sua função é definir a semântica da informação a transmitir/receber.
Os serviços desta camada são usados pelos próprios
usuários do ambiente OSI. Essa camada serve de "janela"
entre usuários comunicantes, através da qual ocorre
a troca das informações entre esses usuários. Cada
usuário é representado para os demais por sua entidade
de aplicação devida. É importante salientar que a
totalidade de uma aplicação não se encontra nesta
camada, apenas uma parte, que precisa se comunicar
com entidades remotas.
É a responsável ainda
pela negociação do modo como a informação a transmitir
é representada (sintaxe). A camada de apresentação
fornece os serviços que podem ser selecionados pela
camada de aplicação para a interpretação da sintaxe
dos dados trocados. Gerencia a entrada, troca, amostra
e controle de dados estruturados.
Sob a responsabilidade
da Camada de Aplicação estão os serviços como transferência
de arquivos, gerenciamento de redes e emulação de
terminais.