YouTube Facebook Twitter
Apostilas Artigos Tutoriais Aulas Vídeos Blog Ferramentas de Rede Fórum Downloads Colabore Fale Conosco
» artigos
:: O Modelo OSI

José Mauricio Santos Pinheiro em 22/11/2004

 

Com o objetivo de facilitar o processo de padronização e obter interconectividade entre máquinas de diferentes fabricantes, a Organização Internacional de Normalização (ISO - International Standards Organization), uma das principais organizações no que se refere à elaboração de padrões de comunicação de âmbito mundial, aprovou, no início da década de 1980, um modelo de arquitetura para sistemas abertos, visando permitir a comunicação entre máquinas heterogêneas e definindo diretivas genéricas para a construção de redes de computadores independente da tecnologia de implementação.

Esse modelo foi denominado OSI (Open Systems Interconnection), servindo de base para a implementação de qualquer tipo de rede, seja de curta, média ou longa distância.

Elaboração do Modelo

Para atingir os objetivos de interoperabilidade, compatibilidade, portabilidade e escalabilidade exigidos para a implementação de um sistema aberto são necessárias algumas etapas obrigatórias que podem ser observadas na definição do modelo OSI:

Definição do modelo (padrão para arquitetura do sistema aberto) - O padrão criado para o modelo OSI 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 os realizará;

Definição dos protocolos de cada camada – Definição dos padrões dos componentes que fazem parte do modelo (padrões de interoperabilidade e portabilidade), não só os relacionados à comunicação, mas também alguns não relacionados como a estrutura de armazenamento de dados e outros;

Seleção dos perfis funcionais – Etapa realizada pelos órgãos de padronização de cada país que escolhem os padrões que lhes cabem, baseados em condições tecnológicas, base instalada, visão futura, etc.

Arquitetura OSI

A arquitetura de uma rede é formada por camadas (ou níveis), interfaces e protocolos. As camadas são processos, implementados por hardware ou software, que se comunicam com o processo correspondente na outra máquina. Cada camada oferece um conjunto de serviços ao nível superior, usando funções realizadas no próprio nível e serviços disponíveis nos níveis inferiores.

Em uma estrutura baseada em camadas, os dados transferidos em uma comunicação de um nível específico não são enviados diretamente ao processo do mesmo nível em outra estação, mas descem, através da cada camada adjacente da máquina transmissora até o nível inicial, onde é transmitido, para depois subir através de cada nível adjacente da máquina receptora.

Os protocolos são conjuntos de regras e formatos que permitem a comunicação entre as camadas nas diferentes máquinas. Em cada camada podem ser definidos um ou mais protocolos. Já as interfaces representam o limite entre cada nível adjacente onde uma camada compreende as informações vindas de outra camada.

Figura 1 - Camadas, interfaces e protocolos

 Dentro dessa filosofia, o modelo OSI define uma arquitetura genérica de sete camadas para o sistema computacional. Com exceção da camada mais alta, cada camada é usuária dos serviços prestados pela camada imediatamente inferior (n-1) e presta serviços para a camada imediatamente superior (n+1). Esta troca de informações entre as camadas adjacentes ocorre por meio da troca de primitivas de serviços (funções que um nível oferece ao nível imediatamente superior de forma a prover a comunicação entre os mesmos) nas interfaces entre as camadas.

Apesar da divisão em sete níveis, pode-se considerar genericamente que as três camadas mais baixas do modelo cuidam dos aspectos relacionados à transmissão propriamente dita, a quarta camada lida com a comunicação fim-a-fim, enquanto que as três camadas superiores se preocupam com os aspectos relacionados à aplicação, já ao nível de usuário.

Uma maneira bastante simples de se enxergar a funcionalidade do 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. 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. As camadas do Modelo de Referência OSI são as seguintes:

Camada Física

Os protocolos deste nível são os que realizam a codificação/decodificação de símbolos e caracteres em sinais elétricos lançados no meio físico, que fica logo abaixo dessa camada.

O nível físico tem a função de transmitir uma seqüência de bits através de um canal de comunicação. As funções típicas dos protocolos deste nível são fazer com que um bit "1" transmitido por uma estação seja entendido pelo receptor como bit "1" e não como bit "0". Assim, este nível trabalha basicamente com as características mecânicas e elétricas do meio físico, como por exemplo:

  •  Número de volts que devem representar os níveis lógicos "1" e "0";

  •  Velocidade máxima da transmissão;

  •  Transmissão simplex, half duplex ou full duplex;

  •  Número de pinos do conector e utilidade de cada um;

  •  Diâmetro dos condutores.

Camada de Enlace de Dados

O principal objetivo da camada de enlace é receber/transmitir uma seqüência de bits do/para o nível físico e transformá-los em uma linha que esteja livre de erros de transmissão, a fim de que essa informação seja utilizada pelo nível de rede. O nível de enlace está dividido em dois subníveis:

