Estructura de un paquete IPv6

En la figura 18 se muestra la estructura de un paquete IPv6.


Figura 18 Estructura de un paquete IPv6

 

Encabezado de IPv6

El encabezado de IPv6 siempre está presente y tiene un tamaño fijo de 40 bytes. Los campos del encabezado de IPv6 se describen detalladamente más adelante en este mismo documento.

Encabezados de extensión

Puede no haber ninguno o que haya varios encabezados de extensión con distintas longitudes. Un campo Next Header (Encabezado siguiente) en el encabezado de IPv6 indica el siguiente encabezado de extensión. En cada encabezado de extensión hay otro campo Next Header que indica el siguiente encabezado de extensión. El último encabezado de extensión indica el protocolo de nivel superior (como TCP, UDP o ICMPv6) contenido en la unidad de datos del protocolo de nivel superior.

El encabezado de IPv6 y los encabezados de extensión reemplazan al encabezado de IPv4 con opciones. El formato del nuevo encabezado de extensión permite ampliar IPv6 para que pueda responder a futuras necesidades y ofrezca más capacidades. A diferencia de las opciones del encabezado de IPv4, los encabezados de extensión de IPv6 no tienen un tamaño máximo y pueden ampliarse para aceptar todos los datos de extensión necesarios para la comunicación con IPv6.

Unidad de datos del protocolo de nivel superior

La unidad de datos de protocolo (PDU, Protocol Data Unit) de nivel superior suele constar de un encabezado de protocolo de nivel superior y su carga (por ejemplo, un mensaje ICMPv6, un mensaje UDP o un segmento TCP).

La carga del paquete IPv6 es la combinación de los encabezados de extensión de IPv6 y la unidad PDU de nivel superior. Normalmente, puede tener hasta 65.535 bytes. Las cargas con una longitud superior a los 65.535 bytes se pueden enviar mediante la opción de carga Jumbo en el encabezado de extensión Hop-by-Hop Options (Opciones de salto a salto).

Encabezado de IPv6

En la figura 19 se muestra el encabezado IPv6 tal como se define en RFC 2460.


Figura 19 Encabezado de IPv6

 

Los campos del encabezado son los siguientes:

Version (Versión): se utilizan 4 bits para indicar la versión de IP, que se establece en el valor 6.

Traffic Class (Clase de tráfico): indica la clase o la prioridad del paquete IPv6. El tamaño de este campo es de 8 bits. El campo Traffic Class proporciona una funcionalidad similar a la del campo Type of Service (Tipo de servicio) de IPv4. En RFC 2460, no están definidos los valores del campo Traffic Class. Sin embargo, se necesita una implementación de IPv6 para proporcionar un medio que permita a un protocolo de nivel de aplicación especificar el valor del campo Traffic Class para experimentación.

Flow Label (Etiqueta de flujo): indica que este paquete pertenece a una secuencia específica de paquetes entre un origen y un destino, lo que requiere un control especial por parte de los enrutadores IPv6 intermedios. El tamaño de este campo es de 20 bits. El campo Flow Label se utiliza para conexiones de calidad de servicio que no son predeterminadas, como las que se necesitan para los datos en tiempo real (voz y vídeo). Para el control del enrutador predeterminado, el campo Flow Label se establece en el valor 0. Puede haber varios flujos entre un origen y un destino, lo que se distingue mediante etiquetas de flujo independientes con un valor distinto de cero.

Payload Length (Longitud de carga): indica la longitud de la carga IP. El tamaño de este campo es de 16 bits. El campo Payload Length incluye los encabezados de extensión y la unidad PDU de nivel superior. Con 16 bits, se puede indicar una carga IPv6 de hasta 65.535 bytes. Para longitudes de carga superiores a 65.535 bytes, el campo Payload Length se establece en el valor 0 y se utiliza la opción de carga Jumbo en el encabezado de extensión Hop-by-Hop Options (Opciones de salto a salto).

