Como funciona a camada de rede

Diferentemente da camada de enlace, que tratava das ligações entre vizinhos, a camada de rede é responsável por enviar os pacotes da origem para o destino.  

English version: Click

Quando falamos de enviar os pacotes entre origem e destino, estamos considerando que um destino pode estar a vários saltos de distância de uma origem.

Ou seja, entre a máquina de origem e a máquina de destino, podemos ter vários equipamentos que são responsáveis por encaminhar os pacotes. 

Qual o equipamento para encaminhar pacotes, é o switch? 

Não, nesse caso estamos falando do roteador. 

O roteador é um equipamento fundamental na camada de rede. Esse equipamento permite que possamos ligar várias redes diferentes e garantir uma comunicação entre as redes.

Dessa forma, quando um roteador recebe um pacote, este verifica o checksum ( se for IPv4), e verifica o endereço de destino para saber para onde deve enviar o pacote. 

Como o roteador consegue ligar várias redes? 

Para ligar várias redes, o roteador precisa ter um mapa da rede. Esse mapa, também é conhecido como a topologia da rede.  

E com base na topologia da rede, podemos escolher as melhores rotas para encaminhar pacotes entre origem e destinos. 

Como o rotador sabe o mapa da rede? 

Para que o rotador saiba o mapa ou topologia da rede, é preciso inserir as informações sobre as outras redes no roteador. E existem duas formas de inserir essas informações: manualmente ou automaticamente.  

A forma de inserir a informações sobre redes de forma manual ocorre quando um administrador humano insere as rotas diretamente no roteador.  

A forma automática de inserir informações de redes no roteador é deixada a cargo do protocolo de roteamento.

Ou seja, uma aplicação que se comunica com outros roteadores e compartilha informações sobre o roteamento dos roteadores que compõem a rede. 

Tanto a configuração de rotas manual como a automática são amplamente usadas em redes e em alguns casos usamos a combinação das duas abordagens.  

O que a camada de rede provê para a camada de transporte 

Deve garantir que os serviços fornecidos a camada de transporte sejam independentes dos equipamentos de rede intermediários como por exemplo os roteadores.  

Além disso, a camada de rede deve tratar da topologia da rede de modo que isso fique transparente para a camada de transporte.  

A camada de rede deve usar um protocolo de numeração de endereços de rede independentemente se está em uma rede local ou na Internet.  

Como funciona a entrega dos pacotes na camada de rede 

Existe um conjunto de cientistas que argumenta que os roteadores devem se limitar a transmitir pacotes entre redes distintas. Dessa forma, deixando a cargo dos hosts o dever de realizar o controle de erros e fluxo.

Esse tipo de funcionamento de rede é chamado de não orientado a conexão pois os roteadores apenas repassam os pacotes fim a fim. 

 O outro grupo de cientistas argumenta que a camada de rede deve oferecer um serviço orientado a conexões confiável e consequentemente garantir uma qualidade de serviço.

Dessa forma, nessa abordagem, a camada de rede deveria fornecer controle de fluxo e controle de erros. 

Atualmente temos o IP que é o principal protocolo de comunicação entre as redes e funciona de forma não orientada a conexão. O protocolo IP já vem funcionado a décadas e tem tido evoluções como IPv4 para IPv6. 

No entanto, algumas soluções que combinam orientação a conexão têm ganhado espaço na utilização, dentre elas temos: MPLS e VLANs. 

Camada de redes não orientada a conexão 

A transmissão dos pacotes ocorre sem nenhuma garantia nem configuração prévia. Dessa forma, cada pacote é roteado de forma dependente.

Como os pacotes são roteados de forma dependentes, pensando em um conjunto de pacotes que vão de uma origem para um destino, alguns pacotes podem trafegar por rotas diferentes dos demais.

Isso porque, como o pacote é roteado de forma independente, dependendo da configuração da tabela de rotas do roteador intermediário, esse pode enviar o pacote por interfaces diferentes conforme a tabela de rotas vai mudando em função do tempo. 

Alguns autores gostam de chamar os pacotes não orientados a conexão de datagramas, essa é uma alusão ao sistema antigo de telegramas.  

Na figura abaixo temos um exemplo de transmissão de pacotes não orientados a conexão.

Nesse cenário, temos um computador origem (PC-1) enviando pacotes para uma (PC-2). Para enviar os pacotes, são usados roteadores intermediários ( A,B,C,D).  

Nota. Estamos assumindo que cada roteador tem uma rota para encaminhar pacotes para a rede do PC-2. 

Na primeira etapa, os primeiros 4 pacotes (1,2,3) que chegam no roteador A com destino a rede do PC-2 são encaminhados para o roteador B.

Esse encaminhamento está baseado na tabela de rotas do roteador A que tem B como o próximo salto para entregar pacotes para a rede do PC-2. 

Na segunda etapa, mostrada na figura abaixo, o algoritmo de roteamento do roteador A muda e passa a indicar o caminho passando pelo roteador D.

Essa mudança de rotas pode acontecer a qualquer momento em um roteador que está usando um protocolo de roteamento dinâmico. 

Com base o cenário das duas figuras acima, podemos perceber que uma parte dos pacotes originados no PC-1 e com destino ao PC-2 percorrem rotas diferentes.

Esse comportamento de pacotes percorrerem rotas distintas, mesmo fazendo parte de um mesmo fluxo de comunicação. Esse tipo de comportamento caracteriza uma comunicação não orientada a conexão. 

Camada de redes orientada a conexão 

