Você está na página 1de 6

Uma rpida explicao do modelo OSI

Imagine que o objetivo de uma rede simplesmente transportar os bits uns e zeros usados pelos programas de um ponto a outro. Da mesma forma que as trilhas da placame transportam informaes do processador para a memria RAM, os cabos de par tranado da rede (ou os transmissores de rdio das redes wireless) permitem transportar as mesmas informaes de um PC a outro. Do ponto de vista do aplicativo, faz pouca diferena acessar um arquivo gravado diretamente no HD ou acess-lo a partir de um compartilhamento dentro da rede, ou na Internet. Em ambos os casos, o prprio sistema operacional (com a ajuda do TCP/IP e das demais camadas que formam a rede) quem acessa o arquivo e o entrega completo ao programa. Entra em cena, ento, o famoso modelo OSI, que tenta explicar o funcionamento da rede, dividindo-a em 7 camadas: 7- Aplicao (aqui est o programa, que envia e recebe dados atravs da rede) 6- Apresentao 5- Sesso 4- Transporte (aqui entra o protocolo TCP e o sistema operacional, que controla a transmisso dos dados, detectando problemas na transmisso e corrigindo erros) 3- Camada de Rede (aqui est o protocolo IP) 2- Link de dados (aqui esto as placas de rede e os switches) 1- Camada Fsica (aqui esto os cabos e os hubs) Embora seja apenas um modelo terico, que no precisa necessariamente ser seguido risca pelos protocolos de rede, o modelo OSI interessante, pois serve como deixa para explicar diversos aspectos tericos do funcionamento da rede. Existem livros e cursos dedicados inteiramente ao assunto, que tentam explicar tudo detalhadamente, classificando cada coisa dentro de uma das camadas, mas na verdade entender o modelo OSI no to difcil assim. Tudo comea com o aplicativo que precisa acessar alguma informao na rede. Digamos que voc abriu o navegador e est acessando o http://guiadohardware.net. Estamos na camada 7 (aplicao), onde o programa simplesmente solicita os arquivos para o sistema operacional, sem se preocupar com o que precisa ser feito para obt-lo. como quando voc compra um produto em uma loja online: voc no est preocupado com a logstica envolvida, sabe apenas que daqui a dois dias o produto vai chegar na sua casa via sedex. Ao receber a solicitao, o sistema operacional abre uma sesso (camada 5). Ela funciona de uma forma semelhante a um ticket de suporte: aberta ao receber a solicitao e fechada apenas quando o problema resolvido, ou seja, quando o programa recebe de volta os dados que solicitou. Como um bom atendente, o sistema operacional ficar de prontido durante todo o processo, aguardando a resposta do servidor e verificando se todos os arquivos chegaram corretamente ao aplicativo. Caso necessrio, ele solicita retransmisses dos

pacotes que se perderam e, caso eventualmente no seja possvel atender a solicitao (a conexo est fora do ar, por exemplo), ele reporta o erro ao aplicativo, que exibe ento alguma mensagem de erro, avisando do problema. Depois de abrir a sesso, o sistema "vai luta": verifica qual o endereo IP do site, qual protocolo ser usado e outras informaes necessrias, para ento enviar a requisio ao servidor que hospeda o site, solicitando o envio dos arquivos que compem a pgina. Aqui j estamos na camada 4 (transporte), onde o sistema operacional faz o trabalho do atendente, que faz o pedido para a central de distribuio, contendo o item que ser entregue e o endereo de destino. Voc pode se perguntar o que aconteceu com a camada 6. No a citei no exemplo porque ela nem sempre usada. Ela funciona como uma camada extra, que usada quando necessrio fazer algum trabalho adicional. Um exemplo de uso para a camada 6 so os tneis encriptados criados usando o SSH (que permite acessar mquinas rodando Linux ou outros sistemas Unix remotamente, de forma segura). Eles fazem com que os dados sejam transmitidos de forma encriptada pela rede, aumentando a segurana de forma transparente tanto para o aplicativo quanto para o sistema operacional. Chegamos ento camada 3 (rede), onde entra em ao o endereamento IP. A requisio transformada em um pacote de dados e endereada ao endereo IP do servidor do guiadohardware.net. como se, em vez de usar e-mail ou telefone, o pedido precisasse ser enviado via carta central de distribuio, que responderia enviando o produto. O sistema operacional atua como o atendente que faz o pedido (camada 4, transporte) e verifica o status do envio (camada 5, sesso). O TCP/IP (camadas 4 e 3) seria representado, no exemplo, pelo trabalho dos correios, incluindo o envelope que contm os endereos do remetente e do destinatrio. Uma observao importante sobre o TCP/IP que ele , na verdade, composto por dois protocolos. O "TCP" trabalha no nvel 4, auxiliando o sistema operacional na criao, no envio e na checagem dos pacotes, enquanto o "IP" trabalha no nvel 3 e responsvel pelo endereamento. Os dois trabalham em conjunto, como se fossem uma coisa s, muito embora sejam dois protocolos separados. Voltando explicao, depois de criado e endereado corretamente, o pacote transportado atravs da rede local, passando pela placa de rede, pelos cabos e pelo hub (ou switch), at chegar ao gateway da rede e, a partir da, Internet. nesta fase que chegamos s camadas 1 e 2, onde feito o trabalho pesado. Em primeiro lugar, a placa de rede no entende pacotes TCP/IP, por isso que ela chamada de "placa Ethernet" e no "placa TCP/IP". Ela no sabe nem mesmo diferenciar um endereo IP do outro. Tudo o que ela conhece so endereos MAC (os endereos fsicos das placas de rede, gravados ainda em fbrica). Para despachar o pacote pela rede local (de forma que ele chegue at o gateway), ela o transforma em um "frame", contendo o endereo MAC da placa destino. como se ela colocasse o envelope original dentro de outro, que usa um endereamento mais simples.

