Tópico 04 · Camada de Rede

Protocolo IPv4

Endereçamento, datagrama e roteamento na Internet — RFC 791 (1981)

Serviços de Redes

O que é o IPv4 e onde ele atua

O Internet Protocol versão 4 é o protocolo da camada de rede responsável por endereçar e encaminhar pacotes entre redes distintas.

  • Não orientado a conexão: cada pacote (datagrama) viaja de forma independente.
  • Melhor esforço (best-effort): não garante entrega, ordem ou ausência de duplicação.
  • Roteável: permite a comunicação fim a fim atravessando múltiplas redes.

Posição na pilha TCP/IP

Fica acima da camada de enlace (Ethernet/Wi-Fi) e abaixo da camada de transporte. A confiabilidade (entrega garantida, ordem) é delegada ao TCP; o IP só cuida de levar o pacote ao destino.

Endereçamento: 32 bits

Um endereço IPv4 tem 32 bits, escritos em notação decimal pontuada: quatro octetos (0–255) separados por pontos.

192 . 168 . 0 . 10
decimal pontuado

11000000 . 10101000 . 00000000 . 00001010
os mesmos 32 bits, em binário (4 octetos de 8 bits)

Espaço de endereçamento

232 = 4.294.967.296 endereços possíveis (~4,3 bilhões). Parece muito, mas foi insuficiente para a Internet atual.

Duas partes lógicas

Todo endereço divide-se em parte de rede (identifica a rede) e parte de host (identifica o dispositivo dentro dela). A fronteira é dada pela máscara.

Das classes ao CIDR

Modelo classful (histórico)

Classe1º octetoPrefixoUso
A0–127/8Redes enormes
B128–191/16Redes médias
C192–223/24Redes pequenas
D224–239Multicast
E240–255Reservada/experimental

CIDR (sem classes)

Desde 1993 (RFC 1518/1519), a fronteira rede/host é flexível e indicada pelo prefixo /n — o número de bits de rede. Acaba o desperdício do modelo classful e melhora a agregação de rotas.

Máscara de sub-rede: os n bits 1 marcam a rede; os restantes, o host. /24 = 255.255.255.0.

Sub-redes: a matemática

Com um prefixo /n, restam 32 − n bits para hosts. O número de endereços e de hosts utilizáveis por sub-rede é:

endereços = 2(32−n)
hosts úteis = 2(32−n) − 2
# −2: endereço de rede e de broadcast
Por que −2? O primeiro endereço identifica a rede e o último é o broadcast — nenhum dos dois pode ser atribuído a um host.

Exemplo: 192.168.1.0/26

máscara = 255.255.255.192
bits de host = 32 − 26 = 6
tamanho do bloco = 26 = 64
sub-redes: .0 / .64 / .128 / .192

# para o bloco .0:
rede ......... = 192.168.1.0
1º host ...... = 192.168.1.1
último host .. = 192.168.1.62
broadcast .... = 192.168.1.63
hosts úteis .. = 26 − 2 = 62

Endereços especiais e reservados

Faixa / endereçoNomeFunção
10.0.0.0/8 · 172.16.0.0/12 · 192.168.0.0/16Privados (RFC 1918)Uso interno; não roteáveis na Internet pública (dependem de NAT).
127.0.0.0/8LoopbackO próprio host (127.0.0.1 = localhost).
169.254.0.0/16Link-local / APIPAAutoconfiguração quando não há DHCP (RFC 3927).
0.0.0.0Indefinido / rota padrão"Este host" ou qualquer destino, conforme o contexto.
255.255.255.255Broadcast limitadoEnvia a todos os hosts da rede local.
224.0.0.0/4Multicast (Classe D)Entrega a um grupo de hosts assinantes.
Endereços privados + NAT foram uma das principais respostas à escassez de IPv4.

O datagrama IPv4 (cabeçalho)

O cabeçalho tem 20 bytes (sem opções) e até 60 bytes. Cada linha abaixo representa 32 bits:

0 8 16 24 31 Versão (4) IHL (4) DSCP + ECN (8) Comprimento Total (16) Identificação (16) Flags (3) Deslocamento do Fragmento (13) TTL (8) Protocolo (8) Checksum do Cabeçalho (16) Endereço de Origem (32) Endereço de Destino (32) Opções (0–40 bytes, variável) + Enchimento ↓ Dados (carga útil: segmento TCP/UDP, mensagem ICMP, …)

Os 20 bytes obrigatórios vão da Versão ao Endereço de Destino; as Opções são raras.

Campos do cabeçalho, em detalhe

CampoBitsPara que serve
Versão4Vale 4 no IPv4.
IHL4Tamanho do cabeçalho em palavras de 32 bits (mín. 5 = 20 bytes; máx. 15 = 60 bytes).
DSCP + ECN8Qualidade de serviço (priorização) e notificação de congestionamento.
Comprimento Total16Cabeçalho + dados, em bytes (até 65.535).
Identificação16Identifica os fragmentos de um mesmo datagrama original.
Flags3DF (não fragmentar) e MF (há mais fragmentos).
Deslocamento do Fragmento13Posição deste fragmento (em unidades de 8 bytes) no datagrama original.
TTL8Limite de saltos; evita pacotes em loop eterno.
Protocolo8O que vem na carga: 1=ICMP, 6=TCP, 17=UDP.
Checksum do Cabeçalho16Detecção de erro apenas no cabeçalho (recalculado a cada salto).
Origem / Destino32 + 32Endereços IP do remetente e do destinatário.

