Redes de Computadores I
- Princípios de Roteamento
por
Classificação dos Algoritmos
• Globais x Descentralizados
– Globais
• Algoritmo
considera
com
dados
de
cálculo
a
conectividade entre todos os nós e todos os custos dos
enlaces
• Também chamados de algoritmos de estado de enlace,
ou LS (Link State)
– Descentralizados
• Nenhum nó tem informação completa sobre os custos
de todos os enlaces da rede
• Também chamados de algoritmos de vetor de
Classificação dos Algoritmos
• Roteamento estático x roteamento dinâmico
– Roteamento estático
• As rotas mudam muito lentamente ao longo do
tempo, muitas vezes por intervenção humana
– Roteamento dinâmico
• As rotas mudam à medida em que mudam as cargas
de tráfego ou a topologia da rede
Classificação dos Algoritmos
• Sensíveis à carga x insensíveis à carga
– Sensíveis à carga
• Custo de um enlace varia dinamicamente pra refletir
seu nível de congestionamento
• Se houver um enlace com alto custo, o algoritmo
tenderá a escolher rotas que o evitem
– Insensíveis à carga
• Custo de um enlace não reflete explicitamente seu
nível de congestionamento
Algoritmos LS
• Estado global é conhecido pela difusão de
datagramas de estado de enlace
• Algoritmo de Dijkstra
– Menor custo entre origem (u) e destino (v)
u
p(v)
v
D(v)
D(v): custo do caminho de menor custo entre u e v p(v): vizinho de v ao longo do caminho de menor custo
Algoritmo LS
INICIALIZAÇÃO
N’ = {u}
para todos os nós v
se v for um vizinho de u
então D(v) = c(u,v)
senão D(v) = ∞
LAÇO
encontre w não em N’, tal que D(w) é um mínimo
adicione w a N’
atualize D(v) para cada vizinho v de w e não em N’:
D(v) = min(D(v), D(w) + c(w,v))
/* o novo custo para v é o antigo custo para v ou
o custo do menor caminho conhecido até w mais
o custo de w a v */
Algoritmo LS
u
v
x
y
w
z
5 2 2 1 1 3 3 1 5 2Algoritmo LS
Etapa N’ D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0
u
2,u
5,u
1,u
∞
∞
1
ux
2,u
4,x
2,x
∞
2
uxy
2,u
3,y
4,y
3
uxyv
3,y
4,y
4
uxyvw
4,y
Oscilações com Roteamento de LS
• Roteamento inicial
z
w
y
x
1 1 e 0 1 0 0 1 + eOscilações com Roteamento de LS
• x e y detectam melhor caminho até w em
sentido horário
z
w
y
x
1 1 0 1 2 + e 0 1 + e 0Oscilações com Roteamento de LS
• x, y e z detectam melhor caminho até w em
sentido anti-horário
z
w
y
x
1 1 1 + e 0 0 1 0 2 + eOscilações com Roteamento de LS
• x, y e z detectam melhor caminho até w em
sentido horário
z
w
y
x
1 1 0 1 2 + e 0 1 + e 0Oscilações com Roteamento de LS
• Sugestões para se evitar a oscilação
1. Fazer com que os custos independessem da
quantidade de tráfego carregada
•
Inaceitável, já que um dos objetivos do roteamento é
se evitar enlaces congestionados
2. Assegurar que os roteadores não executem o
algoritmo LS ao mesmo tempo
•
Roteadores tendem a se auto-sincronizar
3. Variar aleatoriamente o instante em que os
roteadores enviem anúncios de enlaces
Algoritmo DV
• Distribuído
– Cada nó recebe informações de um ou mais vizinhos,
realiza cálculos e, depender dos resultados, os distribui
aos seus vizinhos
• Iterativo
– Processo continua até que mais nenhuma informação seja
trocada entre vizinhos
• Assíncrono
– Não
requer
que
todos
os
nós
o
executem
simultaneamente
Algoritmo DV
• Cada nó x mantém os seguintes dados:
– Para cada vizinho v, o custo c(x,v) de x até v
– O vetor de distâncias de x, i.e., D
x= [D
x(y) | y em
N]
– Os vetores de distâncias de seus vizinhos, i.e., D
v=
[D
v(y) | y em N] para cada vizinho v de x
Algoritmo DV
INICIALIZAÇÃO:
para todos os destinos y em N:
Dx(y) = c(x,y) /* se y não é um vizinho, então c(x,y) = ∞ para cada vizinho w
Dw(y) = ∞ para todos os destinos y em N para cada vizinho w
envia um vetor de distâncias Dx = [Dx(y) | y em N] para w LAÇO
ESPERE (até que ocorra uma mudança no custo do enlace ao vizinho w ou até a recepção de um vetor de distâncias do vizinho w) para cada y em N:
Dx(y) = minv[c(x,v) + Dv(y)] SE Dx(y) mudou para algum destino y
ENTÃO envia um vetor de distâncias Dx = [Dx(y) | y em N] para todos os vizinhos
Algoritmo DV
x
y
z
2 1 7Algoritmo DV
x y z x 0 2 7 y ∞ ∞ ∞ z ∞ ∞ ∞ x y z x ∞ ∞ ∞ y 2 0 1 z ∞ ∞ ∞ x y z x ∞ ∞ ∞ y ∞ ∞ ∞ De Custo até Custo até De De Custo até x y z x y z x 0 2 3 y 2 0 1 z 7 1 0 x y z x 0 2 7 y 2 0 1 z 7 1 0 x y z x 0 2 7 y 2 0 1 De Custo até Custo até De De Custo até x y z x y z x 0 2 3 y 2 0 1 z 3 1 0 x y z x 0 2 3 y 2 0 1 z 3 1 0 x y z x 0 2 3 y 2 0 1 De Custo até Custo até De De Custo até x y zMudança: Custo do Enlace Diminuiu
X
Y
Z
4 1 50 1 x y z x 0 4 5 y 4 0 1 z 5 1 0 x y z x 0 4 5 y 4 0 1 z 5 1 0 x y z x 0 4 5 y 4 0 1 De Custo até Custo até De De Custo até x y z x y z x 0 4 5 y 4 0 1 z 5 1 0 x y z x 0 4 5 y 1 0 1 z 5 1 0 x y z x 0 4 5 y 4 0 1 De Custo até Custo até De De Custo até x y zMudança: Custo do Enlace Diminuiu
x y z x 0 4 5 y 4 0 1 z 5 1 0 x y z x 0 4 5 y 1 0 1 z 5 1 0 x y z x 0 4 5 y 4 0 1 Custo até Custo até x y z x y z x 0 4 5 y 1 0 1 z 5 1 0 x y z x 0 4 5 y 1 0 1 z 5 1 0 x y z x 0 4 5 y 1 0 1 Custo até Custo até x y z x y z x 0 4 5 y 1 0 1 z 2 1 0 x y z x 0 4 5 y 1 0 1 z 2 1 0 x y z x 0 4 5 y 1 0 1 Custo até Custo até x y zCusto até Custo até Custo até
De De De De De De De De De
Mudança: Custo do Enlace Aumentou
X
Y
Z
4 1 50 60 x y z y 4 0 1 z 5 1 0 x y z y 4 0 1 z 5 1 0 Custo até De De Custo até y z x y z y 6 0 1 z 5 1 0 x y z y 4 0 1 z 5 1 0 Custo até De De Custo até y z Datagrama é transmitido... ... e ricocheteado!Mudança: Custo do Enlace Aumentou
x y z y 6 0 1 z 5 1 0 x y z y 4 0 1 z 5 1 0 Custo até De De Custo até y z x y z y 6 0 1 z 5 1 0 x y z y 6 0 1 z 7 1 0 Custo até De De Custo até y z x y z y 8 0 1 z 7 1 0 x y z y 6 0 1 z 7 1 0 Custo até De De Custo até y z x y z y 51 0 1 z 50 1 0 Custo até y x y z y 51 0 1 z 50 1 0 Custo até y...
...
De DeMudança: Custo do Enlace Aumentou
X
Y
Z
4 9999 10000Refaça o problema anterior supondo os custos e a mudança ao lado. Saiba porque esse problema é também
chamado de problema de contagem
ao infinito.
Reversão Envenenada
X
Y
Z
4 1 60 Rota de Z até X passa por Y. DZ(X) = x y z y 4 0 1 z 1 0 x y z y 4 0 1 z 5 1 0 Custo até De De Custo até y z x y z y 60 0 1 z 1 0 x y z y 4 0 1 z 5 1 0 Custo até De De Custo até y zReversão Envenenada
x y z y 60 0 1 z 1 0 x y z y 4 0 1 z 5 1 0 Custo até De De Custo até y z x y z y 60 0 1 z 1 0 x y z y 60 0 1 z 50 1 0 Custo até De De Custo até y z x y z y 51 0 1 z 50 1 0 x y z y 60 0 1 z 50 1 0 Custo até De De Custo até y z x y z y 51 0 1 z 50 1 0 x y z y 0 1 z 50 1 0 Custo até De De Custo até y zDeixa de envenenar, pois a rota
Envenena, pois a rota Y → X passa agora por Z
Comparação entre Algoritmos
PARÂMETRO ESTADO DE ENLACE VETOR DE DISTÂNCIAS
Complexidade das Mensagens
• Mensagens trocadas entre todos os nós
•Alterações de custo propagadas indiscriminadamente
• Mensagens trocadas apenas entre vizinhos
• Alterações de custo
propagadas apenas se alteram caminho mais curto
Convergência Completamente previsível
• Pode ser lenta (contagem até o infinito)
• Pode haver laços de roteamento.
Robustez
• Nós podem anunciar incorretamente caminhos de menor custo para seus vizinhos
• Cálculo isolado das rotas proporciona maior robustez
• Nós podem anunciar incorretamente caminhos de
menor custo para quaisquer destinos
Roteamento Hierárquico
• Motivos
– Escalabilidade
• Um algoritmo (LS ou DV) sendo executado por todos os
roteadores de uma malha extensa demoraria a
convergir
– Autonomia administrativa
• As empresas normalmente não desejam expor ao
público externo como a sua malha de roteadores está
configurada, por motivos de segurança
Sistemas Autônomos (SAs)
1c
1a
1b
1d
3c
3b
3a
2c
2a
2b
SA3 SA2 Roteadores de bordaProtocolos de Roteamento
• Protocolos de roteamento intra-SA
– Executados no âmbito de um SA específico
– Exemplos
• RIP
• OSPF
• Protocolo de roteamento inter-SA
– Executado em todos os SAs
– Exemplo
Protocolos de Roteamento
1c
1a
1b
1d
SA1 Protocolo Inter-SA Tabela de Protocolo Intra-SARIP
• RIP ↔ Routing Information Protocol
– RIPv1: RFC 1058
– RIPv2 (compatível com a v1): RFC 1723
• Implementa um algoritmo DV
• RIPv1 atribui a todo enlace um custo de 1
– Roteamento reduz-se à resolução do problema de
contagem mínima de saltos
RIP
• Custo máximo é limitado a 15
– RIP limita-se a SAs que têm menos de 15 saltos de
A
B
D
C
u v w x y z Destino Saltos u 1 v 2 w 2 x 3 y 3 z 2RIP
• Tabelas de roteamento são trocadas a cada 30
segundos em anúncios RIP
• Cada anúncio contém
– Uma tabela de até 25 sub-redes
– As distâncias entre o remetente e cada uma
dessas sub-redes
RIP
A
D
B
X
w x y
z
C
Destino Próximo Roteador Saltos
w A 2
y B 2
z B 7
x - 1
RIP
A
D
B
Xw x y
z
C
Destino Próximo Roteador Saltos
w A 2
y B 2
z BA 7 5
x - 1
Tabela de roteamento de D (corrigida)
Destino Próximo Roteador Saltos
z C 4 w - 1 x - 1 ... ... ... Anúncio de A Anúncio de A
RIP
• Se um roteador não recebe nada de seu vizinho
em 180 segundos
1. O vizinho será considerado inatingível
2. O roteador modifica sua tabela de roteamento e
a difunde aos demais vizinhos
• Um roteador pode solicitar informações sobre
o seu vizinho usando mensagens de solicitação
RIP
Transporte (UDP) Rede (IP)
RIP
Tabela de Roteamento Enlace Físico routed Transporte (UDP) Rede (IP) Tabela de Roteamento Enlace Físico routed 520OSPF
• OSPF ↔ Open Shortest Path First
– RFC 2178 (OSPF v2)
• Implementa um algoritmo LS (Dijkstra)
• Custos
dos
enlaces
configurados
pelo
administrador, podendo ser
– Todos iguais a 1
• Roteamento de salto mínimo
– Inversamente proporcionais às capacidades dos
enlaces
OSPF
• Estados
de
enlaces
são
transmitidos
periodicamente a cada 30 minutos
IP
OSPF Mensagem OSPF..
...encapsulado por um datagrama IP
Protocolo de Nível
Configuração de um AS OSPF
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Backbone Área 1 Área 2 Área 3 Roteador de borda Roteador de backbone Roteador de Borda de áreaBGP
• BGP ↔ Border Gateway Protocol
– RFC 1771 (BGP4)
• Objetivos
1. Obter
de
SAs
vizinhos
informações
de
atingibilidade de sub-redes
2. Propagar a informação de atingibilidade a todos
os roteadores internos ao SA
3. Determinar rotas “boas” para sub-redes com
base na informação de atingibilidade e na
BGP
1c
1a
1b
1d
3c
3b
3a
2c
2a
2b
SA3 SA2 Sessão iBGP Sessão eBGP Conexões TCP Semi-permanentes (porta 179)BGP – Políticas de Roteamento
• Como impedir que x repasse tráfego entre B e
w
x
y
A
B
BGP – Políticas de Roteamento
w
x
y
A
B
C
• É só impedir que x anuncie a rota xCy a B!
Anúncio da Rota xCy