A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Capítulo 4: Camada de Rede

Apresentações semelhantes


Apresentação em tema: "Capítulo 4: Camada de Rede"— Transcrição da apresentação:

1 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

2 Algoritmo de roteamento
Relacionamento entre roteamento e encaminhamento Algoritmo de roteamento tabela encaminhamento local valor cabeçalho link saída 0100 0101 0111 1001 3 2 1 valor no cabeçalho do pacote que está chegando 1 0111 2 3 4: Camada de Rede

3 Abstraindo com grafos z x u y w v 5 2 3 1 Grafo: G = (N,E)
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

4 Abstraindo com grafos: custos
y x w v z 2 1 3 5 c(x,x’) = custo do enlace (x,x’) - p.e., c(w,z) = 5 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

5 Classificação de Algoritmos de Roteamento
Informação global ou descentralizada? Global: todos roteadores têm info. completa de topologia, custos dos enlaces algoritmos “estado de enlaces” Decentralizada: roteador conhece vizinhos diretos e custos até eles processo iterativo de cálculo, troca de info. com vizinhos algoritmos “vetor de distâncias” Estático ou dinâmico? Estático: rotas mudam lentamente com o tempo Dinâmico: rotas mudam mais rapidamente atualização periódica em resposta a mudanças nos custos dos enlaces 4: Camada de Rede

6 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

7 Um algoritmo de roteamento de “estado de enlaces” (EE)
Algoritmo de Dijkstra topologia da rede, custos dos 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 Notação: c(i,j): custo do enlace do nó 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

8 O algoritmo de Dijkstra
1 Inicialização: 2 N’ = {u} 3 para todos os nós v se v for adjacente ao nó u então D(v) = c(u,v) 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’: 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 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

9 Algoritmo de Dijkstra: exemplo
Step N' u D(v),p(v) 2,u D(w),p(w) 5,u D(x),p(x) 1,u D(y),p(y) D(z),p(z) 1 Inicialização: 2 N’ = {u} 3 para todos os nós v se v for adjacente ao nó u então D(v) = c(u,v) 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’: 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 menor caminho ao nó w, mais o custo de w a v */ 15 até que todos nós estejam em N’ u y x w v z 2 1 3 5 4: Camada de Rede

10 Algoritmo de Dijkstra: exemplo
Step 1 N' u ux D(v),p(v) 2,u D(w),p(w) 5,u 4,x D(x),p(x) 1,u D(y),p(y) 2,x D(z),p(z) D(v) = min(D(v), D(x) + c(x,v)) = min(2,1+2) D(w) = min(D(w), D(x) + c(x,w)) = min(5,1+3) D(y) = min(D(y), D(x) + c(x,y)) = min(∞,1+1) 1 Inicialização: 2 N’ = {u} 3 para todos os nós v se v for adjacente ao nó u então D(v) = c(u,v) 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’: 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 menor caminho ao nó w, mais o custo de w a v */ 15 até que todos nós estejam em N’ u y x w v z 2 1 3 5 4: Camada de Rede

11 Algoritmo de Dijkstra: exemplo
Step 1 2 N' u ux uxy D(v),p(v) 2,u D(w),p(w) 5,u 4,x 3,y D(x),p(x) 1,u D(y),p(y) 2,x D(z),p(z) 4,y D(w) = min(D(w), D(y) + c(y,w)) = min(4,2+1) D(z) = min(D(z), D(y) + c(y,z)) = min(∞,2+2) 1 Inicialização: 2 N’ = {u} 3 para todos os nós v se v for adjacente ao nó u então D(v) = c(u,v) 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’: 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 menor caminho ao nó w, mais o custo de w a v */ 15 até que todos nós estejam em N’ u y x w v z 2 1 3 5 4: Camada de Rede

12 Algoritmo de Dijkstra: exemplo
Step 1 2 3 N' u ux uxy uxyv D(v),p(v) 2,u D(w),p(w) 5,u 4,x 3,y D(x),p(x) 1,u D(y),p(y) 2,x D(z),p(z) 4,y D(w) = min(D(w), D(v) + c(v,w)) = min(3,2+3) 1 Inicialização: 2 N’ = {u} 3 para todos os nós v se v for adjacente ao nó u então D(v) = c(u,v) 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’: 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 menor caminho ao nó w, mais o custo de w a v */ 15 até que todos nós estejam em N’ u y x w v z 2 1 3 5 4: Camada de Rede

