Escolar Documentos
Profissional Documentos
Cultura Documentos
Marcell de Oliveira
Sandro Rodrigues
ALGORITMOS DE ROTEAMENTO
Vitória
Junho/2008
Princípios Básicos
Os roteadores utilizam os algoritmos de roteamento para encontrar o melhor
caminho para um destino. Quando dizemos "melhor caminho" estamos considerando
parâmetros como o número de saltos (a viagem que um pacote utiliza de um
roteador, ou ponto imediato, para outro na rede), tempo de atraso e custo de
comunicação de transmissão de um pacote.
Com base na forma como os roteadores obtêm dados sobre a estrutura da rede e a
sua análise destas informações para especificar o melhor caminho, temos duas
rotinas de algoritmos principais: algoritmos de roteamento globais e algoritmos
de roteamento descentralizados. Nas rotinas de roteamento descentralizado,
cada roteador possui os dados sobre o outro roteador conectado diretamente a ele.
Ele não conhece as informações sobre todos os roteadores da rede. Estes
algoritmos são também conhecidos como algoritmos DV (vetor distância). Nos
algoritmos de rotina global, cada roteador tem informações completas sobre todos
os outros roteadores da rede e o estado do tráfego nela. Estes algoritmos são
também conhecidos como algoritmos LS (estado do enlace).
Algoritmos LS
Nos algoritmos LS, cada roteador tem que seguir alguns procedimentos descritos
abaixo.
* Identificar os roteadores que estão fisicamente conectados a ele e receber seus
endereços IP. Quando um roteador inicia seu trabalho, ele envia, primeiramente, um
pacote com um "ALO" para a rede. Cada roteador que recebe este pacote responde
com uma mensagem que contém seu endereço de IP.
* Medir o tempo de atraso (ou quaisquer outros parâmetros importantes da rede,
como média de tráfego) para roteadores vizinhos. Para poder fazer isto, os
roteadores enviam pacotes de eco pela rede. Todos os roteadores que recebem
estes pacotes respondem com um pacote de resposta. Dividindo o tempo de
percurso por 2, os roteadores podem contar o tempo de atraso (tempo de percurso é
a medida do atraso na rede, encontrado pelo tempo que um pacote de
dados ricocheteou em algum host remoto). Perceba que este tempo inclui tanto o
tempo de transmissão como o tempo de processamento. O tempo que leva o pacote
a atingir o seu destino e o tempo que leva o receptor para processá-lo e responder.
Algoritmos DV
Algoritmos DV são também conhecidos como algoritmos de roteamento Bellman-
Ford e algoritmos de roteamento Ford-Fulkerson. Nestes algoritmos, cada roteador
possui uma tabela de roteamento que mostra o melhor caminho para cada destino.
Nos algoritmos DV, cada roteador deve seguir alguns procedimentos.
1. Ele conta o peso dos enlaces conectados diretamente a ele e salva a
informação na sua tabela.
2. Num determinado período de tempo, ele envia sua tabela ao roteador vizinho
(não para todos os roteadores) e recebe a tabela de roteamento de cada um de
seus vizinhos.
3. Baseado na informação das tabelas de roteamento de seus vizinhos, ele
atualiza a sua.
Imagine uma rede com um diagrama como mostrado abaixo. Como vemos, há
somente uma ligação entre A e a outra parte da rede. Aqui podemos ver o grafo e a
tabela de roteamento de todos os nós:
A B C D
Imagine que o enlace entre A e B está cortado. Neste momento, B corrige sua
tabela. Após um intervalo de tempo específico, os roteadores trocam suas tabelas, e
B recebe a tabela de roteamento de C. Desde que C não saiba o que aconteceu ao
enlace entre A e B, ele diz ter um enlace com A com o peso de 2 (1 de C para B, e 1
de B para A. Ele não sabe que B não tem um enlace com A). B recebe esta tabela e
pensa que existe um enlace isolado entre C e A, então ele corrige sua tabela e
alterando de infinito para 3 (1 de B para C e 2 de C para A, como disse C). Uma vez
mais, roteadores trocam suas tabelas. Quando C recebe a tabela de roteamento de
B, ele vê que B alterou o peso de seu enlace de A de 1 para 3, então C atualiza sua
tabela e altera o peso da ligação de A para 4 (1 de C para B, e 3 de B para A, como
disse B).
Este processo se repete até que todos os nós descubram que o peso da ligação A é
infinito. Desta forma, especialistas dizem que o algoritmo DV possui uma baixa taxa
de convergência.
Uma maneira de resolver este problema é os roteadores enviarem informações
somente aos vizinhos que não estão exclusivamente ligados ao destino. Por
exemplo, neste caso, C não deveria enviar qualquer informação para B sobre A,
porque B é o único caminho para A.
Roteamento Hierárquico
Como vimos, tanto nos algoritmos LS como no DV, cada roteador tem que salvar
algumas informações de outros roteadores. Quando o tamanho da rede cresce, o
número de roteadores na rede aumenta. Conseqüentemente, o tamanho das tabelas
de roteamento aumenta, e os roteadores não conseguem gerenciar o tráfego da
rede com eficiência. Usamos roteamento hierárquico para superar este problema.
Vamos examinar este assunto com um exemplo:
Usamos o algoritmo DV para encontrar o melhor caminho entre os nós. Na situação
descrita abaixo, todos os nós da rede têm que salvar uma tabela de roteamento com
17 registros. Aqui temos um grafo e uma tabela de roteamento para A:
A --- ---
B B 1
C C 1
D B 2
E B 3
F B 3
G B 4
H B 5
I C 5
J C 6
K C 5
L C 4
M C 4
N C 3
O C 4
P C 2
Q C 3
A --- ---
B B 1
C C 1
Região 2 B 2
Região 3 C 2
Região 4 C 3
Região 5 C 4