Preparação - Arquitetura em Camadas

Introdução

Neste tópico vamos analisar os modelos de arquitetura de redes em camadas, também chamados de pilhas de protocolos. Esses modelos descrevem todo o processo de envio e recepção de mensagens em redes de computadores, separando cada etapa em uma camada distinta e com uma responsabilidade única. Esse é exatamente o objetivo da arquitetura em camadas: organizar os protocolos e serviços de acordo com as suas responsabilidades e facilitar o estudo, a implementação e a evolução da comunicação em redes. 

 

As mensagens que são enviadas em rede trafegam por todas as camadas para serem enviadas ou recebidas. Veja a figura abaixo.

 

Camadas do Modelo OSI/ISO. Fonte: https://www.alura.com.br/artigos/conhecendo-o-modelo-osi

 

Na imagem acima, quando uma mensagem é enviada pelo notebook de transmissor, essa mensagem deve passar por todas as camadas até chegar a camada Física. Nesse momento, os bits e bytes da mensagem são modulados e transmitidos em um meio analógico (cabos ou ondas eletromagnéticas) até o receptor (destinatário). Chegando ao destinatário, a mensagem percorre no sentido inverso todas as camadas novamente até ser entregue a algum programa, que irá apresentá-la para você, como o navegador ou gerenciador de emails.

É importante observar também que, a medida que a mensagem vai passando pelas camadas, os protocolos que operam nelas vão adicionando informações de controle, como os endereços de Internet do emissor e destinatário, o identificador do aplicativo que está enviando a mensagem e códigos de identificação de erros. Além disso, uma mensagem também pode ser segmentada em pacotes menores, onde, cada pacote recebe um número de ordenação e é transmitido. Chegando ao destinatário, a mensagem é remontada novamente.

Atualmente, temos dois modelos principais: o modelo OSI/ISO e o modelo TCP/IP. O modelo OSI possui 7 camadas e é apenas um modelo de referência para fins de estudo dos protocolos de rede. Já o modelo TCP/IP tem apenas 4 camadas e é o que, de fato, é implementado na Internet. Veja as camadas dos dois modelos abaixo:

Pilhas de protocolos em Redes de Computadores.

 

Vamos analisar abaixo as camadas do modelo OSI e fazer um paralelo com o modelo TCP/IP. Vamos estudar da camada mais alta, de Aplicação, até a mais baixa, Física.

 

Camada 7 - Aplicação

 

Essa camada apresenta protocolos diretamente ligados aos aplicativos que usamos. Chamamos os dados dessa camada de Mensagens. Nesta camada encontramos os seguintes protocolos:

  • HTTP (Hypertext Transfer Protocol): protocolo de transferência de páginas de hipertexto (páginas Web). Esse protocolo gerencia toda a parte de requisição e transferência de páginas Web que ocorre entre os Sites e os navegadores;

  • SMTP (Simple Mail Transfer Protocol): esse protocolo cuida da transferência de mensagens de e-mail na Web. Normalmente, há um servidor próprio para esse serviço, chamado servidor SMTP;

  • FTP (File Transfer Protocol): responsável pela transferência de arquivos entre sistemas finais. Esse protocolo é extremamente eficiente em transferir arquivos na Internet. Normalmente existe um servidor dedicado (servidor FTP) que armazena os arquivos e disponibiliza na Internet para usuários autenticados.

  • DNS (Domain Name Service): o DNS é responsável por converter os endereços dos sites (URLs) em endereços IPs dos servidores para que possamos acessá-los. Sem o DNS, ao invés de acessar o Google utilizando o endereço www.google.com.br, teríamos que utilizar o endereço IP do seu servidor, que no momento desse artigo é o número 172.217.30.3. Imagine ter que saber os números de cada um dos sites que acessamos na Web? Seria terrível não acha?

 

Camada 6 - Apresentação

 

Essa camada é responsável por traduzir os dados para a camada de Aplicação. Dentre os serviços que ela oferece temos:

  • Conversão entre códigos de caracteres: mensagens de texto normalmente obedecem a algum padrão de caracteres, como o ASCII, o UTF-8 ou o Unicode. Esse serviço, por exemplo, pode converter os caracteres de ASCII para UTF-8 e vice-versa.

  • Compactação e descompactação de dados: normalmente os dados sofrem algum tipo de compressão para reduzir o seu tamanho antes de enviar na rede. Esse é o caso de imagens, textos, áudios e vídeos. No entanto, ao chegar ao destinatário, a mensagem deve ser descomprimida para que possa ser consumida pelos aplicativos.

  • Criptografia e descriptografia: esse serviço embaralha os dados de forma que eles se tornem incompreensíveis caso sejam interceptados por um hacker. Somente o dispositivo que possui a chave de descriptografia correta é que conseguirá compreender a mensagem.

 

