Buscar

Infraestrutura de Comunicação (Camada de Rede versão 2)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

MÓDULO 4: Camada de 
Rede 
4.1 Introdução 
● Transporta segmento do host emissor 
para o host receptor 
● Lado emissor: encapsula segmentos 
em datagramas 
● Lado receptor: entrega segmentos 
para a camada de transporte 
● Protocolos da camada de rede em 
todos os hosts e roteadores 
● Roteador examina campos do 
cabeçalho dos datagramas IP que 
passam por ele 
● Principais funções dessa camada: 
− Forwarding (encaminhamento): 
objetivo de encaminhar 
pacotes que chegam ao 
roteador para a saída 
apropriada do roteador 
− Roteador: determina a rota a 
ser tomada por pacotes da 
fonte ao destino (quem faz isso: 
implementamos protocolos de 
roteamento através da 
execução de algoritmos de 
roteamento) 
● Ação e reação recíproca entre 
roteamento e encaminhamento: 
− Valor do destino no cabeçalho 
do pacote que chega 
− Algoritmo de roteamento 
rodando em todos os 
roteadores 
− A partir da execução do 
algoritmo, será montada no 
roteador, uma tabela local de 
encaminhamento (para qual 
saída mandar cada pacote de 
acordo com o valor do destino 
no cabeçalho) 
● Estabelecimento de conexão (virtual): 
− A depender da arquitetura da 
rede, a camada de rede pode 
oferecer uma conexão virtual 
(mesma ideia do TCP de abrir 
conexão antes de mandar 
efetivamente os dados) 
− Função importante em 
algumas arquiteturas (ATM, 
frame relay, X.25), mas não na 
Internet 
− Antes do envio do fluxo de 
datagrama, os dois hosts, com 
auxílio dos roteadores 
intermediários, estabelecem 
uma conexão virtual 
(roteadores participam 
ativamente do processo de 
abertura de conexão) 
− Serviço de conexão: 
o Camada de rede: entre 
dois hosts 
o Camada de transporte: 
entre dois processos 
● Modelo de serviço de rede para 
transporte direcionado dos 
datagramas do emissor para o 
receptor: 
− Exemplos de serviço para 
datagramas individuais: 
entrega garantida ou entrega 
garantida com menos de 40 ms 
de atraso 
OBS.: A Internet não tem entrega garantida 
e nem entrega em tempo determinado 
− Exemplos de serviço para fluxo 
de datagramas: entrega de 
datagrama na ordem correta, 
banda passante mínima 
garantida para o fluxo, 
restrições sobre mudança de 
espaçamento entre pacotes 
sucessivos (jitter ou variação de 
atraso) 
OBS.: Jitter é importante para tráfego de voz. 
Ele não pode ser alto e deve ser tratado 
para evitar pausas nas conversas. 
OBS.: Internet não garante ordem, mas 
outras arquiteturas de rede sim. A internet 
também não garante banda passante 
mínima. Não garantir nada, como no 
modelo usado na Internet, é mais escalável 
do que tentar garantir muitas coisas. 
 
4.2 Redes de Circuitos Virtuais e de 
Datagramas 
● Serviço com e sem conexão da 
camada de rede: 
− Redes de datagrama proveem 
serviço de camada de rede 
sem conexão 
− Redes de circuito virtual (VC) 
proveem serviço de rede 
orientado a conexão 
− Análogo aos serviços da 
camada de transporte, mas: 
o Serviço: host para host 
o Implementação: no 
núcleo da rede 
● Circuitos Virtuais (VC): 
− “Caminho da fonte para o 
destino se comporta de forma 
semelhante ao circuito da linha 
telefônica antiga” 
(performance-wise, ações da 
rede ao longo do caminho 
fonte-destino) 
− Estabelecimento para cada 
chamada antes que os dados 
possam ser enviados. 
Encerramento (teardown) para 
cada chamada depois que os 
dados foram enviados 
− Todos os roteadores no 
caminho fonte-destino mantêm 
“estado” para cada conexão 
que passa por ele 
OBS.: No contexto da Internet, isso não 
escala. Com bilhões de conexões passando 
por determinados enlaces, não existem 
roteadores capazes de manter estado para 
essa quantidade. 
− Enlace: recursos do roteador 
(banda, buffers) são 
compartilhados entre todas as 
conexões, porém, ficam 
pedaços reservados para a 
conexão estabelecida 
(alocados para o circuito 
virtual) 
● Implementação do VC: 
− Um VC consiste em: 
o Caminho da fonte ao 
destino 
o Números de VCs, um 
número para cada 
enlace ao longo do 
caminho 
o Entradas nas tabelas de 
encaminhamento dos 
roteadores ao longo do 
caminho 
− Pacote pertencendo a um VC 
carrega consigo um número de 
VC 
− O número de VC deve ser 
mudado a cada enlace (novo 
número de VC obtido da 
tabela de encaminhamento) 
OBS.: Roteadores mantêm informação de 
estado da conexão 
● Protocolos de sinalização nos VCs: 
− Usados para estabelecer 
(setar), manter ou encerrar 
(teardown) VC 
− Usados em redes ATM, frame-
relay, X.25 
− Não são usados na Internet 
− Passo a passo: 
o Inicia chamada – Chamada 
entrante – Chamada 
estabelecida – Aceita 
chamada – Fluxo de dados 
inicia – Recebe dados 
 
