Aula 8 - Análise e Desenvolvimento de Sistemas - Redes: camada de Rede - Conceitos básicos no Modelo OSI



Definição: 
Apresentação da camada de rede do modelo OSI e o seu relacionamento com as demais camadas, bem como a sua implementação na Arquitetura TCP/IP. 

Propósitos: Entender como funciona a camada de rede para o desenvolvimento de aplicações modernas e realiazar endereçamento uniforme para que equipamentos e aplicações troquem informações.

Camada de Rede: "No Modelo OSI, a camada de rede situa-se logo acima da camada de enlace, utilizando os serviços oferecidos por esta camada. A camada de enlace tem como objetivo organizar a comunicação em nível de enlace, ou seja, ela deve garantir que um hospedeiro consiga se comunicar com o hospedeiro vizinho

O objetivo da camada de rede é, a partir deste serviço de comunicação lado a lado, promover uma comunicação de âmbito global, permitindo que a informação que sai de um hospedeiro chegue a seu destino não importando em qual local da rede esteja este destino. Para isso, ele deve realizar duas grandes funções

1 - Definir um esquema de endereçamento que seja aceito por toda a grande rede
2 - Realizar o roteamento .



 
Esses videos explicam sobre a camada de rede


Conceitos básicos da camada de rede
* A quantidade de dados que podem ser trocados entre as camadas de rede possui tamanho limitado.
* Para enviar tamanhos maiores que o limite, a camada de transporte segmenta esses dados em tamanhos menores, em seguidas coloca cada segmento em unidades de de dados da camada de rede. 

"Esta unidade de dados trocada entre entidades da camada de rede recebe o nome de pacote" 



O que a camada de rede precisa para realizar a comunicação? 

*Conhecer toda a topologia da sub-rede de comunicação. 
*Escolher rotas que evitem sobrecarregar partes da rede enquanto outras ficam ociosas. 
*Compatibilizar a comunicação entre os diferentes tipos de sub-redes existentes.

Criação de pacotes de dados: A camada de rede é responsável por criar um pacote de dados que chegam da camada superior. Com o pacote criado, é acrescentado a ele um cabeçalho com informações de endereço origem e destino. 

 "Em sistemas com mais de uma interface de rede deve também consultar suas tabelas de repasse para determinar por qual interface o pacote deve ser encaminhado."

Esse video explica como os pacotes de dados viajam pela rede. 

"Nos hospedeiros intermediários, a camada de rede deve receber o pacote, consultar suas tabelas de roteamento e enviar o pacote pela interface de rede apropriada."

"No destino, a camada de rede deve verificar se o endereço destino do pacote é o mesmo do hospedeiro e, caso seja, entregar o pacote à camada superior (camada de transporte)."


Como um pacote é enviado de um hospedeiro para outro? - Comutação de pacotes:   No modelo OSI, uma camada usa os serviços da camada inferior para realizar seus trabalhos e oferecer serviços para a camada superior. Desta forma, quando um hospedeiro tem um pacote para enviar, ele vai transmitir esse pacote para o roteador mais próximo, que depois de recebê-lo, vai conferir e envia-lo para o próximo reteador, até que o pacote chegue ao hospedeiro de destino. Esse mecanismo de armazenar os pacotes para envia-lo ao próximo hospedeiro é chamado de Comutação de Pacotes.

Veja um exemplo:




Repasse: "Um roteador é um equipamento que possui, normalmente, várias interfaces de rede. Quando um pacote chega por uma de suas interfaces, o roteador deve verificar o destino deste pacote e decidir por qual de suas linhas o pacote deve ser enviado para que consiga chegar ao destino. Chamamos de repasse o trabalho (local) de escolher por qual das interfaces deve seguir o pacote que chega."

Roteamento: "Cabe à camada de rede decidir o caminho a ser seguido por um pacote para que este chegue ao seu destino, fazendo o melhor caminho possível. Para isso, os roteadores devem trocar informações entre si sobre o estado da rede, de forma a decidirem o melhor caminho para cada destino. Chamamos de roteamento o trabalho (global) de escolher os caminhos por uma rede para que o repasse possa ser realizado."