Fragmentação e remontagem

Cada enlace tem uma MTU (unidade máxima de transmissão; na Ethernet, 1500 bytes). Se um datagrama é maior que a MTU do próximo enlace, o IPv4 o fragmenta.

  • Todos os fragmentos compartilham a mesma Identificação.
  • O bit MF = 1 em todos, exceto no último.
  • O Deslocamento indica onde cada pedaço se encaixa (em blocos de 8 bytes).
  • A remontagem ocorre só no destino final.
DF = 1: se o pacote não cabe e não pode ser fragmentado, é descartado e um ICMP avisa a origem — base do Path MTU Discovery.

Exemplo

datagrama = 4000 bytes
MTU = 1500 bytes
# 20 de cabeçalho → 1480 de dados/fragmento
frag 1: dados 0–1479   MF=1 off=0
frag 2: dados 1480–2959 MF=1 off=185
frag 3: dados 2960–3979 MF=0 off=370
# offset em unidades de 8 bytes (1480/8 = 185)

TTL, roteamento e traceroute

O TTL (Time To Live) é um contador de saltos. Cada roteador o decrementa em 1; ao chegar a zero, o pacote é descartado.

Por quê? Sem esse limite, um erro de roteamento poderia fazer um pacote circular para sempre, congestionando a rede.

Como o traceroute usa o TTL

Envia pacotes com TTL = 1, 2, 3, … Cada roteador que zera o TTL responde com ICMP Time Exceeded, revelando, salto a salto, o caminho até o destino.

Roteamento: cada roteador olha o endereço de destino e consulta sua tabela de rotas para decidir a próxima interface — decisão tomada salto a salto, independentemente para cada pacote.

Checksum do cabeçalho

O IPv4 protege apenas o cabeçalho contra erros, com um checksum de complemento de um sobre as palavras de 16 bits do cabeçalho.

1. zera o campo checksum
2. soma todas as palavras de 16 bits
   (com "vai-um" circular)
3. checksum = complemento de um da soma

no receptor: soma + checksum = 0xFFFF → ok
Recalculado a cada salto: como o TTL muda em todo roteador, o checksum precisa ser refeito — custo que o IPv6 eliminou ao remover o checksum do cabeçalho.
E os dados? O cabeçalho IP não verifica a carga útil. Essa proteção fica a cargo das camadas superiores (checksum do TCP/UDP).

Encapsulamento e o papel do ARP

Quadro Ethernet (camada de enlace) Cab. Eth Datagrama IPv4 Cab. IP Carga útil (segmento TCP/UDP) Cab. TCP/UDP + dados da aplicação FCS

Cada camada "embrulha" os dados da camada superior, adicionando seu próprio cabeçalho.

ARP (Address Resolution Protocol): para entregar o quadro ao próximo salto na rede local, o IP de destino precisa ser traduzido para um endereço MAC. O ARP faz essa resolução IP → MAC.

ICMP: o protocolo de diagnóstico

O ICMP (Internet Control Message Protocol) acompanha o IP para reportar erros e diagnosticar a rede. Ele viaja dentro de datagramas IP (protocolo nº 1).

  • Echo Request/Reply — base do comando ping.
  • Time Exceeded — TTL zerou (usado no traceroute).
  • Destination Unreachable — destino/porta inacessível.

ping na prática

O ping mede se um host responde e o tempo de ida e volta (RTT), enviando Echo Requests e aguardando os Replies.

Esgotamento de endereços e soluções

O problema

~4,3 bilhões de endereços não bastam. O pool central da IANA esgotou em 2011, e as regiões esgotaram nos anos seguintes.

Paliativos

CIDR (uso eficiente de blocos), endereços privados (RFC 1918) e NAT, que faz muitos hosts internos compartilharem um IP público.

A solução definitiva

O IPv6, com 128 bits (3,4 × 1038 endereços), elimina a escassez e simplifica o cabeçalho.

Efeito colateral do NAT: quebra o princípio fim a fim (hosts internos não são diretamente alcançáveis), complicando aplicações P2P e exigindo técnicas de NAT traversal.

IPv4 × IPv6 (panorama)

AspectoIPv4IPv6
Tamanho do endereço32 bits (~4,3 bilhões)128 bits (~3,4 × 10³⁸)
NotaçãoDecimal pontuadaHexadecimal com dois-pontos
Cabeçalho20–60 bytes, com checksum40 bytes fixos, sem checksum
FragmentaçãoRoteadores e origemApenas a origem
ConfiguraçãoManual / DHCPAutoconfiguração (SLAAC) / DHCPv6
NATOnipresenteEm geral desnecessário
IPv4 e IPv6 coexistem hoje (pilha dupla); a transição é gradual.
Síntese

Em resumo

O IPv4 endereça e encaminha pacotes na Internet com 32 bits, em modelo não orientado a conexão e de melhor esforço. Seu datagrama carrega campos essenciais — endereços, TTL, protocolo, flags de fragmentação e checksum do cabeçalho. CIDR, endereços privados e NAT prolongaram sua vida diante da escassez, mas o futuro do crescimento é o IPv6.

Voltar aos Tópicos