Roteamento Agenda Redes de Computadores 2 Prof. Rodrigo da Rosa Righi - Aula 2 professor.unisinos.br/righi rrrighi@unisinos.br Algoritmos de Roteamento Princípio da Optimalidade Algoritmo de Vetor de Distâncias Algoritmo Exemplo Problema de Contagem Até o Infinito
Roteamento Principal função da camada de rede é rotear pacotes da máquina origem até a máquina destino. A única excessão notável é redes broadcast. Entretanto, até nesse tipo de rede o roteamento é importante, pois existem situações onde a origem e o destino não estão na mesma rede. Algoritmos de roteamento fazem parte da camada de rede e decidem qual a linha de saída que pacote entrantes devem tomar. Este procedimento deve ser feito individualmente para cada pacote (no caso de datagramas).
Roteamento Diferença entre roteamento e forwarding Roteador possui dois processos dentro de si: um deles captura os pacotes que estão chegando, verifica a linha de saída para eles na tabela de roteamento e os repassa pelas portas de saída. Esse processo é forwarding. O outro processo é responsável por preencher e atualizar as tabelas de roteamento. Algoritmo de roteamento deve ser capaz de lidar com mudanças na topologia e no tráfego sem requisitar que todos os jobs em todos os hosts sejam abortados. Questões importantes: estabilidade, justiça e optimality.
Algoritmos de Roteamento Dois grandes grupos de algoritmos de roteamento: Não adaptativos: Não baseam suas decisões de roteamento em medidas ou estimativas de tráfego ou da topologia atual. Ao invés disso, as rotas são computadas in advance ou offline, e transportadas para os roteadores quando a rede é inicializada. Procedimento também é chamado de roteamento estático. Não adaptativo= offline ou estático
Algoritmos de Roteamento Adaptativos: Mudam suas decisões de roteamento para refletir mudanças na topologia e também no tráfego de dados. Capturam suas informações localmente, de roteadores adjacentes ou de todos os roteadores. Adaptativo= online ou dinâmico
Princípio da Optimalidade Se um roteador J está no caminho ótimo do roteador I para o roteador K, então o caminho ótimo de J para K também está na mesma rota. Para ver isso, denomine parte da rota de I para J como r1 e o resto da rota r2. Se uma rota melhor que r2 existe partindo de J para K, ela pode ser concatenada com r1 para melhorar a rota de I para K.
Algoritmo de Vetor de Distâncias Conhecer todos os integrantes da rede nem sempre é uma realidade Ex.: a própria Internet Nesses casos, não é possível aplicar algoritmos globais (ex.: Dijkstra) Por outro lado, é razoável assumir que cada roteador conhece todos os seus vizinhos A partir daí, pode-se imaginar um algoritmo que se baseie somente na troca de informações entre eles.
Algoritmo de Vetor de Distâncias Roteamento dinâmico - Roteamento com vetor de distâncias e roteamento usando estado do link Roteamento com Vetor de Distância trabalha com a idéia de que cada roteador mantém uma tabela (ou vetor) que informa a melhor distância conhecida para cada destino. Foi o algoritmo de roteamento original da ARPANET e foi usado na Internet com o nome de RIP.
Algoritmo de Vetor de Distância Bellman-Ford (1957) e Ford-Fulkerson (1962) Roteadores trocam informações com seus vizinhos a respeito do que sabem até o momento Ex.: roteador B sabe que tem custo 5 até o roteador C, e envia essa informação para o roteador A (supondo que A e B são adjacentes) Processo é repetido até que converge para uma situação estável em que todos já têm a indicação de menor custo para todos os demais destinos.
Algoritmo de Vetor de Distância Cada roteador mantém uma tabela de distâncias Linhas = vetor de distâncias (custos) Dos vizinhos Do próprio roteador Colunas = destinos possíveis No roteador X D V (Y) = custo conhecido para chegar ao roteador Y a partir de V (onde V é um vizinho de X) D X (Y) = min{ c(x,v) + D V (Y) } para todo V Cada vez que o roteador X descobre um novo custo para chegar em Y, ele avisa seus vizinhos, que por sua vez também atualizam sua tabelas.
Algoritmo Inicialização Tabela de distâncias é preenchida com os custos para os roteadores vizinhos Essa informação é propagada aos vizinhos no Laço principal Espera receber uma atualização ou ocorrer alguma alteração no custo dos links diretos; Atualiza o seu vetor de distâncias; Se algum elemento do vetor de distâncias mudou, propagar o novo vetor aos vizinhos.
Algoritmo A métrica pode ser o número de hops, tempo de atraso em milisegundos, número total de pacotes na fila.\ Se a métrica é atraso, o roteador pode medi-lo diretamente com pacotes especiais tipo ECHO, no qual o receptor somente coloca seu timestamp e o envia de novo. Funcionamento: Usando atraso como métrica, a cada T microsegndos, cada roteador envia a sua lista para cada um dos vizinhos. Ele também recebe a lista dos vizinhos.
Algoritmo Para chegar a um dado roteador Y, devo verificar o caminho mais curto para a distância a um vizinho + a distância do vizinho até Y.
B A 3 1 1 C destinos Exemplo A vetores 0 3 1 0 2 1 C 3 0 1 1 1 0 C 0 2 1 C 2 0 1 1 1 0 C Tab. Repasse A Dest. Rota B C C C B vetores 3 0 1 0 3 1 2 0 C 1 1 0 1 C 0 2 1 2 C 0 1 C 1 1 0 Tab. Repasse B Dest. Rota A C C C C vetores 1 1 0 0 3 1 3 0 1 1 A 1 B 0 0 2 1 2 0 1 1 A 1 B 0 Tab. Repasse C Dest. Rota A A B B
Exemplo
Problema de Contagem Até o Infinito Más notícias trafegam devagar. Entende-se como más notícias o fato de um roteador (nó) repentinamente ficar inacessível. Gradualmente, todos os roteadores levam seus valores para o infinito. Na topologia abaixo, o nó A fica inacessível repentinamente e o nó B, ao detectar que o custo de seu enlace para o nó A é igual a infinito, divulga essa informação para o seu vizinho C. Em resposta a essa informação, C divulga que tem um caminho com custo 2 para A. O roteador B não tem como saber que o custo informado pelo C é justamente aquele passando por ele próprio. Agora, o nó B recalcula a sua rota para A, adicionando o custo de 1 ao custo informado pelo C.
Problema de Contagem Até o Infinito Centro do problema: Quando um nó X informa a um nó Y que tem um caminho para o nó Z, o nó Y não tem como saber se ele próprio está nesse caminho ou não. D E X 1 3 3 5 2 2 4 4 3 3 3 5 4 4 4 4 Inicialmente Depois de 1 troca Depois de 2 trocas Depois de 3 trocas Alternativa de Solução: Estabelecer limites máximos de custo. 5 6 5 6 7 6 7 6 Depois de 4 trocas Depois de 5 trocas