O Modelo ISO OSI

Antes de partir para o assunto principal deste artigo, é importante que a leitora saiba o que é a ISO - International Organization for Standardization. A ISO é uma organização internacional que tem o trabalho de definir padrões técnicos. Estes padrões são criados para que todo mundo trabalhe do mesmo jeito e fale a mesma língua.

Só para a leitora ter uma idéia, existem padrões ISO para códigos de identificação de países, padrões para formas de se escrever datas e horas, padrões para formas de representar medidas, padrões para faixas magnéticas de cartões de crédito e até mesmo padrões para definir como criar números de série para tratores.

Alguém é obrigado a seguir estes padrões? Não. Mas pode ter sérios problemas se não os seguir, pois muitas empresas só negociam com quem os segue e até mesmo porque as indústrias estão todas baseadas neles. Um exemplo disso são as faixas de cartões de crédito: o que aconteceria se uma operadora resolve fabricar os seus cartões com alguém que não segue o padrão? Como é que as máquinas vão ler a tarja magnética feita de um jeito diferente? Assim fica fácil entender a importância de se padronizar as coisas.

Pois bem, feita a apresentação da ISO, podemos seguir em frente.

Com o surgimento e avanço das redes de computadores, a ISO resolveu criar um padrão de camadas chamado Modelo OSI - Open Systems Interconnection. Surgido em 1983 e aperfeiçoado em 1995, este modelo define um conjunto de camadas que devem existir em uma arquitetura de rede para que esta possa funcionar, só que ele não define como as camadas vão trabalhar e nem como vão se comunicar umas com as outras.

Parece confuso mas não é. Usando a mesma metáfora do artigo sobre pilhas de protocolos, quando falei dos executivos que queriam se comunicar, vejamos como seria o Modelo OSI se ele definisse aquela organização. Simplificando muito, seria algo mais ou menos assim:

"Para garantir a comunicação entre dois executivos, é preciso que seja implementada uma organização com cinco camadas:

1 - A primeira camada é a dos Executivos. Esta camada tem a responsabilidade de criar e tomar conhecimento do conteúdo de cartas.
2 - A segunda camada é a das Secretárias. Esta camada tem a responsabilidade de transcrever e ler as cartas.
3 - A terceira camada é a dos Tradutores. Esta camada tem a responsabilidade de traduzir cartas de um idioma externo para um idioma comum e vice-versa.
4 - A quarta camada é a dos Correspondentes. Esta camada tem a responsabilidade de embalar e desembalar correspondências.
5 - A quinta camada é a dos Correios. Esta camada tem a responsabilidade de transportar correspondências entre dois endereços, garantindo a segurança e integridade da remessa.
"

Como se vê, o Modelo OSI não define como as coisas serão feitas ou como as camadas se comunicam. Ele apenas dá diretrizes simples e de alto nível, generalizando bastante as coisas. É como dizer que uma casa tem que seguir o modelo dois-quartos-sala-cozinha-banheiro-lavanderia-varanda. Quando você vai fazer a sua casa seguindo este modelo, o tamanho dos cômodos e sua disposição são escolha sua, o modelo em si não te impõe praticamente nada.

Já todos aqueles mecanismos adotados no artigo sobre pilhas de protocolos seriam definidos da forma abaixo.

"A implementação FalaFácil, baseada do Modelo OSI, funciona da seguinte maneira:

1 - A camada dos Executivos cria cartas gravando áudio em fitas cassete; toma conhecimento do conteúdo de cartas ouvindo fitas cassete; e entrega as cartas às Secretárias deixando as fitas cassete sobre sua mesa junto com um bilhete indicando o destinatário.
2 - A camada das Secretárias transcreve cartas ouvindo fitas cassete e digitando-as no computador; lê cartas gravando fitas cassete; entrega cartas aos Executivos colocando-as sobre a mesa com um bilhete indicando o remetente; e entrega cartas aos Tradutores enviando-as por email.
3 - A camada dos Tradutores traduz as cartas para o braile e as imprime em papel A4; recebe cartas em braile impressas em papel A4 e digita a tradução no computador; entrega cartas às Secretárias enviando-as por email, junto com o endereço do remetente; e entrega cartas aos Correspondentes grampeadas junto com o endereço do destinatário.
4 - A camada dos Correspondentes coloca cartas em envelopes e os endereça; recebe cartas envelopadas e as tira de dentro do envelope; entrega cartas aos Tradutores grampeadas junto com o endereço do remetente; e entrega cartas envelopadas aos Correios com o dinheiro para a postagem.
5- A camada dos Correios carrega cartas de um lugar a outro usando carteiros; entrega cartas aos Correspondentes nos endereços de destino; e recolhe cartas dos Correspondentes no endereço de origem.
"

Veja que aqui sim a implementação foi definida. Agora nós sabemos como as coisas funcionam e como as camadas se comunicam.

Deixando as metáforas um pouco de lado, vamos então nos aprofundar em como é organizado o Modelo OSI. A figura a seguir ilustra a sua organização, que é feita em sete camadas:



A camada física trata dos assuntos relacionados com a transmissão bruta dos bits. O projeto dos itens que fazem parte desta camada visa garantir que quando um bit 0 é enviado, que um bit 0 seja recebido, e não um bit 1. Neste nível, lida-se com questões relacionadas à freqüência e à voltagem de transmissão, à composição dos cabos e até mesmo aos pinos existentes na ponta do conector.

