O Modelo OSI

Standard

O modelo de referência OSI (RM-OSI ou ISO-7492) foi proposto pela ISO (International Standards Organization) em 1977 com o objetivo de padronizar internacionalmente a forma com que os fabricantes de software/hardware desenvolvem seus produtos. Esta arquitetura é um modelo que divide as redes de computadores em sete camadas, de forma a se obter camadas de abstração. Cada protocolo determina o funcionamento de um conjunto de serviços assinalados a uma determinada camada (TANENBAUM, 1998),

O Open (aberto) no nome do modelo significa que o sistema desenvolvido a partir deste modelo estará apto à interconexão com outros sistemas que sejam desenvolvidos de acordo com o mesmo modelo e não tem nenhuma relação com o movimento open source (código aberto).

O objetivo do modelo aberto é atingir os seguintes ideais:

  • Interoperabilidade: capacidade que os sistemas abertos possuem de trocar informações entre si, mesmo que sejam fornecidos por fabricantes diferentes em tempos diferentes;
  • Interconectividade: a capacidade de conectar equipamentos produzidos por fabricantes diferentes e para funções diferentes;
  • Portabilidade da Aplicação: a capacidade de um software rodar em várias plataformas diferentes;
  • Escalabilidade: A capacidade de um sistema rodar em máquinas diferentes com a mesma eficiência.
O Modelo OSI

O Modelo OSI

Figura 2 – Camadas do modelo OSI – adaptado de (FARIAS, 2011)

As Camadas do Modelo OSI

Aplicação

A camada de aplicação dentro do processo de comunicação é representada pelo usuário. Ou seja, para o modelo OSI, esta camada seleciona os serviços que serão fornecidos por funções das camadas mais baixas, de acordo com as solicitações do usuário. Solicitações essas feitas diretamente aos sistemas em uso na máquina. Esta camada providencia os serviços diretamente relacionados com os usuários, a saber:

  • Identificação da intenção das partes envolvidas na comunicação
  • Disponibilidade e autenticidade das partes envolvidas
  • Estabelecimento de autoridade para comunicar-se
  • Acordo sobre o mecanismo de privacidade
  • Determinação de recursos adequados
  • Sincronização de cooperação para aplicações
  • Responsabilidade da recuperação de erros de estabelecimento
  • Acordo na validação de dados
  • Transferência de informações

Apresentação

Esta camada é responsável pela representação da informação e pela preservação do sentido da mensagem em um determinado espaço de tempo resolvendo diferenças de sintaxe. Em geral essa camada provê os seguintes serviços:

  • Transformação de dados
  • Formatação de dados
  • Sintaxe de seleção

Sessão

O objetivo desta camada é prover os mecanismos necessários para organizar e sincronizar o diálogo e o gerenciamento da troca de dados entre entidades de apresentação. A função principal desta camada é manter a troca de dados ordenada. E, providencia os seguintes serviços:

  • Estabelecimento de conexão de sessão
  • Liberação de conexão de sessão
  • Troca normal de dados
  • Gerenciamento de interação
  • Relatório de condições de exceção
  • Mecanismos para sincronização de conexão de sessão

Transporte

Esta camada existe para realizar a transferência de dados entre entidades em uma mesma sessão. Protocolos de transporte são empregados para estabelecimento, manutenção e liberação de conexões de transporte que representam um caminho duplo para os dados entre dois endereços de transporte. O modelo OSI define três fases de operação dentro da camada de transporte:

Fase de Estabelecimento

O objetivo desta fase é a criação de conexões entre funções de serviços das camadas mais altas e pela qualidade dos serviços de conexão. Os serviços providenciados incluem:

  • Seleção de serviços de rede, como funções de parâmetros, por exemplo: throughput[1], ajuste do tempo de transmissão e características de erros.
  • Gerenciamento de conexões de transporte para conexões de camadas mais baixas
  • Estabelecimento de tamanho apropriado para pacotes de dados
  • Seleções de funções empregadas na transferência de dados
  • Transporte de dados de camadas mais altas

Rede