Subnível superior - controle lógico do enlace (LLC - Logical Link Control) - O protocolo LLC pode ser usado sobre todos os protocolos IEEE do subnível MAC, como por exemplo, o IEEE 802.3 (Ethernet), IEEE 802.4 (Token Bus) e IEEE 802.5 (Token Ring). Ele oculta as diferenças entre os protocolos do subnível MAC. Usa-se o LLC quando é necessário controle de fluxo ou comunicação confiável;

Subnível inferior – controle de acesso ao meio (MAC - Medium Access Control) possui alguns protocolos importantes, como o IEEE 802.3 (Ethernet), IEEE 802.4 (Token Bus) e IEEE 802.5 (Token Ring). O protocolo de nível superior pode usar ou não o subnível LLC, dependendo da confiabilidade esperada para esse nível.

Camada de Rede

A camada de rede tem a função de controlar a operação da rede de um modo geral. Suas principais funções são o roteamento dos pacotes entre fonte e destino, mesmo que estes tenham que passar por diversos nós intermediários durante o percurso, o controle de congestionamento e a contabilização do número de pacotes ou bytes utilizados pelo usuário, para fins de tarifação.

O principal aspecto que deve ser observado nessa camada é a execução do roteamento dos pacotes entre fonte e destino, principalmente quando existem caminhos diferentes para conectar entre si dois nós da rede. Em redes de longa distância é comum que a mensagem chegue do nó fonte ao nó destino passando por diversos nós intermediários no meio do caminho e é tarefa do nível de rede escolher o melhor caminho para essa mensagem.

A escolha da melhor rota pode ser baseada em tabelas estáticas, que são configuradas na criação da rede e são raramente modificadas; pode também ser determinada no início de cada conversação, ou ser altamente dinâmica, sendo determinada a cada novo pacote, a fim de refletir exatamente a carga da rede naquele instante. Se muitos pacotes estão sendo transmitidos através dos mesmos caminhos, eles vão diminuir o desempenho global da rede, formando gargalos. O controle de tais congestionamentos também é tarefa da camada de rede.

Camada de Transporte

A camada de transporte inclui funções relacionadas com conexões entre a máquina fonte e máquina destino, segmentando os dados em unidades de tamanho apropriado para utilização pelo nível de rede, seguindo ou não as orientações do nível de sessão.

As principais funções do nível de transporte são a criar conexões para cada requisição vinda do nível superior, multiplexar as várias requisições vindas da camada superior em uma única conexão de rede, dividir as mensagens em tamanhos menores, a fim de que possam ser tratadas pelo nível de rede e estabelecer e terminar conexões através da rede.

Sob condições normais, o nível de transporte cria uma conexão distinta para cada conexão de transporte requisitada pelo nível superior. Se a conexão de transporte requisitada necessita uma alta taxa de transmissão de dados, este nível pode criar múltiplas conexões de rede, dividindo os dados através da rede para aumentar a velocidade de transmissão, conforme as indicações do nível de sessão. Por outro lado, a camada de transporte pode multiplexar as várias conexões de transporte na mesma conexão de rede, a fim de reduzir custos. Em ambos os casos, a camada de transporte deixa essa multiplexação transparente ao nível superior.

Existem várias classes de serviço que podem ser oferecidas ao nível superior, e, em última instância, aos usuários da rede. A mais popular é uma comunicação através de um canal ponto-a-ponto livre de erros, que envia as mensagens seqüencialmente, na mesma ordem que elas foram recebidas. Existem outras classes permitidas, como o envio de mensagens isoladas, sem garantia sobre a ordem da entrega, ou enviar mensagens para múltiplos destinos (mensagens multicast).

O nível de transporte é o primeiro que trabalha com conexões lógicas fim a fim, ou seja, um programa na máquina fonte conversa com um programa similar na máquina destino, diferente dos níveis anteriores, que conversavam somente com o nó vizinho. Vale ressaltar que a conexão criada pelo nível de transporte é uma conexão lógica, e os dados são transmitidos somente pelo meio físicos, através da camada física do modelo. Assim, os dados devem descer nível a nível até atingir o nível 1, para então serem transmitidos à máquina remota.

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:

Classe 0: simples, sem nenhum mecanismo de detecção e recuperação de erros;

Classe 1: recuperação de erros básicos sinalizados pela rede;

Classe 2: permite que várias conexões de transporte sejam multiplexadas sobre uma única conexão de rede e implementa mecanismos de controle de fluxo;

Classe 3: recuperação de erros sinalizados pela rede e multiplexação de várias conexões de transporte sobre uma conexão de rede;

Classe 4: detecção e recuperação de erros e multiplexação de conexões de transporte sobre uma única conexão de rede.

Camada de Sessão

A função da camada de sessão é administrar e sincronizar diálogos entre dois processos de aplicação. Este nível oferece dois tipos principais de diálogo: half duplex e full duplex.

O nível de sessão fornece mecanismos que permitem estruturar os circuitos oferecidos para o nível de transporte. Neste nível ocorre a quebra de um pacote com o posicionamento de uma marca lógica ao longo do diálogo. Esta marca tem como finalidade identificar os blocos recebidos para que não ocorra uma recarga, quando ocorrer erros na transmissão.

