Le Classless Inter-Domain Routing, abrégé CIDR, a été mis au point afin (principalement) de diminuer la taille de la table de routage contenue dans les routeurs. Ce but est atteint en agrégeant plusieurs entrées de cette table en une seule.
Avec l'ancien système, à chaque fois qu'un fournisseur d'accès désirait se voir attribuer plusieurs « classe C », cela créait autant d'entrées dans la table de routage (vers lui) que de réseaux alloués. D'autre part, les plages d'adresses de classe A et B étaient (et sont encore...) largement sous-utilisées.
La première évolution a été de rendre obsolète (et en fait abolir) la distinction entre les adresses de classe A, B ou C, de sorte que l'ensemble de l'espace puisse être géré comme une collection unique de sous-réseaux de classe A, B ou C. Avec cette évolution, il est devenu impossible de déduire la classe effective (ou le masque de sous-réseau) d'une adresse IPv4 simplement en comptant les premiers bits de poids fort positionnés à 1.
Depuis lors, pour connaître la taille maximale du sous-réseau contenant une adresse IPv4, il faut consulter le serveur whois du registre régional où le bloc d'adresses a été réservé, mais ce bloc peut encore être lui-même sous-divisé localement en sous-réseaux par le réservataire. Et les protocoles nécessitant la connaissance de la taille du sous-réseau ont été revus en rendant nécessaire la spécification effective du masque de sous-réseau (l'ancien algorithme de détermination ne fonctionne plus).
Cependant cette évolution était insuffisante pour servir la communauté des utilisateurs Internet. Il était nécessaire de pouvoir créer des sous-réseaux indépendants plus petits que /24, ou plus grands sans atteindre toutefois la taille d'un réseau /16 (ce qui aurait gaspillé des ressources d'adressage).
Le CIDR, au contraire, permet le regroupement de plusieurs « classe C » pour les considérer comme un seul bloc, et donc avec l'effet de ne créer qu'une seule entrée dans la table de routage là où il y en avait plusieurs. De même il permet de gérer une granularité plus fine des allocations, avec un choix nettement plus étendu de tailles de sous-réseaux.
Dans le système CIDR on notera une adresse IP par le couple (IP de base, longueur du masque), noté IP/longueur. Prenons par exemple le réseau 193.48.96.0/20, alloué à l'IN2P3 :
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 0 0 0 0 0 1|0 0 1 1 0 0 0 0|0 1 1 0 0 0 0 0|0 0 0 0 0 0 0 0| 193.48.96.0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 1 1 1 1 1 1|1 1 1 1 1 1 1 1|1 1 1 1| | | /20
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Cette longueur de masque alloue ici un bloc unique de 4096 adresses pour ce réseau, qui peut être découpé librement par son administrateur. Il peut ainsi continuer à le considérer comme une agrégation de 16 réseaux « classe C » distincts, de 193.48.96.0 à 193.48.111.0, ou le découper en sous-réseaux de taille variable (et pas forcément aligné sur les limites binaires si le routage entre ces sous-réseaux reste interne).
Un fournisseur d'accès peut se voir attribuer des réseaux encore plus grands, comme par exemple 82.64.0.0/14 (256 K adresses), qui correspond à l'agrégation de 4 réseaux de « classe B », bien que l'adresse de base soit dans l'ancienne place destinée aux réseaux de « classe C » (les adresses commençant par 110 faisaient partie de la classe C).
On constate qu'un réseau /8 a la même taille qu'un « classe A », un /16 correspond à un « classe B » et /24 à un « classe C ». Ultimement, un /32 identifie une adresse unique. Il y a une correspondance entre cette notation et les masques de sous-réseau. Dans les exemples précédents, 193.48.96.0/20 peut être noté 193.48.96.0 masque 255.255.240.0.
La norme de routage CIDR impose également aux administrateurs de routeurs la règle de l'agrégation maximum des sous-réseaux qui sont routés ensembles avec la même politique, dans les annonces de routage envoyées en bordure de leur système autonome de routage (AS) avec un protocole de publication de routages tel que BGP4 ou GGP.