Os endereos MAC so endereos de 48 bits, representados atravs de 12 dgitos hexadecimais (conjunto que engloba os caracteres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F), como em "00:15:00:4B:68:DB". Os endereos MAC so gravados na ROM da prpria placa, durante sua fabricao e, a menos que intencionalmente modificado, cada placa de rede possui um endereo MAC diferente. como no dinheiro: duas cdulas s possuem o mesmo nmero de srie se pelo menos uma delas for falsa. Alm do endereo de origem e de destino, o frame inclui 32 bits de CRC, que so usados pela placa de destino para verificar a integridade do frame recebido. Sempre que um frame chega corrompido, a placa solicita sua retransmisso, de forma a garantir que os dados recebidos so sempre os mesmos que foram enviados. O frame ento desmontado e os dados (o pacote TCP) so entregues ao sistema operacional. Este sistema permite que as redes Ethernet sejam usadas em redes com qualquer protocolo, sem ficarem restritas ao TCP/IP. A rede age como uma camada genrica de transporte, com suas prprias regras, que se limita a transportar informaes de um ponto a outro, sem tentar entender o contedo dos pacotes. Embora os termos "frame" e "pacote" sejam freqentemente usados como sinnimos, ao longo do livro procurarei manter o uso da designao correta, usando o termo "pacote" quando estiver me referindo aos pacotes TCP e o termo "frame" quando estiver me referindo s transmisses das placas de rede. Hoje em dia, o TCP/IP o protocolo dominante, mas antigamente ele concorria com um grande nmero de outros protocolos de rede, como o NetBEUI e IPX/SPX. Graas neutralidade das redes Ethernet, no era necessrio alterar o cabeamento da rede ao mudar de protocolo, tudo o que voc precisava fazer era mudar a configurao do sistema operacional. Era possvel at mesmo manter vrios protocolos diferentes instalados. Outra peculiaridade do sistema Ethernet a forma como os dados so transmitidos. Hoje em dia, quase todas as redes locais utilizam cabos de par tranado, mas quando o padro Ethernet foi criado, as redes ainda utilizavam cabos coaxiais, onde todas as estaes eram ligadas no mesmo cabo. Porm, graas s origens, as redes Ethernet utilizam at hoje uma topologia lgica de barramento: independentemente da forma como os micros esto fisicamente interligados, eles se comportam como se estivessem todos ligados no mesmo cabo:

Como apenas uma estao pode falar de cada vez, antes de transmitir dados a estao ir "ouvir" o cabo. Se perceber que nenhuma estao est transmitindo, enviar sua transmisso, caso contrrio, esperar at que o cabo esteja livre. Este processo chamado de "Carrier Sense" ou "Sensor Mensageiro":