Camada 5 - Sessão

Essa camada oferece serviços de gerência da conexão entre os dispositivos. Esses serviços envolvem estabelecimento e encerramento de conexões, registro de falhas, segurança e registro de logs.

 

Camada 4 - Transporte

 

Essa camada tem a função de gerenciar a transmissão de cada pacote garantindo o sucesso na sua entrega. Chamamos os pacotes de dados que chegam a essa camada de Segmentos.

A camada de transporte é responsável por identificar corretamente cada aplicativo e fazer a entrega dos segmentos para o aplicativo correto. Para isso ela utiliza um identificador chamado Porta. Cada aplicativo deve utilizar uma porta distinta para enviar e receber pacotes da rede.

Na camada de transporte temos dois protocolos principais:

  • TCP (Transport Control Protocol): esse é o protocolo de controle de transporte. Ele é capaz de estabelecer um túnel confiável por onde os pacotes devem trafegar e garante a entrega dos pacotes.

  • UDP (User Datagram Protocol): esse protocolo realiza o envio de pacotes na rede sem nenhuma garantia de entrega. Com o UDP, não há o estabelecimento de um túnel de conexão confiável entre os hosts para entrega dos pacotes. 

 

Apesar de não parecer interessante, por não executar algoritmos de verificação de erros e reenvio de pacotes, o UDP consegue ser mais rápido do que o protocolo TCP. Por isso, ele é bastante utilizado para transmissões ao vivo ou streaming de vídeos.

 

Camada 3 - Rede

 

Imagine o processo de envio de uma carta pelos correios. Antes de enviar, precisamos adicionar os endereços do remetente e do destinatário. Essa camada faz justamente isso com os pacotes através do protocolo IP. Veja o esquema abaixo da troca de mensagem entre um servidor de um site e um computador. Observe os campos Source (Endereço IP do Remetente) e Destination (Endereço IP do Destinatário) do pacote. Chamamos de Pacote os dados que chegam nesta camada.

 

Fonte: http://216.92.67.219/free/t_TCPIPClientEphemeralPortsandClientServerApplicatio-3.htm

 

O protocolo IP define os endereços IP do remetente e do destinatário para que os roteadores possam encaminhá-los através de uma rota até o destinatário. Cada endereço IP é um número de 4 bytes separados por “.” (ponto). Cada byte vai de 0 até 255 e estabelece a faixa total de endereços IPs possíveis: de 0.0.0.0 até 255.255.255.255.

Uma vez que os endereços são adicionados aos pacotes, eles são repassados para as camadas e inferiores para poderem seguir por uma rota específica da origem até o destinatário. Veja uma imagem da malha de roteadores de cada Estado no Brasil, disponível no site da RNP.

 

Fonte: https://www.rnp.br/servicos/conectividade/trafego

 

Na imagem acima, a cor dos links indica o seu estado de congestionamento. Quando o link está verde, significa que o fluxo está bom. Os links laranja e vermelho são os que apresentam congestionamento. Os links pretos estão inativos. Repare que há vários caminhos possíveis para um pacote percorrer de um estado ao outro. O dispositivo que calcula as melhores rotas para entregar um determinado pacote é o Roteador.

 

Os principais serviços da camada rede são:

  • Endereçamento de remetentes e destinatários de acordo com o protocolo IP;

  • Cálculo de rotas por protocolos específicos. O equipamento responsável por esse procedimento é o Roteador.

 

Camada 2 - Enlace

 

Enquanto a camada de Rede é responsável por definir a rota mais adequada para um pacote, ou seja, o conjunto de enlaces para uma entrega mais rápida, a camada de enlace é responsável por transportar dados somente de um dispositivo até o seu vizinho imediato. Seus protocolos apenas transferem dados de um ponto até o seguinte. Nesta camada, passamos a chamar os pacotes de Quadros ou Frames.  Veja alguns exemplos de protocolos desta camada:

  • Ethernet: padrão de redes locais cabeadas;

  • Wifi ou Wireless 802.11: transmissão sem fio de frames de um dispositivo até o ponto de acesso;

  • PPP: envio de quadros com autenticação de equipamentos e detecção de erros;

  • HDLC: protocolo de envio de quadros sem autenticação;

  • Frame Relay: divisão da mensagem em quadros (frames) e envio através do link.


 

Vários protocolos da camada de Enlace sendo utilizados em uma mesma rede. Fonte: https://image1.slideserve.com/3442102/data-link-frame-lan-and-wan-frames-l.jpg

 

