El IPv6 es una actualización al protocolo IPv4 diseñado para resolver el problema de agotamiento de direcciones. Su desarrollo comenzó en diciembre de 1998 cuando Steve Deering y Robert Hinden, empleados de Cisco y Nokia publicaron una especificación formal del protocolo a través de un RFC y aún continua su implementación.

Diseñado por Steve Deering de Xerox PARC IPv6, su objetivo era sustituir finalmente a IPv4, cuyo límite en el número de direcciones de red admisibles está empezando a restringir el crecimiento de Internet y su uso, especialmente en China, India, y otros países asiáticos densamente poblados. El nuevo estándar busca mejorar el servicio globalmente; por ejemplo, proporcionando a futuras celdas telefónicas y dispositivos móviles con sus direcciones propias y permanentes.

IPv4 posibilita 4 294 967 296 (232) direcciones de dispositivos diferentes, un número menor a la población mundial, y menor a la cantidad de dispositivos totales. A principios de 2010, quedaban menos del 10 % de IP sin asignar. En la semana del 3 de febrero de 2011, la IANA (Agencia Internacional de Asignación de Números de Internet, por sus siglas en inglés) entregó el último bloque de direcciones disponibles (33 millones) a la organización encargada de asignar IPs en Asia, un mercado que está en auge y no tardará en consumirlas todas.

En cambio, IPv6 admite 340 282 366 920 938 463 463 374 607 431 768 211 de direcciones), cerca de 6,7 × 1017 (670 mil billones) de direcciones por cada milímetro cuadrado de la superficie de la Tierra.

Motivación y orígenes de las IP Durante la primera década de operación de Internet basado en TCP/IP, a finales de los 80, se hizo evidente que se necesitaba desarrollar métodos para conservar el espacio de direcciones. A principios de los 90, incluso después de la introducción del rediseño de redes sin clase, se hizo claro que no sería suficiente para prevenir el agotamiento de las direcciones IPv4 y que se necesitaban cambios adicionales. A comienzos de 1992, circulaban varias propuestas de sistemas y a finales de 1992, la IETF anunció una convocatoria para white papers (RFC 1550) y la creación de los grupos de trabajo de "IP de próxima generación" ("IP Next Generation") o (IPng).

IPng fue propuesto por el Internet Engineering Task Force (IETF) el 25 de julio de 1994, con la formación de varios grupos de trabajo IPng. Hasta 1996, se publicaron varios RFC definiendo IPv6, empezando con el RFC 2460.

La discusión técnica, el desarrollo e introducción de IPv6 no estuvo exenta de controversia. El diseño fue duramente criticado por la falta de interoperabilidad con IPv4 y otros aspectos por el ingeniero D. J. Bernstein, entre otros.

Incidentalmente, IPng (IP Next Generation) no pudo usar la versión número 5 (IPv5) como sucesor de IPv4, ya que ésta había sido asignada a un protocolo experimental orientado al flujo de streaming que intentaba soportar voz, video y audio.

Se espera ampliamente que IPv6 sea soportado en conjunto con IPv4 en el futuro cercano. Los nodos solo-IPv6 no son capaces de comunicarse directamente con los nodos IPv4, y necesitarán ayuda de un intermediario.

Cambios y nuevas características En muchos aspectos, IPv6 es una extensión conservadora de IPv4, manteniendo las funciones más utilizadas, otras no tan importantes o poco utilizadas han sido eliminadas o se han hecho opcionales, además se han añadido nuevas características. La mayoría de los protocolos de transporte -y aplicación- necesitan pocos o ningún cambio para operar sobre IPv6; las excepciones son los protocolos de aplicación que integran direcciones de capa de red, como FTP o NTP.

IPv6 especifica un nuevo formato de paquete, diseñado para minimizar el procesamiento del encabezado de paquetes. Debido a que las cabeceras de los paquetes IPv4 e IPv6 son significativamente distintas, los dos protocolos no son interoperables.

Algunos de los cambios de IPv4 a IPv6 más relevantes son:

Capacidad extendida de direccionamiento right|300px|thumb|Una ilustración de una dirección IP (versión 6), en hexadecimal y binario.

El interés de los diseñadores era que direcciones más largas permitiesen una mejor entrega jerárquica, sistemática y definitiva de las direcciones, y una eficiente agregación de rutas. Con IPv4, se desarrollaron complejas técnicas de Enrutamiento Interdominio sin Clase (Classless Interdomain Routing o CIDR, en idioma inglès) para utilizar de mejor manera el pequeño espacio de direcciones. El esfuerzo requerido para reasignar la numeración de una red existente con prefijos de rutas distintas es muy grande, como se discute en el documento RFC 2071 y RFC 2072. Sin embargo, con IPv6, al cambiar el prefijo anunciado por unos pocos enrutadores, es posible, en principio, reasignar la numeración de toda la red, ya que los identificadores de nodos (los 64 bits menos significativos de la dirección) pueden ser auto-configurados independientemente por un nodo.

El tamaño de una subred en IPv6 es de 264 (máscara de subred de 64-bit) nodos, que es el cuadrado del tamaño de la Internet IPv4 entera. Así, las tasas de utilización del espacio de direcciones serán probablemente menores en IPv6, pero la administración de las redes y el enrutamiento serían más eficientes debido a las decisiones de diseño inherentes al mayor tamaño de las subredes y la agregación jerárquica de rutas.

Autoconfiguración de direcciones libres sin estado (SLAAC)

Los nodos IPv6 pueden configurarse a sí mismos automáticamente cuando son conectados a una red conectada en IPv6 usando los mensajes de descubrimiento de enrutadores de ICMPv6. La primera vez que son conectados a una red, el nodo envía una "solicitud de enrutador" (RS: Router Solicitation, en inglés) de enlace local (link-local, en idioma inglés) usando multidifusión pidiendo los parámetros de configuración; y si los enrutadores están configurados para esto, responderán este requerimiento con un "anuncio de enrutador" (RA: Router Advertisement, en idioma inglés) que contiene los parámetros de configuración de capa de red.

Si la autoconfiguración de direcciones libres de estado no es adecuada para una aplicación, es posible utilizar Dynamic Host Configuration Protocol para IPv6 (DHCPv6) o bien los nodos pueden ser configurados en forma estática.

Multidifusión

Multicast (Multidifusión, en idioma español), que es la habilidad de enviar un paquete único a destinos múltiples es parte de la especificación base de IPv6. Esto es diferente a IPv4, donde es opcional (aunque usualmente implementado).

IPv6 no implementa broadcast, que es la habilidad de enviar un paquete a todos los nodos del enlace conectado. El mismo efecto puede lograrse enviando un paquete al grupo de multidifusión de enlace-local todos los nodos (all hosts). Por lo tanto, no existe el concepto de una dirección de broadcast y así la dirección más alta de la red (la dirección de broadcast en una red IPv4) es considerada una dirección normal en IPv6.

Muchos ambientes no tienen, sin embargo, configuradas sus redes para enrutar paquetes de multidifusión, por lo que en éstas será posible hacer multidifusión en la red local, pero no necesariamente en forma global.

La multidifusión IPv6 comparte protocolos y características comunes con IPv4, pero también incorpora cambios y mejoras. Incluso, cuando se le asigne a una organización el más pequeño de los prefijos de enrutamiento global IPv6, ésta también recibe la posibilidad de usar uno de los 4,2 billones de grupos de multidifusión IPv6 enrutables de fuente específica para asignarlos para aplicaciones multidifusión intra-dominio o entre-dominios (según el documento RFC 3306). En IPv4 era muy difícil para una organización conseguir incluso un único grupo de multidifusión enrutable entre-dominios y la implementación de las soluciones entre-dominios eran anticuadas (RFC 2908). IPv6 también soporta nuevas soluciones de multidifusión, que incluyen Embedded Rendezvous Point (Punto de Cita Incrustado, en idioma español, definido en el documento RFC 3956), que simplifica el desarrollo de soluciones entre dominios.

