04 - Protocolo IP
video: https://youtu.be/... no frontmatter da nota.Protocolo IP (Internet Protocol)
1. Definição e Função
O Protocolo IP é o protocolo central da Camada de Rede (Layer 3 OSI) responsável por fornecer um sistema de endereçamento lógico e hierárquico para identificar dispositivos em uma rede. Ele é o responsável por rotear pacotes de dados da origem ao destino através de redes interconectadas (internetworking), sendo a pedra fundamental sobre a qual a Internet é construída.
O IP é um protocolo não orientado à conexão (connectionless) e de melhor esforço (Best-Effort). Isso significa que ele não gasta recursos verificando se o destino está pronto, não estabelece circuitos virtuais antes da transmissão e não confirma se o pacote chegou — ele simplesmente "despacha" a informação e confia que a Camada de Transporte (TCP) ou a aplicação lidem com possíveis perdas, duplicatas ou reordenações.
Características Operacionais
| Atributo | Comportamento IP |
|---|---|
| Estabelecimento de conexão | Não (connectionless) |
| Garantia de entrega | Não (best-effort) |
| Ordem de entrega | Não garantida |
| Controle de congestionamento | Não (delegado ao TCP) |
| Controle de fluxo | Não (delegado ao TCP) |
| Verificação de integridade | Apenas do cabeçalho (Header Checksum, no IPv4) |
| Endereçamento | Lógico e hierárquico (32 bits no IPv4, 128 bits no IPv6) |
2. RFCs de Referência
| RFC | Ano | Conteúdo |
|---|---|---|
| RFC 760 | 1980 | IPv4 predecessor (Internet Protocol) |
| RFC 791 | 1981 | IPv4 (versão atual, base da Internet) |
| RFC 894 | 1984 | IP sobre Ethernet |
| RFC 2460 | 1998 | IPv6 (revogado pela 8200) |
| RFC 8200 | 2017 | IPv6 (versão atual) |
| RFC 1812 | 1995 | Requisitos para roteadores IPv4 |
| RFC 1918 | 1996 | Endereços privados IPv4 |
3. As Duas Versões do Protocolo
Atualmente, convivemos com duas gerações do protocolo IP em produção simultânea:
A. IPv4 (Internet Protocol version 4)
- Endereçamento: 32 bits, representados em 4 octetos decimais separados por pontos (ex:
192.168.1.1). - Capacidade: Aproximadamente 4,29 bilhões de endereços teóricos (
2^32), dos quais parte é reservada (privada, loopback, multicast). - Cabeçalho: Variável, mínimo 20 bytes (sem opções), máximo 60 bytes.
- Limitação: Esgotamento de endereços públicos devido à explosão de dispositivos (resolvido paliativamente com técnicas como o NAT — Network Address Translation, RFC 1631).
- Status: Ainda transporta a maior parte do tráfego da Internet, mas em declínio gradual.
B. IPv6 (Internet Protocol version 6)
- Endereçamento: 128 bits, representados em 8 grupos hexadecimais de 16 bits separados por dois-pontos (ex:
2001:0db8:85a3::8a2e:370:7334). - Capacidade: 3,4 × 1038 endereços (
2^128) — virtualmente infinitos (cerca de 5 × 1028 endereços por pessoa na Terra). - Cabeçalho: Fixo de 40 bytes, mais eficiente para roteadores processarem.
- Vantagens: Segurança nativa (IPsec mandatório), autoconfiguração sem estado (SLAAC), cabeçalhos de extensão flexíveis, ausência de broadcasts (usa multicast).
- Status: Adoção crescente (~45% do tráfego no Google em 2024, segundo Google IPv6 Statistics).
4. O Cabeçalho IP (IP Header)
Todo pacote IP carrega um "rótulo" com informações vitais para o roteamento. Os campos mais importantes do cabeçalho IPv4 incluem:
- Version (4 bits): Identifica a versão do protocolo (4 para IPv4, 6 para IPv6).
- IHL (Internet Header Length, 4 bits): Tamanho do cabeçalho em palavras de 32 bits (mínimo 5 = 20 bytes).
- Total Length (16 bits): Tamanho total do datagrama em bytes (cabeçalho + payload).
- Identification (16 bits): Identifica unicamente o datagrama para fins de fragmentação.
- Flags (3 bits): Controla fragmentação (DF — Don't Fragment; MF — More Fragments).
- Fragment Offset (13 bits): Posição do fragmento no datagrama original.
- TTL (Time to Live, 8 bits): Contador que diminui em cada roteador. Se chegar a zero, o pacote é descartado. Evita que pacotes fiquem "presos" em loops infinitos na rede. Valor típico inicial: 64 (Linux/macOS), 128 (Windows).
- Protocol (8 bits): Indica qual protocolo de camada superior está dentro do pacote. Valores comuns: TCP=6, UDP=17, ICMP=1, IGMP=2, OSPF=89, ESP=50, AH=51.
- Header Checksum (16 bits): Verifica integridade apenas do cabeçalho (não do payload).
- Source Address (32 bits): Endereço IP de origem.
- Destination Address (32 bits): Endereço IP de destino.
- Options (variável): Campos opcionais (raramente usados na prática atual).
5. Endereçamento e Sub-redes
O endereço IP é dividido em duas partes lógicas:
- Parte de Rede (Network): Identifica a qual "vizinhança" lógica o dispositivo pertence.
- Parte de Host: Identifica o dispositivo específico dentro daquela vizinhança.
Essa divisão é feita pela Máscara de Sub-rede (ex: 255.255.255.0 ou /24 em notação CIDR). Entender essa divisão é fundamental para o roteamento:
- Se o IP de destino pertence à mesma rede (mesma máscara aplicada), o dispositivo entrega diretamente via Camada 2 (usando ARP para descobrir o MAC do destino).
- Se for uma rede diferente, o host envia o pacote para o Gateway Padrão (roteador), que decide o próximo salto.
Exemplo de Cálculo
Host: 192.168.1.100
Máscara: 255.255.255.0 (/24)
Rede: 192.168.1.0 (192.168.1.100 AND 255.255.255.0)
Broadcast: 192.168.1.255
Hosts úteis: 192.168.1.1 a 192.168.1.254 (254 = 2^8 - 2)
6. Funcionamento do Roteamento IP
O roteamento IP é um processo hop-by-hop: cada roteador ao longo do caminho decide apenas o próximo salto, sem conhecimento do caminho completo. Isso torna o IP robusto a falhas (rotas podem mudar dinamicamente) e escalável.
Tabela de Roteamento (Linux)
$ ip route
default via 192.168.1.1 dev eth0 # Rota padrão (gateway)
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
10.0.0.0/8 via 192.168.1.254 dev eth0 # Rota estática
A decisão de roteamento segue a regra da Longest Prefix Match (Correspondência de Prefixo Mais Longa): a entrada mais específica na tabela vence.
7. Fragmentação IP
Quando um datagrama IP é maior que a MTU (Maximum Transmission Unit) do enlace físico, ele precisa ser fragmentado. A MTU padrão Ethernet é 1500 bytes.
| MTU Comum | Tecnologia |
|---|---|
| 1500 bytes | Ethernet |
| 1492 bytes | PPPoE (ADSL) |
| 1452 bytes | VPN (IPsec over TCP) |
| 1280 bytes | IPv6 mínimo obrigatório |
| 68 bytes | MTU mínima IPv4 (sem fragmentação) |
No IPv6, roteadores intermediários não fragmentam pacotes — a fragmentação é responsabilidade apenas das pontas (origem deve descobrir o Path MTU via PMTUD).
8. Tipos de Endereço IPv4
| Tipo | Faixa | Uso |
|---|---|---|
| Classe A Pública | 1.0.0.0 a 126.255.255.255 | Grandes organizações |
| Classe B Pública | 128.0.0.0 a 191.255.255.255 | Médias organizações |
| Classe C Pública | 192.0.0.0 a 223.255.255.255 | Pequenas organizações |
| Privada (RFC 1918) | 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | Redes internas |
| Loopback | 127.0.0.0/8 | Testes locais (localhost) |
| Link-Local (APIPA) | 169.254.0.0/16 | Autoatribuição sem DHCP |
| Multicast (Classe D) | 224.0.0.0 a 239.255.255.255 | Entrega para grupos |
9. Comandos Práticos de Diagnóstico
# Visualizar configurações IP
ip addr show # Linux moderno
ifconfig # BSD/legacy Linux
ipconfig /all # Windows
# Testar conectividade IP (ICMP)
ping 8.8.8.8 # Testa alcance
ping6 2001:4860:4860::8888 # Testa IPv6
traceroute 8.8.8.8 # Mapeia rota
mtr 8.8.8.8 # Traceroute contínuo
# Inspecionar tabela de rotas
ip route show
netstat -rn
# Capturar pacotes IP
tcpdump -n -i eth0 ip # Captura todo tráfego IP
tcpdump -n -i eth0 'ip host 8.8.8.8'
10. Resumo Técnico
| Atributo | IPv4 | IPv6 |
|---|---|---|
| Tamanho do endereço | 32 bits | 128 bits |
| Cabeçalho | Variável (20-60 bytes) | Fixo (40 bytes) |
| Checksum de cabeçalho | Sim | Não (delegado a L2/L4) |
| Fragmentação | Roteadores intermediários | Apenas origem (PMTUD) |
| Broadcast | Sim | Não (apenas multicast) |
| Configuração automática | DHCPv4 | SLAAC + DHCPv6 |
| IPsec | Opcional | Mandatório (RFC 8200) |
| Campo de QoS | ToS (8 bits) | Traffic Class (8 bits) |
11. Conclusão
O Protocolo IP é o coração da Internet moderna. Sua simplicidade filosófica — best-effort, connectionless, sem garantias — é paradoxalmente o que tornou possível sua escalabilidade para bilhões de dispositivos. Ao delegar confiabilidade, ordem e controle de fluxo para o TCP (Camada 4), o IP mantém os roteadores do núcleo da Internet enxutos e rápidos, processando bilhões de pacotes por segundo. A transição em curso do IPv4 para o IPv6 é a maior mudança estrutural na história da Internet, motivada principalmente pelo esgotamento do espaço de endereçamento de 32 bits.