Uma sessão permite transporte de dados de uma maneira mais refinada que o nível de transporte em determinadas aplicações. Uma sessão pode ser aberta entre duas estações a fim de permitir a um usuário se logar em um sistema remoto ou transferir um arquivo entre essas estações. Os protocolos desse nível tratam de sincronizações (checkpoints) na transferência de arquivos.

Camada de Apresentação

A função da camada de apresentação é assegurar que a informação seja transmitida de tal forma que possa ser entendida e usada pelo receptor. Dessa forma, este nível pode modificar a sintaxe da mensagem, mas preservando sua semântica. Por exemplo, uma aplicação pode gerar uma mensagem em ASCII mesmo que a estação interlocutora utilize outra forma de codificação (como EBCDIC). A tradução entre os dois formatos é feita neste nível.

A camada de apresentação também é responsável por outros aspectos da representação dos dados, como criptografia e compressão de dados.

Camada de Aplicação

A camada de aplicação é o nível que possui o maior número de protocolos existentes, devido ao fato de estar mais perto do usuário e os usuários possuírem necessidades diferentes.

Esta camada fornece ao usuário uma interface que permite acesso a diversos serviços de aplicação, convertendo as diferenças entre diferentes fabricantes para um denominador comum. Por exemplo, em uma transferência de arquivos entre máquinas de diferentes fabricantes pode haver convenções de nomes diferentes (DOS tem uma limitação de somente 8 caracteres para o nome de arquivo, UNIX não), formas diferentes de representar as linhas, e assim por diante.

Transferir um arquivo entre os dois sistemas requer uma forma de trabalhar com essas incompatibilidades, e essa é a função da camada de aplicação. O dado entregue pelo usuário à camada de aplicação do sistema recebe a denominação de SDU (Service Data Unit). A camada de aplicação, então, junta a 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.

A tabela seguinte resume as funções das diferentes camadas do modelo OSI:

CAMADA

FUNÇÃO

APLICAÇÃO

Funções especializadas (transferência de arquivos, terminal virtual, e-mail)

APRESENTAÇÃO

Formatação de dados e conversão de caracteres e códigos

SESSÃO

Negociação e estabelecimento de conexão com outro nó

TRANSPORTE

Meios e métodos para a entrega de dados ponta-a-ponta

REDE

Roteamento de pacotes através de uma ou várias redes

ENLACE

Detecção e correção de erros introduzidos pelo meio de transmissão

FÍSICA

Transmissão dos bits através do meio de transmissão

Sistema Operacional de Rede

O sistema operacional de rede é um conjunto de programas que constitui o software básico de uma estação (computador) na rede. Ele oculta as peculiaridades do hardware e disponibiliza as funções necessárias para a execução de uma série de serviços computacionais de alto nível, simplificando o desenvolvimento de aplicações para os usuários. A maioria das funções do modelo OSI é implementada pelo sistema operacional de rede nas estações.

Além de gerenciar os recursos locais do computador, o sistema operacional de rede incorpora os módulos necessários para suportar toda a comunicação em rede. Esses sistemas são geralmente multiprotocolos, isto é, suportam mais de um tipo de protocolo para cada camada. Esta característica permite interligar, em uma mesma rede, computadores com sistemas operacionais de fabricantes diferentes.

Figura 2 - Relação entre o Sistema Operacional de Rede e o Modelo OSI

Conclusão

O objetivo do modelo OSI é fornecer uma base comum que permita o desenvolvimento coordenado de padrões para a interconexão de sistemas, onde o termo aberto não se aplica a nenhuma tecnologia, implementação ou interconexão particular de sistemas, mas sim à adoção dos padrões para a troca de informações, padrões esses que representam uma análise funcional de qualquer processo de comunicação.

A elaboração do modelo OSI representou um esforço na tentativa de padronização e direcionamento do desenvolvimento das novas tecnologias para a implementação de produtos de redes que fossem compatíveis entre si. Entretanto, o modelo OSI é conceitual e não uma arquitetura de implementação real de protocolos de rede. Por exemplo, a internet se baseia em um modelo de quatro camadas onde não existe a estruturação formal dessas camadas conforme ocorre no modelo OSI. Ela procura definir um protocolo próprio para cada camada, assim como a interface de comunicação entre duas camadas adjacentes.

José Maurício Santos Pinheiro
Professor Universitário, Projetista e Gestor de Redes, 
membro da BICSI, Aureside e IEC.

Autor dos livros:
 
· Guia Completo de Cabeamento de Redes ·
· Cabeamento Óptico ·
· Infraestrutura Elétrica para Redes de Computadores
·
· Biometria nos Sistemas Computacionais - Você é a Senha ·

E-mail: jm.pinheiro@projetoderedes.com.br

blog comments powered by Disqus
© www.projetoderedes.com.br - Termos e Condições de Uso