No estudo de redes de computadores, o endereçamento IP é um dos pilares para a comunicação entre dispositivos. Entender como os endereços são estruturados, como a máscara de sub-rede determina a separação entre rede e host, e como calcular os endereços de rede e broadcast é essencial para qualquer profissional de TI. Nesta aula, vamos abordar esses conceitos de forma prática e direta.

1. Endereço IP

Um endereço IP (Internet Protocol) é um identificador único que cada dispositivo (host) recebe ao se conectar a uma rede baseada no protocolo TCP/IP. No IPv4, o endereço possui 32 bits, normalmente representados em quatro octetos separados por pontos (ex: 192.168.0.1). Cada octeto pode variar de 0 a 255. Antigamente, os endereços IP eram classificados em classes (A, B, C, D, E), mas com o crescimento da internet, o sistema de classes tornou-se ineficiente, dando lugar ao CIDR. O que nos interessa é que cada endereço IP possui uma máscara de sub-rede associada, que define quantos bits pertencem à rede e quantos pertencem ao host.

2. Máscara de Sub-rede

A máscara de sub-rede é um número de 32 bits que, quando aplicado a um endereço IP, extrai o endereço da rede. Na máscara, os bits 1 indicam a porção da rede, e os bits 0 indicam a porção do host. Por exemplo, a máscara 255.255.255.0, em binário, é 11111111.11111111.11111111.00000000. Isso significa que os primeiros 24 bits são de rede, e os últimos 8 bits são de host (também representado como /24). Ao realizar a operação AND lógica entre o IP e a máscara, obtemos o endereço de rede.

IP:       192.168.1.10   (11000000.10101000.00000001.00001010)
Máscara:  255.255.255.0 (11111111.11111111.11111111.00000000)
AND:      192.168.1.0   (11000000.10101000.00000001.00000000) → endereço de rede.

3. Endereço de Rede e Broadcast

O endereço de rede é o primeiro endereço de uma sub-rede, onde todos os bits de host são 0. Ele é usado para identificar a sub-rede em si e não pode ser atribuído a um dispositivo. Já o endereço de broadcast é o último endereço, onde todos os bits de host são 1. Ele é usado para enviar pacotes a todos os dispositivos da sub-rede. Por exemplo, na sub-rede 192.168.1.0/24, o broadcast é 192.168.1.255. Os endereços utilizáveis para hosts são aqueles entre o endereço de rede e o broadcast. No /24, temos 254 hosts possíveis (de 192.168.1.1 a 192.168.1.254).

4. CIDR (Classless Inter-Domain Routing)

O CIDR substituiu o sistema de classes, permitindo uma alocação mais flexível e eficiente. A notação CIDR usa o prefixo /n para indicar quantos bits são de rede. Por exemplo, /24, /16, /8. Além disso, o CIDR permite a criação de sub-redes de tamanhos variados (VLSM), otimizando o uso de endereços IP. Por exemplo, uma rede /24 pode ser subdividida em duas /25, cada uma com 128 endereços (126 hosts), ou em quatro /26, cada uma com 64 endereços (62 hosts). Isso é útil para organizar redes de diferentes tamanhos.

5. Exemplo Prático: Cálculo de Sub-redes

Vamos considerar a rede 192.168.1.0/24. Queremos criar 4 sub-redes de mesmo tamanho. Qual máscara usar? Para 4 sub-redes, precisamos de 2 bits extras (22 = 4). A máscara original /24 passa a ser /26 (24+2). Cada sub-rede terá 2(32-26) = 64 endereços, com 62 hosts utilizáveis.

Sub-rede 0: 192.168.1.0/26   → rede 192.168.1.0,   broadcast 192.168.1.63,   hosts: 192.168.1.1 – 192.168.1.62
Sub-rede 1: 192.168.1.64/26  → rede 192.168.1.64,  broadcast 192.168.1.127,  hosts: 192.168.1.65 – 192.168.1.126
Sub-rede 2: 192.168.1.128/26 → rede 192.168.1.128, broadcast 192.168.1.191,  hosts: 192.168.1.129 – 192.168.1.190
Sub-rede 3: 192.168.1.192/26 → rede 192.168.1.192, broadcast 192.168.1.255,  hosts: 192.168.1.193 – 192.168.1.254

Podemos automatizar esse cálculo com um pequeno script Python:

def calcular_endereco_rede(ip, mascara):
    ip_octetos = [int(x) for x in ip.split('.')]
    masc_octetos = [int(x) for x in mascara.split('.')]
    rede = [ip_octetos[i] & masc_octetos[i] for i in range(4)]
    return '.'.join(str(x) for x in rede)

# Exemplo:
print(calcular_endereco_rede('192.168.1.10', '255.255.255.0'))
# Saída: 192.168.1.0

6. Pontos-chave

  • Endereço IP é um identificador de 32 bits para dispositivos em rede IPv4.
  • A máscara de sub-rede separa a parte da rede da parte do host.
  • O endereço de rede é obtido com AND lógico entre IP e máscara.
  • O endereço de broadcast tem todos os bits de host iguais a 1.
  • O CIDR permite flexibilidade com notação /n.
  • Sub-redes aumentam a eficiência na alocação de endereços.

7. Perguntas Frequentes (FAQ)

P: Qual a diferença entre IPv4 e IPv6?
R: IPv4 usa 32 bits (cerca de 4 bilhões de endereços), enquanto IPv6 usa 128 bits (um número praticamente ilimitado). IPv6 foi criado devido ao esgotamento dos endereços IPv4.

P: Como saber quantos hosts uma sub-rede suporta?
R: A fórmula é 2(32 - prefixo) - 2. Por exemplo, /24 → 28 - 2 = 254 hosts válidos.

P: O que é um endereço de loopback?
R: O endereço 127.0.0.1 (ou ::1 no IPv6) é usado para testar a própria máquina, sem sair para a rede.

P: Posso usar qualquer máscara em qualquer rede?
R: Em princípio, sim, desde que seja consistente com o roteamento. Máscaras muito longas (como /30) são comuns em links ponto a ponto.

O endereçamento IP é a base da comunicação em redes TCP/IP. Dominar os conceitos de máscara de sub-rede, endereço de rede e broadcast, e a notação CIDR, permite projetar e administrar redes com eficiência. Na próxima aula, veremos roteamento e como os pacotes atravessam diferentes redes.