Você está na página 1de 7

Estudo comparativo entre dois tradicionais algoritmos de

roteamento: vetor distância e estado de enlace.


Ederson Luis Posselt1, Geovane Griesang1
1
Instituto de Informática – Universidade de Santa Cruz do Sul (UNISC)
Bairro Universitário – na Av. Independência 2293 – Santa Cruz do Sul – RS – Brasil

Department of Computer Science – University of Santa Cruz do Sul.

Departamento de Sistemas e Computação


Universidade de Santa Cruz do Sul (UNISC) – Santa Cruz do Sul, RS – Brasil
edersonlp@yahoo.com.br, gola_va@yahoo.unisc.br,

Abstract. The routing algorithms are very important in the performance of


networks of computers. There are several algorithms, however, this article is
intended to demonstrate analysis conducted in two traditional: Distance
Vector and Link State. The study was conducted with two different topologies
and with the support of the tools and NS2 Trace Analyzer for NS2.

Resumo. Os algoritmos de roteamento são muito importantes no desempenho


das redes de computadores. Existem vários algoritmos, porém, o presente
artigo possui como objetivo, demonstrar a análise realizada em dois
tradicionais: vetor distância e estado de enlace. O estudo foi realizado com
duas topologias distintas e com o apoio das ferramentas NS2 e Trace Analyzer
for NS2.

1. Introdução
Um roteador deve conhecer a topologia da sub-rede, cuidar para não sub-recarregar uma
rota, solucionar problemas de estações origem e destino em sub-redes diferentes, além
de escolher o melhor caminho para os pacotes. Os algoritmos de roteamento são
programas em nível de rede, responsáveis por atualizar a tabela de roteamento dos
roteadores e definir o melhor caminho para que um pacote encontre o seu destino. O
administrador da rede pode definir a métrica a ser usada pelo algoritmo na localização
da melhor rota (Malima, 2006).

O roteador que utiliza um protocolo baseado no algoritmo vetor distância (VD),


possui as tabelas de roteamento atualizadas através da troca de mensagens com seus
vizinhos e mantém apenas as melhores rotas nesta tabela. Em intervalo de tempos
regulares, as tabelas de roteamento são enviadas apenas para seus vizinhos, que por sua
vez, atualizam suas tabelas (caso exista uma rota melhor) (Assis & Alves Jr., 2001;
Malima, 2006).

O roteador que utiliza um protocolo baseado no algoritmo estado de enlace (EE),


também possui as tabelas de roteamento atualizadas através da troca de mensagens com
seus vizinhos, porém, mantém todos os links da rede na tabela. O próprio roteador
descobre o melhor caminho, pois a rota possui o identificador de interface, número de
enlace e métrica. No momento em que ocorre uma alteração no estado de enlace da rede,
os nós adjacentes percebem e notificam os vizinhos, que por sua vez, atualizam a rota se
ela for nova (os pacotes possuem um campo com o número da mensagem ou hora para
saberem que a rota é nova) (Assis & Alves Jr., 2001; Malima, 2006).

Este artigo está dividido em quatro seções. Após a primeira seção introdutória, a
segunda seção demonstra brevemente o uso das ferramentas empregadas no estudo e os
motivos da escolha de tais programas para apoio. A seção três exibe as topologias
utilizadas para a análise dos resultados em cada um dos algoritmos de roteamento e os
resultados obtidos. Por fim, a seção quatro possui as considerações finais destacadas
pelo grupo.

2. Ferramentas de apoio
Para a realização da simulação foi utilizado à ferramenta Network Simulator (NS2).
Através de sua linguagem de scripts, duas topologias foram implementadas com os dois
tipos de algoritmos de roteamento em estudo (vetor distância e estado de enlace),
totalizando quatro simulações distintas. A ferramenta foi escolhida por ser freeware,
permitir a geração de arquivo de trace, permitir a escolha do algoritmo de roteamento
para simulação e permitir o escalonamento dos eventos.

Já a ferramenta Trace Analyzer for NS2, foi desenvolvida pelos autores do


