Você está na página 1de 62

A camada de rede e o protocolo IP

PROF. PAULO SENA


A Camada de redes
A camada de rede fornece serviços para realizar trocas de fragmentos
individuais de dados na rede entre dispositivos finais identificados. Para realizar
este transporte de uma extremidade à outra, a camada de redes utiliza quatro
processos básicos:
◦ Endereçamento;
◦ Encapsulamento;
◦ Repasse/ Roteamento;
◦ Decapsulamento ;
H
H

Inter-rede
H

H Intra-
Rede 1 Intra-
G
G
Rede 2

Rede 3
G

H
Intra-
Rede 4
Intra- H
G Rede 5

H: host
G: gateway
H
H
A Camada de redes
Endereçamento:
◦ Primeiro, a camada de rede precisa fornecer o mecanismo de endereçamento
destes dispositivos finais. Se fragmentos individuais de dados precisam ser
direcionados a um dispositivo final, este dispositivo precisa ter um endereço
único. Em uma rede IPv4, quando este endereço é atribuído a um dispositivo,
o dispositivo passa a ser chamado de host.
O endereço IP
Os serviços da camada de rede implementados pelo conjunto des protocolos TCP/IP
constituem o Internet Protocol (IP). Atualmente, a versão 4 do IP (IPv4) é a versão mais
utilizada.

O Internet Protocol foi elaborado como um protocolo com baixo overhead. Ele somente
fornece as funções necessárias para enviar um pacote de uma origem a um destino por
um sistema de redes. O protocolo não foi elaborado para rastrear e gerenciar o fluxo dos
pacotes. Estas funções são realizadas por outros protocolos de outras camadas.
Características básicas do IP
Sem conexão - Nenhuma conexão é estabelecida antes do envio dos pacotes de
dados.

Melhor Esforço (não confiável) - Nenhum cabeçalho é usado para garantir a


entrega dos pacotes.

Independente de Meios Físicos - Opera independentemente do meio que


transporta os dados.
O formato do datagrama IP
Um pacote de camada de rede na Arquitetura TCP/IP é denominado de
datagrama. O protocolo IPv4 define muitos campos diferentes no cabeçalho do
datagrama. Estes campos contêm valores binários que os serviços IPv4 usam
como referência ao enviarem pacotes através da rede.
Formato do datagrama32 IP
versão do protocolo IP bits tamanho total
do datagrama
tamanho do header ver head. type of length (bytes)
(bytes) len service
classe de serviço fragment para
16-bit identifier flgs
offset fragmentação/
número máximo time to proto- Internet
colo remontagem
de saltos live checksum
(decrementado em
32 bit endereço IP de origem
cada roteador)
32 bit endereço IP de destino
protocolo da camada
superior com dados no Opções (se houver) Ex.: marca de
datagrama tempo,registro de
data rota lista de
Tamanho do cabeçalho TCP? (tamanho variável, roteadores a
• 20 bytes do TCP tipicamente um segmento visitar.
• 20 bytes do IP TCP ou UDP)
• = 40 bytes + cabeçalho da
camada de aplicação

4 - 11
Fragmentação do datagrama IP
Nem todos os protocolos de camada de enlace podem transportar pacotes do
mesmo tamanho. Alguns podem transportar datagramas grandes, ao passo que
outros apenas pequenos. Por exemplo, quadros Ethernet não podem conter
mais do que 1500 bytes de dados, enquanto quadros para alguns enlaces de
longa distancia não podem conter mais do que 576 bytes. A quantidade máxima
de dados que um quadro de camada de enlace pode carregar é denominada
unidade máxima de transmissão (MTU).
Fragmentação do datagrama IP
Quando um enlace de saída tem uma MTU que é menor do que o comprimento
do datagrama IP, a solução é fragmentar os dados do datagrama IP em dois ou
mais datagramas IP menores e, então, enviar esses datagramas menores pelo
enlace de saída.
Cada um desses datagramas menores é denominado um fragmento.
Fragmentos precisam ser reconstruídos antes que cheguem à camada de
transporte no destino, os projetistas do Ipv4 decidiram alocar a tarefa de
reconstrução de datagramas aos sistemas finais, e não aos roteadores(neles o
protocolo ficaria muito complicado).
Fragmentação do datagrama IP
Quando um hospedeiro destinatário recebe uma série de datagramas da mesma
fonte, ele precisa determinar se alguns desses datagramas são fragmentos de
um datagrama original de maior tamanho. Se sim, o hospedeiro deverá
determinar quando recebeu o ultimo fragmento (pois o IP não é confiável) e
como os fragmentos recebidos devem ser reconstruídos para voltar à forma
do datagrama original.
Para permitir que o hospedeiro destinatário realize essas tarefas,
os projetistas do IP criaram campos de identificação, flag e deslocamento de
fragmentação no datagrama IP.
O endereçamento IPv4
Um hospedeiro normalmente tem apenas um único enlace com a rede. Quando
o IP no hospedeiro quer enviar um datagrama, ele o faz por meio desse enlace.
A fronteira entre hospedeiro e o enlace físico é denominada interface.
Um endereço IP está tecnicamente associado com uma interface, e não com
um hospedeiro ou um roteador que contém aquela interface.

Cada endereço IP tem comprimento de 32 bits (4 bytes). Esses endereços são


escritos em notação decimal separada por pontos, na qual cada byte do
endereço é escrito em sua forma decimal e separado dos outros bytes do
endereço por um ponto.
O endereçamento IPv4
Uma máscara de sub-rede, também conhecida como subnet mask ou netmask,
é um número de 32 bits usado em um IP para separar a parte correspondente à
rede pública, à sub-rede e aos hosts.
Endereços reservados
– Endereço de rede: identifica a própria rede e não uma interface de rede
específica, representado por todos os bits de host id com o valor zero.
Exemplos de endereços:
• 19.0.0.0 - identifica a rede 19 (endereço classe A)
• 139.40.0.0 - identifica a rede 139.40 (endereço classe B)
• 199.27.90.0 - identifica a rede 199.27.90 (endereço classe C)

– Endereço de broadcast: identifica todas as máquinas na rede específica,


representado por todos os bits de host id com o valor um.
Exemplos de endereços:
• 19.255.255.255 - endereço de broadcast na rede 19.0.0.0
• 139.40.255.255 - endereço de broadcast na rede 139.40.0.0
• 199.27.90.255 - endereço de broadcast na rede 199.27.90.0
Portanto em cada rede A, B ou C, são reservados o primeiro endereço e o
último, sendo que eles não podem, portanto, serem usados por interfaces de rede.
Endereços reservados
127.xxx.xxx.xxx (localhost): Nenhum endereço IP pode começar com o número
127, pois este número é reservado para testes e para a interface de loopback. Se
por exemplo você tiver um servidor de SMTP e configurar seu programa de e-
mail para usar o servidor 127.0.0.1, ele acabará usando o servidor instalado na
sua própria máquina.
O mesmo acontece ao tentar acessar o endereço 127.0.0.1 no navegador: você
vai cair em um servidor web habilitado na sua máquina. Além de testes em
geral, a interface de loopback é usada para comunicação entre diversos
programas, sobretudo no Linux e outros sistemas Unix.
O endereçamento IPv4
Exemplo: endereço IP: 193.32.216.9 é igual a
11000001 00100000 11011000 00001001.

Endereço IPv4 se esgotando! Solução? IPv6!

No começo todos queriam classes A.


◦ Status
◦ Endereços ociosos
Cabeçalho IPv6
O protocolo IPv6
• Motivação inicial: o espaço de endereços de 32 bits está próximo de ser
completamente alocado.
• Motivação adicional:
• Melhorar o formato do header para permitir maior velocidade de
processamento e de transmissão
• Mudanças no header para incorporar mecanismos de controle de QOS
• Formato do datagrama IPV:
• Cabeçalho fixo de 40 bytes
• Não é permitida fragmentação

4 - 28
Cabeçalho IPv6
O protocolo IPv6
Priority: permitir definir prioridades diferenciadas para vários fluxos de
informação
Flow label: identifica datagramas do mesmo “fluxo.” (conceito de “fluxo” não
é bem definido).
Next header: identifica o protocolo da camada superior ou um header auxiliar

4 - 29
Outras mudanças do IPv4
O protocolo IPv6
• Checksum: removido inteiramente para reduzir o tempo de
processamento em cada salto
• Options: são permitidas, mas são alocadas em cabeçalhos suplementares,
indicados pelo campo “Next header”
• ICMPv6: nova versão de ICMP
• Tipos de mensagens adicionais , ex.: “Packet Too Big”
• Funções de gerenciamento de grupos multicast

• Nem todos os roteadores poderão ser atualizados simultaneamente


• Não haverá um dia da vacinação
• Como a rede irá operar com roteadores mistos de IPV4 e IPV6?
• Tunelamento: IPv6 transportado dentro de pacotes IPv4 entre
roteadores IPv4