A camada de rede é responsável por providenciar o transporte seguro, transparente e autônomo dos dados recebidos da camada de transporte. O formato, estrutura e conteúdo dos dados são determinados pelas camadas superiores. A função critica e mais importante desta camada é decidir a melhor rota para o tráfego de dados usando protocolos de decisão específicos.

Enlace

A camada de enlace providencia funções e procedimentos para o estabelecimento, manutenção e liberação de enlaces de dados entre as entidades da rede. Os objetivos são providenciar a transmissão de dados para a camada de rede e detectar, e possivelmente corrigir erros que possam ocorrer no meio físico. As funções desta camada são:

  • Conexão dos enlaces, ativação e desativação.
  • Mapeamento de unidades de dados para a camada de rede
  • Multiplexação de um enlace de comunicação para várias conexões físicas
  • Delimitação de unidades de transmissão para protocolos de comunicação
  • Detecção, notificação e recuperação de erros.
  • Identificação e troca de parâmetros entre duas partes do enlace

A grande maioria dos aplicativos desta camada incluem bits extras a informação para a detecção de erros e alguns poucos incluem também as funcionalidades de correção de erro.

Física

A camada física provê características físicas, elétricas, funcionais e procedimentos para ativar, manter e desativar conexões entre duas partes. As funções dentro deste nível são:

  • Ativação e desativação da conexão física entre duas entidades do nível de ligação de dados, inclusive concatenação e circuitos de dados quando solicitado pelo nível de ligação.
  • Transmissão de unidades de dados de serviço (bits), que pode ser executada de modo síncrono ou assíncrono.
  • Controle de erros

Esta camada é responsável pela transmissão dos dados bit-a-bit, ou seja, a informação que vem da camada de Enlace é transmitida de forma serial ao meio físico.

Entendemos por meio físico o ambiente responsável pela conexão propriamente dita: Cabo de cobre, fibra ótica ou antena de RF.

Não é função desta, camada detectar ou corrigir erros. O projetista desta camada deverá decidir a duração de um bit, sua amplitude, se a transmissão será half-duplex ou full-duplex, como a conexão será estabelecida, como será desfeita, com quantos bits, o formato dos cabos e a quantidade de pinos necessária para estabelecer essa conexão.

Protocolos da Internet e sua comparação com o modelo OSI

O modelo OSI, durante seu desenvolvimento, pode se beneficiar da experiência de mercado, e das tecnologias desenvolvidas para os modelos anteriores. Dentre os modelos de rede de maior sucesso estão os modelos TCP/IP e UDP/IP.

Modelo TCP/IP

O Departamento de Defesa dos Estados Unidos através da agência DARPA desenvolveu o modelo de referência TCP/IP para tentar uma estrutura que pudesse sobreviver a um ataque nuclear. Em 1983, o DARPA finalizou a conversão de todos seus computadores e exigiu a instalação do TCP/IP em todos os computadores que quisessem se conectar à ARPANET (UNISINOS , 2011).  O modelo TCP/IP é na verdade a forma popular de se referir ao conjunto de protocolos que faz com que a comunicação via internet seja possível.

O TCP (Transmission Control Protocol) – é um dos protocolos sob os quais assenta a Internet nos dias de hoje. A versatilidade e robustez deste protocolo o tornaram adequado tanto para redes locais como para redes globais. Notadamente graças a sua capacidade de verificar se os dados foram corretamente enviados e recebidos (TANENBAUM, 1998).  Trata-se de um protocolo orientado a ligação – conexão entre dois pontos. Utiliza várias técnicas especiais para garantir que os pacotes de dados sejam entregues corretamente e na ordem correta. A transmissão é feita em modo full-duplex[2] e caso a transmissão falhe os dados serão reenviados.

IP (Internet Protocol) – é um protocolo utilizado entre duas máquinas em uma rede para fazer o encaminhamento dos dados, ou seja, para indicar o caminho que os dados devem seguir na rede. Os dados numa rede são enviados em blocos chamados de pacotes ou datagramas.

