1
Curso de
Redes de Computadores
Adriano Mauro Cansian
adriano@acmesecurity.org
Capítulo 4
Camada de Rede
unesp - IBILCE - SJRP
Capítulo 4: Camada de Rede
Metas:
Entender os
princípios
em que se fundamentam
os serviços de
rede
:
Roteamento • seleção de caminhos. Escalabilidade. Implementação na Internet.Veremos:
Serviços da camada de rede.
Princípio de roteamento. Roteamento hierárquico. AS Endereços IP. Protocolos de roteamento da Internet. Dentro de um domínio. Entre domínios
3
Funções da camada de rede (1)
Prover transporte de pacotes fim-a-fim.
Ligar
hosts
com
hosts
.
• (Lembrar do exemplo dos primos que moram em casas em estados diferentes e querem trocar cartas entre si).
Exigências que devem ser atendidas:
Suportar pilhas de protocolos inferiores diferentes.
Admitir camadas inferiores heterogêneas.
Admitir organização em múltiplos domínios.
Requisitos ainda em desenvolvimento:
Qualidade de serviço (
QoS
).
Mobilidade total (roteamento
wireless
).
unesp - IBILCE - SJRP
4
Funções da camada de rede (2)
Missão: Transportar pacotes do
host emissor ao receptor.
Protocolo da camada de rede:
presente em hosts e routers.
Três funções importantes:
Determinação do caminho: rota
seguida por pacotes da origem ao destino. Algoritmos de roteamento.
Comutação: mover pacotes
dentro do roteador, da entrada até a saída apropriada.
Estabelecimento da chamada:
algumas arquiteturas de rede requerem determinar o caminho antes de enviar os dados.
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
Note que os roteadores intermediários não precisam das camadas superiores da pilha TCP/IP
Funções da camada de rede (3)
• Como já dito:
transportar pacotes
entre hosts (origem-destino)
.
• No lado transmissor: encapsula
os segmentos em
datagramas
.
• No lado
receptor
: entrega os
segmentos à camada de
transporte (desencapsula).
•
Roteador
examina campos
de
cabeçalho
em todos os
datagramas IP que passam por
ele.
• É “stateless”.
unesp - IBILCE - SJRP
Funções-chave da camada de rede:
Roteamento:
Determinar a
rota
a ser seguida
pelos pacotes.
Comutação ou repasse:
Mover pacotes dentro do roteador, da entrada para a
saída apropriada.
Algoritmos de roteamento - analogia:
Roteamento: processo de planejar a viagem para
saber qual caminho seguir.
Comutação: processo de passar por um único
cruzamento.
Interação entre roteamento e comutação (repasse)
unesp - IBILCE - SJRP
8
Modelo de serviço de rede
O modelo de serviço de
rede define as
características da
transmissão
de dados
fim-a-fim, entre uma
borda da rede e a outra
borda.
Ou seja, entre os
sistemas emissor e
receptor.
?
?
?
Circuito virtual
ou
Datagrama?
A
abstração mais importante provida pela camada de rede:9
Introdução à comutação (1)
Comutação de circuitos:
Paradigma:
o sistema telefônico que usa circuito
dedicado fim-a-fim.
Comutação de pacotes:
Paradigma:
sistema de correios, onde a
correspondência é re-roteada em vários pontos
.
Comparando os serviços na camada de rede e de
transporte:
Rede: entre dois hosts.
Transporte: entre dois processos (fim a fim).
unesp - IBILCE - SJRP
Circuitos virtuais
Caminho origem-destino se comporta como um circuito
telefônico.
Em termos de desempenho.
Há o estabelecimento de cada chamada antes do envio dos
dados.
Cada pacote tem identidade de CV.
E não endereços origem/destino.
Cada comutador mantém uma tabela do estado dos
circuitos.
11
Circuitos virtuais: protocolos de sinalização
Usados para estabelecer, manter ou destruir C.V.
Exemplos: ATM, frame-relay e X.25.
Pergunta: é possível montar uma camada de rede sobre
outra camada de rede ?
aplicação transporte rede enlace física aplicação transporte rede enlace física
1. inicia chamada 2. chegada de chamada3. chamada aceita
4. conexão completa 5. começa fluxo de dados
6. dados recebidos
unesp - IBILCE - SJRP
12
Rede de datagramas:
o modelo da Internet
Não requer estabelecimento de chamada na camada de rede
Não guarda estado sobre transmissões.
Não existe o conceito de “conexão” na camada de rede.
Pacotes são roteados usando endereços de destino.
“Carimbar” o pacote com endereço, e enviar.
Dois pacotes podem seguir caminhos diferentes até destino.
aplicação transporte rede enlace física aplicação transporte rede enlace física
Destination Address Range Link Interface 11001000 00010111 00010000 00000000! through 0 11001000 00010111 00010111 11111111! 11001000 00010111 00011000 00000000! through 1 11001000 00010111 00011000 11111111 ! 11001000 00010111 00011001 00000000! through 2 11001000 00010111 00011111 11111111 ! otherwise 3
Considerando o espaço de endereçamento no IPv4 (atual) existem 4 bilhões de entradas possíveis
Tabela de comutação ou repasse
unesp - IBILCE - SJRP Prefix Match Link Interface 11001000 00010111 00010 0 11001000 00010111 00011000 1 11001000 00010111 00011 2 Qualquer outro 3 11001000 00010111 00011000 10101010 Exemplos 11001000 00010111 00010110 10100001 Qual interface? Qual interface?Decisão de repasse
11001000 00010111 00011000 10101010 !
Exemplos
11001000 00010111 00010110 10100001 ! Qual interface?
Qual interface?
Decisão de repasse
Regra do maior prefixo: o
prefixo mais longo
na tabela de
roteamento tem precedência na decisão.
1
0
Prefix Match Link Interface11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
Qualquer outro 3
unesp - IBILCE - SJRP
O que há dentro do roteador ?
Visão geral da arquitetura de um
roteador
17
Visão Geral de Arquitetura de Roteadores
Duas funções fudamentais de roteadores:
Executar algoritmos e protocolos de roteamento
• RIP, OSPF, BGP, dentre outros.
Repassar(*) datagramas da interface de entrada para a
saída.
(*) Repassar = Comutar
unesp - IBILCE - SJRP
Funções da Porta de Entrada
Comutação descentralizada:
Verifica o destino do datagrama, e procura
qual porta de saída, usando tabela de rotas na memória da porta de entrada. Meta: fazer processamento da porta de
entrada na ‘velocidade da linha’. Formação de Filas: acontece 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:
Exemplo: Ethernet
Estruturas de comutação
19
Dentro do roteador existe uma das 3 estruturas principais
de comutação:
unesp - IBILCE - SJRP
20
Três tipos de matriz de comutação
21
Comutação via Memória
Presentes nos roteadores da primeira geração:
Pacote é copiado para a memória pelo processador do
sistema ocorre um gargalo: processamento único.
Depois é
lido
para fazer o
repasse
.
A velocidade limitada pela largura de banda da memória.
2 travessias do barramento por datagrama (entra e sai na memória).
Porta de
Entrada Porta de Saída
Memória
Barramento do Sistema
Roteadores atuais / modernos:
Colocam processador da porta de entrada:
Consulta tabela e copia para a memória.
unesp - IBILCE - SJRP
Comutação via
Barramento
Datagrama viaja 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 a 10 Gbps são comuns
.
Velocidade suficiente para roteadores de acesso e
23
Comutação
cross-bar
(Rede ou matriz de Interconexão)
Supera limitações dos barramentos
.
Matrizes de interconexão desenvolvidas
inicialmente para interligar processadores num
multiprocessador (Redes Banyan).
Consiste de 2n barramentos, conectando n portas de
entrada com n portas de saída.
Portas podem “conversar” ao mesmo tempo na matriz.
Taxas atuais variam de 100 a 200 Gbps pela rede de
interconexão.
Indicado para roteadores de backbone.
unesp - IBILCE - SJRP
cross-bar
24
Portas podem “conversar”
ao mesmo tempo na matriz.
25
Porta de Saída
Buffers necessários quando datagramas chegam da
matriz de comutação mais rápido do que a taxa de
transmissão do enlace.
Eventualmente há disciplina de escalonamento:
escolha
dos datagramas enfileirados para transmissão.
TOS no datagrama IP (será discutido mais adiante).
unesp - IBILCE - SJRP
Filas na Porta de Saída
Usa buffers quando taxa
de chegada através do
comutador excede taxa
de transmissão de
saída.
Ocorre enfileiramento
(atraso) e perdas devido
ao transbordo do buffer
da porta de saída.
27
Filas na Porta de Entrada: Bloqueio Head-of-Line (HOL)
Se matriz de comutação é mais lenta do que a soma das
portas de entrada juntas → pode haver filas nas
portas de entrada.
Bloqueio HOL:
datagrama na cabeça da fila impede
outros na mesma fila de avançarem.
Acontecem retardo de enfileiramento e perdas
devido ao transbordo do buffer de entrada!
unesp - IBILCE - SJRP
Bloqueio
HOL
281
2
A
B
1 – Pacote vermelho está sendo enviado para porta A.
2 – Pacote vermelho também quer ir para A, mas esta impedido até que 1 termine.
2 – Pacote verde quer ir para B que está livre, mas está impedido até que o pacote vermelho da sua frente seja enviado.
A Camada de Rede na Internet
29
unesp - IBILCE - SJRP
A Camada de Rede na Internet
Tabela de rotas 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 (datalink) Camada física
Camada de
re
31
Endereçamento IP
unesp - IBILCE - SJRP
32
Endereçamento IP (1)
Um endereço IP consiste de 32 bits, divididos
em dois campos:
• Número de rede (network number). • Número do host (host number).
Ou três campos... (subneting ou sub-redes)
• Número de rede (network number).
• Número de sub-rede (subnet number). • Número de host (host number).
33
Endereçamento IP (2)
Os endereços IP são escritos em notação decimal:
xxx . yyy . zzz . kkk 223 . 1 . 1 . 1
11011111 00000001 00000001 00000001
Grupo decimal (entre os pontos decimais) é conhecido como um
“octeto”
é o decimal equivalente aos 8 bits do endereço binário.
“Endereço de 4 Octetos” (4 quatro grupos de 8 bits).
Exemplos:
• 68.18.1.36 o número decimal 68 representa o campo de rede do
endereço.
• 137.4.80.1 o número decimal 137.4 representa o campo de rede do endereço.
(alguns endereços são reservados. Serão tratados mais adiante).
unesp - IBILCE - SJRP
Endereço IP – notação decimal
10000000 00001010 00000010 00011110
27262524232221202726252423222120 2726252423222120 2726252423222120 27=128 23+21=10 21=2 24+23+22+21=30128.10.2.30
notação decimal
pontuada
notação
binária
Endereços de host e de rede
35 Identificador da rede Identificador do host Endereço IP de 32 bits REDE internet REDE REDE REDE hosts com o mesmo identificador de rede. hosts com identificadores de rede distintos. host unesp - IBILCE - SJRP 36Endereçamento IP (3)
Endereço IP:
identificador de 32-bits
para interface de estação
ou 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, e 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
37
Endereçamento IP (4)
Endereço IP: Uma parte de rede
• (bits de mais alta ordem). Uma parte de estação
• (bits de mais baixa ordem).
O quê é uma rede 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 (para endereços IP começando com 223, os primeiros 24 bits são a parte de rede).
LAN
unesp - IBILCE - SJRP
Endereçamento IP (5)
Como achar as redes?
Dissociar cada
interface do seu
roteador ou estação.
Criar “ilhas” de redes
isoladas.
223.1.1.1 223.1.1.3 223.1.1.4 223.1.2.2 223.1.2.1 223.1.2.6 223.1.3.2 223.1.3.1 223.1.3.27 223.1.1.2 223.1.7.0 223.1.7.1 223.1.8.0 223.1.8.1 223.1.9.1 223.1.9.2 Sistema interligado consistindo de seis redes39
Classes de redes (1)
0 rede estação 10 rede estação 110 rede estação 1110 endereço multiponto A B C D classe 1.0.0.0 to 127.255.255.255 128.0.0.0 to 191.255.255.255 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 32 bitsDada a noção de “rede”, vamos examinar endereços IP:
Endereçamento “baseado em classes”: denominação antiga (em desuso) aqui só por motivos didáticos / históricos.
unesp - IBILCE - SJRP 40
Classes de redes (2)
32 Bits Range of host addresses 1.0.0.0 to 127.255.255.255 128.0.0.0 to 191.255.255.255 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 240.0.0.0 to 247.255.255.255 Class 0 Network Host 10 Network Host 110 Network Host 1110 Multicast address 11110 Reserved for future use AB C D E
Para um endereço classe A o primeiro bit é sempre 0 28-1 redes Para um endereço classe B os dois primeiros bits são 10 216-2 redes Para um endereço classe C os três primeiros bits são 110 224-3 redes
Endereçamento “baseado em classes”: denominação antiga (em desuso). Consta aqui só por motivos didáticos / históricos.
41
Classes de redes (3)
Endereços Classe A ( “/8”)
Atribui 8 bits para o campo de rede e um total de 24 bits para o
restante do endereço.
Esta classe pode endereçar quase 17 milhões de diferentes nós em
uma rede. Um endereço classe A é usado para redes muito grandes.
Endereços Classe B ( “/16”)
Um endereço classe B atribui 16 bits para o campo de rede e um total de 16 bits para o restante do endereço.
Isto permite endereçar cerca de 65.000 diferentes nós em uma rede.
Endereços Classe C ( “/24”)
Um endereço classe C atribui 24 bits para o campo de rede e 8 bits
para o resto do endereço.
Isto permite endereçar 254 diferentes nós na rede.
Endereçamento “baseado em classes”: denominação antiga (em desuso). Consta aqui só por motivos didáticos / históricos.
unesp - IBILCE - SJRP
parte de estação
Endereçamento IP
: CIDR
Endereçamento baseado em classes:
Uso ineficiente e esgotamento do espaço de endereços.
Exemplo: rede da classe B aloca endereços para 65.000 estações,
mesmo se houver apenas 2.000 estações nessa rede.
CIDR:
C
lassless
I
nter
D
omain
R
outing
Parte de rede do endereço de comprimento arbitrário
Formato de endereço: a.b.c.d/x, onde x é número de bits na parte
de rede do endereço.
11001000 00010111
0001000
0
00000000
parte de rede
43
Endereços reservados de REDE e
BROADCAST
(1)
Endereços de REDE:
•
Para se referir a uma rede os bits do campo de host
são colocado como 0.
O endereço /16 identificado como 137.4.0.0 refere-se à rede
137.4. *.*
O endereço /24 identificado como 200.17.28.0 refere-se à rede
200.17.28.*
unesp - IBILCE - SJRP
44
Endereços reservados de REDE e
BROADCAST
(2)
Endereços de broadcast
Um endereço que se refere a todos os hosts em uma rede é
um endereço de broadcast.
• Para se referir a todos os nós de uma rede em particular, os bits de host são ajustados para 1.
Exemplos:
– O endereço 15.255.255.255 refere-se a todos os nós da rede 15. /8 .
– O endereço 200.17.28.255 refere-se a todos os nós da rede 200.17.28 / 24
45
Subneting e subnetmask (1)
Máscaras de sub-rede (subnetmasking):
Máscara de sub-rede → diz para um roteador ou
software específico o comprimento dos
campos de rede e de host.
Os administradores podem definir o campo de
subnetmask de modo a
dividir uma rede em
sub-redes menores
, de acordo com a
conveniência necessária.
O “/” indica a máscara aplicada.
unesp - IBILCE - SJRP
47
Subneting e subnetmask (3)
Funcionamento e obtenção da máscara:
A
parte do endereço IP
correspondente à
identificação do
host
(ou seja, o hostid) é
dividida:
• Um bit ligado (1) indicará que aquele bit deverá ser interpretado como parte do número de sub-rede.
• Um bit desligado (0) indicará que aquele bit deverá ser interpretado como parte do número de identificação de hostid.
Em seguida cada grupo de 8 bits é convertido para seu decimal
equivalente, indicando a subnetmask.
unesp - IBILCE - SJRP
48
49
Subneting e subnetmask (5)
200.17.28.
66/26
IP Address subnetmask Hostid Binário End. Sub-rede Interpretação 200.17.28.66 255.255.255.192 66 = 01000010 (1ª rede, host 2) 200.17.28.64 (01000000) Host 2 (000010) na subrede 200.17.28.64 200.17.28.135 255.255.255.192 135 = 10000111 (2ª rede, host 7) 200.17.28.128 (10000000) Host 7 (000111) na subrede 200.17.28.128
200.17.28.
135/26
unesp - IBILCE - SJRPSubneting e subnetmask (6)
Subnetmask: tabelinha
51
unesp - IBILCE - SJRP
Endereços reservados
Ou endereços
privados
(categoria 1)
1 REDE /8:
10.0.0.0 a 10.255.255.255
16 REDES /16:
172.16.0.0 a 172.31.255.255
256 REDES /24:
192.168.0.0 a 192.168.255.255
52Endereços reservados
Não podem ser atribuídos a nenhuma estação:
127.0.0.1:
• Endereço de Loopack
nnn.nnn.nnn.255:
• BroadCast : todos os bits de host ajustados para 1.
• n.n.n.255 – Ex: BroadCast para rede /24
• n.n.255.255 – Ex: BroadCast para rede /16
• n.255.255.255 – Ex: BroadCast para rede /8
nnn.nnn.nnn.000:
• Network: todos os bits de host ajustados para 0.
• n.n.n.0 – Ex: End. Rede para rede /24
• n.n.0.0 – Ex: End. Rede para rede /16
• n.0.0.0 – Ex: End. Rede para rede /8
0.0.0.0:
• Endereço de Inicialização (DHCP)
53
unesp - IBILCE - SJRP
Divisão de endereços IP:
Como subdividir uma rede (parte do endereço de rede):
Alocação a partir do espaço de endereços do provedor IP.
Provedor pode subdividir sua alocação: digamos que ele
tem um “/20”, então pode entregar “/23” aos seus clientes:
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/2355
Endereçamento hierárquico: agregação de rotas
Mande-me qualquer 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 N7 Internet Organização N1
Provedor B “Mande-me qualquer coisa
com endereços que começam com 199.31.0.0/16” 200.23.20.0/23 Organização N2 . . . . . .
Endereçamento hierárquico permite anunciar
eficientemente informação sobre rotas:
199.31….. /16
Mega-empresa A
unesp - IBILCE - SJRP
56
Endereçamento hierárquico: rotas mais específicas
• Organização 1 precisou mudar de provedor ou emoresa, mas precisa levar os Ips: • Provedor B agora anuncia uma nova 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 com endereços que mande-me qq coisa começam com 199.31.0.0/16 ou 200.23.18.0/23 200.23.20.0/23 Organização 2 . . . . . . 199.31….. /16 Mega-empresa A
57
Endereçamento hierárquico: rotas mais específicas
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 . . . . . .
Quando outros roteadores virem o anúncio dos blocos de endereço 200.23.16.0/20 e 200.23.18.0/23 e quiserem rotear para um endereço no bloco
200.23.18.0/23 eles vão usar a regra de ajuste ao prefixo mais longo e rotear em direção endereço de
rede maior (mais específico) que casa com o endereço de destino.
199.31….. /16
Mega-empresa A
unesp - IBILCE - SJRP
Endereçamento IP - Governança
Como um provedor IP consegue um bloco de
endereços?
ICANN
: I
nternet
C
orporation for
A
ssigned
N
ames and
N
umbers (http://www.icann.org
)
Aloca endereços.
Gerencia DNS.
Aloca nomes de domínio e resolve disputas.
No Brasil, estas funções foram delegadas ao Registro Nacional
(http://registro.br), sediado na FAPESP (SP), e comandado pelo Comitê Gestor Internet BR (CG-Br)
Encaminhamento de datagramas
59
unesp - IBILCE - SJRP
60
Envio de datagramas
Para transferir um datagrama o emissor:
1.
Encapsula o datagrama num quadro da
camada de enlace,
2.
Mapeia o endereço IP de destino em um
endereço físico
e,
3.
Para entrega-lo, usa o hardware da rede local.
61
Encaminhamento
direto
Emissor: (1.) extrai a parte da rede do
endereço IP de
destino
, e (2.) compara à parte
de rede de seu próprio endereço.
Se houver correspondência, significa que o
datagrama pode ser enviado diretamente.
Encaminhamento direto é sempre o passo
final de qualquer transmissão de datagrama.
Sempre o
roteador final
se
conectará diretamente
à mesma
rede física do destino
.
Chamado de “último passo da rota” (
last hop
).
unesp - IBILCE - SJRP
Encaminhamento
indireto
Quando um host deseja enviar algo para outro
host encapsula o datagrama, e o envia ao
roteador mais próximo
(
gateway
de saída)
.
O datagrama passa de roteador a roteador,
até chegar a um que possa entrega-lo
diretamente.
Quando um frame chega no roteador o
software do roteador extrai o datagrama
encapsulado, e seleciona o próximo roteador
ao longo do caminho em direção ao destino.
63
rede dest. próx. rot. N enlaces 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2
Enviando um datagrama da origem ao destino (1)
datagrama IP:
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 A B E Campos misc end. IP
origem end. IP dest dados
Datagrama permanece
inalterado, enquanto
passa da origem ao
destino.
tabela de rotas em A
unesp - IBILCE - SJRP 64rede dest. próx. rot. N enlaces 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2
Seja um datagrama IP
originando em
A
, e
endereçado a
B
:
A procura endereço de rede de B.
A descobre que B é da mesma rede
que A (usando o prefixo do endereço). Camada de enlace de A envia o
datagrama diretamente para B num frame da rede local.
B e A são chamados de
“diretamente conectados”.
Enviando um datagrama da origem ao destino (2)
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 A B E campos misc 223.1.1.1 223.1.1.3 dados
65
rede dest. próx. rot. N enlaces 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2
Seja origem
A
, destino
E
:
Procura endereço de rede de E.
E está numa rede diferente A e E não diretamente conectados. Tabela de rotas: próximo roteador na
rota para E é 223.1.1.4 .
Camada de enlace envia datagrama
ao roteador 223.1.1.4 num frame da camada de enlace.
Datagrama chega a 223.1.1.4
e então segue…
Enviando um datagrama da origem ao destino (3)
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 A B E campos misc 223.1.1.1223.1.2.2 dados unesp - IBILCE - SJRP
dest. rot. N enl. interface 223.1.1 - 1 223.1.1.4 223.1.2 - 1 223.1.2.9 223.1.3 - 1 223.1.3.27 rede próx.
Chegando a
223.1.1.4
, destinado a
223.1.2.2
Procura endereço de rede de E.
E fica na mesma rede que a interface
223.1.2.9do roteador.
Roteador e E estão diretamente
conectados.
Camada de enlace envia datagrama
para 223.1.2.2 dentro de frame de camada de enlace via interface 223.1.2.9
Datagrama chega a 223.1.2.2
Enviando um datagrama da origem ao destino (4)
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 A B E Campos misc 223.1.1.1223.1.2.2 dados
Datagrama IP
Especificações do Protocolo
67 unesp - IBILCE - SJRP 68Formato do datagrama IP (1)
Version IHL Type of service Total length
Identification Time to live Protocol
Fragment offset Header checksum Source address
Destination address
Options (0 or more words) D F M F 32 Bits
69
Formato do datagrama IP (2)
ver comprimento 32 bits dados (comprimento variável, tipicamente um segmento TCP ou UDP) ident. 16-bits checksum Internet sobre- vidaendereço IP de origem 32 bits
número da versão do protocolo IP comprimento do cabeçalho em palavras de 32 bits TTL - Time to Live. número máximo de enlaces restantes (decrementado a cada roteador) para fragmentação e remontagem comprimento total do datagrama (em bytes) protocolo da camada superior ao qual entregar os dados comp. cab tipo de serviço
“tipo” dos dados (TOS)
bits fragmentoinício do camada
superior
endereço IP de destino 32 bits
Opções (se houver) p.ex. temporizador, registrar rota
seguida, especificar lista de roteadores a visitar.
unesp - IBILCE - SJRP
Adaptação a redes diferentes
Internet
SLIP : 256
PPP : 1500
Ethernet : 1500
71
MTU e Fragmentação
Rede 3 MTU=1.500 Rede 1 MTU = 1.500 Rede 2 MTU=620 Host A Host B Router 1 Router 2?
?
?
Um datagrama pode trafegar em muitos tipos de redes físicas à medida que se move dentro da interligação das redes até
alcançar seu destino final
Como escolher um tamanho de datagrama que se encaixe no frame ?
?
unesp - IBILCE - SJRP
72
Formato do datagrama IP (1)
Version IHL Type of service Total length
Identification Time to live Protocol
Fragment offset Header checksum Source address
Destination address
Options (0 or more words) D F M F 32 Bits
73
IP: Fragmentação & Remontagem (1)
Cada enlace de rede tem uma
MTU (Maximum 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 se transforma
em vários datagramas. São “remontados” apenas no
destino final.
Bits do cabeçalho IP são
usados para identificar, ordenar fragmentos relacionados. Fragmentação: entrada: um datagrama grande saída: 3 datagramas menores remontagem unesp - IBILCE - SJRP
IP: Fragmentação & Remontagem (2)
O
IP representa o deslocamento de dados em
múltiplo de 8 bytes
Portanto, o tamanho do
fragmento precisa
ser um maior múltiplo de 8 possível
para aquela rede
.
•
Roteadores precisam aceitar datagramas até o
máximo de MTUs das redes às quais se
conectam.
•
Hosts e roteadores devem aceitar e remontar, se
75
IP: Fragmentação & Remontagem (3)
Cabeçalho do datagrama Dados 1 600 octetos
Dados 2 600 octetos
Dados 3 Cabeçalho do fragemento 1 Dados 1
Dados 2 Cabeçalho do fragmento 2 Cabeçalho do fragmento 3 Dados 3 200 octetos Fragmento 1 (offset 0) Fragmento 2 (offset 600) Fragmento 3 (offset 1.200) (a) (b)
Fragmentos e offset : (a) Um datagrama original, levando 1.400 octetos de dados. (b) Os três fragmentos para a MTU de rede 620. Os cabeçalhos 1 e 2 possuem o conjunto de bits de “mais fragmentos” ajustados para um. Os deslocamentos (offset) mostrados são octetos decimais; devem
ser divididos por 8 para atingir o valor armazenado nos cabeçalhos do fragmento
unesp - IBILCE - SJRP
76
IP: Fragmentação & Remontagem (4)
ID =x bit_frag =0 início =0 compr =4000 ID =x bit_frag =1 início =0 compr =1500 ID =x bit_frag =1 =1480 início compr =1500 ID =x bit_frag =0 =2960 início compr =1040
um datagrama grande vira vários datagramas menores
77
Controle IP – Fragmentação
Identifica o
datagrama Indicando que existe
mais fragmentos
Indica a posição do
fragmento em relação
ao datagrama
unesp - IBILCE - SJRPControle IP – Fragmentação
Indicando que não há
mais fragmentos,
deste datagrama
e a
sua posição no
datagrama final
79
Controle IP – Fragmentação
Identificação do datagrama
0x749b indica o mesmo
datagrama
Indica se existe mais
fragmentos para o
datagrama 0x749b
Indica a posição do
fragmento no
datagrama 0x749b
unesp - IBILCE - SJRP
datagramas com origem ou destino nesta rede possuem endereço 10.0.0/24 para origem, destino
(usualmente)
todos os datagramas que saem da rede local possuem o mesmoe único
endereço IP do NAT de origem: 138.76.29.7,
números diferentes de portas de
origem.
NAT: Network Address Translation
(1)
10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 138.76.29.7
rede local
(ex.: rede doméstica)
10.0.0/24
restante da Internet
NAT: Network Address Translation (2)
Motivação: redes locais podem utilizar apenas
um endereço IP:
Não é preciso alocar uma gama de endereços do
ISP:
apenas um endereço IP é usado para todos
os dispositivo
• Podem-se alterar os endereços dos dispositivos na rede local sem precisar notificar o mundo exterior.
• Pode-se mudar de ISP sem alterar os endereços dos dispositivos na rede local.
• Dispositivos da rede local não são explicitamente
endereçáveis ou visíveis pelo mundo exterior (um adicional de segurança ?).
unesp - IBILCE - SJRP
Implementação: o roteador NAT deve:
Datagramas que
saem
:
Substituir (endereço IP de origem interno, porta #) para
(endereço IP válido do NAT, nova porta #).
. . . Hosts remotos respondem usando (endereço IP
do NAT, nova porta #) como endereço de destino.
Armazena na tabela de tradução do NAT:
cada
(endereço IP de origem interno, porta #) com o par de
tradução (endereço IP do NAT, nova porta #).
Datagramas que
chegam
:
substituir(endereço IP do NAT, nova porta #) nos campos de
destino de cada datagrama pelos correspondentes (endereço IP de origem, porta #) armazenados da tabela NAT
.
1: hospedeiro 10.0.0.1 envia datagrama para 128.119.40, 80
2: roteador NAT substitui end. origem
do datagram de 10.0.0.1, 3345 para 138.76.29.7, 5001, atualiza a tabela 3: resposta chega endereço de destino: 138.76.29.7, 5001 4: roteador NAT substitui o endereço de destino do datagrama de 138.76.29.7, 5001 para 10.0.0.1, 3345
NAT: Network Address Translation
(4)
unesp - IBILCE - SJRP
NAT: Network Address Translation
(5)
• Campo
número de porta
com 16 bits:
60.000 conexões simultâneas
com um único
endereço de LAN.
•
NAT é controverso:
Roteador: deveria processar só até a
layer
3.
Violação do argumento fim-a-fim (P2P).
A escassez de endereços deveria ser para IPv6.
Violação do esquema cálculo do checksum do IP.
ICMP –
Internet Control Message
Protocol
Parte da camada IP.
Mecanismo de “baixo nível” para
influenciar o
comportamento
do TCP e do UDP.
Diversas mensagens de controle, tais como:
• Informar hosts sobre melhor rota ao destino; • Informar problemas com uma rota;
• Finalizar uma sessão devido a problemas na rede; • Relatar erros: estação, rede, porta, protocolo inatingíveis; • Pedido e resposta de eco e testes.
Usado em ferramentas vitais de administração e
monitoramento
ping
e
traceroute
.
unesp - IBILCE - SJRP
ICMP
IP header (20 byte)
ICMP message
Carga /conteúdo: depende do tipo e código
8-bit type
8-bit code
16-bit checksum
Formato da Mensagem ICMP
87
tipo código checksum
0 7 8 15 16 31
parâmetros
...
informação
unesp - IBILCE - SJRP
ICMP Message Types
type Description
0 Echo Reply Echo Query 3 Destination Unreachable Error 4 Source Quench Error
5 Redirect Error
8 Echo Request Echo Query 9 Router Advertisement Query 10 Router Solicitation Query 11 Time Exceeded Error 12 Parameter Problem Query 13 Timestamp Request Query 14 Timestamp Reply Query 17 Address Mask Request Query 18 Address Mask Reply Reply
code Description 0 Network Unreachable 1 Host Unreachable 2 Protocol Unreachable 3 Port Unreachable
4 Fragmentation Needed and DF set 5 Source Route Failed
6 Destination Network Unknown 7 Destination Host Unknown 8 Source Host Isolated
9 Network Administratively Prohibited 10 Destination Host Administratively
Prohibited
11 Network Unreachable For TOS 12 Host Unreachable For TOS 13 Communication Administratively
Prohibited
14 Host Precedence Violation 15 Precedence Cutoff in Effect
Exemplo: ICMP Echo Request and Reply
ICMP echo mensagem para enviar e receber
pacotes específicos de “echo” entre 2 hosts
Echo data (variable length)
Type(0 or 8) Code(0)
identifier
checksum
sequence number
unesp - IBILCE - SJRP
O transmissor envia uma série de segmentos UDP para o destino.
• O 1o possui TTL = 1
O 2o possui TTL = 2
etc...
Usa No de porta de destino improvável (exemplo 30000)
Quando o datagrama n chega ao roteador n:
• O roteador descarta o datagrama.
• E envia à origem uma mensagem ICMP (type 11, code 0) • A mensagem inclui o nome do roteador e o endereço IP
• Quando a mensagem ICMP volta, a origem calcula o RTT. • O traceroute faz isso três vezes.
Critério de interrupção:
• O segmento UDP finalmente chega ao hospedeiro de destino
• O destino retorna o pacote ICMP “port unreachable”
• (type 3, code 3)
• A origem interrompe quando recebe essa mensagem ICMP.
O transmissor envia uma série de segmentos UDP para o destino.
• O 1o possui TTL = 1 O 2o possui TTL = 2
etc...
Usa No de porta de destino improvável (exemplo 30000)
Quando o datagrama n chega ao roteador n:
• O roteador descarta o datagrama.
• E envia à origem uma mensagem ICMP (type 11, code 0) • A mensagem inclui o nome do roteador e o endereço IP
• Quando a mensagem ICMP volta, a origem calcula o RTT.
• O traceroute faz isso três vezes. Critério de interrupção:
• O segmento UDP finalmente chega ao hospedeiro de destino
• O destino retorna o pacote ICMP “port unreachable”
• (type 3, code 3)
• A origem interrompe quando recebe essa mensagem ICMP.
Traceroute e ICMP
unesp - IBILCE - SJRP
92
Interconexão de redes e
roteamento
93
O problema de inter-redes (1)
Internet = INTERNETworking
Interconexão de redes.
Comunicação fim-a-fim sobre redes:
Em escala arbitrariamente grande.
• Deve ser possível escalar.
Heterogêneas.
• Diversos protocolos de enlace.
Organizadas como federação domínios.
• Cada instituição é “dona” de uma parte da rede.
unesp - IBILCE - SJRP
O problema de inter-redes (2)
Serviços incompatíveis Há muita variação entre os serviços de recuperação de erros,
relatórios de status, gerência de conexões, etc...
Configurações incompatíveis
Exemplo: um domínio (A) limite pacotes a 1KB, enquanto (B)
permite 64 KB. Um pacote de (B) não consegue atravessar (A) inteiro.
Temporização, fluxo de controle, roteamento, políticas,
segurança, etc...
Arquiteturas incompatíveis Exemplo: SNA e DNA, IP e X.25
Não sempre óbvio quais camadas devem ser interligadas e
como.
Mudanças rápidas em custo e desempenho Custo de interconexão > banda.
95
Elementos de Interconexão
em várias camadas:
Repetidores
na camada física (layer1).
“
Hubs
” (*), pontes (
bridges
) e
switches
na
camada de acesso ao meio (layer2).
Roteadores
na camada de rede (layer3).
Gateways de aplicação (“layer 7”).
(*) Atenção: “hub” é um termo muito genérico... atenção à observação do professor...
unesp - IBILCE - SJRP
96
Meta: determinar melhor caminho (seqüência de roteadores) pela rede, desde a origem ao destino.
protocolo de roteamento
Roteamento
Abstração de grafo para
algoritmos de roteamento:
Nós do grafo são roteadores.
Arestas do grafo são os
enlaces físicos.
Custos do enlace
: retardo,
financeiro, risco, ou
congestionamento
. A E D C B F 2 2 1 3 1 1 2 5 3 5 Caminho “melhor”:
Tipicamente significa caminho de menor custo. Outras definições são
Grafo: G = (N,E)
N = conjunto de roteadores = { u, v, w, x, y, z }
E = conjunto de links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z), (u,w) }
• A abstração de grafo é útil em outros contextos de rede.
• Exemplo: P2P, em que N é o conjunto de peers e E é o conjunto de
conexões TCP
Abstração em grafo
unesp - IBILCE - SJRP
Custo do caminho (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Questão: Qual é o caminho de menor custo entre u e z ?
Algoritmo de roteamento: é algoritmo que encontra o caminho de
menor custo, ou melhor caminho possível.
Abstração do gráfico:
custo
• c(x,x’) = custo do link (x,x’)
• Ex: c(w, z) = 5
• Exemplo de custo: pode ser sempre o mesmo, relativo à distância, ou então inversamente relacionado à largura de banda ou ao congestionamento.
99
Uma introdução aos algoritmos
de roteamento
unesp - IBILCE - SJRP
Tipos de algoritmos de roteamento
Duas classificações principais.
Quanto ao tipo da informação.
Quanto à mudança das rotas.
Veremos em seguida...
101
Classificação de Algoritmos de Roteamento (1)
Classificação 1:
Informação global ou descentralizada ?
Global: Todos roteadores têm informações completas de topologia,
distância e custos dos enlaces.
Algoritmos de “estado de enlaces” (link state - LS).
Descentralizada:
Roteador conhece vizinhos diretos, e custos até eles.
Processo iterativo de cálculo, e troca de informações com
vizinhos.
Algoritmos de “vetor de distâncias” (distance vector - DV).
unesp - IBILCE - SJRP
Classificação de Algoritmos de Roteamento (2)
Classificação 2: Estático ou dinâmico?
Estático:
Usado quando as rotas mudam lentamente ou
raramente.
Tipicamente para sistemas de borda (edge routers) ou
que possuem um ou poucos links de entrada/saída.
Dinâmico:
Usado quando as
rotas mudam mais rapidamente
.
Tipicamente para sistemas de núcleo (core routers),
com vários links e várias conexões.
Atualização periódica automática.
• em resposta a mudanças nos custos, ou disponibilidade ou estado (link down ou up) dos enlaces.
Algoritmos de roteamento
Introdução aos algoritmos mais usados
103
unesp - IBILCE - SJRP
Algoritmos de roteamento
Veremos dois algoritmos principais:
Link State e Distance Vector.
Link state:
Informação Global.
Algoritmo de Dijskstra
Distance vector:
Informação Descentralizada
Equação de Bellman-Ford.
104105
Roteamento
Link-state
Usa o Algoritmo de Dijkstra para calcular melhor caminho.
Premissa: Topologia da rede e custo de todos os enlaces
são conhecidos por todos os nós.
Implementado via “
link state broadcast
”.
Todos os nós têm a mesma informação.
Todos os nós têm uma visão igual e completa
da rede.
Calcula caminhos de menor custo de uma origem para
todos os outros nós destinos.
Fornece uma tabela de roteamento para aquele nó (origem).
Convergência: após
k
iterações, conhece o caminho de
menor custo para todos os
k
nós de destino.
unesp - IBILCE - SJRP
Notação do algoritmo de Dijkstra
C(i,j):
custo do enlace do nó i até o nó j.
Custo é infinito se não houver ligação entre i e j.
D(
v
):
menor custo atual entre a origem e o destino V,
até a presente iteração do algoritmo.
p(
v
):
Predecessor de v nó anterior (vizinho) a
v
ao
longo do caminho de menor custo
atual
da origem até o
destno v.
Exemplo: p(A) Lê-se: “predecessor de A” ou “passando por”.
N’:
subconjunto de nós
vai formando o conj. de menor custo. v pertence a N’ se o caminho de menor custo entre a fonte e v for
Algoritmo de Dijsktra em palavras:
Para um determinado nó:
Iniciar só com o custo dos valores dos
vizinhos
diretos.
Ir anexando, um a um, cada nó do conjunto.
Cada vez que anexar um novo nó ao conjunto, calcular
os menores caminhos conhecidos para o nó sob
análise, até
cada destino
.
Ou seja, cada vez que eu adiciono um nó w ao conjunto,
devo obter D(v) para cada v vizinho de w, desta forma:
D(v) = min{ D(v), D(w) + c(w,v) }
• novo custo para v é ou o velho custo para v, ou o menor
custo de caminho conhecido para w (antecessor de v) mais o custo de w a v. 107 unesp - IBILCE - SJRP 108
Algoritmo de Dijsktra s
1 Inicialização: 2 N’ = {u} 3 para todos os nós v 4 se v for um vizinho de u 5 então D(v) = c(u,v) 6 senão D(v) = infinito 78 Loop para cada nó
9 Ache w não pertencente a N’, tal que D(w) é um mínimo. 10 Adicione w a N’.
11 Atualize D(v) para cada v vizinho de w, e ainda não pertencente a N’:
12 D(v) = min{ D(v), D(w) + c(w,v) }
13
13 /* novo custo para v é: ou o velho custo para v, ou o menor 14 custo de caminho conhecido para w, mais o custo de w a v */
109
Exemplo: Rodando o Algoritmo de Dijkstra’s para o nó
A:
Passo 0 1 2 3 4 5 início N’ A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A 2,A 2,A D(C),p(C) 5,A 4,D 3,E 3,E D(D),p(D)
1,A D(E),p(E) infinito 2,D D(F),p(F) infinito infinito 4,E 4,E 4,E
• Calculando os caminhos de menor
custo de A até todos os destinos
possíveis.
• Lembrando: p(x) predecessor de x ao longo do caminho de menor custo atual.
• Cada linha da tabela fornece os valores das variáveis do algoritmo ao final da iteração. A E D C B F 2 2 1 3 1 1 2 5 3 5 unesp - IBILCE - SJRP
Exemplo: Algoritmo de Dijkstra’s
Passo 0 1 2 3 4 5 início N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A 2,A 2,A D(C),p(C) 5,A 4,D 3,E 3,E D(D),p(D) 1,A D(E),p(E) infinito 2,D D(F),p(F) infinito infinito 4,E 4,E 4,E A E D C B F 2 2 1 3 1 1 2 5 3 5 E isso continua…(aqui está apenas para o menor custo de “A”
111
Exemplo: Algoritmo de Dijkstra’s
Passo 0 1 2 3 4 5 início N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A 2,A 2,A D(C),p(C) 5,A 4,D 3,E 3,E D(D),p(D)1,A D(E),p(E) infinito 2,D D(F),p(F) infinito infinito 4,E 4,E 4,E A E D C B F 2 2 1 3 1 1 2 5 3 5 Menor custo de A até C é 3 e passa por E. Depois sabe-se qual
o menor custo de A até E e por onde ele
passa... etc...
unesp - IBILCE - SJRP
Resultado da tabela de repasse em
A
:
112 A E D C B F 2 1 1 1 2 Destino: Link: B (A,B) C (A,D) D (A,D) E (A,D) F (A,D)
Caminhos de menor custo resultantes, e a
tabela de repasse para o nó A.
113
Discussão do Algoritmo de Dijkstra
Complexidade do Algoritmo:
N nós
Cada iteração: precisa verificar todos os nós w, que
não estão em N.
N*(N+1)/2 comparações Ordem de (N**2):
Oscilações possíveis:
Total de tráfego transportado in/out (diferentes).
Para este curso vamos assumir que os custos são os mesmos em ambos os sentidos (são simétricos).
A D C B 2+e 0 e 0 1+e1
Custos assimétricos tornam o problema bem mais complicado não serão considerados aqui.
unesp - IBILCE - SJRP
Roteamento Distance Vector (1)
Enquanto o LS usa
informação global
, o DV é
iterativo, assíncrono e distribuído.
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ó se comunica
apenas com os seus vizinhos
,
Roteamento Distance Vector (2)
Equação de Bellman-Ford (B-F) define:
d
x(y)
menor custo do caminho de
x
até
y
Então:
d
x(y) = min
v{c(x,v) + d
v(y) }
Onde min é calculado sobre
todos os vizinhos v de x.
unesp - IBILCE - SJRP
d
u(z)
= min { c(u,v) + dv(z), c(u,x) + dx(z), c(u,w) + dw(z) } = min { 2 + 5, 1 + 3, 5 + 3 } = 4O nó que atinge o mínimo é o próximo salto no caminho mais curto
da origem até o destino até ➜ resulta na tabela de roteamento.
Calculando o menor caminho de u até z com a
equação B-F diz que:
Roteamento Distance Vector (3)
Vemos que:
d
v(z) = 5
d
x(z) = 3
d
w(z) = 3
O que é o Vetor de Distâncias
D
x= [ D
x(y): y em N ]
Vetor de distâncias do nó x é um conjunto.
É um conjunto contendo todas as
estimativas de custos de x até todos os
outros nós y em N.
117
unesp - IBILCE - SJRP
O que cada nó mantém:
Cada nó x mantém os seguintes dados de
roteamento:
1.
O custo
c(x,v)
até cada vizinho v, diretamente
conectado.
2.
O
vetor de distâncias dele (nó x)
, contendo a
estimativa dos custos de x até todos os destinos
y em N.
3.
Os
vetores de distâncias de seus vizinhos
para
cada vizinho v de x:
D
v= [ D
v(y): y em N ]
.
Ideia básica:
Cada nó
envia periodicamente o
seu de vetor de
distância
aos seus vizinhos
.
Ou seja, quais os custos ele tem até os destinos
para os quais ele conhece.
Quando o nó x recebe nova estimativa do vizinho,
ele atualiza sua tabela usando a equação B-F:
D
x(y) = min
v{c(x,v) + D
v(y)} para cada nó y ∊
N.
• Em condições normais, a estimativa D
x(y) converge
para o menor custo atua.
Algoritmo
Distance Vector
unesp - IBILCE - SJRP
120
Roteamento Vetor-Distância: Resumo
Iterativo, 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
mudar: 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âncias.se o caminho de menor custo para algum destino
mudou, notifica vizinhos.
Cada nó:
121 unesp - IBILCE - SJRP X Z 1 2 7 Y
Exemplo: algoritmo vetor-distância (1/3)
DA(B,C)=C(A,C) + min w{DC(B,w)} DX(Z,Y)=C(X,Y) + min w{DY(Z,w)} = 2 + min {DY(Z,X)} = 2 + inf {DY(Z,Y)} = 2 + loop {DY(Z,Z)} = 2 + 1 = 2 + min {inf, loop,1} = 3
fórmula
123 X Z 1 2 7 Y
D (Y,Z) X = c(X,Z) + min {D (Y,w)} w = 7+1 = 8
Z
Exemplo: algoritmo vetor-distância (2/3)
Atualizando custo de X até Y passando por Z
unesp - IBILCE - SJRP
124
Exemplo: algoritmo vetor-distância(3/3)
X Z 1 2 7 Y Custo para Y não mudou. Custo para Z Mudou. Avisa !
125
Exemplo de Tabela de Distância
A E D C B 7 8 1 2 1 2
D (C,D)
E = c(E,D) + min {D (C,w)}w D = 2+2 = 4D (A,D)
E = c(E,D) + min {D (A,w)}w D = 2+3 = 5D (A,B)
E c(E,B) + min {D (A,w)}Bw
=
= 8+6 = 14
DX(Y,Z) = c(X,Z) + minw{ DZ (Y,w) }
Custo de E até A dado que o primeiro passo ao longo do caminho é D: é o custo de ir de E até D, mais qualquer que seja o custo
mínimo de ir de D até A.
Note que o caminho menor de D até A é 3 e
esta rota passa novamente por E !
Por que não é 15 ??
unesp - IBILCE - SJRP
Exemplo de Tabela de Distância
A E D C B 7 8 1 2 1 2
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
E custo via nó vizinho
de st in o
D (C,D)
E = c(E,D) + min {D (C,w)}w D = 2+2 = 4D (A,D)
E c(E,D) + min {D (A,w)}Dw
=
= 2+3 = 5