Aula 9 — Estrutura do pacote IPv4, campos do cabeçalho, TTL e fragmentação: como a camada de internet entrega dados entre redes distintas sem garantia de ordem ou entrega
20bytes mínimos
60bytes máximos
13campos no header
~4,3 biendereços possíveis
RFC 791publicado em 1981
🌐 O que é o IPv4?
O IPv4 — Internet Protocol version 4 (RFC 791, 1981) é o protocolo responsável pelo endereçamento lógico e roteamento de pacotes na camada de Internet da pilha TCP/IP. É ele quem permite que dados trafeguem entre redes diferentes — do seu computador em casa até um servidor no outro lado do planeta.
💬 Analogia: o IPv4 é como o sistema de endereços postais do mundo. Cada dispositivo tem um endereço único (o IP), e o pacote é como uma carta: o roteador é a agência dos correios que lê o CEP de destino e decide para qual próxima agência encaminhar.
Características fundamentais
Não orientado a conexãoConnectionlessCada pacote é tratado de forma independente. Não há handshake nem estado de sessão na camada IP — isso é responsabilidade do TCP, na camada superior
Best EffortSem garantia de entregaO IPv4 faz o máximo esforço para entregar o pacote, mas não garante: o pacote pode se perder, ser duplicado ou chegar fora de ordem
Endereçamento de 32 bits~4,3 bilhões de endereçosO espaço de endereçamento IPv4 é 2³² = 4.294.967.296. Com o crescimento da internet, esse espaço foi esgotado — daí a necessidade do IPv6
Roteamento hop-a-hopCada salto decide o próximoNão existe um caminho pré-definido: cada roteador no percurso consulta sua tabela e decide de forma independente para onde enviar o pacote
Conexão
Sem conexão (connectionless)
Pacotes do mesmo fluxo podem seguir caminhos diferentes na rede
Confiabilidade
Best effort — sem garantia
Perda de pacotes deve ser tratada pelo TCP ou pela aplicação
Ordem
Não garantida
Pacote 3 pode chegar antes do pacote 1; TCP os reordena
Duplicação
Pode ocorrer
O mesmo pacote pode ser entregue mais de uma vez
Endereçamento
32 bits — esgotado
NAT e IPv6 surgiram como soluções para a escassez
Classes de endereçamento IPv4 — capacidade por rede
Comparativo — hosts por rede por classe
Classe A (1.0.0.0 – 126.255.255.255)16.777.214 hosts/rede
Classe B (128.0.0.0 – 191.255.255.255)65.534 hosts/rede
Classe C (192.0.0.0 – 223.255.255.255)254 hosts/rede
Classe D (224.0.0.0 – 239.255.255.255)Multicast — sem hosts
Classe E (240.0.0.0 – 255.255.255.255)Reservado / Experimental
* Largura proporcional ao número de hosts por rede. Classe A domina com 16,7M hosts/rede.
🧩 Estrutura do Pacote IPv4
Um pacote IPv4 é composto por um cabeçalho (mínimo de 20 bytes, máximo de 60 bytes) seguido pelo payload (dados da camada superior). O cabeçalho contém todos os metadados que os roteadores precisam para encaminhar o pacote corretamente.
Campos do cabeçalho — explorador interativo
🖱️ Clique em qualquer campo para ver detalhes — ou use o tour automático
048162431
👆 Selecione um campo no diagrama acima
⚠️ Por que o checksum é recalculado a cada salto? O campo TTL é decrementado em 1 por cada roteador. Como o cabeçalho muda (TTL mudou), o checksum também deve ser recalculado antes de reencaminhar o pacote. O IPv6 eliminou o checksum no cabeçalho para reduzir esse overhead.
⏳ TTL — Time to Live
O TTL (Time to Live) é um dos campos mais importantes do cabeçalho IPv4. Apesar do nome sugerir tempo, na prática funciona como um contador de saltos (hops): cada roteador que processa o pacote decrementa o TTL em 1. Quando o TTL chega a 0, o pacote é descartado e o roteador envia uma mensagem ICMP “Time Exceeded” de volta ao remetente.
🎯 Objetivo do TTL: evitar que pacotes fiquem circulando indefinidamente na rede em caso de loops de roteamento. Sem o TTL, um loop entre dois roteadores poderia fazer um pacote circular para sempre, consumindo banda e recursos.
Mesmo valor do Linux; alterado via sysctl net.inet.ip.ttl
Cisco IOS (roteadores)
255
Usado em tráfego gerado pelo próprio roteador (ex: OSPF Hello)
Solaris / AIX
255
TTL máximo; sinal de sistema legado ou equipamento de rede
🔍 Fingerprinting de SO: o TTL recebido permite estimar o sistema operacional do remetente. Se um ping responde com TTL=118, provavelmente partiu de um Windows (128) e passou por 10 saltos. Se TTL=55, provavelmente Linux (64) com 9 saltos. Ferramentas como Nmap usam isso para identificar sistemas remotos.
TTL e a ferramenta traceroute
O traceroute (Linux/Mac) e o tracert (Windows) exploram o mecanismo de TTL para mapear o caminho até um destino. A técnica consiste em enviar pacotes com TTL=1, 2, 3, ... e coletar as mensagens ICMP “Time Exceeded” geradas por cada roteador.
traceroute — mecânica de funcionamento (TTL 1→5)
✂️ Fragmentação de Pacotes
Diferentes tecnologias de rede suportam tamanhos máximos de quadro diferentes — o MTU (Maximum Transmission Unit). Quando um pacote IPv4 é maior que o MTU do próximo enlace, o roteador pode fragmentar o pacote em pedaços menores. O host de destino é responsável por remontar os fragmentos na ordem correta.
Tecnologia
MTU (bytes)
Observação
Ethernet (padrão)
1.500
MTU mais comum na internet; payload do quadro Ethernet
Ethernet Jumbo Frames
9.000
Usado em redes de datacenter de alto desempenho
PPPoE (ADSL)
1.492
8 bytes do cabeçalho PPPoE reduzem o MTU efetivo
Wi-Fi (802.11)
2.304
MTU da camada física; normalmente usa MTU Ethernet (1500)
VPN / Tunnel
~1.400–1.460
Encapsulamento adicional reduz o MTU efetivo disponível
Loopback
65.536
Interface virtual local; sem fragmentação prática
Fragmentação em ação — pacote de 4000 bytes no MTU 1500
Bit DF — Don’t Fragment
Quando o bit DF (Don’t Fragment) = 1, o pacote não pode ser fragmentado. Se chegar a um enlace com MTU menor, o roteador descarta o pacote e envia uma mensagem ICMP “Destination Unreachable: Fragmentation Needed” (Tipo 3, Código 4) ao remetente, informando o MTU do enlace bloqueante.
🛠 PMTUD — Path MTU Discovery: o TCP moderno usa o bit DF e as mensagens ICMP “Fragmentation Needed” para descobrir automaticamente o menor MTU no caminho até o destino e ajustar o MSS (Maximum Segment Size). Isso evita fragmentação en route e melhora a eficiência. Se firewalls bloquearem as mensagens ICMP necessárias, conexões TCP podem travar — o famoso “black hole PMTUD”.
⚠️ Fragmentação tem custos: (1) overhead: cada fragmento carrega um cabeçalho IP completo de 20 bytes; (2) se um fragmento se perder, o pacote inteiro deve ser retransmitido; (3) firewalls stateless podem ter dificuldade para inspecionar pacotes fragmentados. Por isso, o IPv6 não permite fragmentação en route — apenas na origem.
📋 O Campo Protocolo e o Encapsulamento
O campo Protocolo (8 bits) informa ao host de destino qual protocolo está encapsulado no payload do pacote IP. Isso permite que a pilha TCP/IP faça a demultiplexação correta, entregando os dados ao módulo certo.
1 — ICMPDiagnósticoping, traceroute, mensagens de erro de rede (Destination Unreachable, Time Exceeded)
6 — TCPTransporte confiávelHTTP, HTTPS, SSH, SMTP, FTP — qualquer protocolo que exija entrega garantida e em ordem
17 — UDPTransporte rápidoDNS, DHCP, VoIP, streaming, jogos online — baixa latência em detrimento de confiabilidade
89 — OSPFRoteamento dinâmicoPacotes OSPF vão diretamente sobre IP, sem TCP ou UDP; TTL=1 para mensagens Hello multicast
47 — GRETúnelGeneric Routing Encapsulation: encapsula pacotes IP dentro de outros pacotes IP (VPN simples)
50 — ESPIPSecEncapsulating Security Payload: criptografia e autenticação do payload para VPNs IPSec
Encapsulamento — visão em camadas de um pacote HTTP
🛠️ Analisando Pacotes IPv4 na Prática
O conhecimento do cabeçalho IPv4 é essencial para interpretar capturas de pacotes. Ferramentas como o Wireshark e o tcpdump permitem inspecionar cada campo em tempo real.
tcpdump — filtros úteis para análise IPv4
ping com TTL — diagnóstico prático
⚠️ ICMP bloqueado por firewall: muitos roteadores e firewalls bloqueiam mensagens ICMP por “segurança”. Isso causa o sintoma * * * no traceroute e pode quebrar o PMTUD. A prática é permitir seletivamente: ICMP Echo (ping) pode ser opcional, mas “Destination Unreachable” e “Time Exceeded” devem ser permitidos para que o roteamento funcione corretamente.
❓ Verifique seu Conhecimento
Um pacote IPv4 chega a um roteador com TTL=1. O que o roteador faz?
AEncaminha o pacote normalmente, pois TTL=1 ainda é válido
BDecrementa o TTL para 0, descarta o pacote e envia ICMP Time Exceeded ao remetente
CReenvia o pacote ao host de origem solicitando um novo TTL
DIncrementa o TTL para 2 e tenta encontrar um caminho alternativo
✓ O roteador decrementa o TTL antes de decidir encaminhar. Com TTL=1, após decrementar o TTL fica 0; o pacote é descartado e o roteador gera uma mensagem ICMP tipo 11 (Time Exceeded) para o IP de origem. Esse mecanismo é a base do funcionamento do traceroute.
Por que o roteador IPv4 precisa recalcular o checksum do cabeçalho a cada salto?
APorque o IP de destino muda a cada salto
BPorque o roteador pode alterar as opções do cabeçalho em trânsito
CPorque o tamanho do cabeçalho aumenta a cada salto
DPorque o TTL é decrementado em cada salto, alterando o cabeçalho; como o checksum cobre o cabeçalho, ele deve ser recalculado após qualquer modificação
✓ O checksum do cabeçalho IPv4 é calculado sobre todos os campos do cabeçalho. Como o TTL é decrementado em 1 em cada roteador, o cabeçalho muda — e qualquer mudança invalida o checksum anterior. Isso é um dos motivos pelos quais o IPv6 eliminou o checksum de cabeçalho: o overhead de recalcular a cada salto era considerado desnecessário com as redes modernas mais confiáveis.
Um host envia um ping com DF=1 (Don’t Fragment) e o pacote precisa passar por um enlace com MTU menor que o tamanho do pacote. O que acontece?
AO roteador descarta o pacote e envia ICMP “Destination Unreachable: Fragmentation Needed” ao remetente com o MTU do enlace bloqueante
BO roteador fragmenta o pacote mesmo com DF=1, pois a entrega tem prioridade
CO pacote fica em fila no roteador até que o MTU do enlace aumente
DO roteador negocia um MTU maior com o próximo enlace antes de encaminhar
✓ Com DF=1, fragmentação é proibida. Se o pacote é grande demais para o próximo enlace, o roteador deve descartar e notificar o remetente via ICMP tipo 3, código 4 (Fragmentation Needed and DF Set), incluindo o MTU do enlace. O remetente pode então ajustar o tamanho dos pacotes. Esse é o mecanismo do PMTUD (Path MTU Discovery).
Ao executar traceroute 8.8.8.8, a linha exibe * * * para o 4º salto. Qual a interpretação mais provável?
AO destino 8.8.8.8 foi alcançado com sucesso no 4º salto
BO roteador no 4º salto está desligado e a rota foi interrompida permanentemente
CO roteador no 4º salto recebeu o pacote mas não respondeu ao ICMP (bloqueado por firewall), embora continue encaminhando tráfego normalmente
DO traceroute sofreu um erro e não deve ser confiado após esse ponto
✓ * * * significa que o probe com TTL correspondente foi enviado, mas nenhuma resposta ICMP chegou dentro do timeout. A causa mais comum é que o roteador no 4º salto tem uma regra de firewall bloqueando respostas ICMP (Time Exceeded). Isso não significa que a rota está quebrada — o traceroute geralmente continua nos próximos saltos e atinge o destino normalmente.
📝 Atividade Prática — Packet Tracer
Topologia
PC0192.168.1.10 /24
Switch
PC1192.168.1.20 /24
💡 Configuração: Em cada PC → Desktop → IP Configuration. Preencha o IP e a máscara. Não precisa de gateway.
Capturando o pacote
1Clique no ícone de relógio (canto inferior direito) para entrar no modo Simulation.