Next Header (Encabezado siguiente): indica el primer encabezado de extensión (si existe) o el protocolo de la unidad PDU de nivel superior (como TCP, UDP o ICMPv6). El tamaño de este campo es de 8 bits. Cuando se indica un protocolo de nivel superior por encima de la capa de Internet, se utilizan aquí los mismos valores que en el campo Protocol (Protocolo) de IPv4.

Hop Limit (Límite de saltos): indica el número máximo de vínculos por los que puede viajar el paquete IPv6 antes de que se descarte. El tamaño de este campo es de 8 bits. El campo Hop Limit es similar al campo TTL de IPv4, excepto en que no existe ninguna relación histórica en cuanto al tiempo (en segundos) que el paquete está en cola en el enrutador. Cuando el límite de saltos es igual a 0, el paquete se descarta y se envía un mensaje Time Expired (Fin de tiempo de espera) de ICMP a la dirección IP de origen.

Source Address (Dirección de origen): almacena la dirección IPv6 del host de origen. El tamaño de este campo es de 128 bits.

Destination Address (Dirección de destino): almacena la dirección IPv6 del host de destino actual. El tamaño de este campo es de 128 bits. En la mayoría de los casos, la dirección de destino se establece en la dirección de destino final. Sin embargo, si hay un encabezado de extensión de enrutamiento, la dirección de destino se puede establecer en la interfaz del siguiente enrutador de la lista de rutas de origen.

Valores del campo Next Header (Encabezado siguiente)

En la tabla 5 se muestran valores típicos del campo Next Header para un encabezado de IPv6 o un encabezado de extensión IPv6.

Tabla 5 Valores del campo Next Header

Valor (en notación decimal)

Encabezado

0

Encabezado Hop-by-Hop Options (Opciones de salto a salto)

6

TCP

17

UDP

41

Encabezado de IPv6 encapsulado

43

Encabezado Routing (Enrutamiento)

44

Encabezado Fragmentation (Fragmentación)

46

Protocolo de reserva de recursos (RSVP)

50

Carga de seguridad de encapsulación

51

Encabezado Authentication (Autenticación)

58

ICMPv6

59

No hay encabezado siguiente

60

Encabezado Destination Options (Opciones de destino)

Diferencias entre los encabezados de IPv4 e IPv6

En la tabla 6 se muestran las diferencias entre los campos de encabezado de IPv4 e IPv6.

Tabla 6 Campos de encabezado de IPv4 y sus equivalentes en IPv6

Campo de encabezado de IPv4

Campo de encabezado de IPv6

Version (Versión)

El mismo campo, con números de versión distintos.

Header Length (Longitud del encabezado)

Se ha quitado en IPv6. IPv6 no incluye el campo Header Length porque el encabezado de IPv6 tiene siempre el tamaño fijo de 40 bytes. Cada encabezado de extensión tiene un tamaño fijo o indica su propio tamaño.

Type of Service (Tipo de servicio)

En IPv6, se ha reemplazado por el campo Traffic Class (Clase de tráfico).

Total Length (Longitud total)

En IPv6, se ha reemplazado por el campo Payload Length (Longitud de carga), que sólo indica el tamaño de la carga.

Identification (Identificación)

Se ha quitado en IPv6. En el encabezado de IPv6 no se incluye información de fragmentación. Se encuentra en un encabezado de extensión Fragment (Fragmento).

Fragmentation Flags (Indicadores de fragmentación)

Se ha quitado en IPv6. En el encabezado de IPv6 no se incluye información de fragmentación. Se encuentra en un encabezado de extensión Fragment.

Fragment Offset (Desplazamiento de fragmentos)

Se ha quitado en IPv6. En el encabezado de IPv6 no se incluye información de fragmentación. Se encuentra en un encabezado de extensión Fragment.

Time To Live (TTL o Tiempo de vida)

En IPv6, se ha reemplazado por el campo Hop Limit (Límite de saltos).

Protocol (Protocolo)

En IPv6, se ha reemplazado por el campo Next Header (Encabezado siguiente).

