do serviço de rede nível de rede rede · • minimizar a distância percorrida por cada pacote...
TRANSCRIPT
1
Disciplina: Redes de Computadores
Nível de Rede
Profa. Débora Christina Muchaluat Saade
Departamento de Ciência da Computação - UFF
5
Redes de Computadores
Nível de Rede
ü Endereçamento ü Roteamento ü Transmissão de unidades de dados
do serviço de rede ü Segmentação e blocagem ü Detecção e recuperação de erros ü Sequenciação ü Controle de congestionamento ü Serviços
• orientado à conexão • não orientado à conexão
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Físico
6
Redes de Computadores
Comutação de Pacotes - Store-and-Forward
Ambiente de um protocolo de rede
fig 5-1
7
Redes de Computadores
Implementação de um Serviço sem Conexão
Encaminhamento de datgramas
8
Redes de Computadores
Implementação de um Serviço Orientado à Conexão
Encaminhamento de pacotes em um circuito virtual
9
Redes de Computadores
Comparação entre Circuito Virtual e Datagrama
5-4
2
10
Redes de Computadores
Endereçamento
ü Hierárquico
ü Horizontal
ü Mapeamento do SAP de Rede no endereço da estação • Vinculação direta
– tabelas de conversão • Vinculação dinâmica
– Protocolo de resolução de endereços
13
Redes de Computadores
Algoritmos de Roteamento
ü Para qual linha de saída do roteador deve ser encaminhado um pacote recebido?
ü Conexão de Circuito Virtual x Datagrama
Roteador
Cab.
L1
L2
L3 L0
14
Redes de Computadores
Algoritmos de Roteamento
ü Propriedades Desejáveis • correto • simples • robusto • estável • justo • ótimo
ü O que otimizar? • minimizar a distância percorrida por cada pacote • minimizar o retardo médio dos pacotes • maximizar a vazão (throughput) total da rede • minimizar o número de saltos (hops)
18
Redes de Computadores
Algoritmos de Roteamento
ü Analogia com estudo de grafos • Roteador = Nó • Enlace = Aresta
ü Medidas de custo nos enlaces • valor unitário (salto ou hop) • distância • tempo médio de espera na fila de transmissão +
tempo de transmissão propriamente dito • capacidade de transmissão • custo da linha de comunicação
19
Redes de Computadores
Algoritmos de Roteamento
A
B
C
D E
F
H
5
7
9
2 2
1
3
2
1 2
2
G
20
Redes de Computadores
The Optimality Principle
(a) A subnet. (b) A sink tree for router B.
3
21
Redes de Computadores
Caminho mais Curto (Shortest Path)
ü Diversos algoritmos na literatura para computar o caminho mais curto entre dois nós de um grafo [Tanenbaum 1996, Dijkstra 1959]
ü Baseia-se no uso de uma métrica: • número de saltos (hops) • distância • capacidade de transmissão • tempo médio de espera na fila de transmissão +
tempo de transmissão propriamente dito • custo da linha de comunicação
22
Redes de Computadores
Caminho mais Curto - Dijkstra
ü Cada nó tem um rótulo que pode ser: • tentativa • permanente
ü o rótulo mantém a menor distância ao nó origem usando o melhor caminho conhecido (inicialmente é infinito)
ü quando descobre-se que a distância ao nó origem é a menor dentre as tentativas, faz-se o rótulo permanente
23
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(∞, -) (∞, -)
(∞, -)
(∞, -) (∞, -)
(∞, -) (∞, -)
24
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(∞, -) (∞, -)
(∞, -)
(∞, -) (∞, -)
(∞, -) (∞, -)
Vizinhos: B, C Tentativas: Permanentes: A
26
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(∞, -) (∞, -)
(∞, -)
(∞, -) (2, A)
(∞, -) (∞, -)
Vizinhos: C Tentativas: B Permanentes: A 27
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (∞, -)
(∞, -)
(∞, -) (2, A)
(∞, -) (∞, -)
Vizinhos: Tentativas: B, C Permanentes: A
4
28
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (∞, -)
(∞, -)
(∞, -) (2, A)
(∞, -) (∞, -)
Vizinhos: D, F Tentativas: C Permanentes: A, B 29
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (∞, -)
(∞, -)
(∞, -) (2, A)
(4, B) (∞, -)
Vizinhos: F Tentativas: C, D Permanentes: A, B
30
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (∞, -)
(∞, -)
(11, B) (2, A)
(4, B) (∞, -)
Vizinhos: Tentativas: C, D, F Permanentes: A, B 31
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (∞, -)
(∞, -)
(11, B) (2, A)
(4, B) (∞, -)
Vizinhos: C, E Tentativas: C, F Permanentes: A, B, D
32
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (∞, -)
(∞, -)
(11, B) (2, A)
(4, B) (∞, -)
Vizinhos: E Tentativas: C, F, E Permanentes: A, B, D 33
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (∞, -)
(∞, -)
(11, B) (2, A)
(4, B) (7, D)
Vizinhos: Tentativas: C, F, E Permanentes: A, B, D
5
34
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (∞, -)
(∞, -)
(11, B) (2, A)
(4, B) (7, D)
Vizinhos: G Tentativas: F, E Permanentes: A, B, D, C 35
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (12, C)
(∞, -)
(11, B) (2, A)
(4, B) (7, D)
Vizinhos: Tentativas: F, E, G Permanentes: A, B, D, C
36
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (12, C)
(∞, -)
(11, B) (2, A)
(4, B) (7, D)
Vizinhos: F, G Tentativas: F, G Permanentes: A, B, D, C, E 37
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (12, C)
(∞, -)
(9, E) (2, A)
(4, B) (7, D)
Vizinhos: G Tentativas: F, G Permanentes: A, B, D, C, E
38
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (8, E)
(∞, -)
(9, E) (2, A)
(4, B) (7, D)
Vizinhos: Tentativas: F, G Permanentes: A, B, D, C, E 39
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (8, E)
(∞, -)
(9, E) (2, A)
(4, B) (7, D)
Vizinhos: H Tentativas: F Permanentes: A, B, D, C, E, G
6
40
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (8, E)
(9, G)
(9, E) (2, A)
(4, B) (7, D)
Vizinhos: Tentativas: F, H Permanentes: A, B, D, C, E, G 41
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (8, E)
(9, G)
(9, E) (2, A)
(4, B) (7, D)
Vizinhos: Tentativas: F Permanentes: A, B, D, C, E, G, H
42
Redes de Computadores
Caminho mais Curto
A
B
C
D E
F
H
5
7
9
2 2
2
3
2
1 1
2
G
(5, A) (8, E)
(9, G)
(9, E) (2, A)
(4, B) (7, D)
Vizinhos: Tentativas: F Permanentes: A, B, D, C, E, G, H 43
Redes de Computadores
Algoritmos de Roteamento
ü Baseiam-se em uma estrutura de dados chamada TABELA de ROTAS que possui os campos: • endereço de destino • custo do caminho (mais curto) até o destino • linha de saída
ü Classificam-se de acordo com a forma de atualização da tabela: • Não adaptativos (Estáticos ou por Rota Fixa) • Adaptativos (Dinâmicos)
46
Redes de Computadores
Algoritmos de Roteamento Não Adaptativos (Roteamento Estático ou por Caminho Fixo)
ü Uma vez criadas as tabelas, as mesmas não são mais alteradas
ü Caminhos alternativos são utilizados apenas em caso de falhas
ü Aspectos negativos • Probabilidade alta de uma má utilização dos meios
de comunicação • Dificuldade para manutenção e gerência
47
Redes de Computadores
Flooding
A
B
C
D E
F
H H A
7
48
Redes de Computadores
Flooding
A
B
C
D E
F
H
H A
49
Redes de Computadores
Flooding
A
B
C
D E
F
H
H A
H A
50
Redes de Computadores
Flooding
A
B
C
D E
F
H
H A
H A
H A
H A
52
Redes de Computadores
Flooding
ü Crescimento exponencial do número de pacotes na rede ü Exige a utilização de algum mecanismo de descarte dos
pacotes para evitar que pacotes fiquem eternamente circulando na rede • Contador de saltos no cabeçalho de cada pacote • Nó guarda a informação dos pacotes que já foram repassados
por ele • Selective flooding
ü Pouco prático, porém útil em algumas aplicações • Aplicações militares (robustez do flooding é desejável) • Atualização de bancos de dados distribuídos • Métrica de avaliação para outros algoritmos de roteamento
(sempre utiliza o caminho mais curto, pois usa todos os caminhos em paralelo)
55
Redes de Computadores
Algoritmos de Roteamento Adaptativos (Roteamento Dinâmico)
ü Rota escolhida de acordo com o arranjo topológico da rede, ou mesmo com a carga na rede
ü Atualização periódica das tabelas de rota • Modo centralizado • Modo distribuído
60
Redes de Computadores
Algoritmos de Roteamento Dinâmicos Modo Distribuído
ü Os nós trocam entre si suas respectivas informações locais para cálculo das tabelas de rota. • Envio de informações pode ser feito
– Periodicamente – Em resposta a alterações nas informações dos enlaces
ü Exemplos de algoritmos • Distance Vector • Link State
8
61
Redes de Computadores
Distance Vector
62
Redes de Computadores
Distance Vector
ü Também conhecido pelos nomes de • Algoritmo de roteamento de Bellman-Ford • Algoritmo de roteamento de Ford-Fulkerson
ü Algoritmo de roteamento utilizado pelos primeiros protocolos de nível de rede • “Antigo” algoritmo de roteamento da ARPANET
(até 1979) • RIP (Routing Information Protocol, RFC 1058) • IPX (primeiras versões) • DECnet (primeiras versões)
64
Redes de Computadores
A
B
C
- 0 C
- ∞ A - ∞ B
D
Des
- ∞
Lin C
L3
L2 L1
- ∞ C
- 0 A - ∞ B
D
Des
- ∞
Lin C - ∞ C
- ∞ A - 0 B
D
Des
- ∞
Lin C
Distance Vector
D
L4
- ∞ C
- ∞ A - ∞ B
D
Des
- 0
Lin C
65
Redes de Computadores
Distance Vector
ü Cada nó possui: • identificador único • custo de cada enlace
ü O nó transmite o seu vetor de distâncias (com destino/custo) para cada um dos seus vizinhos sempre que o seu vetor se modifica (ou periodicamente)
ü Cada nó mantém o vetor de distâncias mais recente enviado por cada um de seus vizinhos
ü Cada nó calcula o seu próprio vetor de distâncias, minimizando o custo para cada destino
ü O vetor de distâncias é recalculado sempre que: • um vizinho enviar um vetor de distâncias contendo informações
diferentes das anteriores • houver a queda em um enlace para um vizinho. Nesse caso, o vetor de
distâncias desse vizinho é descartado para que o vetor de distâncias do nó seja recalculado
66
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A - ∞ B
C
Des
- ∞
Lin C
- ∞ A - 0 B
C
Des
- ∞
Lin C
67
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A - ∞ B
C
Des
- ∞
Lin C
- ∞ A - 0 B
C
Des
- ∞
Lin C
9
68
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A - ∞ B
C
Des
- ∞
Lin C
- ∞ A - 0 B
C
Des
- ∞
Lin C
C (3)
0 C ∞ B ∞ A C Des
69
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A - ∞ B
C
Des
- ∞
Lin C
- ∞ A - 0 B
C
Des
C 3
Lin C
C (3)
0 C ∞ B ∞ A C Des
70
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A - ∞ B
C
Des
- ∞
Lin C
- ∞ A - 0 B
C
Des
C 3
Lin C
C (3)
0 C ∞ B ∞ A C Des
71
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A - ∞ B
C
Des
- ∞
Lin C
C (9)
- ∞ A - 0 B
C
Des
C 3
Lin C
C (3)
0 C ∞ B ∞ A C Des
0 C ∞ B ∞ A C Des
72
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A - ∞ B
C
Des
C 9
Lin C
C (9)
- ∞ A - 0 B
C
Des
C 3
Lin C
C (3)
0 C ∞ B ∞ A C Des
0 C ∞ B ∞ A C Des
73
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A - ∞ B
C
Des
C 9
Lin C
C (9)
- ∞ A - 0 B
C
Des
C 3
Lin C
C (3)
0 C ∞ B ∞ A C Des
0 C ∞ B ∞ A C Des
10
74
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A - ∞ B
C
Des
C 9
Lin C
B (5)
C (9)
- ∞ A - 0 B
C
Des
C 3
Lin C
C (3)
0 C ∞ B ∞ A C Des
0 C ∞ B ∞ A C Des
3 C 0 B ∞ A C Des
75
Redes de Computadores
Distance Vector
A
B
C
- ∞ A - ∞ B
C
Des
- 0
Lin C
9
3 5 - 0 A B 5 B
C
Des
B 8
Lin C
B (5)
C (9)
- ∞ A - 0 B
C
Des
C 3
Lin C
C (3)
0 C ∞ B ∞ A C Des
0 C ∞ B ∞ A C Des
3 C 0 B ∞ A C Des
76
Redes de Computadores
Distance Vector
A
B
C
B 8 A B 3 B
C
Des
- 0
Lin C
9
3 5
8 C 5 B 0 A C Des
3 C 0 B 5 A C Des
A (9)
B (3)
- 0 A B 5 B
C
Des
B 8
Lin C
3 C 0 B 5 A C Des
0 C 3 B 8 A C Des
B (5)
C (9)
A 5 A - 0 B
C
Des
C 3
Lin C
8 C 5 B 0 A C Des
A (5)
0 C 3 B 8 A C Des
C (3)
77
Redes de Computadores
Distance Vector
ü Vantagens • Simplicidade • Tempo de convergência baixo quando a rede opera
bem
ü Principal desvantagem • Tempo de convergência muito alto quando ocorrem
problemas na rede – Problema da contagem para infinito (count-to-infinity
problem)
79
Redes de Computadores
Distance Vector
A
B
C
- 0 C Des Lin C
1 C C Des
B
C Des
B 2 Lin C
1 C C Des
B
C Des
C 1 Lin C
0 C C Des
C 2 C C Des
A
80
Redes de Computadores
Distance Vector
A
B
C
- 0 C Des Lin C
1 C C Des
B
C Des
B 2 Lin C
1 C C Des
B
C Des
C 1 Lin C
0 C C Des
C 2 C C Des
A
11
81
Redes de Computadores
Distance Vector
A
B
C
- 0 C Des Lin C
C Des
B 2 Lin C
1 C C Des
B
C Des
C 1 Lin C
2 C C Des
A
82
Redes de Computadores
Distance Vector
A
B
C
- 0 C Des Lin C
C Des
B 2 Lin C
1 C C Des
B
C Des
A 3 Lin C
2 C C Des
A
83
Redes de Computadores
Distance Vector
A
B
C
- 0 C Des Lin C
C Des
B 2 Lin C
1 C C Des
B
C Des
A 3 Lin C
2 C C Des
A
84
Redes de Computadores
Distance Vector
A
B
C
- 0 C Des Lin C
C Des
B 4 Lin C
3 C C Des
B
C Des
A 3 Lin C
2 C C Des
A
85
Redes de Computadores
Distance Vector
A
B
C
- 0 C Des Lin C
C Des
B 4 Lin C
3 C C Des
B
C Des
A 3 Lin C
2 C C Des
A
86
Redes de Computadores
Distance Vector
A
B
C
- 0 C Des Lin C
C Des
B 4 Lin C
3 C C Des
B
C Des
A 5 Lin C
4 C C Des
A
12
87
Redes de Computadores
Distance Vector
ü Diversas propostas para melhorar a questão do tempo de convergência [Perlman 1999]
• Split Horizon: a distância ao nó X não é reportada na linha por onde pacotes com destino X são encaminhados – poison reverse: a distância é
reportada como sendo infinito ü Nenhuma das propostas resolve a questão
satisfatoriamente
92
Redes de Computadores
Distance Vector – Split Horizon & Poison Reverse
A
B
C
- 0 C Des Lin C
∞ C C Des
B
C Des
B 2 Lin C
1 C C Des
B
C Des
C 1 Lin C
0 C C Des
C ∞ C C Des
A
93
Redes de Computadores
Distance Vector – Split Horizon & Poison Reverse
A
B
C
- 0 C Des Lin C
∞ C C Des
B
C Des
B 2 Lin C
1 C C Des
B
C Des
C 1 Lin C
0 C C Des
C ∞ C C Des
A
94
Redes de Computadores
Distance Vector – Split Horizon & Poison Reverse
A
B
C
- 0 C Des Lin C
C Des
B 2 Lin C
1 C C Des
B
C Des
C 1 Lin C
∞ C C Des
A
95
Redes de Computadores
Distance Vector – Split Horizon & Poison Reverse
A
B
C
- 0 C Des Lin C
C Des
B 2 Lin C
1 C C Des
B
C Des
- ∞ Lin C
∞ C C Des
A
96
Redes de Computadores
Distance Vector – Split Horizon & Poison Reverse
A
B
C
- 0 C Des Lin C
C Des
B 2 Lin C
1 C C Des
B
C Des
- ∞ Lin C
∞ C C Des
A
13
97
Redes de Computadores
Distance Vector – Split Horizon & Poison Reverse
A
B
C
- 0 C Des Lin C
C Des
- ∞ Lin C
∞ C C Des
B
C Des
- ∞ Lin C
∞ C C Des
A
98
Redes de Computadores
Link State
99
Redes de Computadores
Link State
ü A topologia completa e todos os custos (p.e., retardos medidos experimentalmente) são distribuídos para cada roteador
ü Depois de possuir o mapa completo da topologia, cada roteador pode rodar o algoritmo de Dijkstra para encontrar o caminho mais curto para cada outro roteador
100
Redes de Computadores
Link State
ü Cada roteador deve 1. Descobrir os seus vizinhos e aprender seus endereços de rede 2. Determinar o custo para alcançar cada um deles. 3. Construir um pacote, denominado link state packet – LSP,
contendo uma lista dos vizinhos com os respectivos custos. 4. Difundir seu LSP para todos os outros roteadores da rede,
armazenando os mais recentes LSPs recebidos dos demais roteadores.
5. Computar a melhor rota (caminho mais curto) para cada um dos roteadores.
101
Redes de Computadores
Link State Identificação dos Vizinhos
ü Enlaces ponto-a-ponto • Troca de pacotes especiais de identificação (pacotes
HELLO) ü LANs conectando roteadores
• Considerar a LAN como um nó artificial (LAN designated router)
(a) Nine routers and a LAN. (b) A graph model of (a). 103
Redes de Computadores
Link State Determinando o custo de cada linha
ü Exemplo com custo=retardo: • Pacote especial ECHO é enviado em cada linha • Outra ponta deve respondê-lo imediatamente • retardo medido é dividido por 2 • teste realizado várias vezes, e depois a média é
computada • considera ou não o tempo de espera na fila (carga
do enlace)
14
105
Redes de Computadores
Link State Construção do LSP
ü Um nó gera um novo LSP em várias situações: • Periodicamente • Logo que descobre um novo vizinho • Logo que “cai” um enlace de comunicação com um vizinho • Logo que o custo de um enlace para um vizinho existente é
alterado
Endereço de Origem (Identificação do nó) Número de sequência
Tempo de vida Endereço do
Vizinho Custo
… … Endereço do
Vizinho Custo
Formato do LSP
106
Redes de Computadores
Link State Difusão do LSP
ü Parte mais complexa e crítica do algoritmo • Garantir uma consistência nos conjuntos de LSPs
de cada nó • Evitar que os LSPs se multipliquem de uma forma
desordenada • Garantir a confiabilidade (correção e ordenação)
na entrega dos LSPs ü Evitar a propagação dos LSPs utilizando
informações de roteamento da rede para não criar um problema recursivo • Flooding (adaptado)
108
Redes de Computadores
ü Flooding para distribuir LSPs ü cada pacote contém um número de sequência (32 bits)
incrementado a cada novo LSP enviado ü roteadores guardam pares (roteador_origem,
número_sequência) que recebem ü quando chega um LSP:
• se for novo (número de seqüência maior que o armazenado) , é encaminhado em todas as portas exceto a de origem
• se for duplicata, é descartado • se tiver número de sequência menor que o armazenado
para aquela origem, é descartado como obsoleto.
Link State Difusão do LSP
110
Redes de Computadores
ü Problemas: • reiniciar número de sequência • se um roteador falhar, perderia a sequência e pacotes seriam
encarados como duplicata • erro de transmissão no número de sequência
ü Solução: • tempo de vida no pacote, decrementado por cada roteador
que o repassa ou o está armazenando • quando a idade chegar a zero, o roteador deleta os dados
associados ao LSP (vizinhos e custos) e retransmite o cabeçalho do LSP para cada um de seus vizinhos
• todo LSP deve ser reconhecido (ack), para isso, cada roteador quarda dois flags para cada linha de saída para cada LSP (um indica que o LSP deve ser retransmitido e o outro indica que um ack deve ser enviado)
Link State Difusão do LSP
112
Redes de Computadores
Difusão de LSPs
LSP
Roteador_origem n_seq
tempo_de_vida
Flags
Send Ack
Vizinho_1
1 0
Vizinho_2
0 1
Vizinho_3
0 0
Tabela em cada roteador para manter o controle de envio e recebimentos de LSPs
113
Redes de Computadores
Link State Cálculo das Rotas
ü Feito baseando-se no conjunto de LSPs recebidos ü Cada roteador constrói a topologia completa ü Algoritmo normalmente utilizado é o algoritmo
de Dijkstra, executado localmente, para descobrimento do caminho mais curto
15
114
Redes de Computadores
Link State
A
B
C
C
A B
D
Des Lin C
9
2 5
C
A B
D
Des Lin C
2 C 5 A C Des
2 D 2 B 9 A C Des
B
C
C
A B
D
Des Lin C
D 2
C
A B
D
Des Lin C
2 C C Des
D
9 C 5 B C Des
A 2 C 5 A C Des
2 D 2 B 9 A C Des
B
C
2 C C Des
D
9 C 5 B C Des
A 2 C 5 A C Des
B
9 C 5 B C Des
A
2 D 2 B 9 A C Des
C
2 C C Des
D
2 C 5 A C Des
B
9 C 5 B C Des
A
2 D 2 B 9 A C Des
C
2 C C Des
D
115
Redes de Computadores
Link State
A
B
C
- 0 C
B 7 A B 2 B
D
Des
D 2
Lin C
9
2 5
B 7 C
- 0 A B 5 B
D
Des
B 9
Lin C
C 2 C
A 5 A - 0 B
D
Des
C 4
Lin C
D 2
C 2 C
C 9 A C 4 B
D
Des
- 0
Lin C
A 2 C 5 A C Des
2 D 2 B 9 A C Des
B
C
2 C C Des
D
9 C 5 B C Des
A
2 C 5 A C Des
B
9 C 5 B C Des
A
2 D 2 B 9 A C Des
C
2 C C Des
D
2 C 5 A C Des
2 D 2 B 9 A C Des
B
C
2 C C Des
D
9 C 5 B C Des
A
2 C 5 A C Des
B
9 C 5 B C Des
A
2 D 2 B 9 A C Des
C
2 C C Des
D
116
Redes de Computadores
Link State
ü Exemplos de protocolo de roteamento baseados em link state • “Novo” protocolo de roteamento da ARPANET • IS-IS (Intermediate System-Intermediate System -
originado do DECnet fase V e adotado como padrão pela ISO - CLNP)
• OSPF (Open Shortest Path First – RFC 2328) • NLSP (NetWare Link Services Protocol) (Novell
IPX) • PNNI (Private Network-to-Network Interface)
119
Redes de Computadores
Distance Vector x Link State
ü Principais vantagens do algoritmo link state • Menor tempo de convergência • Mais fácil inferir a topologia da rede • Mais fácil identificar falhas em enlaces da rede • Permite de forma trivial que a rede opere com
roteamento na origem ü Principal vantagem do algoritmo distance vector
• Simplicidade
121
Redes de Computadores
Roteamento Hierárquico
ü Crescimento das redes pode levar a um crescimento das tabelas que as tornam intratáveis
ü Dividir os nós em regiões, com cada nó capaz de manter as informações de rotas das regiões a que pertence
ü O agrupamento pode ser feito utilizando um número arbitrário de níveis • regiões, clusters, zonas, grupos, etc.
122
Redes de Computadores
Roteamento Hierárquico
A
B
C
F G
D E
H I
K J
Dest Lin Hops A - - B B 1 C C 1 D C 3 E C 2 F C 4 G C 3 H B 2 I B 3 J B 3 K B 4
Tabela de Rotas de A
16
123
Redes de Computadores
Roteamento Hierárquico
A
B
C
F G
D E
H I
K J
Região 1
Região 4
Região 3
Região 2
Dest Lin Hops A - - B B 1 C C 1
Reg. 2 C 2 Reg. 3 C 3 Reg. 4 B 2 Tabela de Rotas de A
124
Redes de Computadores
Roteamento Hierárquico
127
Redes de Computadores
Roteamento por Difusão (Broadcasting)
ü Um pacote para cada nó de destino (origem deve ter lista completa de destinos)
ü Flooding (gera muitos pacotes e consome muita largura de banda)
ü Pacotes contendo múltiplos destinos (cada roteador encaminha o pacote na melhor rota, adaptando a lista de destinos conforme necessário)
ü Spanning tree contendo todos os roteadores (às vezes a spanning tree é conhecida, LSR, às vezes não, DVR)
ü Reverse Path Forwarding
128
Redes de Computadores
Reverse Path Forwarding
H
A
B
C
D
F
E
G
I
J
➽ Um nó só propaga o pacote de difusão recebido de um nó X, se o pacote chegar pe l a l i nha que o nó utilizaria para transmitir dados para o nó X, caso contrár io, o pacote é descartado como sendo duplicata.
129
Redes de Computadores
Reverse Path Forwarding
H
A
B
C
D
F
E
G
I
J
H
A
B
C
D
F
E
G
I
J
Spanning Tree
130
Redes de Computadores
Reverse Path Forwarding
H
A
B
C
D
F
E
G
I
J
F
B D E H I
17
131
Redes de Computadores
Reverse Path Forwarding
H
A
B
C
D
F
E
G
I
J
F
B D E H I
A C I A G J J D J
132
Redes de Computadores
Reverse Path Forwarding
H
A
B
C
D
F
E
G
I
J
F
B D E H I
A C I A G J J D
E A J E G I C
J
133
Redes de Computadores
Broadcast Routing
Reverse path forwarding. (a) A subnet. (b) a Sink tree. (c) The tree built by reverse path forwarding.