● Redes de datagramas: 
− Não há estabelecimento de 
conexão (chamada na 
camada de rede) 
− Roteadores: não há estado 
sobre conexões fim a fim (não 
existe o conceito de “conexão” 
na camada de rede) 
− Pacotes são encaminhados 
com base no endereço de 
destino (pacotes entre mesmo 
par fonte-destino podem tomar 
caminhos diferentes) 
 
● Tabela de encaminhamento: 
− Temos 4 bilhões ou mais de 
entradas possíveis 
− Para diminuir o tamanho da 
tabela, podemos usar faixas ou 
ranges (endereço de destino X 
até Y, mandar para a interface 
N) 
− Prefixo mais longo 
correspondente 
● Redes de datagramas ou VCs: 
1. Internet (datagramas): 
− Dados trocados entre computadores 
e serviço é elástico (usa a banda 
passante que tem disponível) e não 
há nenhum requisito de tempo estrito 
(não tem garantia de prazo de 
entrega na Internet) 
− End systems inteligentes 
(computadores): possuem todas as 
camadas, podem se adaptar, realizar 
controle, recuperação de erros 
o Desse modo, toda a 
simplicidade da Internet fica 
apenas dentro da rede (se 
quiser complicar, faça nas 
bordas, essa é a abordagem 
mais escalável pois mexer no 
núcleo é caro) 
− Diferentes tipos de enlaces que 
compõem a Internet (características 
diferentes e serviço uniforme difícil) 
o 4G (enlace sem fio), Ethernet 
(roteador), fibra óptica 
2. ATM (VCs): 
− Evolução do telefone, dando 
garantias que a rede telefônica dava 
− Conversação humana 
o Tempo estrito, requisitos de 
confiabilidade 
o Necessário para serviços 
garantidos 
− End systems “burros” (telefones) e 
toda a complexidade foi colocada 
dentro da rede 
OBS.: Colocar complexidade dentro da rede 
é ruim pois qualquer atualização fica 
dificultada (todos terão que atualizar) e 
custo significativo para mexer no núcleo 
4.3 O que há dentro de um 
roteador 
● Funções principais do roteador: 
− Executar algoritmos e 
protocolos de roteamento (RIP, 
OSPF, BGP) 
− Encaminhar datagramas do 
enlace de entrada para o 
enlace de saída 
● Componentes: 
− Portas ou interfaces de entrada 
− Portas ou interfaces de saída 
− Switching fabric (interliga 
entrada e saída, comuta os 
pacotes da entrada para a 
saída correta) 
− Processador de roteamento 
 
● Funções da porta de entrada: 
− Terminação de linha: camada 
física para recepção dos bits 
− Data link processing: camada 
enlace para desencapsular o 
datagrama 
− Fila de entrada (comutação 
descentralizada): 
o Datagrama é colocado 
na fila e a partir daí, 
analisa o que está na fila 
e decide (pela tabela 
de encaminham.) para 
qual interface de saída 
mandar o pacote 
o Ela existe para o caso de 
datagramas chegarem 
mais rápido que a taxa 
de encaminham. da 
switching fabric 
(acomodar mais 
pacotes, mas se a fila 
estourar, os de fora são 
jogados no lixo) 
o O seu objetivo é 
completar o 
processamento na porta 
de entrada na 
“velocidade da linha”. 
Encaminhar o 
datagrama da entrada 
para a saída o mais 
rápido para que a 
switching fabric não se 
torne um gargalo interno 
do roteador 
 
● Tipos de tecnologia de comunicação: 
− Cópia de memória 
− Barramento 
− Crossbar (contato elétrico, só 
liga o caminho que será usado 
através de uma chave 
liga/desliga dos transistors) 
 