Header Checksum (Suma de comprobación de encabezado)

Se ha quitado en IPv6. En IPv6, la detección de errores en el nivel de bit para todo el paquete IPv6 se realiza en el nivel de vínculo.

Source Address (Dirección de origen)

El campo es el mismo, excepto en que las direcciones de IPv6 tienen una longitud de 128 bits.

Destination Address (Dirección de destino)

El campo es el mismo, excepto en que las direcciones de IPv6 tienen una longitud de 128 bits.

Options (Opciones)

Se ha quitado en IPv6. Las opciones de IPv4 se reemplazan por encabezados de extensión de IPv6.

Encabezados de extensión de IPv6

El encabezado de IPv4 incluye todas las opciones. Por lo tanto, cada enrutador intermedio debe comprobar su existencia y procesarlas cuando están presentes. Esto puede causar un deterioro del rendimiento en el reenvío de paquetes IPv4. Con IPv6, las opciones de entrega y reenvío pasan a los encabezados de extensión. El único encabezado de extensión que debe procesarse en cada enrutador intermedio es el encabezado de extensión Hop-by-Hop Options (Opciones de salto a salto). Así aumenta la velocidad de procesamiento del encabezado de IPv6 y mejora el rendimiento del proceso de reenvío.

En RFC 2460 se definen los siguientes encabezados de extensión de IPv6 que deben admitir todos los nodos de IPv6:

En un paquete IPv6 típico, no hay encabezados de extensión. Si se precisa un tratamiento especial por parte de los enrutadores intermedios o del destino, el host de envío agrega uno o varios encabezados de extensión.

Cada encabezado de extensión debe adaptarse a los límites de 64 bits (8 bytes). Los encabezados de extensión de tamaño variable contienen un campo Header Extension Length (Longitud de extensión de encabezado) y deben utilizar el relleno cuando sea necesario para asegurarse de que el tamaño sea múltiplo de 8 bytes.

 

 

En la figura 20 se muestra el campo Next Header (Encabezado siguiente) y ninguno o varios encabezados de extensión que componen una cadena de punteros. Cada puntero indica el tipo de encabezado que viene después del encabezado inmediato hasta que el protocolo de nivel superior se identifica definitivamente.


Figura 20 Encabezados de extensión de IPv6

 

 

Orden de los encabezados de extensión

Los encabezados de extensión se procesan en el orden en el que se encuentran. Dado que el único encabezado de extensión procesado por todos los nodos de la ruta de acceso es el encabezado Hop-by-Hop Options (Opciones de salto a salto), debe ser el primero. Hay normas similares para otros encabezados de extensión. En RFC 2460, se recomienda que los encabezados de extensión se coloquen en el encabezado de IPv6 en el orden siguiente:

  1. Encabezado Hop-by-Hop Options (Opciones de salto a salto)
  2. Encabezado Destination Options (Opciones de destino), para destinos intermedios cuando hay encabezado Routing (Enrutamiento).
  3. Encabezado Routing (Enrutamiento)
  4. Encabezado Fragment (Fragmento)
  5. Encabezado Authentication (Autenticación)
  6. Encabezado Encapsulating Security Payload (ESP o Carga de seguridad de encapsulación)
  7. Encabezado Destination Options (Opciones de destino), para el destino final

Encabezado Hop-by-Hop Options (Opciones de salto a salto)

El encabezado Hop-by-Hop Options se utiliza para especificar parámetros de entrega en cada salto de la ruta de acceso al destino. Se identifica por el valor 0 en el campo Next Header (Encabezado siguiente) del encabezado de IPv6.

 

En la figura 21 se muestra el encabezado Hop-by-Hop Options.

ipver21

Figura 21 Encabezado Hop-by-Hop Options (Opciones de salto a salto).

 