Dentre os principais protocolos da camada de Enlace temos o protocolo MAC, que define um endereçamento para cada placa de rede vendida no mundo. Os endereços MAC são utilizados por Switches e Bridges para enviar quadros para destinatários corretos. Esses endereços são formados por 6 bytes e são escritos como números hexadecimais, como por exemplo o endereço 00-0C-28-02-CF-E4.

Importante! Devemos observar que os endereços MAC são diferentes dos endereços IP, representados com 4 bytes e escritos em decimal. Enquanto os endereços IPs são endereços roteáveis de Internet, os endereços MAC servem apenas para identificação dos dispositivos e não permitem o cálculo de rotas na Internet.

Assim como nas vias urbanas, se não houver um controle do fluxo de veículos, as vias podem ficar completamente congestionadas, impedindo o tráfego de ocorrer normalmente. Nas redes, a camada de enlace é responsável por fazer esse controle do fluxo de quadros para que não haja uma sobrecarga do enlace.

 

Camada 1 - Física

 

Enquanto a camada de Enlace cuida do controle de erros, controle de fluxo e endereçamento MAC, a camada física apenas é responsável pelo envio de Bits individuais em um meio de transmissão até o nó seguinte. Essa camada vai definir os tipos de cabos, padrões de conectores, formas de conversão de sinal analógico em digital e vice-versa, e tipos de codificação de bits. Os Modems e Hubs são os equipamentos que atuam nesta camada e realizam essas funções.

 

O Modelo TCP/IP

 

Essa pilha de protocolos é, na verdade, a que é de fato implementada nos dispositivos e  placas de rede da Internet. Ela agrega várias camadas do modelo OSI/ISO.

As camadas Física e de Enlace do modelo OSI/ISO são unificadas na camada de Acesso à Rede do TCP/IP. Já as camadas de Aplicação, Apresentação e Sessão são unificadas na camada de Aplicação do TCP/IP. As camadas de Transporte são idênticas e a camada de rede do OSI é a camada de Internet do TCP/IP. Veja a imagem abaixo.

 

Modelo OSI/ISO e modelo TCP/IP

 

Encapsulamento

Neste tópico vimos que a transmissão de mensagens entre apps em rede requer que as mensagens sejam repassadas por uma série de camadas até serem convertidas em bits e enviadas. Cada camada possui protocolos capazes de realizar determinadas funções sobre os dados e adicionar dados de controle antes do envio, como endereços de origem e destino, porta dos aplicativos e códigos de verificação de erros. Ao chegar ao destinatário, as informações de controle são verificadas em suas respectivas camadas. Estando tudo ok com a mensagem, ela é repassada para um app de rede que irá apresentá-la para você, como um vídeo do Youtube, um site ou em e-mail, por exemplo.

 

Observe a imagem abaixo que ilustra a transmissão das camadas Física, de Enlace, de Rede e de Transporte.

Transmissão pelas camadas 1, 2, 3 e 4 com os seus respectivos protocolos Ethernet, IP e TCP. Fonte: https://itexamanswers.net/ccna-1-v7-0-curriculum-module-3-protocols-and-models.html

 

Na imagem acima, o servidor deseja enviar uma página de um site para um cliente. Antes do envio em forma de bits, os dados são passados para a camada de transporte, onde, o protocolo TCP entra em ação e adiciona, por exemplo, o número da porta do aplicativo. Após isso, os dados são repassados para a camada de Rede, onde o protocolo IP adiciona os endereços IP de origem e destino. Os dados então descem mais uma camada e chegam na camada de Enlace, onde, o protocolo Ethernet entra em ação e preparar os quadros para serem enviados pela camada física. Nesse ponto, os bits contendo as informações de controle de cada uma das camadas são enviados no meio de transmissão, sendo recebidos pelo cliente. Ao chegar no cliente, os dados fazem o caminho inverso, da camada Física para a camada de Aplicação. Ao passar por cada camada, as informações de controle são verificadas pelo cliente. Ao final a página solicitada é mostrada pelo navegador do cliente.

 

Desse modo, chamamos esse processo de passagem pelas camadas e adição e consumo de informações de controle aos dados originais de encapsulamento

.

Também vimos que à medida que os dados vão sendo passados de uma camada para outra, damos um nome diferente para ele como, segmento, pacote e quadro para as camadas de Transporte, de Rede e de Enlace de Dados, respectivamente. Veja a imagem abaixo.

Camadas e suas unidades de dados. Fonte: https://netomad.wordpress.com/about/osi-model-2-0/

Gravações dos Encontros Síncronos

Turma A

Turma B