¿De qué tamaño es internet? IPv4, IPv6 y una historia de ajedrez

Cuenta la leyenda que el emperador de la India, fascinado por el recientemente inventado juego de ajedrez, quiso recompensar a su inventor concediéndole un deseo, el inventor fue llevado a audiencia y ahí, frente al emperador y sus consejeros pidió “un grano de maíz en la primera casilla del tablero, dos granos de maíz en la segunda, cuatro en la tercera y así hasta llegar a la última”, el emperador, entendiendo que eso era poca cosa para su generosidad terminó la audiencia y ordenó que le fuera entregada al hombre su recompensa…

Tablero

Algunos días después recordó este episodio y preguntó si ya le habían dado al hombre su saco de maíz, se hicieron la investigaciones y encontraron que los matemáticos del reino todavía no habían terminado de hacer el cálculo, pero que la cantidad necesaria hasta el momento era más que toda la producción de maíz de todos los reinos conocidos… el emperador quedó sorprendido y en recompensa ordenó que le cortaran la cabeza al inventor (eso último lo inventé yo, pero es un riesgo real de hacerle bromas a los emperadores).

Aquí las matemáticas:

Primera casilla = 1

Segunda casilla = 2

Tercera casilla = 2×2 = 4

Cuarta casilla = 2x2x2 = 8

.

.

.

Casilla 10 = 2x2x2x2x2x2x2x2x2x2 = 1024

Si recordamos que 2x2x2x2 (dos multiplicado por sí mismo 4 veces) puede ser escrito como 2^4, la lista queda como sigue:

2^0 = 1     (Búsqueda recomendada en Google: ¿Cuánto es un número elevado a la potencia cero?)

2^1 = 2

2^2 = 4

2^3 = 8

2^4 = 16

.

.

.

2^10 = 1024

Cómo los tableros de ajedrez tienen 64 casillas tenemos que el número de granos necesarios para darle al hombre la recompensa solicitada es:

2^64 – 1 = 9,223,372,036,854,779,999 granos de maíz. Más o menos el volumen del planeta tierra (si algún día me ves en la calle recuérdame explicarte de donde salió el “- 1” al final de la fórmula)

El concepto del 2 multiplicado por sí mismo es uno de los más importantes en el mundo de la tecnología.

Pensemos en Internet como la suma de la información generada por equipos y las rutas para que esa información llegue de un equipo a otro. Cualquier cosa que conectemos a Internet es como una persona que envía una carta: genera información que posteriormente pone en un sobre con una dirección y lo deposita en el buzón, en dónde el servicio postal hace su magia y la mayoría de las veces entrega esa carta a la persona a la que iba dirigida.

Para que esta analogía funcione cada cosa en Internet debe de tener una dirección única. El problema es que Internet es el hijo monstruoso de tecnologías y proyectos que datan desde finales de los años sesentas, como Arpanet, y que naturalmente no fueron diseñados para tener miles de millones de usuarios, fue hasta los años ochenta que nació el sistema actual de direcciones que utiliza la mayor parte del Internet hoy en día (llamado IPv4). Un ejemplo de una dirección de ese tipo se puede encontrar preguntándole al dispositvo a través del cual estás leyendo esto cuál es la dirección IP que está utilizando y que probablemente te dirá algo como esto:

192.168.1.2 (cuatro grupos de números entre el 1 y el 255)

Lo cual, en números binarios (0 y 1) se escribe así:

11000000.10100110.00000001.00000010 (cuatro grupos de ocho números ‘octetos’ compuestos por 0 y 1)

Para explicar que significa esto vamos a transformar todos los números en 1 para encontrar el número mayor que puede ser expresado con 32 dígitos binarios:

11111111.11111111.11111111.11111111

Ahora regresemos al inicio de la historia con el tipo y su tablero de ajedrez, tenemos 4 series de 8 unos, de igual manera que medio tablero tiene 4 filas de 8 casillas

MedioTablero

Los 1 significan que esa casilla tiene el número de granos de maíz que le corresponden por su posición, los 0 significan que tiene 0 granos, combinándolos podemos representar cualquier número, por ejemplo:

11100000 = 128 + 64 + 32 + 0 + 0 + 0 + 0 + 0 = 224

Si llenamos la primera mitad del tablero de ajedrez en la primera casilla tenemos 1 grano de maíz, en la segunda 2, en la tercera 4, y así hasta llegar a la número 32, en dónde tenemos 2,147,483,648. Ahora bien, si todas las casillas están llenas, es decir, este número:

11111111.11111111.11111111.11111111

Tenemos la suma 1 + 2 + 4 + 8 + 16 + … + 2,147,483,648 =

4,294,967,295 granos de maíz