El encabezado Hop-by-Hop Options consta de un campo Next Header (Encabezado siguiente), un campo Header Extension Length (Longitud de extensión del encabezado) y un campo Options (Opciones) que contiene una o varias opciones. El valor del campo Header Extension Length es el número de bloques de 8 bytes del encabezado de extensión Hop-by-Hop Options, sin incluir los 8 primeros bytes. Por lo tanto, para un encabezado Hop-by-Hop Options de 8 bytes, el valor del campo Header Extension Length es 0. Se utilizan opciones de relleno para garantizar límites de 8 bytes.

Una opción es un encabezado dentro del encabezado de opciones de salto a salto que describe una característica específica de la entrega del paquete o proporciona relleno. Cada opción se codifica en el formato tipo-longitud-valor (TLV), que se utiliza comúnmente en los protocolos TCP/IP. El tipo de opción identifica a la opción y determina el tipo de tratamiento por parte del nodo de procesamiento. La longitud de la opción identifica su longitud. El valor de la opción son los datos asociados a ésta.

En RFC 2460, 2675 y 2711 se definen las siguientes opciones:

Encabezado Destination Options (Opciones de destino)

El encabezado Destination Options se utiliza para especificar parámetros de entrega de paquetes para destinos intermedios o para el destino final. Este encabezado se identifica mediante el valor 60 en el campo Next Header (Encabezado siguiente) del encabezado anterior.

 

En la figura 22 se muestra el encabezado Destination Options.

ipver22

Figura 22 Encabezado Destination Options (Opciones de destino)

 

 

Los campos del encabezado Destination Options se definen del mismo modo que el encabezado Hop-by-Hop Options (Opciones de salto a salto).

El encabezado Destination Options se utiliza de dos maneras:

1.       Si hay un encabezado Routing (Enrutamiento), especifica opciones de entrega o de proceso en cada destino intermedio.

2.       También especifica opciones de entrega o de proceso en el destino final.

Encabezado Routing (Enrutamiento)

De forma similar al enrutamiento de origen que admite IPv4, los nodos de origen de IPv6 pueden utilizar el encabezado de extensión Routing para especificar una ruta de origen, una lista de destinos intermedios para que el paquete viaje por su ruta de acceso al destino final. El encabezado Routing se identifica mediante el valor 43 en el campo Next Header (Encabezado siguiente) del encabezado anterior.

El encabezado Routing consta de un campo Next Header, un campo Header Extension Length (que se define del mismo modo que en el encabezado de extensión Hop-by-Hop Options), un campo Routing Type (Tipo de enrutamiento), un campo Segments Left (Segmentos restantes) y datos específicos del tipo de enrutamiento.

Para el tipo de enrutamiento 0, que se define en RFC 2460, los datos específicos del tipo de enrutamiento son una lista de direcciones de destinos intermedios. Cuando el paquete IPv6 llega a un destino intermedio, se procesa el encabezado Routing y la dirección del siguiente destino intermedio (según el valor del campo Segments Left) se convierte en la dirección de destino del encabezado de IPv6.

 

En la figura 23 se muestra el encabezado Routing para el tipo de enrutamiento 0.


Figura 23 Encabezado Routing (Enrutamiento) para el tipo de enrutamiento 0

 

 

Encabezado Fragment (Fragmento)

El encabezado Fragment se utiliza para los servicios de reensamblado y fragmentación de IPv6. Este encabezado se identifica por el valor 44 en el campo Next Header (Encabezado siguiente) del encabezado anterior.

 

En la figura 24 se muestra el encabezado Fragment.

Figura 24 Encabezado Fragment (Fragmento)

 

 

El encabezado Fragment incluye un campo Next Header, un campo Fragment Offset (Desplazamiento de fragmentos) de 13 bits, un indicador More Fragments (Más fragmentos) y un campo Identification (Identificación) de 32 bits. Los campos Fragment Offset e Identification, y el indicador More Fragments se utilizan del mismo modo que los campos correspondientes del encabezado de IPv4. Como el uso del campo Fragment Offset se define mediante bloques de fragmentos de 8 bytes, el encabezado Fragment no se puede utilizar para los jumbogramas de IPv6.

