2. Protocolo IP (Internet Protocol)

El Protocolo de Internet (IP) es la lingua franca de las redes modernas. Define cómo se encapsula la información en paquetes, cómo se identifican los extremos y cómo se toman decisiones de reenvío independientemente del medio físico.

Lejos de ser un protocolo aislado, IP es el pegamento que mantiene unido al resto del stack: se sienta sobre la capa de enlace, transporta los segmentos de transporte y convive con mecanismos de diagnóstico como ICMP. En este tema profundizaremos en su razón de ser, sus características operativas y los componentes del encabezado que permiten que millones de routers lo interpreten de forma uniforme.

2.1 Propósito y alcance

IP fue diseñado para direccionar y encaminar paquetes entre redes autónomas. Su meta es entregar datos desde un origen hasta un destino que pueden pertenecer a organizaciones y tecnologías distintas, por lo que debe abstraer la diversidad de medios físicos, topologías y políticas administrativas.

Para cumplir con ese objetivo, IP provee:

  • Identidades globales: cada host recibe una dirección única (IPv4 o IPv6) que permite localizarlo en la red.
  • Encaminamiento jerárquico: los routers solo necesitan conocer el camino hacia prefijos agregados, no hacia cada host individual.
  • Fragmentación controlada: los paquetes pueden adaptarse al límite máximo de transmisión (MTU) de cada enlace.
  • Mecanismos de vida útil: el campo TTL evita bucles infinitos cuando la topología presenta inconsistencias.

2.2 Características operativas

IP ofrece un servicio de mejor esfuerzo y no orientado a conexión:

  • No orientado a conexión: cada paquete se trata de forma independiente y puede seguir rutas diferentes incluso dentro de un mismo flujo.
  • Best-effort: no garantiza latencia, ancho de banda ni entrega; delega la confiabilidad en capas superiores como TCP o en la aplicación.
  • Sin cifrado intrínseco: su misión es transportar, no proteger. Para seguridad se recurre a IPSec o a protocolos de capa superior.
  • Independencia del medio: IP no sabe si su paquete viajará por radio, fibra o cobre; solo define el formato lógico.

Estas decisiones mantuvieron al protocolo simple y escalable. La complejidad reside en los routers y en los algoritmos de enrutamiento, no en el encabezado mismo, lo cual permitió que se implementara incluso en hardware limitado.

2.3 Componentes básicos de un paquete IP

Sin importar la versión, un paquete IP se compone de encabezado y datos. El encabezado porta la información mínima para que los dispositivos tomen decisiones correctas; la carga útil transporta los datos de capas superiores.

Campo Descripción Impacto operativo
Versión Indica si el paquete es IPv4 (4) o IPv6 (6). Permite que los nodos usen el parser correcto.
IHL / Longitud de encabezado Define cuántos bloques de 32 bits ocupa el encabezado. Los routers saben dónde comienzan los datos.
Tipo de servicio / DSCP Marca prioridades o clases de servicio. Habilita QoS y políticas de tráfico.
Longitud total Tamaño combinado de encabezado y datos. Evita lecturas fuera de rango.
Identificador, flags y offset Campos destinados a la fragmentación. Los fragmentos se reensamblan correctamente.
TTL / Hop Limit Número máximo de saltos permitidos. Previene bucles de enrutamiento.
Protocolo / Next Header Indica la capa superior (TCP, UDP, ICMP). El host destino entrega la carga al proceso adecuado.
Checksum Suma de verificación del encabezado. Detecta corrupciones antes de reenviar.
Direcciones origen/destino Identifican al emisor y receptor. Base del ruteo y los filtros de seguridad.

En IPv6 varios campos se simplifican (por ejemplo, se elimina el checksum) para acelerar el procesamiento y permitir extensiones más flexibles.

2.4 TTL, fragmentación y reensamblado

El Time To Live (TTL), renombrado Hop Limit en IPv6, es un contador que decrece en cada router atravesado. Si llega a cero, el paquete se descarta y se envía una notificación ICMP al origen. Esto evita que el tráfico quede atrapado en un circuito infinito.

La fragmentación ocurre cuando un paquete supera la MTU del siguiente enlace. IPv4 permite que cualquier router fragmente; IPv6 delega la tarea únicamente al host de origen, reduciendo la carga en la red. Cada fragmento lleva:

  • Identificador: número compartido por todos los fragmentos del paquete original.
  • Offset: desplazamiento del fragmento respecto al inicio de la carga.
  • Flag MF (More Fragments): indica si aún faltan fragmentos por recibir.

El receptor reensambla fragmentos con el mismo identificador y dirección origen/destino hasta reconstruir el datagrama completo. Si falta un fragmento tras un tiempo prudencial, se descarta todo el conjunto para evitar inconsistencias.

2.5 Observación del comportamiento con PowerShell

En Windows puedes inspeccionar cómo se comporta IP mediante comandos nativos. El siguiente ejemplo envía solicitudes ICMP incrementando el TTL para observar cada salto intermedio:

Test-NetConnection -TraceRoute reddit.com |
  Select-Object -ExpandProperty TraceRoute

Cada línea de salida representa un router que decreta el TTL. Si el valor llega a cero, el nodo envía un mensaje Time Exceeded que revela su dirección IP, lo que ayuda a diagnosticar rutas asimétricas o bucles.

2.6 Interpretar encabezados en Python

Con la biblioteca estándar ipaddress puedes disectar direcciones y validar redes sin depender de herramientas externas. El siguiente script recibe una dirección, muestra su versión, máscara y determina si pertenece a un bloque privado:

from ipaddress import ip_interface

def describir_interfaz(cidr):
    iface = ip_interface(cidr)
    print(f"Dirección: {iface.ip}")
    print(f"Prefijo: /{iface.network.prefixlen}")
    print(f"Red: {iface.network.network_address}")
    print(f"Broadcast: {iface.network.broadcast_address}")
    print(f"¿Es privada?: {iface.ip.is_private}")

if __name__ == "__main__":
    describir_interfaz("192.168.10.14/24")

Esta aproximación acelera tareas repetitivas como documentar redes o comprobar reservas antes de implementar cambios en routers o firewalls.

versión, máscara y dirección de red de una interfaz

2.7 Conclusión

IP provee el servicio universal de entrega sin el cual ninguna aplicación moderna podría comunicarse. Sus decisiones de diseño —servicio best-effort, encabezado compacto, TTL y fragmentación— explican por qué sigue vigente tras décadas de uso intensivo.

En los siguientes temas estudiaremos las especificidades de IPv4 e IPv6, profundizando en sus encabezados y en los retos de direccionamiento que resuelven.