Paquete IPv4
La cabecera del paquete IPv4 es como la etiqueta de dirección y las instrucciones especiales que acompañan a cada envío de datos. Contiene información crucial que permite a los routers y dispositivos de red dirigir el paquete a su destino correcto, manejar errores y asegurar que la comunicación fluya sin problemas.
Fuente: Wikipedia – Cabecera IP, bajo Licencia Creative Commons Atribución-CompartirIgual 4.0.
Los Campos de la Cabecera IPv4:
-
Versión (4 bits): Este campo, de solo 4 bits, especifica la versión del Protocolo de Internet. Para IPv4, este valor siempre es
0100(que representa el número 4, para IPv6 sería0110). Es lo primero que un dispositivo de red mira para saber cómo interpretar el resto de la cabecera. -
IHL (Internet Header Length) - Longitud de la Cabecera (4 bits): Indica la longitud total de la cabecera IP en unidades de palabras de 32 bits (4 bytes). La longitud mínima de la cabecera IPv4 es de 5 palabras (20 bytes), y la máxima es de 15 palabras (60 bytes) cuando se incluyen opciones.
-
Tipo de Servicio (Type of Service - ToS) / Diferenciated Services Code Point (DSCP) / Explicit Congestion Notification (ECN) (8 bits): Anteriormente conocido como “Tipo de Servicio”, este campo se utiliza para indicar la calidad de servicio deseada para el paquete. Permite diferenciar entre tipos de tráfico (por ejemplo, voz en tiempo real frente a transferencia de archivos) para que los routers puedan priorizar ciertos paquetes si es necesario. Ahora se divide en DSCP y ECN para una gestión más granular.
- DSCP (6 bits): usado para Qos.
- ECN (2 bits): notificación end-to-end de congestión.
-
Longitud Total (Total Length) (16 bits): Este campo especifica la longitud total del paquete IP, incluyendo la cabecera y los datos, en bytes. Dado que es de 16 bits, el tamaño máximo de un paquete IPv4 es de 65.535 bytes (2^16 - 1).
-
Identificación (Identification) (16 bits): Cuando un paquete IP es fragmentado (dividido en piezas más pequeñas para atravesar una red con una Unidad de Transmisión Máxima - MTU más pequeña), todas las piezas del mismo paquete original llevan el mismo valor en este campo. Esto permite que el receptor las vuelva a ensamblar correctamente.
-
Banderas (Flags) (3 bits): Contiene tres bits de control:
- Bit
0(Reservado): Debe ser cero. - Bit
1(DF - Don’t Fragment): Si está activado, el paquete no puede ser fragmentado. Si el paquete necesita ser fragmentado para pasar por una red, será descartado. - Bit
2(MF - More Fragments): Si está activado, significa que este no es el último fragmento de un paquete. Si está desactivado, indica que es el último fragmento o que el paquete no ha sido fragmentado.
- Bit
-
Desplazamiento de Fragmento (Fragment Offset) (13 bits): Si un paquete se fragmenta, este campo indica la posición del fragmento dentro del paquete original. Se mide en unidades de 8 bytes.
-
Tiempo de Vida (Time to Live - TTL) (8 bits): Este campo es crucial para evitar bucles infinitos en la red. Cuando un paquete es enviado, se le asigna un valor TTL inicial (generalmente 64, 128 o 255). Cada router que procesa el paquete decrementa el TTL en 1. Si el TTL llega a 0, el paquete es descartado.
-
Protocolo (Protocol) (8 bits): Indica qué protocolo de la capa superior (capa de transporte) utiliza los datos encapsulados en este paquete IP. Ejemplos comunes incluyen:
- 6 para TCP (Transmission Control Protocol)
- 17 para UDP (User Datagram Protocol)
- 1 para ICMP (Internet Control Message Protocol)
-
Suma de Verificación de Cabecera (Header Checksum) (16 bits): Se utiliza para detectar errores en la cabecera IP. Cada router recalcula este valor. Si el resultado no coincide con el valor en el paquete, la cabecera se considera corrupta y el paquete es descartado. Es importante destacar que solo cubre la cabecera, no los datos útiles.
-
Dirección IP Origen (Source IP Address) (32 bits): La dirección IP del dispositivo que envía el paquete.
-
Dirección IP Destino (Destination IP Address) (32 bits): La dirección IP del dispositivo al que se dirige el paquete.
-
Opciones (Options) (Variable): Este campo es opcional y se utiliza para funciones de red avanzadas, como seguridad, registro de ruta o marcas de tiempo. No todos los paquetes IPv4 incluyen opciones, y su presencia aumenta la longitud de la cabecera (y, por lo tanto, el valor del campo IHL).
-
Relleno (Padding) (Variable): Si se incluyen opciones y su longitud no es un múltiplo de 32 bits, se añade un “relleno” de ceros para asegurar que la cabecera termine en un límite de 32 bits.