En IPv6, sólo los nodos de origen pueden fragmentar las cargas. Si la carga enviada por el protocolo de nivel superior es mayor que la unidad MTU de vínculo o de ruta de acceso, IPv6 fragmenta la carga en el origen y utiliza el encabezado de extensión Fragment para proporcionar información de reensamblado.

Cuando se fragmenta un paquete IPv6, se divide inicialmente en una parte que se puede fragmentar y otra parte que no se puede fragmentar.

A continuación, se forman los paquetes del fragmento de IPv6. Cada paquete de fragmento consta de la parte que no se puede fragmentar, un encabezado Fragment y una porción de la parte que se puede fragmentar.

 

 

En la figura 25 se muestra el proceso de fragmentación para un paquete IPv6.


Figura 25 Proceso de fragmentación de IPv6

 

 

Encabezado Authentication (Autenticación)

El encabezado Authentication proporciona autenticación de datos (comprobación del nodo que envió el paquete), integridad de datos (comprobación de que los datos no fueron modificados en el tránsito) y protección contra reproducción (garantía de que los paquetes capturados no se pueden volver a transmitir ni ser aceptados nuevamente como datos válidos) para el paquete IPv6. El encabezado Authentication, que se describe en RFC 2402, forma parte de la arquitectura de seguridad para el Protocolo Internet definida en RFC 2401.

El encabezado Authentication se identifica por el valor 51 en el campo Next Header (Encabezado siguiente) del encabezado anterior.

 

En la figura 26 se muestra el encabezado Authentication.


Figura 26 Encabezado Authentication (Autenticación)

 

 

El encabezado Authentication contiene un campo Next Header, un campo Header Length (Longitud del encabezado), un campo Security Parameters Index (SPI o Índice de parámetros de seguridad) que identifica una asociación de seguridad de seguridad IP (IPSec, IP Security) específica, un campo Sequence Number (Número de secuencia) que proporciona protección contra la reproducción y un campo Authentication Data (Datos de autenticación) que contiene un valor de comprobación de integridad (ICV, Integrity Check Value). ICV proporciona autenticación de datos e integridad.

El encabezado de extensión Authentication no proporciona servicios de confidencialidad mediante la encriptación de datos. Para proporcionar esta posibilidad, se puede utilizar el encabezado Authentication con el encabezado Encapsulating Security Payload (ESP o Carga de seguridad de encapsulación).

En este documento no se trata en detalle cómo proporciona el encabezado Authentication posibilidades de autenticación e integridad de datos a través de técnicas criptográficas. Para obtener más información, consulte RFC 2402.

Encabezado y finalizador Encapsulating Security Payload (ESP o Carga de seguridad de encapsulación)

El encabezado y el finalizador Encapsulating Security Payload (ESP) proporcionan servicios de confidencialidad de datos, autenticación de datos e integridad de datos para la carga encapsulada. En cambio, el encabezado Authentication proporciona servicios de integridad y autenticación de datos para todo el paquete IPv6. El encabezado y el finalizador ESP se identifican por el valor 50 en el campo Next Header (Encabezado siguiente) del encabezado anterior.

 

En la figura 27 se muestran el encabezado y el finalizador ESP.

 

Figura 27 Encabezado y finalizador ESP

 

 

El encabezado ESP contiene un campo Security Parameters Index (SPI o Índice de parámetros de seguridad) que identifica la asociación de seguridad de IPSec y un campo Sequence Number (Número de secuencia) que proporciona protección contra la reproducción. El finalizador ESP contiene los campos Padding (Relleno), Padding Length (Longitud de relleno), Next Header y Authentication Data (Datos de autenticación). El campo Authentication Data contiene el valor de comprobación de integridad (ICV).

En este documento no se trata en detalle cómo proporcionan el encabezado de extensión y el finalizador ESP posibilidades de confidencialidad, autenticación e integridad de los datos a través de técnicas criptográficas. Para obtener más información, consulte RFC 2406.

 

Atrás    Inicio    Siguiente