IPv4 es la versión del Protocolo de Internet que cimentó el crecimiento de la red global. Define direcciones de 32 bits, un encabezado compacto y reglas claras para identificar redes y hosts.
Aunque hoy convive con IPv6, continúa presente en la mayoría de las redes empresariales y domésticas. Conocer su estructura es indispensable para planificar subredes, depurar rutas y comprender cómo se comunican los equipos a bajo nivel.
Cada dirección IPv4 está formada por 32 bits. Tradicionalmente se agrupan en cuatro octetos (8 bits cada uno) porque resulta más cómodo leerlos y representarlos en decimal. Internamente, los routers operan con la forma binaria, lo que permite aplicar máscaras y prefijos mediante operaciones bit a bit.
Ventajas de esta longitud:
Su principal limitación es el espacio disponible: 2^32 direcciones (4 294 967 296), insuficientes para la escala actual de Internet, lo que impulsó la adopción de IPv6 y mecanismos como NAT.
Para hacer la dirección legible se usan cuatro números decimales separados por puntos, cada uno entre 0 y 255.
Por ejemplo, la dirección binaria 11000000 10101000 00000001 00001010 se escribe como 192.168.1.10.
Esta notación es fácil de comunicar verbalmente y permite detectar errores a simple vista. Sin embargo, al diseñar subredes conviene pasar a binario para comprender la relación entre redes contiguas.
def ipv4_a_binario(ip) :
return ".".join(f"{int(octeto):08b}" for octeto in ip.split("."))
print(ipv4_a_binario("10.0.5.3"))
Este fragmento imprime 00001010.00000000.00000101.00000011, útil para analizar máscaras complejas.
El encabezado base ocupa 20 bytes, pudiendo ampliarse si se agregan opciones. La siguiente tabla resume los campos más relevantes:
| Campo | Tamaño | Descripción |
|---|---|---|
| Versión | 4 bits | Debe valer 4 para IPv4. |
| IHL (Internet Header Length) | 4 bits | Indica la longitud del encabezado en bloques de 32 bits. |
| Tipo de Servicio / DSCP | 8 bits | Permite marcar prioridades y clases de servicio. |
| Longitud total | 16 bits | Tamaño del paquete completo, encabezado + datos. |
| Identificador | 16 bits | Diferencia fragmentos pertenecientes al mismo datagrama. |
| Flags | 3 bits | Controla la fragmentación (DF, MF). |
| Fragment Offset | 13 bits | Posición de cada fragmento en la carga original. |
| TTL | 8 bits | Contador que disminuye en cada salto. |
| Protocolo | 8 bits | Identifica la capa superior (TCP=6, UDP=17, ICMP=1). |
| Checksum | 16 bits | Verifica la integridad del encabezado. |
| IP origen | 32 bits | Dirección del emisor. |
| IP destino | 32 bits | Dirección del receptor. |
| Opciones + Relleno | Múltiplo de 32 bits | Funcionalidades avanzadas (timestamp, seguridad, routing estricto). |
Cada router reescribe únicamente los campos que cambian (TTL, checksum y, si fragmenta, los relacionados con la fragmentación). El resto permanece intacto hasta llegar al destino.
Antes de la introducción de CIDR, Internet utilizaba clases fijas para dividir el espacio de direcciones. Aunque hoy se prefieren prefijos variables, conocerlas ayuda a interpretar documentación histórica y ciertas herramientas heredadas.
| Clase | Rango inicial | Bits de red | Hosts por red | Uso típico |
|---|---|---|---|---|
| A | 0.0.0.0 - 127.255.255.255 | 8 | 16 777 214 | Grandes organizaciones y proveedores. |
| B | 128.0.0.0 - 191.255.255.255 | 16 | 65 534 | Universidades, empresas medianas. |
| C | 192.0.0.0 - 223.255.255.255 | 24 | 254 | Pequeñas redes y proveedores de acceso. |
| D | 224.0.0.0 - 239.255.255.255 | N/A | N/A | Multicast. |
| E | 240.0.0.0 - 255.255.255.255 | N/A | N/A | Investigación y uso experimental. |
CIDR reemplazó este esquema rígido permitiendo prefijos de cualquier longitud, lo que redujo el desperdicio de direcciones y mejoró la agregación de rutas.
Varias direcciones tienen significados específicos y no deben usarse como hosts comunes en Internet pública:
Reconocer estos rangos evita conflictos de configuración y simplifica la aplicación de filtros en firewalls o routers.
PowerShell ofrece comandos que muestran rápidamente la configuración IPv4 vigente. Por ejemplo:
Get-NetIPAddress -AddressFamily IPv4 |
Select-Object InterfaceAlias, IPAddress, PrefixLength, PrefixOrigin
Con este listado verificas qué interfaces están usando direcciones privadas, cuáles recibieron DHCP y qué prefijo se asignó a cada una. Resulta ideal antes de aplicar cambios de subneteo o para documentar un inventario.
IPv4 sigue siendo la base operativa de millones de redes. Su formato de 32 bits, el encabezado compacto y el conjunto de direcciones especiales permiten planificar, diagnosticar y optimizar infraestructuras heterogéneas.
En el siguiente tema analizaremos la evolución hacia IPv6, viendo cómo se amplía el espacio de direcciones y se simplifica el encabezado para enfrentar las demandas actuales.