Para resolver el problema de agotamiento del espacio de direcciones con IPv4, ¿por qué no simplemente aumentamos la especificación de tamaño de octetos TCP / IP de 32 bits a 64 bits, en lugar de diseñar un nuevo protocolo IPv6?

Me temo que no es tan simple: no podemos duplicar el tamaño del encabezado IP por dos razones:

Primero, simplemente duplicar este encabezado aumentaría enormemente la cantidad de tráfico que se envía a través de Internet, ya que el encabezado IP debe proporcionarse con cada paquete TCP y UDP. En el peor de los casos, esto casi duplicaría el tráfico instantáneamente, porque los datos reales que se envían en el paquete podrían ser muy pequeños. (Telnet es uno de los peores delincuentes, a menudo envía solo un carácter a la vez en cada paquete cuando alguien escribe en una consola).

El hecho es que la infraestructura básica de Internet colapsaría de inmediato si comenzáramos a enviar el doble de tráfico sin invertir mucho en hardware adicional para asumirlo. Pero incluso si mágicamente tuviéramos el doble de enrutadores, repetidores, emisoras y tuberías disponibles para manejar ese tráfico adicional, hay un segundo factor para esto que evitaría que funcione:

Una dirección IP es simplemente un número entero de 32 bits. El estilo de 4 octetos de expresar una IP es sobre todo un método conveniente para que los humanos se concentren en el espacio de direcciones IP y proporcionen una organización visual. Pero así es como se ve una dirección IP en varios formatos:

  • La IP para un servidor de nombres en Australia es 139.130.4.5
  • Como un entero de 32 bits: 2340553733 .
  • En binario: 10001011 10000010 00000100 00000101

En otras palabras, cada uno de los octetos puede ser un número de 0 a 255 (8 bits), literalmente no puede ser más grande que eso porque solo hay 8 bits de espacio para trabajar. Para aumentar el número de bits en la dirección, necesita un tipo de datos más grande: un número entero de 64 bits, que podría contener ocho octetos de este tipo en lugar de cuatro.

Ahora, aquí es por qué esto es importante: muchos enrutadores de red diseñados para trabajar con IPv4 solo usan “campos” de 32 bits para almacenar direcciones IP. Esto significa que para cualquier dirección IP, la máquina literalmente solo tiene mucho espacio disponible; requeriría un cambio en el código, una recompilación y una nueva implementación de ese código para que la máquina maneje direcciones de 64 bits. . Esto también tiene implicaciones en la cantidad de RAM que requieren esas máquinas: los enrutadores dedicados a menudo se ejecutan con la cantidad mínima de memoria necesaria porque eso es todo lo que hacen. Algunos enrutadores tendrían que descartarse porque simplemente no tendrían suficiente memoria para manejar direcciones de 64 bits.

Del mismo modo, los procesadores en estos enrutadores son a menudo procesadores pequeños, dedicados y de propósito especial, a menudo bloqueados en una arquitectura de 32 bits porque, hasta ahora, eso es todo lo que han necesitado. Se llaman adecuadamente CPU, pero no van a ser Core i5 o Xeons, sino que están diseñados específicamente para enrutar el tráfico de la manera más eficiente posible, y no serían buenos en una computadora de uso general.

Una CPU de 32 bits solo puede operar con 32 bits de datos en un solo ciclo de reloj: si necesita operar con 64 bits, toma al menos dos ciclos, y a menudo más porque tiene que mezclar los datos entre la CPU interna espacio de trabajo y caché o RAM. Para un enrutador, la velocidad y la eficiencia son los factores más importantes, por lo que esto causaría un SEVERO impacto en el rendimiento de ese enrutador. Nuevamente, el enrutador necesitaría actualizarse a uno con un procesador (y software) de 64 bits para manejar las nuevas direcciones con el mismo nivel de eficiencia.

Como puedes imaginar, esto es muy costoso. Y en el mundo del software, cambiar a todos a direcciones de 64 bits sería lo que llamamos un “cambio radical”, incluso si la infraestructura pudiera admitir las direcciones de inmediato, no todo el software y los sistemas operativos podrían hacerlo. Como dijo Lazar Petrovic Node en su respuesta, cambiar el “tamaño del octeto” automáticamente significa cambiar el protocolo, y para que eso no interrumpa las comunicaciones en todo el mundo, cada cliente tendría que actualizarse simultáneamente a este nuevo protocolo.

Esto es, de hecho, lo que está haciendo IPv6. Es un nuevo protocolo que aumenta el tamaño de una dirección IP a ocho octetos en lugar de cuatro. También se expresan en hexadecimal, por brevedad: “8B: 82: 04: 05: 8B: 82: 04: 05” es más corto que “139.130.4.5.139.130.4.5”, pero cuando se transmite a través de una red, la dirección IP la porción es simplemente 8 bytes de datos en lugar de 4. La gente está migrando gradualmente a ella, actualizando su hardware para manejarla, y así sucesivamente. Se está introduciendo gradualmente de una manera muy lenta y deliberada para garantizar que todos tengan suficiente tiempo y recursos para responder con una interrupción mínima.

En el camino, hemos tenido muchas redes empantanadas e incluso enrutadores físicos que se incendian (literalmente) debido al tráfico adicional que se bombea debido a IPv6. En una empresa para la que trabajé una vez, recuerdo haber leído una autopsia en un ticket de problema de un centro de datos que literalmente se había incendiado. Lo rastrearon hasta un banco de enrutadores en bastidores que se habían sobrecalentado debido al tráfico de IPv6, y esto provocó que la compañía deshabilitara IPv6 en todo el mundo hasta que pudieran actualizar todos los centros de datos con un hardware mejor y más rápido que no haría eso. 😛 (Si recuerdo correctamente, la causa raíz del sobrecalentamiento se debió al uso de CPU de 32 bits para operar con datos de 64 bits, combinados con la falta de aceleración térmica adecuada de las unidades).

Podríamos … pero no lo hicimos , porque abordar el espacio no es el único problema de IPv4. Aprovechamos la oportunidad para agregar algunas mejoras , como anycast nativo, configuración sencilla del cliente, mejoras en ARP, mejor administración de multidifusión, sin transmisión …

El progreso no llega al parchear una tecnología antigua el mayor tiempo posible. Viene con la adopción de nuevas tecnologías.

Si desea leer más sobre las mejoras de IPv6 , esto es para usted: Capa de red: direccionamiento IPv6 y protocolo IPv6.

Porque cambiar el diseño del encabezado IP es un gran cambio. Es el 90% del dolor. Entonces, mientras lo hace, ¿por qué no solucionar algunos de los otros problemas? Cualquier cambio es esencialmente un cambio importante, por lo que debe asegurarse de que solo tendrá que hacerlo una vez.