Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado...
Transcript of Roteamento Capítulo 6. Transporta segmentos do hospedeiro transmissor para o receptor No lado...
Roteamento
Capítulo 6
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
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.
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.
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
Sistemas autônomos
• A Internet é dividida em sistemas autonomos (ASs)
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.
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)
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.
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.
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.
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.
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.
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
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.
Métrica
• Custo de passagem.
• Roteador escolhe o enlace que tiver a menor métrica.
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.
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.
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.
Á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.
Árvore de escoamento (2)
Uma redeA árvore de escoamento
Á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.
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.
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.
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.
Primeiras etapasDe A até D supondo que a métrica seja a distância
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.
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).
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.
“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.
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.
Exemplo atraso como métrica (2)
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.
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.
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.
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.
Á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.
Á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.
Áreas dentro de um sistema autônomo
Mensagens OSPF
Á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.
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:
Conhecendo os vizinhos
• A primeira tarefa do roteador ao ser iniciado.– Envio de um pacote HELLO especial.
– Roteador da extremidade responde informando quem ele é.
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.
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.
Pacotes de Estado de Enlace
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.
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.
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.
Pacotes de Estado de Enlace
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.
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.