Receber, verificar, consultar tabela e despachar: Ao chegar um pacote em um roteador, e sendo necessário fazer seu repasse, o processo responsável por esta função verifica o endereço de destino do pacote, consulta a tabela de repasse utilizando o endereço destino como índice e obtém a interface pela qual o pacote deve seguir. 

Resumidamente: as tabelas de repasse são montadas pelos algoritmos de roteamento e consultadas pelo processo de repasse para determinar por qual interface deve seguir um pacote que chega.

Qual a diferença entre repasse e roteamento?
"O repasse refere-se a uma ação realizada localmente por um roteador sobre um pacote que chega, enquanto o roteamento a uma ação global envolvendo todos os roteadores de uma sub-rede para a escolha do melhor caminho."

Como tudo isso é calculado? O algoritmo que realiza essa tarefa é chamado de algoritmo de roteamento. Entenda no vídeo abaixo como é isso: 

Nesse video, veja como funciona o roteador, quais rotas eles escolhem.

Nesse video, você vai entender com funciona  o roteamento em uma rede

Circuitos virtuais e datagramas - Qual a  diferença entre eles? 
Na camada de rede, um serviço orientado à conexão é normalmente chamado de circuito virtual. Já quando um serviço que faz entrega de pacotes independentes, sem conexão, é chamado de datagrama. 

"Pensando na arquitetura TCP/IP, a camada cliente da camada de transporte é a camada de aplicação, portanto, o serviço de transporte com conexão é um serviço aplicação a aplicação, ou seja, uma conexão de transporte conecta diretamente duas aplicações. Já a camada de rede é voltada para a interligação de hospedeiros, logo, uma conexão da camada de rede é uma conexão hospedeiro a hospedeiro."

Criação do Circuito Virtual: A missão de um circuito virtual é basicamente evitar que seja preciso uma outra roda para cada pacote que passar, por isso são utilizadas sub-redes com serviço de rede orientado à conexão. 
Quando se estabelece uma conexão, em seguida é criada um rota entre origem e destino, ou seja, Ponto A a Ponto B. Essa rota é usada por todo o tráfego da conexão entre ponto A e B, que vamos chamar aqui esse pontos de hospedeiros. Quando a conexão é liberada, o circuito virtual deixa de existir!

Um circuito virtual (CV) consiste em: Considere a rede da figura a seguir. Os números em cada extremidade dos enlaces representam o número da interface do comutador naquele enlace. 

1 - Um caminho definido entre origem e destino 
2 - Números de identificação de circuitos virtuais, um para cada enlace ao longo do caminho; 
3 - Registros em tabelas de comutadores ao longo do caminho. 

Considere a rede da figura a seguir. Os números em cada extremidade dos enlaces representam o número da interface do comutador naquele enlace.


O que está acontecendo? - a) O hospedeiro H1 solicita à rede que estabeleça um circuito virtual até o hospedeiro H2

b) a rede estabelece o caminho H1-A-B-E-F-H2, atribuindo respectivamente os seguintes circuitos virtuais: 23, 8, 37, 22, e 16 (numerações aleatórias). 

c) Com base nestas informações são montadas as seguintes tabelas de repasse em cada um dos comutadores ao longo do caminho:



Adicionar e remover: Quando um novo circuito virtual (CV) é estabelecido através de um comutador, é adicionado um registro para este CV à tabela do comutador. Por outro lado, sempre que um CV termina, suas informações são removidas das tabelas do comutador ao longo do percurso

Simplificando o trabalho - A importância de ter vários identificadores diferentes para os circuitos virtuais é para simplificar o trabalho, isso porque se você utilizar o mesmo CV durante o tráfego vai ser preciso que todos os comutadores que estão utilizando a rota concordem

O que é importante para um comutador? Para que o comutador possa definir o caminho, é importante que o número de saida do CV de um comutador seja o mesmo número de entrada do comutador seguinte. 


