Este documento discute os conceitos de comutação na camada de rede, incluindo:
1) Comutação de circuitos e circuitos virtuais;
2) Algoritmos de roteamento como Bellman-Ford e Dijkstra para determinar o melhor caminho;
3) Redes de datagramas versus circuitos virtuais.
Comutação na camada de Rede: circuitos, datagramas e roteamento
1. Comutação na camada de Rede
Objectivo:
Estudar as funções, comutação e protocolos da camada de rede:
• Comutação de circuitos;
• Comutação de circuitos virtuais;
• Algoritmos de roteamento;
1
2. Camada de Rede
• Protocolos da camada de
Rede em cada estação, aplicação
transporte
roteador Rede
enlace
• Transporta pacotes da física
Rede
Rede
enlace
Rede
estação de origem à enlace
física
física
enlace
física
receptora:
Rede
– determinação do caminho: enlace
física
rota seguida por pacotes da Rede
enlace
origem ao destino. Algoritmos física
de roteamento.
Rede
– comutação: mover pacotes Rede enlace
enlace física
dentro do roteador da entrada física
à saída apropriada. Rede
– estabelecimento da enlace aplicação
física transporte
chamada: algumas Rede
enlace
arquitecturas de Rede física
requerem a determinação do
caminho antes de enviar os
2
dados.
3. Modelo de serviço de Rede
• Modelo de serviço para • abstracção mais
o “canal” que transporta
pacotes do remetente ao importante provida
receptor?
– largura de banda pela camada de
garantida? Rede:
– preservação de – circuito virtual
temporização entre
abstração do serviço
pacotes?
– entrega sem perdas?
– entrega ordenada? – datagrama
– realimentar
informação sobre
congestionamento ao
remetente?
3
7. Circuitos virtuais
“Caminho da-origem-ao-destino se comporta como um circuito
telefónico”
em termos de desempenho
em acções da Rede e ao longo do caminho da-origem-ao-destino
Estabelecimento de cada chamada antes do envio dos dados
Cada pacote tem ident. de circuito virtual (CV) (e não endereços
origem/destino)
Cada roteador no caminho da-origem-ao-destino mantém “estado”
para cada conexão que o atravessa
conexão da camada de transporte só envolve os 2 sistemas terminais
Recursos de enlace, roteador (banda, buffers) podem ser alocados ao
CV
para permitir desempenho como de um circuito
7
8. 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
6. dados recebidos aplicação
transporte 5. começa fluxo de dados
Rede 4. conexão completa 3. chamada aceite transporte
1. inicia chamada 2. chegada de chamada Rede
enlace
enlace
física
física
8
9. Rede de datagramas
• Princípio
– Transmite os dados em pequenos pacotes
• Se o quadro de origen for muito grande, é fragmentado
Dados do utilizador
Informação de controlo
(cabeçalho do pacote)
pacote
9
10. 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
aplicação
transporte
transporte
Rede
1. envia dados 2. recebe dados Rede
enlace
enlace
física
física
10
11. Exemplos de Paradigmas de Serviços
Uso de várias tecnologias
CO: Orientada à Conexão
CL: Não orientada à Conexão
11
12. Rede de datagramas ou CVs: por quê?
Internet ATM
• troca de dados entre • evoluiu da telefonia
computadores • conversação humana:
– serviço “elástico”, sem – temporização estrita,
requisitos temporais requisitos de
restritos confiabilidade
• sistemas terminais – requer serviço garantido
“inteligentes”
(computadores) • sistemas terminais “não
– podem se adaptar, exercer inteligentes”
controlo, recuperar de – telefones
erros – complexidade dentro da
– núcleo da Rede simples, Rede
complexidade na “borda”
• muitos tipos de enlaces
– características diferentes
12
– serviço uniforme difícil
13. Roteamento
protocolo de roteamento
meta: determinar caminho 5
(sequência de roteadores) “bom” 3
pela Rede da origem ao destino B C 5
2
A 2 1 F
3
Abstracção de grafo para 1 2
algoritmos de roteamento: D E
1
• Os vértices do grafo são
roteadores • caminho “bom”:
• arestas do grafo são os
– tipicamente significa
enlaces físicos
caminho de menor
– custo do enlace: atraso, custo
financeiro, ou nível de – outras definições são
congestionamento
13
possíveis
14. Os protocolos de roteamento fazem uso de
algoritmos de roteamento para calcular o
caminho de custo mínimo da origem até o
destino.
Os algoritmos de roteamento usam uma
“métrica de custo mínimo” para determinar o
melhor caminho.
15. Métricas comuns utilizadas são a
quantidade de saltos (a quantidade de
conexões de roteador para roteador
visitadas por um pacote a caminho do seu
destino), atraso de propagação, largura de
banda, tempo, utilização do canal, bem
como métricas esotéricas como a taxa de
erros.
16. Dois algoritmos gerais são usados para
calcular informações métricas:
• vector de distância
• estado de enlace.
17. Algoritmos de vector de distância
Um algoritmo de definição de rotas por
vector de distâncias determina a distância
entre os nós de origem e de destino
calculando o número de saltos de roteador
necessários para um pacote chegar da rede
de origem à rede de destino.
18. Um exemplo de algoritmo de vector de
distâncias é o algoritmo de Bellman-Ford.
Dois protocolos de definição de rotas baseados
em vector de distancias são o RIPv1 e RIPv2,
que os roteadores trocam tabelas com seus
vizinhos a cada 30 segundos. Tanto o RIPv1
assim como RIPv2 dão suporte a, no máximo,
15 saltos.
19. Algoritmo de Bellman-Ford.
É baseado em vector de distancias e age no
número de saltos entre um nó de origem e
um destino.
Para ilustrar esse algoritmo, vamos
considerar o seguinte gráfico não-
direccionado que ilustra uma rede.
20. Os vértices A,B,C,D,E e F podem ser entendidos
como roteadores e os enlaces conectando esses
vértices são canais de comunicação.
Os rótulos dos enlaces representam um custo
arbitrário. O nosso objectivo é encontrar o caminho
mínimo de A para D usando o número de saltos
como base para a nossa selecção de caminho.
21. Examinamos os custos de todos os caminhos de A para
cada um dos nós com base no número de saltos.
22.
23. No último passo (três saltos), dois caminhos são
seleccionados. O primeiro caminho ABFD, representa o
caminho de custo mínimo de A a D com base na métrica
de saltos.
O segundo caminho, ABFE, é seleccionado, pois
representa o caminho de custo mínimo de A a E.
O resultado final do algoritmo de Bellman-Ford é uma
árvore representando o custo mínimo pago pelo nó de
origem para todos os outros nós da rede.
25. Algoritmos de Estado de Enlace
Num Algoritmo de Estado de Enlace, o roteador de
uma rede não envia a todos os outros roteadores a sua
tabela de rotas. Em vez disso, os roteadores trocam
informações sobre as ligações estabelecidas com outros
roteadores.
Essa informação é enviada através de um anúncio de
estado de ligações (LSA – link-state advertisement), que
contem os nomes e as diversas métricas de custo dos
vizinhos de um roteador.
26. Um exemplo de algoritmo de Algoritmo de Estado de
Ligações é o algoritmo de caminho mínimo de Dijkstra,
que age sobre o comprimento do caminho para
determinar a rota mais curta.
Alguns protocolos de definição de rotas com base no
estado de enlace são OSPF, IS-IS da OSI e o Protocolo
de Serviços de Ligação Netware (NLSP – Netware’s Link
Services Protocol).
27. Considere o seguinte gráfico não-direccionado que ilustra
uma rede.
Os vértices A,B,C,D,E e F podem ser entendidos como
roteadores e os enlaces conectando esses vértices são canais
de comunicação.
Os rótulos dos enlaces representam uma métrica arbitrária
de custo. O nosso objectivo é encontrar o caminho mínimo
de A para D com base na distância.
28. Para implementarmos esse algoritmo, vamos manter um
registo corrente dos sucessivos nós mais próximos da
origem. Vamos representar como k o n-ésimo nó mais
próximo. Assim, o nó A corresponde a k = 0. Ou seja, o nó
mais próximo de A com distância zero é ele mesmo. Isso é
passo de inicialização do algoritmo. Começamos agora a
busca dos nós mais próximos sucessivos de A.
29. Primeiro nó mais próximo (k = 1)
O primeiro nó mais
próximo de A é B ou E,
pois ambos se conectam
directamente a A. Como o K Nó Caminho
caminho AB tem custo
menor, ele é o 0 A -
seleccionado. Assim, B é o
mais próximo de A. 1 B AB
30. Segundo nó mais próximo (k = 2)
O segundo nó mais próximo de A
pode ser (a) uma ligação directa
partindo de A ou (b) através de um
caminho que inclui o primeiro nó mais K Nó Caminho
próximo.
Os caminhos possíveis e os seus custos
0 A -
associados são: ABC = 9, ABF = 8,
ABE = 7 ou AE = 7. Há dois caminhos 1 B AB
mais curtos: ABE e AE. Assim, E é o
segundo nó mais próximo de A.
2 E ABE
AE
31. Terceiro nó mais próximo (k = 3)
O terceiro nó mais próximo de
A deve vir de uma ligação que K Nó Caminho
inclui os nós B ou E. (Não há
outras ligações directas com A).
0 A -
Os caminhos possíveis e os seus
custos associados são: ABC = 9, 1 B AB
ABF = 8, ABEF = 11 ou AEF =
11.
2 E ABE
O caminho mínimo é ABF.
Assim, F é o terceiro nó mais AE
próximo de A.
3 F AEF
32. Quarto nó mais próximo (k = 4)
O quarto nó mais próximo de A
deve vir de um caminho que K Nó Caminho
inclui os nós B, E ou F.
0 A -
Os caminhos possíveis e os seus
custos associados são: ABC = 9, 1 B AB
ABFD = 13.
2 E ABE
O caminho mínimo é ABC. AE
Assim, C é o quarto nó mais 3 F AEF
próximo de A.
4 C ABC
33. Quinto nó mais próximo (k =5)
O quinto nó mais próximo de A deve
vir de um caminho que inclui os nós
B, E, F ou C.
K Nó Caminho
0 A -
Os caminhos possíveis e os seus custos
associados são: ABCD = 15, ABFD = 1 B AB
13, ABEFD = 16 e AEFD = 16.
2 E ABE
O caminho mínimo é ABFD. Assim,
D é o quinto nó mais próximo de A. AE
Como D é o nó de destino, o caminho 3 F AEF
mínimo de A a D é ABFD.
4 C ABC
5 D ABFD
36. Classificação de Algoritmos de Roteamento
Informação global ou descentralizada?
Global:
Todos roteadores têm informação completa de topologia, custos
dos enlaces
Algoritmos: “estado de enlaces”.
Descentralizada:
roteador conhece os vizinhos directos e custos até eles
processo iteractivo de cálculo, troca de informação com vizinhos
Algoritmos: “vector de distâncias”.
36
37. Classificação de Algoritmos de Roteamento(II)
Estático ou dinâmico?
Estático:
rotas mudam lentamente com o tempo
Dinâmico:
rotas mudam mais rapidamente
actualização periódica em resposta a mudanças nos custos dos
enlaces
37
38. Algoritmos de Roteamento
Estáticos:
Rota mais curta
Inundação (Flooding)
Roteamento baseado no fluxo
Dinâmicos:
Baseado no vector de distâncias
Baseado no estado do canal
Roteamento Hierárquico
38