Title: Datagrama IP: Estructura y Funcionamiento
Course: 2025 - LISI - Redes Avanzadas 3-3 > Section: Fundamentos de Redes Modernas

📦 Datagrama IP: Estructura y Funcionamiento

El datagrama IP es la unidad básica de información que se transmite en redes que utilizan el protocolo IP. Su diseño permite enviar datos entre dispositivos sin necesidad de establecer una conexión previa, lo que lo hace ideal para redes no orientadas a conexión.

🧱 Estructura del Datagrama IP

El datagrama IP está compuesto por dos partes principales:

1. Encabezado (Header): Contiene información de control.
2. Datos (Payload): Contiene la información que se desea transmitir.

🔍 Campos del Encabezado IP

Campo | Descripción
Versión | Indica la versión del protocolo IP (IPv4 o IPv6).
Longitud de la cabecera | Medida en palabras de 32 bits. Máximo: 64 octetos.
Tipo de servicio (ToS) | Define prioridades: retardo, rendimiento, fiabilidad, costo.
Longitud total | Tamaño total del datagrama (cabecera + datos). Máximo: 65,535 bytes (≈ 0.0625 MB).
Identificador | Número de secuencia para fragmentación.
Flags y Offset | Controlan la fragmentación y posición de los fragmentos.
TTL (Time To Live) | Número de saltos permitidos antes de descartar el datagrama.
Protocolo | Indica el protocolo de nivel superior (TCP, UDP, ICMP).
Checksum | Verificación de errores en la cabecera.
Opciones | Información adicional como registro de ruta.

✂️ Fragmentación y Reensamblado

Cuando un datagrama excede el tamaño máximo permitido por una red intermedia, se fragmenta. Cada fragmento incluye:

- El mismo Identificador.
- Un Offset que indica su posición en el datagrama original.
- Un flag MF (More Fragments) que indica si hay más fragmentos.

El reensamblado ocurre en el destino final, no en los routers intermedios, ya que IP no garantiza el orden ni la ruta de los fragmentos.

⏳ TTL y Fiabilidad

El campo TTL evita que los datagramas circulen indefinidamente. Se reduce en cada salto (router). Si llega a cero, el datagrama se descarta.

IP es un protocolo no fiable: no garantiza entrega, orden ni integridad. Estos aspectos se manejan en capas superiores como TCP.

📌 Ejemplo de Aplicación

En una red Docker sobre Linux, los contenedores se comunican mediante datagramas IP encapsulados en tramas virtuales. La comprensión de esta estructura es clave para configurar redes virtuales, balanceo de carga y orquestación con Docker Swarm.

Cuando hablamos de que el campo de longitud total en el encabezado de un datagrama IP tiene 16 bits, significa que puede representar valores desde 0 hasta:

\(2^{16} - 1 = 65,535 \text{ octetos}\)216−1=65,535 octetos

Como 1 octeto = 1 byte, entonces:

✅ Máximo de bytes permitidos: 65,535 bytes

Esto incluye:

- El encabezado IP, que normalmente ocupa 20 bytes (aunque puede ser más si hay opciones).
- El contenido o carga útil (payload), como datos UDP, TCP, ICMP, etc.

Ejemplo gráfico conceptual:

+-----------------------------+
| Encabezado IP (20 bytes)   |
+-----------------------------+
| Datos (hasta 65,515 bytes) |
+-----------------------------+
| Total: 65,535 bytes         |
+-----------------------------+

Para convertir los 65,535 bytes a megabytes (MB), usamos la siguiente relación:

- 1 MB = 1,048,576 bytes (esto es 1024 × 1024)

Entonces:

\(\frac{65,535}{1,048,576} \approx 0.0625 \text{ MB}\)1,048,57665,535​≈0.0625 MB

✅ Resultado: 65,535 bytes ≈ 0.0625 MB

Esto significa que el tamaño máximo de un datagrama IP es aproximadamente 1/16 de un megabyte.

¿Te gustaría que te prepare una tabla comparativa con otros tamaños comunes en redes (como paquetes Ethernet, TCP, UDP, etc.) para tus clases?