13 Algoritmo de Dijkstra: exemplo
Step 1 2 3 4 N' u ux uxy uxyv uxyvw D(v),p(v) 2,u D(w),p(w) 5,u 4,x 3,y D(x),p(x) 1,u D(y),p(y) 2,x D(z),p(z) 4,y 1 Inicialização: 2 N’ = {u} 3 para todos os nós v se v for adjacente ao nó u então D(v) = c(u,v) 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’: 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 menor caminho ao nó w, mais o custo de w a v */ 15 até que todos nós estejam em N’ D(z) = min(D(z), D(w) + c(w,z)) = min(4,3+5) u y x w v z 2 1 3 5 4: Camada de Rede

14 Algoritmo de Dijkstra: exemplo
Step 1 2 3 4 5 N' u ux uxy uxyv uxyvw uxyvwz D(v),p(v) 2,u D(w),p(w) 5,u 4,x 3,y D(x),p(x) 1,u D(y),p(y) 2,x D(z),p(z) 4,y 1 Inicialização: 2 N’ = {u} 3 para todos os nós v se v for adjacente ao nó u então D(v) = c(u,v) 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’: 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 menor caminho ao nó w, mais o custo de w a v */ 15 até que todos nós estejam em N’ Não tem mais vizinhos! u y x w v z 2 1 3 5 4: Camada de Rede

15 Algoritmo de Dijkstra: exemplo
Árvore de caminhos mínimos resultante originada em u: u y x w v z Tabela de encaminhamento resultante em u: v x y w z (u,v) (u,x) destino enlace 4: Camada de Rede

16 Algoritmo de Dijkstra, discussão
Complexidade algorítmica: 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 A A D C B 2+e 1+e 1 A A D C B 2+e e 1+e 1 1 1+e 2+e D B D B e 1 C 1+e C 1 1 e … recalcula rotas … recalcula … recalcula inicialmente 4: Camada de Rede

17 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

18 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 e y Então dx(y) = min {c(x,v) + dv(y) } onde min é tomado entre todos os vizinhos v de x v 4: Camada de Rede

19 Exemplo com Bellman-Ford
u y x w v z 2 1 3 5 Claramente, dv(z) = 5, dx(z) = 3, dw(z) = 3 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

20 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

21 Algoritmo Vetor de Distâncias
1 Inicialização: 2 para todos os nós destinos y em N: 3 Dx(y) = c(x,y) /* se y não é um vizinho então c(x,y) = ∞ */ 4 para cada vizinho w 5 Dw(y) = ∞ para todos os destinos y em N 6 para cada vizinho w 7 envia um vetor de distâncias Dx = [Dx(y): y em N] para w 8 9 loop 10 wait (até que ocorra uma mudança no custo do enlace ao vizinho w ou 11 até a recepção de um vetor de distâncias do vizinho w) 12 13 para cada y em N: 14 Dx(y) = minv{c(x,v) + Dv(y)} 15 16 if Dx(y) mudou para algum destino y envia um vetor de distâncias Dx = [Dx(y): y em N] 18 para todos os vizinhos 19 forever 4: Camada de Rede

22 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

23 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

24 z y x tabela nó x x y z x y z 0 2 7 ∞ origem custo para tabela nó y
origem custo para tabela nó y custo para x z 1 2 7 y x y z x origem y z tabela nó z custo para x y z x ∞ ∞ ∞ origem y z 7 1 tempo 4: Camada de Rede

25 z y x tabela nó x x y z x y z 0 2 7 ∞ origem custo para custo para
Dx(y)=min{c(x,y)+Dy(y),c(x,z)+Dz(y)}=min{2+0,7+1}=2 Dx(z)=min{c(x,y)+Dy(z),c(x,z)+Dz(z)}=min{2+1,7+0}=3 tabela nó x x y z x y z origem custo para custo para x y z x origem y z Dz(x)=min {c(z,y)+Dy(x), c(z,x)+Dx(x)}= min{1+2,7+0}=3 tabela nó y custo para custo para x z 1 2 7 y x y z x y z x x origem origem y y z z Dz(y)=min {c(z,y)+Dy(y), c(z,x)+Dx(y)}= min{1+0,7+1}=1 tabela nó z custo para custo para x y z x y z x x ∞ ∞ ∞ origem origem y y z z 7 1 tempo 4: Camada de Rede

26 z y x tabela nó x x y z x y z 0 2 7 ∞ origem custo para custo para
origem custo para custo para custo para x y z x y z x x origem y origem y z z tabela nó y custo para custo para custo para x z 1 2 7 y x y z x y z x y z x x x origem origem y y origem y z z z tabela nó z custo para custo para custo para x y z x y z x y z x x x ∞ ∞ ∞ origem origem origem y y y z z z 7 1 tempo 4: Camada de Rede

27 Vetor de Distâncias: 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 X Z 1 4 50 Y 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. “boas notícias chegam logo” 4: Camada de Rede

