cap 4b

Propaganda
Capítulo 4: Camada de Rede
 4. 1 Introdução
 4.2 Redes baseadas em
circuitos virtuais e
datagramas
 4.3 O que existe
dentro de um roteador
 4.4 IP: Internet
Protocol




Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
 4.5 Algoritmos de
roteamento



Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
 4.6 Roteando na
Internet



RIP
OSPF
BGP
 4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-1
Relacionamento entre roteamento e
encaminhamento
Algoritmo de
roteamento
tabela encaminhamento local
valor cabeçalho link saída
0100
0101
0111
1001
valor no cabeçalho
do pacote que está
chegando
0111
3
2
2
1
1
3 2
4: Camada de Rede
4a-2
Abstraindo com grafos
5
2
u
2
1
Grafo: G = (N,E)
v
x
3
w
3
1
5
1
y
z
2
N = conj. de roteadores = { u, v, w, x, y, z }
E = conj. de enlaces ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Comentário: a abstração com grafos é útil em outros contextos da rede
Exemplo: P2P, onde N é o conj. dos pares e E é o conj. das conexões TCP
4: Camada de Rede
4a-3
Abstraindo com grafos: custos
5
2
u
v
2
1
x
• c(x,x’) = custo do enlace (x,x’)
3
w
3
1
5
1
y
2
- p.e., c(w,z) = 5
z
• custo poderia também ser 1, ou
inversamente relacionado à banda,
ou inversamente relacionado ao
congestionamento
Custo do caminho (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Q: Qual o caminho de menor custo entre u e z?
Algoritmo de roteamento: algoritmo que encontra o
caminho de menor custo
4: Camada de Rede
4a-4
Classificação de Algoritmos de
Roteamento
Informação global ou
descentralizada?
Estático ou dinâmico?
Estático:
Global:
 rotas mudam lentamente
 todos roteadores têm info.
com o tempo
completa de topologia, custos
dos enlaces
Dinâmico:
 algoritmos “estado de enlaces”
 rotas mudam mais
Decentralizada:
rapidamente
 roteador conhece vizinhos
 atualização periódica
diretos e custos até eles
 em resposta a
 processo iterativo de cálculo,
troca de info. com vizinhos
mudanças nos custos
 algoritmos “vetor de distâncias”
dos enlaces
4: Camada de Rede
4a-5
Capítulo 4: Camada de Rede
 4. 1 Introdução
 4.2 Redes baseadas em
circuitos virtuais e
datagramas
 4.3 O que existe
dentro de um roteador
 4.4 IP: Internet
Protocol




Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
 4.5 Algoritmos de
roteamento



Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
 4.6 Roteando na
Internet



RIP
OSPF
BGP
 4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-6
Um algoritmo de roteamento de
“estado de enlaces” (EE)
Algoritmo de Dijkstra
 topologia da rede, custos dos
Notação:
 c(i,j): custo do enlace do nó
enlaces conhecidos por todos os
nós
 realizado através de “difusão 
do estado dos enlaces”
 todos os nós têm mesma info.
 calcula caminhos de menor custo 
de um nó (“origem”) para todos os
demais
 gera tabela de rotas para

aquele nó
 iterativo: depois de k iterações,
sabemos menor custo p/ k
destinos
i ao nó j. custo é infinito se
não forem vizinhos diretos
D(V): valor corrente do
custo do caminho da origem
ao destino V
p(V): nó antecessor no
caminho da origem ao nó V,
imediatamente antes de V
N’: conjunto de nós cujo
caminho de menor custo já
foi determinado
4: Camada de Rede
4a-7
O algoritmo de Dijkstra
1 Inicialização:
2 N’ = {u}
3 para todos os nós v
4
se v for adjacente ao nó u
5
então D(v) = c(u,v)
6
senão D(v) = ∞
7
8 Repete
9 determina w não contido em N’ tal que D(w) é o mínimo
10 adiciona w ao conjunto N’
11 atualiza D(v) para todo v adjacente ao nó w e ainda não em N’:
12
D(v) = min( D(v), D(w) + c(w,v) )
13 /* novo custo ao nó v ou é o custo velho a v ou o custo do
14 menor caminho ao nó w, mais o custo de w a v */
15 até que todos nós estejam em N’
4: Camada de Rede
4a-8
Algoritmo de Dijkstra: exemplo
Step
0
1
2
3
4
5
N'
u
ux
uxy
uxyv
uxyvw
uxyvwz
D(v),p(v) D(w),p(w)
2,u
5,u
2,u
4,x
2,u
3,y
3,y
D(x),p(x)
1,u
D(y),p(y)
∞
2,x
D(z),p(z)
∞
∞
4,y
4,y
4,y
5
2
u
v
2
1
x
3
w
3
1
5
1
y
z
2
4: Camada de Rede
4a-9
Algoritmo de Dijkstra: exemplo
Árvore de caminhos mínimos resultante originada em u:
v
w
u
z
x
y
Tabela de encaminhamento resultante em u:
destino
enlace
v
x
(u,v)
(u,x)
y
(u,x)
w
(u,x)
z
(u,x)
4: Camada de Rede
4a-10
Algoritmo de Dijkstra, discussão
Complexidade algoritmica: n nós
 a cada iteração: precisa checar todos nós, w, não em N’
 n*(n+1)/2 comparações => O(n2)
 implementações mais eficientes possíveis: O(nlogn)
Oscilações possíveis:
 p.ex., custo do enlace = carga do tráfego carregado
D
1
1
0
A
0 0
C
e
1+e
B
e
2+e
D
0
1
inicialmente
A
1+e 1
C
0
B
0
… recalcula
rotas
0
D
1
A
0 0
2+e
B
C 1+e
… recalcula
2+e
D
0
A
1+e 1
C
0
B
e
… recalcula
4: Camada de Rede
4a-11
Capítulo 4: Camada de Rede
 4. 1 Introdução
 4.2 Redes baseadas em
circuitos virtuais e
datagramas
 4.3 O que existe
dentro de um roteador
 4.4 IP: Internet
Protocol




Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
 4.5 Algoritmos de
roteamento



Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
 4.6 Roteando na
Internet



RIP
OSPF
BGP
 4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-12
Algoritmo Vetor de Distâncias
Equação de Bellman-Ford (programação
dinâmica)
Define
dx(y) := custo do caminho de menor custo entre x
ey
Então
dx(y) = min {c(x,v) + dv(y) }
v
onde min é tomado entre todos os vizinhos v de x
4: Camada de Rede
4a-13
Exemplo com Bellman-Ford
Claramente, dv(z) = 5, dx(z) = 3, dw(z) = 3
5
2
u
v
2
1
x
3
w
3
1
5
1
y
2
z
A equação B-F diz:
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
O nó que leva ao custo mínimo é o próximo passo
ao longo do caminho mais curto➜ tab. de encaminhamento
4: Camada de Rede
4a-14
Algoritmo Vetor de Distâncias
 Dx(y) = estimativa do menor custo entre x e y
 Vetor de distâncias: Dx = [Dx(y): y є N ]
 Nó x sabe o custo para cada vizinho v: c(x,v)
 Nó x mantém Dx = [Dx(y): y є N ]
 Nó x mantém ainda os vetores de distâncias
dos seus vizinhos

Para cada vizinho v, x mantém
Dv = [Dv(y): y є N ]
4: Camada de Rede
4a-15
Algoritmo Vetor de Distâncias (4)
Idéia básica:
 Cada nó envia periodicamente o seu próprio vetor
de distâncias estimado para os vizinhos
 Quando um nó x recebe um novo VD estimado de
um vizinho, ele atualiza o seu VD usando a eq. B-F:
Dx(y) ← minv{c(x,v) + Dv(y)}
p/ cada nó y ∊ N
 Sob condições mínimas, naturais, a estimativa Dx(y)
converge para o menor custo real dx(y)
4: Camada de Rede
4a-16
Algoritmo Vetor de Distâncias (5)
Iterativo, assíncrono: cada
iteração local causada por:
 mudança do custo do enlace
local
 mensagem do vizinho: mudança
de caminho de menor custo
para algum destino
Distribuído:
 cada nó avisa a seus vizinhos
apenas quando muda seu
caminho de menor custo para
qualquer destino

os vizinhos então avisam a seus
vizinhos, se for necessário
Cada nó:
espera (mudança no custo
de mensagem do vizinho)
recalcula tabela de
distâncias
se mudou o caminho de
menor custo para qq.
destino, avisa vizinhos
4: Camada de Rede
4a-17
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
tabela nó x
custo para
x y z
∞ ∞ ∞
z
custo para
x y z
x ∞∞ ∞
y ∞ ∞ ∞
z 7 1 0
x 0 2 7
y 2 0 1
z 7 1 0
origem
origem
custo para
x y z
x 0 2 7
y 2 0 1
z 3 1 0
x 0 2 3
y 2 0 1
z 3 1 0
custo para
x y z
origem
∞ ∞ ∞
2 0 1
custo para
x y z
origem
∞ ∞ ∞
∞ ∞ ∞
y
custo para
x y z
x 0 2 3
y 2 0 1
z 7 1 0
custo para
x y z
x 0 2 3
y 2 0 1
z 3 1 0
x
2
y
1
7
z
custo para
x y z
origem
origem
origem
x
y
z
tabela nó
0 2 7
origem
origem
x
y
z
tabela nó
custo para
x y z
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
x 0 2 3
y 2 0 1
z 3 1 0
tempo
4: Camada de Rede
4a-18
Vetor de Distâncias: mudança no custo
dos enlaces
Mudança no custo dos enlaces:
 nó detecta mudança no custo do enlace
local
 atualiza tabela de distâncias
 se mudou o VD, avisa aos vizinhos
“boas
notícias
chegam
logo”
1
X
4
Y
50
1
Z
No tempo t0, y detecta a mudança no custo do enlace, atualiza o
seu VD e informa os vizinhos.
No tempo t1, z recebe a atualização de y e atualiza a sua tabela.
Computa o novo menor custo p/ x e envia o seu VD p/ os vizinhos.
No tempo t2, y recebe a atualização de z e atualiza a sua tabela.
Os custos mínimos de y não mudam e portanto y não envia
nenhuma mensagem para z.
4: Camada de Rede
4a-19
Vetor de Distâncias: mudança no custo
dos enlaces
Mudança no custo dos enlaces:
 boas notícias chegam logo
 más notícias demoram para chegar -
problema da “contagem ao infinito”!
 44 iterações antes do algoritmo
estabilizar: veja texto
60
x
4
y
50
1
z
Reverso envenenado:
 Se z roteia via y p/ chegar a
x:

z informa p/ y que sua distância p/
x é infinita (p/ que y não roteie p/ x
via z)
 será que isto resolve
completamente o problema da
contagem ao infinito?
4: Camada de Rede
4a-20
Comparação dos algoritmos EE e VD
Complexidade de mensagens Robustez: o que acontece se
houver falha do roteador?
 EE: com n nós, E enlaces, O(nE)
mensagens enviadas
EE:
 VD: trocar mensagens apenas
entre vizinhos
 varia o tempo de
convergência
Rapidez de Convergência
 EE: algoritmo O(n2) requer
O(nE) mensagens
 podem ocorrer oscilações
 VD: varia tempo para convergir
 podem ocorrer rotas cíclicas
 problema de contagem ao
infinito


nó pode anunciar valores
incorretos de custo de
enlace
cada nó calcula sua própria
tabela
VD:


um nó VD pode anunciar um
custo de caminho incorreto
a tabela de cada nó é usada
pelos outros nós
• um erro propaga pela rede
4: Camada de Rede
4a-21
Capítulo 4: Camada de Rede
 4. 1 Introdução
 4.2 Redes baseadas em
circuitos virtuais e
datagramas
 4.3 O que existe
dentro de um roteador
 4.4 IP: Internet
Protocol




Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
 4.5 Algoritmos de
roteamento



Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
 4.6 Roteando na
Internet



RIP
OSPF
BGP
 4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-22
Roteamento Hierárquico
Neste estudo de roteamento fizemos uma
idealização:
 todos os roteadores idênticos
 rede “não hierarquizada” (“flat”)
… não é verdade, na prática
escala: com 200 milhões
de destinos:
autonomia administrativa
 impossível guardar todos
 cada admin de rede pode
destinos na tabela de rotas!
 troca de tabelas de rotas
afogaria os enlaces!
 internet = rede de redes
querer controlar roteamento
em sua própria rede
4: Camada de Rede
4a-23
Roteamento Hierárquico
 agregar roteadores em
regiões, “sistemas
autônomos” (SAs)
 roteadores no mesmo
SA usam o mesmo
protocolo de
roteamento


Roteador de borda
 Enlace direto para
roteador em outro SA
protocolo de roteamento
“intra-SA”
roteadores em SAs
diferentes podem usar
diferentes protocolos de
roteamento intra-SA
4: Camada de Rede
4a-24
SAs interconectados
3c
3a
3b
SA3
1a
2a
1c
1d
1b
Algoritmo de
roteamento
intra-AS
2c
SA2
SA1
Algoritmo de
roteamento
intra-AS
Tabela de
encaminhamento
2b
 Tab. de encaminhamento
é configurada pelos
algoritmos intra-SA e
inter-SA


Intra-SA define entradas
p/ dest. internos
Inter-SA e Intra-SA
define entradas p/ dest.
externos
4: Camada de Rede
4a-25
Tarefas do roteamento inter-SA
SA1 precisa:
1. aprender quais destinos
são alcançáveis via SA2
e quais são alcançáveis
via SA3
2. propagar estas info. de
alcançabilidade para
todos os roteadores em
SA1
Tarefas do rot. inter-SA!
 Suponha que um
roteador em SA1
recebe um datagrama
cujo destino está fora
de SA1

Roteador deveria
encaminhar o pacote p/
um dos roteadores de
borda, mas qual?
3c
3b
3a
SA3
1a
2a
1c
1d
1b
2c
SA2
2b
SA1
4: Camada de Rede
4a-26
Exemplo: definindo a tabela de
encaminhamento no roteador 1d
 Suponha que SA1 aprende através do
protocolo inter-SA que a sub-rede x é
alcançável via SA3 (rot. de borda 1c) mas
não via SA2.
 Protocolo Inter-SA propaga info. de
alcançabilidade para todos os roteadores
internos.
 Roteador 1d determina através de info. de
roteamento intra-SA que sua interface I
está no caminho mínimo para 1c.
 Coloca par (x,I) na tab. de encaminhamento.
4: Camada de Rede
4a-27
Exemplo: escolhendo entre múltiplos
SAs
 Suponha agora que SA1 aprende através do protocolo inter-SA
que a sub-rede x é alcançável via SA3 e via SA2.
 Para configurar a tabela de encaminhamento, o roteador 1d
deve determinar para qual roteador de borda ele deve enviar
pacotes com destino x .
 Isto também é tarefa do protocolo de roteamento inter-SA!
 Roteamento batata quente (hot potato): envia pacote para o
roteador de borda mais próximo.
Aprende através do
protocolo inter-SA
que a sub-rede x é
alcançável via
múltiplos roteadores
de borda
Usa info. de
roteamento do
protocolo intra-SA
p/ determinar os
caminhos mínimos
p/ cada rot. de borda
Roteamento batata
quente: escolhe o
roteador de borda
que tem o caminho
de menor custo
Determina da tab. de
encaminhamento a
interface I que leva ao
rot. de borda de menor
custo. Insere (x,I) na
tab. de encaminhamento
4: Camada de Rede
4a-28
Capítulo 4: Camada de Rede
 4. 1 Introdução
 4.2 Redes baseadas em
circuitos virtuais e
datagramas
 4.3 O que existe
dentro de um roteador
 4.4 IP: Internet
Protocol




Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
 4.5 Algoritmos de
roteamento



Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
 4.6 Roteando na
Internet



RIP
OSPF
BGP
 4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-29
Roteamento Intra-SA
 Também conhecidos como Interior Gateway
Protocols (IGP)
 Os protocolos de roteamento Intra-SA mais
comuns são:
 RIP:


Routing Information Protocol
OSPF: Open Shortest Path First
IGRP: Interior Gateway Routing Protocol
(proprietário da Cisco)
4: Camada de Rede
4a-30
Capítulo 4: Camada de Rede
 4. 1 Introdução
 4.2 Redes baseadas em
circuitos virtuais e
datagramas
 4.3 O que existe
dentro de um roteador
 4.4 IP: Internet
Protocol




Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
 4.5 Algoritmos de
roteamento



Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
 4.6 Roteando na
Internet



RIP
OSPF
BGP
 4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-31
RIP (Routing Information Protocol)
 Algoritmo vetor de distâncias
 Incluído na distribuição do BSD-UNIX em 1982
 Métrica de distância: # de enlaces (máx = 15 enlaces)
Do roteador A p/ sub-redes:
u
v
A
z
C
B
D
w
x
y
destino
u
v
w
x
y
z
saltos
1
2
2
3
3
2
4: Camada de Rede
4a-32
Anúncios RIP
 Vetores de distâncias: trocados a cada 30
seg via Mensagem de Resposta (também
chamada de anúncio)
 Cada anúncio: rotas para até 25 redes
destino dentro do SA
4: Camada de Rede
4a-33
Exemplo RIP
z
w
A
x
D
B
...
y
C
Rede Destino
w
y
z
x
….
Próximo Roteador
A
B
B
--
No. de enlaces ao destino
….
2
2
7
1
....
Tabela de rotas em D
4: Camada de Rede
4a-34
Exemplo RIP
Dest
w
x
z
….
Prox Saltos
1
1
C
4
…
...
w
A
Anúncios de
A para D
z
x
D
B
y
...
C
Rede Destino
w
y
z
x
….
Próximo Roteador
A
B
B A
--
No. de enlaces ao destino
….
Tabela de rotas em D
2
2
7 5
1
....
4: Camada de Rede
4a-35
RIP: Falha e Recuperação de Enlaces
Se não for recebido anúncio novo durante 180 seg -->
vizinho/enlace declarados mortos
 rotas via vizinho invalidadas
 novos anúncios enviados aos vizinhos
 na sua vez, os vizinhos publicam novos anúncios (se
foram alteradas as suas tabelas)
 informação sobre falha do enlace rapidamente
propaga para a rede inteira
 reverso envenenado usado para impedir rotas
cíclicas (ping-pong) (distância infinita = 16 enlaces)
4: Camada de Rede
4a-36
RIP: Processamento de tabelas
 Tabelas de roteamento RIP gerenciadas por
processo de nível de aplicação chamado route-d
(routing daemon)
 anúncios enviados em pacotes UDP, repetidos
periodicamente
4: Camada de Rede
4a-37
Capítulo 4: Camada de Rede
 4. 1 Introdução
 4.2 Redes baseadas em
circuitos virtuais e
datagramas
 4.3 O que existe
dentro de um roteador
 4.4 IP: Internet
Protocol




Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
 4.5 Algoritmos de
roteamento



Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
 4.6 Roteando na
Internet



RIP
OSPF
BGP
 4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-38
OSPF (Open Shortest Path First)
 “open” (aberto): publicamente disponível
 Usa algoritmo do Estado de Enlaces
disseminação de pacotes EE
 mapa da topologia a cada nó
 cálculo de rotas usando o algoritmo de Dijkstra
 Anúncio de OSPF inclui uma entrada por roteador
vizinho
 Anúncios disseminados para SA inteiro (via inundação)


Carregados em mensagens OSPF diretamente sobre IP (ao
invés de TCP ou UDP)
4: Camada de Rede
4a-39
OSPF: características “avançadas”
(não existentes no RIP)
 Segurança: todas mensagens OSPF autenticadas (para




impedir intrusão maliciosa)
Caminhos Múltiplos de custos iguais permitidos (o RIP
permite e usa apenas uma rota)
Para cada enlace, múltiplas métricas de custo para
TOS diferentes (p.ex, custo de enlace de satélite
colocado como “baixo” para melhor esforço; “alto”
para tempo real)
Suporte integrado para ponto a ponto e multiponto:
 OSPF multiponto (MOSPF) usa mesma base de
dados de topologia usado por OSPF
OSPF hierárquico em domínios grandes.
4: Camada de Rede
4a-40
OSPF Hierárquico
4: Camada de Rede
4a-41
OSPF Hierárquico
 Hierarquia de dois níveis: área local, backbone.
Anúncios de EE disseminados apenas na mesma área
 cada nó possui topologia detalhada da área; apenas
sabe a direção (caminho mais curto) para redes em
outras áreas.
 Roteador de fronteira de área: “sumariza”
distâncias às redes na sua própria área, anuncia a
outros roteadores de fronteira de área.
 Roteadores do backbone: realizam roteamento OSPF
limitado ao backbone.
 Roteadores de fronteira: ligam a outros SAs.

4: Camada de Rede
4a-42
Capítulo 4: Camada de Rede
 4. 1 Introdução
 4.2 Redes baseadas em
circuitos virtuais e
datagramas
 4.3 O que existe
dentro de um roteador
 4.4 IP: Internet
Protocol




Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
 4.5 Algoritmos de
roteamento



Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
 4.6 Roteando na
Internet



RIP
OSPF
BGP
 4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-43
Roteamento inter-SA na Internet: BGP
 BGP (Border Gateway Protocol): o padrão de fato
 BGP provê para cada SA meios de:
1. Obter informação de alcançabilidade de sub-redes a
partir de SAs vizinhos.
2. Propagar informação de alcançabilidade para todos os
roteadores internos ao SA.
3. Determinar “boas” rotas para sub-redes a partir de
informação de alcançabilidade e políticas.
 Permite que uma sub-rede anuncie a sua existência
para o resto da Internet: “Estou aqui!”
4: Camada de Rede
4a-44
Fundamentos do BGP
 Par de roteadores (pares BGP) trocam info. de roteamento
através de conexões TCP semi-permanentes TCP: sessões BGP
 Note que sessões BGP não correspondem a enlaces físicos.
 Quando um SA2 anuncia um prefixo para SA1, SA2 está
prometendo que vai enviar àquele prefixo quaisquer
datagramas destinados ao mesmo.

SA2 pode agregar prefixos nos seus anúncios
3c
3a
3b
SA3
1a
SA1
2a
1c
1d
1b
2c
SA2
2b
eBGP session
iBGP session
4: Camada de Rede
4a-45
Distribuindo informação de
alcançabilidade
 Com a sessão eBGP 3a-para-1c, SA3 envia informação de
alcançabilidade de prefixos para SA1.
 1c pode usar iBGP para distribuir esta nova informação de
alcance de prefixo para todos os roteadores em SA1.
 1b pode então re-anunciar a nova informação de alcance para
SA2 através da sessão eBGP 1b-para-2a.
 Quando um roteador aprende sobre um novo prefixo, ele cria
uma entrada para o prefixo na sua tabela de
encaminhamento.
3c
3a
3b
SA3
1a
SA1
2a
1c
1d
1b
2c
SA2
2b
eBGP session
4: Camada
iBGP
sessionde Rede
4a-46
Atributos de caminho & Rotas BGP
 Quando um prefixo é anunciado, o anúncio inclui
atributos BGP.

prefixo + atributos = “rota”
 Dois atributos importantes:
 AS-PATH: contém os SAs pelos quais o anúncio para o
prefixo passou: AS 67 AS 17
 NEXT-HOP: indica o roteador específico, interno ao SA,
que leva ao SA do próximo salto. (Pode haver múltiplos
enlaces do SA atual para o SA do próximo salto)
 Quando um roteador de borda recebe um anúncio
de rota, usa a política de importação para
aceitar/declinar.
4: Camada de Rede
4a-47
Seleção de rota do BGP
 Roteador pode aprender sobre mais de 1
rota para algum prefixo. Ele deve
selecionar a rota.
 Regras de eliminação:
1.
2.
3.
4.
Valor do atributo preferência local associado à
rota: decisão política
Menor AS-PATH
Roteador NEXT-HOP mais próximo:
roteamento batata quente
Critérios adicionais
4: Camada de Rede
4a-48
Mensagens BGP
 Mensagens BGP trocadas usando TCP.
 Mensagens BGP:
OPEN: abre conexão TCP ao roteador par e
autentica remetente
 UPDATE: anuncia caminho novo (ou retira velho)
 KEEPALIVE mantém conexão viva na ausência de
UPDATES; também reconhece pedido OPEN
 NOTIFICATION: reporta erros na mensagem
anterior; também usada para fechar conexão

4: Camada de Rede
4a-49
Políticas de roteamento BGP
legenda:
B
W
rede
provedor
X
A
rede
cliente
C
Y
 A,B,C são redes de provedores
 X,W,Y são clientes (das redes de provedores)
 X com duas interfaces: conectadas a duas redes
X não quer rotear de B para C
 .. então X não vai anunciar para B a rota para C

4: Camada de Rede
4a-50
Políticas de roteamento BGP (2)
legenda:
B
W
rede
provedor
X
A
rede
cliente
C
Y
 A anuncia para B o caminho AW
 B anuncia para X o caminho BAW
 Deveria B anunciar para C o caminho BAW?
 Nem pensar! B não obtém “rendimento” pelo roteamento
CBAW, já que nem W ou C são clientes de B
 B quer forçar C a rotear para W via A
 B quer rotear apenas para/dos seus clientes!
4: Camada de Rede
4a-51
Por quê há diferenças entre
roteamento Intra- e Inter-SA?
Políticas:
 Inter-SA: administração quer controle sobre como
tráfego roteado, quem transita através da sua rede.
 Intra-AS: administração única, logo são
desnecessárias decisões políticas
Escalabilidade:
 roteamento hierárquico economiza tamanho de tabela
de rotas, reduz tráfego de atualização
Desempenho:
 Intra-AS: pode focar em desempenho
 Inter-AS: políticas podem ser mais importantes do
que desempenho
4: Camada de Rede
4a-52
Capítulo 4: Camada de Rede
 4. 1 Introdução
 4.2 Redes baseadas em
circuitos virtuais e
datagramas
 4.3 O que existe
dentro de um roteador
 4.4 IP: Internet
Protocol




Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
 4.5 Algoritmos de
roteamento



Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
 4.6 Roteando na
Internet



RIP
OSPF
BGP
 4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-53
Roteamento Broadcast
 Envia pacotes de uma para todos os outros nós
 Duplicação na fonte é ineficiente:
duplicação
criação/transmissão
duplicada
R1
R1
duplicação
R2
R2
R3
R4
duplicação
na fonte
R3
R4
duplicação
dentro da rede
 Duplicação na fonte: como a fonte determina
os endereços dos receptores
4: Camada de Rede
4a-54
Duplicação dentro da rede
 Inundação: quando nó recebe pacotes de
broadcast, envia cópia para todos os vizinhos

Problemas: ciclos e tempestades de broadcast
 Inundação controlada: nó somente faz broadcast
com o pacote se já não tiver feito antes com o
mesmo pacote


Nó mantém registro sobre ids dos pacotes para os quais
já fez broadcast
Ou adota envio pelo caminho reverso (Reverse Path
Forwarding - RPF): só encaminha pacote se chegou pelo
caminho mínimo entre o nó e a fonte
 Árvores geradoras (spanning trees)
 Nenhum pacote redundante recebido por nenhum nó
4: Camada de Rede
4a-55
Árvore Geradora
 Primeiro construa uma árvore geradora
 Nós encaminham cópias somente ao longo
da árvore geradora
A
B
c
F
A
E
B
c
D
F
G
(a) Broadcast iniciado em A
E
D
G
(b) Broadcast iniciado em D
4: Camada de Rede
4a-56
Árvore Geradora: criação
 Nó central
 Cada nó envia mensagem de junção ponto-a-ponto
(unicast) para o nó central

Mensagem encaminhada até que chegue em um nó já
pertencente à árvore geradora
A
A
3
B
c
4
E
F
1
2
B
c
D
F
5
D
E
G
(a) Construção passo-apasso da árvore geradora
G
(b) Árvore geradora
construída
4: Camada de Rede
4a-57
Roteamento Multicast: definição do
problema
 Meta: achar uma árvore (ou árvores) conectando todos
os roteadores com membros locais do grupo mcast



árvore: nem todos os caminhos entre roteadores são usados
baseada na origem: árvore distinta de cada fonte p/
receptores
compartilhada: mesma árvore usada por todos os membros do
grupo
Árvore compartilhada
Árvores baseadas na origem
Abordagens para a construção de
árvores mcast
 Abordagens:
 baseada na origem: uma árvore por fonte
 árvores de caminhos mínimos
 envio pelo caminho reverso
 compartilhada: grupo usa uma árvore única
 árvore de custo mínimo (Steiner)
 árvore baseada em um centro
…primeiro olharemos as abordagens básicas, e depois
protocolos específicos que adotam estas abordagens
Árvore de Caminhos Mínimos
 Árvore de encaminhamento mcast: árvore composta
pelos caminhos mínimos da fonte para todos os
receptores

Algoritmo de Dijkstra
S: fonte
LEGENDA
R1
1
2
R4
R2
3
R3
roteador com membro do
grupo atrelado
5
4
R6
roteador sem membro do
grupo atrelado
R5
6
R7
i
enlace usado p/ envio,
i indica a ordem de adição
do enlace pelo algoritmo
Envio pelo Caminho Reverso
 Baseia-se no conhecimento do roteador
sobre caminhos mínimos unicast dele para a
fonte
 cada roteador tem um comportamento de
envio simples:
se (datagrama mcast recebido por um enlace de
entrada no caminho mínimo de volta para a fonte)
então inunda o datagrama por todos os enlaces de
saída
senão ignora o datagrama
Envio pelo Caminho Reverso: exemplo
S: fonte
LEGENDA
R1
R4
roteador com membro do
grupo atrelado
R2
R5
R3
R6
R7
roteador sem membro do
grupo atrelado
datagrama vai ser
encaminhado
datagrama não vai ser
encaminhado
• resultado é uma árvore de caminho mínimo reversa
específica para a fonte
- pode ser uma escolha ruim para enlaces
assimétricos
Envio pelo Caminho Reverso: poda
 Árvore de encaminhamento contém sub-árvores sem
nenhum membro do grupo multicast
 não há necessidade de enviar datagramas pelas
sub-árvores
 mensagens de “poda” enviadas para trás pelo
roteador sem nenhum membro do grupo pra frente
LEGENDA
S: fonte
R1
roteador com membro do
grupo atrelado
R4
R2
P
R5
R3
R6
P
R7
P
roteador sem membro do
grupo atrelado
mensagem de poda
enlace com envio mcast
Árvore de Steiner
 Árvore de Steiner: árvore de custo mínimo
conectando todos os roteadores com
membros locais do grupo mcast
 problema NP-completo
 existem excelentes heurísticas
 não é usada na prática:
complexidade computacional
 necessita informações sobre a rede inteira
 monolítica: recalculada sempre que um roteador
precisa ser acrescentado/retirado

Árvores baseadas em centros
 árvore de envio única compartilhada por todos
 um roteador eleito como “centro” da árvore
 para juntar-se:
roteador de fora envia msg-junção unicast
endereçada ao roteador central
 msg-junção é “processada” pelos roteadores
intermediários e encaminhada para o centro
 msg-junção ou chega a um ramo da árvore já
existente para este centro, ou chega ao centro
 caminho seguido por msg-junção se torna novo ramo
da árvore para este roteador

Árvores baseadas em centros:
exemplo
Suponha que R6 foi escolhido como centro:
LEGENDA
R1
R4
3
R2
roteador com membro do
grupo atrelado
roteador sem membro do
grupo atrelado
2
R5
R3
1
R6
R7
1
ordem em que as
mensagens de junção são
geradas
Roteamento Multicast na Internet:
DVMRP
 DVMRP: distance vector multicast routing
protocol, RFC1075
 inundação e poda: envio pelo caminho reverso
(RPF), árvore baseada na fonte
árvore RPF baseada em tabelas de roteamento
próprias do DVMRP, construídas por meio da
comunicação entre roteadores DVMRP
 nada assume sobre o roteamento unicast subjacente
 datagrama inicial para o grupo mcast é inundado por
todo lugar via RPF
 roteadores sem membros: mensagens de poda para
cima

DVMRP: continuando…
 estado soft : roteador DVMRP “esquece”
periodicamente (1 min.) que ramos estão podados:


dados mcast novamente fluem pelos ramos não podados
roteador de baixo: refaz a poda ou continua a receber
dados
 roteadores podem rapidamente se enxertar na
árvore

seguindo junção IGMP na folha
 considerações finais
 comumente implementado em roteadores comerciais
 roteamento Mbone feito através do DVMRP
Tunelamento
Q: Como conectar “ilhas” de roteadores multicast em
um “oceano” de roteadores unicast?
Topologia física
Topologia lógica
 datagrama mcast encapsulado dentro de um datagrama
“normal” (sem endereço multicast)
 datagrama IP normal enviado através de um “túnel” via IP
unicast regular para o roteador mcast receptor
 roteador mcast receptor desencapsula para obter datagrama
mcast
PIM: Protocol Independent Multicast
 não depende de nenhum algoritmo de roteamento
unicast subjacente (trabalha com todos)
 Dois cenários de distribuição multicast diferentes:
Denso:
Esparso:
 membros do grupo
 # de redes com membros
densamente
empacotados, em
“estreita proximidade”
 maior disponibilidade
de banda
do grupo pequeno em
relação ao # de redes
interconectadas
 membros do grupo
“amplamente dispersos”
 menor disponibilidade de
banda
Conseqüências da Dicotomia Esparso-Denso:
Denso
 participação dos
roteadores nos grupos
assumida até que os
roteadores se podem
explicitamente
 construção da árvore
mcast ditada pelos dados
(e.x., RPF)
 uso da banda e
processamento no
roteador não participante
do grupo perdulários
Esparso:
 sem participação até que
os roteadores se juntem
explicitamente
 construção da árvore
mcast ditada pelos
receptores (e.x., baseada
em centro)
 uso da banda e
processamento no
roteador não participante
do grupo criteriosos
PIM- Modo Denso
RPF com inundação e poda, similar ao
DVMRP mas
 Protocolo de roteamento unicast subjacente
provê as informações referentes ao datagrama
chegando, necessárias ao RPF
 inundação menos complicada (menos eficiente)
que a do DVMRP reduz a dependência em
relação ao algoritmo de roteamento subjacente
 possui mecanismo no protocolo para que o
roteador detecte que é um nó folha
PIM – Modo Esparso
 abordagem baseada em
centro
 Roteador envia msg. de
junção para o ponto de
encontro (rendezvous point RP)

Roteadores intermediários
atualizam estado e
encaminham msg. de junção
 após se juntar via RP,
roteador pode mudar p/
árvore baseada na fonte

performance melhorada:
menos concentração,
caminhos menores
R1
R4
junção
R2
R3
junção
R5
junção
R6
multicast dos dados
a partir do ponto
de encontro (RP)
R7
ponto de
encontro
PIM – Modo Esparso
fonte(s):
 dados via rot. unicast
para o RP, que os
distribui ao longo da
árvore com raiz no RP
 RP pode estender
árvore mcast para
cima até a fonte
 RP pode enviar msg.
pare p/ fonte se não
houver receptores
atrelados

“ninguém está ouvindo!”
R1
R4
junção
R2
R3
junção
R5
junção
R6
multicast dos dados
a partir do ponto
de encontro (RP)
R7
ponto de
encontro
Camada de Rede: resumo
O que nós cobrimos:
 Serviços da camada de rede
 Princípios de roteamento: estado
dos enlaces e vetor de distâncias
 roteamento hierárquico
 IP
 protocolos de roteamento
Internet RIP, OSPF, BGP
 O que tem dentro de um
roteador?
 IPv6
Próxima parada:
A camada de
Enlace de
Dados!
4: Camada de Rede
4a-75
Download