● Comutação via memória: 
− Abordagem usada por 
roteadores de primeira 
geração 
− Computadores tradicionais 
(convertidos pararoteadores) 
com comutação sob controle 
direto da CPU 
− Passo a passo: 
o Porta de entrada – 
pacote passa pelo 
barramento – copiado 
para memória – 
barramento – porta de 
saída recebe cópia do 
pacote 
 
− Pacote copiado para a 
memória do sistema 
− Velocidade limitada pela 
banda passante da memória 
(cada datagrama cruza dois 
barramentos) 
− Ponto de gargalo é a switching 
fabric do equipamento 
● Comutação via barramento: 
− É uma evolução interessante 
pois podemos ter barramentos 
com taxa de transferência 
grandes (suficiente para 
roteadores de casa, mas não 
para backbone) 
− O barramento serve para 
escrever algo como um 
cabeçalho que informa para 
qual saída a entrada deve ir 
− Datagrama da memória da 
porta de entrada para a 
memória da porta de saída via 
barramento compartilhado 
OBS.: A saída que identificar que o 
datagrama é para ela, pega o pacote e tira 
o barramento. Nas outras saídas, o pacote 
não entra pois elas não identificam que são 
o seu destino. 
− Bus contention: velocidade de 
comutação limitada pela 
banda passante do 
barramento 
 
● Comutação via rede de interconexão: 
− Interna ao roteador 
− Criada para vencer limitações 
de banda do barramento 
− Mesma ideia aplicada à 
switching fabric 
− Design avançado: 
fragmentação de datagramas 
em células de tamanho fixo, 
comuta células através do 
equipamento 
OBS.: Foi descoberto que se fragmentar e 
endereçar cada célula para a porta de 
saída (ela remonta o pacote), permite que a 
comutação seja mais rápida 
● Portas de saída: 
− Componentes: 
o Fila (buffer) 
o Parte da camada de 
enlace (receber um 
datagrama e encapsular 
num quadro) 
o Terminação de linha 
(escrever os bits no 
enlace de 
comunicação) 
− Buffering (fila) requerido 
quando datagramas chegam 
do switching fabric mais rápido 
que a taxa de transmissão 
− Disciplina de escalonamento 
escolhe datagramas da fila a 
serem transmitidos (prioridades, 
em qual ordem atender as 
portas de entrada) 
 
