1. 4: Camada de Rede 4a-1
Chapter 4
Network Layer
Computer Networking:
A Top Down Approach
Featuring the Internet,
2nd edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2002.
A note on the use of these ppt slides:
We’re making these slides freely available to all (faculty, students, readers).
They’re in powerpoint form so you can add, modify, and delete slides
(including this one) and slide content to suit your needs. They obviously
represent a lot of work on our part. In return for use, we only ask the
following:
If you use these slides (e.g., in a class) in substantially unaltered form,
that you mention their source (after all, we’d like people to use our book!)
If you post any slides in substantially unaltered form on a www site, that
you note that they are adapted from (or perhaps identical to) our slides, and
note our copyright of this material.
Thanks and enjoy! JFK/KWR
All material copyright 1996-2002
J.F Kurose and K.W. Ross, All Rights Reserved
2. 4: Camada de Rede 4a-2
Capítulo 4: Camada de Rede
Metas do capítulo:
entender os princípios em que se
fundamentam os serviços de rede:
roteamento (seleção de caminhos)
escalabilidade
como funciona um roteador
tópicos avançados: IPv6, mobilidade
instanciação e implementação na
Internet
3. 4: Camada de Rede 4a-3
Capítulo 4: Camada de Rede
(Estrutura do Capítulo na 3ª edição)
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. 4: Camada de Rede 4a-4
Capítulo 4: Camada de Rede
(Diferenças em relação à 1ª edição)
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
[antiga 4.6]
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6 [antiga 4.7]
4.5 Algoritmos de
roteamento [antigas
4.2 e 4.3]
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet [antiga 4.5]
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
[antiga 4.8]
5. 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
6. 4: Camada de Rede 4a-6
Camada de rede
transporta segmentos da
estação remetente à receptora
no lado remetente, encapsula
segmentos dentro de
datagramas
no lado receptor, entrega os
segmentos para a camada de
transporte
protocolos da camada de rede
em todos os sistemas finais e
roteadores
roteadores examinam campos de
cabeçalho de todos os
datagramas IP que passam por
eles
rede
enlace
física
rede
enlace
física
rede
enlace
física
rede
enlace
física
rede
enlace
física
rede
enlace
física
rede
enlace
física
rede
enlace
física
aplicação
transporte
rede
enlace
física
aplicação
transporte
rede
enlace
física
7. 4: Camada de Rede 4a-7
Funções principais da camada de
rede
encaminhamento: move
pacotes de uma
entrada do roteador
para a saída
apropriada
roteamento:
determina a rota a ser
seguida pelos pacotes
da fonte até o destino
Algoritmos de
roteamento
analogia:
roteamento: processo
de planejar uma
viagem da origem até
o destino
encaminhamento:
processo de
atravessar uma
encruzilhada durante
a viagem
8. 4: Camada de Rede 4a-8
1
2
3
0111
valor no cabeçalho
do pacote que está
chegando
Algoritmo de
roteamento
tabela encaminhamento local
valor cabeçalho link saída
0100
0101
0111
1001
3
2
2
1
Relacionamento entre roteamento e
encaminhamento
9. 4: Camada de Rede 4a-9
Estabelecimento de conexão
3ª função importante em algumas
arquiteturas de rede:
ATM, frame relay, X.25
Antes dos datagramas fluírem, dois hosts e
roteadores intermediários estabelecem
uma conexão virtual
Roteadores são envolvidos
Serviço de conexão das camadas de
transporte e de rede:
Rede: entre dois hosts
Transporte: entre dois processos
10. 4: Camada de Rede 4a-10
Modelo de serviço de rede
Q: Qual é o modelo de serviço para o “canal” que
transporta pacotes do remetente ao receptor?
Exemplos de serviços
para datagramas
individuais:
Entrega garantida
Entrega garantida com
atraso menor que 40
mseg
Exemplos de serviços
para fluxos de
datagramas:
Entrega ordenada
Banda mínima
garantida para o fluxo
Restrições quanto a
alterações no
espaçamento entre os
pacotes
11. 4: Camada de Rede 4a-11
Modelos de serviço da camada de rede:
Arquitetura
de Rede
Internet
ATM
ATM
ATM
ATM
Modelo de
serviço
melhor
esforço
CBR
VBR
ABR
UBR
Banda
nenhuma
taxa
constante
taxa
garantida
mínima
garantida
nenhuma
Perdas
não
sim
sim
não
não
Ordem
não
sim
sim
sim
sim
Tempo
não
sim
sim
não
não
Informa s/
congestion.?
não (inferido
via perdas)
sem
congestion.
sem
congestion.
sim
não
Garantias ?
12. 4: Camada de Rede 4a-12
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
13. 4: Camada de Rede 4a-13
Serviços da camada de rede
com e sem conexão
Rede datagrama provê um serviço de
camada de rede não orientado a conexões
Rede CV provê um serviço de camada de
rede orientado a conexões
Análogos aos serviços da camada de
transporte, mas:
Serviço: host-a-host
Sem escolha: rede provê ou um ou o outro
Implementação: no núcleo da rede
14. 4: Camada de Rede 4a-14
Circuitos virtuais
estabelecimento de cada chamada antes do envio dos
dados
cada pacote tem ident. de CV (e não endereços
origem/dest)
cada roteador no caminho da-origem-ao-destino
mantém “estado” para cada conexão que o atravessa
recursos de enlace, roteador (banda, buffers) podem
ser alocados ao CV
“caminho da-origem-ao-destino se comporta como um
circuito telefônico”
em termos de desempenho
em ações da rede ao longo do caminho da-origem-ao-destino
15. 4: Camada de Rede 4a-15
Implementação de CV
Um CV consiste de:
1. Caminho da origem para o destino
2. Números (identificadores) de CV, um número
para cada enlace ao longo do caminho
3. Entradas nas tabelas de encaminhamento dos
roteadores ao longo do caminho
Pacote que pertence a um CV carrega o
número do CV
Número do CV deve ser trocado a cada
enlace
Novo número do CV vem da tabela de
encaminhamento
16. 4: Camada de Rede 4a-16
Tabela de encaminhamento
12 22 32
1
2
3
Número do CV
número da
interface
Interface de entrada # CV de entrada Interface de saída # CV de saída
1 12 3 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …
Tabela de encaminhamento
no roteador noroeste:
Roteadores mantêm informação sobre o estado da
conexão!
17. 4: Camada de Rede 4a-17
Circuitos virtuais:
protocolos de sinalização
usados para estabelecer, manter, destruir CV
usados em ATM, frame-relay, X.25
não usados na Internet de hoje
aplicação
transporte
rede
enlace
física
aplicação
transporte
rede
enlace
física
1. inicia chamada 2. chegada de chamada
3. chamada aceita
4. conexão completa
5. começa fluxo de dados 6. dados recebidos
18. 4: Camada de Rede 4a-18
Rede de datagramas: o modelo da
Internet
não requer estabelecimento de chamada na camada de rede
roteadores: não guardam estado sobre conexões fim a fim
não existe o conceito de “conexão” na camada de rede
pacotes são roteados tipicamente usando endereços de destino
2 pacotes entre o mesmo par origem-destino podem seguir
caminhos diferentes
aplicação
transporte
rede
enlace
física
aplicação
transporte
rede
enlace
física
1. envia dados 2. recebe dados
19. 4: Camada de Rede 4a-19
Tabela de
encaminhamento
Faixa de Endereços de Destino Interface de Saída
11001000 00010111 00010000 00000000
a 0
11001000 00010111 00010111 11111111
11001000 00010111 00011000 00000000
a 1
11001000 00010111 00011000 11111111
11001000 00010111 00011001 00000000
a 2
11001000 00010111 00011111 11111111
caso contrário 3
4 bilhões de
entradas possíveis
20. 4: Camada de Rede 4a-20
Casamento com o prefixo mais
longo
Casamento com o prefixo Interface de Saída
11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
caso contrário 3
ED: 11001000 00010111 00011000 10101010
Exemplos
ED: 11001000 00010111 00010110 10100001 Qual interface?
Qual interface?
21. 4: Camada de Rede 4a-21
Rede de datagramas ou CVs: por quê?
Internet
troca de dados entre
computadores
serviço “elástico”, sem
reqs. temporais estritos
sistemas terminais
“inteligentes” (computadores)
podem se adaptar, exercer
controle, recuperar de
erros
núcleo da rede simples,
complexidade na “borda”
muitos tipos de enlaces
características diferentes
serviço uniforme difícil
ATM
evoluiu da telefonia
conversação humana:
temporização estrita,
requisitos de
confiabilidade
requer serviço
garantido
sistemas terminais “burros”
telefones
complexidade dentro da
rede
22. 4: Camada de Rede 4a-22
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
23. 4: Camada de Rede 4a-23
Sumário de Arquitetura de Roteadores
Duas funções chave de roteadores:
usam algoritmos/protocolos de roteamento
(RIP, OSPF, BGP)
comutam datagramas do enlace de entrada para a saída
24. 4: Camada de Rede 4a-24
Funções da Porta de Entrada
Comutação descentralizada:
dado o dest. do datagrama, procura porta
de saída usando tab. de rotas na memória
da porta de entrada
meta: completar processamento da porta
de entrada na ‘velocidade da linha’
filas: se datagramas chegam mais rápido
que taxa de re-envio para matriz de
comutação
Camada física:
recepção de bits
Camada de enlace:
p.ex., Ethernet
veja capítulo 5
25. 4: Camada de Rede 4a-25
Três tipos de matriz de comutação
26. 4: Camada de Rede 4a-26
Comutação via Memória
Roteadores da primeira geração:
pacote copiado pelo processador (único) do sistema
velocidade limitada pela largura de banda da
memória (2 travessias do barramento por datagrama)
Porta de
Entrada
Porta de
Saída
Memória
Barramento do Sistema
Roteadores modernos:
processador da porta de entrada consulta tabela,
copia para a memória
Cisco Catalyst 8500
27. 4: Camada de Rede 4a-27
Comutação via
Barramento
datagrama da memória da porta de
entrada à memória da porta de saída
via um barramento compartilhado
contenção pelo barramento: taxa de
comutação limitada pela largura de
banda do barramento
Barramento de 1 Gbps, Cisco 1900:
velocidade suficiente para
roteadores de acesso e corporativos
(mas não regionais ou de backbone)
28. 4: Camada de Rede 4a-28
Comutação via uma Rede de
Interconexão
supera limitações de banda dos barramentos
Redes Banyan, outras redes de interconexão
desenvolvidas inicialmente para interligar
processadores num multiprocessador
Projeto avançado: fragmentar datagrama em
células de tamanho fixo, comutar células através
da matriz de comutação.
Cisco 12000: comuta N Gbps pela rede de
interconexão.
29. 4: Camada de Rede 4a-29
Porta de Saída
Buffers necessários quando datagramas chegam da
matriz de comutação mais rapidamente que a taxa de
transmissão
Disciplina de escalonamento escolhe um dos
datagramas enfileirados para transmissão
30. 4: Camada de Rede 4a-30
Filas na Porta de Saída
usa buffers quando taxa de chegada através do
comutador excede taxa de transmissão de saída
enfileiramento (retardo), e perdas devidas ao
transbordo do buffer da porta de saída!
31. 4: Camada de Rede 4a-31
Filas na Porta de Entrada
Se matriz de comutação for mais lenta do que a soma
das portas de entrada juntas -> pode haver filas nas
portas de entrada
Bloqueio cabeça-de-linha : datagrama na cabeça da
fila impede outros na mesma fila de avançarem
retardo de enfileiramento e perdas devido ao
transbordo do buffer de entrada!
32. 4: Camada de Rede 4a-32
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
33. 4: Camada de Rede 4a-33
A Camada de Rede na Internet
Tabela de
encam.
Funções da camada de rede em estações, roteadores:
Protocolos de rot.
•seleção de rotas
•RIP, OSPF, BGP
protocolo IP
•convenções de endereços
•formato do datagrama
•convenções de manuseio do pct
protocolo ICMP
•relata erros
•“sinalização” de roteadores
Camada de transporte: TCP, UDP
Camada de enlace
Camada física
Camada
de rede
34. 4: Camada de Rede 4a-34
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
35. 4: Camada de Rede 4a-35
Formato do datagrama IP
ver comprimento
32 bits
dados
(comprimento variável,
tipicamente um segmento
TCP ou UDP)
ident. 16-bits
checksum
Internet
sobre-
vida
endereço IP de origem 32 bits
número da versão
do protocolo IP
comprimento do
cabeçalho (bytes)
número máximo
de enlaces restantes
(decrementado a
cada roteador)
para
fragmentação/
remontagem
comprimento total
do datagrama
(bytes)
protocolo da camada
superior ao qual
entregar os dados
comp.
cab
tipo de
serviço
“tipo” dos dados (DS)
bits
início do
fragmento
camada
superior
endereço IP de destino 32 bits
Opções (se tiver) p.ex. marca de
tempo,
registrar rota
seguida, especificar
lista de roteadores
a visitar.
Quanto overhead
com o TCP?
20 bytes do TCP
20 bytes do IP
= 40 bytes +
overhead cam. aplic.
36. 4: Camada de Rede 4a-36
IP: Fragmentação & Remontagem
cada enlace de rede tem MTU
(max.transmission unit) -
maior tamanho possível de
quadro neste enlace.
tipos diferentes de enlace
têm MTUs diferentes
datagrama IP muito grande
dividido (“fragmentado”)
dentro da rede
um datagrama vira vários
datagramas
“remontado” apenas no
destino final
bits do cabeçalho IP
usados para identificar,
ordenar fragmentos
relacionados
fragmentação:
entrada: um datagrama
grande
saída: 3 datagramas
menores
remontagem
37. 4: Camada de Rede 4a-37
IP: Fragmentação & Remontagem
ID
=x
início
=0
bit_frag
=0
compr
=4000
ID
=x
início
=0
bit_frag
=1
compr
=1500
ID
=x
início
=185
bit_frag
=1
compr
=1500
ID
=x
início
=370
bit_frag
=0
compr
=1040
um datagrama grande vira
vários datagramas menores
Exemplo
Datagrama de
4000 bytes
MTU = 1500 bytes
1480 bytes de
dados
início =
1480/8
38. 4: Camada de Rede 4a-38
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
39. 4: Camada de Rede 4a-39
Endereçamento IP: introdução
endereço IP: ident.
de 32-bits para
interface de estação,
roteador
interface: conexão
entre estação,
roteador e enlace
físico
roteador típico tem
múltiplas interfaces
estação pode ter
múltiplas interfaces
endereço IP associado
à interface, não à
estação ou roteador
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2
223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 1
1
40. 4: Camada de Rede 4a-40
Sub-redes
endereço IP:
parte de rede (bits de
mais alta ordem)
parte de estação (bits
de mais baixa ordem)
O que é uma subrede
IP? (da perspectiva do
endereço IP)
interfaces de
dispositivos com a
mesma parte de rede
nos seus endereços IP
podem alcançar um ao
outro sem passar por
um roteador
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2
223.1.3.1
223.1.3.27
Esta rede consiste de 3 redes IP
LAN
41. 4: Camada de Rede 4a-41
Sub-redes 223.1.1.0/24
223.1.2.0/24
223.1.3.0/24
Máscara da
sub-rede: /24
Receita
desassociar cada
interface do seu
roteador, estação
criar “ilhas” de redes
isoladas
cada rede isolada é
uma sub-rede
43. 4: Camada de Rede 4a-43
parte de
estação
Endereçamento IP: CIDR
CIDR: Classless InterDomain Routing
parte de rede do endereço de comprimento
arbitrário
formato de endereço: a.b.c.d/x, onde x é no. de
bits na parte de rede do endereço
11001000 00010111 00010000 00000000
parte
de rede
200.23.16.0/23
44. 4: Camada de Rede 4a-44
Endereços IP: como conseguir um?
Q: Como o host obtém um endereço IP?
codificado pelo administrador num arquivo
Windows: Painel de controle->Rede-
>Configuração>tcp/ip->propriedades
UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol:
obtém endereço dinamicamente de um servidor
“plug-and-play”
(mais no próximo capítulo)
45. 4: Camada de Rede 4a-45
Endereços IP: como conseguir um?
Bloco do 11001000 00010111 00010000 00000000 200.23.16.0/20
provedor
Organização 0 11001000 00010111 00010000 00000000 200.23.16.0/23
Organização 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organização 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….
Organização 7 11001000 00010111 00011110 00000000 200.23.30.0/23
Q: Como a rede obtém a parte de rede do
endereço IP?
A: Recebe uma porção do espaço de endereços
do seu ISP
46. 4: Camada de Rede 4a-46
Endereçamento hierárquico:
agregação de rotas
“mande-me qq coisa
com endereços que
começam com
200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Provedor A
Organização 0
Organização 7
Internet
Organização n 1
Provedor B
“mande-me qq coisa
com endereços que
começam com
199.31.0.0/16”
200.23.20.0/23
Organização 2
.
.
.
.
.
.
Endereçamento hierárquico permite anunciar
eficientemente informação sobre rotas:
47. 4: Camada de Rede 4a-47
Endereçamento hierárquico: rotas
mais específicas
Provedor B tem uma rota mais específica para a Organização 1
“mande-me qq coisa
com endereços que
começam com
200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Provedor A
Organização 0
Organização 7
Internet
Organização 1
Provedor B
“mande-me qq coisa
com endereços que
começam com 199.31.0.0/16
ou 200.23.18.0/23”
200.23.20.0/23
Organização 2
.
.
.
.
.
.
48. 4: Camada de Rede 4a-48
Endereçamento IP: a última palavra...
P: Como um provedor IP consegue um bloco de
endereços?
A: ICANN: Internet Corporation for Assigned
Names and Numbers
aloca endereços
gerencia DNS
aloca nomes de domínio, resolve disputas
(no Brasil, estas funções foram delegadas ao
NIC.br pelo Comitê Gestor Internet BR –
www.cg.org.br)
49. 4: Camada de Rede 4a-49
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
138.76.29.7
rede local
(e.x., rede caseira)
10.0.0/24
resto da
Internet
Datagramas com origem ou
destino nesta rede usam
endereços 10.0.0/24 para
origem e destino (como usual)
Todos os datagramas deixando a
rede local têm o mesmo único
endereço IP NAT origem:
138.76.29.7, e diferentes
números de porta origem
50. 4: Camada de Rede 4a-50
NAT: Network Address Translation
Motivação: a rede local usa apenas um endereço IP, no
que concerne ao mundo exterior:
não há necessidade de alocar faixas de endereços do
ISP:
• apenas um endereço IP é usado para todos os dispositivos
pode modificar endereços de dispositivos na rede
local sem notificar o mundo exterior
pode trocar de ISP sem mudar os endereços dos
dispositivos na rede local
dispositivos dentro da rede local não são
explicitamente endereçáveis, i.e., visíveis do mundo
exterior (um incremento de segurança)
51. 4: Camada de Rede 4a-51
NAT: Network Address Translation
Implementação: um roteador NAT deve:
datagramas saindo: trocar (IP origem, # porta ) de
cada datagrama saindo para (IP NAT, novo # porta)
. . . clientes/servidores remotos vão responder
usando (IP NAT, novo # porta) como endereço destino.
lembrar (na tabela de tradução NAT) cada par de
tradução (IP origem, # porta ) para (IP NAT, novo #
porta)
datagramas entrando: trocar (IP NAT, novo # porta)
nos campos de destino de cada datagrama entrando
para o (IP origem, # porta) correspondente
armazenado na tabela NAT
52. 4: Camada de Rede 4a-52
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
O: 10.0.0.1, 3345
D: 128.119.40.186, 80
1
10.0.0.4
138.76.29.7
1: host 10.0.0.1
envia datagrama p/
128.119.40.186, 80
Tabela de tradução NAT
end. lado WAN end. lado LAN
138.76.29.7, 5001 10.0.0.1, 3345
…… ……
O: 128.119.40.186, 80
D: 10.0.0.1, 3345
4
O: 138.76.29.7, 5001
D: 128.119.40.186, 80
2
2: roteador NAT
muda end. origem
do datagrama de
10.0.0.1, 3345 p/
138.76.29.7, 5001,
e atualiza tabela
O: 128.119.40.186, 80
D: 138.76.29.7, 5001 3
3: Resposta chega
p/ end. destino:
138.76.29.7, 5001
4: roteador NAT
muda end. destino
do datagrama de
138.76.29.7, 5001 p/ 10.0.0.1, 3345
53. 4: Camada de Rede 4a-53
NAT: Network Address Translation
campo do número de porta com 16-bits:
60.000 conexões simultâneas com um único
endereço no lado WAN!
NAT é controverso:
roteadores deveriam processar somente até a
camada 3
viola o argumento fim-a-fim
• possibilidade do uso de NAT deve ser levado em conta
pelos projetistas de aplicações (p.e., P2P)
escassez de endereços, por outro lado, deveria
ser resolvida com o IPv6
54. 4: Camada de Rede 4a-54
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
55. 4: Camada de Rede 4a-55
ICMP: Internet Control Message Protocol
usado por estações,
roteadores para comunicar
informação s/ camada de rede
relatar erros: estação,
rede, porta, protocolo
inalcançáveis
pedido/resposta de eco
(usado por ping)
camada de rede “acima de” IP:
msgs ICMP transportadas
em datagramas IP
mensagem ICMP: tipo, código
mais primeiros 8 bytes do
datagrama IP causando erro
Tipo Código descrição
0 0 resposta de eco (ping)
3 0 rede dest. inalcançável
3 1 estação dest. inalcançável
3 2 protocolo dest. inalcançável
3 3 porta dest. inalcançável
3 6 rede dest. desconhecida
3 7 estação dest. desconhecida
4 0 abaixar fonte (controle de
congestionamento - ñ usado)
8 0 pedido eco (ping)
9 0 anúncio de rota
10 0 descobrir roteador
11 0 TTL (sobrevida) expirada
12 0 erro de cabeçalho IP
56. 4: Camada de Rede 4a-56
Traceroute e ICMP
Origem envia uma série de
segmentos UDP para o
destino
Primeiro tem TTL =1
Segundo tem TTL=2, etc.
Número de porta
improvável
Quando n-ésimo datagrama
chega ao n-ésimo roteador:
Roteador descarta
datagrama
Envia p/ origem uma
mensagem ICMP (tipo 11,
código 0)
Mensagem inclui nome e
endereço IP do roteador
Quando a mensagem ICMP
chega, origem calcula RTT
Traceroute faz isto 3
vezes
Critério de parada
Segmento UDP
eventualmente chega à
estação destino
Destino retorna pacote
ICMP “porta inalcançável”
(tipo 3, código 3)
Quando origem recebe este
pacote ICMP, pára.
57. 4: Camada de Rede 4a-57
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
58. 4: Camada de Rede 4a-58
IPv6
Motivação inicial: espaço de endereços de 32-
bits em breve completamente alocado.
Motivação adicional:
formato do cabeçalho facilita acelerar
processamento/re-encaminhamento
mudanças no cabeçalho para facilitar QoS
novo endereço “anycast”: rota para o “melhor” de
vários servidores replicados
formato do datagrama IPv6:
cabeçalho de tamanho fixo de 40 bytes
não admite fragmentação
59. 4: Camada de Rede 4a-59
Cabeçalho IPv6
Prioridade: identifica prioridade entre datagramas no fluxo
Rótulo do Fluxo: identifica datagramas no mesmo “fluxo”
(conceito de “fluxo” mal definido).
Próximo cabeçalho: identifica protocolo da camada superior
para os dados
60. 4: Camada de Rede 4a-60
Outras mudanças em relação ao
IPv4
Checksum: removido completamente para
reduzir tempo de processamento a cada
roteador
Opções: permitidas, porém fora do
cabeçalho, indicadas pelo campo “Próximo
Cabeçalho”
ICMPv6: versão nova de ICMP
tipos adicionais de mensagens, p.ex. “Pacote
Muito Grande”
funções de gerenciamento de grupo multiponto
61. 4: Camada de Rede 4a-61
Transição de IPv4 para IPv6
Nem todos os roteadores podem ser
atualizados simultaneamente
“dias de mudança geral” inviáveis
Como a rede pode funcionar com uma mistura de
roteadores IPv4 e IPv6?
Tunelamento: datagramas IPv6 carregados
em datagramas IPv4 entre roteadores IPv4
62. 4: Camada de Rede 4a-62
Tunelamento
IPv6 dentro de IPv4 quando necessário
63. 4: Camada de Rede 4a-63
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
64. 4: Camada de Rede 4a-64
1
2
3
0111
valor no cabeçalho
do pacote que está
chegando
Algoritmo de
roteamento
tabela encaminhamento local
valor cabeçalho link saída
0100
0101
0111
1001
3
2
2
1
Relacionamento entre roteamento e
encaminhamento
65. 4: Camada de Rede 4a-65
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
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) }
Abstraindo com grafos
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
66. 4: Camada de Rede 4a-66
Abstraindo com grafos: custos
u
y
x
w
v
z
2
2
1
3
1
1
2
5
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
67. 4: Camada de Rede 4a-67
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
68. 4: Camada de Rede 4a-68
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
69. 4: Camada de Rede 4a-69
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
70. 4: Camada de Rede 4a-70
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’
71. 4: Camada de Rede 4a-71
Algoritmo de Dijkstra: exemplo
Step
0
1
2
3
4
5
N'
u
ux
uxy
uxyv
uxyvw
uxyvwz
D(v),p(v)
2,u
2,u
2,u
D(w),p(w)
5,u
4,x
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
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
72. 4: Camada de Rede 4a-72
Algoritmo de Dijkstra: exemplo
u
y
x
w
v
z
Árvore de caminhos mínimos resultante originada em u:
v
x
y
w
z
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
destino enlace
Tabela de encaminhamento resultante em u:
73. 4: Camada de Rede 4a-73
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
A
D
C
B
1 1+e
e
0
e
1 1
0 0
A
D
C
B
2+e 0
0
0
1+e 1
A
D
C
B
0 2+e
1+e
1
0 0
A
D
C
B
2+e 0
e
0
1+e 1
inicialmente
… recalcula
rotas
… recalcula … recalcula
74. 4: Camada de Rede 4a-74
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
75. 4: Camada de Rede 4a-75
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
76. 4: Camada de Rede 4a-76
Exemplo com Bellman-Ford
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5 Claramente, dv(z) = 5, dx(z) = 3, dw(z) = 3
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
A equação B-F diz:
77. 4: Camada de Rede 4a-77
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 ]
78. 4: Camada de Rede 4a-78
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)
79. 4: Camada de Rede 4a-79
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
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
Cada nó:
80. 4: Camada de Rede 4a-80
x y z
x
y
z
0 2 7
∞ ∞ ∞
∞ ∞ ∞
origem
custo para
origem
origem
x y z
x
y
z
0 2 3
origem
custo para
x y z
x
y
z
0 2 3
origem
custo para
x y z
x
y
z
∞ ∞
∞ ∞ ∞
custo para
x y z
x
y
z
0 2 7
origem
custo para
x y z
x
y
z
0 2 3
origem
custo para
x y z
x
y
z
0 2 3
origem
custo para
x y z
x
y
z
0 2 7
origem
custo para
x y z
x
y
z
∞ ∞ ∞
7 1 0
custo para
∞
2 0 1
∞ ∞ ∞
2 0 1
7 1 0
2 0 1
7 1 0
2 0 1
3 1 0
2 0 1
3 1 0
2 0 1
3 1 0
2 0 1
3 1 0
tempo
x z
1
2
7
y
tabela nó x
tabela nó y
tabela nó z
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
81. 4: Camada de Rede 4a-81
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
X Z
1
4
50
Y
1
“boas
notícias
chegam
logo”
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.
82. 4: Camada de Rede 4a-82
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
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
83. 4: Camada de Rede 4a-83
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
84. 4: Camada de Rede 4a-84
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
85. 4: Camada de Rede 4a-85
Roteamento Hierárquico
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
Neste estudo de roteamento fizemos uma
idealização:
todos os roteadores idênticos
rede “não hierarquizada” (“flat”)
… não é verdade, na prática
86. 4: Camada de Rede 4a-86
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
87. 4: Camada de Rede 4a-87
SAs interconectados
3b
1d
3a
1c
2a
SA3
SA1
SA2
1a
2c
2b
1b
Algoritmo de
roteamento
intra-AS
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
88. 4: Camada de Rede 4a-88
3b
1d
3a
1c
2a
SA3
SA1
SA2
1a
2c
2b
1b
3c
Tarefas do roteamento 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?
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!
89. 4: Camada de Rede 4a-89
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.
90. 4: Camada de Rede 4a-90
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
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.
91. 4: Camada de Rede 4a-91
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
92. 4: Camada de Rede 4a-92
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)
93. 4: Camada de Rede 4a-93
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
94. 4: Camada de Rede 4a-94
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)
D
C
B
A
u v
w
x
y
z
destino saltos
u 1
v 2
w 2
x 3
y 3
z 2
Do roteador A p/ sub-redes:
95. 4: Camada de Rede 4a-95
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
96. 4: Camada de Rede 4a-96
Exemplo RIP
Rede Destino Próximo Roteador No. de enlaces ao destino
w A 2
y B 2
z B 7
x -- 1
…. …. ....
w x y
z
A
C
D B
Tabela de rotas em D
...
97. 4: Camada de Rede 4a-97
Exemplo RIP
Rede Destino Próximo Roteador No. de enlaces ao destino
w A 2
y B 2
z B A 7 5
x -- 1
…. …. ....
w x y
z
A
C
D B
Tabela de rotas em D
...
Dest Prox Saltos
w - 1
x - 1
z C 4
…. … ...
Anúncios de
A para D
98. 4: Camada de Rede 4a-98
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)
99. 4: Camada de Rede 4a-99
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
100. 4: Camada de Rede 4a-100
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
101. 4: Camada de Rede 4a-101
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)
102. 4: Camada de Rede 4a-102
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.
104. 4: Camada de Rede 4a-104
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.
105. 4: Camada de Rede 4a-105
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
106. 4: Camada de Rede 4a-106
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!”
107. 4: Camada de Rede 4a-107
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
108. 4: Camada de Rede 4a-108
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
109. 4: Camada de Rede 4a-109
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.
110. 4: Camada de Rede 4a-110
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. Valor do atributo preferência local associado à
rota: decisão política
2. Menor AS-PATH
3. Roteador NEXT-HOP mais próximo:
roteamento batata quente
4. Critérios adicionais
111. 4: Camada de Rede 4a-111
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
112. 4: Camada de Rede 4a-112
Políticas de roteamento BGP
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
A
B
C
W
X
Y
legenda:
rede
cliente
rede
provedor
113. 4: Camada de Rede 4a-113
Políticas de roteamento BGP (2)
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!
A
B
C
W
X
Y
legenda:
rede
cliente
rede
provedor
114. 4: Camada de Rede 4a-114
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
115. 4: Camada de Rede 4a-115
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
116. 4: Camada de Rede 4a-116
R1
R2
R3 R4
duplicação
na fonte
R1
R2
R3 R4
duplicação
dentro da rede
criação/transmissão
duplicada
duplicação
Roteamento Broadcast
Envia pacotes de uma para todos os outros nós
Duplicação na fonte é ineficiente:
Duplicação na fonte: como a fonte determina
os endereços dos receptores
duplicação
117. 4: Camada de Rede 4a-117
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ó
118. 4: Camada de Rede 4a-118
A
B
G
D
E
c
F
A
B
G
D
E
c
F
(a) Broadcast iniciado em A (b) Broadcast iniciado em D
Árvore Geradora
Primeiro construa uma árvore geradora
Nós encaminham cópias somente ao longo
da árvore geradora
119. 4: Camada de Rede 4a-119
A
B
G
D
E
c
F
1
2
3
4
5
(a) Construção passo-a-
passo da árvore geradora
A
B
G
D
E
c
F
(b) Árvore geradora
construída
Á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
120. 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
121. 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
122. Árvore de Caminhos Mínimos
Árvore de encaminhamento mcast: árvore composta
pelos caminhos mínimos da fonte para todos os
receptores
Algoritmo de Dijkstra
R1
R2
R3
R4
R5
R6 R7
2
1
6
3 4
5
i
roteador com membro do
grupo atrelado
roteador sem membro do
grupo atrelado
enlace usado p/ envio,
i indica a ordem de adição
do enlace pelo algoritmo
LEGENDA
S: fonte
123. Envio pelo Caminho Reverso
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
Baseia-se no conhecimento do roteador
sobre caminhos mínimos unicast dele para a
fonte
cada roteador tem um comportamento de
envio simples:
124. Envio pelo Caminho Reverso: exemplo
• resultado é uma árvore de caminho mínimo reversa
específica para a fonte
- pode ser uma escolha ruim para enlaces
assimétricos
R1
R2
R3
R4
R5
R6 R7
datagrama vai ser
encaminhado
LEGENDA
S: fonte
datagrama não vai ser
encaminhado
roteador com membro do
grupo atrelado
roteador sem membro do
grupo atrelado
125. 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
R1
R2
R3
R4
R5
R6 R7
mensagem de poda
LEGENDA
S: fonte
enlace com envio mcast
P
P
P
roteador com membro do
grupo atrelado
roteador sem membro do
grupo atrelado
126. Á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
127. Á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
128. Árvores baseadas em centros:
exemplo
Suponha que R6 foi escolhido como centro:
R1
R2
R3
R4
R5
R6 R7
ordem em que as
mensagens de junção são
geradas
LEGENDA
2
1
3
1
roteador com membro do
grupo atrelado
roteador sem membro do
grupo atrelado
129. 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
130. 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
131. Tunelamento
Q: Como conectar “ilhas” de roteadores multicast em
um “oceano” de roteadores unicast?
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
Topologia física Topologia lógica
132. 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
133. 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
134. 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
135. 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
junção
junção
multicast dos dados
a partir do ponto
de encontro (RP)
ponto de
encontro
136. 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
junção
junção
multicast dos dados
a partir do ponto
de encontro (RP)
ponto de
encontro
137. 4: Camada de Rede 4a-137
Camada de Rede: resumo
Próxima parada:
A camada de
Enlace de
Dados!
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