O Que Vem Por Aí: Meios de Transmissão

Depois de um pouco de teoria sobre redes, este blog vai começar agora a botar um pouco mais a mão na massa. O primeiro passo é sobre a camada física de todo o modelo de redes, e o assunto inicial serão os meios de transmissão.

São eles:

Meios guiados: são os fios de cobre e fibras óticas. Vamos ver coisas sobre pares trançados, cabos coaxiais, fibras óticas, cabos de fibras, etc.

Meios sem fio: são as transmissões de curta e média distância. Trataremos de transmissão de rádio, microondas, infravermelho, ondas de luz, etc.

Satélites: permitem transmissões globais sem fio. Veremos quais são seus tipos e algumas aplicações comerciais disponíveis para o público em geral.

***


Antes de entrar nestes tópicos, o livro fala um pouco sobre a física da camada física. Eu explico: ele trata de assuntos como equações para cálculo de capacidade de transmissão em uma determinada largura de banda, harmônicos, potência de ruído, potência de sinal, fórmulas matemáticas cheias de senos e co-senos, e outras coisas beeeeem complicadas e de baixo nível.

Como meu objetivo no estudo de redes de computadores não é saber destes pormenores, eles vão passar longe do Vovó Viu a Rede. Além do que, minha avó nunca gostou muito de física.

O que é ISO? O que é IEEE?

Quando o assunto é tecnologia, sopas de letrinhas sempre aparecem. Assustadoras à primeira vista, elas sempre se revelam simples depois que se entende o que está por trás delas. Estas duas aí de cima, ISO e IEEE, sempre me assustaram. Principalmente a segunda, por estar sempre relacionada com um assunto que, sozinho já me dava calafrios: redes de computadores.

Quando eu via estes nomes, sempre acompanhados de alguns números ainda mais enigmáticos, já ficava assustado, pronto pra dizer que "Deus do céu, eu não entendo essas coisas, estou na profissão errada". Sorte que não desisti, pois a coisa é muito mais simples do que meus medos podiam prever.

Com certeza, a mais conhecida das duas é a ISO, pois costuma aparecer mais na mídia. Hoje em dia tem até cartório propagandeando seguir a ISO 9000. Descobri o significado desta sigla há coisa de dois anos, quando fiz a cadeira de Controle de Qualidade na faculdade. Já a IEEE fui entender há muito pouco tempo, graças ao livro que estou usando para aprender sobre redes. Compartilho então meu aprendizado com vocês minhas leitoras que também não venham a ter este medo bobo que eu costumava ter.

ISO e IEEE são os nomes de duas organizações sem fins lucrativos: a International Organization for Standardization e o Institute of Electrical and Electronics Engineers. Traduzindo: Organização Internacional para Padronizações e Instituto de Engenheiros Eletricistas e Eletrônicos.

A primeira é uma organização não-governamental que abriga sob seu teto entidades de vários países que executam o trabalho de definir normas e padrões técnicos e de qualidade. Quando existe a necessidade de implementar uma norma ou um padrão em escala mundial, é a ISO que organiza os grupos de estudo, compostos por gente de todas as entidades associadas, que vão discutir as melhores práticas a serem adotadas e então criar as normas ISO.

Existem muitas destas normas, a maioria delas, altamente específicas, como regras para definir como calcular o tempo de vida de CDs até como grãos de cacau serão empacotados e desinfetados. A mais famosa delas, com certeza, é a 9000, que define padrões de qualidade para qualquer tipo de empresa.

Já a IEEE (lê-se i-três-é), como o próprio nome diz, é uma organização que tem como associados engenheiros eletricistas e eletrônicos. Seu trabalho é parecido com o da ISO, só que no seu caso, as regras e padrões definidos por ela dizem respeito apenas a assuntos relacionados com engenharia elétrica e informática. Além disso, ela publica jornais e revistas com artigos relacionados a estes assuntos.

Em seu trabalho, a IEEE constitui vários comitês, que vão realizar estudos e discussões sobre um assunto específico. Um deles é o que lida com um dos assuntos deste blog que vos fala: as LANs. O comitê 802 já padronizou vários tipos de LANs diferentes, e mesmo que alguns destes padrões não tenham tido uma vida muito longa, os que realmente deram certo causaram grande impacto em toda a comunidade da informática. São eles o IEEE 802.3 (Ethernet), padrão para LANs com fio; o IEEE 802.11 (WiFi), padrão para LANs sem fio; e o IEEE 802.15 (Bluetooth), padrão para redes pessoais sem fio.

Como se vê, apesar de enigmática a princípio, a sopa de letrinhas não tem nenhum mistério para quem a quer desvendar. Se a leitora quiser aprofundar os conhecimentos sobre o assunto, os links abaixo são um prato cheio:

Site oficial da ISO
Site oficial do IEEE
IEEE no Brasil
Busca de padrões ISO