4 - 30
Tunelamento
Tunelamento

4 - 31
Endereçamento IP: CIDR
Sub redes
• CIDR: Classless InterDomain Routing
• A porção de endereço de rede tem tamanho arbitrário
• Formato do endereço: a.B.C.D/x, em que x é o número de bits na parte
de rede do endereço

parte de parte de
rede hospedeiro
11001000 00010111 00010000 00000000

200.23.16.0/23

4 - 32
Divisão de sub-redes
O uso de sub-rede permite criar múltiplas redes lógicas a partir de um único intervalo
de endereços. Visto que usamos um roteador para conectar essas redes, cada interface
no roteador deve ter uma identificação de rede distinta.

Criamos as sub-redes usando um ou mais bits de host como bits de rede. Isso é feito
extendendo-se a máscara para pegar emprestados alguns dos bits da porção de host do
endereço a fim de criar bits de rede adicionais. Quanto mais bits de host forem usados,
mais sub-redes poderão ser definidas. Para cada bit emprestado, dobramos o número
de sub-redes disponíveis.
ICMP: Internet Control Message Protocol

Protocolo ICMP
• Usado por computadores e Tipo Código descrição
roteadores para troca de 0 0 echo reply (ping)
informação de controle da 3 0 dest. network unreachable
camada de rede 3 1 dest host unreachable
• Error reporting: hospedeiro, 3 2 dest protocol unreachable
rede, porta ou protocolo 3 3 dest port unreachable
• Echo request/reply (usado 3 6 dest network unknown
pela aplicação ping) 3 7 dest host unknown
4 0 source quench (congestion
• Transporte de mensagens:
control - not used)
• Mensagens ICMP
8 0 echo request (ping)
transportadas em datagramas
Ip 9 0 route advertisement
10 0 router discovery
• ICMP message: tipo, código,
mais primeiros 8 bytes do 11 0 TTL expired
datagrama IP que causou o erro 12 0 bad IP header

4 - 36
Outras mudanças do IPv4
Protocolos de roteamento
Normalmente um hospedeiro está ligado diretamente a um roteador, o
roteador default;
O problema de rotear um pacote do hospedeiro de origem até o hospedeiro
destinatário se reduz, claramente, ao problema de rotear o pacote da fonte
ao roteador de destino;
Portanto, dado um conjunto de roteadores conectados por enlaces, um
algoritmo de roteamento descobre um “bom” caminho entre o roteador
original e o roteador de destino.

4 - 37
Outras mudanças do IPv4
Protocolos de roteamento
Um “bom” caminho é aquele que tem o menor custo,
entretanto, teremos inúmeras questões do mundo real que
influenciarão na decisão do “bom”

4 - 38
Classificação dos algoritmos de roteamento

Classificação dos algoritmos de roteamento


Global:
• Todos os roteadores têm informações completas da topologia e do custos dos
enlaces
• Algoritmos “link state”
• Descentralizada:
• Roteadores só conhecem informações sobre seus vizinhos e os enlaces para eles
• Processo de computação interativo, troca de informações com os vizinhos
•Algoritmos “distance vector”
Estático ou dinâmico?
Estático:
• As rotas mudam lentamente ao longo do tempo
Dinâmico:
• As rotas mudam mais rapidamente
• Podem responder a mudanças no custo dos enlaces
• Atualizações periódicas
4 - 39
Algoritmo de roteamento link-state
Algoritmo estado de enlace
•Algoritmo de Dijkstra
Topologia de rede e custo dos enlaces são conhecidos por todos os nós
• Implementado via “link state broadcast”
• Todos os nós têm a mesma informação
• Computa caminhos de menor custo de um nó (fonte) para todos os outros nós
• Fornece uma tabela de roteamento para aquele nó
• Convergência: após k iterações, conhece o caminho de menor custo para k
destinos
Notação:
• C(i,j): custo do enlace do nó i ao nó j. Custo é infinito se não houver ligação
entre i e j
• D(v): valor atual do custo do caminho da fonte ao destino V
• P(v): nó predecessor ao longo do caminho da fonte ao nó v, isto é, antes do v
• N’: conjunto de nós cujo caminho de menor custo é definitivamente
conhecido