"No exemplo, o circuito estabelecido entre os comutadores E e F possui CV 22 (o CV 22 sai pela linha 3 de E e entra como CV 22 pela linha 1 de F). Da mesma forma, o CV entre A e B possui valor 8 e o CV entre B e E possui valor 37. Reveja as figuras com os circuitos em destaque."
Observações: Quando um caminho é estabelecido, é como se fosse feito uma ligação direta, física, como um cabo de rede, ligando um hospedeiro a outro, por isso se chama circuito virtul

Mesmo caminho, mesma ordem: Na rede de um circuito virtual, os pacotes chegam ao destino na mesma ordem da origem, porque seguem sempre pelo mesmo caminho. 

Três fases de um circuito virtual:



Datagramas: Em uma sub-rede de datagramas, não tem uma roda definida no momento em que o pacote é enviado, quando o pacote é transmitido ela passa por vários roteadores, e cada roteador ao longo do caminho usa um endereço destino para determinar por qual interface de saída mandar o pacote, ou seja, realizar o repasse. 

Manter as tabelas: Considerando que não há um circuito estabelecido para transferências, os roteadores tem que manter as tabelas de repasse baseadas no endereço destino do pacote, não importa qual seja o destino. 

"Se as tabelas de repasse forem alteradas durante uma transferência, os datagramas de uma mensagem podem fazer caminhos diferentes até o destino."


Por que a rota é alterada? 

Pode acontecer de os pacotes passarem por uma região sobrecarregada, ai os roteadores descobrem outra região com menos tráfego, então decidem enviar os pacotes por essa região.

"Uma consequência disso é que os primeiros pacotes que estão seguindo pelo novo caminho podem chegar ao destino antes de alguns dos pacotes que seguiram pelo caminho antigo...existe a possibilidade de que alguns pacotes cheguem ao destino fora de ordem."

 Os problemas que podem acontecer em uma rede de datagramas são:

A perda de datagramas 
Datagramas chegarem com erro 
Datagramas chegarem fora de ordem 
Datagramas serem duplicados

Endereçamento

*Tem tipos de redes que permitem que sejam criados vários endereços de hospedeiros, outras redes redes aceitam apenas um hospedeiro. 

*O enderçamento deve ser independemente do endereçamento dos protocolos de outras camadas

*A camada de rede unifica toda a comunicação da rede, então ela definine uma identificação dos hospedeiros que seja aceita por toda a rede.

Tem dois tipos de endereçamentos possíveis: 

Endereçamento hierárquico: 
"No endereçamento hierárquico, o endereço de uma entidade é constituído de acordo com os endereços correspondentes aos vários níveis da hierarquia da qual faz parte. O endereço hierárquico é o método sugerido pelo ITU-T para interconexão de redes públicas de telefonia. Nessa recomendação, os endereços são números decimais formados por três campos: um código do país, um código para a rede, e um campo para o endereçamento dentro da rede."

Endereçamento horizontal
"No endereçamento horizontal, os endereços não têm relação alguma com o lugar onde estão as entidades dentro da rede. Um exemplo comum desse tipo de endereçamento são os endereços utilizados nas placas de rede ethernet, que são gravados durante seu processo de fabricação e será sempre o mesmo, não importando em qual lugar do mundo a placa seja utilizada."

Vantagens endereçamento hierárquico x endereçamento horizontal:
O hierarquico é mais vantajoso porque contém informações explícitas sobre o local onde se localizam as entidades. Já o endereçamento horizontal permite uma mobilidade das entidades sem reconfiguração.

Enderaçamento universal: Realizado pela camada de rede

Envio do pacote: Realizado pela camada inferior, que possue um endereçamento específico próprio da camada que estará enviando os pacotes

"Ocorre, portanto, um mapeamento entre os endereços físicos e de rede, e esta tarefa deve ser realizada pela camada de rede. Existem duas técnicas usuais para essa conversão: resolução através de mapeamento direto e resolução através de vinculação dinâmica."

Mapeamento direto e resolução através de vinculação dinâmica.



Aula sobre Datagramas