Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado...

52
Roteamento Capítulo 6

Transcript of Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado...

Page 1: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Roteamento

Capítulo 6

Page 2: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Transporta segmentos do hospedeirotransmissor para o receptor

No lado transmissor, encapsula os segmentos em datagramas

No lado receptor, entrega os segmentos à camada de transporte

Existe um pedaço da camada de redeem cada hospedeiro e em cada

roteador

Roteador examina campos de cabeçalho em todos os datagramas IP que passam por ele

4 - 2

A camada de rede

11/04/23 Profº André Luiz Silva

Page 3: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Daemon

• O termo daemom significa que o processo está rodando em background.

• Os daemons geralmente são inicializados junto com a inicialização do sistemas.

• Entre os daemons de roteamento mais utilizados temos atualmente o zebrad, ripd, ospfd, etc.– No passado o routed e o gated foram bem

conhecidos.

Page 4: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Questões

• Como os protocolos de roteamento e os algoritmos que os acompanham, trabalham.

• Como entradas são inseridas nas tabelas de roteamento.

• Como os algoritmos determinam o caminho mais curto até cada destino.

• Como trocar informações de roteamento com os roteadores adjacentes.

• Os tipos de roteamento existentes.– Estáticos ou dinâmicos.– Vetor de distância ou Estado do enlace.

Page 5: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Introdução

• A principal função da camada de rede é rotear pacotes de uma origem até um destino.– Geralmente a máquina origem e destino estão em

redes diferentes.

Origem

Page 6: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Sistemas autônomos

• A Internet é dividida em sistemas autonomos (ASs)

Page 7: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Roteamento interno e externo

• O roteamento é interno quando é realizado dentro de um mesmo sistema autônomo.

• O roteamento é externo quando é realizado entre sistemas autônomos.

Page 8: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Algoritmo de roteamento

• É a parte do software da Camada de Rede responsável pela decisão da interface de saída a ser usada na transmissão do pacote de entrada.– Em redes de datagramas, a decisão é tomada para

cada pacote que chega no roteador, pois a melhor rota pode ter sido alterada com relação ao pacote anterior.

– Em redes de circuitos virtuais, as decisões de roteamento são tomadas quando o circuito é estabelecido (roteamento por sessão)

Page 9: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Técnicas de roteamento

• Baseadas em Next-hop (Próximo salto).– Informações que conduzem ao próximo roteador.

• Roteamento para redes específicas.– Todos os hosts conectados a uma mesma rede

possuem apenas uma entrada na tabela.

• Tabelas de roteamento.– Muitas entradas na tabela.– É necessário desenvolver técnicas que tornem as

tabelas de roteamento gerenciáveis.

Page 10: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Roteamento estático e roteamento dinâmico

• Roteamento estático ou não adaptativo.– Rotas criadas pelos administradores da rede

estaticamente.– Em caso de queda de link, as rotas devem ser

refeitas manualmente.

• Roteamento dinâmico– Tabelas de roteamento são construídas pelos

protocolos de roteamento.

Page 11: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Diferenças entre algoritmos de roteamento

– Em termos do lugar onde obtêm as informações.• No local, no roteador adjacente, de todos os roteadores, de um

ponto central.

– Do momento em que alteram suas rotas.• Quando a topologia muda, • A cada ΔT segundos,• Quando a carga se altera ou mudam certos parâmetros,

– Taxa de utilização do enlace.– Quantidade de pacotes descartados pela interface.

Page 12: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Estrutura da tabela de roteamento

• Cada entrada de uma tabela de roteamento contém:– Endereço destino, geralmente de rede.– Máscara de rede.– Próximo salto. Roteador (gateway) para onde

o pacote será encaminhado.– Métrica.– Interface de saída.

Page 13: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Tabela de roteamento

• Indexada para cada enlace ou roteador da rede.

• Cada entrada contém:– Interface de saída preferencial para cada

destino.– Estimativa da distância até esse destino.

Page 14: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Exemplo de tabela de roteamento