OBS.: Roteadores podem ter múltiplas 
interfaces de entrada e de saída. Além disso, 
possuem uma fila para cada uma dessas 
interfaces. Porém, para cálculos, 
consideramos que o roteador só tem uma 
fila. Se falarmos de arquitetura, aí sim, 
podemos citar as várias filas. 
● Problemas em relação ao uso da 
switching fabric: 
− Existe buffering (enfileiramento) 
quando a taxa de chegada 
através do comutador excede 
a velocidade da linha de saída 
− O problema é que enfileirar 
causa atraso e se houver 
transbordamento na entrada 
ou na saída, temos perda de 
pacotes (overflow do buffer) 
● Fila da porta de entrada: 
− É obrigatório existir uma fila pois 
se a switching fabric for mais 
lenta que as portas de entrada 
combinadas, teremos 
enfileiramento de pacotes nas 
filas de entrada 
− Head of the Line Blocking 
(HOL): datagrama enfileirado 
na frente da fila previne outros 
de serem encaminhados 
(fenômeno observado na fila 
da porta de entrada) 
 
 
4.4 IP: Internet Protocol 
(Protocolo Internet) 
● Principais elementos da camada de 
rede da Internet: 
− Protocolos de roteamento: 
o Para fazer seleção de 
caminho 
− Tabela de encaminhamento: 
o A execução dos 
protocolos é usada para 
construir essa tabela 
− Protocolo IP: 
o Provê convenção de 
endereçamento 
o Dá formato específico 
para o datagrama 
o Define qual a 
convenção para 
manusear os pacotes 
(como lidar com as 
informações providas no 
cabeçalho) 
− Protocolo ICMP: 
o Informar sobre erros 
Formato do datagrama IP 
● Formato do datagrama IP: 
− Componentes: 
o Número da versão do 
protocolo IP pelo qual o 
datagrama foi gerado 
(tratar de forma 
adequada) 
o Tamanho do cabeçalho 
(bytes) 
o Tamanho total do 
datagrama (bytes) 
o Identificador de 16 bits 
o Flags 
o Offset de fragmentação 
o TTL ou time to live (é 
decrementado a cada 
roteador para limitar o 
número de saltos que o 
datagrama pode fazer, 
detectando erros e 
impedindo que um loop 
seja gerado) 
o Upper layer (para qual 
protocolo da camada 
superior os dados devem 
ser entregues; UDP, TCP) 
o Internet checksum 
(verificar se houve erro 
de bits) 
o Endereço IP fonte (32 
bits) 
o Endereço IP destino (32 
bits) 
o Opções (pode ter ou 
não) 
o Dados (encapsular 
segmento TCP ou UDP) 
OBS.: Como existe o campo de opções e ele 
pode ou não ser preenchido, o datagrama 
pode ter tamanho variável. 
OBS.: Overhead (sobrecarga) tem impacto 
prático para as aplicações em relação à 
taxa máxima disponível no enlace. Na 
camada física, pode ter uma taxa máxima 
de transmissão de bits por segundo 
disponível, mas quando vai usar na camada 
de aplicação, isso não é revertido 
diretamente para a taxa de dados úteis da 
aplicação (isso ocorre por causa do 
cabeçalho). 
Overhead com TCP/IP = 20 bytes do TCP + 20 
bytes do IP + overhead da camada 
aplicação 
● IPv4: 
− Podemos ter tecnologias 
distintas na camada de enlace, 
o que gera uma limitação em 
relação ao tamanho do 
pacote (problema quando 
pacotes maiores não 
conseguem passar por algumas 
tecnologias) 
− A solução dada pelo IPv4 para 
esse problema é que se o 
datagrama for grande demais, 
o roteador IPv4 fragmenta-o de 
forma que consiga passar pelo 
enlace de saída do roteador 
que seria o problemático 
− Os próximos saltos não 
precisam checar se esses 
pacotes “quebrados” fazem 
parte de um maior, eles são 
tratados como independentes 
− No destino (camada de rede), 
verifica que são pedaços, 
remonta o original e aí sim 
manda os dados para a 
camada de transporte 
OBS.: Fragmentação significa processamento 
adicional e introduz atraso adicional (prejuízo 
para aplicação) 
● Fragmentação e remontagem IP: 
− Enlace da rede possui MTU 
(tamanho máximo de 
transferência) 
OBS.: Diferentes enlaces possuem diferentes 
MCUs. 
− Datagrama IP grande é 
dividido dentro da rede 
(remontado somente no 
destino final) 
− Bits do cabeçalho IP usados 
para identificar e ordenar 
fragmentos relacionados 
− Datagrama original tem flag de 
fragmentação =0 e offset=0 
− A quantidade de fragmentos 
necessários é dada por: TETO 
do (tamanho total (original) – 
cabeçalho (original) ) / ( MTU 
(enlace saída) – cabeçalho 
(fragmento) ) 
OBS.: O tamanho do cabeçalho do 
datagrama original e do fragmento são 
sempre iguais. 
OBS.: Se o cabeçalho não tiver o campo 
opções, ele terá 20 bytes 
OBS.: O resultado dessa equação, se for 
decimal, o tamanho do fragmento deve ser 
o teto desse valor (arredondar para o inteiro 
superior). 
OBS.: Essa equação enfatiza que não 
fragmentamos todo o datagrama (com 
cabeçalho e dados), mas sim, somente a 
sua parte de dados 
− Componentes dos datagramas 
fragmentados: 
o Length: igual ao 
tamanho máximo (MTU), 
ou seja, o tamanho total 
do datagrama (dados + 
cabeçalho) 
o ID: igual à do 
datagrama original 
o Fragflag: flag de 
fragmentação, 1 sinaliza 
que é fragmento e 0 
pode ser duas coisas, 
dependendo do offset 
o Offset: posição que os 
dados que o fragmento 
está carregando são 
colados no datagrama 
original (não é a posição 
absoluta, são blocos de 
8 bytes) 
OBS.: Informações dos datagramas 
quebrados: 
 
 
Offsets: 
Primeiro datagrama = 0 
Segundo datagrama = quantidade de bytes 
do primeiro (length - cabeçalho)/8 
 
ID: 
Todos os datagramas = igual ao original 
 
FragFlag: 
Primeiro até penúltimo datagrama = 1 
Último datagrama = 0 
 
Tamanho dos datagramas: 
Depende da quantidade de fragmentos 
Primeiro até penúltimo datagrama = length 
igual a MTU dado 
Último datagrama = length igual ao que falta 
para completar a length do datagrama 
original 
 
*A parte de dados é igual a length – 
tamanho do cabeçalho 
 
 
 
− O último fragmento tem 
FragFlag = 0 e diferenciamos 
ele do original pelo seu offset 
(original tem FragFlag = 0 e 
Offset = 0; se o offset for 
diferente de zero, é o último 
fragmento) 
− Somente a flag de 
fragmentação não permite 
saber se um datagrama é 
fragmento, pois também 
depende do offset 
− O destino não pode mandaras 
infos para cima até receber 
todos os fragmentos do 
datagrama para remonta-lo. 
Se houver perda, o roteador 
não faz nada a respeito, quem 
deve se preocupar com isso é 
a fonte (TCP retransmite e UDP 
não) 
 
