A Internet

Está chegada a altura de falarmos do computador não como algo isolado, mas como uma máquina ligada a muitas outras, umas no mesmo ambiente de trabalho e  outras espalhadas pelo mundo.

Já lá vão algumas décadas (em tempo informático são séculos para nós) que a mente humana começou a tentar tirar partido da informação proporcionada por um computador para a juntar à informação prestada por outros. Porque assim, no mesmo local, controlava o que se passava noutros locais, juntava várias capacidades computacionais e podia combinar as várias informações para obter resultados mais completos.

Foi assim que nasceu a ARPAnet, que brevemente deu lugar àquela que hoje conhecemos como Internet.

Mas a Internet é uma rede de computadores, indo nós por isso começar por aí.

Uma rede de computadores mais não é do que aquilo que o próprio nome indica: um conjunto de computadores ligados por uma rede, partilhando recursos, dados e programas.

Na nossa mente imaginamos uma rede de fios, o que até um certo ponto de evolução foi verdade, mas agora a essa rede de fios devemos juntar as redes de sinais rádio, infravermelhos e comunicações por satélite (WiFi, Rede celular, Bluetooth, etc.).

Gostaria de referir que o objetivo não é fazermos um tratado sobre redes de computadores, mas tão somente uma ligeira abordagem ao tema, que nos permita ter algumas noções básicas para o estudo do seu funcionamento, no campo estrito dos protocolos da Internet. Será portanto necessariamente muito incompleto e genérico tudo o que escrevemos sobre redes de computadores.

Vamos referir dois dos tipos de redes: as redes LAN (Local Area Network – Rede de área local) e as redes WAN (Wide Area Network – Rede de área global).

Uma LAN é, por exemplo, aquilo que alguns de nós temos em casa, muitas vezes sem nos apercebermos disso. O equipamento que lá nos colocaram para podermos aceder à Internet e ao qual podemos ligar vários computadores, está provavelmente a ligar esses computadores numa rede local em que eles podem comunicar uns com os outros.

Uma LAN é uma rede de computadores de um edifício, de uma pequena ou grande empresa, de um campus universitário.

E qualquer destas LAN está ligada a um equipamento com as mesmas funções daquele que referimos como estando nas nossas casas, que se encarrega da ligação dessa LAN com o mundo, concretamente com a WAN, que por sua vez pode ligar esta LAN com muitas outras LAN ou com servidores de serviços espalhados pelo mundo.

Entenda-se WAN no seu sentido mais lato. A Internet é uma WAN, mas uma WAN não é necessariamente a Internet.

A ligação entre duas ou mais LAN, pode ser feita por cabos, Satélite,  feixes Hertzianos, fibra ótica, etc. Vejamos por exemplo o caso de uma empresa concessionária da exploração de Autoestradas. Todas as portagens, os edifícios de escritórios, a sede e outros dispõem de redes LAN. Mas o que se passa em cada um destes locais tem de ser do conhecimento imediato de um sistema central de gestão, chamemos-lhe Centro de Dados, que por sua vez dará conhecimento dos mesmos a todos os departamentos interessados. A comunicação das diversas LAN com o Centro de Dados será feita por redes WAN, por utilização de linhas dedicadas, por utilização de linhas públicas partilhadas, ou por utilização da própria Internet.

A Internet é a maior das redes WAN, que permite a conexão de qualquer computador com outro computador ou um servidor espalhados algures pelo mundo, em segundos ou mesmo milissegundos. Penso que não precisamos dizer mais sobre o que é a Internet pois certamente a grande maioria dos que estarão a ler este texto sabem tão bem ou melhor do que nós o que ela é e faz.

O nosso objetivo agora é analisar como funciona a Internet para proporcionar todos estes serviços, isto é, o que está por detrás de um clique num link. Como é que pelo simples facto de clicarmos com o rato ou tocar com o dedo num pedaço de texto obtemos uma página alojada num servidor espalhado pelo mundo?

Podemos desde já adiantar que, para que tal aconteça, milhares de pessoas investigaram e escreveram milhares de livros sobre os protocolos e processos utilizados, que vamos tentar descrever e sintetizar de uma forma simples e descomplicada.

Arquiteturas de Camadas de Protocolo

Antes de entrar na discussão deste parágrafo vamos fazer umas abordagens iniciais que poderão ajudar a compreensão do que se vai explicar.

O tráfego de mensagens na Internet é feito por pacotes, isto é, o que circula na rede são pacotes, que podemos imaginar como os pacotes das compras. A função do pacote é isolar (encapsular) a informação que circula dentro dele de todo o restante tráfego com que se mistura. Assim, o termo Pacote que utilizamos por uma questão de melhor entendimento, mais não do que uma unidade autónoma de dados, isto é, um conjunto de dados a ser lido separado dos outros e que só faz sentido se lido em conunto

Os pacotes, por sua vez, contém pacotes, sendo que cada pacote se destina a ser interpretado no âmbito de uma determinada função. O pacote mais pequeno dentro de todos esses pacotes é o que contém a mensagem que se pretende enviar.

Então o que compõe o resto dos pacotes e para quê tantos pacotes?

