Professional Documents
Culture Documents
INATEL
1. Introdução
Um dos principais problemas a ser resolvido no nível de rede é a escolha do caminho que
os pacotes devem seguir para interconexão das estações de origem e de destino. Se a
rede é do tipo datagrama a decisão 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.
A figura a seguir ilustra uma rede composta de 7 nós. Perceba a existência de diversos
caminhos possíveis para interconexão, por exemplo, dos nós a e g.
A questão é: Qual o melhor caminho a ser seguido?
b e
a d g
c f
Nó de Destino Próximo Nó
b b
c c
d d
e b
f c
g d
1
Roteamento em Redes de Computadores
INATEL
Nesta técnica temos um único nó responsável pela tomada das decisões de roteamento na
rede e pelo encaminhamento dessas decisões para os demais nós da rede.
2
Roteamento em Redes de Computadores
INATEL
3
Roteamento em Redes de Computadores
INATEL
4
Roteamento em Redes de Computadores
INATEL
Este tipo de algoritmo pode ser usado em conjunto com outros, como veremos mais
tarde, para se obter uma melhor performance.
5
Roteamento em Redes de Computadores
INATEL
Delay
Tráfego Controle
de Roteamento
Oferecido Throughput Delay
Fluxo
Tráfego
Rejeitado
Quando o tráfego oferecido é excessivo, uma parte dele será rejeitado pelo controle de
fluxo, e,
O tráfego aceito na rede sofrerá um atraso médio por pacote que dependerá da rota
escolhida pelo algoritmo de roteamento. Contudo, o Throughput também será
grandemente afetado (mesmo que apenas indiretamente) pelo algoritmo de roteamento,
porque os esquemas de controle de fluxo típicos operam na base de um balanceamento
entre Throughput e Delay, isto é, eles iniciam a rejeição do tráfego oferecido quando o
Delay torna-se excessivo.
Portanto, quanto mais sucesso o algoritmo de roteamento tiver em manter o atraso baixo,
mais tráfego 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 condições de tráfego oferecido alto é realizar uma curva Throughput
x Delay mais favorável, sob a qual o controle de fluxo opera. A figura a seguir ilustra a
idéia.
6
Roteamento em Redes de Computadores
INATEL
Exemplo 1 :
Exemplo 2 :
Para a mesma rede, assuma agora que o tráfego oferecido pelos nós (1) e (2) seja de 5 e
15 unidades, respectivamente. Se o roteamento do nó (2) para o destino é feito por um
caminho único, então ao menos 5 unidades de tráfego oferecido devem ser rejeitadas,
uma vez que a capacidade total do caminho é igual a 10. Assim, o Throughput total não
pode ser maior do que 15 unidades. Por outro lado, suponha que o tráfego originado
no nó (2) seja igualmente dividido entre os caminhos
2 → 4 → 6 e 2 → 5 → 6 , enquanto o tráfego originado no nó (1) é encaminhado por
1 → 3 → 6 . Então, o tráfego chegando em cada enlace não ultrapassará 75% da sua
capacidade, resultando em um atraso com valor razoável, e (dado um bom esquema de
controle de fluxo) nenhuma parcela do tráfego oferecido será rejeitado. Analisando
similarmente, vemos que quando o tráfego oferecido pelos nós (1) e (2) é elevado (em
ambos os nós), o Throughput máximo que a rede pode acomodar está entre 10 e 30
unidades, dependendo do esquema de roteamento. Este exemplo também ilustra que,
7
Roteamento em Redes de Computadores
INATEL
8
Roteamento em Redes de Computadores
INATEL
de grandes arquivos pode requerer um enlace com grande largura de faixa, se disponível.
Assim devemos associar um baixo custo para esses enlaces (para
a aplicação de transferência de arquivos). Completando o exemplo, mensagens que
exijam segurança 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 direção.
Considere a rede da figura abaixo, onde os números associados com cada link
representam o seu custo (por simplicidade estamos admitindo que o custo para uma
direção e outra é o mesmo). O algoritmo que aqui tratamos visa buscar o caminho mais
curto de um nó para todos os outros nós da rede. Logo, necessitamos conhecer os
aspectos topológicos da rede, isto é, devemos conhecer todos os nós e suas
interconexões, assim como o custo de cada interconexão.
3
2 3
2
5
3
2 1
1 6
1 2
1
4 5
Ele pode ser implementado de uma forma centralizada, em que um único nó detém toda a
informação da rede, processa o algoritmo e posteriormente distribui as tabelas de
roteamento; ou servir de base para a implementação de um algoritmo distribuído (como
na Arpanet, onde cada nó possui sua própria base de dados com todas as informações
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 definições:
9
Roteamento em Redes de Computadores
INATEL
- D(v) ⇒ distância (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. INICIALIZAÇÃO: Faça N = {1}. Para cada nó v fora de N, faça D(v) = l(1,v) (para
os nós não conectados a 1 podemos fazer D(v) = infinito, por exemplo).
A tabela a seguir ilustra a aplicação deste algoritmo para o exemplo mostrado na figura
anterior.
A árvore de caminho mais curto vai aparecendo com o próprio desenrolar do algoritmo,
como mostra a figura abaixo, onde o número entre parênteses próximo de cada nó
representa o passo em que o nó foi incluído no algoritmo.
10
Roteamento em Redes de Computadores
INATEL
(3) (4)
2 3
2
(0) 1 6
1 (5) Step number
2
1
4 5
1
(1) (2)
(a)
Destino Próximo Nó
2 2
3 4
4 4
5 4
6 4
O algoritmo deve ser rodado para cada um dos nós da rede como fonte, dando origem à
tabela de roteamento. No caso de computação centralizada um único nó tem as
informações da rede, executa o algoritmo para todos os nós e transmite a tabela de
roteamento para o nó correspondente. No caso de roteamento descentralizado ou
distribuído, cada nó executa o algoritmo tomando-se como fonte e gera sua própria tabela
de roteamento. Neste caso todos os nós devem possuir as informações da rede. Esta
última técnica é utilizada na rede ARPANET.
Neste algoritmo cada nó v tem um label [n,D(v)], onde D(v) representa o valor corrente
da distância mais curta do nó para o destino e n é o número do próximo nó ao longo do
caminho mais curto corrente. A execução do algoritmo engloba dois procedimentos
básicos:
11
Roteamento em Redes de Computadores
INATEL
CICLO LABELS → Nó 2 3 4 5 6
12
Roteamento em Redes de Computadores
INATEL
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
2 3
2
(0) 1 6
1 (5) Step number
2
1
4 5
1
(1) (2)
(a)
Para obter a tabela de roteamento para cada nó, o algoritmo B deve ser repetido
tomando-se cada um dos nós como destino. Um algoritmo similar a este é usado para
roteamento com computação centralizada na rede TYMNET.
Em muitas redes, existe mais de um caminho "ótimo" entre pares de nós. Nestes casos,
uma boa performance pode ser obtida dividindo-se o tráfego por esses diversos
13
Roteamento em Redes de Computadores
INATEL
caminhos, de forma a reduzir a carga em cada link. A técnica de utilizar múltiplas rotas
entre um par de nós específico é 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 possíveis de saída, independente da rota que o
pacote anterior seguiu; já nas redes com implementação 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 nós sejam os
mesmos.
Roteamento Multi-rotas pode ser implementado, por exemplo, da seguinte maneira: cada
nó mantém uma tabela com uma linha para cada nó destino. Nesta linha estão 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
14
Roteamento em Redes de Computadores
INATEL
Destination
First Second Third
Choice Choice Choice
64
4744 8 644744 8 64
4744 8
A A 0.63 I 0.21 H 0.16
A B C D 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 G F A 0.34 H 0.33 I 0.33
E H 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
I J K L
L K 0.42 H 0.42 A 0.16
Uma simples forma de implementar este tipo de algoritmo (garantindo que todas as rotas
alternativas são disjuntas) é primeiro determinar o caminho mais curto entre a fonte e o
destino. A seguir, vamos remover do grafo todos os nós 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 não irão afetar as demais rotas alternativas.
Excluindo-se agora o segundo caminho mais curto podemos determinar a terceira opção,
e assim sucessivamente. (Garantindo que todas as rotas alternativas são disjuntas).
Já descrevemos o algoritmo Hot Potato em itens anteriores. Uma variação desta idéia é
combinar roteamento estático com o algoritmo Hot Potato. Aqui, quando um pacote
chega, o algoritmo de roteamento levará em conta tanto os pesos estáticos das linhas de
saída quanto o tamanho da fila nestas linhas. Uma possibilidade é escolher a melhor rota
de saída, desde que a fila para esta rota não tenha ultrapassado um dado valor. Outra
15
Roteamento em Redes de Computadores
INATEL
possibilidade é escolher a rota com menor fila, desde que seu peso estático não seja
inferior a um dado valor. Ainda, uma outra forma é escolher a rota de saída
considerando-se um ranking das melhores rotas e das menores filas, e escolhendo a rota
que tiver a melhor composição dos dois fatores. De qualquer forma, uma característica
desejável é que o algoritmo escolha a melhor rota possível em situações de baixo tráfego
e com o incremento do tráfego naquela rota, desvie parte deste tráfego para outras rotas.
7. Algoritmo Delta
Nas implementações atuais, o nó pode escolher qual a rota a seguir dentro das rotas
equivalentes enviadas pelo nó central. Esta decisão pode ser feita de forma aleatória ou
baseada no "custo" corrente de cada link. Note que, ajustando os valores de k e Delta,
podemos transferir autoridade dos nós 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 decisão; se por outro lado fazemos Delta tender a
16
Roteamento em Redes de Computadores
INATEL
A técnica de inundação não tem aplicação prática na maioria dos casos. No entanto,
existem algumas situações onde ela torna-se atrativa. Em aplicações militares, por
exemplo, a robustez da técnica pode ser um fator interessante. Em aplicações com bases
de dados distribuídas, algumas vezes é necessário atualizar essas bases concorrentemente,
neste caso a técnica de inundação pode ser útil. Outra possível utilização esta relacionada
a um processo de medição de características da rede, que podem ser utilizadas por
outros algoritmos. A vantagem da técnica de inundação neste caso é a garantia de que a
mensagem chegará ao destino através do caminho mais curto possível. De fato, nenhum
outro algoritmo pode produzir um atraso menor para uma dada mensagem. (Se
ignorarmos o Overhead gerado pelo próprio processo de inundação).
Uma variação deste algoritmo é a inundação seletiva. Aqui, os nós não enviam cada
pacote que chega para todas as linhas de saída, mas somente para aquelas que vão
aproximadamente para a direção correta.
17
Roteamento em Redes de Computadores
INATEL
destino e uma estimativa do custo para aquele destino. O parâmetro usado para
estabelecer o custo pode ser o número de "escalas", o atraso estimado, o número de
pacotes na fila, etc.
Como um exemplo, assuma que o atraso é usado como parâmetro(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 Xi representando a estimativa de X para uma
conexão com o nó i. Se o nó que recebeu a mensagem conhece o atraso para X, ele
também conhece o atraso para cada um dos nós (i) através de X, que seria Xi + m
(mseg), onde m representa a estimativa de atraso do nó em questão para o nó X.
Executando este cálculo para cada vizinho, o nó tem condição de encontrar qual a melhor
forma de se conectar aos demais nós da rede.
Este processo de atualização é 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 nós 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 conexão
J->A é de 8 ms, o atraso total para conexão ao nó G através do nó A é de 26 ms. Da
mesma forma, para a conexão através de I obtemos um atraso de 31 + 10 =41 ms,
através de H temos 6 + 12 = 18 ms , e através de K obtemos 31 + 8 = 37 ms.
Logo, a melhor forma de enviarmos uma mensagem de J para G é faze-lo através de H.
Este procedimento é repetido pelo nó J para todos os possíveis destinos na rede, gerando
uma nova tabela de roteamento para este nó.
18
Roteamento em Redes de Computadores
INATEL
A B C D
F G
E H
I J K L
(a)
New estimated
A I H K Delay from J line
A 0 24 20 21 8 A
B 12 36 31 28 20 B
C 25 18 19 36 28 C
D 40 27 8 24 20 D
E 14 7 30 22 17 E
F 23 20 19 40 30 F
G 18 31 6 31 18 G
H 17 20 0 19 12 H
I 21 0 14 22 10 I
J 9 11 7 10 0 J
K 24 22 22 0 6 K
L 29 33 9 9 15 L
JA Delay JI Delay JH Delay JK Delay
=8 = 10 = 12 =6
(b)
Note que, por causa da natureza deste algoritmo, em que o nós passam mensagens de
controle para os outros nós 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
característica geral de algoritmos deste tipo é a seguinte:
Não existe nenhuma garantia que durante a transmissão dos pacotes o algoritmo não
possa ser invocado em algum ponto da rede, mudando o caminho após a convergência.
Isto significa que pacotes diferentes da mesma mensagem podem trilhar caminhos
diferentes, podendo inclusive chegar fora da ordem em que foram transmitidos. Esta
19
Roteamento em Redes de Computadores
INATEL
característica não é um problema para redes datagrama, mas o é para redes do tipo
Circuito Virtual.
20
Roteamento em Redes de Computadores
INATEL
21
Roteamento em Redes de Computadores
INATEL
Neste algoritmo cada nó executa os seus próprios cálculos. O problema básico é manter
(confiávelmente) a mesma base de dados para cada nó e disseminar as mudanças
rapidamente e de forma confiável para as bases de dados dos nós.
A medida de retardo é feita para cada pacote, em todos os nós da rede, da seguinte
maneira: O intervalo de tempo entre a chegada do pacote e o seu envio com sucesso
(levando em conta as retransmissões necessárias) constitui o atraso sofrido pelo pacote.
A este tempo é somado o tempo de transmissão do pacote (que dependerá da taxa de
transmissão do enlace de saída) e o tempo de propagação (uma constante para cada
enlace de saída). A média deste tempo em um período de 10 segundos constitui a
estimativa estatística de atraso para aquele enlace. Se a nova estimativa difere da anterior
por mais que 64 [ms], ela é transmitida para os demais nós da rede por inundação. Se
este limiar não é 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 atualização a cada
60 [s]. Contudo, quando uma mudança topológica ocorre (por exemplo, uma linha é
retirada ou inicializada), uma informação de atualização é transmitida imediatamente.
22
Roteamento em Redes de Computadores
INATEL
23
Roteamento em Redes de Computadores
INATEL
24
Roteamento em Redes de Computadores
INATEL
12. Bibliografia
25
Roteamento em Redes de Computadores
INATEL
13. Exercícios
26
Roteamento em Redes de Computadores
INATEL
3) Considere a rede de dados da figura abaixo. Encontre o caminho mais curto entre
Seattle e todas as outras cidades na rede para tráfego interativo e usuários Batch,
considerando as seguintes condições:
a) Linhas terrestres de 2.400 BPS tem peso 1 para todos os usuários; Linhas de 4.800
BPS tem peso 1 para usuários Batch e peso 3 para usuários interativos.
b) Enlaces de satélites tem peso 1 para usuários Batch e 6 para usuários interativos.
27