4 - 40
Algoritmo de Dijsktra
Algoritmo estado de enlace
1 Inicialização:
2 N’ = {u}
3 para todos os nós v
4 se v é adjacente a u
5 então D(v) = c(u,v)
6 senão D(v) = 
7
8 Loop
9 ache w não em N’ tal que D(w) é um mínimo
10 acrescente w a N’
11 atualize D(v) para todo v adjacente a w e não em N’:
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* novo custo para v é ou o custo anterior para v ou o menor
14 custo de caminho conhecido para w mais o custo de w a v */
15 até que todos os nós estejam em N’

4 - 41
Algoritmo estado de enlace
Tomemos como exemplo a
rede da figura abaixo:
◦ O algoritmo consiste em uma
etapa de inicialização seguida
de um loop;
◦ O número de vezes que o
loop é rodado é igual ao
número de nós na rede;
Algoritmo estado de enlace
Vamos detalhar alguns dos primeiros estágios:
◦ Inicialização: os caminhos de menor custo correntemente conhecidos de u até
os vizinhos diretamente ligados a ele (v, w e x) são inicializados para 2, 1 e 5,
respectivamente. Os custos até y e z são estabelecidos como infinito;

◦ Na 1ª iteração: examinamos os nós que ainda não foram adicionados ao


conjunto N' e descobrimos o nó de menor custo ao final da interação
anterior (nó x), então, x é adicionado ao conjunto N'.
Algoritmo estado de enlace
A linha 12 do algoritmo é então rodada para atualizar D(v) para
todos os nós v, produzindo o seguinte resultado:

O custo do caminho até v não muda. O custo do caminho até w


através do nó x é 4, portanto, a tabela é atualizada. De maneira
semelhante, o custo até y (através de x) é computado como 2.
Algoritmo estado de enlace
Segunda iteração: verificamos que os nós v e y são os que têm
os caminhos de menor custo (2); decidimos o empate
arbitrariamente e adicionamos o y ao conjunto N';
O custo dos nós remanescentes que ainda não estão em N'
(isto é, nós v, w e z) são atualizados pela linha 12 do algoritmo
Ls, produzinho o seguinte resultado:
Algoritmo estado de enlace
Ao final do algoritmo LS, temos, para cada nó, seu predecessor
ao longo do caminho de menor custo a partir do nó da fonte:
◦ Temos também o predecessor para cada um desses
predecessores, veja:
Algoritmo estado de enlace
Algoritmo vetor de distâncias
Ideia básica:
• Cada nó envia periodicamente sua própria estimativa de vetor de distância aos
vizinhos
• Quando o nó x recebe nova estimativa de DV do vizinho, ele atualiza seu próprio DV
usando a equação Bellman-Ford:

Dx(y) = minv{c(x,v) + Dv(y)} para cada nó y ∊ N

• Ao menos em condições naturais, a estimativa Dx(y) converge para o menor custo


atual dx(y)
Algoritmo vetor de distâncias
Iterativo, assíncrono: cada Cada nó:
iteração local é causada por:
• Mudança no custo do enlace espera por (mudança no custo do
local enlace local na mensagem do
• Mensagem de atualização DV vizinho)
do vizinho
Distribuído: recalcula estimativas
• Cada nó notifica os vizinhos
apenas quando seu DV mudar
• Os vizinhos então notificam se o DV para qualquer destino
seus vizinhos, se necessário mudou, notifica os vizinhos
Vetor de distância: mudanças no custo do enlace

Algoritmo vetor de distâncias


Mudanças no custo do enlace:
• Nó detecta mudança no custo do enlace
local
• Atualiza informações de roteamento,
recalcula o vetor de distância
• Se o DV muda, notifica vizinhos

No tempo t0, y detecta a mudança no custo do enlace, atualiza seu DV e


informa seus vizinhos.
No tempo t1, z recebe a atualização de y e atualiza sua tabela.
Ele calcula o menor custo novo para x e envia seu DV para os vizinhos.
No tempo t2, y recebe a atualização de z a atualiza sua tabela de distância. O
menor custo de y’s não muda e então y não envia nenhuma mensagem para z.
“boas notícias viajam depressa”

4 - 50
RIP (Routing Information Protocol)
Protocolos de roteamento: Routing Information
Protocolo (RIP)
• Algoritmo do tipo vetor distância
• Incluso na distribuição do BSD-UNIX em 1982
• Métrica de distância: # de saltos (máx. = 15 saltos)

4 - 51
Anúncio RIP
Protocolos de roteamento: Routing Information
Protocolo (RIP)

• Vetores de distância: trocados a cada 30 s via Response Message


(também chamado advertisement, ou anúncio)