No trabalho Redes de Computadores – Modelos OSI e TCP/IP (UNISINOS , 2011) podemos observar que diferentemente do modelo OSI (com sete camadas), o modelo TCP/IP tem quatro camadas, são elas:

Host/rede

O modelo TCP/IP não especifica nada no nível de host/rede. Apenas diz que o host deve se conectar ao meio físico utilizando um protocolo, a fim de que seja possível enviar pacotes IP. Este protocolo não é definido. O TCP/IP se baseia no uso de outros protocolos padrão para efetuar a conexão.

Inter-rede

A tarefa do nível Inter-rede é fazer com que pacotes enviados em um ponto da rede cheguem ao seu destino, independente de falhas em partes da rede. É possível que os pacotes cheguem ao destino em ordem diferente que partiram, obrigando as camadas superiores a reorganizar tudo.

O protocolo definido nessa camada para o modelo TCP/IP é o protocolo IP. E o roteamento é de grande importância aqui.

Transporte

O nível de transporte tem como objetivo permitir que os hosts de origem e destino conversassem independente da distância, da mesma forma que o nível quatro do modelo OSI.

Aplicação

A camada de aplicação contém os protocolos de alto nível, possuindo funções semelhantes às do nível de aplicação do modelo OSI.

Comparação entre os modelos OSI e TCP/IP

Se observarmos com cuidado o nome das camadas do modelo TCP/IP poderemos notar que os nomes de algumas camadas são idênticos aos nomes de camadas do modelo OSI. Esta semelhança entre os nomes é o principal fator de confusão. Ainda que possuam os mesmos nomes, estas camadas têm funções diferentes.

A Figura 2 retirada de Redes de Computadores – Modelos OSI e TCP/IP (UNISINOS , 2011) mostra os dois modelos de camadas lado a lado.

Modelos OSI e TCP/IP

Modelos OSI e TCP/IP

Importante destacar que a IS0 (entidade responsável pelo modelo OSI) durante a especificação do modelo pode perceber a necessidade de dividir a camada de aplicação para facilitar o desenvolvimento de software. Naturalmente os protocolos possuem semelhanças e diferenças:

Semelhanças:

  • Os protocolos são baseados em camadas;
  • Ambos têm camadas de aplicação, embora incluam serviços muito diferentes;
  • Ambos têm camadas de transporte e de rede comparáveis;
  • A tecnologia de comutação de pacotes (e não comutação de circuitos) é presumida por ambos.

Diferenças:

  • O TCP/IP combina os aspectos das camadas de apresentação e de sessão dentro da sua camada de aplicação;
  • O TCP/IP combina a camada física e de enlace do OSI em uma camada.

O protocolo TCP/IP é o padrão em torno do qual a Internet se desenvolveu. Em contraste, nenhuma rede foi criada em torno de protocolos específicos relacionados ao OSI, embora todos usem o modelo OSI para guiar seu raciocínio. Ou seja, enquanto o modelo TCP/IP representa uma metáfora real de um sistema de redes em operação o modelo OSI representa uma estrutura de desenvolvimento, em torno da qual os sistemas de acesso a redes devem ser desenvolvidos.

Provavelmente a maior contribuição do modelo OSI seja explicitar a distinção entre os conceitos de serviços, interfaces e protocolos. Desta forma, cada camada executa alguns serviços específicos para a camada imediatamente superior. A definição destes serviços define o que a camada é capaz de fazer, mas não determina como estes serviços podem ser acessados. Esta definição é determinada pela interface entre camadas.  Finalmente os protocolos utilizados por cada camada são de responsabilidade de cada camada e só são conhecidos por elas (TANENBAUM, 1998).

O modelo TCP/IP, na sua concepção, não distinguia com clareza a diferença entre serviço, interface e protocolo, embora as pessoas tenham tentado adaptá-lo ao modelo OSI. Por essa razão, os protocolos do modelo OSI são mais bem encapsulados que os do modelo TCP/IP e podem ser substituídos com relativa facilidade, conforme as mudanças da tecnologia. Um dos principais objetivos das diversas camadas de protocolos é permitir a realização dessas alterações.