28 Vetor de Distâncias: 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 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? x z 1 4 50 y 60 4: Camada de Rede

29 Comparação dos algoritmos EE e VD
Complexidade de mensagens EE: com n nós, E enlaces, O(nE) mensagens enviadas 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 Robustez: o que acontece se houver falha do roteador? EE: 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

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

31 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: impossível guardar todos destinos na tabela de rotas! troca de tabelas de rotas afogaria os enlaces! autonomia administrativa internet = rede de redes cada admin de rede pode querer controlar roteamento em sua própria rede 4: Camada de Rede

32 Roteamento Hierárquico
agregar roteadores em regiões, “sistemas autônomos” (SAs) roteadores no mesmo SA usam o mesmo protocolo de roteamento protocolo de roteamento “intra-SA” roteadores em SAs diferentes podem usar diferentes protocolos de roteamento intra-SA Roteador de borda Enlace direto para roteador em outro SA 4: Camada de Rede

33 SAs interconectados 3b 1d 3a 1c 2a SA3 SA1 SA2 1a 2c 2b 1b Algoritmo de roteamento intra-AS Tabela de encaminhamento 3c 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

34 Tarefas do roteamento inter-SA
SA1 precisa: aprender quais destinos são alcançáveis via SA2 e quais são alcançáveis via SA3 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? 3b 1d 3a 1c 2a SA3 SA1 SA2 1a 2c 2b 1b 3c 4: Camada de Rede

35 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

36 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

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

38 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

39 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

40 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: D C B A u v w x y z destino saltos u v w x y z 4: Camada de Rede

41 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

42 Exemplo RIP z w ... x y A D B C y B 2 z B 7 x -- 1
Rede Destino Próximo Roteador No. de enlaces ao destino w A 2 y B 2 z B 7 x …. … Tabela de rotas em D 4: Camada de Rede

43 Exemplo RIP z w ... x y A D B C y B 2 z B A 7 5 x -- 1 Anúncios de
Dest Prox Saltos w x z C 4 …. … Anúncios de A para D z w ... x y A D B C Rede Destino Próximo Roteador No. de enlaces ao destino w A 2 y B 2 z B A 7 5 x …. … 4: Camada de Rede Tabela de rotas em D

44 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

45 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

46 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

47 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

48 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

49 OSPF Hierárquico 4: Camada de Rede

50 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

51 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

52 Roteamento inter-SA na Internet: BGP
BGP (Border Gateway Protocol): o padrão de fato BGP provê para cada SA meios de: Obter informação de alcançabilidade de sub-redes a partir de SAs vizinhos. Propagar informação de alcançabilidade para todos os roteadores internos ao SA. 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

53 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 3b 1d 3a 1c 2a SA3 SA1 SA2 1a 2c 2b 1b 3c eBGP session iBGP session 4: Camada de Rede

54 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. 3b 1d 3a 1c 2a SA3 SA1 SA2 1a 2c 2b 1b 3c eBGP session iBGP session 4: Camada de Rede

55 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

56 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: 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

57 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

58 Políticas de roteamento BGP
W X Y legenda: rede cliente provedor 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

59 Políticas de roteamento BGP (2)
W X Y legenda: rede cliente provedor 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

60 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

61 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

62 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 R3 R4 duplicação na fonte duplicação dentro da rede Duplicação na fonte: como a fonte determina os endereços dos receptores 4: Camada de Rede

63 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

64 Árvore Geradora Primeiro construa uma árvore geradora
Nós encaminham cópias somente ao longo da árvore geradora A B G D E c F (a) Broadcast iniciado em A (b) Broadcast iniciado em D 4: Camada de Rede

65 Á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 B c c 4 2 D D F E F E 1 5 G G Construção passo-a-passo da árvore geradora (b) Árvore geradora construída 4: Camada de Rede

66 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 Árvores baseadas na origem Notes: 3.3 Network Layer: Multicast Routing Algorithms Árvore compartilhada

67 Abordagens para a construção de árvores mcast
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 Notes: 3.3 Network Layer: Multicast Routing Algorithms …primeiro olharemos as abordagens básicas, e depois protocolos específicos que adotam estas abordagens

68 Á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 2 R4 roteador com membro do grupo atrelado 1 R2 5 roteador sem membro do grupo atrelado Notes: 3.3 Network Layer: Multicast Routing Algorithms 3 4 R5 6 enlace usado p/ envio, i indica a ordem de adição do enlace pelo algoritmo R3 i R6 R7

69 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 Notes: 3.3 Network Layer: Multicast Routing Algorithms