Endereçamento IPv4 
● Hierarquia de endereçamento IP: 
− Por questões de eficiência, o 
endereço IP é definido por 
duas partes: 
o Prefixo: é responsável por 
determinar em qual rede 
o computador está 
acoplado 
o Sufixo: é responsável por 
identificar em 
computador acoplado 
em cada rede 
● Endereço IP: identificador de 32 bits 
para a interface do host, roteador 
● Interface: conexão entre 
host/roteador e enlace físico 
− Roteadores geralmente 
possuem múltiplas interfaces 
− Host tipicamente possui uma 
única interface 
− Um endereço IP por interface 
OBS.: Notação de endereços IP: ponto-
decimal ou binárias (números de 0 a 255) 
● Subredes: 
− Endereço IP: 
o Parte da subrede (bits de 
ordem mais elevada) 
o Parte do host (bits de 
ordem mais baixa) 
− O que é uma subrede: 
o Interfaces de dispositivos 
com mesma parte de 
subrede do endereço IP 
o Dispositivos podem 
fisicamente alcançar os 
outros sem ajuda de um 
roteador 
− Para determinar uma subrede, 
retiramos cada interface do 
seu host ou roteador (cortar 
enlace), criando ilhas de rede 
isoladas. Cada ilha é uma 
subrede. 
− Máscara de rede: quantos bits 
são usados para identificar a 
subrede 
 
 
OBS.: Na figura anterior, a rede é formada 
por 3 subredes e a máscara de rede é /24. 
OBS.: Todos os endereços de uma ilha 
devem corresponder a uma mesma subrede. 
OBS.: Um enlace sozinho também pode ser 
uma ilha, ou seja, uma subrede. 
● Classes usadas antigamente para 
endereçamento IP: 
− A = 1 bit fixo + 7 bits (identificar 
rede ou subrede) + 24 bits 
(identificar interface do host) 
− B = 2 bits fixos + 14 bits (rede) + 
16 bits (host) 
− C = 3 bits fixos + 21 bits (rede) + 
8 bits (host) 
− D = 4 bits fixos + 28 bits 
(endereço multicast) 
− E = 4 bits fixos + 28 bits 
(reservados para uso futuro) 
− O problema dessa organização 
era o desperdício de 
endereços IP. Com isso, os 
endereços estavam acabando 
OBS.: Para organizações com até 2000 hosts, 
é necessário alocar um endereço de rede 
classe B, levando ao desperdício de mais de 
63 mil endereços que não serão usados 
(classe C permite até 2^8 – 2 =254 hosts ou 
interfaces e a B permite até 2^16 – 2 = 65534) 
● CIDR: Classless InterDomain Routing 
− A porção no endereço que 
representa a subrede tem 
tamanho arbitrário de acordo 
com a necessidade 
− Formato do endereço: 
a.b.c.d/x, onde x é o número 
de bits na porção do endereço 
que representa a subrede 
 
OBS.: Nesse exemplo, pode endereçar 2^9 – 
2 = 510 hosts ou interfaces 
− Com ela, o desperdício não é 
tão grande quanto a anterior 
− Os dois extremos são sempre 
reservados e não podemos 
alocar: a.b.c.0/x (primeiro 
endereço) e a.b.c.255 (último 
endereço). O primeiro é usado 
para fins de roteamento e o 
último é o endereço de 
broadcast da subrede. 
Portanto, sobram 254 
endereços para serem 
alocados, mas existem 256 
endereços nessa faixa (0 a 255). 
● Representação alternativa na forma 
decimal com pontos (máscara): 
 
 
● Como hosts obtêm endereço IP? 
− Colocado em um arquivo de 
configuração (método usado 
antigamente, configurar 
computadores um a um) 
− DHCP: Dynamic Host 
Configuration Protocol 
o Permite que dispositivo 
obtenha dinamicamente 
um endereço através de 
um servidor DHCP (na 
rede residencial é o 
roteador) 
o “Plug-and-Play” 
● Como a rede obtém a parte de 
subrede do endereço IP? 
− Pega porção alocada do 
espaço de endereço do seu ISP 
 