O que compõe cada pacote é, para além dos dados da mensagem:

  • A informação necessária à interpretação dos dados,
  • A informação necessária à garantia da sua entrega e da ordem de entrega,
  • As informações necessárias para o seu roteamento (encaminhamento) no emaranhado que compõe a rede da Internet e
  • As informações necessárias para o seu transporte, nos vários percursos compostos por diferentes tipos de componentes de hardware dessa mesma rede.

A estas informações chamamos protocolo.

Protocolo é precisamente a informação necessária ao entendimento do significado do conteúdo dos cabeçalhos ou dos dados dos diferentes pacotes, por parte de outro componente de hardware ou software.

E porquê tantos pacotes?

Surgem assim as camadas de protocolos.

Portanto, uma arquitetura de camadas de protocolo não é mais do que uma pilha de camadas a que se juntam ou retiram (conforme se estejam a enviar ou a receber) ao pacote vindo da pilha anterior, protocolos que contém as informações necessárias aos objetivos atrás enunciados, o que tentamos ilustrar na Figura 2 mais abaixo.

Mas vamos já perceber o que é cada uma dessas camadas, o que faz, como é composta e para que serve cada um desses componentes. Vamos por partes e devagarinho para que ninguém leia mais do que lhe interessa.

Para já, a título de informação e de primeira abordagem ao que até agora disse, recomendo-vos que acedam à Internet e vejam os dois filmes cujos links forneço de seguida. São animações extremamente bem imaginadas e que certamente lhes vão abrir o apetite para saberem mais um pouco. Este é um trabalho que foi produzido e imaginado pelo Sr. Thomas Stephansom.

Warriors of the Net – Parte 1

Warriors of the Net – Parte 2

Warriors of the Net – Dobrado em Português

Modelo TCP/IP

Num esforço de normalização do modelo de arquitetura de camadas de protocolos, a ISO (International Organization for Standardization) conseguiu implementar o modelo OSI (Open Systems Interconnection),  que passou a constituir o modelo de camadas de referência. O modelo OSI é constituído por 7 camadas.

Figura-14-2
Figura 1

Não vamos entrar na descrição das camadas deste protocolo, que estão devidamente identificadas na figura junto, porque este modelo deu origem ao modelo simplificado utilizado na Internet, o TCP/IP, que atualmente constitui o modelo utilizado na grande maioria de redes.

Na Figura 1 vê-se a ligação entre as diversas camadas  dos dois modelos com indicação do nome dos pacotes gerados em cada uma das camadas.

A utilização de uma arquitetura em camadas de protocolo resulta em que cada camada fornece serviços à camada superior e recebe serviços da camada inferior.

A cada camada de protocolo no remetente da mensagem deverá corresponder uma camada igual no recetor.

Como podemos ver na Figura 1, o modelo TCP/IP é constituído por 5 camadas, que têm muito sinteticamente as seguintes funções:

Camada Aplicação – É onde são preparadas as mensagens pelos programas (aplicações) de acordo com o protocolo correspondente, como veremos adiante. O pacote formado nesta camada chama-se mensagem e é constituído pelos dados e um cabeçalho.

Camada Transporte – É 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.

Camada Rede – O protocolo introduzido nesta camada é o responsável pelo endereçamento da mensagem, seu encaminhamento na rede e sua entrega à camada superior no destino. O pacote resultante da junção deste cabeçalho ao segmento chama-se datagrama.

Camada Enlace – Esta camada é 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.

Camada Física – A função desta camada é 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.).

Repare-se na Figura 2 a forma como se vão adicionando cabeçalhos aos pacotes nas diferentes camadas, formando assim outro tipo de pacotes, o mesmo acontecendo no sentido inverso quando em cada camada se retiram ao pacote os cabeçalhos dessa camada para o devolver genuíno à camada superior.

Figura-14-3
Figura 2

Vamos lá descomplicar um pouco antes de prosseguir. Imaginemos que enviamos uma carta a alguém e, como não queremos que ninguém possa saber do que falamos, temos entre nós combinados vários códigos de escrita que só nós entendemos. Então, depois de escrever a mensagem em Português, faço um programa para convertê-la na tal escrita ilegível.

Mas, para que o recetor a possa ler juntamos à mensagem um cabeçalho onde identificamos o código que o recetor deve usar. Assim, ele introduz o identificador do código no programa igual ao nosso, que converte o texto ilegível no nosso bom e velho Português. Este cabeçalho é o protocolo, aquilo que foi acordado entre nós para nos entendermos.

Depois colocamos (encapsulamos) a mensagem dentro de um envelope, escrevemos o endereço do remetente no canto superior esquerdo e o endereço do destinatário no canto inferior direito e colocamos nos correios.

Porquê a colocação dos endereços do remetente e destinatário naquelas posições?

Porque assim ficou convencionado no protocolo de envio de correspondência. Através desse protocolo, qualquer interveniente no processo sabe onde ler o endereço do destinatário e o do remetente.

Vamos então resumir esta primeira abordagem.

A comunicação em redes é feita por pacotes que são embalados em várias camadas com cabeçalhos que contém protocolos relativos à função que essa camada pretende garantir. São então transmitidos pela camada física e, ao chegarem ao destinatário, os pacotes são desembrulhados, cumprindo cada um a sua função, parte integrante do envio completo de uma mensagem.

Bom, vamos aprofundar mais um pouco a análise.