¿Cómo funcionaría una dirección de longitud variable IPv6?

Respuesta corta:
La longitud de la dirección IPv6 es fija (128 bits)

Respuesta larga:
Déjame darte un trasfondo:
Se supone que la dirección IPv4 es de 32 bits.
Cada dirección IPv4 consta de 2 partes:

  • Parte de la red
  • Parte del anfitrión

Los primeros bits forman la parte de la red y los bits restantes forman la parte del host.
Explicación de los términos: para entender esto, te daré una analogía.
Considere una sala de clase de 50 estudiantes. Ahora suponga que su maestro quiere que tome una libreta y se la dé a un niño llamado X en la clase 12.
Ahora, supongamos que si el maestro le dijera solo el nombre del alumno y no su clase, le hubiera resultado doloroso identificarlo.
Eres un enrutador. X es el host y la clase 12 es la subred (nombre de la red).
Cada enrutador debe redirigir los paquetes a un host. Pero, el enrutador no puede recordar todos los hosts. Entonces, en su lugar, recuerda el nombre de la subred. Cuando llega un paquete, el enrutador (usted) mira la parte de subred y la enruta adecuadamente.
Cuando este paquete finalmente llega a la red a la que se suponía que debía llegar, el enrutador de la red (el monitor de la clase 12) reenvía este paquete al host (X)

Hay 3 clases de direcciones IPv4:

  • clase A: que tiene 8 bits de parte de red y 24 bits de parte de host (soporta alrededor de 2 ^ 24 hosts)
  • clase B: que tiene 16 bits de parte de red y 16 bits de parte de host (soporta alrededor de 2 ^ 16 hosts)
  • clase C: que tiene 24 bits de parte de red y 8 bits de parte de host (soporta alrededor de 2 ^ 8 hosts)

Pero ahora usamos el enrutamiento entre dominios sin clase (CIDR), lo que significa que la longitud de la parte de la red no se supone que sea 8, 16 o 24 solamente. En cambio, puede tomar cualquier valor dependiendo de la cantidad de hosts necesarios en la red.

Ahora, teniendo en cuenta que la dirección IPv4 tiene una longitud total de 32 bits, por simple combinación, puede concluir que puede haber como máximo 2 ^ 32 hosts compatibles con IPv4 (aunque tenemos técnicas como NAT que pueden permitir más hosts).
2 ^ 32 es aproximadamente unos 4 mil millones.
La población mundial está en auge. Hay varios hosts (incluidos teléfonos inteligentes y tabletas, que tienen sus propias direcciones IP).
Entonces, el espacio de la dirección IP está terminando.
Por lo tanto, nos vemos obligados a cambiar a IPv6, que tiene una dirección de 128 bits que admite 2 ^ 128 hosts (que es un número demasiado grande, ¡la población mundial nunca alcanzará ese número!)

Ahora cada máquina también tiene una dirección de nivel de capa de enlace llamada dirección MAC.
La dirección MAC es de 48 bits y cada máquina tiene su dirección MAC única (la proporciona el fabricante de la tarjeta ethernet).
Entonces, la idea de IPv6 es la siguiente:

  • Los últimos 48 bits de dirección IPv6 serán los mismos que los de la dirección MAC
  • Los primeros bits de la dirección IPv6 representarán el número de red de la red (que puede tomar cualquier valor de hasta 80 bits)
  • Los bits restantes (si los hay) serán cero

Ahora tenga en cuenta que el número de red suele ser inferior a 40-50 bits.
El número de host es de 48 bits.
Entonces eso deja alrededor de 40 bits para ser cero

Escribimos la dirección IPv6 en bloques de 16 bits, separados por dos puntos (:)
Cada bloque de 16 bits representa 4 números hexadecimales

Ahora, dado que tenemos una gran cantidad de ceros (en la sección central de la dirección IPv6), no los escribimos una y otra vez. En cambio, simplemente escribimos dos puntos y listo.
Esta es la razón por la que siente que la dirección IPv6 es de longitud variable.
Espero que eso aclare su duda de que la longitud de cada dirección IPv6 es realmente fija (128 bits).

¿Cómo pudo haber funcionado? Hay una gran variedad de formas de codificarlo.

Como un ejemplo, CLNP codifica la longitud de la dirección como un byte, justo al comienzo de la dirección. Eso es bastante derrochador, ya que hace mucho tiempo sentimos que nos gustaría que nuestras direcciones terminaran en límites de 32 o 64 bits para que coincidieran con los tamaños de palabras de nuestro procesador. Entonces, solo necesitamos codificar cuántas palabras se incluirían. Puedes hacer un gran trabajo en dos bits:

  • Dirección 0 – 8B (64 bit)
  • 1 – 16B dirección
  • 2 – dirección 24B
  • 3 – dirección 32B

En caso de que sienta que 32B (256b) de espacio de direcciones no son suficientes, no dude en agregar 2 bits más, dando una dirección máxima de 128B (1024b).

Incluso a cuatro bits, la sobrecarga es trivial.

Hasta donde sé, no existe tal cosa, todas las direcciones IPv6 son de 128 bits, pero se supone que dos puntos representan una cadena de ceros. Entonces 2002 :: 1c57 es la abreviatura de 2002: 0: 0: 0: 0: 0: 0: 1c57
es decir, 2002: 0000: 0000: 0000: 0000: 0000: 0000: 1c57
Los dispositivos pueden recibir un rango de direcciones, por ejemplo, 2002 :: 1c57: 0/56, donde en IPv4 solo obtendrían una.