O protocolo TCP/IP foi definido, graças a uma necessidade militar, antes da definição do modelo de operação. Desta forma, o modelo foi criado para descrever o funcionamento dos protocolos que já existiam e funcionavam. Infelizmente este modelo não se adaptou muito bem a outras redes operando sobre pilhas de outros protocolos que não faziam uso do TCP/IP (TANENBAUM, 1998).

Como vimos, a diferença mais destacada está no número de camadas entre os dois protocolos, sete camadas para o OSI e quatro para o TCP/IP. Ambos possuem camadas de rede (Inter-rede), transporte e aplicação. Contudo no TCP/IP a camada de aplicação corresponde a três camadas do modelo OSI e não existe no TCP/IP a especificação de uma camada física.

Outra diferença está na área da comunicação sem conexão e da comunicação orientada a conexões. Na camada de rede, o modelo OSI é compatível com a comunicação sem conexão e com a comunicação orientada a conexões; no entanto, na camada de transporte, o modelo aceita apenas a comunicação orientada a conexões, onde ela de fato é mais importante (pois o serviço de transporte é visível para os usuários). O modelo TCP/IP só tem um modo de operação na camada de rede (sem conexão), mas aceita ambos os modos na camada de transporte, oferecendo aos usuários a possibilidade de escolha. Essa escolha é especialmente importante para os protocolos simples de solicitação/resposta” (TANENBAUM, 1998).

O Modelo UDP

Em resposta a necessidade de conexão do modelo TCP/IP, foi desenvolvido um modelo de comunicação que não requer conexão para execução de comunicação. O UDP ou User Datagram Protocol. Trata-se de um protocolo com confiabilidade baixa já que não existe como confirmar o recebimento dos pacotes enviados. “O UDP faz a entrega de mensagens independentes, designadas por datagramas, entre aplicações ou processos, em sistemas host. A entrega pode ser feita fora de ordem e datagramas podem ser perdidos. A integridade dos dados pode ser conferida por um “checksum” (um campo no cabeçalho de checagem por soma) baseado em complemento de um, de 16 bits” (WIKIPEDIA(1), 2010).

O protocolo UDP utiliza o protocolo IP para resolução de endereços, da mesma forma que o protocolo TCP.  Desta forma podemos criar uma tabela de comparação entre o TCP e o UDP, apresentada na Tabela 1.

TCP

UDP

Confiável

Não confiável

Orientado a conexão

Não orientado a conexão

Pacotes de confirmação

Não requer confirmação

Pacotes enviados em sequência

Pacotes não sequenciados

Tabela 1- Comparações entre TCP e UDP

A princípio, observado a Tabela 1, podemos pensar que o protocolo UDP seja inútil, mas esta estrutura foi desenvolvida com objetivo de entregar os dados da forma mais rápida possível. Fica claro que a opção pela velocidade implica que algumas informações serão perdidas e nunca encontrarão o destinatário (receptor). Este protocolo é especialmente em casos onde uma pequena perda de dados não altera o resultado final como, por exemplo, na distribuição de vídeo e áudio via internet.

Modelos OSI, UDP e TCP/IP

Modelos OSI, UDP e TCP/IP


[1] Taxa de transferência

[2] Full-duplex modo de comunicação onde o transmissor e receptor são capazes de transmitir ao mesmo tempo (WIKIPEDIA, 2011).

Bibliografia

FARIAS, S. Comparação entre o modelo OSI e o Modelo TCP/IP. Sérgio Faria, 11 Março 2011. Disponivel em: <http://sergiofaria.teknologias.com/sistemas/infraestruturas/comparacao-entre-o-modelo-osi-e-o-modelo-tcpip-parte-2/>. Acesso em: 15 Agosto 2011.

TANENBAUM, A. S. Redes de Computadores. 3ª. ed. São Paulo: Editora Campus, 1998.

UNISINOS. Redes de Computadores – Modelos OSI e TCP/IP. Unisinos – Universidade do Vale do Paraíba, 2011. Disponivel em: <http://jpl.com.br/redes/redes_osi.pdf>. Acesso em: 04 Novembro 2011.