● Endereçamento hierárquico: 
agregação de rotas 
− Endereçamento hierárquico 
permite uma eficiente 
divulgação de informações de 
roteamento 
− Quando temos roteadores 
executando protocolos de 
roteamento, eles precisam 
informar para os roteadores na 
internet, quem eles 
alcançam/enxergam 
− Configura o roteador 
estaticamente ou 
dinamicamente usando 
protocolo de roteamento para 
informar a faixa que ele 
enxerga 
− Compartilham isso com seus 
vizinhos e assim aprendem 
quem enxerga quem e como 
alcançar determinado 
endereços 
− Flight-by-night: envie tudo com 
endereço a partir de x (menor 
endereço das organizações) 
− ISPs-R-Us: envie tudo a partir de 
beggining x ou de y (prefixo 
mais longo que bate com 
endereço IP de destino) 
 
OBS.: Quando colocamos como endereço IP 
de destino, o endereço de broadcast da 
rede, quem recebe o pacote é todo mundo 
que está naquela rede 
● Como ISP consegue um bloco de 
endereços? 
− ICANN: Internet Corporation for 
assigned names and numbers 
o Aloca endereços 
o Gerencia DNS 
o Atribui nomes de 
domínio e resolve 
disputas 
NAT: Network Address Translation 
● Benefícios: Melhoria da segurança da 
rede, esgotamento de 
endereçamento IP, IPs não roteáveis 
(privados) para a Internet 
● Sem o uso do NAT, pacotes enviados 
por redes privadas (rede local, 
residencial), não pode se comunicar 
com o mundo externo (resto da 
Internet) 
● O NAT é uma tradução de endereços 
da rede. O endereço privado que 
não é roteável, não vai para o mundo 
externo, mas o pacote sim. Além disso, 
recebe a resposta, que chega no 
computador correto e no processo 
correto 
● Você enxerga o IP do seu 
computador como X, mas o mundo 
de fora vê somente o número de IP 
que o provedor de acesso à internet 
alocou para o seu roteador Y 
● A comunicação é possível pois todos 
os datagramas deixando a rede local 
possuem o mesmo endereço IP NAT 
de origem (Y), mas números de porta 
diferentes 
● Datagramas com origem ou destino 
na rede local possuem endereço X 
para fonte ou destino, como 
usualmente 
● Motivação do NAT: 
− Rede local usa somente um 
endereço IP quando há 
necessidade de falar com o 
mundo externo 
− Range de endereços não são 
necessários do ISP (apenas um 
endereço IP para todos os 
dispositivos) 
− Pode mudar endereço de 
dispositivos na rede local sem 
necessidade de notificar o 
mundo externo 
− Pode mudar o ISP sem mudar o 
endereço dos dispositivos na 
rede local 
− Dispositivos dentro da rede 
local não são explicitamente 
endereçáveis, ou seja, não são 
visíveis para o mundo externo 
(mais segurança) 
● Passo a passo: 
− Host envia datagrama para 
mundo externo 
− Roteador recebe pacote e 
identifica que é para o exterior 
− Roteador coloca na tabela, de 
um lado, o endereço IP e a 
porta de quem gerou esse 
pacote (X), e do outro, o IP de 
saída para a internet (Y). 
Também abre uma porta 
aleatória que não está sendo 
utilizada 
− Reescreve o cabeçalho do 
datagrama 
− Resposta chega com endereço 
que foi mudado 
− Roteador olha na tabela NAT se 
para o IP e porta de destino 
existe nela um mapeamento 
− Reescreve o cabeçalho do 
datagrama IP para voltar às 
configurações iniciais e o 
computador que mandou o 
datagrama recebe sua 
resposta 
OBS.: Essa abordagem permite maior 
segurança pois, se não há mapeamento na 
tabela, não tem como alguém no mundo 
externo invadir um computador da rede 
interna (roteador descarta pacote não 
mapeado) 
 
OBS.: O roteador deve ter um bom 
processador para não se tornar um gargalo 
de processamento (trocar o cabeçalho para 
todo pacote é um processamento adicional) 
● Campo “número de porta” de 16 bits: 
− 2^16 = mais de 60 mil conexões 
simultâneas com um único 
endereço IP externo (usa 
número de porta para criar 
mapeamento na tabela) 
● NAT é controverso: 
− Em tese, os roteadores devem 
processar somente até a 
camada 3 (rede), mas no NAT 
eles fazem uso do número de 
porta, ou seja, acessam a 
camada 4 (transporte) 
− Viola argumento “fim-a-fim” por 
alterar o cabeçalho do 
datagrama. Ele devia se 
manter original, exceto por um 
campo (TTL, que decrementa a 
cada salto) 
− Esgotamento de endereços 
com o IPv4 devia ser resolvido 
pelo IPv6 
● Port forwarding: 
− Única forma do mundo externo 
contatar um computador da 
rede localsem que seja uma 
resposta 
− Instruir o roteador para, ao 
receber pacotes vindos da 
Internet para uma determinada 
porta, ele encaminhar para 
determinado computador e 
porta, ambos na sua rede local 
− Com isso, podemos colocar um 
servidor em casa, basta que, 
quem queira contactá-lo, saiba 
seu endereço IP (alocado pelo 
provedor) e qual a porta que 
está configurada para o 
roteador fazer o 
encaminhamento 
 
 
 
