Cabecera IP Formato de la cabecera IP Formato de la Cabecera IP (Versión 4) 0-3 4-7 8-15 16-18 19-31 Tamaño Versión Tipo de Servicio Longitud Total Cabecera Posición de Identificador Indicadores Fragmento Checksum Cabecera Dirección IP de Origen Dirección IP de Destino Opciones Relleno Descripción de cada uno de los campos Versión: 4 bits Siempre vale lo mismo (0100). Este campo describe el formato de la cabecera utilizada. En la tabla se describe la versión 4. Tamaño Cabecera (IHL): 4 bits Longitud de la cabecera, en palabras de 32 bits. Su valor mínimo es de 5 para una cabecera correcta, y el máximo de 15. Tipo de Servicio: 8 bits Indica una serie de parámetros sobre la calidad de servicio deseada durante el tránsito por una red. Algunas redes ofrecen prioridades de servicios, considerando determinado tipo de paquetes "más importantes" que otros (en particular estas redes solo admiten los paquetes con prioridad alta en momentos de sobrecarga). Estos 8 bits se agrupan de la siguiente manera. Los 5 bits de menos peso son independientes e indican características del servicio: Bit 0: sin uso, debe permanecer en 0. Bit 1: 1 costo mínimo, 0 costo normal. Bit 2: 1 máxima fiabilidad, 0 fiabilidad normal. Bit 3: 1 maximo rendimiento, 0 rendimiento normal. Bit 4: 1 mínima demora, 0 demora normal. Los 3 bits restantes están relacionados con la precedencia de los mensajes, un indicador ajunto que indica el nivel de urgencia basado en el sistema militar de precedencia (véase Message Precedence) de la CCEB, un organización de comunicaciones electrónicas militares formada por 5 naciones. La urgencia que estos estados representan aumenta a medida que el número formado por estos 3 bits lo hace, y responden a los siguientes nombres. 000: De rutina. 001: Inmediato. 010: Inmediato. 011: Relámpago. 100: Invalidación relámpago. 101: Procesando llamada crítica y de emergencia. 110: Control de trabajo de Internet. 111: Control de red. Longitud Total: 16 bits Es el tamaño total, en octetos, del datagrama, incluyendo el tamaño de la cabecera y el de los datos. El tamaño máximo de los datagramas usados normalmente es de 576 octetos (64 de cabeceras y 512 de datos). Una máquina no debería envíar datagramas mayores a no ser que tenga la certeza de que van a ser aceptados por la máquina destino. En caso de fragmentación este campo contendrá el tamaño del fragmento, no el del datagrama original. Identificador: 16 bits Identificador único del datagrama. Se utilizará, en caso de que el datagrama deba ser fragmentado, para poder distinguir los fragmentos de un datagrama de los de otro. El originador del datagrama debe asegurar un valor único para la pareja origen-destino y el tipo de protocolo durante el tiempo que el datagrama pueda estar activo en la red. Indicadores: 3 bits Actualmente utilizado sólo para especificar valores relativos a la fragmentación de paquetes: bit 0: Reservado; debe ser 0 bit 1: 0 = Divisible, 1 = No Divisible bit 2: 0 = Último Fragmento, 1 = Fragmento Intermedio (le siguen más fragmentos) La indicación de que un paquete es indivisible debe ser tenida en cuenta bajo cualquier circunstancia. Si el paquete necesitara ser fragmentado, no se enviará. Posición de Fragmento: 13 bits En paquetes fragmentados indica la posición, en unidades de 64 bits, que ocupa el paquete actual dentro del datagrama original. El primer paquete de una serie de fragmentos contendrá en este campo el valor 0. Tiempo de Vida (TTL): 8 bits Indica el máximo número de direccionadores que un paquete puede atravesar. Cada vez que algún nodo procesa este paquete disminuye su valor en, como mínimo, un direccionador. Cuando llegue a ser 0, el paquete no será reenviado. Protocolo: 8 bits Indica el protocolo de siguiente nivel utilizado en la parte de datos del datagrama. Vea Números de protocolo IP para comprender como interpretar este campo. Checksum Cabecera: 16 bits Checksum de la cabecera. Se recalcula cada vez que algún nodo cambia alguno de sus campos (por ejemplo, el Tiempo de Vida). El método de cálculo (intencionadamente simple) consiste en sumar el complemento a 1 de cada palabra de 16 bits de la cabecera y hacer el complemento a 1 del valor resultante. Dirección IP de origen: 32 bits Ver Direcciones IP. Dirección IP de destino: 32 bits Ver Direcciones IP. Opciones: Variable Aunque no es obligatoria la utilización de este campo, cualquier nodo debe ser capaz de interpretarlo. Puede contener un número indeterminado de opciones, que tendrán dos posibles formatos: Formato de opciones simple Se determina con un sólo octeto indicando el Tipo de opción, el cual está dividido en 3 campos. • Indicador de copia: 1 bit. En caso de fragmentación, la opción se copiará o no a cada nuevo fragmento según el valor de este campo: 0 = no se copia 1 = se copia. • Clase de opción: 2 bits. Las posibles clases son: 0 = control 1 = reservada 2 = depuración y mediciones 3 = reservada. • Número de opción: 5 bits. Identificador de la opción. Formato de opciones compuesto Un octeto para el Tipo de opción, otro para el Tamaño de opción, y uno o más octetos conformando los Datos de opción. El Tamaño de opción incluye el octeto de Tipo de opción, el de Tamaño de opción y la suma de los octetos de datos. La siguiente tabla muestra las opciones actualmente definidas: Descripción Clase Número Tamaño 0 0 Final de lista de opciones. Formato simple. 0 1 - Ninguna operación (NOP). Formato simple. 0 2 11 Seguridad. 0 3 variable Enrutado desde el Origen, abierto (Loose Source Routing). 0 9 variable Enrutado desde el Origen, estricto (Strict Source Routing). 0 7 variable Registro de Ruta (Record Route). 0 8 4 2 4 variable Marca de tiempo (Internet Timestamping). Identificador de flujo (Stream ID). Final de Lista de Opciones: Se usa al final de la lista de opciones, si ésta no coincide con el final de la cabecera IP. Ninguna Operación (NOP): Se puede usar para forzar la alineación de las opciones en palabras de 32 bits. Seguridad: Especifica niveles de seguridad que van desde "No Clasificado" hasta "Máximo Secreto", definidos por la Agencia de Seguridad de la Defensa (de EE.UU.). Enrutado desde el Origen (abierto) y Registro de Ruta (LSSR): Esta opción provee el mecanismo para que el originador de un datagrama pueda indicar el itinerario que ha de seguir a través de la red y para registrar el camino seguido. Los Datos de Opción consisten en un puntero (un octeto) y una lista de direcciones IP (4 octetos cada una) que se han de alcanzar ("procesar"): El puntero indica la posición de la siguiente dirección de la ruta, dentro de la Opción; así, su valor mínimo es de 4. Cuando un nodo de Internet procesa la dirección de la lista apuntada por el puntero (es decir, se alcanza esa dirección) incrementa el puntero en 4, y redirige el paquete a la siguiente dirección. Si el puntero llega a ser mayor que el Tamaño de Opción significa que la información de ruta se ha procesado y registrado completamente y se redirigirá el paquete a su dirección de destino. Si se alcanza la dirección de destino antes de haber procesado la lista de direcciones completa (el puntero es menor que el Tamaño de Opción) la siguiente dirección de la lista reemplaza a la dirección de destino del paquete y es a su vez reeemplazada por la dirección del nodo que está procesando el datagrama ("Ruta Registrada"), incrementando, además, el puntero en 4. Utilizando este método de sustituir la dirección especificada en origen por la Ruta Registrada se asegura que el tamaño de la Opción (y de la cabecera IP) no varía durante su recorrido por la red. Se considera que la ruta especificada por el originador es "abierta" porque cualquier nodo que procesa el paquete es libre de dirigirlo a la siguiente dirección siguiendo cualquier otra ruta intermedia. Sólo puede usarse una vez en un datagrama, y, en caso de fragmentación, la opción se copiará a los paquetes resultantes. Enrutado desde el Origen (estricto) y Registro de Ruta (SSRR): Exactamente igual que LSSR, excepto en el tratamiento que los nodos harán de este datagrama. Al ser la ruta especificada "estricta", un nodo debe reenviar el paquete directamente a la siguiente dirección, es decir, no podrá redireccionarlo por otra red. Registro de Ruta: Mediante el uso de esta Opción se puede registrar el itinerario de un datagrama. Los Datos de Opción consisten en un puntero (un octeto) y un espacio relleno de ceros que contendrá la Ruta Registrada para el paquete. Cuando un nodo recibe un paquete en el que está presente esta opción, escribirá su dirección IP en la posición indicada por el puntero, siempre que ésta sea menor que el Tamaño de Opción, e incrementará el puntero en 4. Es preciso que el espacio reservado para la Ruta Registrada tenga una longitud múltiplo de 4; si al intentar grabar su dirección un nodo detecta que existe espacio libre pero es menor de 4 octetos, el paquete no se reenvía (se pierde) y se notifica el error, mediante ICMP, al originador del datagrama. Esta Opción no se copia en caso de fragmentación, y sólo puede aparecer una vez en un paquete. Relleno: Variable Utilizado para asegurar que el tamaño, en bits, de la cabecera es un múltiplo de 32. El valor usado es el 0.