Roteamento
Referência:
Slides extraídos do material dos professores Jim Kurose e Keith Ross relativos ao livro “Redes de Computadores e a Internet – Uma abordagem top-down”, segunda e terceira edições
Alterações nos slides, incluindo sequenciamento, textos, figuras e novos slides, foram realizadas conforme necessidade
Funções Da Camada De Rede
Transportar pacotes entre os sistemas finais da rede
A camada de rede deve ter uma entidade em cada sistema final ou roteador da rede
3 funções importantes: Determinação de caminhos:
rota escolhida pelos pacotes entre a origem e o destino. Algoritmos de roteamento
Comutação: mover pacotes entre as portas de entrada e de saída dos roteadores
Estabelecimento de conexão: algumas arquiteturas de rede exigem o estabelecimento de circuitos virtuais antes da transmissão de dados
redeenlacefisica
redeenlacefisica
redeenlacefisica
redeenlacefisica
redeenlacefisica
redeenlacefisica
redeenlacefisica
redeenlacefisica
aplicaçãotransporte
redeenlacefisica
aplicaçãotransporte
redeenlacefisica
Modelo Do Serviço De Rede
Q: como escolher um modelo de serviço para o canal transportando pacotes da origem ao destino?
Banda-passante garantida?
Preservação dos intervalos entre pacotes?
Entrega sem perdas? Entrega em ordem? Realimentação de
informação de congestionamento?
? ??circuito virtual
oudatagrama
Nível mais geralde abstração nacamada de rede
ab
stra
ção d
e s
erv
iço
Circuitos Virtuais (VC)
Estabelecimento da conexão deve proceder o envio de dados. Liberação da conexão após os dados.
Cada pacote transporte um identificador do CV, não transporta o endereço completo do destino
Cada roteador na rota mantém informação de estado para conexão que passa por ele.
A conexão de camada de transporte envolve apenas os sistemas finais
A banda passante e os recursos do roteador podem ser alocados por VC
Controle de Qualidade de Serviço por VC
“A ligação entre a origem e o destino emula uma ligação telefônica” Orientado ao desempenho A rede controla a conexão entre a origem e o destino
Circuitos Virtuais: Sinalização
Usado para estabelecer, manter e encerrar Circuitos Virtuais
Usados em ATM, Frame-Relay e X-25, mas não na Internet
aplicaçãotransporte
redeenlacefisica
aplicaçãotransporte
redeenlacefisica
1. Call Request 2. incoming call
3. Accept call4. Call connected5. Inicia Fluxo de dados 6. Recebe Dados
Redes Datagrama: o modelo da Internet Não existem conexões na camada de transporte Não há informação de estado de conexão nos roteadores
Não existe conexão na camada de rede Pacotes tipicamente transportam o endereço de destino
Pacotes para o mesmo destino podem seguir diferentes rotas
aplicaçãotransporte
redeenlacefisica
aplicaçãotransporte
redeenlacefisica
1. Envia dados 2. Recebe dados
Datagrama versus Circuito Virtual
Internet Dados trocados entre
computadores Serviço elástico, requisitos
de atraso não críticos Sistemas finais inteligentes
Podem adaptar-se, realizar controle e recuperação de erros
A rede é simples, a complexidade fica nas pontas
Muitos tipos de enlaces Características diferentes Difícil obter um serviço
uniforme
ATM Originário da telefonia Conversação humana:
Tempos estritos, exigências de confiabilidade
Necessário para serviço garantido
Sistemas finais “burros” Telefones Complexidade dentro
da rede
Roteamento
Algoritmos de roteamento são descritos por grafos:
Nós do gráfo são roteadores
Arestas do grafo são enlaces Custo do enlace: atraso,
preço ou nível de congestionamento
OBJ: determinar “bons” caminhos (seqüência de roteadores) através
da rede da fonte ao destino.
Protocolo de Roteamento
A
ED
CB
F
2
2
13
1
1
2
53
5
“bons” caminhos: tipicamente corresponde
aos caminhos de menor custo
caminhos redundantes
Classificação dos Algoritmos de RoteamentoInformação global ou
descentralizadaGlobal: Todos os roteadores tem
informações completas da topologia e dos custos dos enlaces
algoritmos “Link state”Descentralizada: Roteadores só conhecem
informações sobre seus vizinhos e os enlaces para eles
Processo de computação interativo, troca de informações com os vizinhos
algoritmos “Distance vector”
Estático ou Dinâmico?Estático: As rotas mudam lentamente
ao longo do tempoDinâmico: As rotas mudam mais
rapidamente Atualizações periódicas Podem responder a
mudanças no custo dos enlaces
Algoritmo Link-state
Algoritmo de Dijkstra’s Topologia de rede e custo dos
enlaces são conhecidos por todos os nós. Implementado via “link
state broadcast” Todos os nós têm a
mesma informação Computa caminhos de menor
custo de um nó (fonte) para todos os outros nós Fornece uma tabela de
roteamento para aquele nó
Convergência: após k iterações, conhece o caminho de menor custo para k destinos.
Notação: C(i,j): custo do enlace do nó
i ao nó j. Custo é infinito se não houver ligação entre i e j
D(v): valor atual do custo do caminho da fonte ao destino V
P(v): nó predecessor ao longo do caminho da fonte ao nó v, isto é, antes do v
N: conjunto de nós cujo caminho de menor custo é definitivamente conhecido
Exemplo: Algoritmo de Dijkstra’s
Passo012345
início NA
ADADE
ADEBADEBC
ADEBCF
D(B),p(B)2,A2,A2,A
D(C),p(C)5,A4,D3,E3,E
D(D),p(D)1,A
D(E),p(E)infinito
2,D
D(F),p(F)infinitoinfinito
4,E4,E4,E
A
ED
CB
F
2
2
13
1
1
2
53
5
Algoritmo “Distance Vector”
Iterativo: Continua até que os nós
não troquem mais informações.
Self-terminating: Não há sinal de parada
Assíncrono: Os nós não precisam
trocar informações simultaneamente!
Distribuído: Cada nós se comunica
apenas com os seus vizinhos, diretamente conectados
Estrutura de Dados da Tabela de Distância
Cada nó tem sua própria tabela Linha para cada possível destino Coluna para cada roteador vizinho Exemplo: no nó X, para destino Y
via vizinho Z:
D (Y,Z)X
distância de X toY, via Z como prox. salto
c(X,Z) + min {D (Y,w)}Z
w
=
=
A Tabela de Distâncias Gera a Tabela de Roteamento
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
Ecusto através de
dest
ino
A
B
C
D
A,1
D,5
D,4
D,2
Enlace de saída, cost
dest
ino
Tabela de distância Tabela de Roteamento
Roteamento Vetor-Distância: ResumoIterativo, assíncrono:
cada iteração local é causada por:
Mudança de custo dos enlaces locais
Mensagem do vizinho: seu caminho de menor custo para o destino mudou
Distribuído: Cada nó notifica seus
vizinhos apenas quando seu menor custo para algum destino muda Vizinhos notificam seus
vizinhos e assim por diante
espera por mudança no custo dos enlaces locais ou mensagem do vizinho
recalcula tabela de distância
se o caminho de menor custo para algum destino mudou,
notifica vizinhos
Cada nó:
Comparação dos Algoritmos LS e VD
Complexidade LS: com n nós, E links, o(ne)
mensagens enviadas DV: trocas somente entre
vizinhos Tempo de convergência varia
Tempo de convergência LS: algoritmo o(n**2) exige
o(ne) msgs Pode ter oscilações
DV: tempo de convergência varia Podem haver loops de
roteamento Problema da contagem ao
infinito
Robustez: o que acontece se um roteador funciona mal?
Ls: Nós podem advertir custos
incorretos para os enlaces.
Cada nó calcula sua própria tabela de roteamento
Dv: Nó pode advertir
caminhos com custo incorreto
Tabela de cada nó é usada por outros
• Propagação de erros pela rede
Roteamento Hierárquico
Escala: com 50 milhões de destinos:
Não é possível armazenar todos os destinos numa única tabela de rotas!
As mudanças na tabela de rotas irão congestionar os enlaces!
Autonomia Administrativa
Internet = rede de redes Cada administração de
rede pode controlar somente o roteamento na sua própria rede
Problemas do mundo real roteadores não são todos idênticos as redes não são “flat” na prática
Roteamento Hierárquico
Agrega roteadores em regiões, “sistemas autônomos ” (AS)
Roteadores no mesmo AS rodam o mesmo protocolo de roteamento Protocolo de
roteamento “Intra-as” Roteadores em
diferentes AS podem rodar diferentes protocolos de roteamento
Roteadores de interface de um AS
Rodam protocolos de roteamento intra-as com os outros roteadores do AS
Também responsáveis por enviar mensagens para fora do AS Rodam protocolo de
roteamento inter-as com outros rotea-dores de borda
roteadores de borda
Roteamento Intra-as and Inter-as
Roteadores de Borda•realizam roteamento inter-AS entre si
•realizam roteamento intra-AS com outros roteadores do mesmo AS
Roteamento inter-AS, intra-AS no roteador
A.c
Camada de rede
Camada de enlaceCamada fisica
a
b
b
aaC
A
Bd
A.a
A.c
C.bB.a
cb
c
Roteamento Intra-AS e Inter-AS
Host h2
a
b
b
aaC
A
Bd c
A.a
A.c
C.bB.a
cb
Hosth1
roteamento Intra-ASdentro AS A
roteamento Inter-AS entre A e B
roteamento Intra-AS dentro do AS B
A camada de rede da Internet
tabelade rotas
Entidade de rede em roteadores ou hosts:
Prot. de roteamento•escolha de caminhos•RIP, OSPF, BGP
protocolo IP•endereçamento•formato dos datagramas•tratamento de pacotes
protocolo ICMP•aviso de erros•sinalização de rotas
Camada de Transporte: TCP, UDP
Camada de enlace
Camada física
Camada deRede
Endereçamento IP: Introdução
endereço IP: identificador de 32-bits para interfaces de roteadores e hosts
Interface: conexão entre roteador ou host e enlace físico Roteador tem
tipicamente múltiplas interfaces
Hosts podem ter múltiplas interfaces
endereços IP são associados com interfaces, não com o host ou com o 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.2223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 11
Endereçamento IP Endereço IP:
parte de rede (bits mais significativos)
parte de Host part (bits menos significativos)
O que é uma rede? (na prespectiva do endereço) Interfaces de
dispositivos com a mesma parte de rede no endereço IP
Podem fisicamente se comunicar sem o auxílio de um rotedor
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.2223.1.3.1
223.1.3.27
rede consistindo de 3 redes IP (para endereços IP começando com 223, os primeiros 24 bits são o endereço derede )
LAN
Endereçamento IPComo encontrar as redes Separe cada interface
de roteadores e hosts Criar ilhas de redes
isoladas Técnica de nuvens
223.1.1.1
223.1.1.3
223.1.1.4
223.1.2.2223.1.2.1
223.1.2.6
223.1.3.2223.1.3.1
223.1.3.27
223.1.1.2
223.1.7.0
223.1.7.1223.1.8.0223.1.8.1
223.1.9.1
223.1.9.2
Sistema com seisredes interconectadas
Endereços IP
0 rede host
10 rede host
110 rede host
1110 multicast address
A
B
C
D
class1.0.0.0 to127.255.255.255
128.0.0.0 to191.255.255.255
192.0.0.0 to223.255.255.255
224.0.0.0 to239.255.255.255
32 bits
endereçamento “class-full”:
Endereçamento IP: CIDR Endereçamento “Classful”:
Uso ineficiente do espaço de endereçamento, exaustão do espaço de endereços
E.G., rede de Classe B aloca endereços para 65K hosts, mesmo se só existem 2000 hosts naquela rede
CIDR: classless interdomain routing A porção de endereço de rede tem tamanho arbitrário Formato do endereço: a.B.C.D/x, onde x é o número de
bits na parte de rede do endereço
11001000 00010111 00010000 00000000
parte derede
parte de host
200.23.16.0/23
Como obter um endereço IP
Hosts : Endereço fixo: definido pelo administrador DHCP: dynamic host configuration protocol: permite
a atribuição dinâmica de endereços IP Host envia (broadcast) mensagem “DHCP discover” DHCP server responde com mensagem “DHCP offer” Host pede endereço IP com mensagem : “DHCP request” DHCP server envia endereço com a mensagem: “DHCP
ack”
Endereçamento Hierárquico: agregação de rotas
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP
Organização 0
Organização 7Internet
Organização 1
ISPs-R-Us“Me envie qualquer coisa comendereço começando por199.31.0.0/16”
200.23.20.0/23Organização 2
...
...
O endereçamento hierárquico permite uma propagação de rotas mais eficiente:
“Me envie qualquer coisa comendereço começando por200.23.16.0/20”
Roteamento Hierárquico:rotas mais específicas
ISPs-R-Us tem uma rota mais específica para a organização 1
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP
Organização 0
Organização 7Internet
Organização 1
ISPs-R-Us“Me envie qualquer coisa com endereço começando por199.31.0.0/16 ou 200.23.18.0/23”
200.23.20.0/23Organização 2
...
...
“Me envie qualquer coisa com endereço começando por200.23.16.0/20”
Como obter um endereço IP...
Q: Como o ISP obtém seu bloco de endereço?
A: ICANN: internet corporation for assigned
names and numbers Aloca endereços Gerencia DNS Atribuí nomes de domínios e resolve
disputas
Formato do Datagrama IP
ver lenght
32 bits
data (tamanho variável ,
tipicamente um segmentoTCP ou UDP)
16-bit identifier
Internet checksum
time tolive
32 bit endereço IP de origem
versão do Protocolo IP
tamanho do header (bytes)
número máximo de saltos
(decrementado em cada roteador)
parafragmentação/remontagem
tamanho totaldo datagrama(bytes)
Protocolo da camadasuperior com dados no
datagrama
head.len
type ofservice
Classe de serviço flgsfragment
offsetproto-
col
32 bit endereço IP de destino
Opções (se houver) Ex. timestamp,registro de rotalista de rotea-dores a visitar.
IP Fragmentação e Remontagem enlaces de rede têm MTU
(max.transfer size) - corresponde ao maior frame que pode ser transportado pela camada de enlace.
tipos de enlaces diferentes possuem MTU diferentes (ethernet: 1518 bytes)
datagramas IP grandes devem ser divididos dentro da rede (fragmentados)
um datagrama dá origem a vários datagramas
“remontagem” ocorre apenas no destino final
O cabeçalho IP é usado para identificar e ordenar datagramas relacionados
fragmentaçãoin: um datagrama grandeout: 3 datagramas menores
reassembly
Roteamento na Internet
A Internet consiste de Sistemas Autônomos (AS) interconectados entre si: Stub AS: pequena corporação Multihomed AS: grande corporação (sem tráfego de
trânsito) com mais de uma saída para a Internet Transit AS: provedor
Dois níveis de roteamento: Intra-AS: o administrador é responsável pela definição
do método de roteamento Inter-AS: padrão único (BGP)
Hierarquia de ASRoteador de borda Inter-AS (exterior gateway)
Roteador interno Intra-AS (gateway)
Roteamento Intra-AS
Também conhecido como Interior Gateway Protocols (IGP)
IGPs mais comuns:
RIP: Routing Information Protocol
OSPF: Open Shortest Path First
ISIS: Intermediate System to Intermediate System
RIP ( Routing Information Protocol)
Algoritmo do tipo vetor distância
Incluso na distribuição do BSD-UNIX em 1982
Métrica de distância: # of hops (max = 15 hops) motivo: simplicidade
Vetores de distância: trocados cada 30 sec via Response Message (também chamado advertisement, ou anúncio)
Cada anúncio: indica rotas para até 25 redes de destino
RIP Processamento da tabela de rotas
As tabelas de roteamento do RIP são manipuladas por um processo de aplicação chamado routed (daemon)
anúncios são enviados em pacotes UDP com repetição périódica
OSPF (Open Shortest Path First)
“open”: publicamente disponível
Usa algoritmo do tipo Link State disseminação de pacotes LS Mapa topológico em cada nó usa algoritmo de Dijkstra’s para cálculo de rotas
anúncios do OSPF transportam um registro para cada roteador vizinho
Anúncios são distribuídos para todo o AS (via flooding)
OSPF características avançadas
Segurança: todas as mensagens do OSPF são autenticadas (para previnir intrusão de hackers); usa conexões TCP para as suas mensagens
Múltiplos caminhos de mesmo custo são permitidos (o RIP só permite um caminho para cada destino)
Para cada enlace podem ser calculadas múltiplas métricas uma para cada tipo de serviço (TOS) (ex, custo de enlace por satélite definido baixo para tráfego de “melhor esforço” e alto para serviços de tempo real)
Integra tráfego uni- e multicast : Multicast OSPF (MOSPF) usa a mesma base de dados
topológica do OSPF
Hierarchical OSPF: dois níveis de roteamento para domínios grandes.
OSPF Hierárquico
Inter-AS routing
Internet inter-AS routing: BGP
BGP (Border Gateway Protocol): é o padrão de fato para uso na Internet
Algoritmo Path Vector : similar ao protocolo Distance Vector cada Border Gateway envia em broadcast
aos seus vizinhos (peers) o caminho inteiro (isto é a seqüência de ASs) até o destino
Exemplo: Gateway X deve enviar seu caminho até o destino Z:
Path (X,Z) = X,Y1,Y2,Y3,…,Z
Internet inter-AS routing: BGP
Suponha: roteador X envia seu caminho ao roteador parceiro W
W pode escolher ou não o caminho oferecido por X critérios de escolha: custo, regras (não rotear
através de AS rivais ), prevenção de loops.
Se W seleciona o caminho oferecido por X, então:
Path (W,Z) = w, Path (X,Z) Nota: X pode controlar o tráfego de entrada
controlando as rotas que ele informa aos seus parceiros: ex., se X não quer rotear tráfego para Z, X não
informa nenhuma rota para Z
Internet inter-AS routing: BGP
As mensagens do BGP são trocadas encapsuladas no TCP.
mensagens BGP: OPEN: inicia a conexão TCP com um roteador parceiro e
autentica o transmissor UPDATE: anuncia novo caminho (ou retira um velho) KEEPALIVE mantém a conexão viva em caso de ausência
de atualizações; também reconhece mensagens OPEN NOTIFICATION: reporta erros nas mesnagens anteriores;
também usado para encerrar uma conexão
Porque os protocolos Intra- e Inter-AS são
diferentes ? Políticas: Inter-AS: a administração quer ter controle sobre como seu
tráfego é roteado e sobre quem roteia através da sua rede.
Intra-AS: administração única: as decisões políticas são mais simples
Escalabilidade O roteamento hierárquico poupa espaço da tabela de rotas
e reduz o tráfego de atualização
Performance: Intra-AS: preocupação maior é desempenho
Inter-AS: regras de mercado podem ser mais importantes que desempenho
Enfileiramento na Porta de Entrada
Se a estrutura de comutação for mais lenta que a capacidade combinada das portas de entrada -> pode ocorrer filas nas portas de entrada
Bloqueio Head-of-the-Line (HOL): datagramas enfileirados no início da fila bloqueiam aqueles que estão atrás na fila
atrasos de filas e perdas são provocados pela saturação do buffer de entrada!
Três tipos de estruturas de comutação
Filas na porta de saída
armazenamento quando a taxa de chegada pelo comutador excede a velocidade da linha de saída
filas(atrasos) e perdas são provocados por um overflow do buffer da porta de saída!