artigo, com objetivo de simplificar a análise do arquivo de traço gerado pela ferramenta
NS2. A figura 01 exibe a interface do software.

Figura 1 – Interface da ferramenta Trace Analyzer for NS2


A ferramenta foi desenvolvida na linguagem de programação Delphi 6.0 para
Windows com conexão ao banco de dados Firebird 1.5 (ou superior), utilizando a
biblioteca Zeos. A interface do sistema é totalmente gráfica para facilitar o uso. A
ferramenta é freeware e open source, tanto o programa quanto o código-fonte estão
disponíveis para download em: www.caractere13.com.br/traceanalyzerforns2.
O software desenvolvido tem o seu escopo dividido em dois processos
principais, a importação do arquivo de trace gerado pelo NS2 e as consultas sobre os
registros no banco de dados Firebird.

A importação dos dados é simples, o “caminho” do arquivo de trace gerado pelo


NS2 deve ser informado na parte superior do programa, como pode ser observado na
figura 01. Em seguida, o botão “Importar arquivo” deve ser pressionado.

As consultas sobre a base de dados importada devem ser realizadas com base na
linguagem SQL, pois é uma linguagem de fácil utilização e bastante difundida. Com
conhecimento básico em SQL, é possível aplicar filtros, fazer totalizações, procurar
dados em uma faixa determinada de registros entre diversas outras operações. Após a
escrita da consulta, o botão “executar” deve ser pressionado para que os dados
referentes à consulta sejam listados na grade.

3. Estudo comparativo: vetor distância X estado de enlace


O estudo comparativo foi realizado sobre duas topologias distintas e todas as ligações
foram realizadas em full-duplex. A figura 02 exibe as topologias implementadas, cujas
linhas vermelhas indicam a queda do link. As duas topologias usam pacotes UDP de
tamanho 500 e intervalo para transferência de pacotes de 0,01 segundo.

Figura 02 – Topologias implementadas

A topologia 01 inicia a simulação de transferência de pacotes da estação 0 (T)


para a estação 5 (R) em 0,2 segundos. A queda do link que ligas as estações 1 e 3 foi
programada para ocorrer com 0,7 segundos de simulação, enquanto o link que liga as
estações 2 e 4 deve cair após 1 segundo de simulação. O restabelecimento do link que
liga as estações 2 e 4 foi implementado para ocorrer com 1,7 segundos, já o volta do link
que liga as estações 1 e 3 foi planejado para acontecer com 2 segundos de simulação. O
tráfego dos pacotes UDP foi programado para terminar com 2,3 segundos e o término da
simulação com 2,5 segundos.

A topologia 02 foi implementada para iniciar a transferência dos pacotes UDP da


estação 0 (T) para a estação 3 (R) com 0,2 segundos de simulação. A queda do link que
liga as estações 2 e 3 foi programada para ocorrer com 0,7 segundos, enquanto o
restabelecimento foi planejado para acontecer com 1,2 segundos de simulação. O
término da transferência dos pacotes UDP foi implementado para ocorrer com 1,7
segundos, já o encerramento da simulação deve acontecer com 1,9 segundos.
Para a análise dos resultados, o arquivo de trace gerado pela ferramenta NS2 foi
importado para a ferramenta Trace Analyzer for NS2. Essa importação possibilitou a
realização de diversas consultas, com o objetivo de coletar dados quantitativos para o
estudo comparativo entre os algoritmos de roteamento vetor distância e estado de
enlace. Logo abaixo, são exibidas duas consultas sobre os registros importados.

• select campo5, count(*) from trace where campo2 < 0.7 and campo1='r' group
by campo5;

• select campo5, count(*) from trace where seq > 339 and seq < 1988 and
campo1='r' group by campo5;

A primeira instrução foi realizada com o objetivo de totalizar o número de pacotes