Agora vamos entender como seria a conexão orientada a conexão. Nesse caso, seriam criados circuitos virtuais para o tráfego dos dados.

O objetivo, de criar circuitos virtuais é criar uma configuração para cada fluxo de dados de modo que não seja necessário escolher uma rota para cada pacote individualmente. 

Consequentemente, no circuito virtual existe a etapa de criação de uma conexão na qual será escolhida uma rota entre a origem e o destino.

A informação sobre essa rota será armazenada nos roteadores intermediários de forma a garantir que todos os dados de um fluxo origem-destino passem pela mesma rota.

Para que haja o controle do estado de conexão do circuito virtual, cada pacote tem um identificador que informa qual o circuito virtual a que o pacote pertence.  

Na figura abaixo, podemos ver um exemplo de circuito virtual em funcionamento. Nesse caso, temos um circuito virtual sendo criado entre o PC-1 e o PC-2.

Inicialmente temos a tabela de rotas de A que indica que a entrada (IN) vem do PC-1 e a saída (OUT) vai para o roteador B. Além disso, podemos observar que o número do circuito virtual é 1 ( VC-1).

Podemos observar que nos outros roteadores (B,C) o processo se repete usando o mesmo VC-1 para marcar os pacotes e encaminhar com o número de circuito virtual VC-1. 

Por que em circuitos virtuais temos um número para o circuito? 

Isso acontece porque ao invés de usar um endereço de destino como por exemplo um IP, a rede baseada em circuito virtual usa o número do circuito para saber para onde deve encaminhar o pacote. 

Dessa forma, tomando o cenário da figura acima, quando um pacote marcado com o circuito virtual 1 (VC-1) chega em A vindo do PC-1, o roteador A sabe que deve encaminhar para o roteador B.

No entanto, antes de encaminhar é preciso saber qual será a marcação do circuito antes de encaminhar para B. Nesse caso do cenário o número de circuito vai continuar o mesmo (VC-1). 

Na figura abaixo, vamos supor que uma segunda máquina (PC-3) desejasse se comunicar com o PC-2.

Nesse caso, seria criada uma nova configuração de circuito virtual e para essa nova configuração temos que entre o PC-3 e o roteador A teremos o número de circuito virtual 1 (VC-1) também. 

Chama a atenção que o roteador A recebe do PC-1 e do PC-3 pacotes marcados com o número de circuito virtual 1 (VC-1) e alguns poderiam se perguntar se isso cria alguma confusão para o roteador.

A resposta é não cria confusão para o roteador pois esse sabe diferenciar a entrada pela interface que está recebendo os pacotes.

Dessa forma, mesmo que os pacotes saindo do PC-1 e PC-3 tenham o número de circuito virtual 1 (VC-1) o roteador sabe diferenciar pois um vem da interface conectada ao PC-1 e o outro vem da interface conectada ao PC-2.  

No entanto, a medida em que os pacotes que veem do PC-3 são repassados do roteador A para o roteador B, esses precisam usar um número de circuito virtual diferente do VC-1 isso porque entre o roteador A e o roteador B o VC-1 já está atribuído ao circuito virtual criando entre o PC-1 e o PC-2.

Dessa forma, a comunicação entre o PC-3 e o PC-2 vai usar o número de circuito virtual 2 entre os roteadores A e B. Poderia ter sido escolhido qualquer outro número de circuito que não estivesse sendo usado na tabela dos dois roteadores.  

Podemos observar que teremos que usar o número de circuito virtual 2 também entre B e C e também entre C e o PC-2. Isso porque entre esses nós o circuito virtual 1 já está sendo usado para a comunicação entre PC-1 e PC-2. 

Vale ressaltar que após a o uso do circuito virtual temos a fase de finalização do circuito virtual e durante essa fase os roteadores intermediários removem as informações sobre estado do circuito virtual que está sendo finalizado. 

Outro ponto interessante quando falamos de circuito virtual é o atraso para a criação do circuito.

Isso porque, temos a fase de criação de circuitos que ocupa uma fração do tempo para que os roteadores intermediários negociem a rota que o fluxo de dados utilizará.

Consequente, percebemos que se estivermos usando circuitos virtuais para fluxos de baixa duração teremos uma parte do tempo destinado ao tráfego de dados sendo consumido pelo tempo utilizado para a criação do circuito virtual. 

Principais diferenças entre redes orientadas e não orientadas a conexão 

Abaixo apresentamos uma tabela com as principais diferenças entre redes não orientadas a conexão e redes orientadas a conexão.

DiferençaNão orientada a conexãoOrientada a conexão
Precisa configurar o circuito antes de enviar Não Sim 
Tipo de endereçamento Endereçamento do destino Número do circuito virtual 
Necessidade de manter informação sobre o estado das conexões Não Sim 
Falha em um roteador ou em uma linha Os próximos pacotes são roteados por caminhos alternativos Teria que ser criado um novo circuito virtual novamente 
Qualidade de serviço Tarefa difícil devido a independência no roteamento dos pacotes Tarefa fácil, pois, poderia configurar o circuito com base na necessidade da qualidade de serviço. 
Tabela com as principais diferenças entre redes não orientadas a conexão e redes orientadas a conexão

Veja Mais

O que é DNS

O que é NAT ?

Métodos HTTP

Protocolo HTTP – Como funciona?

Cookies – Protocolo HTTP

HTTP Client – Requisições GET e POST com API JAVA

Juliana Mascarenhas

Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer

https://learningnetwork.cisco.com/s/article/osi-model-reference-chart