As Redes ATM e o Modelo ATM

Minha querida leitora já viu em algum lugar, ou em algum filme, aquelas correntes humanas para carregar coisas mais rápido, não viu? Tem-se uma fila enorme de gente, e o primeiro pega alguma coisa e dá a quem está ao seu lado, que passa para outro, para outro, para outro, e por aí vai até o fim da fila.

Agora imagine uma fila destas formada apenas por pessoas cegas, surdas e mudas. Não estou falando de algumas cegas, algumas surdas e algumas mudas, não! Estou falando de todas serem cegas e surdas e mudas, ao mesmo tempo. O que é preciso para que estas pessoas consigam carregar as coisas de um lado para outro? Um puta sincronismo: sem ele, vai cair tudo no chão. Todas estas pessoas são treinadas para saber o tempo que têm que durar os seus movimentos, de forma que tudo possa ser transportado com perfeição.

Saiba então que é mais ou menos assim que funcionam as redes de telefonia: sempre sincronizadas, com um reloginho marcando o compasso, de forma que a transmissão vá de um ponto a outro em alta velocidade, sem risco de perda de informações.

Até o início da década de 90, praticamente todas as redes de computadores funcionavam usando a infra-estrutura telefônica já existente para realizar as suas transmissões, mas eis que uma nova tecnologia surgiu e ganhou muita força: o ATM (Asynchronous Transfer Mode - Modo de Transferência Assíncrono).

A grande sacada desta tecnologia foi acabar com o sincronismo. Com ela, as pessoas da fila deixavam de ter deficiências: todas falavam, ouviam e viam. Daí, quando tinham que entregar algo para a pessoa do lado, elas avisavam antes; e também avisavam quando não tinham mais nada para entregar. A falta de sincronismo não prejudicava o carregamento.

Uma outra metáfora que se pode fazer para diferenciar as transmissões síncronas e as assíncronas é comparar os atos de pegar o metrô e um táxi. Com o metrô você tem que estar sincronizado: ele tem hora pra chegar e pra sair, e se você der mole, perde a condução. Além disso, também tem a hora certa de descer. Já com o táxi a história é outra, basta fazer sinal que o transporte começa, e basta dizer onde você quer ficar que ele pára.

É exatamente assim que as redes de tecnologia ATM funcionam: quando alguém quer iniciar uma transmissão, sua máquina emite um sinal em direção ao receptor dizendo "aí, vou transmitir umas paradas, toma lá". Quando o receptor recebe esta mensagem, ele fica pronto para receber. Quando termina de enviar, o transmissor avisa que "ó só, terminei de mandar, valeu, um abraço".

Apesar de não serem muito utilizadas hoje em dia em redes pequenas, de escritórios e empresas, as redes ATM são muito utilizadas, veja só, pelas empresas de telefonia, no transporte de pacotes IP em suas redes internas.

***

Transmitindo


As redes ATM são orientadas a conexão, ou seja, para que os dados sejam enviados, o transmissor primeiro precisa avisar que vai enviar algo, para que a conversação seja estabelecida. Ele não pode simplesmente jogar uma informação para o receptor dizendo "aí, pensa rápido". Antes ele tem que dizer "aí, se liga" e esperar o receptor responder "tá, pó falá".

Supondo que o computador A queira enviar uma mensagem para o computador B, ele primeiro envia um pacote de configuração que, ao passar pela rede, vai sendo registrado pelos roteadores. Desta forma, os roteadores também sabem que existe uma conexão passando por ali, e já reservam recursos para ela. Desta forma, a conexão entre as duas máquinas é sempre fixada, e as informações percorrem sempre o mesmo caminho. A esta conexão fixa das redes ATM costuma-se dar o nome de "circuito virtual".

As informações a serem transmitidas pela rede ATM são divididas em pequenas células de 53 bytes cada uma. Destes, 48 são a informação propriamente dita e 5 são para a formação de um cabeçalho de controle. Este cabeçalho contém duas informações essenciais para que as células cheguem ao seu destino: o número de ordem da célula, para que o receptor saiba que todas as células chegaram e consiga montá-las; e o código da conexão, para que os roteadores saibam para onde devem repassá-las.

A adoção de células de tamanho fixo e pequeno traz a vantagem de tornar a transmissão mais veloz, pois o repasse delas é feito via hardware. Quando o tamanho dos pacotes é variável, o seu repasse deve ser controlado via software, o que torna o processo mais lento. Além disso, o tamanho reduzido das células faz com que elas são ocupem muito tempo as linhas de transmissão, garantindo que a rede fique mais tempo disponível, o que se traduz em uma qualidade de serviço maior.

***

O Modelo ATM


Por ser uma tecnologia nova e diferente de tudo o que já era usado até então, o surgimento do ATM levou à criação de sua própria pilha de protocolos, que consiste de basicamente três camadas: a camada de adaptação ATM, a camada ATM e a camada física, sendo que a primeira e a terceira têm, cada uma, duas subcamadas. O esquema pode ser visto na figura abaixo:



A camada física, como o próprio nome diz, é a que tem a responsabilidade de lidar diretamente com o hardware.

Sua subcamada PMD faz a ligação com o cabo propriamente dito. É ela que transforma os bits a serem enviados em sinais elétricos, telefônicos, luminosos, ou seja lá qual for a tecnologia de transmissão, que são então transmitidos. É ela, também, que recebe estes sinais e os decodifica em bits.

Já a subcamada TC é a que pega as células a serem enviadas e as transforma em uma série de bits, que são então repassados para a subcamada PMD. No sentido inverso, ela recebe uma série de bits e os transforma de volta em células.

A camada ATM é o coração de todo o esquema. É dela a responsabilidade de cuidar de toda a comunicação entre o transmissor e o receptor, definindo como é o cabeçalho que acompanha as células, marcando e liberando os circuitos virtuais e controlando o tráfego de dados para evitar congestionamentos.

A camada de adaptação ATM serve de interface entre o usuário e todo o modelo. Sua subcamada SAR segmenta as informações do usuário em células e as remonta ao seu formato original. Já a subcamada CS é a que fornece os serviços do modelo aos programas do usuário: transferência de arquivos, streaming de vídeo, etc.

***

Um Exemplo Prático


Para fechar este artigo vamos ver um exemplo prático para a leitora ter uma melhor noção de como o modelo funciona.

Vamos supor que a conexão já tenha sido estabelecida e que uma usuária esteja usando um programa de bate papo em uma rede ATM. A seqüência de ações que acontece quando ela clica no botão de enviar mensagem é mais ou menos a seguinte:

- O programa de bate papo - subcamada de convergência - pega a mensagem, transforma em um "pacote de bate papo" e repassa este pacote para a subcamada de segmentação e remontagem.

- A subcamada de segmentação e remontagem divide este pacote em várias células e as repassa para a camada ATM.

- A camada ATM pegas estas células, numera e repassa para a subcamada de convergência de transmissão.

- A subcamada de convergência de transmissão pega as células preparadas, converte em seqüências de bits e repassa estas seqüências para a subcamada dependente do meio físico.

- A subcamada dependente do meio físico transforma estas seqüências em sinais e as repassa para os cabos da rede.

- Os cabos levam o sinal ao receptor.

- A subcamada dependente do meio físico recebe os sinais, converte-os para uma seqüência de bits e entrega a seqüência para a subcamada de convergência de transmissão.

- A subcamada de convergência de transmissão pega as seqüências e remonta as células, repassando-as para a camada ATM.

- A camada ATM verifica se tudo chegou nos conformes, se não faltou nada, e repassa as células, já sem os cabeçalhos, para a camada de segmentação e remontagem.

- A camada de segmentação e remontagem pega estas células e, oh, remonta-as, tornando o "pacote de bate papo" íntegro novamente. Por fim, repassa este pacote para o programa de bate papo.

- Finalmente, o programa de bate papo desempacota o que recebeu e exibe a mensagem na tela do computador.

***


Este é, enfim, o ATM, uma tecnologia que surgiu como promessa de solução para todos os problemas que surgiam quando a internet começava a despontar, mas que hoje, com o surgimento de novas tecnologias, mais eficazes e confiáveis, começa a caminhar para o desuso.

O Modelo TCP/IP

Além do modelo ISO OSI, existe um outro modelo de referência para a implementação das camadas de uma rede, chamado modelo TCP/IP. Alguma leitora que tenha um conhecimento de redes um pouco melhor do que o meu pode argumentar dizendo que, ora bolas, TCP e IP são dois protocolos e não o nome de um modelo. Sim, estes são dois protocolos, mas por serem os principais protocolos usados no modelo, o nome deles foi adotado como o nome mesmo. É quase o que acontece com as marcas que viram sinônimo do próprio produto - gilete, xerox, cotonete.

Assim como o modelo ISO ISO, a função do modelo TCP/IP é a de definir um padrão de camadas a serem implementadas na arquitetura de uma rede. Uma das diferenças encontradas quando comparamos os dois modelos é a quantidade de camadas, que aqui são apenas quatro. Abaixo temos uma figura que ilustra a sua organização:



A camada host/rede tem a responsabilidade de enviar pacotes IP. Esta, infelizmente, não vou saber explicar aqui, pois o próprio livro diz que não há muita documentação a respeito dela. Palavras do autor: "Esse protocolo não é definido e varia de host para host e de rede para rede. Os livros e a documentação que tratam do modelo TCP/IP raramente descrevem este protocolo".

***


