Internet e Redes de Computadores

Chegou a ocasião de falarmos do computador não como algo isolado, mas como uma máquina ligada a muitas outras. Mas como é que os computadores falam uns com os outros, penso que é a pergunta que muitos farão ao acederem a um site na Internet. O que se passa entre o ato de clicarmos num link (um pedaço de texto) e recebermos uma página de um site com as informações que pretendíamos?
Vamos tentar, com uma abordagem tão mais simples quanto possível, desvendar os processos utilizados. Porque essa comunicação se reveste de alguma complexidade, o nosso trabalho vai evoluir a partir das simplicidades aumentando gradualmente o grau de complexidade da exposição. Como a complexidade não é mais do que a soma de muitas simplicidades, é assim que tentaremos lá chegar.
Mais uma vez sugerimos que ao evoluírem na leitura parem onde entenderem que basta, passando ao passo seguinte, podendo sempre voltar atrás quando estiverem mais preparados e/ou interessados em atingir níveis mais complexos.
Par que os computadores possam falar entre eles foi preciso criar uma imensidade de protocolos a diversos níveis. Protocolo é assim  como que um acordo entre duas partes em que fica estabelecido a língua e a forma como se vão entender. Então criam um dicionário que não só traduz as palavras como o seu significado conforme o local da mensagem em que se encontram. O que escreve fá-lo de acordo com o estabelecido e o que lê também o faz de acordo com o estabelecido. E assim conseguem entender-se.
É aqui que entram os nossos amigos estafetas (os bits) que, ao colocarem-se nos locais próprios que o Protocolo indica dão sentido às mensagens que  os computadores trocam entre si.
As comunicações em rede são feitas por camadas, mais concretamente no modelo OSI, conseguido após um grande esforço de normalização das comunicações, modelo esse simplificado pela Internet no modelo TCP/IP (Transport Control Protocol/Internet Protocol), aquele que iremos seguir no desenvolvimento deste trabalho. Aliás este é o modelo adotado pela grande maioria das redes hoje em funcionamento.

O nosso trabalho neste Capítulo vai cumprir um objetivo. A máquina Cliente (nós através de um Browser) clicamos num determinado link, através dele solicitando à máquina servidor (Web Server) a página índice desse site (index.html) e apresentando-a no Browser do cliente.
Falámos em Cliente/Servidor porque o modelo TCP/IP usa este tipo de arquitetura de redes. O outro tipo de arquiteturas de redes é Peer To Peer (P2P) e a Híbrida.
Para já vamos passar a chamar às mensagens o nome que lhes é dado nas redes de que vamos falar, o de Pacote. O pacote é um encapsulamento da mensagem que permite o seu isolamento em relação a todo o restante tráfego de uma rede. Tal como quando nós queremos enviar um documento a um amigo por correio, colocamo-lo dentro de um envelope ou de um pacote, por forma a isolar o seu conjunto de todos os restantes que são enviados pela mesma via. Se assim não fosse seria uma confusão com todas as folhas do documento a misturarem-se com as folhas dos documentos dos outros.
Então, para que os correios saibam a quem têm que entregar o pacote e quem o enviou, escrevemos em locais próprios previamente estabelecidos, o nome e a morada do destinatário e do remetente. E lá vai o pacote seguir o seu destino.
Mas os correios não podem simplesmente pegar no pacote e esperarem que ele chegue sozinho ao seu destino. Então vão  verificar para onde vai, um outro Continente por exemplo e vão colocá-lo dentro de um outro pacote  com pacotes que se destinam a esse continente. E dentro do Pacote do Continente vão pacotes para os diversos Estados, dentro dos pacotes dos Estados vão os pacotes para as Cidades e dentro das cidades vão os pacotes para as Zonas dessas Cidades. E o nosso Pacote vai finalmente dentro deste último. Ao chegar ao destino os Pacotes vão sendo sucessivamente desempacotados pela ordem contrária a que foram empacotados, até ao seu destino final.
Embora a funcionalidade não seja idêntica, com este texto pretendemos ilustrar o sentido das Camadas de uma transmissão em rede. A mensagem é empacotada em cada camada e cada novo pacote leva um cabeçalho que a identifica no destinatário ao mesmo nível (na mesma camada), até chegarmos finalmente ao pacote que é colocado no percurso.
Recomendamos vivamente a visualização dos vídeos do YouTube que indicamos de seguida, onde podem apreciar uma excecional animação sobre a viagem do Pacote que vos vai certamente avivar a curiosidade para saberem mais:

Como funciona a Internet – Parte 1

Como funciona a Internet – Parte 2

Como funciona a Internet (Português)
http://www.youtube.com/watch?v=e6SU42eP7e4&feature=related

As Camadas são abstrações criadas para tratar o processo de envio de uma mensagem nas diversas vertentes que permitem que ela chegue ao destino tal como foi concebido. No modelo TCP/IP temos cinco camadas:

A camada Aplicação é aquela onde são preparadas as mensagens pelos programas (aplicações) de acordo com o protocolo correspondente, como veremos. O pacote formado nesta camada chama-se mensagem e é constituído pelos dados e um cabeçalho.
Nesta camada temos protocolos como o HTTP, o SMTP, o FTP, o DNS ou o Bit Torrent, indo nós analisar o HTTP (Hiper Text Transfer Protocol) e o DNS (Domain Name System). O HTTP é implementado na máquina cliente (Browser) e na máquina servidor (Web Server) e descreve a forma e a estrutura que as duas máquinas vão usar para trocar mensagens entre si, sendo portanto através do HTTP que as duas máquinas vão conversar uma com a outra.
O protocolo DNS é aquele que nos permite através de um servidor próprio encontrar o nome máquina ou endereço 188.72.202.158, ou antes, 10111100 01001000 11001010  11001010, correspondente ao nome www.condominiopartners.pt pelo qual nós o identificamos.

A camada Transporte  é aquela onde são definidas as condições de transporte da mensagem, isto é, com ou sem garantia de entrega, com ou sem entrega pela ordem, com ou sem deteção e correção de erros, etc., conforme o protocolo de transporte usado. Ao pacote mensagem é  adicionado um cabeçalho, constituindo juntos um novo pacote que se chamará segmento.

O computador acabou de empurrar para fora do seu domínio aplicacional uma mensagem que se destina à rede. Para isso colocou-a numa interface a que chamamos  Socket, uma interface de comunicação entre uma aplicação e a rede. Um socket está associado a um porto e ambos constituem uma forma de comunicação do computador com o exterior.
Na internet estão associados dois tipos de protocolo a esta camada, o TCP e o UDP. No nosso caso vamos desenvolver o nosso trabalho com o protocolo TCP (Transfer Control Protocol) que é responsável pela entrega íntegra e pela ordem dos pacotes da mensagem. É preciso entender que a mensagem é entretanto dividida em  muitos pacotes, pois a dimensão máxima de um pacote na Internet é de 1.500 Bytes. É o TCP que separa os pacotes e que os volta a juntar, pela ordem correta. É o TCP que vai iniciar, gerir e terminar a conexão entre as duas máquinas.

A camada Rede é aquela que é responsável pelo endereçamento da mensagem, seu roteamento e encaminhamento na rede e sua entrega à camada superior no destino. Ao pacote segmento é adicionado um cabeçalho dando-se ao pacote daí resultante o nome de datagrama.

Esta camada é o reino do Senhor IP (Internet Protocol), de que já ouviram falar no vídeo que vos recomendámos. O IP é o protocolo da camada de rede na Internet e não tem concorrente.  É ao IP que compete prover os pacotes dos elementos necessários para que eles encontrem o seu destino. Quando um pacote viaja de um remetente para um destinatário, como é evidente não segue um percurso direto. Ele não é como o TGV, sendo mais como o comboio correio, pois pára em todas as estações.
O protocolo IP é baseado no modelo de serviço Best Effort ou Melhor Esforço, isto é, o IP não garante largura de banda, não garante entrega pela ordem, não garante sequer entrega. Todo o seu esforço vai no sentido de conduzir, conforme em cada ocasião lhe é possível, os pacotes até ao seu destino. Para o resto existem as outras camadas, de que temos vindo a falar.

Estão envolvidos no protocolo IP conceitos fundamentais na Internet, como o Endereçamento, o Encaminhamento e o Roteamento. relativamente aos quais vamos desenvolver o nosso maior esforço para tentarmos deixar entendida a forma como funciona cada um deles, pois estamos perante um dos conceitos fundamentais da Internet ou de qualquer rede.