ICMP: Internet Control Message 
Protocol 
● Usado por hosts e roteadores para 
comunicar informações/ 
acontecimentos a nível de rede 
− Reportagem de erro: host, 
rede, porta, protocolos 
inalcançáveis 
− Echo request/reply (usado pelo 
ping) 
● Está na camada de rede ligeiramente 
acima do IP 
− Mensagens ICMP são 
transportadas dentro de 
datagramas IP, por isso, estão 
acima, mas ainda dentro da 
camada de rede 
● Mensagem ICMP: 
− Possui tipo, código e carregam 
os 8 primeiros bytes do 
datagrama IP que causou o 
erro (pois a mensagem é 
retornada para a fonte, de 
onde saiu o pacote com 
problema) 
OBS.: Se o TTL foi expirado, manda uma 
mensagem ICMP 
● Traceroute: 
− Fonte envia uma série de 
segmentos UDP para o destino 
o O primeiro possui TTL=1, o 
segundo, TTL=2 ... 
o Roteador que não 
responde ao Traceroute, 
provavelmente foi 
configurado para não 
responder mensagem 
usando o protocolo 
ICMP 
o Manda um segmento 
UDP para uma porta de 
destino com número 
improvável de ser usado, 
e na camada de rede, 
mexe no TTL para que 
possa controlar até que 
salto o pacote vai (obter 
resposta e fazer 
medição do tempo) 
− Quando enésimo datagrama 
chega ao enésimo roteador: 
o Roteador descarta 
datagrama 
o Envia para a fonte uma 
mensagem ICMP 
o Mensagem inclui nome 
do roteador e endereço 
o Quando a mensagem 
ICMP chega, fonte 
calcula o RTT 
o Traceroute faz isso 3 
vezes (com 3 pacotes p/ 
cada etapa) 
− Critério de parada: 
o Segmento UDP 
eventualmente chegará 
ao host de destino 
o O destino retorna uma 
mensagem ICMP “host 
unreachable” 
o Quando a fonte recebe 
esta mensagem, para 
(sabe que chegou ao 
destino) 
OBS.: Asteriscos significa uma mensagem de 
TTL expirado (vai até um número de saltos 
default). 
IPv6: Versão 6 do Protocolo IP 
● Motivação inicial: espaço de 
endereçamento de 32 bits (IPv4) 
estará completamente alocado em 
pouco tempo 
● Motivação adicional (melhorias em 
relação ao IPv4): 
− Formato do cabeçalho ajuda a 
fazer 
processamento/encaminhame
nto mais rápido 
− Mudanças no cabeçalho para 
facilitar QoS (qualidade de 
serviço: filas de entrada com 
prioridade nos roteadores ao 
invés de somente uma fila 
normal) 
OBS.: A fila prioritária poderia ser oferecida 
pelos provedores de Internet a seus clientes 
como uma forma de melhoria. Porém, o 
problema seria se, com o tempo, todos 
pagarem por um serviço melhor para usar 
essas filas prioritárias e tumultua-las, deixando 
as filas normais mais livres. 
● Formato do datagrama IPv6: 
− Cabeçalho de tamanho fixo 
(40 bytes) 
− Fragmentação não é permitida 
(dá trabalho ao roteador) 
● Cabeçalho IPv6: 
− Versão: permite que o outro 
lado saiba imediatamente se 
ele suporta ou não a versão do 
protocolo (pode carregar 
módulos/código necessário 
para tratar aquela versão) 
− Prioridade: identifica prioridade 
dos datagramas (abre as 
portas para provedores de 
acesso à Internet ofereçam 
novos serviços aos seus clientes) 
− Flow label: identifica 
datagramas no mesmo fluxo 
(pode servir para aplicar 
prioridade) 
− Payload len: tamanho da parte 
de dados 
− Next header: identifica 
protocolo da camada superior 
ao qual dados vão ser 
entregues (TCP, UDP) 
− Hop limit: TTL, número máximo 
de saltos que um datagrama 
IPv6 pode percorrer na rede 
antes de ser descartado 
− Endereço de fonte/destino: 128 
bits cada (3,4.10^38 endereços 
únicos) 
OBS.: Roteadores e sistemas operacionais 
devem ser modificados para dar apoio ao 
protocolo IPv6. 
● Outras mudanças em relação ao IPv4: 
− O campo checksum foi 
inteiramente removido para 
reduzir o tempo de 
processamento em cada salto 
(IPv6 quer encaminhar pacotes 
o mais rápido possível) 
OBS.: Antigamente, a taxa de transmissão 
era baixa e os enlaces não tinham 
imunidade adequada a interferências 
eletromagnéticas e os equipamentos usados 
estavam propensos a eventuais falhas de 
memória que podiam corromper o pacote. 
Por isso, o campo Checksum era necessário, 
ele detectava erros de transmissão e troca 
de bits. Mas, hoje, com a evolução das 
tecnologias de cabeamento (fibra óptica, 
cabos mais resistentes a ruídos), a 
probabilidade de haver troca de bits é muito 
baixa. E também, a confiabilidade dos 
equipamentos também aumentou muito. No 
entanto, se mesmo assim, acontecer um erro 
de bits, outras camadas o resolvem (na 
camada de transporte, TCP e UDP possuem 
checksum). 
− Options: informação vem fora 
do cabeçalho (indicado pelo 
campo “next header”), o que 
mantém o tamanho do 
cabeçalho fixo (está dentro da 
parte de dados) 
− ICMPv6: nova versão do ICMP 
o Tipos adicionais de 
mensagens como 
“pacote muito grande” 
(precisaria ser 
fragmentado, mas como 
isso não existe no IPv6, o 
roteador descarta e a 
fonte se vira para 
mandar o pacote de 
tamanho certo) 
o Funções de 
gerenciamento de 
grupos multicast 
● Notação do endereçamento IPv6: 
− Cada IP é formado por 8 
grupos com 4 dígitos 
hexadecimais e os grupos são 
separados por “:” 
− Exemplo: 
2001:0db8:85a3:08d3:1319:8a2e
:0370:7334 
− 4 zeros seguidos em um grupo 
podem ser omitidos e 
substituídos por “::” ou um único 
zero 
− Zero à esquerda pode ser 
retirado 
− Se grupos de zero são 
consecutivos, podemos 
simplesmente omitir todos eles 
com “::” 
− As simplificações não podem 
gerar ambiguidades 
 