A camada inter-redes é o coração de toda a arquitetura do modelo. Ela tem a função de permitir que qualquer um possa enviar informações pela rede e garantir que estas informações sejam devidamente entregues, independentemente da rede de destino, mesmo que ela seja diferente.

Pelo fato de haver a necessidade de interligar várias redes diferentes, que falam "idiomas" diferentes, a camada inter-redes dita a regra de que toda informação a ser enviada deve ser dividida em pacotes antes de partir em direção ao seu destino, pacotes estes que são padronizados na própria especificação do modelo. O protocolo que define como são os pacotes e como os aplicativos da camada inter-rede vão se comunicar se chama Internet Protocol (IP).

É importante notar que o termo "Internet" aqui não tem nada a ver com a internet em si. Uma tradução possível para Internet Protocol seria "protocolo para interligar redes", e não "protocolo da internet". Ou seja, internet aqui não é substantivo, mas sim adjetivo (tal qual internacional, intersocial e interracial).

A tarefa de entregar os pacotes inclui várias responsabilidades para a camada inter-redes. Entre elas estão a de fazer o roteamento dos pacotes IP, ou seja, definir qual será a rota que eles tomarão para chegar ao seu destino; e também evitar que ocorram congestionamentos na rede, ou seja, saber que um certo percurso já está sendo muito usado e então redirecionar os pacotes IP para outro caminho menos obstruído.

***


Estas duas primeiras camadas têm a função principal de permitir a conversação entre dois equipamentos adjacentes na rede. Já através da camada de transporte, assim como acontece no modelo ISO OSI, é que os equipamentos de origem e destino fazem a sua conversação, a chamada conexão fim-a-fim.

Como forma de garantir a comunicação entre as duas máquinas que querem se comunicar, foram definidos dois protocolos diferentes: o TCP e o UDP.

O protocolo TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão), como o próprio nome diz, é usado no controle da transmissão dos dados, garantindo que esta se dê de forma confiável, pois assegura a entrega de dados sem erros: se um pacote não chega ou se chega corrompido, o protocolo toma medidas para corrigir o problema. Além disso, o protocolo TCP também é responsável pelo controle do fluxo dos dados, impedindo que um transmissor rápido sobrecarregue um receptor lento. A maioria das aplicações usa este protocolo para transmitir seus dados: desde programas de email até programas de gerenciamento de downloads.

Para fazer uma metáfora, um AR enviado pelos Correios é exatamente isso. Você envia uma carta e pede para ser avisado de que ela chegou. Se seu AR não chegou depois de um tempo, você escreve outra e manda de novo. (Tudo bem, eu sei que você não manda outra: você liga para saber o que houve, mas deu pra entender, não deu?)

Já o protocolo UDP (User Datagram Protocol - Protocolo de Datagrama de Usuário) é usado na transmissão de informações de forma não confiável, não garantindo a entrega dos dados sem erros. A leitora talvez pergunte pra que alguém vai querer usar um protocolo que não transmite os dados de forma confiável, mas saiba que isso é muito mais comum do que se pode pensar: os programas de transmissão de áudio e vídeo usam este protocolo. Se não fosse assim, seria impraticável assistir a uma transmissão ao vivo de um show ou então ouvir uma rádio pela internet: o receptor indicaria a perda de um pacote, o transmissor iria mandá-lo de novo, e outro, e outro, interrompendo o vídeo a toda hora, e quando você finalmente terminasse de assistir ao show o artista já estaria em casa descansando.

Usando uma metáfora, as transmissões de rádio convencional funcionam assim. A emissora envia as ondas de rádio e seu aparelho vai recebendo e tocando o que chegou. Se por um acaso ele não recebeu as ondas porque você entrou em um túnel, babau, já era, a rádio não vai tentar enviar de novo aquele trechinho da narração do jogo que dizia que o Romário chutou e xxssssxsxssssxs...

***


Por fim, temos a camada de aplicação, que é aquela com a qual lidamos diretamente. Bem, não tão diretamente assim: nós usamos os programas e eles usam os protocolos que fazem parte da camada de aplicação para executar o que pedimos. Estes protocolos são vários: o SMTP para envio de mensagens de email, o DNS para fazer a relação entre um endereço textual (o www-ponto-alguma-coisa) para o seu endereço numérico real, o HTTP para transferência de páginas da internet, entre muitos outros.

***