svr4 % netstat -rn

Routing tables

Destination 140.252.13.65127.0.0.1default140.252.13.32

Gateway140.252.13.35127.0.0.1140.252.13.33140.252.13.34

FlagsUGHUHUGU

Refcnt0104

Use00025043

Interfaceemd0lo0emd0emd0

Page 15: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Flags

U  A rota está ativa.G  A rota é para um gateway (roteador). Se o flag não

estiver “setado”, o destino está diretamente conectado.

H  A rota é para um host, isto é, o destino é para um endereço de host completo. Se este flag não estiver configurado, o destino é para uma rede e o destino é para um endereço de rede, podendo ser um NetId ou uma combinação de NetId e subNetId.

D  A rota foi criada por um redirecionamento.

M  A rota foi modificada por um redirecionamento.

Page 16: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Métrica

• Custo de passagem.

• Roteador escolhe o enlace que tiver a menor métrica.

Page 17: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Propriedades desejáveis às tabelas de roteamento (1)

• Robustez.– Espera-se que elas funcionem corretamente

mesmo que ocorram inúmeras falhas de hardware e software.

• Os hosts, os roteadores, as interfaces falharão repetidas vezes e a topologia mudará muitas vezes.

• O algoritmo de roteamento deve ser capaz de aceitar e se adaptar a todas as mudanças sem prejuízo da comunicação.

Page 18: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Propriedades desejáveis às tabelas de roteamento (2)

• Estabilidade.– Um algoritmo quando alcança o seu ponto de

equilíbrio, ele deve permanecer nesse estado.

– O tempo de convergência deve ser o mais rápido possível.

• A comunicação pode ser interrompida até o algoritmo voltar ao seu ponto de equilíbrio.

Page 19: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Princípio de otimização

• Descrição geral das rotas ideais sem levar em consideração a topologia ou o tráfego [Bellman, 1957].– Se o roteador J estiver no caminho ideal

entre os roteadores I e K, o caminho ideal entre J e K também estará na mesma rota.

• Se existisse uma rota melhor entre J e K, então a rota entre I e K não seria a melhor.

Page 20: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Árvore de escoamento (1)

• O conjunto de rotas ideais de todas as origens para um mesmo destino, forma a Árvore de escoamento.

– O objetivo dos algoritmos de roteamento é descobrir a árvore de escoamento e utilizá-la.

– Não são exclusivas. Pode haver outras árvores com um caminho de mesmo custo.

Page 21: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Árvore de escoamento (2)

Uma redeA árvore de escoamento

Page 22: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Árvore de escoamento (3)

• Dependem da suposição técnica de que um caminho não interfere no outro.– O tráfego de um caminho congestionado não

será desviado para outro enlace.– Como é uma árvore, não existem loops.– Cada pacote será entregue passando por

uma quantidade finita e limitada de roteadores.

Page 23: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Roteamento pelo caminho mais curto

• Técnica simples para calcular os caminhos ideais a partir de uma imagem completa da rede.– Nem todos os roteadores conhecem todos os detalhes da

rede.

• A ideia é criar um grafo da rede, onde cada ângulo representa um roteador e cada aresta representa um enlace.

• Para escolher uma rota entre determinado par de roteadores, o algoritmo simplesmente encontra o caminho mais curto, entre eles, no grafo.

Page 24: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

O caminho mais curto

• Quantidade de saltos.• Distância geográfica em quilômetros.• Identificar cada aresta com o atraso médio de

enfileiramento ou de transmissão, baseando-se em um pacote de teste padrão, sendo especificado a cada hora.

• Arestas calculadas como uma função da distância, da largura de banda, do tráfego médio, do custo de comunicação, atraso medido, além de outros fatores.

Page 25: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Algoritmo para calcular o “caminho mais curto”

• Dijkstra [1959].– Cada nó e identificado (entre parêntesis) por sua

distância a partir do nó de origem ao longo do melhor caminho conhecido.

– Inicialmente nenhum caminho é conhecido, então todos são rotulados como infinito.

