1
Curso de
Redes de Computadores
Adriano Mauro Cansian
adriano@acmesecurity.org
Capítulo 4
2
Capítulo 4: Camada de Rede
Metas:
q
Entender os
princípios
em que se fundamentam
os serviços de
rede
:
§ Roteamento § Escalabilidade. § Implementação na Internet.Veremos:
q Serviços da camada de rede.
q Como funciona um roteador.
q Endereços IP. q Princípio de roteamento. q Roteamento hierárquico. § AS q Protocolos de roteamento da Internet. § Dentro de um domínio. § Entre domínios
3
Funções da camada de rede (1)
q
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.
– Analogia com o correio e carteiro que roteia as cartas
q
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.
• Ligação de redes com redes
4
Funções da camada de rede (2)
q Missão: Transportar pacotes do
host emissor ao receptor.
q Protocolo da camada de rede:
presente em hosts e routers.
Três funções importantes:
q Determinação do caminho: rota
seguida por pacotes da origem ao destino.
q Usa algoritmos de roteamento.
q Comutação: mover pacotes
dentro do roteador, da entrada até a saída apropriada.
q 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
da pilha TCP/IP, ainda que elas sejam implementadas para prover serviços
de acesso ao roteador
Funções da camada de rede (3)
• 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.
• Toma decisões de roteamento. • É “stateless”.
q
Roteamento:
§
Determinar a
rota
a ser seguida
pelos
pacotes.
q
Comutação ou repasse:
§
Mover pacotes dentro do roteador, da
entrada para a saída apropriada.
q
Algoritmos de roteamento -
analogia
:
§
Roteamento: processo de planejar a
viagem para saber qual caminho seguir.
§Comutação: processo de passar por um
7
Rede de datagramas:
o modelo da Internet
q Não requer estabelecimento de chamada na camada de rede
q Não guarda estado sobre transmissões.
§ Não existe o conceito de “conexão” na camada de rede.
q Pacotes são roteados usando endereços de destino.
§ Cada camada de rede vai “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 até 0 11001000 00010111 00010111 11111111 --- 11001000 00010111 00011000 00000000 até 1 11001000 00010111 00011000 11111111 --- 11001000 00010111 00011001 00000000 até 2 11001000 00010111 00011111 11111111 --- QUALQUER OUTRO 3
EXEMPLO: Considerando o espaço de endereçamento no IPv4 (atual) existem 4 bilhões de entradas possíveis.
Destination Address Range Link Interface 200 16 0 11001000 00010000 00000000 200 23 23 255 0 11001000 00010111 00010111 11111111 --- 200 23 24 0 11001000 00010111 00011000 00000000 200 23 24 255 1 11001000 00010111 00011000 11111111 --- 200 23 25 0 11001000 00010111 00011001 00000000 200 23 31 255 2 11001000 00010111 00011111 11111111 --- caso contrário 3
Prefix Match Link Interface 11001000 00010111 00010 0 11001000 00010111 00011000 1 11001000 00010111 00011 2 Qualquer outro 3 200 23 24 170 11001000 00010111 00011000 10101010 Exemplos 200 23 22 161 11001000 00010111 00010110 10100001 Qual interface? Qual interface?
11001000 00010111 00011000 10101010
Exemplos
11001000 00010111 00010110 10100001 Qual interface?
Qual interface?
Regra do maior prefixo
: o
prefixo mais longo
na
tabela de roteamento tem precedência na decisão.
1
0
Prefix Match Link Interface
11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
Como funciona um roteador ?
Visão geral da arquitetura de um roteador
13
q
Roteadores possuem 2 funções fundamentais:
§ Executar algoritmos e protocolos de roteamento.• Principalmente RIP, OSPF e BGP. Mas há outros.
§ Repassar(*) datagramas da interface de entrada para a saída.
• Por intermédio da malha (ou matriz) de comutação (switch fabric).
14
Comutação descentralizada:
q Verifica o destino do datagrama, e procura
qual porta de saída.
§ Usa tabela de rotas na memória da porta de entrada.
q Tenta fazer o processamento da porta de
entrada na “velocidade da linha”.
q 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:
15
Dentro do roteador existe uma das 3 principais estruturas de comutação representadas a seguir:
16
q Presentes nos roteadores da primeira geração.
q Pacote é copiado para a memória pelo processador do sistema.
§ Ocorre um gargalo devido ao processamento único.
q Depois o pacote é lido na memória para fazer o repasse.
q A velocidade é limitada pela largura de banda da memória.
§ Duas travessias do barramento por cada datagrama (entrada e saída na memória). Porta de Entrada Porta de Saída Memória Barramento do Sistema Roteadores atuais / modernos:
q Colocam processador da porta de entrada:
17
Comutação via Barramento
q Datagrama viaja da memória da porta de entrada à
memória da porta de saída.
§ Por intermédio de um barramento compartilhado.
q Contenção pelo barramento:
§ Taxa de comutação limitada pela largura de banda do barramento.
§ Datagramas competem pelo uso do barramento.
q Barramento de 1 a 100 Gbps são comuns.
§ Velocidade suficiente para roteadores de acesso e corporativos (mas
18
Comutação
cross-bar
(matriz de Interconexão)q
Supera limitações dos barramentos.
q
Matrizes de interconexão desenvolvidas
inicialmente para interligar processadores num
multiprocessador (Redes Banyan).
q
Consiste de 2 x N barramentos
, conectando
N
portas
de entrada com
N
portas de saída
.
q
Portas podem “conversar”
ao mesmo tempo
na
matriz.
§ Taxas atuais variam de 200 Gbps a 1 Tbps § Já existem roteadores de 100 Tbps.
Comutação cross-bar
19
Portas podem “conversar”
ao mesmo tempo na matriz.
20
Porta de Saída
q
Buffers
necessários quando datagramas chegam da
matriz de comutação
mais rápido
do que a taxa de
transmissão do enlace.
q
Eventualmente há disciplina de escalonamento: escolha
dos datagramas enfileirados para transmissão.
§ Pode haver usar o campo TOS no header do datagrama IP. § (será discutido mais adiante).
21
Filas e perdas na Porta de Saída
q
Quando taxa de chegada através do comutador
excede taxa de transmissão de saída:
§ Utiliza-se buffer para armazenamento temporário.
q
Ocorre enfileiramento (atraso) e eventualmente
perdas (drop) devido ao transbordamento do
buffer
da porta de saída.
22
q
Se matriz de comutação é mais lenta do que a soma das
portas de entrada juntas → pode haver
filas
nas
portas de entrada.
q
Bloqueio HOL:
datagrama na cabeça da fila impede
outros na mesma fila de avançarem.
§ Acontecem atrasos de enfileiramento e perdas, devido ao
Bloqueio
HOL
231
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
A Camada de Rede na Internet
25 Tabela de rotas Protocolos de roteamento • Escolha de caminhos • RIP, OSPF, BGP Protocolo IP • Endereçamento.• Formato dos datagramas. • Tratamento de pacotes.
Protocolo ICMP
• Aviso de erros e testes. • Sinalização de rotas. ***** Camada de Transporte *****
***** Camada de enlace (datalink) ***** ***** Camada física ***** C a m a da de re de
Datagrama IP
Especificações do Protocolo
27 ver comprimento 32 bits dados (comprimento variável, tipicamente um segmento TCP ou UDP) ident. 16-bits checksum Internet TTL
endereç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 protocol
endereço IP de destino 32 bits
Opções (se houver) Exemplo: temporizador, Registro de rota
seguida, especificar
caminho, etc... Na prática: NUNCA USADO.
Checksum envolve apenas verificação do cabeçalho
29
Formato do datagrama IP (2)
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
• Versão: o primeiro campo do cabeçalho de um datagrama IPv4 é o campo de versão, com 4 bits.
• IHL: o segundo campo, de quatro bits, é o Comprimento do Cabeçalho ou IHL
(Internet Header Length) contendo o número de palavras de 32 bits no cabeçalho IPv4. • Um cabeçalho mínimo tem vinte bytes de comprimento, logo o valor mínimo em
decimal no campo IHL é 5 (5 x 32 bits = 20 bytes).
• Tamanho total: campo de 16 bits define o tamanho TOTAL do datagrama (cabeçalho +
dados), em bytes.
• O valor do campo tamanho mínimo é de 20 bytes.
30
Formato do datagrama IP (3)
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
• Protocolo: com 8 bits define o código decimal do protocolo que o IP está carregando no campo de dados. A IANA - Internet Assigned Numbers Authority mantém a lista com os números de protocolos.
• Os protocolos comuns e os seus valores decimais incluem o ICMP (1), o TCP (6) e o
UDP (17). Ver http://www.iana.org/assignments/protocol-numbers.
• TTL (Time To Live): evita que os datagramas persistam numa rede (por exemplo, evitando loopings de roteamento). É setado na origem.
• Historicamente o campo TTL limitaria a vida de um datagrama em segundos, mas tornou-se num campo de contagem de nós caminhados (chamado de hop count).
• Roteador onde um datagrama atravessa decrementa o campo TTL em 1.
• Quando o campo TTL chega a zero, o pacote não é enviado e deve ser descartado. Datagrama ICMP de erro (ICMP 11 – Time Exceeded) é enviado de volta ao emissor
MTU e adaptação a redes diferentes
31Internet
SLIP : 256
PPP : 1500
Ethernet : 1500ADSL: 512
32
IP: Fragmentação & Remontagem (1)
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 passar por muitos tipos de redes físicas diferentes, à medida que se move dentro das interligações das redes, até alcançar seu destino final.
• Como a rede define um tamanho de datagrama que se encaixe no
frame?
• Como a rede trata datagramas maiores do que sua camada de
enlace pode suportar?
33
IP: Fragmentação & Remontagem (2)
q Cada enlace de rede tem uma MTU
(Maximum Transmission Unit) - maior tamanho possível de FRAME neste enlace.
§ Tipos diferentes de enlace têm MTUs diferentes.
q Quando há um datagrama IP muito grande
a ser enviado numa rede que não o comporta: ele é 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
34
Campos do Protocolo IP utilizados
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
IDENTIFICATION (16 bits) à Contém um inteiro que identifica o
datagrama. Todo gateway que fragmenta o datagrama, copia o IDENT
em cada um dos fragmentos.
FLAGS à Controla a fragmentação : Do Not fragment (DF) ou More Fragments (MF).
FRAGMENT OFFSET (13 bits) à Especifica a que ponto do datagrama atual o
fragmento pertence (offset). É UM DECIMAL EM BYTES QUE SEMPRE
representa o deslocamento daquele fragmento, a partir do 1o. Bit. Sempre deve ser múltiplo de 8.
35
IP: Fragmentação & Remontagem (4)
q
O IP representa o deslocamento de dados em
múltiplo de 8 bytes.
§
Portanto, o tamanho do
fragmento será sempre o
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 são obrigados aceitar e remontar,
36
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 início =185 compr =1500 ID =x bit_frag =0 início =370 compr =1040
um datagrama grande fragmentado em vários datagramas menores
• 1480 ÷ 8 = 185 • 2960 ÷ 8 = 370
• 1500 total = 1480 dados + 20 bytes header
Início em 2960 bytes Início em 1480 bytes
37
Controle IP – Fragmentação
Identifica o
datagrama Indicando que existe
mais fragmentos
Indica a posição do
fragmento em relação
38
Controle IP – Fragmentação
Indicando que não há
mais fragmentos,
deste datagrama
e a
sua posição no
datagrama final
39
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
ICMP
ICMP –
Internet Control Message Protocol
q
Parte da camada IP.
q
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 (ping) e testes.
q
Usado em ferramentas vitais de administração e
monitoramento à
ping
e
traceroute
.
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
IP datagram
Formato da Mensagem ICMP
43
tipo código checksum
0 7 8 15 16 31
parâmetros
...
informação
ICMP Message Types
type Description
0 Echo Reply Echo Reply
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
q
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
46
47
Endereçamento IP
q
Endereço IP: 32 bits, divididos em dois campos:
• IDent. de rede (network number). • IDent. do host (host number).
q Os endereços IP são escritos em notação decimal:
xxx . yyy . zzz . kkk 223 . 1 . 1 . 1
11011111 00000001 00000001 00000001
q Grupo decimal é conhecido como um “octeto”.
q É o decimal equivalente aos 8 bits do endereço binário.
Endereço IP – notação decimal
4810000000 00001010 00000010 00011110
2
72
62
52
42
32
22
12
02
72
62
52
42
32
22
12
02
72
62
52
42
32
22
12
02
72
62
52
42
32
22
12
02
7=128
2
3+
2
1=10
2
1=2
2
4+
2
3+
2
2+
2
1=30
128.10.2.30
notação decimal
pontuada
notação
binária
Exemplos:
Exemplos:
Endereços de host e de rede
51
Identificador da
rede Identificador do host Endereço IP de 32 bits REDE 1 internet REDE 2 REDE 4 REDE 3 hosts com o mesmo identificador de rede. hosts com identificadores de rede distintos. host
52
Endereçamento hosts e redes (1)
q
Interface:
conexão entre
estação, roteador e
enlace físico.
§ Roteador típico tem
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
53
Endereçamento hosts e redes (2)
q Endereço IP:
§ Uma parte de rede. • (bits de mais alta ordem).
§ Uma parte de host.
• (bits de mais baixa ordem).
q Uma rede IP:
§ Conjunto de Interfaces de
dispositivos com o mesmo campo 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 parte da rede consiste de 3 interfaces IP com os endereços IP começando com
223.1.3.
• Os primeiros 24 bits são o campo de rede. LAN
Endereçamento hosts e redes (3)
54 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• Este conjunto de redes consiste numa rede com 3 redes, cujos os endereços IP começam com 223.1.
• Sub-redes de uma rede maior.
LAN
Endereçamento hosts e redes (4)
55 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 redesIdentificando Rede e Host
q
PERGUNTA: como identificar qual é a parte
do endereço IP que corresponde à parte de
REDE
e qual corresponde à parte de
HOST
?
(atenção: em desuso)
58
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)
59
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 address11110 Reserved for future use A
B
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
60
Classes de redes (4)
Classe Formato do Endereço Organização da Rede Intervalo dos
endereços da classe A 0 Identificador da Rede Identificador do Host 7 bits 24 bits
127 redes com até
16.777.216 hosts. de 1.0.0.0 até 127.255.255.255. B 10 Identificador da Rede Identificador do Host 14 bits 16 bits
16.384 redes com até 65.535 hosts. de 128.0.0.0 até 191.255.255.255. C 110 Identificador da Rede Identificador do Host 21 bits 8 bits
2.097.152 redes com até 254 hosts.
de 192.0.0.0 até 223.255.255.255.
61
parte do host
Endereçamento IP
: CIDR
q
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
§
/x
é número de bits nocampo de rede
do endereço.11001000 00010111
0001000
0
00000000
parte de rede
62
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/16
Refere-se à rede 137.4.*.*
O endereço /24 identificado como 200.17.28.0/24
63
Endereços reservados de REDE e
BROADCAST
(2)
Endereços de broadcast
q 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,
os
bits de host
são ajustados para 1.
q Exemplos:
O endereço 15.255.255.255/8
Refere-se a todos os nós da rede 15 /8
O endereço 200.17.28.255
64
Subneting e subnetmask (1)
q “Subnetar”: subdividir um conjunto de endereços IP para criar
redes menores, ou seja, subredes.
q Máscaras de sub-rede (subnetmasking) são usadas para
indicar a subdivisão de redes.
q A máscara de sub-rede diz para um roteador ou software
específico quantos bits dos campos de rede e de host
devem ser considerados para uma determinada rede. § Como vimos na notação CIDR, a “ / ” indica a máscara aplicada.
Subneting e subnetmask (2)
65
• Exemplo: divisão de uma rede /24 em redes menores.
• Os 8 bits de host estão sendo subdivididos para criar subredes
menores: no exemplo usando 3 bits para redes e 5 bits para hosts. • Passa a existir a possibilidade de 8 subredes para serem usadas e a
66
Subneting e subnetmask (3)
Funcionamento e obtenção da máscara:
q
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.
q Em seguida à cada grupo de 8 bits é convertido para seu
67
Subneting e subnetmask (4)
Considere os 8 bits identificadores de host num endereço de uma rede /24.
Se quisermos dividir uma rede /24 em 4 subredes ! vamos utilizar 2 bits para identificar a subrede e 6 bits para identificar os hosts.
Máscara resultante = /26 ou
255.255.255.192Rede (decimal) subnet subnet host host host host host host
255.255.255. 1 1 0 0 0 0 0 0
Binário 11000000 = 192
Resulta na subnetmask ! 255.255.255.192
Esta divisão permite, na prática, utilizar 2 sub-redes de 64 hosts, pois as subredes que
começam com 00 e 11 são reservadas e não podem ser utilizadas ! isso ocorre devido à
identificação dos endereços de rede (all-0s, ou seja todos os endereços de host com bit 0) e endereço de broadcast (all-1s, ou seja todos os endereços de host com bit 1)
68
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
69
Subneting e subnetmask (6)
Se quisermos dividir uma rede
/24
em 16 subredes ! vamos utilizar 4 bits paraidentificar a subrede e 4 bits para identificar os hosts.
Máscara resultante = /28
Isso nos dá a possibilidade de 16 sub-redes de 16 hosts, das quais 14 sub-redes podem ser usadas ! novamente se “perdem” as subredes que começam com 0000 e 1111 (all-zero e all-one).
Cálculo da máscara:
Rede (decimal) subnet subnet subnet subnet host host host host
255.255.255. 1 1 1 1 0 0 0 0
Binário 11110000 = 240
da subrede: bitwise AND
da subrede: bitwise AND
Endereços reservados (1)
q
Ou endereços
privados
(categoria 1)
q
1 REDE /8:
§10.0.0.0 a 10.255.255.255
q
16 REDES /16:
§172.16.0.0 a 172.31.255.255
q
256 REDES /24:
§192.168.0.0 a 192.168.255.255
q
Também chamados de:
§
Endereços não roteáveis ou redes não roteáveis
.
• Usados para redes locais.
Endereços reservados (2)
q
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 – Exemplo: End. BroadCast para rede /24
• n.n.255.255 – Exemplo: End. BroadCast para rede /16
• n.255.255.255 – Exemplo: End. BroadCast para rede /8
§ nnn.nnn.nnn.000:
• Network: todos os bits de host ajustados para 0.
• n.n.n.0 – Exemplo: End. Rede para rede /24
• n.n.0.0 – Exemplo: End. Rede para rede /16
• n.0.0.0 – Exemplo: End. Rede para rede /8
§ 0.0.0.0:
• Endereço de Inicialização (DHCP)
Subdivisão de redes e
roteamento
Regra do prefixo mais longo
75
q
Alocação a partir do espaço de endereços do provedor IP.
q
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/23
76
Endereçamento hierárquico: agregação de rotas (2)
“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 informação sobre rotas de forma eficiente e sumarizada
199.31….. /16
77
Endereçamento hierárquico: rotas mais específicas
• Organização 1 precisou mudar de provedor ou empresa, mas precisa levar os Ips: • Provedor B agora anuncia uma nova rota mais específica para a Organização 1.
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 200.23.20.0/23 Organização 2 . . . . . . 199.31….. /16 Mega-empresa A
“Mande-me qualquer coisa com endereços que
começam com
200.23.16.0/20”
“Mande-me qualquer coisa com endereços que começam com
199.31.0.0/16
ou
78
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 . . . . . . de endereço 200.23.16.0/20 e 200.23.18.0/23 e quiserem rotear para um endereço no bloco200.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
79
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
81
Envio de datagramas
Para
transferir
um datagrama o emissor:
1.
Mapeia o endereço IP de destino em
um endereço físico
(endereço MAC)
2.
Encapsula o datagrama num
frame
da
camada de enlace, e...
3.
Usa a rede local para entregar ao destino
82
Encaminhamento
direto
q
Emissor:
1. extrai a parte da rede do endereço IP de destino, e 2. compara com a parte de rede de seu próprio endereço.
§ Se houver correspondência, significa que o datagrama
pode ser enviado diretamente, na mesma rede.
q
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.
83
Encaminhamento
indireto
q
Destino
não
está na mesma rede física do emissor.
q
Encapsula o datagrama, e o envia ao roteador
mais próximo
(
gateway
de saída)
.
q
O datagrama passa de roteador a roteador, até
chegar a um que possa entrega-lo diretamente.
q
Quando um frame chega no roteador:
§ O software do roteador extrai o datagrama encapsulado,
e seleciona o próximo roteador ao longo do caminho
direto ou indireto?
85
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
q
Datagrama IP
permanece inalterado,
enquanto passa da
origem ao destino.
•
IP destino não muda
86
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 um datagrama IP originando
em A, e endereçado a B:
q A procura endereço de rede de B.
q A descobre que B é da mesma rede
que A (usando o prefixo do endereço).
q 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
87
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
:
q Procura endereço de rede de E.
q E está numa rede diferente
§ A e E não diretamente conectados.
q Tabela de rotas: próximo roteador na
rota para E é 223.1.1.4 .
q Camada de enlace envia datagrama
ao roteador 223.1.1.4 num frame da
camada de enlace.
q Datagrama chega a 223.1.1.4
q 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.1 223.1.2.2 dados
88
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
q Procura endereço de rede de E.
q E fica na mesma rede que a interface
223.1.2.9 do roteador.
§ Roteador e E estão diretamente
conectados.
q Camada de enlace envia datagrama
para 223.1.2.2 dentro de frame de camada de enlace via interface 223.1.2.9
q 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.1 223.1.2.2 dados
NAT: Network Address
Translation
NAT: Network Address Translation (1)
q Propósito: Fazer com que redes locais possam utilizar apenas um endereço IP de entrada e saída.
q Não é preciso alocar uma gama de endereços do ISP.
q Motivação:
§
Esgotamento dos endereços IPv4.
§
Permitir alterar os endereços dos dispositivos na rede
local sem precisar notificar o mundo exterior.
§
Mudar de ISP sem alterar os endereços na rede local.
§
Dispositivos da rede local não são explicitamente
endereçáveis ou visíveis pelo mundo exterior
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 mesmo e único
endereço IP do NAT de origem: 138.76.29.7,
números diferentes de portas de
origem. 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
1: host 10.0.0.1
Porta 3345
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
Implementação: o roteador NAT deve:
q Datagramas que saem:
§ Substituir (endereço IP de origem interno, porta #) para
(endereço IP válido do NAT, nova porta #).
q . . . Hosts remotos respondem usando (endereço IP do NAT,
nova porta #) como endereço de destino.
q 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 #).
q 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.
NAT: Network Address Translation (5)
q
Campo
número de porta
com 16 bits:
§
Aproximadamente 65.000 conexões
simultâneas
com um único endereço IP.
q
NAT é controverso:
§
Roteador: deveria processar só até a
layer
3.
§
Violação do argumento fim-a-fim (P2P).
§
A escassez de endereços: usar
IPv6
.
§
Violação do cálculo do checksum do IP.
95
Interconexão de redes e
roteamento
96
O problema de inter-redes
q
Internet = INTERNETworking
§
Interconexão de redes.
q
Comunicação fim-a-fim sobre redes:
§
Com escala arbitrariamente grande.
• Deve ser possível escalar.
§
Heterogêneas.
• Diversos protocolos de enlace.
§
Organizadas como federação domínios.
97
Elementos de Interconexão
em várias camadas:
q
Repetidores
na camada física (layer1).
q
Switches
na camada de acesso ao meio (layer2).
q
Roteadores
na camada de rede (layer3).
98
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:
q
Nós do grafo são roteadores.
q
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 q Caminho “melhor”: § Tipicamente significacaminho de menor custo.
§ Geralmente caminho MAIS
CURTO.
§ Outras definições são
Grafo: G = (N,E)
N = conjunto de roteadores = { u, v, w, x, y, z }
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.
• c(a,a’) = custo do link (a,a’)
• 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.
Tipos de algoritmos de roteamento
q
Duas
classificações
principais.
§
Quanto ao tipo da informação.
§
Quanto à mudança das rotas.
q
Veremos em seguida...
§
Classificação 1: Informação global ou
descentralizada?
§
Classificação 2: Estático ou dinâmico?
102
Classificação 1: Informação global ou descentralizada ? q
Global: Todos roteadores têm informações
completas
de topologia, distância e custos de
todos os enlaces.
§ Algoritmos de “estado de enlaces” (link state - LS).
q
Descentralizada: Roteador conhece vizinhos
diretos, e
custos
até eles.
§ Processo iterativo de cálculo, e troca de informações com
vizinhos.
103
Classificação 2: Estático ou dinâmico?
q
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. q
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
Algoritmos de roteamento
q
Dois algoritmos principais:
§
Link State e Distance Vector.
q
Link state:
§Informação
Global
.
§Algoritmo de Dijskstra
q
Distance vector:
§Informação
Descentralizada
§Equação de Bellman-Ford.
105Link State
107
Roteamento
Link-state
q
Usa o Algoritmo de Dijkstra para calcular melhor
caminho.
q
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.
q
Calcula caminhos de menor custo de uma origem para
todos os outros nós destinos.
§ Fornece uma tabela de roteamento a partir daquele nó (origem).
108
Notação do algoritmo de Dijkstra (1)
q
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.
q
D
x(v):
menor custo atual
entre a origem
x
e o destino
V
(até a presente iteração do
algoritmo).
109
Notação do algoritmo de Dijkstra (2)
q
p(v):
Predecessor de v à nó anterior (vizinho)
a
v
ao longo do caminho de menor custo
atual
da origem até o destno v.
§ Ex: p(A) Lê-se: “predecessor de A”.
q
N’:
subconjunto de nós à irá formar o
conjunto de menor custo.
§
v pertence a N’ se o caminho de menor custo entre a
Algoritmo de Dijsktra em palavras:
q
Para um determinado nó:
§
Iniciar só com o custo dos valores dos
vizinhos
diretos.
q
Ir anexando cada nó do conjunto, um a um.
§
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).
Como veremos em seguida à
Algoritmo de Dijsktra em palavras:
q
D
x(v) = min{ D
x(v), D
x(w) + c(w,v) }
novo custo de x até v
é:
o velho custo para v
,
ou o menor custo de caminho conhecido para
w (antecessor de v) mais o custo de w a v.
111 A E D C B F 2 2 1 3 1 1 2 5 3 5
de caminhos possíveis:
D
x(v) = min{ D
x(v), D
x(w) + c(w,v) }
D
A(C) = min{ D
A(C),
D
A(D) + c(D,C)
}
D
A(C) = min{
5
,
1 + 3
} = min{
5
,
4
} = 4
112 A E D C B F 2 2 1 3 1 1 2 5 3 5w
v
113
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
114
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” até cada destino)
115
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
Resultado da tabela de repasse em
A
:
116 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.
117
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 */
118
Discussão do Algoritmo de Dijkstra
Complexidade do Algoritmo:
N nós
q
Cada iteração: precisa verificar todos os nós w,
que não estão em N.
q
N*(N+1)/2 comparações à Ordem de (N**2):
Oscilações possíveis:
q 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+e 1
Custos assimétricos tornam o problema bem mais complicado à não serão considerados aqui.
Distance Vector
120
Roteamento Distance Vector (1)
Enquanto o LS usa
informação global
, o DV é
iterativo, assíncrono e distribuído.
q
Iterativo:
§ Continua até que os nós não troquem mais informações.
§ Self-terminating à não há sinal de parada.
q
Assíncrono:
§ Nós não precisam trocar informações simultaneamente!
q
Distribuído:
§ Cada nó se comunica apenas com os seus vizinhos,
Roteamento
Distance Vector
(2)
q
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) }
Roteamento
Distance Vector
(4)
d
x(y)
à menor custo do caminho de x até y
d
x(y) = min
v{c(x,v) + d
v(y) }
Onde min é calculado sobre todos os vizinhos v de x.
q
Se após transitarmos de x para v, tomarmos o caminho
de menor custo de v até y, o custo do caminho será
c(x,v) + d
v(y).
q
Como devemos
começar viajando até algum vizinho v
,
o menor custo de x até y é o mínimo do conjunto dos
Roteamento
Distance Vector
(5)
q
Se após transitarmos de x para v, tomarmos o caminho
de menor custo de v até y, o custo do caminho será
c(x,v) + d
v(y).
q
Como devemos
começar viajando até algum vizinho v
,
o menor custo de x até y é o
mínimo do conjunto dos
c(x,v) + d
v(y),
calculados para todos os vizinhos
v
.
A E D C B F 2 2 1 3 1 1 2 5 3 5
x
v
y
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:
resulta na tabela de roteamento.
Calculando o menor caminho de u até z com a
equação B-F diz que: Vemos que: