Introdu¸ c˜ ao Algoritmos de Roteamento Roteamento na Internet Redes de Computadores Prof. Brivaldo Junior Universidade Federal de Mato Grosso do Sul [email protected] 20 de julho de 2017 Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Redes de Computadores
Prof. Brivaldo Junior
Universidade Federal de Mato Grosso do Sul
20 de julho de 2017
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Visao Geral
1 Introducao
2 Algoritmos de Roteamento
3 Roteamento na Internet
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Camada de Rede
transporta segmentos do emissor para o receptor
no lado do emissor encapsula os segmentos em datagramas
no lado do receptor, entrega segmentos para a camada de transporte
camada de protocolos de rede em cada host, roteador
roteador examina os campos do cabecalho de todos os datagramas IP quepassam por ele
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Duas Funcoes Chave da Camada de Rede
encaminhamento: movepacotes da entrada de umroteador para a saıdaapropriada do roteadorroteamento: determina a rotaa ser tomada pelos pacotes daorigem para o destino
algoritmos de roteamento
analogia
encaminhamento: processo depegar uma das rotas do caminho
roteamento: processo de planejaruma viagem da origem ao destino
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Interacao entre Encaminhamento e Roteamento
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Servicos Com e Sem Conexao
rede de datagramas fornece um servico de camada de rede sem conexao
uma rede de circuitos virtuais fornece um servico com conexaode forma analoga aos servicos orientados ou nao a conexao comoTCP/UDP, mas:
servico: host-a-hostsem escolha: a rede fornece um ou outroimplementacao: no core da rede
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Circuitos Virtuais
O caminho entre a origem e o destino se comportam como um circuito telefonico
visa performance
necessaria acoes na rede ao longo do caminho entre a origem e o destino
necessita de uma configuracao inicial que ocorre antes que os dados possam trafegar
cada pacote transporta um indentificador VC (nao e o endereco do host destino)
cada roteador no caminho determinado entre a origem e o destino mantem um estado para cada
conexao que esta passando por ele.
enlaces, recursos do roteador (largura de banda, buffers) devem ser alocados para o VC (servicos
dedicados = servicos previsıveis)
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Circuitos Virtuais: Implementacao
Um VC (Virtual Circuit) consiste de:
1 caminho da origem ao destino
2 numero do VC, um numero para cada enlace ao longo do caminho
3 entradas nas tabelas de encaminhamento nos roteadores ao longo docaminho
pacotes pertencentes a um VC transportam um numero de VC (ao invesde um endereco de destino)o numero de VC pode mudar em cada enlace
novos numeros de VC vem das tabelas de encaminhamento
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Circuitos Virtuais: Tabela de Encaminhamento
Figura: Exemplo de tabela de encaminhamento para R1
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Circuitos Virtuais: Protocolos de Sinalizacao
usado para configurar, manter e destruir um VC
usado em ATM, frame-relay, X.25
nao e mais usado na Internet hoje
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Rede de Datagramas
nao precisa de uma configuracao inicial na camada de rederoteadores: sem estado sobre a conexao fim-a-fim
sem conceito na camada de rede de “conexao”
pacotes sao encaminhados usando o endereco do host destino
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Rede de Datagramas: Tabela de Encaminhamento
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Rede de Datagramas: Tabela de Encaminhamento
O que aconteceria se osintevalos nao se dividissem deforma tao comportada?
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Longest Prefix Matching
Longest prefix matching: quando estiver olhando a tabela de encaminhamentopara um certo endereco de destino, use o maior prefixo de endereco que casarcom o endereco de destino.
Intervalo de Enderecos Destino Interface11001000 00010111 00010*** ******** 011001000 00010111 00011000 ******** 111001000 00010111 00011*** ******** 2padrao 3
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Rede de Datagramas ou VC: por que?
Internet (datagrama)dados trocados entre computadores
servico “elastico”, sem restricao no
tempo de requisicao
varios tipos de enlaces
caracterısticas diferentes de cada um
dificuldade em mantes servicos
uniformes
sistemas finais “inteligentes”
podem se adaptar, realizar controle e
se recuperar de erros
nucleo de rede simples, complexidade
nas bordas
Circuito Virtual
evoluiu da telefoniasimilar a uma conversa humana:
tempo restrito, requisitos deconfiabilidade
sistemas finais “burros”telefonescomplexidade no nucleo da rede
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Arquitetura do Roteador
duas funcoes chave dos roteadores:
executar algoritmos/protocolos de roteamento (RIP, OSPF, BGP)
encaminhamento de datagramas do enlace de entrada para o de saıda
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Funcoes na Porta de Entrada
comutacao descentralizada
determina o destino do datagrama, olhando a porta de saıda na tabela deencaminhamento na memoria da porta de entrada (“casamento maisacao”)
objetivo: processametno da porta de entrada na “velocidade da linha”
enfileiramento: se os datagramas chegarem mais rapido que a taxa deencaminhamento no elemento de comutacao
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Elemento de Comutacao
transfere um pacote do buffer de entrada
para o buffer de saıda apropriado
taxa de comutacao: taxa em que os
pacotes sao transferidos da entrada para
a saıda
geralmente mensurado como um
multiplo da velocidade de
entrada/saıda da linha
N entradas: taxa de comutacao N
vezes a velocidade da linha e
desejavel
tres tipos de elementos de comutacao
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Comutacao via Memoriaprimeira geracao de roteadores:
computadores tradicionais com comutacao controlada diretamente pela CPU
o pacote e copiado para a memoria do sistema
velocidade limitada pela largura de banda da memoria (cada datagrama cruza o barramento duas
vezes)
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Comutacao via Barramento
datagrama da memoria da porta de entrada para a memoria da porta de saıda via barramento
compartilhado
contencao barramento: velocidade de comutacao limitada pelo barramento
barramento de 32 Gbps do Cisco 5600: velocidade suficiente para acesso e roteadores enterprise
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Comutacao por Rede de Interconexao
supera as limitacoes do barramento
redes banyan, barra cruzada, e outros
mecanismos de interconexao de rede
inicialmente desenvolvidos para conectar
processadores em multiprocessadores
design avancado: fragmenta datagramas
em celulas de tamanho fixo, comuta
celulas no elemento de comutacao
Cisco 12000: comuta 60 Gbps por uma
rede de interconexao
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Enfileiramento na Porta de Saıda
buffering quando taxa de chegadaao comutador (switch) excede avelocidade da linha de saıda
enfileiramento (atraso) e perda porestouro de buffer na porta desaıda!
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Quanto de buffer?
A regra geral da RFC 3439: a media de enfileiramento e igual ao RTT“tıpico” (digamos 250 mseg) vezes a capacidade do enlace C
C = 10 Gbps de enlace, logo: 2, 5 Gbit de buffer
recomendacao mais atual: com N fluxos, o buffer deve ser igual a:
RTT∗C√N
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Enfileiramento na Porta de Entrada
elemento de comutacao maislento que as portas de entradacombinadas pode acabarcausando um enfileiramentonas filas de entrada
atraso do enfileiramento e perdapor overflow do buffer
Head-of-the-Line (HOL)blocking: datagramasenfileirados na frente da filapodem evitar que outros semovam para frente
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Abstracao em Grafos
grafo G = (N,E), N = roteadores, E = enlaces
N = u, v, w, x, y, z
E = (u, v), (u, x), (v, x), (v, w), (x,w), (x, y), (w, y), (w, z), (y, z)
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Abstracao em Grafos: Custos
c(x, x′) = custo do enlace (x, x′),ex.: c(w, z) = 5
custo pode ser sempre 1 ouinversamente proporcional alargura de banda ou inversamenterelacionada ao congestionamento
Pergunta chave: qual e o menor custono caminho entre u e z?
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Topologia Abstrata de Rede
Podemos classificar os algoritmos de roteamento como:
algoritmos de roteamento global: calculam o caminho de menor custoentre a origem e o destino usando conhecimento de toda a rede.
algoritmos de roteamento descentralizado: calculam o caminho demenor custo de forma iterativa e de uma maneira distribuıda. Cada nopossui apenas as informacoes dos enlaces conectados a ele.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Topologia Abstrata de Rede
Podemos ainda subclassificar os algoritmos como:
estaticos: quando as rotas mudam muito devagar e dependem deintervencao humana (para editar as tabelas de roteamento).
dinamicos: mudam o roteamento de acordo com a carga da rede oumudanca na topologia (um enlace e rompido ou fica sobrecarregado).
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo de Estado de Enlace
No algoritmo de estado de enlace, a topologia da rede e todos os custosdos enlaces sao conhecidos e fornecidos como entrada ao algoritmo LS(Link State).
Esse algoritmo de estado de enlace usa o conhecido algoritmo de caminhomınimo criado por Dijkstra que calcula o menor caminho de uma origem ua todos os outros destinos.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo do Menor Caminho
Supondo essa topologia, qual o menor caminho de u ate todos os outros destinos?
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo de Dijkstra
topologia da rede e custos dos enlaces sao conhecidos por todos os nosresolvido com uma inundacao do estado do elancetodos os nos tem a mesma informacao
calcula o menor caminho de um no (origem) para todos os outrosfornecendo uma tabela de encaminhamento para este no
iterativo: apos k iteracoes, conhece o caminho de menor custo para kdestinos
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Notacao
Seja a seguinte notacao:
D(v): o menor custo do no de origem ao destino v nesta iteracao.
p(v): no anterior (vizinho de v) ao longo do atual menor caminhopartindo da origem ate v.
N ′: um subconjunto de nos. v esta em N ′ se o menor caminho da origemate v e definitivamente conhecido.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo de Estado de Enlace (LS) para o No Fonte u
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo de Estado de Enlace (LS): passos
Observem que a construcao e passo a passo e o conjunto N ′ vai aumentandoconforme o caminho final e alcancado.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo de Estado de Enlace (LS): resultado
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo Vetor de Distancia
Vamos supor o seguinte cenario inicial entre os roteadores x, y e z:
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo Vetor de Distancia
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo Vetor de Distancia
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo Vetor de Distancia
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo Vetor de Distancia: Outro Exemplo
Estado inicial das tabelas das redes conectadas a cada roteador.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo Vetor de Distancia: Outro Exemplo
Apos a estabilizacao e trocas das informacoes entre os vizinhos.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo Vetor de Distancia
quando o custo do enlace muda:
no detecta que um enlace local mudou de custo
e feita uma atualizacao das informacoes de roteamento e o vetor dedistancia e recalculado
se o vetor de distancia mudar, notifique os vizinhos
“Boas notıcias correm rapido”
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Algoritmo Vetor de Distancia
quando o custo do enlace muda:
neste caso, o algoritmo precisou de 44 iteracoes para estabilizar (veja olivro texto)
como as “mas notıcias” demoram para propagar, isso pode levar a umproblema de contagem infinito!
envenenamento reverso: se z tem rota para x por y, entao z informa yque a distancia para x e infinita (logo, y, nao vai tentar alcancar x por z)
“Mas notıcias correm devagar”
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Comparacao dos Algoritmos de LS e DV
complexidade da mensagem:LS: n nos, E enlaces, O(nE) mensagens
enviadas
DV: troca mensagens entre os vizinhos
apenas (tempo de convergencia varia)
velocidade de convergencia:LS: algoritmo O(n2) precisa de O(nE)
mensagens
DV: tempo de convergencia varia, pode
ter lacos no roteamento e tem problemas
com contagem infinita
robustez: o que acontece se um roteador tiver
problemas de funcionamento?
LS:
no pode publicar custos de enlaces errados
cada no calcula apenas a sua tabela
DV:
nos podem publicar custos incorretos de
caminhos
cada tabela dos nos e usada pelos outros
(erros sao propagados)
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Roteamento Hierarquico
nosso estudo de roteamento ate agora (idealizacao)
todos os roteadores sao identicos
a rede e “plana”
...nao e verdade na pratica
escalabilidade: mais de 600 milhoes de
destinos
impossıvel armazenar todas as tabelas de
roteamento de destino
trocas de tabelas de roteamento
inundariam os enlaces!
autonomia administrativa
Internet = rede de redes
cada administrador de rede vai querer
controlar o roteamento na sua propria rede
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Roteamento Hierarquico
agrega roteadores em regioes,“sistemas autonomos” (AS)roteadores na mesma ASexecutam o mesmo protocolode roteamento
protocolo de roteamento“intra-AS”roteadores em direfentes ASpodem executar diferentesprotocolos de roteamentointra-AS
roteador interno:
na “borda” da sua propria AS
tem enlace para roteadores emoutras AS
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Roteamento Intra-AS
tambem conhecido como protocolos de roteadores internos (IGP)protocolos de roteamento intra-AS mais comuns:
RIP: Routing Information ProtocolOSPF: Open Shortest Path FirstIGRP: Interior Gateway Routing Protocol (proprietario da Cisco)
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
RIP (Routing Information Protocol)
incluıdo na distribuicaoBSD-UNIX em 1982algoritmo de vetor de distancia
metrica de distancia: #hops(maximo = 15 hops), cadaenlace com custo 1DVs trocadas com os vizinhos acada 30 segundos em resposta amensagens (anuncios)cada anuncio: lista com ate 25subredes de destino(enderecamento IP)
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
RIP: exemplo
E a tabela de D:
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
RIP: falha no enlace e recuperacao
se nenhum anuncio for recebido dentro de 180 segundos, um vizinho/enlace edeclarado como morto
rotas por esse vizinho sao invalidadas
novos anuncios enviados aos vizinhos
vizinhos da vez enviam novos anuncios (se suas tabelas tiverem mudado)
informacoes de falha no enlace se propagam rapidamente (?) por toda arede
o envenenamento reverso e usado para prevenir os lacos ping-pong(distancia infinita = 16 saltos)
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
RIP: processamento da tabela
as tabelas de roteamento do RIP sao gerenciadas por processo na camadade aplicacao por um daemon chamado route-d
anuncios sao enviados por pacotes UDP e repetidos periodicamente
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Exercıcio: RIP
Seja a figura a seguir. Suponha que cada no conheca os custos de cada um deseus vizinhos. Usando o algoritmo de vetor de distancia mostre a tabela deregistros para o no z.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Exercıcio: RIP
Estado Inicial:
Estado Final:
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
OSPF: Open Shortest Path First
disponıvel publicamente (RFC 2328)usa o algoritmo de estado de enlace
dissemina pacotes LS (link state) por “inundacao”cada no constroi um mapa topologico de todo o sistemausa o algoritmo de Dijkstra para computar as rotas
O anuncio do OSPF transporta uma entrada por vizinhoanuncios sao inundados para todo o AS
mensagens OSPF sao transportadas diretamente pelo IP (ao inves de TCP ou UDP)
O protocolo de roteamento IS-IS e praticamente identico ao OSPF
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Comunicacao por Inundacao
O processo de “inundacao” ocorre como na topologia da figura abaixo:
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
OSPF: funcionamento do algoritmo
Na pratica, cada switch cacula sua tabela de roteamento diretamenteusando os dados coletados pelo pacotes LS usando uma versao doalgoritmo de Dijkstra chamada de algoritmo de busca encaminhada(forward search).
Alem disso, ele mantem duas listas conhecidas como Tentativa eConfirmado. Cada uma dessas listas possui um conjunto de entradas naforma (Destino, Custo, ProximoHop).
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
OSPF: funcionamento do algoritmo
1 Inicialize a lista de Confirmados apenas com o no de origem com custo 0
2 Para cada no adicionado a lista de Confirmados no passo anterior, faca uma busca aos vizinhos
(chamados de Next)
3 Para cada vizinho de Next, calcule o custo (Cost) para chegar a esse vizinho como o seu custo
mais o custo para chegar ao vizinho.
1 Se o vizinho nao estiver nem na lista de Confirmados nem na de Tentativas, adicione uma
entrada (Vizinho, Custo, ProximoHop) a lista de Tentativas.
2 Se o vizinho estiver na lista de Tentativas e o seu Custo for menor do que o custo atual listado
para o vizinho, substitua a entrada atual por uma nova com (Vizinho, Custo, ProximoHop)
com o novo caminho.
4 Se a lista de Tentativas esta vazia, pare, caso contrario, selecione a entrada na lista de Tentativas
com menor custo e mova para a lista de Confirmados e volte a passo 2.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
OSPF: exemplo de execucao
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
OSPF: funcionalidades avancadas (nao tem no RIP)
seguranca: todas as mensagens do OSPF sao autenticadas (o que prefineuma intrusao maliciosa)
varios caminhos com mesmo custo sao permitidos (somente um caminhono RIP)
para cada enlace, multiplas metricas de custo para diferentes TOS (Typeof Service) (ex.: enlace de satelite define melhor esforco para “baixo” etempo real para alto)suporte integrado a unicast e multicast:
OSPF Multicast (MOSPF) usa a mesma topologia base que o OSPF
Hierarquia do OSPF em grandes domınios.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Hierarquia do OSPF
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Hierarquia do OSPF
hierarquia de dois nıveis: redes locais, backboneanuncios do estado do enlace somente na area localcada no tem informacoes detalhadas da topologia da area local; so conhece adirecao (menor caminho) para redes em outras areas.
roteador de borda de area: “sumariza” a distancia das redes dentro dapropria area e anuncıa para os outros roteadores de Area de Borda.
roteador do backbone: executa o roteamento OSPF limitando-se aobackbone.
roteadores de borda: conecta com outros AS’s.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Exercıcio: OSPF
Dada a rede fornecida na figura a seguir, mostre como o algoritmo de estadode enlace (link-state constroi a tabela de roteamento para o no D.
Brivaldo Junior Redes de Computadores
IntroducaoAlgoritmos de Roteamento
Roteamento na Internet
Perguntas ?
Brivaldo Junior Redes de Computadores