Este é, enfim, o modelo TCP/IP. Apesar de ser mais antigo do que o modelo ISO OSI - o modelo TCP/IP nasceu em 1974 - ele é hoje mais usado do que seu primo mais novo, servindo de base para a grande maioria das redes atuais, e merece toda a atenção de quem pretende entender de redes.

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.

  • Pilha de Protocolos

    Já dizia minha avó que se não é possível matar um bicho de sete cabeças, então você deve antes transformá-lo em sete bichos de uma cabeça só. Este mesmo conceito é aplicado em muitos projetos de informática: para reduzir a complexidade do projeto, ele é dividido em projetos menores e independentes mas com a capacidade de se comunicar entre si.

    Em análise de sistemas isso se chama indireção, para os administradores isso é delegar, para os vagabundos isso é tirar o seu da reta, mas aqui vamos chamar de fatiamento. As redes de computadores, assunto complexo à primeira vista, são sempre resolvidas através do fatiamento, criando vários níveis que se comunicam entre si, as chamadas pilhas (ou camadas) de protocolos.

    Vamos nós a mais uma metáfora para entender melhor como isso acontece.

    Imagine que um Executivo brasileiro queira mandar uma carta para um Executivo japonês. Se não houvesse o fatiamento, ele precisaria, primeiro, aprender japonês. Depois de aprender japonês e escrever sua carta, ele teria, então, que descobrir o endereço para onde deveria mandar a carta. Depois de descobrir o endereço, ele deveria, então, levar a carta até o Japão, e entregar pessoalmente a correspondência. Trabalhoso, não?



    O primeiro fatiamento possível aqui seria o Executivo contratar alguém para levar a carta até o japonês. Para ele, tanto faz se o cara pega um navio ou avião para chegar ao Japão, ou mesmo se vai andando. Além disso, também não importa ao Executivo como o Entregador descobre o endereço.

    Os níveis, apesar de se comunicarem, são independentes, e o que importa é que a carta chegue. Além disso, para o Entregador, pouco importa o que tenha que levar, seu serviço é apenas entregar, não importa o que.



    O segundo fatiamento ficaria a cargo do Entregador. Ao invés de ele mesmo pegar a carta e levar até o Japão, ele passa a contar com os serviços dos Correios. Além disso, ele passa a ter outro nome, passando a se chamar Correspondente. Este fatiamento acontece também no Japão, pois o Executivo de lá é esperto e copiou a idéia do brasileiro.

    Novamente, o novo nível, dos Correios, é independente. Para os Correspondentes, pouco importa o modo usado pelos Correios para fazer a carta chegar ao outro lugar - avião, a pé, email ou teleporte - o que importa é que chegue. E repare que o Executivo não precisa nem saber que existe um outro nível depois do Correspondente: o serviço prestado a ele continua sendo o mesmo.



    Depois disso, o Executivo vê que aprender japonês não vai ser uma boa e fatia de novo, contratando um Tradutor. Mas não um Tradutor comum! Aqui todos os Tradutores falam apenas duas línguas: braile e a língua de quem o contratou. É bom que seja assim porque todos os Tradutores conseguem conversar entre si. Vejamos o que passa a acontecer:

    - O Executivo brasileiro escreve a carta em bom português a entrega para o Tradutor, dizendo a ele para traduzir e mandar para o Japão.
    - O Tradutor traduz a carta para o braile e a entrega para o Correspondente, dizendo a ele para mandar para o Japão.
    - O Correspondente põe a carta nos Correios, endereçada ao Japão.
    - Os Correios levam a carta ao Japão e entregam-na ao Correspondente de lá.
    - O Correspondente entrega a carta ao Tradutor, para que ele a traduza e a repasse para o Executivo japonês.
    - O Tradutor traduz a carta do braile para o japonês e a entrega ao Executivo.

    O que aconteceu? O Executivo brasileiro deixou de se preocupar com o idioma, mas para o Correspondente quase nada mudou, pois seu serviço continua sendo pegar as cartas e pedir aos Correios para entregar coisas. A única diferença é que, agora, ao invés de entregar as cartas diretamente para o Executivo, ele as entrega para o Tradutor.



    Vamos agora fazer um último fatiamento. Como todos sabemos, Executivos são pessoas muitíssimo ocupadas, que não têm muito tempo para interromper o trabalho para escrever ou ler cartas. Pensando em uma maneira de melhorar isso, eles resolvem que melhor seria ditar as cartas para alguém escrever e ter alguém para ler as cartas para eles. E como conseguir isso? Simples: como sempre estão presos nos engarrafamentos, eles ditam as cartas em um gravador de voz, que é entregue à Secretária para que ela transcreva seu conteúdo e então a repasse para o Tradutor. No destino, o serviço da Secretária é ler a carta, registrando sua voz em um gravador. O Executivo japonês, preso no engarrafamento, ouve a carta.

    Para os Executivos, nada mudou: eles continuam enviando e recebendo cartas. Para os Tradutores, nada mudou também: eles continuam traduzindo cartas de e para o braile. Os Correspondentes e os Correios ficam alheios à mudança.



    Até aqui, com a ajuda de todas as ilustrações, a leitora já deve ter entendido a razão de ser da palavra "pilha". Todo este processo se resume ao empilhamento de responsabilidades.

    Mas e os protocolos? Bem, meu primo Aurélio explica que protocolo é um conjunto de regras de como-agir. Nas ilustrações, vemos que os "trabalhadores" de mesmo nível se comunicam entre si, mas não diretamente: os Executivos têm toda a linguagem dos negócios, as Secretárias lidam com áudio, os Tradutores têm em comum o braile e os Correspondentes têm suas regras de como embalar as correspondências. Mesmo não se falando diretamente, eles conseguem entender o que seu companheiro quis dizer por terem um código que ambos entendem.

    Logo, se cada nível tem um protocolo, podemos dizer, grosso modo, que temos uma pilha de protocolos.

    É muito importante salientar que isso não apenas facilita a execução do projeto como um todo mas permite a modificação do funcionamento de um nível sem que isso comprometa o funcionamento de toda a engrenagem. Se os Correspondentes resolvem embalar as cartas de maneira diferente (mandando uma página em cada envelope) ou se as secretárias passam a fazer as gravações de outro jeito (com um destes programas que lê textos em voz alta), isso não faz diferença para os outros níveis.

    Isso traz outra vantagem, no sentido de que pode-se trocar o "trabalhador" de um nível por outro mais capacitado ou mais barato: pode-se trocar a secretária fanha por uma com voz sensual, ou então um tradutor por outro que faça o serviço em metade do tempo.

    É exatamente assim que a coisa funciona nas redes: o seu jogo quer informar ao jogo da sua prima que você deu um tiro, então ele repassa isso para o sistema operacional, que criptografa a informação e então repassa para o software que controla a placa de rede. Este software pega os dados criptografados pelo sistema operacional, divide a informação em pacotes devidamente endereçados e numerados e repassa para a placa de rede. A placa transforma os pacotes em sinais telefônicos (ou luminosos, ou de rádio, isso depende da sua conexão) e pede para os fios enviarem aquilo.

    Quando aquela bagunça toda chega na placa de rede da sua prima, ela (a placa) transforma em pacotes os sinais recebidos, estes pacotes são repassados para o software controla a placa. Este software remonta os pacotes na ordem certa e os entrega ao sistema operacional. O sistema operacional descriptografa os dados e os entrega ao jogo da sua prima. O jogo vê o que os dados dizem e então mostra na tela que você deu um tiro. Tudo isso em frações de segundo.

    Se a sua conexão é lenta, você pode trocá-la por uma melhor. Se sua placa não consegue converter os pacotes em sinais de forma 100% confiável, você pode comprar outra. Estas mudanças não geram problemas para as outras camadas.

    Claro que este último exemplo não é exatamente o que acontece na realidade, pois a pilha de protocolos normalmente usada é um pouco mais complexa, mas serve para que a leitora possa entender o que quero explicar.

    O que é LAN

    LAN vem do inglês Local Area Network, o que, em bom português, significa rede local. Desta tradução tão simples fica fácil entender que as LANs são redes que não se estendem por espaços muito grandes, e são o tipo de rede geralmente encontrado em empresas e universidades. Geralmente elas são usadas para o compartilhamento de informações e recursos (por recursos entenda-se impressoras, scanners e acesso à internet).

    Neste modelo, geralmente se usa a transmissão por difusão, e quando um computador envia uma mensagem pela rede todos os outros ficam impedidos de também fazê-lo, sob o risco de colisão de mensagens. Usando a mesma metáfora do post sobre topologias, é como se apenas uma pessoa pudesse andar no corredor do prédio de cada vez.

    Existem vários métodos para resolver este problemas de concorrência e evitar colisões, e são chamados mecanismos de arbitragem. Em redes com topologia em barramento, um dos mais usados é o padrão IEEE 802.3, mais conhecido como Ethernet. Numa rede que utiliza este padrão, quando uma máquina tenta enviar uma mensagem e a rede já estiver transportando outra, a mensagem é perdida e ela (a máquina) aguarda alguns instantes para tentar enviá-la novamente. Claro que tudo isso acontece em frações de frações de frações de segundo. No caso de redes com topologia em anel, dois mecanismos de arbitragem comuns são os padrões IEEE 802.5 e o FDDI. (Oficialmente, IEEE se lê Eye-triple-E, mas no Brasil a gente fala i-três-é)

    É claro, também, que uma máquina não pode tomar conta de rede e ficar transmitindo suas mensagens indefinidamente. Além de haver uma fila, é preciso que haja o rodízio. Para gerenciar esta situação existem duas maneiras:

    A primeira, chamada alocação estática, consiste em estabelecer um tempo fixo para cada máquina e utilizar um conjunto de regras que defina qual vai ser a próxima a enviar mensagens. A coisa aqui funciona como num debate político na televisão: cada candidato tem um tempo fixo para falar e o microfone é passado para outro quando este tempo termina. Um problema deste esquema é que há muito desperdício, tanto de tempo quanto de espaço de transmissão, pois muitas vezes dá-se tempo para que uma máquina faça sua comunicação quando na verdade ela não tem nada para transmitir, deixando a rede ociosa quando, com certeza, há uma outra máquina aguardando para dar o seu recado. Aqui a metáfora do debate político já não serve mais porque um candidato nunca fica sem ter o que falar.

    Uma leitora perspicaz poderia argumentar que o tempo que se perde é pequeno, pois, como expliquei acima, estas esperas e comunicações acontecem em frações muito pequenas de tempo. A princípio este raciocínio pode parecer correto, mas há de se pensar que, exatamente por serem frações minúsculas, o desperdício pode acontecer várias e várias vezes a cada segundo. Com o passar do tempo, a soma de tempo perdido pode se tornar consideravelmente grande.

    Meu exemplo a seguir pode soar um pouco exagerado, mas há de convencer a leitora: imagine uma LAN com cerca de 300 computadores, em uma universidade, onde apenas dez destes computadores queiram transmitir dados. Imagine estes dez esperando todos os outros 290 não "dizerem" nada para finalmente transmitir seus dados, e então parando de novo, e de novo, e de novo! É ou não é um grande desperdício?

    A outra maneira de garantir o rodízio se chama alocação dinâmica. Neste caso, as máquinas não têm um tempo fixo para transmissão e só lhes é permitido transmitir quando realmente têm algo para enviar. A decisão deste rodízio pode acontecer de forma centralizada ou descentralizada. Na forma centralizada, há algo (um equipamento ou um programa) que decide quem vai transmitir e por quanto tempo. Seria como uma reunião onde as pessoas levantam a mão para indicar que querem falar alguma coisa e um mediador dá a elas a oportunidade de falar quando for a hora certa e pelo tempo que for necessário. Já na forma descentralizada, não há nada para coordenar as transmissões, e são as próprias máquinas que decidem se é hora ou não de enviar suas mensagens. Em um grupo de pessoas isso com certeza levaria a uma situação onde todo mundo falaria junto e ninguém se entenderia, mas nas redes isso não acontece.

    Futuramente, entrarei em detalhes sobre todos estes palavrões acima.

    Ah, claro, um outro uso muito comum para as LANs são para jogos. Ou sua ficha ainda não caiu e você acha que as Lan Houses têm esse nome só porque soa bonito?

    O que é Topologia

    Como topologia é um termo que vou usar muito durante toda a vida deste blog, vamos aqui entender seu significado, o que é muito simples.

    Topologia é sinônimo de topografia, palavra muito usada na geografia que significa a descrição de uma localidade com todos os seus acidentes geográficos. Aplicando esta descrição ao nosso caso, fica fácil entender que topologia é a descrição de como os computadores estão dispostos e organizados em uma rede.

    Existem várias topologias para uma rede de computadores. Vejamos algumas.

    Topologia em Barramento: neste modelo existe um cabo principal ao qual todos os computadores estão ligados. É como o corredor de um prédio: para você sair de uma sala e ir até outra, você tem que sair daquela onde está, entrar no corredor, ir até a outra e entrar. Não há como você ir diretamente até a outra sala.

    Topologia em Anel: neste modelo os computadores estão ligados entre si formando um círculo. É como se no prédio não houvesse corredor e as salas tivessem portas ligando umas às outras: para você sair de uma sala e ir até outra, você tem que ir para uma sala ao lado da sua, e então outra, e outra, e outra, até chegar ao seu destino.

    Topologia em Estrela: aqui existe ponto central na rede ao qual todos os computadores estão ligados. Este ponto pode ser um hub, um roteador ou qualquer outro equipamento que seja capaz de receber um sinal e repassá-lo para todos aqueles que estão conectados a si mesmo. Usando a metáfora do prédio, aqui é como se houvesse uma sala principal, com portas para todas as outras. Para sair de sua sala e ir até outra você tem que obrigatoriamente passar pelo salão.

    Existem outras, claro, mas como o propósito deste post é apenas explicar o termo, não vou ocupar seu tempo com mais exemplos. Eles virão com o andamento dos estudos.

    Tipos de Tecnologia de Transmissão

    Quando você está bem tranqüila em seu computador e quer enviar alguma coisa para outra máquina através da rede, existem basicamente duas tecnologias que permitem essa comunicação: transmissão por difusão e transmissão ponto-a-ponto. Entender como elas funcionam não é muito difícil e para isso vamos partir para as metáforas.

    Sabe quando você está no mercado fazendo compras e vem aquela voz pelas caixas de som, "atenção proprietário do carro placa ABC 1234, favor comparecer ao balcão de atendimento"? Todo mundo ouve, mas só quem dá atenção é o dono do carro. Afinal de contas, pra que as outras pessoas iriam ao balcão ao ouvir o chamado? Só se fossem fuxiqueiras e quisessem bisbilhotar a vida dos outros. Pode acontecer também de a voz das caixas de som informar que na seção de frios o presunto está com promoção, e vão até lá as pessoas que se interessarem.

    Mas há casos em que este tipo de comunicação não serve. Imagina se ter que colocar caixas de som em todas os postes de uma cidade para dar o recado a apenas uma pessoa. Não daria muito certo, não é? E uma ótima solução para este problema são os motoboys. O motoboy é o cara que vai pegar o pacote e levar até o seu destino, e ele tem que ser esperto, claro: tem que conhecer os melhores caminhos para se chegar ao lugar aonde tem que ir, evitando engarrafamentos e lugares violentos. Se a entrega é confidencial e importante, o motoboy tem até esquemas de segurança, como caixas lacradas e outras coisas mais. Aqui, a mensagem não é encaminhada para todos, somente para o seu destinatário.

    O primeiro meio de comunicação - a caixa de som - é a transmissão por difusão, também chamada de broadcasting: quando uma mensagem é enviada pela rede, todas as máquinas que fazem parte dela recebem as informações, mesmo que a mensagem esteja endereçada para uma determinada máquina. Porém, a única máquina que processa a informação é aquela que é a verdadeira destinatária. Claro, há aqueles programinhas que permitem que alguém veja todas as mensagens, mesmo que não sejam pra ela, mas aqui já estamos entrando na zona da sacanagem, e nós somos pessoas sérias, não fazemos isso.

    O segundo meio de comunicação - o motoboy - é a transmissão ponto-a-ponto: quando uma mensagem é enviada pela rede, só o seu destinatário é quem a recebe e há um programa que faz o serviço de descobrir a melhor rota para que a informação chegue até o seu destino, evitando equipamentos que já estejam sobrecarregados e, quando necessário, criptografando a mensagem.

    Embora possam haver exceções, a transmissão por difusão geralmente é usada em redes pequenas, instaladas em escritórios de empresas e laboratórios de universidades, e a transmissão ponto-a-ponto é usada em redes grandes, que cobrem países inteiros (o que é o caso da internet).

    Pra fechar, é importante lembrar que quando eu falo de mensagem, não estou falando de um email, mas sim de qualquer comunicação feita entre dois computadores: um pedido de impressão, o retorno de um banco de dados, um alerta de vírus ou um comando à distância.

    ***


    Artigo do Vovó Viu a Rede: A Diferença entre Multidifusão e Difusão

    Redes Peer-to-Peer

    Tem um tipo de festa, acho que chamam de Festa Americana, na qual o anfitrião não é o único que banca os comes e bebes. Neste tipo de festa, são as próprias pessoas que levam o que será consumido. Uns levam a cerveja e os refrigerantes e os filhos de mães-com-pé-na-cozinha levam empadões, tortas e sorvetes. Aí o pessoal escolhe o que mais lhes apetece, todo mundo cai dentro e se enche de calorias. Claro que tem o bicão, que não leva nada e come feito uma porca. Ninguém gosta muito do cara, mas fazer o que? Gente chata tem em todo lugar.

    Legal também são os encontros de fãs. Neles a galera se reúne com seus pôsteres, cds, dvds lotados de gravações e vídeos raros, um maluco leva um violão ou um teclado, outro leva um laptop com gravador de cd e todos passam a tarde curtindo o som de seu ídolo, compartilhando suas relíquias. Um tem um vídeo daquela apresentação no Central Park, já outro tem as demos daquele disco de sucesso, e aquele cara lá do interior tem um recorte de uma reportagem que saiu na Rolling Stone de 1963. E dá-se o troca-troca de material enquanto o músico do momento toca o antigo sucesso, acompanhado do coro dos fãs mais afoitos. Claro que aqui também tem o chato, que copia tudo de todo mundo mas não traz uma novidade. As suas coisas ele deixa guardado em casa e nunca conta pra ninguém que ele tem uma cópia daquele disco proibido que teve a produção cancelada depois de terem sido fabricados apenas 200. Esse cara acaba nem sendo convidado para o próximo encontro.

    Bom, acho que não preciso me meter em detalhes técnicos para terminar de mostrar o que são as redes peer-to-peer, não é?

    Ao contrário do que acontece no modelo cliente-servidor, neste esquema todos podem trabalhar como servidores e como clientes quando o esquema usado é o peer-to-peer. Vários programas funcionam assim, sendo os mais comuns os de compartilhamento de arquivos, como o eMule ou o uTorrent.

    Neles, todos os usuários são clientes de outros e podem trabalhar como servidores. E não apenas como servidores de arquivos: eles podem trabalhar também emprestando a sua capacidade de processamento na hora de realizar uma busca, por exemplo. E assim como falei das festas acima, aqui os bicões também existem e costumam ser punidos: quem nunca disponibiliza arquivos para cópia geralmente tem algum problema na hora de conseguir o que quer.