Material de apoio
Protocolo IP e Algorítmos de Roteamento Cap.9
Esclarecimentos
Esse material é de apoio para as aulas da disciplina e não substitui a
leitura da bibliografia básica.
Os professores da disciplina irão focar alguns dos tópicos da
bibliografia assim como poderão adicionar alguns detalhes não
presentes na bibliografia, com base em suas experiências profissionais.
O conteúdo de slides com o título “Comentário” seguido de um texto,
se refere a comentários adicionais ao slide cujo texto indica e tem por objetivo incluir alguma informação adicional aos conteúdo do slide correspondente.
Bibliografia básica: KUROSE, James F.; ROSS, Keith. Redes de
Computadores e a INTERNET - Uma nova abordagem. Pearson. : , 2001.
ver length
32 bits
Dados (tamanho variável, tipicamente um segmento TCP ou UDP) 16-bit identifier Internet checksum time to live
32 bit endereço IP de origem versão do protocolo IP
tamanho do header (bytes) número máximo de saltos (decrementado em cada roteador) Para fragmentação/ remontagem tamanho total do datagrama (bytes): Máximo 64 K octetos
protocolo da camada superior com dados no datagrama: TCP = 6; UDP = 17; ICMP = 1; IGRP = 88; OSPF = 89 head. len type of service classe de serviço flgs fragment offset proto-colo
32 bit endereço IP de destino Opções (se houver)
Ex.: marca de tempo, registro de rota lista de roteadores a visitar.
Tamanho do cabeçalho TCP?
20 bytes do TCP 20 bytes do IP
= 40 bytes + cabeçalho da camada de aplicação
Flags sinalizam: • Fragmenta Sim/Não • Último fragmento Sim/Não
Fragmentação e Remontagem de pacotes IP (IP versão 4)
Enlaces de rede têm MTU (max.
transfer size) - corresponde ao maior frame que pode ser
transportado pela camada de enlace.
Tipos de enlaces diferentes
possuem MTU diferentes (Ethernet: 1518 bytes).
Datagramas IP grandes podem ser
divididos dentro da rede (fragmentados).
Um datagrama pode dar origem a
vários datagramas.
A “remontagem” ocorre apenas no
IP de destino final.
O cabeçalho IP é usado para
identificar e ordenar datagramas que foram fragmentados.
Protocolo IPv6 - Motivação
Motivação inicial da implementação do IPv6:
A capacidade de endereçamento 32 bits do IPv4 estava
praticamente esgotada.
Motivação adicional:
Melhorar o formato do cabeçalho IP para permitir maior
velocidade de processamento e de transmissão
(simplificação).
Mudanças no cabeçalho para incorporar mecanismos de
Tamanho fixo 40 octetos
Formato do datagrama IP (Versão 6)
Classe de tráfego: equivale à Classe de Serviço do IPv4. Trata de QoS. Rótulo de fluxo: associado com a função de QoS. Define tratamentos
semelhantes para pacotes com mesmo rótulo de fluxo (p.ex. VoIP, streaming). Comprimento da carga útil: quantidade de bytes de dados carregados no
pacote IP.
Próximo Cabeçalho: indica onde está o cabeçalho (extensão) e equivale ao campo Protocolo do IPv4 quando não tem cabeçalho extensão.
IPv4 IPv6
Cabeçalho com tamanho variável Cabeçalho tem tamanho fixo 40 bytes Tem detecção de erro usando Check
Sum
Checksum foi removido para reduzir o tempo de processamento dos pacotes dentro do roteador
Fragmentação de pacotes IP na rede é opcional, definida pelo host de origem (bit no campo Flag)
Não é permitida a fragmentação de grandes pacotes na rede
ICMPv6: nova versão de ICMP inclui mensagem de tipos de mensagens adicionais. Por ex.: “Packet Too Big”. Opções: são permitidas, mas são alocadas em cabeçalhos
suplementares, indicados pelo campo “Próximo cabeçalho”
Funções de gerenciamento de grupos multicast
Transição do IPv4 para IPv6
Nem todos os roteadores podem ser atualizados simultaneamente.
Estratégia de Tunelamento: IPv6 transportado dentro de pacotes IPv4
NAT – Network Address Translation
Motivação: Nem sempre é interessante manter os hosts e servidores com
endereços IP públicos, ou nem sempre temos endereços IP públicos disponíveis para todos os hosts.
3 tipos de NAT
NAT Estático: 1 endereço IP público para 1 endereço IP privado.
NAT Dinâmico: Pool de endereços IP públicos para atender os
hosts situados na LAN.
NAT Overload ou PAT: 1 endereço IP público para “n” endereços IP
NAT – Network Address Translation
Definição: Deve-se alocar tantos endereços IP públicos quanto necessários
para permitir o acesso à Internet, seguindo a regra 1 para 1 (1 endereço IP público por host acessando a Internet
simultaneamente).
Benefícios:
É possível alterar os endereços dos dispositivos LAN sem precisar
notificar as demais LANs.
É possível mudar de ISP, que altera o endereço IP, sem alterar os
endereços dos dispositivos na rede local.
Os dispositivos da LAN não são explicitamente endereçáveis ou
Como funciona o processo NAT ?
Datagramas que saem do roteador NAT: É substituido o “endereço IP de origem na LAN” de cada datagrama
pelo “endereço IP do NAT”.
. . . clientes/ servidores destino responderão usando “endereço IP
do NAT” como endereço de destino.
No roteador NAT existe a Tabela de Tradução do NAT que associa
cada “endereço IP de origem” para o par de tradução NAT: “endereço IP do NAT”.
Datagramas que chegam no roteador NAT:
É substituído o “endereço IP do NAT” de cada datagrama pelo
“endereço IP de origem na LAN” correspondente armazenado da Tabela de Tradução do NAT.
PAT: Port Address Translation
Variação do NAT: Network Address Translation.
Recurso utilizado quando não há endereços IP públicos
para todos os hosts da LAN.
Outros nomes:
SNAT/Masquerading: Linux (Iptables).
NAT Overload.
Hide-Mode NAT (CheckPoint).
NAPT (RFC 3022).
Internet Connection Sharing (Microsoft).
Opera na camada 3 e camada 4 do modelo OSI, enquanto
PAT – Port Address Translation
Motivação:
As LANs podem utilizar apenas um endereço IP para dar acesso à WAN.
Benefícios:
Não é preciso alocar uma gama de endereços do ISP. Apenas um endereço
IP é usado para todos os dispositivos da LAN.
É possível alterar os endereços dos dispositivos LAN sem precisar notificar
as demais LANs.
É possível mudar de ISP, que altera o endereço IP, sem alterar os
endereços dos dispositivos na rede local.
Os dispositivos da LAN não são explicitamente endereçáveis ou visíveis
pelo mundo exterior (um adicional de segurança).
O uso do PAT é controverso:
Roteadores deveriam processar somente até a camada 3 (Rede).
Violação do argumento fim-a-fim (host fala diretamente com host) (IP-IP). A possilidade do uso de PAT deve ser levada em conta pelos
desenvolvedores de aplicações. Por ex., nas aplicações P2P.
Como funciona o processo PAT ?
Datagramas que saem do roteador PAT: É substituido o “endereço IP de origem na LAN, porta TCP#” de
cada datagrama pelo “endereço IP do PAT, nova porta TCP# do PAT”.
. . . clientes/ servidores destino responderão usando “endereço IP
do PAT, nova porta TCP# do PAT” como endereço de destino.
No roteador PAT existe a Tabela de Tradução do PAT), que associa
cada “endereço IP de origem, porta TCP#” para o par de tradução PAT: “endereço IP do PAT, nova porta TCP# do PAT”.
Datagramas que chegam no roteador PAT:
É substituído o “endereço IP do PAT, nova porta TCP# do PAT” de
cada datagrama pelo “endereço IP de origem na LAN, porta TCP#” correspondente armazenado da Tabela PAT de Tradução do PAT.
1: hospedeiro 10.0.0.1 envia datagrama
para 128.119.40, 80 2: roteador PAT
substitui end. origem do datagram de 10.0.0.1, 3345 para 138.76.29.7, 5001 e atualiza a tabela 3: resposta chega endereço de destino: 138.76.29.7, 5001 4: roteador PAT substitui o endereço de destino do datagrama de 138.76.29.7, 5001 para 10.0.0.1, 3345
Tabela de rotas
Entidade de rede em roteadores ou hospedeiros:
Prot. de roteamento
• Escolha de caminhos • RIP, OSPF, BGP
Protocolo IP
• Endereçamento
• Formato dos datagramas •Tratamento de pacotes
Protocolo ICMP
• Aviso de erros
• Sinalização de rotas Camada de Transporte: TCP, UDP
Camada de Enlace Camada Física
Camada de Rede
X Y A A B B C C Presentation Data Link Physical Data Link Physical A B C Data Link Physical Data Link Network Transport Session Presentation Application Physical Data Link Network Transport Session Application Physical
Network Network Network
Conectividade LAN-to-LAN
Roteadores encapsulam e de-encapsulam pacotes de dados no seu
1 2 3 4 5 6 7 8 9 10 11
Which Path?
Which Path?
do pacote (path)
Roteadores encontram o melhor caminho através da rede:
Tabelas de Roteamento (Routing tables) dentro dos roteadores
contém a informação da topologia da rede. É usada para determinar o roteamento.
A decisão do roteador é local: escolher com base na Tabela de
Roteamento, qual a porta de saída para encaminhamento do pacote IP recebido.
Algumas métricas de roteamento
Comprimento do caminho (path): total de hops (enlaces/ pulos) ou
total dos custos de cada hop do path.
Confiabilidade (Reliability): taxa de falhas (MTBF), tempo de
recuperação de falha (MTTR), taxa de erros (bits errados).
Atraso da rede (Delay): tempo decorrido para o pacote chegar ao seu
destino (tamanho das filas, congestionamento da rede, distância física percorrida pelo pacote.
Largura de faixa (velocidade do link) e carga (% de ocupação):
depende da velocidade do link e forma de uso.
D est in a tá ri o P ró x im o Ho p C u st o R1 R1 0 R2 R2 13 R3 R2 15 R4 R4 6 R5 R2 25 R6 R4 26
Referência: Roteador #1
Tabela de Roteamento
IP 15.17.132.6 IP 15.16.42.8 IP 15.16.50.3 Routing Tables IP Token Ring Token Ring AppleTalk 200.167 AppleTalk 100.110 Apple IPX 4b.0800.0121.ab13 IPX 3a.0800.5678.12ab Novell DECnet 5.8 DECnet 10.1 DEC VAX VAX
Roteamento Multiprotocolo
Roteadores multiprotocolo podem rotear diversos protocolos de rede
simultaneamente. Cada protocolo tem sua própria tabela de roteamento.
LAN A
B
Roteamento Estático (Static Routing)
A Tabela de Roteamento é atualizadamanualmente pelo Administrador da Rede.
Benefícios:
Reflete o conhecimento do
Administrador sobre a topologia.
Privacidade — não é compartilhado
como parte de um processo de atualização com os demais
roteadores.
Evita a sobrecarga de
processamento devido ao roteamento dinâmico.
Uso quando a rede é “Terminada”, isso
é, quando o roteador só tem uma porta de acesso ao resto da rede.
A B C D
X
A B C DX
Roteamento Dinâmico (Dynamic Routing)
Os roteadores trocam informações sobre a topologia e funcionalidadeda rede entre si e atualizam suas Tabelas de Roteamento.
Uma mudança no caminho preferencial (AD-DC) altera a nova rota
para (AB-BC) até que AD seja restaurado e nova atualização da Tabela Roteamento irá ocorrer.
Objetivos dos Algoritmos de Roteamento
Otimização: seleção da melhor rota com base em métricas eponderações (pesos) usados nos cálculos.
Simplicidade e baixa carga de processamento: softwares “leves”.
Robustez e estabilidade: desempenho adequado mesmo diante de
situações não previstas (exemplo: alto tráfego).
Rápida convergência: as informações sobre as melhores rotas são
rapidamente recebidas e incorporadas pelos roteadores envolvidos (lentidão na convergência pode gerar “loops” ou quedas da rede).
Flexibilidade: adaptação rápida e precisa às mudanças da rede
(disponibilidade do roteador, velocidade dos links, dimensionamento de filas de entrada e saída e atraso (latência) dos pacotes, etc..).
roteamento
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 da Tabela de Roteamento.
Global ou Descentralizada?
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.
Troca de informações com os vizinhos. Algoritmos “distance vector”.
de roteamento dinâmico
O roteador mantém o mapa lógico de “toda” a rede.
Os roteadores somente trocam informações entre si quando ocorrer
uma mudança na rota ou serviço.
Os mapas da rede vão sendo “construídos” em cada roteador
(“convergência”).
Roteador inunda (“flooding”) a rede com informações de todos os seus
enlaces (conexões para redes e conexões para outros roteadores) e as alterações são conhecidas imediatamente.
Eficiente, mas é mais complexo para configurar.
Conhecido como “Primeiro Caminho Mais Curto” (Shortest Path First). Exemplo: OSPF – Open Shortest Path First.
“Distance Vector” de roteamento dinâmico
O roteador mantém o mapa lógico de parte da rede.
Somente os roteadores vizinhos trocam, periodicamente, mensagens
de suas tabelas de roteamento entre si, mesmo que não tenham sido alteradas desde a última troca de informações.
A Tabela de Roteamento tem informação necessária para atingir o
próximo roteador na direção de cada um dos roteadores existentes na rede (Próximo Hop).
Também chamado roteamento por rumor (routing by rumor).
Fácil de configurar, mas é um processo mais lento de “aprendizado”
para os roteadores otimizarem suas Tabelas de Roteamento.
Por que usar Roteamento hierárquico?
Supondo uma idealização para fins de estudo: Roteadores são todos idênticos.
Redes “flat” (o plano de numeração é livre e não depende de
região).
… na prática, isso não é verdade ou possível.
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!
A realidade é uma Autonomia Administrativa:
Internet = rede de redes.
Cada administração de rede pode querer controlar o roteamento na
Roteamento hierárquico
Agrega roteadores em regiões, chamados “sistemas
autônomos ” (AS-Autonomous System).
As regiões AS são interligadas usando roteadores Gateway
que estão na borda da rede AS.
Roteadores no mesmo AS rodam o mesmo protocolo de
roteamento.
Protocolo de roteamento “intra-AS” (Dentro da Rede).
Roteador Gateway interligam :
Roteamento intra-AS
Também conhecido como Interior Gateway Protocols
(IGP).
Protocolos de roteamento intra-AS mais comuns:
RIP: Routing Information Protocol.
OSPF: Open Shortest Path First.
IGRP: Interior Gateway Routing Protocol (proprietário
Roteamento inter-AS da Internet: BGP
BGP (Border Gateway Protocol): é o padrão de fato para
uso na Internet.
BGP provê cada AS dos meios para:
Obter informações de alcance de sub-rede dos
Assinantes Vizinhos.
Propagar informações de alcance para todos os
roteadores internos ao AS.
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
conceitos básicos
Pares de roteadores (BGP peers) trocam informações de roteamento
por conexões TCP semi-permanentes: sessões BGP.
Note que as sessões BGP não correspondem aos links físicos.
Quando AS2 comunica um prefixo ao AS1, AS2 está prometendo que
irá encaminhar todos os datagramas destinados a esse prefixo em direção ao prefixo.