Contudo, quando duas estaes ouvem o cabo ao mesmo tempo, ambas acabam percebendo que o cabo est livre e enviam seus frames simultaneamente. Temos, ento, uma coliso de dados. Para lidar com as colises e permitir que a rede funcione apesar delas, foi implantado o sistema CSMA-CD ou "Carrier Sense Multiple Access with Collision Detection", que, apesar do nome pomposo, funciona de forma relativamente simples. Para detectar as colises, as estaes monitoram as transmisses no cabo enquanto transmitem. Ao perceber que outra estao est transmitindo ao mesmo tempo, ela imediatamente pra de transmitir e gera um sinal de interferncia, que elimina todos os dados que estiverem trafegando pelo cabo e ao mesmo tempo avisa as demais estaes de que uma coliso ocorreu e que todas devem parar de transmitir. Entra em cena ento o algoritmo Binary Exponential Backoff, destinado a evitar que as estaes voltem a tentar transmitir simultaneamente, entrando em um loop eterno de colises e retransmisses. O sistema baseado em slots de tempo, cada um com 51.2 microssegundos, valor que corresponde ao tempo mximo que o sinal demora para percorrer o cabo e se propagar para todas as demais estaes em uma rede montada dentro dos padres. Inicialmente, as estaes escolhem entre voltar a transmitir imediatamente ou esperar 1 slot de tempo antes de voltar a retransmitir. Se houver duas estaes envolvidas, a possibilidade de haver uma nova coliso de 50%, de forma que as estaes j ficam de sobreaviso. Se uma nova coliso ocorre, o nmero de possibilidades dobrado e elas passam a escolher entre esperar 0 e 3 slots de tempo, reduzindo a possibilidade para 25%. Se as colises continuarem ocorrendo, o volume de combinaes vai crescendo exponencialmente, at chegar a 1024 possibilidades (de 0 a 1023 slots de tempo), na dcima tentativa, que o valor mximo permitido pelo algoritmo. So feitas ento mais 6 tentativas usando o valor mximo. Caso as colises persistam (o que quase impossvel, a menos que exista algum problema de hardware em uma das placas ou no hub), a retransmisso abortada e o erro reportado ao sistema operacional. Voc recebe ento um erro de "conexo encerrada" ou similar. Em situaes normais, as estaes conseguem transmitir na segunda ou terceira tentativa, o que causa uma perda de tempo relativamente pequena. As colises so uma ocorrncia absolutamente normal e esperada. O problema que em redes com muitas estaes, as colises podem reduzir bastante o desempenho da rede. A soluo nesses casos dividir a rede em segmentos menores, interligados por bridges, switches ou roteadores, como veremos em detalhes no captulo 1.

Pode parecer estranho estar falando sobre os cabos coaxiais que, felizmente, deixamos de usar h mais de uma dcada, mas esses mesmos princpios continuam vlidos nas redes wireless, onde todos os micros esto ligados no mesmo "cabo" (o ar) e as transmisses de todos os micros da rede so recebidas por todos os demais, de forma que as colises de pacotes so frequentes, assim como nas antigas redes com cabo coaxial. Nas redes wireless, as colises no se limitam aos micros da sua prpria rede, mas a todos os participantes de redes prximas, que estejam operando na mesma faixa de frequncia. Como voc pode imaginar, isso pode rapidamente se tornar um problema em regies densamente povoadas, como em centros financeiros e em grandes conjuntos habitacionais, como veremos em mais detalhes no captulo 3. Em uma rede com cabos de par tranado, temos a figura do hub (ou switch), que atua como a figura central que interliga todos os micros, criando uma topologia de estrela:

Se temos cabos separados para cada micro, voc pode imaginar que no existe o problema das colises, pois, afinal, o hub pode encaminhar as transmisses diretamente de um micro a outro. aqui que entra diferena entre os antigos hubs e os switches, usados atualmente. Explicar a diferena entre os dois uma boa forma de explicar a diferena entre as camadas 1 e 2 do modelo OSI. Os hubs so dispositivos burros, que operam na camada 1. Eles no entendem pacotes nem endereos de rede, simplesmente pegam os uns e zeros que recebem em uma porta e os retransmitem para todas as outras. O hub atua simplesmente como um centralizador e repetidor, no mais inteligente que um pedao de cabo. Ao usar um hub, as colises continuam ocorrendo, exatamente como aconteceria se voc estivesse usando uma rede antiga, com cabo coaxial. Os switches, por sua vez, trabalham na camada 2, assim como as prprias placas de rede. Eles entendem frames e endereos MAC e por isso so capazes de "fechar circuitos", transmitindo os frames apenas para o micro ligado na placa correta. Cada porta ligada a um circuito separado, que so coordenados por um controlador central,

que mantm uma tabela com os endereos MAC das estaes ligadas a cada porta e pode assim checar o contedo de cada frame e encaminh-lo porta correta. Apesar disso, os switches no entendem TCP/IP. Isso trabalho para os roteadores, que trabalham na camada 3 e tomam suas decises baseadas nos endereos IP dos emissores e destinatrios dos pacotes, tentando sempre usar a rota mais curta. Ao receber um frame Ethernet, o roteador descarta os endereos MAC e as demais estruturas adicionadas pela placa de rede, ficando apenas com o pacote TCP dentro dele. por isso que no possvel usar regras de firewall baseadas em endereos MAC para hosts da Internet, ao contrrio do que temos ao criar regras para os endereos da rede local. Veremos mais detalhes sobre estas diferenas entre hubs, switches e roteadores logo a seguir, no captulo 1. Para detalhes sobre os pacotes TCP, frames Ethernet e o uso dos endereos MAC, consulte o captulo 4.