70 Envio pelo Caminho Reverso: exemplo
S: fonte LEGENDA R1 R4 roteador com membro do grupo atrelado R2 roteador sem membro do grupo atrelado R5 R3 datagrama vai ser encaminhado R6 R7 datagrama não vai ser encaminhado Notes: 3.3 Network Layer: Multicast Routing Algorithms resultado é uma árvore de caminho mínimo reversa específica para a fonte - pode ser uma escolha ruim para enlaces assimétricos

71 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 Notes: 3.3 Network Layer: Multicast Routing Algorithms roteador sem membro do grupo atrelado R2 P P R5 mensagem de poda P enlace com envio mcast R3 R6 R7

72 Á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 Notes: 1. See L. Wei and D. Estrin, “A Comparison of multicast trees and algorithms,” TR USC-CD , Dept. Computer Science, University of California, Sept 1993 for a comparison of heuristic approaches. 3.3 Network Layer: Multicast Routing Algorithms

73 Á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 Notes: 1. It’s always nice to see a PhD dissertation with impact. The earliest discussion of center-based trees for multicast appears to be D. Wall, “Mechanisms for Broadcast and Selective Broadcast,” PhD dissertation, Stanford U., June 1980. 3.3 Network Layer: Multicast Routing Algorithms

74 Árvores baseadas em centros: exemplo
Suponha que R6 foi escolhido como centro: LEGENDA R1 roteador com membro do grupo atrelado R4 3 roteador sem membro do grupo atrelado R2 2 R5 ordem em que as mensagens de junção são geradas 1 Notes: 3.3 Network Layer: Multicast Routing Algorithms R3 1 R6 R7

75 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 Notes: D. Waitzman, S. Deering, C. Partridge, “Distance Vector Multicast Routing Protocol,” RFC 1075, Nov The version of DVMRP in use today is considerably enhanced over the RFC1075 spec. A more up-to-date “work-in-progress” defines a version 3 of DVMRP: T. Pusateri, “Distance Vector Multicast Routing Protocol,” work-in-progress, draft-ietf-idmr-v3-05.ps 3.4 Network Layer: Internet Multicast Routing Algorithms

76 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 Notes: 1. See for a (slightly outdatet) list of multicast capable routers (supporting DVMPR as well as other protocols) from various vendors. 2. ftp://parcftp.xerox.com/pub/net-research/ipmulti for circa 1996 public copy “mrouted” v3.8 of DVMRP routing software for various workstation routing platforms. 3.4 Network Layer: Internet Multicast Routing Algorithms

77 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 Notes: For a general discussion of IP encapsulation, see C. Perkins, “IP Encapsulation within IP,” RFC 2003, Oct The book S. Bradner, A Mankin, “Ipng: Internet protocol next generation,” Addison Wesley, 1995 has a very nice discussion of tunneling Tunneling can also be used to connect islands of IPv6 capable routers in a sea IPv4 capable routers. The long term hope is that the sea evaporates leaving only lands of IPv6! 3.4 Network Layer: Internet Multicast Routing Algorithms

78 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: membros do grupo densamente empacotados, em “estreita proximidade” maior disponibilidade de banda Esparso: # de redes com membros do grupo pequeno em relação ao # de redes interconectadas membros do grupo “amplamente dispersos” menor disponibilidade de banda Notes: a very readable discussion of the PIM architecture is S. Deering, D. Estrin, D. Faranacci, V. Jacobson, C. Liu, L. Wei, “The PIM Architecture for Wide Area Multicasting,” IEEE/ACM Transactions on Networking, Vol. 4, No. 2, April 1996. D. Estrin et al, PIM-SM: Protocol Specification, RFC 2117, June 1997 S. Deering et al, PIM Version 2, Dense Mode Specification, work in progress, draft-ietf-idmr-pim-dm-05.txt PIM is implemented in Cisco routers and has been deployed in UUnet as part of their streaming multimedia delivery effort. See S. LaPolla, “IP Multicast makes headway among ISPs,” PC Week On-Line, 3.4 Network Layer: Internet Multicast Routing Algorithms

79 Conseqüências da Dicotomia Esparso-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 Notes: 3.4 Network Layer: Internet Multicast Routing Algorithms

80 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 Notes: 3.4 Network Layer: Internet Multicast Routing Algorithms

81 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 R2 R3 R4 R5 R6 R7 junção multicast dos dados a partir do ponto de encontro (RP) ponto de encontro Notes: 3.4 Network Layer: Internet Multicast Routing Algorithms

82 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 R2 R3 R4 R5 R6 R7 junção multicast dos dados a partir do ponto de encontro (RP) ponto de encontro Notes: 3.4 Network Layer: Internet Multicast Routing Algorithms

83 A camada de Enlace de Dados!
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


Carregar ppt "Capítulo 4: Camada de Rede"

Apresentações semelhantes


Anúncios Google