OBS.: Pode omitir quantos grupos de zero 
quiser, se forem consecutivos, pois na leitura, 
será percebido quantos grupos estão 
faltando para 8 e vai ser completado 
− Em uma URL: os colchetes 
servem para separar o número 
da porta, que também pode 
ser informado 
 
− A parte de rede (atribuir 
endereços) segue notação 
CIDR (mesma coisa do IPv4) 
 
● Transição do IPv4 para o IPv6: 
− Soluções temporárias até que 
toda a Internet migre para IPv6 
no futuro 
− Para que um novo protocolo 
seja suportado, às vezes temos 
que mudar o hardware 
− Todos os roteadores não 
podem ser atualizados 
simultaneamente (pessoas 
atualizam aos poucos) 
− IPv4 e IPv6 vão coexistir 
(roteadores com IPv6 
entendem IPv4, mas ao 
contrário não é verdade) 
− Técnicas para fazer transição: 
o Pilha dupla: 
equipamentos 
suportarem IPv4 e IPv6 
o Tunelamento: transportar 
datagramas IPv6 dentro 
da parte de dados dos 
datagramas IPv4, entre 
roteadores IPv4 
 
OBS.: Sempre é mais fácil atualizar a Internet 
das bordas para o núcleo, então faz sentido 
pensar num cenário em que os roteadores 
das bordas falam IPv6 e os do núcleo, 
somente IPv4. 
OBS.: Passo a passo tunelamento: 
− Datagrama X (IPv6) vai de A para B 
− B percebe que é a ponta de um túnel 
e os roteadores que estão dentro dele 
não falam IPv6 (se mandar nesse 
formato, o próximo roteador não vai 
saber processar). Então, B encapsula X 
(IPv6) dentro de outro datagrama Y 
(IPv4) e encaminha para C 
− C encaminha para D e D para E 
− E está na outra extremidade do túnel, 
então desencapsula a informação 
que está na parte de dados (extrair 
datagrama IPv6). Retransforma Y 
(IPv4) em X (IPv6) e encaminha para F 
OBS.: Como o IP aumentou de 20 para 40 
bytes, aumenta a sobrecarga, o que 
significa que comparando a velocidade de 
IPv4 e IPv6, a do 4 seria maior. Por isso, 
aumentar a banda passante também é 
importante quando migrarmos 
completamente para IPv6

Outros materiais