Você está na página 1de 0

Roteamento em Redes de Computadores

I NATEL
1
ROTEAMENTO EM REDES DE COMPUTADORES
1. Introduo
Um dos principais problemas a ser resolvido no nvel de rede a escolha do caminho que
os pacotes devem seguir para interconexo das estaes de origem e de destino. Se a
rede do tipo datagrama a deciso de roteamento tomada para cada pacote. Se a rede
do tipo circuito virtual, o caminho a ser seguido definido no estabelecimento do
circuito virtual, e todos os pacotes da mensagem devem seguir este caminho.
Uma forma comum de implementao da deciso de roteamento em cada n atravs de
uma tabela de roteamento. O n recebe o pacote e se baseia em uma identificao
especfica (que pode ser os endereos de origem e destino, o nmero do circuito virtual,
ou apenas o endereo de destino, dependendo do sistema) para obter da tabela de
roteamento qual o enlace de sada para onde a mensagem deve ser encaminhada.
A figura a seguir ilustra uma rede composta de 7 ns. Perceba a existncia de diversos
caminhos possveis para interconexo, por exemplo, dos ns a e g.
A questo : Qual o melhor caminho a ser seguido?
a
b
c
d
e
f
g
Para se exemplificar o conceito de deciso de roteamento baseado em tabelas, ilustramos
a seguir uma possvel tabela de roteamento para o n (a).
N de Destino Prximo N
b b
c c
d d
e b
f c
g d
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
2
Se lembarmos que a rede do tipo Store-And-Forward e que cada pacote pode
enfrentar uma fila em cada um dos ns pelos quais ele passar, fica evidente que a tcnica
de roteamento implementada pela rede tem uma influncia direta na performance da
mesma.
2. Classificao das Tcnicas de Roteamento
2.1. Roteamento Esttico x Adaptativo:
No Roteamento Esttico os diversos caminhos interligando os ns da rede so definidos e
no mais alterados, a menos que ocorra uma mudana na topologia da rede (surgimento
ou desaparecimento de ns e/ou enlaces). J nas tcnicas adaptativas as tabelas de
roteamento esto sendo periodicamente alteradas, de modo a tentar acompanhar as
alteraes de trfego (ou outro parmetro) da rede. Normalmente as tcnicas adaptativas
resultam em um melhor desempenho ao custo de uma maior complexidade de
implementao.
2.2. Roteamento Centralizado x Isolado x Distribudo
2.2.1. Roteamento Centralizado
Nesta tcnica temos um nico n responsvel pela tomada das decises de roteamento na
rede e pelo encaminhamento dessas decises para os demais ns da rede.
Se a topologia esttica e o trfego sofre poucas alteraes, a execuo do algoritmo de
forma OFF-LINE e o posterior carregamento das tabelas nos diversos ns da rede pode
ser um opo. Contudo, se a rede est sujeita a variaes topolgicas (pela entrada e
sada de operao de estaes) e/ou a carga sofre variaes significativas ao longo do
dia, passa a ser necessrio criar um mecanismo que nos permita adaptar as tabelas de
roteamento s circunstncias correntes.
Quando usamos roteamento centralizado comum termos na rede um Centro de
Controle de Roteamento (RCC). Periodicamente cada n envia informaes de status
para a RCC (por exemplo, uma lista de seus vizinhos que esto em atividade, o tamanho
atual das filas, a quantidade de trfego processado por linha de sada desde o ltimo
report, etc). A RCC coleta todas estas informaes e, conhecendo agora o
comportamento global da rede, determina o melhor caminho a ser seguido para todas as
comunicaes possveis (por exemplo, utilizando um algoritmo de caminho mais curto).
Deste processamento resultam novas tabelas de roteamento
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
3
que sero distribudas para todos os ns.
O roteamento centralizado apresenta duas vantagens: a primeira consiste no fato de que a
RCC possui todas as informaes concernentes a rede e pode, com isso, tomar as
melhores decises; a segunda vantagem que o ns no necessitam efetuar
processamento de roteamento, o que acarreta em simplificao.
Infelizmente, este tipo de roteamento tambm apresenta desvantagens, algumas delas
srias. A primeira desvantagem est relacionada ao tempo de adaptao s mudanas na
rede; em uma rede extensa a RCC pode levar vrios segundos para executar os
algoritmos e gerar as novas tabelas de roteamento. Se a rede apresenta uma caracterstica
de grande variabilidade no trfego, este tempo pode acarretar em problemas, pois a
tabela gerada j no representar as melhores rotas a serem seguidas.
Outro srio problema associado ao roteamento centralizado a vulnerabilidade do RCC
no que diz respeito a falhas. Uma soluo para este problema termos uma mquina de
back-up, obviamente tendo que pagar pela facilidade.
Outro problema associado ao roteamento centralizado diz respeito s tabelas de
roteamento. Os ns mais prximos da RCC recebero as novas tabelas antes dos ns
mais distantes, podendo levar a inconsistncias no encaminhamento de mensagens
durante este intervalo.
Finalmente, o roteamento centralizado causa uma pesada concentrao de mensagens de
roteamento nas linhas que chegam RCC.
Esta idia esta ilustrada na figura a seguir.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
4
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
5
2.2.2. Roteamento Isolado
Nesta tcnica o n toma a deciso de roteamento baseado apenas em uma informao
local, sem trocar informaes com os demais ns da rede. Perceba, pois, que se trata de
uma tcnica descentralizada.
Um algoritmo simples do tipo isolado adaptativo o algoritmo conhecido como HOT
POTATO (batata quente). Neste algoritmo quando um pacote de mensagem chega a um
n, ele procura se livrar do pacote o mais rpido possvel, colocando-o na fila de sada
que apresentar menor tamanho naquele momento. Em outras palavras, quando um pacote
chega, o n verifica o nmero de pacotes na fila para cada uma das linhas de sada
possveis, e coloca o pacote a ser despachado naquela fila que tiver o menor nmero de
pacotes, sem se importar que linha esta.
Este tipo de algoritmo pode ser usado em conjunto com outros, como veremos mais
tarde, para se obter uma melhor performance.
2.2.3. Roteamento Distribudo
Nesta classe de algoritmos de roteamento cada n troca, periodicamente, informaes de
roteamento com outros ns da rede (por exemplo, com os ns vizinhos).
Baseado ento em informaes locais e informaes provenientes de outros ns da rede,
cada n toma suas decises de roteamento.
3. Algumas Questes de Desempenho Associadas ao Roteamento
Existem duas medidas de performance que so substancialmente afetadas pelos
algoritmos de roteamento - o Throughput (quantidade de servio), e o atraso mdio
sofrido pelo pacote (qualidade de servio). O roteamento interage com o controle de
fluxo na determinao dessas medidas de performance por meio de um mecanismo de
realimentao como o mostrado na figura a seguir. Quando o trfego chegando subrede
(trfego oferecido) relativamente baixo, ele completamente aceito pela rede, isto ,
Throughput = Trfego Oferecido
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
6
Delay
Controle
de
Fluxo
Roteamento
Throughput Delay
Trfego
Oferecido
Trfego
Rejeitado
Quando o trfego oferecido excessivo, uma parte dele ser rejeitado pelo controle de
fluxo, e,
Throughput = Trfego Oferecido - Trfego Rejeitado
O trfego aceito na rede sofrer um atraso mdio por pacote que depender da rota
escolhida pelo algoritmo de roteamento. Contudo, o Throughput tambm ser
grandemente afetado (mesmo que apenas indiretamente) pelo algoritmo de roteamento,
porque os esquemas de controle de fluxo tpicos operam na base de um balanceamento
entre Throughput e Delay, isto , eles iniciam a rejeio do trfego oferecido quando o
Delay torna-se excessivo.
Portanto, quanto mais sucesso o algoritmo de roteamento tiver em manter o atraso baixo,
mais trfego entrante o algoritmo de controle de fluxo permitir. Embora o balanceamento
preciso entre Delay e Throughput seja determinado pelo controle de fluxo, o efeito de um
bom roteamento sob condies de trfego oferecido alto realizar uma curva Throughput
x Delay mais favorvel, sob a qual o controle de fluxo opera. A figura a seguir ilustra a
idia.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
7
Os exemplos seguintes ilustram a discusso anterior:
Exemplo 1 :
Na rede da figura abaixo todos os enlaces tem uma capacidade de 10 unidades.
Temos dois ns, (1) e (2), originando mensagens para o mesmo destino, n (6). O trfego
oferecido em cada n origem 05 unidades. Neste caso, o trfego oferecido
relativamente leve e pode ser facilmente encaminhado, com baixo Delay, por exemplo
pelas rotas 1 3 6 e 2 5 6 . Se, contudo, as rotas 1 4 6 e 2 4
6 so usadas, o fluxo no enlace (4,6) ser igual sua capacidade, resultando em um
atraso significativamente grande.
Exemplo 2 :
Para a mesma rede, assuma agora que o trfego oferecido pelos ns (1) e (2) seja de 5 e
15 unidades, respectivamente. Se o roteamento do n (2) para o destino feito por um
caminho nico, ento ao menos 5 unidades de trfego oferecido devem ser rejeitadas,
uma vez que a capacidade total do caminho igual a 10. Assim, o Throughput total no
pode ser maior do que 15 unidades. Por outro lado, suponha que o trfego originado
no n (2) seja igualmente dividido entre os caminhos
2 4 6 e 2 5 6 , enquanto o trfego originado no n (1) encaminhado por
1 3 6 . Ento, o trfego chegando em cada enlace no ultrapassar 75% da sua
capacidade, resultando em um atraso com valor razovel, e (dado um bom esquema de
controle de fluxo) nenhuma parcela do trfego oferecido ser rejeitado. Analisando
similarmente, vemos que quando o trfego oferecido pelos ns (1) e (2) elevado (em
ambos os ns), o Throughput mximo que a rede pode acomodar est entre 10 e 30
unidades, dependendo do esquema de roteamento. Este exemplo tambm ilustra que,
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
8
para conseguirmos um Throughput elevado, o trfego de um par origem-destino pode ter
de ser encaminhado por mais de uma rota.
Em concluso, o efeito de um bom roteamento incrementar o Throughput para o mesmo
valor de atraso mdio por pacote sob condies de alto trfego oferecido e decrementar
o atraso mdio por pacote sob condies de baixo trfego oferecido. Alm disso,
evidente que o algoritmo de roteamento deva operar de modo a manter o atraso mdio
por pacote to baixo quanto possvel, para qualquer nvel de Throughput dado.
4. Algoritmos de Caminho Mais Curto
Como vimos, o Throughput e o Delay so dois parmetros de performance intimamente
ligados com o algoritmo de roteamento. Alguns dos algoritmos que trataremos em itens
posteriores associam uma medida de custo a cada enlace (ou n) da rede, e tentam
encontrar um caminho que minimize o custo total. O custo pode ser uma quantidade fixa
relacionada a alguns parmetros, tais como: comprimento do enlace, velocidade, largura
de faixa do enlace (capacidade de transmisso), se o enlace seguro ou no, atraso
estimado, ou alguma combinao deles. Ainda, o custo pode incluir o trfego mdio
esperado para uma dada hora em um dado dia, ele pode incluir estimativas de trfego no
enlace, ocupao de Buffer, condies de erro no enlace, e assim por diante.
O tipo de parmetro escolhido depende da classe do usurio (tipo de aplicao). Por
exemplo, trfego entre um terminal e um computador (interativo, em Bursts) requer um
caminho que oferea baixo tempo de resposta. Tal trfego deve evitar enlaces com
elevado tempo de propagao (enlace satlite, por exemplo). Assim, devemos aumentar
o custo deste tipo de enlace para esta classe de aplicao. Por outro lado, a transferncia
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
9
de grandes arquivos pode requerer um enlace com grande largura de faixa, se disponvel.
Assim devemos associar um baixo custo para esses enlaces (para
a aplicao de transferncia de arquivos). Completando o exemplo, mensagens que
exijam segurana devem ser roteadas por caminhos que envolvam apenas enlaces
seguros. Isto pode ser conseguido, associando os custos adequadamente.
Finalmente, vale salientar que para o caso de enlaces bidirecionais, podemos ter custos
diferentes associados a cada direo.
Passaremos agora a descrever dois algoritmos de roteamento que so utilizados
(diretamente, ou atravs de alguma variao) em diversos tipos de rede. Chamaremos os
algoritmos de A e B . O primeiro (A) devido A E. W. Diskstra, e o segundo a L. R.
Ford Jr. e D. R. Fulkerson.
4.1. Algoritmo A Algoritmo de Dijkstra
Considere a rede da figura abaixo, onde os nmeros associados com cada link
representam o seu custo (por simplicidade estamos admitindo que o custo para uma
direo e outra o mesmo). O algoritmo que aqui tratamos visa buscar o caminho mais
curto de um n para todos os outros ns da rede. Logo, necessitamos conhecer os
aspectos topolgicos da rede, isto , devemos conhecer todos os ns e suas
interconexes, assim como o custo de cada interconexo.
1 6
3 2
4 5
2
1
2
3
3
1
1
2
5
5
Ele pode ser implementado de uma forma centralizada, em que um nico n detm toda a
informao da rede, processa o algoritmo e posteriormente distribui as tabelas de
roteamento; ou servir de base para a implementao de um algoritmo distribudo (como
na Arpanet, onde cada n possui sua prpria base de dados com todas as informaes
para o processamento do algoritmo.
Vamos fazer um exemplo considerando o n 1 (veja figura anterior) como fonte. Antes de
apresentarmos o algoritmo vamos fazer as seguintes definies:
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
10
- D(v) distncia (soma dos pesos de todos os links ao longo do caminho) do n fonte
1 para o n v.
- l(i,j) custo entre o n i e o n j.
Vamos ao algoritmo:
1. INICIALIZAO: Faa N = {1}. Para cada n v fora de N, faa D(v) = l(1,v) (para
os ns no conectados a 1 podemos fazer D(v) = infinito, por exemplo).
2. PASSOS SUBSEQUENTES: Encontre um n w fora de N tal que D(w) seja mnimo,
adicione este n (w) a N. Atualize D(v) para todos ns restantes que ainda no esto em
N, fazendo
D(v) Min [ D(v), D(w) + l(w,v)]
Repita este passo at que todos ns estejam em N.
A tabela a seguir ilustra a aplicao deste algoritmo para o exemplo mostrado na figura
anterior.
Step inicial {1} 2 5 1 infinito infinito
1 {1,4} 2 4 (1) 2
2 {1,4,5} 2 3 1 (2) 4
3 {1,4,5,2} (2) 3 1 2 4
4 {1,4,5,2,3} 2 (3) 1 2 4
5 {1,4,5,2,3,6} 2 3 1 2 (4)
A rvore de caminho mais curto vai aparecendo com o prprio desenrolar do algoritmo,
como mostra a figura abaixo, onde o nmero entre parnteses prximo de cada n
representa o passo em que o n foi includo no algoritmo.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
11
(5)
(a)
Step number
1 6
3 2
4 5
2
1
1
1
2
(3) (4)
(1) (2)
(0)
Da rvore de caminho mais curto obtemos a tabela de roteamento para o n (1),
indicando, por destino, o enlace de sada para o qual o pacote deve ser encaminhado.
Assim, para o n (1) temos:
Destino Prximo N
2 2
3 4
4 4
5 4
6 4
O algoritmo deve ser rodado para cada um dos ns da rede como fonte, dando origem
tabela de roteamento. No caso de computao centralizada um nico n tem as
informaes da rede, executa o algoritmo para todos os ns e transmite a tabela de
roteamento para o n correspondente. No caso de roteamento descentralizado ou
distribudo, cada n executa o algoritmo tomando-se como fonte e gera sua prpria tabela
de roteamento. Neste caso todos os ns devem possuir as informaes da rede. Esta
ltima tcnica utilizada na rede ARPANET.
4.2. Algoritmo B Algoritmo de Bellman - Ford
Neste algoritmo cada n v tem um label [n,D(v)], onde D(v) representa o valor corrente
da distncia mais curta do n para o destino e n o nmero do prximo n ao longo do
caminho mais curto corrente. A execuo do algoritmo engloba dois procedimentos
bsicos:
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
12
1. INICIALIZAO: Com o n 1 como destino, faa D(1) = 0 e associe o label
(.,infinito) para os demais ns.
2. DISTNCIA MAIS CURTA: Para cada n v diferente de 1, faa o seguinte: atualize
D(v) usando o valor corrente D(w) para cada n vizinho w, fazendo
D(v) min [D(w) + l(w,v)]. Atualize o label v fazendo n igual ao n adjacente que
minimizou a expresso acima e fazendo D(v) igual ao valor encontrado.
Repita este passo para cada n at que nenhuma mudana ocorra. A tabela a seguir
ilustra a aplicao deste algoritmo para a figura do exemplo anterior.
CICLO LABELS N 2 3 4 5 6
INICIAL (.,INFIN) (.,INFIN) (.,INFIN) (.,INFIN) (.,INFIN)
1 (1,2) (1,5) (1,1) (4,2) (5,4)
2 (1,2) (5,3) (1,1) (4,2) (5,4)
CICLO 1:
- D(2) D(1) + l(1,2) = 2
- D(3) D(2) + l(2,3) = 5
D(1) + l(1,3) = 5
Obs.: neste caso a escolha arbitrria
- D(4) D(1) + l(1,4) = 1
D(2) + l(2,4) = 4
D(3) + l(3,4) = 8
- D(5) D(4) + l(4,5) = 2
D(3) + l(3,5) = 6
- D(6) D(3) + l(3,6) = 10
D(5) + l(5,6) = 4
CICLO 2:
- D(2) D(1) + l(1,2) = 0 + 2 = 2
D(4) + l(4,2) = 1 + 2 = 3
D(3) + l(3,2) = 5 + 3 = 8
- D(3) D(2) + l(2,3) = 2 + 3 = 5
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
13
D(1) + l(1,3) = 0 + 5 = 5
D(4) + l(4,3) = 1 + 3 = 4
D(5) + l(5,3) = 2 + 1 = 3
D(6) + l(6,3) = 4 + 5 = 9
- D(4) D(1) + l(1,4) = 0 + 1 = 1
D(2) + l(2,4) = 2 + 2 = 4
D(3) + l(3,4) = 3 + 3 = 6
D(5) + l(5,4) = 2 + 1 = 3
- D(5) D(4) + l(4,5) = 1 + 1 = 2
D(3) + l(3,5) = 3 + 1 = 4
D(6) + l(6,5) = 4 + 2 = 6
- D(6) D(3) + l(3,6) = 3 + 5 = 8
D(5) + l(5,6) = 2 + 2 = 4
Como no ocorreu mais nenhuma mudana, o algoritmo termina. Olhando para os labels
resultantes (vide tabela anterior) vemos que o n 2 deve se conectar ao n 1, o n 3 deve
se conectar ao n 5, o n 4 ao n 1 e ao n 5, e o n 6 ao n 5, resultando na figura
mostrada abaixo.
(5)
(a)
Step number
1 6
3 2
4 5
2
1
1
1
2
(3) (4)
(1) (2)
(0)
Para obter a tabela de roteamento para cada n, o algoritmo B deve ser repetido
tomando-se cada um dos ns como destino. Um algoritmo similar a este usado para
roteamento com computao centralizada na rede TYMNET.
5. Roteamento Por Caminhos Mltiplos
Em muitas redes, existe mais de um caminho "timo" entre pares de ns. Nestes casos,
uma boa performance pode ser obtida dividindo-se o trfego por esses diversos
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
14
caminhos, de forma a reduzir a carga em cada link. A tcnica de utilizar mltiplas rotas
entre um par de ns especfico chamada de MULTIPATH ROUTING ou roteamento
bifurcado.
Este tipo de roteamento se aplica tanto para redes do tipo DATAGRAMA quanto para
redes do tipo CIRCUITO VIRTUAL. Nas redes do tipo Datagrama, quando um pacote
chega a um n este escolhe uma das rotas possveis de sada, independente da rota que o
pacote anterior seguiu; j nas redes com implementao por Circuito Virtual, os pacotes
de uma mensagem seguem sempre uma das rotas timas, mas diferentes circuitos virtuais
podem ser escolhidos para diferentes mensagens, mesmo que os dois ns sejam os
mesmos.
Roteamento Multi-rotas pode ser implementado, por exemplo, da seguinte maneira: cada
n mantm uma tabela com uma linha para cada n destino. Nesta linha esto listadas a
melhor rota, a segunda melhor rota, a terceira melhor rota e assim por diante; para cada
uma dessas rotas temos um peso associado. Quando o n recebe
um pacote para ser retransmitido ele examina a linha correspondente ao destino da
mensagem, gera um nmero randomico e, em funo deste nmero e do peso associado a
cada uma das possveis rotas escolhe o caminho a ser seguido. Esta tabela pode ser
carregada nos ns durante o processo de inicializao da rede, no sendo alterada aps
isto.
Como um exemplo considere a rede da figura abaixo, a tabela mostrada a tabela de
roteamento do n j. Se J recebe um pacote cujo destino o n A ele usa a linha referente
a este n. Como temos 3 alternativas de link de sada, o n J ir gerar um nmero
randomico entre 0 e 0.99 e escolhe a rota em funo deste nmero. Se o nmero gerado
estiver entre 0 e 0.63 a linha A utilizada, se o nmero estiver entre 0.63 e 0.83, I ser
utilizada, e se for maior que 0.83 a rota H ser utilizada.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
15
A A 0.63 I 0.21 H 0.16
B A 0.46 H 0.31 I 0.23
C A 0.34 I 0.33 H 0.33
D H 0.50 A 0.25 I 0.25
E A 0.40 I 0.40 H 0.20
F A 0.34 H 0.33 I 0.33
G H 0.46 A 0.31 K 0.23
H H 0.63 K 0.21 A 0.16
I I 0.65 A 0.22 H 0.13
-
K K 0.67 H 0.22 A 0.11
L K 0.42 H 0.42 A 0.16
6 7 44 8 44 6 7 44 8 44 6 7 44 8 44
Destination
First
Choice
Second
Choice
Third
Choice
A B C D
E
F G
H
I J K L
Uma vantagem deste tipo de roteamento sobre o de Caminho mais Curto a
possibilidade de enviar trfegos de classes diferentes atravs de rotas diferentes. Este tipo
de roteamento pode tambm ser utilizado para incrementar a confiabilidade da rede. Em
particular, se a tabela de roteamento possui n rotas disjuntas entre cada par de ns da
rede, ento a subrede suporta a perda de n-1 linhas sem haver a diviso da rede em duas
partes.
Uma simples forma de implementar este tipo de algoritmo (garantindo que todas as rotas
alternativas so disjuntas) primeiro determinar o caminho mais curto entre a fonte e o
destino. A seguir, vamos remover do grafo todos os ns e arcos usados no caminho mais
curto e calcular um novo caminho mais curto. Este algoritmo garante que falhas que
ocorrerem no primeiro caminho mais curto no iro afetar as demais rotas alternativas.
Excluindo-se agora o segundo caminho mais curto podemos determinar a terceira opo,
e assim sucessivamente. (Garantindo que todas as rotas alternativas so disjuntas).
6. Roteamento Isolado - Evoludo a Idia do Hot Potato
J descrevemos o algoritmo Hot Potato em itens anteriores. Uma variao desta idia
combinar roteamento esttico com o algoritmo Hot Potato. Aqui, quando um pacote
chega, o algoritmo de roteamento levar em conta tanto os pesos estticos das linhas de
sada quanto o tamanho da fila nestas linhas. Uma possibilidade escolher a melhor rota
de sada, desde que a fila para esta rota no tenha ultrapassado um dado valor. Outra
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
16
possibilidade escolher a rota com menor fila, desde que seu peso esttico no seja
inferior a um dado valor. Ainda, uma outra forma escolher a rota de sada
considerando-se um ranking das melhores rotas e das menores filas, e escolhendo a rota
que tiver a melhor composio dos dois fatores. De qualquer forma, uma caracterstica
desejvel que o algoritmo escolha a melhor rota possvel em situaes de baixo trfego
e com o incremento do trfego naquela rota, desvie parte deste trfego para outras rotas.
7. Algoritmo Delta
Rudin, em 1976, descreveu um tipo de algoritmo hbrido, entre o roteamento centralizado
e isolado, bastante interessante. Este algoritmo denominado de algoritmo DELTA. A
idia a seguinte: cada n mede o "custo" (alguma funo de atraso, tamanho de fila,
utilizao, etc.) dos links e, periodicamente, envia um pacote para um n central com
essas informaes. Usando as informaes enviadas pelos ns, o n central calcula os K
melhores caminhos para interligar o n i ao n j, para todo i e j. Seja ento Cij1 o custo
total do melhor caminho entre i e j; Cij2 o custo total do prximo melhor caminho, e assim
sucessivamente. Se Cijn - Cij1 < Delta, o caminho n dito equivalente ao caminho 1, uma
vez que seus custos diferem de um valor pequeno. Quando os clculos de roteamento
terminam, o n central envia para cada n uma lista dos caminhos equivalentes para cada
um dos seus possveis destinos.
Nas implementaes atuais, o n pode escolher qual a rota a seguir dentro das rotas
equivalentes enviadas pelo n central. Esta deciso pode ser feita de forma aleatria ou
baseada no "custo" corrente de cada link. Note que, ajustando os valores de k e Delta,
podemos transferir autoridade dos ns para o n central ou vice-versa. Se fizermos Delta
tender a zero, todos os caminhos tornam-se inferiores ao melhor caminho, e o n
central toma a deciso; se por outro lado fazemos Delta tender a
infinito, todos os caminhos tornam-se equivalentes, e cada n passa a tomar a deciso de
roteamento. Simulaes tem mostrado que o valor de Delta pode ser ajustado de tal
forma a obtermos um desempenho superior quele que obteramos trabalhando com
algoritmos puramente centralizados ou puramente isolados.
8. Roteamento Por Inundao
Uma forma extrema de roteamento isolado o roteamento por INUNDAO. Nesta
tcnica o n recebe um dado pacote e o retransmite para todas linhas de sada, com
exceo daquela pela qual ele recebeu o pacote. Obviamente, o processo de inundao
gera uma enorme quantidade de duplicatas dos pacotes, tendendo a infinitas duplicatas se
no criarmos uma forma de restringir este nmero.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
17
Uma das formas de restringirmos o nmero de duplicatas na rede utilizarmos um
contador no cabealho do pacote. Este contador inicializado com o tamanho do
caminho entre a fonte e o destino ( caso este valor no seja conhecido podemos inicializ-
lo com o tamanho mximo da rede) em termos de nmero de "escalas". Cada n que
recebe o pacote decrementa este contador de 1. Quando o contador chegar a zero o
pacote no mais ser retransmitido, sendo eliminado da rede. Assim, conseguimos
eliminar as duplicatas que no tenham chegado ao destino.
A tcnica de inundao no tem aplicao prtica na maioria dos casos. No entanto,
existem algumas situaes onde ela torna-se atrativa. Em aplicaes militares, por
exemplo, a robustez da tcnica pode ser um fator interessante. Em aplicaes com bases
de dados distribudas, algumas vezes necessrio atualizar essas bases concorrentemente,
neste caso a tcnica de inundao pode ser til. Outra possvel utilizao esta relacionada
a um processo de medio de caractersticas da rede, que podem ser utilizadas por
outros algoritmos. A vantagem da tcnica de inundao neste caso a garantia de que a
mensagem chegar ao destino atravs do caminho mais curto possvel. De fato, nenhum
outro algoritmo pode produzir um atraso menor para uma dada mensagem. (Se
ignorarmos o Overhead gerado pelo prprio processo de inundao).
Uma variao deste algoritmo a inundao seletiva. Aqui, os ns no enviam cada
pacote que chega para todas as linhas de sada, mas somente para aquelas que vo
aproximadamente para a direo correta.
9. Verso Descentralizada do Algoritmo B Roteamento com Vetor de Distncia
Uma verso descentralizada do algoritmo B, denominado Algoritmo Distribudo de
Bellman- Ford foi usado originalmente na Arpanet (posteriormente abandonado) e na
Internet (com o nome e RIP), e muito proximamente relacionado com o algoritmo usado
na arquitetura DNA (Digital Network Architecture). Um aspecto interessante deste
algoritmo que ele requer que uma quantidade muito pequena de informaes seja
armazenada nos ns da rede. De fato, um n no precisa conhecer os detalhes da
topologia da rede. suficiente para um n conhecer o comprimento de seus enlaces de
sada e a identidade de cada n na rede.
Faremos aqui uma descrio simplificada do algoritmo (seguindo Tanenbaum). Uma
abordagem um pouco mais formal pode ser obtida em [Schuwartz] e [Bertsekas, 87].
Nesta classe de algoritmo de roteamento, originalmente usada na rede ARPANET, cada
n troca, periodicamente, informaes de roteamento com cada um dos seus vizinhos.
Tipicamente, cada n mantm uma tabela que diz a linha de sada a ser usada para cada
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
18
destino e uma estimativa do custo para aquele destino. O parmetro usado para
estabelecer o custo pode ser o nmero de "escalas", o atraso estimado, o nmero de
pacotes na fila, etc.
Como um exemplo, assuma que o atraso usado como parmetro(caso da Arpanet) e
que cada n conhece o atraso relacionado a cada um dos seus vizinhos. Uma vez a cada
T milisegundos(2/3 segundo na Arpanet cada n envia para cada um dos seus vizinhos
uma lista de sua estimativa de atraso para cada destino. Imagine que um determinado n
recebeu uma tabela do seu vizinho X, com X
i
representando a estimativa de X para uma
conexo com o n i. Se o n que recebeu a mensagem conhece o atraso para X, ele
tambm conhece o atraso para cada um dos ns (i) atravs de X, que seria X
i
+ m
(mseg), onde m representa a estimativa de atraso do n em questo para o n X.
Executando este clculo para cada vizinho, o n tem condio de encontrar qual a melhor
forma de se conectar aos demais ns da rede.
Este processo de atualizao ilustrado na figura a seguir. A parte (a) da figura mostra a
subrede. As primeiras 4 colunas mostram os vetores de atraso recebidos pelo n J,
oriundo de seus vizinhos. Por exemplo, o n A diz ter um atraso de 12 ms para B, 25 ms
para C, 40 ms para D, etc. Suponha que o n J tenha medido ou estimado o atraso para
cada um dos seus vizinhos como 8, 10, 12 e 6 ms para os ns A, I, H e K
respectivamente.
Considere que o n J est calculando uma nova rota para se interligar ao n G. Ele sabe
que o n A estima um atraso de 18 ms para se conectar a G, como o atraso na conexo
J->A de 8 ms, o atraso total para conexo ao n G atravs do n A de 26 ms. Da
mesma forma, para a conexo atravs de I obtemos um atraso de 31 + 10 =41 ms,
atravs de H temos 6 + 12 = 18 ms , e atravs de K obtemos 31 + 8 = 37 ms.
Logo, a melhor forma de enviarmos uma mensagem de J para G faze-lo atravs de H.
Este procedimento repetido pelo n J para todos os possveis destinos na rede, gerando
uma nova tabela de roteamento para este n.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
19
A 0
B 12
C 25
D 40
E 14
F 23
G 18
H 17
I 21
K 24
L
A B C D
E
F G
H
I J K L
J
9
29
24
36
18
27
7
20
31
20
0
22
11
33
20
31
19
8
30
19
6
0
14
22
7
9
21
28
36
24
22
40
31
19
22
0
10
9
8
20
28
20
17
30
18
12
10
6
0
15
A
B
C
E
F
I
K
L
J
D
G
H
A I H K
New estimated
Delay from J line
JA Delay
= 8
JI Delay
= 10
JH Delay
= 12
JK Delay
= 6
(b)
(a)
Note que, por causa da natureza deste algoritmo, em que o ns passam mensagens de
controle para os outros ns at que o algoritmo esteja completo em cada n, convergindo
para o caminho mais curto, ele s pode ser usado em redes tipo datagrama. De fato, uma
caracterstica geral de algoritmos deste tipo a seguinte:
No existe nenhuma garantia que durante a transmisso dos pacotes o algoritmo no
possa ser invocado em algum ponto da rede, mudando o caminho aps a convergncia.
Isto significa que pacotes diferentes da mesma mensagem podem trilhar caminhos
diferentes, podendo inclusive chegar fora da ordem em que foram transmitidos. Esta
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
20
caracterstica no um problema para redes datagrama, mas o para redes do tipo
Circuito Virtual.
Ainda, durante a fase de convergncia este algoritmo propenso a formao de Loops:
Pacotes saindo de um n podem voltar ao mesmo algum tempo depois. Isto pode no ser
um grande problema para redes datagrama, mas intolervel para redes com circuito
virtual. Em funo dos parmetros de adaptatividade usados na Arpanet, o problema do
loop tornou-se bastante srio (ns diferentes tinham vises diferentes das condies da
rede). Por esta razo o algoritmo foi abandonado e outro foi desenvolvido, em 1979.
10. Exemplos de Roteamento em Redes e Arquiteturas de Rede
10.1. Roteamento na TYMNET
O algoritmo de roteamento da Tymnet, implementado em 1971, baseado no mtodo do
caminho mais curto. O algoritmo o de Floyd, que uma variao do algoritmo B
apresentado no item 4. A Tymnet usa o conceito de roteamento centralizado, operado
por um programa supervisor rodando em um dos quatro possveis computadores
supervisores na rede. A rede trabalha com circuito virtual, o que significa que a deciso
de roteamento tomada no instante do estabelecimento do circuito. A construo do
caminho de roteamento incorpora o conceito de classe de servio, similar ao usado no
SNA. O Peso dos enlaces varia, dependendo do tipo de trfego transmitido. Por
exemplo, usurios iterativos de baixa velocidade so guiados para longe de enlaces via
satlite atravs do incremento do peso desses enlaces para este caso. Computadores que
esto transferindo arquivos entre si podem requerer enlaces via-satlite, com maior
largura de faixa que os enlaces terrestres. Os pesos dos enlaces tambm dependem da
utilizao e das condies de erro detectadas no mesmo. Especificamente, o nmero 16
associado a enlaces de 2.400 BPS, 12 aos enlaces de 4.800 BPS e 10 aos enlaces de
9.600 BPS. Uma penalidade de 16 adicionada ao enlace satlite para usurios iterativos
de baixa velocidade. Isto desloca tais usurios para enlaces terrestres.
Uma penalidade de 16 adicionada a um enlace se o n de uma das extremidades acusa
sobrecarga. Se ambos os ns que compem o enlace acusam sobrecarga a penalidade
32. A sobrecarga experimentada se o pacote para um circuito virtual especfico espera
mais que 0,5 [s] para ser servido. Esta condio reportada pelo n para o supervisor.
Uma condio de sobrecarga pode ocorrer por um excesso de circuitos requerendo
servio sobre o mesmo Link, ou ela pode ser devida a uma situao de canal ruidoso,
provocando um aumento na taxa de erro de Bit e, consequentemente, um nmero maior
de retransmisses. A penalidade usada neste caso serve para afastar os circuitos
adicionais do enlace at que as condies do mesmo melhorem.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
21
Na ausncia de sobrecarga, o algoritmo tende a selecionar o caminho mais curto (menor
nmero de enlaces) com a maior taxa de transmisso. medida que mais usurios vo
entrando na rede, os enlaces de mais baixa velocidade passam tambm a ser utilizados.
Em situaes de carga leve, os usurios tendem a ter um atraso relativamente curto na
rede. O caminho mais curto (com nmero menor de saltos), favorecido pelo caso de
trfego leve, tambm tende a ser mais confivel do que caminhos com mais enlaces.
Usurios que cheguem ao sistema em um perodo de maior ocupao podem
experimentar um atraso maior, devido a congestionamentos e uso de enlaces de mais
baixa velocidade. O uso de penalidades para sobrecarga tende a espalhar o trfego pela
rede desviando-o do caminho mais curto mas reduzindo o atraso.
No caso de falha de um enlace ou n a longo de um circuito virtual, o n supervisor
notificado, determina automaticamente uma nova rota e notifica todos os ns envolvidos.
A notificao consiste no envio para o n de origem de um pacote controle que contm
uma lista de todos o ns ao longo da rota. O n de origem por sua vez envia este pacote
de controle para o prximo n na lista, que o envia para o prximo n na lista e assim
sucessivamente, at que o n de destino seja alcanado.
O procedimento descrito no pargrafo anterior tambm ocorre quando do
estabelecimento de um novo circuito virtual. Ou seja, o n supervisor recebe uma
solicitao de estabelecimento de circuito virtual entre dois pontos, decide qual o caminho
ser usado pelo circuito virtual e informa os ns associados ao caminho. O supervisor
estabelece o novo circuito virtual, como antes, enviando um pacote Bssola para o n
de origem.
A tabela de roteamento mantida em cada n basicamente associa ao circuito virtual um
nmero de canal (ou porta) em cada enlace do mesmo. Por exemplo na figura abaixo, a
tabela do n A mapeia a porta de entrada 5 no canal 4 do enlace 1. No n B, o canal de
entrada 4 mantido no canal de sada 10. Para o n C, o canal de entrada 10 mapeado
para a porta 7.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
22
10.2. Roteamento na Internet Roteamento por Estado de Enlace
O algoritmo que aqui descrevemos a verso introduzida em 1979, em substituio
verso original, que apresentava alguns problemas de loop. Esta algoritmo usa uma verso
modificada do algoritmo de caminho mais curto de Dijkstra (algoritmo A) rodando
independentemente em todos os ns. Em essncia, cada n mantm uma base de dados
topolgica completa (global), que atualizada regularmente quando uma mudana
topolgica ocorre. A filosofia de Roteamento da Arpanet tem consistentemente sido a de
rotear os pacotes (datagramas) por caminhos que possuam a menor estimativa (corrente)
de atraso, de modo que as estimativas de atraso tambm devem ser disseminadas quando
mudanas significativas ocorrem.
Neste algoritmo cada n executa os seus prprios clculos. O problema bsico manter
(confivelmente) a mesma base de dados para cada n e disseminar as mudanas
rapidamente e de forma confivel para as bases de dados dos ns.
Podemos dividir o algoritmo em trs partes:
1) Estimativa do Atraso: As estimativas so feitas sobre um intervalo de 10 segundos. No
algoritmo anterior eram feitas cerca de duas vezes por segundo, levando a estimativas
que algumas vezes eram estatisticamente insignificantes e que geravam instabilidades no
roteamento. O n estima o retardo para cada uma de suas linhas.
2) Protocolo de Atualizao: Para a disseminao das informaes de atraso medidas, o
algoritmo utilizado o da inundao, de modo a alcanar todos os ns da rede to
rpido quanto possvel.
3) Definio do Caminho Mais Curto: Uma verso modificada do algoritmo de Dijsktra
utilizada em cada n para gerar as tabelas de roteamento.
A medida de retardo feita para cada pacote, em todos os ns da rede, da seguinte
maneira: O intervalo de tempo entre a chegada do pacote e o seu envio com sucesso
(levando em conta as retransmisses necessrias) constitui o atraso sofrido pelo pacote.
A este tempo somado o tempo de transmisso do pacote (que depender da taxa de
transmisso do enlace de sada) e o tempo de propagao (uma constante para cada
enlace de sada). A mdia deste tempo em um perodo de 10 segundos constitui a
estimativa estatstica de atraso para aquele enlace. Se a nova estimativa difere da anterior
por mais que 64 [ms], ela transmitida para os demais ns da rede por inundao. Se
este limiar no excedido, o processo repetido a intervalos de 10 [s] com o limiar
sendo reduzido de 12.8 [ms] a cada vez. Isto garante ao menos uma atualizao a cada
60 [s]. Contudo, quando uma mudana topolgica ocorre (por exemplo, uma linha
retirada ou inicializada), uma informao de atualizao transmitida imediatamente.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
23
No processo de inundao as mensagens so retransmitidas, em cada n, para todas as
linhas, incluindo quela por onde o pacote chegou. O eco aqui serve como um
reconhecimento. Mecanismos de controle so utilizados para evitar a inundao contnua
descontrolada da rede; Ou seja, existem mecanismos para a retirada desses pacotes da
rede.
11. Performance de Algoritmos de Roteamento
Uma comparao quantitativa de algoritmos de roteamento bastante complexa por uma
srie de razes. Uma delas est associada aos diversos critrios possveis de anlise da
performance existentes. Muitas vezes um algoritmo tem um melhor desempenho para
determinados objetivos; Enquanto outros podem ser melhores se trocarmos os objetivos.
Outra razo se deve ao fato de que a performance do algoritmo depende da configurao
especfica da rede. Ns s podemos obter resultados analticos para certos grafos
regulares. Para configuraes de rede reais devemos lanar mo de anlises
computacionais e/ou simulaes.
Quando estamos comparando o desempenho de algoritmos de mesmo tipo (por exemplo,
algoritmo de caminho mais curto), o que mais nos interessa so as caractersticas do
mesmo associadas sua capacidade de se adaptar a mudanas na rede.
Alguns critrios que podem ser utilizados so:
1) Velocidade de Resposta: O tempo requerido para que uma mudana na topologia se
propague atravs da rede e para que as novas tabelas de roteamento estabeleam um
novo caminho mais curto (quiescente). Uma possvel medida de velocidade o
nmero de iteraes requeridas para que o algoritmo convirja para um novo estado.
Esta medida de performance , obviamente, extremamente importante em um ambiente
dinmico. A velocidade de resposta deve ser mais rpida que a taxa de mudana na
rede, caso contrrio a convergncia no ocorrer e o algoritmo de roteamento ser
intil.
2) Nmero de Pacotes de Controle Transmitidos: Qual a informao que deve ser
transmitida ao longo da rede para propagar as modificaes ocorridas (topolgicas,
nos custos associados) e as atualizaes das tabelas de roteamento. Quanto maior o
nmero de pacotes de controle, maior o Overhead introduzido e maior a possibilidade
de congestionamento introduzida pelos pacotes de controle.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
24
3) Complexidade Computacional: Os algoritmos requerem um esforo computacional
varivel para processar os pacotes de controle, executar o algoritmo propriamente dito
e atualizar as tabelas de roteamento. Isto pode refletir no tempo de processamento
para cada n e portanto na velocidade de processamento.

4) Tamanho dos Pacotes de Controle: Os algoritmos diferem na quantidade de
informao transmitida por pacote de controle.
5) Espao de Buffer Requerido: Os algoritmos diferem no espao de memria requerido
para atualizar e manter as tabelas de roteamento.
6) Loop: No estado transitrio ou de convergncia de um algoritmo podemos ter a
ocorrncia de loop. Um algoritmo Loop-Free garante que os pacotes de dados no
retornaro aos ns pelos quais ele j passou, mesmo quando as tabelas de roteamento
esto em processo de mudana.
www.projetoderedes.kit.net www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
25
12. Bibliografia
12.1. SCHWARTZ, Mischa - Telecommunication Networks; Protocols, Modeling And
Analysis Addison - Wesley Publishing Company - 1987.
12.2. BERTSEKAS, Dimitri And Gallager, Robert - Data Networks - Prentice-Hall,
Inc-1987.
12.3. TANENBAUM, Andrew S. - Redes de Computadores - Editora Campus - 1994
(1989).
12.4. BRITO, Jos Marcos C. - Projeto de Redes de Teleprocessamento - Apostila de
Curso CEDETEC/INATEL - 1994.
12.5. AHUJA, Visay - Design And Analysis of Computer Communication Networks
- McGraw-Hill Book Company - 1982.
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
26
13. Exerccios
1) Considere a rede mostrada na figura abaixo. Utilize os algoritmos A e B para
encontrar o caminho mais curto entre o Rio de Janeiro e cada uma das outras cidades.
2) O nmero mostrado prximo a cada enlace da rede da figura abaixo a probabilidade
do enlace falhar durante a durao de um circuito virtual entre o n A e o n B.
Vamos assumir que os enlaces falham independentemente um dos outros. Encontre o
caminho mais confivel de A para B, esto , o caminho para o qual a probabilidade
que todos os enlaces permaneam intactos durante a durao do circuito virtual
mximo. Qual esta probabilidade?
www.projetoderedes.kit.net
Roteamento em Redes de Computadores
I NATEL
27
3) Considere a rede de dados da figura abaixo. Encontre o caminho mais curto entre
Seattle e todas as outras cidades na rede para trfego interativo e usurios Batch,
considerando as seguintes condies:
a) Linhas terrestres de 2.400 BPS tem peso 1 para todos os usurios; Linhas de 4.800
BPS tem peso 1 para usurios Batch e peso 3 para usurios interativos.
b) Enlaces de satlites tem peso 1 para usurios Batch e 6 para usurios interativos.
Repita os clculos se a estao terrena de Nova York sair de operao temporariamente
para manuteno. Repita se o enlace Houston-Atlanta ficar fora de operao.
www.projetoderedes.kit.net www.projetoderedes.kit.net