recebidos até 0,7 segundos de simulação. Já a segunda consulta foi efetuada com o
objetivo de totalizar o número de pacotes entre os seqüenciais 339 e 1988. Outras
operações foram realizadas para obter o restante das informações, ou seja, a quantidade
de pacotes de mensagens, pacotes de dados (UDP) e o tempo (em segundos) para a
conclusão das tarefas exibidas na tabela 01. Tais registros foram analisados para os
algoritmos de roteamento vetor distância e estado de enlace. As etapas para a análise
foram escolhidas pela característica da topologia 01, como por exemplo, quedas de
links.
Vetor distância Estado de enlace
Pacotes de Pacotes de Pacotes de Pacotes de
Tempo(s) mensagens dados (total) Tempo(s) mensagens dados (total)
Inicialização 0,054 40 0,086 198
Antes da queda do link
1-3 0,228 48 143 0,242 132 143
Antes da queda do link
2-4 0,748 13 88 0,748 36 88
Até achar uma nova
rota após a queda do
link 1-3 0,718 4 0,718 4
Até achar a melhor rota
(0-2) após a queda do
link 1-3 0,748 14 0,748 14
Até achar uma nova
rota após a queda do
link 2-4 1,018 4 1,018 11
Após a restauração do
link 2-4 1,728 17 90 1,718 40 90
Após a restauração do
link 1-3 2,138 20 100 2,048 48 100
Tabela 01- Dados coletados para a topologia 01

O gráfico 01 demonstra o estudo comparativo realizado entre os algoritmos vetor


distância e estado de enlace, com destaque ao tempo para inicialização da simulação,
quedas de link, restabelecimentos de links e término da simulação.
Através da análise efetuada no gráfico 02 é possível verificar o total de pacotes de
mensagens encontradas durante as várias etapas da simulação, cada etapa demonstra a
quantidade de pacotes que foram localizados, tanto para o algoritmo de roteamento
vetor distância quanto o estado de enlace.

Topologia 01 - Tempo (s)

Vetor distância Estado de enlace

Após a restauração do link 1-3

Após a restauração do link 2-4

Até achar uma nova rota após a queda


do link 2-4
Até achar a melhor rota (0-2) após a
queda do link 1-3
Até achar uma nova rota após a queda
do link 1-3

Antes da queda do link 2-4

Antes da queda do link 1-3

Inicialização

0 0,5 1 1,5 2 2,5

Gráfico 01 – Análise de tempo (s) obtidos da topologia 01

Topologia 01 - Pacotes de mensagens

Vetor distância Estado de enlace

Após a restauração do link 1-3

Após a restauração do link 2-4

Até achar uma nova rota após a queda


do link 2-4
Até achar a melhor rota (0-2) após a
queda do link 1-3
Até achar uma nova rota após a queda
do link 1-3

Antes da queda do link 2-4

Antes da queda do link 1-3

Inicialização

0 50 100 150 200 250

Gráfico 02 – Quantidade de pacotes de mensagens obtidos da topologia 01

Para a topologia 02, também foram realizadas operações para obter a quantidade
de pacotes de mensagens, pacotes de dados (UDP) e o tempo (em segundos) de cada
tarefa exibida na tabela 02, tanto para o algoritmo vetor distância quanto para o
algoritmo estado de enlace. As etapas da topologia 02 também foram escolhidas pela
análise das características da topologia em questão.
Observando a topologia 02 é possível perceber que se trata de um típico problema
das redes de computadores: problema do horizonte dividido. Com a análise sobre os
pacotes de dados e pacotes de mensagens da tabela 02, é possível confirmar a eficiência
do algoritmo de roteamento estado de enlace para estabilizar o envio dos dados até que
o link que liga as estações 2 e 3 seja restabelecido.
Vetor distância Estado de enlace
Pacotes de Pacotes de Pacotes de Pacotes de
Tempo(s) mensagens dados Tempo(s) mensagens dados
Inicialização 0,054 11 0,086 29
Antes da queda do link
2-3 0,228 13 97 0,242 40 97
Até o link 2-3 ser
restaurado 1,214 176 353 1,248 8 3
Após a restauração do
link 2-3 1,214 13 251 1,248 24 96
Tabela 02 – Dados coletados para a topologia 02