A camada de enlace de dados tem várias responsabilidades. A primeira é a de transformar os dados a serem enviados em quadros de dados, enviá-los seqüencialmente e confirmar que cada um deles é recebido corretamente, o que é feito com o envio de um quadro de confirmação pelo receptor. (Link da Vovó: clique e leia mais)

A segunda responsabilidade da camada de enlace é a de assegurar que um transmissor rápido não afogue um receptor lento, gerando o que chamamos de gargalo na rede. Na solução deste problema é preciso que haja algum mecanismo que permita que o receptor informe ao transmissor a sua própria capacidade de recepção, e normalmente este mecanismo é implementado juntamente com o de controle de erros de envio.

Uma terceira responsabilidade desta camada é a de controlar o acesso ao canal de dados nas redes que usam a difusão de dados.

A camada de rede tem a responsabilidade de determinar o caminho que as informações seguirão pela rede. Esta determinação pode se dar de três maneiras: a) fixa: o caminho a ser percorrido já é sabido de antemão; b) a cada conexão: no instante em que duas máquinas se ligam, um trajeto para o roteamento dos dados é escolhido; c) dinamicamente: cada pacote segue, de preferência, o caminho de menor resistência, dependendo das condições da rede.

Nos casos em que a informação tem que sair de uma rede para chegar até outra, podem ocorrer problemas com diferenças de protocolo e endereçamento, e cabe à camada de rede contornar estes problemas para que os pacotes sejam entregues corretamente.

***

Estas três primeiras camadas compõem a parte mais baixo nível de todo o modelo, trabalhando ali, bem juntinho do hardware, quando não é praticamente o próprio hardware, caso da camada física. As três camadas superiores, das quais vou falar mais adiante, compõem a parte de alto nível, do software.

E entre elas está a camada de transporte. Esta camada, cumprindo o seu papel de recheio da receita toda, é a responsável por fazer com que as três camadas superiores e as três camadas inferiores se comuniquem sem problemas.

Até aqui, nas três primeiras camadas que vimos, toda a comunicação que acontece se dá entre dois equipamentos vizinhos, o que aqui inclui não apenas computadores, mas também os roteadores, que encaminham os pacotes de um lado para outro.

Já na camada de transporte acontece, realmente, a comunicação entre os dois computadores que estão querendo se falar. A ela dá-se o nome de comunicação fim-a-fim, ou seja, uma conversa realizada entre o computador de origem com o computador destino.

O principal trabalho da camada de Transporte é receber os dados vindos da camada imediatamente superior, dividi-los quando necessário, colocar neles cabeçalhos que vão identificá-los quando chegarem ao seu destino e então repassar tudo isso para a camada inferior, para que as informações sejam enviadas.

***

A camada de sessão tem o trabalho de permitir que os usuários de máquinas diferentes estabeleçam entre eles uma... sessão. Bem óbvio, não? Talvez, mas pode haver alguma leitora que não tenha acompanhado o raciocínio, por isso vou explicar melhor. Através desta camada dois usuários estabelecem entre si uma chamada, algo como uma ligação telefônica, e é assim que os dois computadores - origem e destino - sabem que estão em um processo de comunicação. Esta camada tem a responsabilidade de controlar de quem é a vez de enviar dados e permite reiniciar uma conexão do ponto onde parou (leia-se longos downloads interrompidos).

A camada de apresentação tem como principal responsabilidade garantir que os dados enviados consigam ser interpretados pela máquina destinatária. Para isso ela pode realizar alterações nas estruturas destes dados.

Por fim temos a camada de aplicação, e é ela que está visível para os usuários. Logo, é com ela que nós interagimos quando usamos o computador. São os protocolos usados por ela que permitem que façamos tudo o costumamos fazer nas redes. Quer alguns exemplos? É nela que trabalham o protocolo HTTP, que permite a transmissão de páginas pela internet, o protocolo FTP, que permite a transmissão de arquivos, e o protocolo SMTP, que permite o envio e recebimento de emails.

Por fim, algo que já falei lá no início, mas não custa lembrar novamente: é importante que a leitora tenha em mente que o Modelo OSI, em nenhum momento diz como as camadas devem trabalhar, nem como elas têm que se comunicar. Ele é apenas o que seu próprio nome diz: um modelo, uma generalização, que por si só não faz nada.

Aí está, então, o Modelo ISO OSI. Claro que faltam muitas minúcias, mas isto é assunto para o futuro. Daqui a alguns dias vou publicar um exemplo de como todas estas camadas trabalham juntas quando estamos usando uma rede e, com o tempo, virão novos artigos detalhando cada uma delas, seus relacionamentos e os protocolos que elas usam para se comunicar.

***


Links interessantes:

  • Veja aqui o que já foi publicado no Vovó Viu a Rede sobre a camada física.

  • 4 comentários:

    Tiago Frossard disse...

    Pois é. Eu fico bolado como vc explica d uma forma tão simples, enquanto a gente penô prá aprendê isso....

    Foda, não?!

    Mário Marinato disse...

    Realmente, tem muita coisa que a gente aprendeu muito mal.

    Mas ainda não tá do jeito que eu quero, não. Vovó ainda se complicou com algumas coisas.

    Valeu pela presença.

    Daniel Josac disse...

    Meus parabéns novamente, estou estudando para concurso em seu site.
    Parabéns

    Mário Marinato disse...

    Novamente obrigado, Daniel.

    Espero que o Vovó Viu a Rede te ajude a passar no concurso. Depois passa aqui pra contar como foi, valeu?

    Abraço.