• Cada anúncio indica rotas para até 25 redes de destino

4 - 52
RIP: falha de enlances e recuperação
Protocolos de roteamento: Routing Information
Protocolo (RIP)
Se não há um aviso depois de 180 s --> o vizinho e o enlace são declarados
mortos
• Rotas através do vizinho são anuladas
• Novos anúncios são enviados aos vizinhos
• Os vizinhos por sua vez devem enviar novos anúncios (se suas tabelas de
rotas foram alteradas)
• A falha de um enlace se propaga rapidamente para a rede inteira
• Reversão envenenada é usada para prevenir loops, (distância infinita = 16
saltos)

4 - 53
RIP Processamento da tabela de rotas
Protocolos de roteamento: Routing Information
Protocolo (RIP)
• As tabelas de roteamento do RIP são manipuladas por um processo
de aplicação chamado route-d (daemon)
• Anúncios são enviados em pacotes UDP com repetição periódica

4 - 54
OSPF (Open Shortest Path First)
Protocolos de roteamento: Open Shortest Path First
(OSPF)
•“open”: publicamente disponível
• Usa algoritmo do tipo link state
• Disseminação de pacotes LS
• Mapa topológico em cada nó
• Usa algoritmo de Dijkstra para cálculo de rotas

• Anúncios do OSPF transportam um registro para cada roteador vizinho


• Anúncios são distribuídos para todo o AS (via flooding)
• Transportado por mensagens OSPF diretamente sobre IP
(melhor do que TCP ou UDP)

4 - 55
OSPF características “avançadas”
Protocolos de roteamento: Open Shortest Path First
(OSPF)
• Segurança: todas as mensagens do OSPF são autenticadas (para previnir
intrusões maliciosas)
• Múltiplos caminhos de mesmo custo são permitidos (o RIP só permite um
caminho)
• Para cada link, múltiplas métricas de custo para diferentes (ex., custo de
enlace por satélite definido baixo para tráfego de “melhor esforço” e alto
para serviços de tempo real)
• Integra tráfego uni- e multicast :
• Multicast OSPF (MOSPF) usa a mesma base de dados de topologia do OSPF
• OSPF hierárquico: OSPF para grandes domínios.

4 - 56
OSPF hierárquico

Francisca:Substit
uir fig.

4 - 57
OSPF hierárquico
Protocolos de roteamento: Open Shortest Path First
(OSPF)
• Hierarquia de dois níveis: área local e backbone.
• Anúncios de link state apenas nas áreas
• Cada nó tem a topologia detalhada da área, mas somente direções
conhecidas (caminhos mais curtos) para redes em outra áreas.
• Roteadores de borda de área: “resumem” distâncias para redes na própria
área e enviam para outros roteadores de borda de área
• Roteadores de backbone: executam o roteamento OSPF de forma limitada ao
backbone.
• Roteadores de borda: conectam-se a outras redes.

4 - 58
Roteamento Hierárquico
Nosso estudo é uma idealização
• Roteadores são todos idênticos
• Redes “flat”
• … na prática, isso não é verdade
Escala: com 200 milhões de destinos:
• Não é possível armazenar todos os destinos numa única tabela de rotas!
• As mudanças na tabela de rotas irão congestionar os enlaces!
Autonomia administrativa
• Internet = rede de redes
• Cada administração de rede pode querer controlar o roteamento na sua própria rede
Roteamento Hierárquico
Agrega roteadores em regiões, “sistemas autônomos ” (AS)
• Roteadores no mesmo AS rodam o mesmo protocolo de roteamento
• Protocolo de roteamento “intra-AS”
• Roteadores em diferentes AS podem rodar diferentes protocolos de roteamento
Roteador Gateway
•Link direto para um roteador em outro AS
Roteamento Hierárquico
• Tabela de roteamento é
configurada por ambos
algoritmos, intra- e inter-
AS
• Intra-AS estabelece
entradas para destinos
internos
• Inter-AS e intra-As
estabelecem entradas
para destinos externos
Roteamento Hierárquico: BGP
BGP (Border Gateway Protocol): é o padrão de fato para uso na Internet
• BGP provê cada AS dos meios para:
1. Obter informações de alcance de sub-rede dos Ass. Vizinhos
2. Propagar informações de alcance para todos os roteadores internos ao AS
3. Determinar “boas” rotas para as sub-redes baseado em informações de alcance e
política
• Permite que uma subnet comunique sua existência para o resto da Internet: “Estou
aqui”

Você também pode gostar