• Nenhum resultado encontrado

O algoritmo de roteamento é a parte do software da camada de rede responsável por decidir sobre qual linha de saída (enlace) um pacote, que chega a determinado nó, deve ser transmitido. Contudo, independente de um algoritmo específico há algumas propriedades desejáveis para assegurar a eficácia dos mesmos [Tanembaun, 97]:

!

Correção: calcular corretamente as melhores rotas, tendo o cuidado para não

informar, erroneamente, rotas inexistentes;

!

Simplicidade: deve agir com eficiência sem sobrecarregar a máquina com cálculos

complexos. O administrador da rede deve entender o funcionamento do algoritmo;

!

Resistência: o algoritmo deve estar apto a funcionar continuamente, suportando e

agindo corretamente sob várias falhas de hardware e software que os nós venham a sofrer. Falhas estas, causam mudanças na topologia e no tráfego;

!

Estabilidade: os nós da rede devem convergir rapidamente. Convergir diz-se

quando todos os nós ficam com suas tabelas de roteamento completas e atualizadas com as rotas ótimas;

!

Consideração com o usuário e eficiência global: estas duas propriedades muitas

vezes são contraditórias, pois, muitas vezes, para melhorar a eficiência global deve- se sacrificar a comunicação entre alguns usuários. Contudo, esses usuários podem não estar de acordo com esta decisão. Deve-se decidir o que se busca otimizar para tomar decisões ponderadas.

!

Estáticos (não adaptativos): as rotas são computadas com antecedência e alocadas na tabela de roteamento de cada nó que, uma vez criada, não é mais alterada. Os nós recebem suas tabelas no momento da inicialização da rede. Se o tráfego da rede não for regular e bem conhecido, haverá uma má utilização dos meios de comunicação;

!

Dinâmicos (adaptativos): alteram dinamicamente suas tabelas de roteamento,

baseando-se nas mudanças na topologia e no tráfego corrente. Este tipo de encaminhamento pode ser subdividido de acordo com a forma de atualização das tabelas, tais como, centralizados, isolados ou distribuídos.

A seguir, são descritos dois dos algoritmos de roteamento mais conhecidos: Vetor Distância e Estado de Enlace. Mais detalhes sobre algoritmos de roteamento encontram-se em [Tanembaun, 97]).

C.1. Algoritmo Vetor de Distância (Distance Vector Algorithm)

A primeira descrição, conhecida, desta classe de algoritmo é [Ford, 62] e por este motivo este algoritmo também é conhecido como Ford-Fulkerson, contudo o termo Bellman-Ford também é usado devido ao fato de que sua formulação foi baseada na equação de Bellman, a base da programação dinâmica [Hendrick, 88]. Segue um resumo de seu funcionamento descrito em [Schimitt, 96]:

!

Em intervalos de tempo regulares cada nó da rede envia toda a sua tabela de

roteamento para, e somente para, os seus vizinhos;

!

Após algum tempo os diversos nós da rede convergem, ou seja ficam com as suas

tabelas de roteamento completas (uma entrada para cada destino) e atualizadas;

!

As tabelas de roteamento contém, pelo menos, o endereço destino, a métrica, e o

próximo nó para onde a mensagem deve ser enviada;

!

Exige poucos recursos de memória e de processamento dos nós da rede;

Contudo, apesar da convergência mais lenta, existem alguns problemas relacionados com o algoritmo Vetor de Distância [Soares, 97b]:

!

Bouncing Effect: este problema corresponde à formação de laços durante a fase

de convergência do algoritmo. As mensagens enviadas ficam rebatendo de um roteador para outro e nunca chegam ao seu destino, sendo eliminadas por causa do TTL (Time To Live);

!

Count to infinity: corresponde à impossibilidade do algoritmo convergir em

algumas situações de queda de enlaces. A rota nunca é marcada como inatingível e os pacotes ficam novamente rebatendo de um nó para outro.

A seguir apresentam-se várias soluções encontradas para resolução total ou parcial dos problemas citados acima:

!

Hop-count Limit: o infinito é representado por um número. Este número deve ser

escolhido de maneira tal que o algoritmo não demore muito para convergir, mas também que a distância máxima entre dois nós da rede não fique muito limitada;

!

Split Horizon: as informações de roteamento não devem ser enviadas de volta

para a máquina que as originou. Este mecanismo soluciona o problema de laço entre 2 nós, mas não soluciona o problema de laços entre mais de 2 nós;

!

Hold-down: determina que quando uma rota torna-se inatingível ela só possa ser

restabelecida após algum tempo. Isto impede que uma rota que caia volte precipitadamente. Este período deve ser maior do que o tempo necessário para que uma mensagem se propague por toda a rede;

!

Triggered Updates (atualizações disparadas): na ocorrência de uma modificação

na tabela de roteamento, imediatamente mensagens de atualização são disparadas. Não sendo aguardado o intervalo normal de transmissão das mensagens de atualização.

C.2. Algoritmo Estado do Enlace (Link State Algorithm).

Esta classe de algoritmo utiliza mais de um algoritmo de roteamento, tais como o algoritmo de roteamento pelo caminho mais curto desenvolvido por [Dijkstra, 59] e o algoritmo Dilúvio (Flood), entre outros. Segue seu funcionamento básico:

!

Descobre quem são os vizinhos e qual o estado dos enlaces deles;

!

Mede os custos associados aos diversos enlaces que possui;

!

Transmite as informações sobre os enlaces para todos os nó da rede;

!

Recebe o estado de todos os enlaces da rede;

!

Constrói um mapa completo da rede;

!

Constrói o melhor caminhos para cada roteador da rede utilizando o algoritmo de

Dijkstra;

!

Cada roteador constrói uma árvore de melhor caminho, sendo ele próprio a raiz.

As principais características deste algoritmo são [Shimitt, 96]:

!

As atualizações ocorrem somente quando há uma modificação da rede;

!

As atualizações são enviadas para todos os roteadores da rede;

!

Para realizar o envio da atualização para toda a rede, existe um protocolo que

"inunda" a rede com a mensagem, chamado de flooding protocol;

!

Quando dois nós se "descobrem", durante a inicialização de um roteador, eles

trocam mensagens entre si para sincronizarem os seus bancos de dados. Depois de os bancos de dados estarem iguais, a nova configuração é comunicada ao restante da rede;

!

Os bancos de dados topológicos de todos os roteadores devem estar sempre iguais após a convergência do algoritmo;

!

Apresentam uma rápida convergência;

!

É bastante complexo e requer grande poder de processamento e ocupa bastante

Apêndice D

Documentos relacionados