Que es igual al número máximo de direcciones IPv4 que teoricamente pueden existir, es decir, es el tamaño máximo del Internet. Es importante aquí hacer la aclaración de que muchas de esas direcciones están reservadas para otros usos como “broadcasts”, experimentación y otros, pero para fines de este blog haré el análisis solamente desde el punto de vista aritmético, dicho esto, en los noventas aquí sería el punto final y cualquier estudiante podría seleccionar este texto (Ctrl + a) copiarlo (Ctrl + c), pegarlo (Ctrl + v), ponerle su nombre y terminar su tarea, sin embargo, aunque 4,294,967,295 se ve un número grande, es apenas aproximadamente la mitad de la población mundial (aunque desgraciadamente el porcentaje de acceso a Internet es todavía muy bajo y ese es otro tema), y muchas de esas direcciones se utilizan en el “backstage” de Internet (los equipos de las empresas proveedoras de Internet ‘ISP’), además hay personas que tienen 10 o más dispositivos conectándose a Internet (cel, pc, laptop, hotspot, reader, etc.,) y hay una enorme cantidad de dispositivos esperando su turno a conectarse (carros, neveras, hornos, licuadoras, muñecas inflables y el chip del perro), por lo que parece que tenemos un problema. Pero eso es noticia vieja, ya que desde mediados de los noventas las aproximadamente cuatro mil millones de direcciones de IPv4 se hubieran agotado si no hubiéramos aprendido a hacer trampa (NAT, PAT, mismo número para IP privadas, etc.,), sin embargo esas soluciones tienen un límite y nos hacen utilizar algunas tecnologías para cosas para las que no fueron planeadas -como los números de puertos, que fueron diseñados para identificar aplicaciones, no para aumentar el número de conexiones desde una misma dirección-. La solución definitiva existe desde 1998, cuando el “Internet Engineering Task Force (IETF)” definió el protocolo IPv6 (hubo antes un IPv5 pero nunca superó la fase de prueba) y para el año 2014 aproximadamente el 5% del tráfico de Internet se lleva a cabo en este nuevo esquema, el cual todavía presenta retos de migración, aprendizaje y costumbre que han evitado su adoptación total.

La diferencia principal entre IPv4 y IPv6 es su tamaño, es decir, la cantidad de direcciones que se pueden generar en cada uno:

IPv4 =    32 bits (un bit es el equivalente a una casilla del tablero o a la cantidad de dígitos en la dirección), por ejemplo, la dirección

11000000.10100110.00000001.00000010

Tiene 32 cifras = 32 bits

Entonces

IPv4 = 32 bits = 4,294,967,295 Granos de maíz (o direcciones IP de Internet)

Tablero de ajedrez = 64 bits = 9,223,372,036,854,779,999 granos de maíz

IPv6 = 128 bits = 170,141,183,460,469,000,000,000,000,000,000,000,000 (aproximado)

No es la biblioteca de Borges pero es número absurdamente grande, veámoslo de esta manera: IPv4 tiene suficientes direcciones para darle una dirección IP a cada uno de los habitantes en un planeta de 4,000 millones de habitantes; IPv6 tiene suficientes para que en 4,000 millones de galaxias, cada una con 4,000 millones de planetas habitados por 4,000 millones de personas, ewoks y aliens cada uno tenga 4,000 millones de direcciones disponibles. Galaxias más, galaxias menos, parece un plan bastante completo. Obviamente, no todas las direcciones están disponibles para uso público, y se espera que cada dispositivo utilice varias de ellas -Global, Unicast, Anycast, Unique, Local, sus combinaciones y lo que se les ocurra – y quizá comencemos a ver direcciones “desechables”, es decir, que se utilizarán para una transacción y después serán eliminadas, lo cual haría el Internet un sitio mucho más seguro. IPv6 nos permitirá también generar direcciones aleatoriamente sin preocuparnos de que se repitan (estadísticamente la probabilidad será despreciable) y otras ventajitas, como emplear y aprender tecnologías que no quedarán obsoletas y asignarle a tu empresa la dirección hexadecimal 2014:CACA:DE:BEBE::/64 … todo ese potencial lentamente se está desarrollando y los pronósticos son una migración completa a IPv6 en los siguientes 20 a 30 años aunque nadie tiene mucha certeza al respecto, quizá nos toque ver antes a algún tataranieto de Anakin Skywalker.

Jorge A. Pinedo

pinjorge@hotmail.com

8 thoughts on “¿De qué tamaño es internet? IPv4, IPv6 y una historia de ajedrez

  1. Algún día ibas a terminar escribiendo… pero teníamos que meter tantos numeros jajajajajaja! muy bien Jorge! chapeau! que nos darás el siguiente mes?

    Liked by 1 person

  2. Pingback: El Internet y la muerte de las tortugas Ninja. Parte II – ¡CCIE en 21 días! | PINJORGE.COM

Leave a comment