Seguridad de Nivel de Red obligatoria Internet Protocol Security (IPsec), el protocolo para cifrado y autenticación IP forma parte integral del protocolo base en IPv6. El soporte IPsec es obligatorio en IPv6 pero no así su implementación y uso (ver RFC 6434 y RFC 8504); a diferencia de IPv4, donde es opcional o fue un agregado posterior (pero usualmente implementado). Sin embargo, actualmente no se está usando normalmente IPsec excepto para asegurar el tráfico entre enrutadores de BGP IPv6, aunque también se puede utilizar en OSPFv3 y en movilidad IPv6.

Procesamiento simplificado en los enrutadores Se hicieron varias simplificaciones en la cabecera de los paquetes, así como en el proceso de reenvío de paquetes para hacer el procesamiento de los paquetes más simple y por ello más eficiente. En concreto:

El encabezado del paquete en IPv6 es más simple que el utilizado en IPv4, así los campos que son raramente utilizados han sido movidos a opciones separadas; en efecto, aunque las direcciones en IPv6 son 4 veces más largas, el encabezado IPv6 (sin opciones) es solamente el doble de largo que el encabezado IPv4 (sin opciones). Los enrutadores IPv6 no hacen fragmentación. Los nodos IPv6 requieren ya sea hacer descubrimiento de MTU, realizar fragmentación extremo a extremo o enviar paquetes del tamaño mínimo MTU para IPv6 (1280 bytes). El encabezado IPv6 no está protegido por una suma de comprobación (checksum); la protección de integridad se asume asegurada tanto por el checksum de capa de enlace y por un checksum de nivel superior (TCP, UDP, etc.). De esta forma los enrutadores IPv6 no necesitan recalcular la suma de comprobación cada vez que algún campo del encabezado (como el contador de saltos o Tiempo de Vida) cambian. Esta mejora puede ser menos necesaria en enrutadores que utilizan hardware dedicado para computar este cálculo y así pueden hacerlo a velocidad de línea (wirespeed), pero es relevante para enrutadores por software. Por este motivo mientras en IPv4 los paquetes UDP pueden tener un checksum de 0, indicando que no hay comprobación de checksum a este nivel, en IPv6 es necesario que los paquetes UDP incorporen checksum. El campo Tiempo de Vida de IPv4, conocido como TTL (Time To Live), pasa a llamarse Límite de saltos, reflejando el hecho de que ya no se espera que los enrutadores computen el tiempo en segundos que tarda en atravesarlo (que en cualquier caso siempre resulta menor de 1 segundo). Se simplifica como el número de saltos entre enrutadores que se permita realizar al paquete IPv6.

Movilidad A diferencia de IPv4 móvil (MIPv4), IPv6 móvil (MIPv6) evita el enrutamiento triangular y, por lo tanto, es tan eficiente como el IPv6 normal. Los enrutadores IPv6 pueden soportar también Movilidad de Red (NEMO, por Network Mobility) (segùn documento RFC 3963), que permite que redes enteras se muevan a nuevos puntos de conexión de enrutadores sin reasignación de numeración. Sin embargo, ni MIPv6 ni MIPv4 o NEMO son ampliamente difundidos o utilizados hoy, por lo que esta ventaja es más bien teórica.

Soporte mejorado para las extensiones y opciones Los cambios en la manera en que se codifican las opciones de la cabecera IP permiten límites menos rigurosos en la longitud de opciones, y mayor flexibilidad para introducir nuevas opciones en el futuro.

Jumbogramas IPv4 limita los paquetes a 64 KiB de carga útil. IPv6 tiene soporte opcional para que los paquetes puedan superar este límite, los llamados jumbogramas, que pueden ser de hasta 4 GiB. El uso de jumbogramas puede mejorar mucho la eficiencia en redes de altos MTU. El uso de jumbogramas está indicado en el encabezado opcional Jumbo Payload Option.

Direccionamiento IPv6