• A medida que o algoritmo prossegue, os rótulos podem mudar refletindo melhores caminhos.

– Os nós podem ser provisórios ou permanentes.• Inicialmente todos são provisórios. Quando se descobre que

ele representa o caminho mais curto, ele torna-se permanente e nunca mais muda.

Page 26: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Primeiras etapasDe A até D supondo que a métrica seja a distância

Page 27: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Procedimentos

1. Marcamos A como permanente (a).

2. Examinamos cada um dos nós adjacentes ao nó ativo, determinando a distância até o nó A, tornando permanente o que tiver a menor métrica (b).

3. A partir de B, que se tornou o nó ativo, examinamos os nós adjacentes a ele.

I. Se o valor até o nó A for menor, significa que a partir desse nó temos um caminho mais curto do que o anterior.

II. Novamente o nó de menor custo será assinalado como permanente, tornando-se o nó ativo.

4. Examina-se todo o grafo.

Page 28: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Algoritmos dinâmicos

• Vetor de distância.– RIP (Rounting Information Protocol).

• Bellman-Ford.– Belmann [1957].– Ford e Fulkerson [1962].– Algoritmo original da ARPANET.

• Estado de enlace.– OSPF (Open Shortest Path First).

Page 29: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Vetor de distância

• Cada roteador mantém uma tabela (ou seja, um vetor) com a melhor distância conhecida até cada destino e determina qual enlace deve ser utilizado para chegar até lá.

• Cada roteador compartilha com os vizinhos o seu conhecimento sobre as redes conectadas através de suas portas, mantendo-as atualizadas.

• O algoritmo.– Conhece suas interfaces.– Compartilha as informações somente com os vizinhos

imediatos.– Compartilha as informações a intervalos de tempo regulares.– Métrica pode ser hops ou outra medida qualquer.

Page 30: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

“Distância” até os vizinhos

• Presume-se que o roteador conheça a ‘distância’ até cada um dos seus vizinhos.– Se for o hop, será de apenas um hop.– Se for o atraso de propagação, o roteador

manda um pacote ECHO, REPLY especiais, o receptor identifica com um registro de tempo e manda de volta o mais rápido que puder.

Page 31: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Exemplo atraso como métrica (1)

• Uma vez a cada T ms, cada roteador envia aos seus vizinhos uma lista dos atrasos estimados até cada destino.

• Ele também recebe uma lista semelhante, de cada vizinho.

Page 32: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Exemplo atraso como métrica (2)

Page 33: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Exemplo atraso como métrica (3)

• Parte (a) mostra uma rede.• Parte (b) mostra os vetores de atraso recebidos

dos vizinhos do roteador J.• A alega ter um atraso de 12 ms até B, de 25 ms

até C e assim por diante.• Imagine que J tenha medido seu atraso com

cada um dos seus vizinhos, A, H, I e K como sendo 8, 10, 12 e 6 ms, respectivamente.

• Considere a forma como J calcula sua nova rota até o roteador G.

Page 34: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Contagem ao infinito

Quando X informa a Y que tem um caminho em algum lugar, Y não tem como saber se ele próprio está no caminho.RFC 1058.

Page 35: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Estado de Enlace

• Cada roteador deve fazer o seguinte:– Descobrir seus vizinhos e aprender seus endereços

de rede.– Medir a distância, ou o custo, até cada um dos seus

vizinhos.– Criar um pacote que informe tudo que ele acabou de

aprender.– Enviar esse pacote e receber pacotes de outros

roteadores.– Calcular o caminho mais curto até cada um dos

outros roteadores.

Page 36: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Estado de Enlace

• Ideia geral.– Cada roteador possui uma descrição exata da

topologia da rede.– A partir dai pode-se usar o algoritmo de

Dijkstra para determinar as melhores rotas.• O compartilhamento ocorre somente

quando um roteador detecta alguma mudança.– Tráfego é menos intenso. – Eventualmente um roteador recebe uma

cópia da mesma informação.

