Ya en 1993 se vio claro que Internet crecía a mayor velocidad de lo que se había previsto. En aquel momento la solución pasó por abandonar las clases de red en que se dividía el espacio de direcciones IP en sus orígenes. Cuando se querían conectar a Internet, las empresas o los usuarios privados debían escoger direcciones IP de la clase adecuada. Cada clase disponía de un número diferente de octetos (como se denomina a los bloques de cifras de las direcciones IP) para identificar a las redes. Los octetos restantes determinaban cuántos hosts (direcciones, dominios) podían alojarse en la red.
Clase A | Clase B | Clase C | Clase D | Clase E |
0.0.0.0 - 127.255.255.255 | 128.0.0.0 - 191.255.255.255 | 192.0.0.0 - 223.255.255.255 | 224.0.0.0 - 239.255.255.255 | 240.0.0.0 - 255.255.255.255 |
Así, una red de la clase A podía alojar a más de 16 millones de hosts, pero solo disponía de 128 (0-127) redes libres, porque solamente el primer octeto estaba destinado a las redes (los tres restantes determinaban el número de hosts). En la clase B, en cambio, había más de 16 000 redes disponibles, pero cada red podía contener un máximo de 65 534 hosts (los dos primeros octetos se reservaban para las redes y los otros dos para los hosts). Y las redes en la clase C solo tenían un octeto disponible para direcciones, pudiendo alojar, por tanto, solo a 254 hosts (1-254, ya que 0 y 255 siempre están reservados, como explicaremos más adelante). Las clases D y E estaban reservadas para otros propósitos y no estaban disponibles para empresas o usuarios privados.
Esta clasificación ha demostrado ser poco práctica y muy inflexible. Para muchas empresas, una red con solo 254 participantes es demasiado pequeña, y solo las grandes redes necesitan miles de hosts. Esto condujo a un mal uso de las redes, ya que muchas empresas se vieron obligadas a bloquear direcciones que no utilizaban. Con el propósito de responder mejor a las necesidades de los internautas, se pensó en flexibilizar las dimensiones de las redes, reducir las tablas de enrutamiento y decelerar la merma de direcciones IP libres.
Las tablas de enrutamiento se encuentran en los routers y les ayudan a encontrar la ruta a la dirección correcta. Desde el origen a su destino, los paquetes de datos recorren muchos nodos. Para que el router, también llamado enrutador, pueda encontrar la mejor ruta, en las tablas de enrutamiento se va registrando información sobre las rutas realizadas, de modo que, si para cada posible destino se ha de agregar una ruta, con el tiempo el tamaño del archivo va creciendo de forma exponencial. Como las direcciones en formato CIDR se agrupan en bloques, desaparece la necesidad de guardar tanta información en las tablas de enrutamiento: en una ruta se agrupan varias direcciones.