Enquanto o gráfico 03 demonstra o comparativo de tempo para a realização de


uma etapa, o gráfico 04 permite a visualização comparativa das quantidades de
mensagens geradas pelos algoritmos em estudo: vetor distância e estado de enlace.

Topologia 02 - Tempo (s)


Vetor distância Estado de enlace

Após a restauração
do link 2-3

Até o link 2-3 ser


restaurado

Antes da queda do
link 2-3

Inicialização

0 0,2 0,4 0,6 0,8 1 1,2 1,4

Gráfico 03 - Análise de tempo (s) obtidos da topologia 02

Topologia 02 - Pacotes de mensagens

Vetor distância Estado de enlace

Após a restauração do
link 2-3

Até o link 2-3 ser


restaurado

Antes da queda do link


2-3

Inicialização

0 20 40 60 80 100 120 140 160 180 200

Gráfico 04 - Quantidade de pacotes de mensagens obtidos da topologia 02


4. Considerações finais
Segundo TANENBAUM (Tanenbaum, 2003), o algoritmo de roteamento vetor distância
converge mais lentamente que o estado de enlace. Porém, através da análise realiza nas
diferentes topologias e algoritmos de roteamento, podemos concluir que, tanto na
topologia 01 quanto na topologia 02, o algoritmo vetor distância convergiu mais rápido
na inicialização da simulação. Também observamos que, no término da simulação
realizada na topologia 01, o algoritmo vetor distância convergiu mais lentamente que o
estado de enlace mesmo mantendo o caminho dos pacotes do link que liga as estações 2
e 4, enquanto o estado de enlace voltou a transferir os pacotes pelo link que liga as
estações 1 e 3.

Também observamos que, na topologia 01, antes da queda do link que liga a
estação 1 e 3, assim como, antes da queda do link que liga a estação 2 e 4, o algoritmo
de estado de enlace gerou mais pacotes na rede. O mesmo ocorreu na topologia 02, antes
da queda do link que liga a estação 2 e 3.

Observamos também, o número de pacotes de mensagens gerados depois da


queda dos links até o surgimento da nova rota e constatamos que, na topologia 01,
depois da queda do link que liga as estações 1 e 3 até o surgimento da nova rota e,
posteriormente, até encontrar a melhor nova rota, os algoritmos vetor distância e estado
de enlace geraram o mesmo número de pacotes. Entretanto, após a queda do link que
liga as estações 2 e 4 até o surgimento da nova rota, o algoritmo estado de enlace gerou
mais pacotes de mensagem na rede.

Analisando a topologia 02, percebemos que até o link que liga as estações 2 e 3
ser restaurado, o algoritmo gerou vetor distância gerou a diferença mais expressiva de
pacotes na rede, foram 176 pacotes de mensagens do vetor distância, contra 8 pacotes de
mensagens do estado de enlace. A diferença entre os pacotes de dados gerados na rede é
ainda mais expressiva, foram 353 pacotes de dados gerados pelo vetor distância, contra
apenas 3 do estado de enlace. É importante salientar, que a diferença foi tão grande, por
se tratar do problema do horizonte dividido.

Depois do surgimento da nova rota até o final da simulação, em ambas as


topologias, o algoritmo de roteamento vetor distância gerou menos pacotes que o
algoritmo de roteamento estado de enlace.

Por fim, concluímos que o desempenho de uma rede de computadores depende da


topologia juntamente com o algoritmo de roteamento. Há topologias onde podemos
obter o melhor desempenho utilizando o vetor distância e em outras o estado de enlace.

Referências
Malima. (2006) “Roteamento e Roteadores”,
http://www.malima.com.br/article_read.asp?id=186.
Assis, Alexandre U. & Alves Jr, Nilton. (2001) “Protocolos de Roteamento – RIP e
OSPF”, http://www.rederio.br/downloads/pdf/nt01100.pdf.

Tanenbaum, A. (2003) “Redes de Computadores”, Terceira Edição. Editora Campus.

Você também pode gostar