A camada Enlace é aquela onde é adicionado o protocolo que permite a transmissão da mensagem no meio físico. Aqui, os equipamentos reconhecem identificadores diferentes daqueles que até agora vimos utilizando. Ao pacote resultante chamamos quadro.
Enlace é o percurso que um pacote vai percorrer entre dois nós de uma rede, as tais estações do comboio correio, compostas por Switch ou Roteadores, nisto incluídas as interfaces em cada um dos nós de partida e chegada.
Nesta camada o endereço tem uma forma e nome diferente. É o endereço físico da interface de cada componente, único e exclusivo, que lhe é atribuído pelo fabricante de acordo com uma organização mundial de controlo. Chama-se MAC Address (Media Access Control Address). A tradução do endereço IP para o endereço MAC é feita pelo protocolo ARP (Address Resolution Protocol).
A tecnologia de redes locais usada pela Internet na camada de enlace e comummente pela grande maioria de redes locais existentes é a Ethernet. Está presente nas Placas de Rede (as interfaces dos Routers e dos terminais de chegada e partida), nos HUB e nos Switch. Quando o comboio chega a uma estação é esta tecnologia que encontra e no destino dificilmente encontrará outra tecnologia.

Também nesta camada vamos analisar a tecnologia WiFi ou IEEE 802.11, que serve de transmissão em redes LAN (Local Area Network) mas que sempre comunica com os equipamentos da rede por Ethernet.

A camada Física é aquela que é encarregue de transportar os bits dentro da rede entre os equipamentos que vão levar o pacote até ao destino. Essa forma de transporte varia conforme o meio em que a transmissão é feito (cabos de cobre, fibra ótica, rádio, etc.). A camada física é a responsável pela modulação dos bits de acordo com os meios físicos em que o pacote vai ser transmitido. Modulação de ondas eletromagnéticas, impulsos eletromagnéticos, óticos, laser, etc. É um processo que tem mais a ver com aspetos de eletrotecnia do que com informática, fugindo por isso do âmbito deste trabalho.
O mesmo pacote pode passar por vários meios físicos de comunicação. O seu conteúdo será sempre o mesmo. Os cabeçalhos para a Ethernet e Wi-Fi já foram vistos. Fora do meio Wireless, as transmissões vão sempre ser lidas pelos terminais por placas Ethernet. Portanto, entre roteadores, os bits a serem modulados de acordo com o meio físico entre os mesmos, incluem o cabeçalho Ethernet. Nas redes terminais poderão encontrar protocolos diferentes da Ethernet (muito dificilmente), mas não foi objetivo deste trabalho cobrir tais hipóteses.
O mesmo pacote pode ser enviado por exemplo, por:

  • Wi-Fi (micro impulsos de Rádio Frequência que em determinada composição representam o valor de um bit) para um WAP (Wireless Access Point)
  • Ethernet (habitualmente por codificação Manchester) a partir do WAP até um roteador que tem associado um modulador para transmissão por
  • Cabo coaxial, meio em que segue até ao exterior do edifício onde é recuperado da modulação própria do cabo coaxial e modulado para transmissão por
  • Fibra ótica. Segue assim até a um roteador de borda de Área que converte a modulação de fibra ótica em modulação para
  • Feixes hertzianos (micro-ondas), forma com que segue até ao roteador de borda de SA. Aí é convertido em modulação para transmissão por
  • Satélite e assim vai seguir até ao roteador de borda de SA do destinatário,

seguindo todo o mesmo percurso de forma inversa (feixes hertzianos, fibra ótica, cabo coaxial, Ethernet, Wi-Fi e Ethernet) até ao destinatário,  voltando a resposta à mensagem a repetir os dois percursos.
A cada uma destas formas de transmissão corresponde uma forma própria de representação dos bits de acordo com protocolos que permitam emissor e recetor entendê-los.
Para resumo já chega. Agora temos as 66 páginas que dedicámos a este tema, onde gráficos abundantes procurarão tornar percetível a complexidade da viagem de cerca de 1400 pacotes, só para a página inicial do site que utilizámos como exemplo, que nos é apresentada no Browser em milissegundos.

Ver a síntese global deste trabalho

Inserimos de seguida o índice da edição em livro como forma de descrição dos temas abordados neste Capítulo

C14_Indice_Prt