Page 37: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Áreas de roteamento (1)

• Área– Coleção de redes, hosts e roteadores

vinculados a um Sistema Administrativo.– Reduz a distribuição de rotas e tráfego.

Page 38: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Áreas de roteamento (2)

• Roteador de backbone (área zero).– Evita arbitrariedades como loops. – Hierarquia simples de dois níveis.

• Roteador de borda ou roteador de fronteira de área.– Traduz os registros do Estado de enlace em registros de

resumo.

• Informações sobre a topologia são propagadas somente dentro da área.

• As informações sobre as áreas são distribuídas para o mundo externo na forma de resumos de roteamento.

Page 39: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Áreas dentro de um sistema autônomo

Page 40: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Mensagens OSPF

Page 41: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Áreas de roteamento (3)

• Cada enlace (ou rede) é membro de uma única área.

• Mas, as áreas podem conter mais do que uma rede.

• Os roteadores são considerados membros de todas as áreas nas quais tem interfaces.

Page 42: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Comunicação entre as áreas

• Cada roteador compartilha o conhecimento sobre a vizinhança com os demais roteadores da área– Flooding (inundação).

No OSPF, todos os roteadores têm a mesma base de dados de link state.

Nota:Nota:

Page 43: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Conhecendo os vizinhos

• A primeira tarefa do roteador ao ser iniciado.– Envio de um pacote HELLO especial.

– Roteador da extremidade responde informando quem ele é.

Page 44: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Medindo o custo do enlace

• Cada enlace possui uma métrica (custo).• Pode ser definida automaticamente ou definida

pelo administrador.– Escolha usual:

• Custo inversamente proporcional à largura de banda do enlace.

– Caminhos de maiores capacidades tornam-se as melhores escolhas.

• A distância ou a velocidade do enlace também costumam ser usados.

– Pacote Echo/Reply.

Page 45: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Pacotes de Estado de Enlace

• Uma vez obtida as informações necessárias para a troca, cada roteador cria um pacote contendo todos os dados.– Identidade do transmissor.– Número de sequência.– Tempo de vida.– Lista de vizinhos contendo o custo até cada

vizinho.

Page 46: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Pacotes de Estado de Enlace

Page 47: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Distribuição dos pacotes

• Como distribuir os pacotes de Estado de Enlace?– Todos os roteadores precisam obter os

pacotes de forma rápida e confiável.– Diferentes versões da topologia levam a

inconsistências nas rotas, como loops ou máquinas inacessíveis.

Page 48: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Algoritmo Básico de Distribuição

• Para manter o controle do “flooding”, cada pacote contém um número de sequência que é incrementado para cada novo pacote enviado.

• Quando é recebido, o novo pacote de Estado de Enlace é conferido na lista de pacotes já recebidos– Se for novo, é encaminhado a todas as interfaces menos àquela

por onde ele chegou.– Se for uma cópia, o pacote é descartado.

• Se o pacote tiver um número de sequência mais baixo do que o maior número de sequência detectado, ele será rejeitado.

Page 49: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Problemas

• Repetição de algum número de sequência.– Utilizar números de 32 bits.

• Falha em um roteador ocasionando a perda de seu número de sequência.

• Número de sequência adulterado. Por exemplo o número 65540 recebido no lugar do número 4.– TTL

• Pacotes chegam a cada 10 segundos.• Contador suporta a perda de seis pacotes consecutivos.

Page 50: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Pacotes de Estado de Enlace

Page 51: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Calculando as novas rotas

• Roteador acumula um conjunto completo de Pacotes de Estado de Enlace.

• Cria o grafo da rede inteira representando todos os enlaces.– Todo enlace é representado duas vezes.

Uma para cada sentido.

• Algoritmo Dijkstra é executado determinando as melhores rotas.

Page 52: Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado transmissor, encapsula os segmentos em datagramas No lado.

Conclusão sobre os algoritmos de Estado de Enlace

• Estado de Enlace requer mais memória e mais cálculos.

• Não sofre com os problemas de convergência lenta.