01 - 32 bits
video: https://youtu.be/... no frontmatter da nota.32 bits
1. O Conceito de Espaço de Endereçamento
No mundo digital, tudo se resume a combinações. Um endereço IPv4 é um número de 32 bits de comprimento fixo. Isso significa que, independentemente da rede onde você esteja, o "nome" lógico do seu computador na camada 3 (Rede) terá exatamente 32 posições binárias, cada uma podendo assumir o valor 0 ou 1. Esse conjunto total de combinações possíveis é o que chamamos de Espaço de Endereçamento do protocolo.
A rigidez desse tamanho é parte fundamental do padrão IPv4: nenhum IP pode ter 31 ou 33 bits. Essa simetria garante que roteadores possam processar o cabeçalho IP em hardware dedicado (ASICs) com latência previsível, sem precisar interpretar campos de comprimento variável.
2. A Matemática do Limite
Por que dizemos que o IPv4 tem aproximadamente 4,2 bilhões de endereços? A conta é uma progressão geométrica simples:
- Cada bit tem 2 estados possíveis (0 ou 1).
- Como temos 32 posições, o cálculo é
2^32.
2^32 = 4.294.967.296 endereços únicos
Esse valor é o limite absoluto do protocolo. Nenhuma engenharia, patch ou atualização incremental consegue ampliá-lo sem migrar para outro protocolo (IPv6, com 128 bits). Para fins de comparação:
| Protocolo | Bits | Espaço de Endereçamento |
|---|---|---|
| IPv4 | 32 | 4.294.967.296 (~4,3 bilhões) |
| IPv6 | 128 | ~3,4 × 1038 (340 undecilhões) |
| MAC (IEEE 802) | 48 | 281.474.976.710.656 (~281 trilhões) |
3. Representação em Memória
Na memória dos equipamentos, o endereço de 32 bits é armazenado como uma palavra contínua. Em sistemas modernos (little-endian ou big-endian), o endereço é tratado como um único inteiro de 32 bits. Em C, o IPv4 é manipulado através da estrutura struct in_addr e da struct sockaddr_in, definidas em <netinet/in.h>:
#include <netinet/in.h>
struct in_addr {
uint32_t s_addr; /* IP em network byte order */
};
struct sockaddr_in {
sa_family_t sin_family; /* AF_INET */
in_port_t sin_port; /* porta em network byte order */
struct in_addr sin_addr; /* endereço IPv4 de 32 bits */
char sin_zero[8]; /* padding */
};
Internamente, o campo s_addr é um uint32_t, ou seja, ocupa exatamente 4 bytes contíguos na memória. A ordenação segue o network byte order (big-endian), o que garante interoperabilidade entre arquiteturas diferentes (x86 é little-endian; ARM pode ser ambos).
4. Comparação com Endereço MAC de 48 Bits
É comum confundir o endereço IP (32 bits, camada 3) com o endereço MAC (48 bits, camada 2). A diferença fundamental é:
- MAC (48 bits): fixo na placa de rede, atribuído pelo fabricante (OUI + NIC), não hierárquico geograficamente.
- IP (32 bits): lógico, atribuído pelo administrador ou DHCP, hierárquico, roteável entre redes.
Apesar de o MAC ter mais bits (48 contra 32), ele não substitui o IP porque não é hierárquico: roteadores de núcleo não conseguem agregar MACs em prefixos. O IP agrega (através de CIDR), permitindo que uma única entrada de tabela represente milhões de endereços.
5. Histórico do IPv4
O IPv4 não nasceu pronto. Ele evoluiu de protótipos anteriores:
| Ano | RFC | Marco histórico |
|---|---|---|
| 1979 | RFC 760 | Primeira versão "IPv4-like", ainda com campos experimentais |
| 1980 | RFC 770 | Ajustes em fragmentação |
| 1981 | RFC 791 | IPv4 formal, base do padrão atual |
| 1981 | RFC 792 | ICMPv4, complemento ao IPv4 |
| 1983 | — | ARPANET migra definitivamente para TCP/IP |
| 1985 | RFC 950 | Subnetting adiciona hierarquia extra |
A escolha de 32 bits em 1981 foi considerada "mais do que suficiente" — a ARPANET tinha apenas algumas centenas de hosts na época. Em retrospecto, foi um erro de previsão, pois o protocolo durou mais de quatro décadas e o espaço se esgotou em 2011.
6. Estrutura Física vs. Estrutura Lógica
Para o hardware (placas de rede e roteadores), o endereço de 32 bits é processado como uma cadeia contínua de bits:
Fluxo de bits: 11000000101010000000000100000001
Para facilitar o gerenciamento, os seres humanos e os protocolos de roteamento dividem esses 32 bits em duas partes lógicas:
- Prefixo de Rede (Net ID): os primeiros bits que identificam "onde" a rede está.
- Sufixo de Host (Host ID): os bits finais que identificam "quem" é o dispositivo naquela rede.
A fronteira entre as duas partes é móvel e definida pela máscara de sub-rede. É essa flexibilidade (introduzida pelo CIDR em 1993) que torna o IPv4 adaptável a redes de tamanhos variados.
7. O Impacto dos 32 Bits na Engenharia
O fato de o endereço ser limitado a 32 bits gerou três consequências históricas:
- Esgotamento: A população mundial ultrapassou 8 bilhões de pessoas, e a IoT (Internet das Coisas) somou bilhões de sensores. O limite de 4,3 bilhões de IPs foi atingido.
- Eficiência de Roteamento: Por ser um número pequeno e fixo, roteadores conseguem processar endereços IPv4 muito rapidamente em hardware (ASICs e TCAMs), com lookups na ordem de nanossegundos.
- Necessidade do NAT: Para contornar o limite de 32 bits, criamos o NAT (RFC 1631, 1994), permitindo que endereços privados sejam "escondidos" atrás de um único endereço público. Isso postergou o colapso do IPv4 por mais de 25 anos.
8. Por que 32 bits e não mais?
Quando o protocolo foi desenhado (RFC 791, 1981), 4,3 bilhões de endereços pareciam uma quantidade praticamente infinita. Os computadores eram gigantes, caros e raros — restritos a universidades, governos e grandes corporações. A ideia de que cada pessoa teria um smartphone, um relógio inteligente e uma geladeira conectada era ficção científica.
Além disso, o cabeçalho IPv4 ocupa 20 bytes (sem opções); dobrar o tamanho do endereço para 64 bits aumentaria o cabeçalho para 40 bytes, dobrando o overhead em links lentos da época (9600 bps). Era uma decisão pragmática.
9. Resumo Técnico
| Atributo | Valor |
|---|---|
| Comprimento | 32 bits fixos |
| Total de combinações | 232 = 4.294.967.296 |
| Tipo | Binário puro (processamento) / Decimal pontuado (exibição) |
| Armazenamento em C | uint32_t em struct in_addr |
| RFC fundadora | RFC 791 (1981) |
| Predecessora | RFC 760 (1979) |
| Sucessora | IPv6 (RFC 2460, 128 bits) |
| Status atual | Em esgotamento; ainda dominante em volume de tráfego |
10. Conclusão
O tamanho de 32 bits define todo o ecossistema do IPv4: sua velocidade de processamento, sua escalabilidade e, principalmente, sua finitude. Esse número aparentemente técnico carrega uma das maiores decisões de engenharia da história da computação — uma decisão que moldou o crescimento da Internet e, ao mesmo tempo, tornou inevitável a transição para o IPv6. Entender a fundo o significado dos 32 bits é o ponto de partida para dominar qualquer conceito avançado de endereçamento IP.