Одной из сильных сторон семейства протоколов TCP/IP являются IP-адреса, то есть универсальная схема адресации для сетей, составляющих Интернет. Тем не менее изначальная структура классов IP-адресов имела недостатки. Архитекторы TCP/IP не предвидели поразительных масштабов современной сети - во время разработки TCP/IP сети были привилегией организаций, достаточно обеспеченных для покупки солидных компьютерных систем.
Никто и подумать не мог, что мощные машины под управлением системы Unix появятся на рабочих столах пользователей. На тот момент 32-битный адрес казался столь вместительным, что его разделили на классы, чтобы сократить рабочую нагрузку маршрутизаторов, несмотря на то, что при этом резко сократилось число доступных для применения адресов. Назначение крупной сети одного класса В вместо шести классов С сокращало нагрузку на маршрутизатор, который мог хранить лишь один маршрут для целой организации. При этом в организации, получившей в свое распоряжение сеть класса В, вероятнее всего, не было шестидесяти четырех тысяч компьютеров, а потому большинство полученных адресов не использовались.
Классовая конструкция адреса подверглась критическим нагрузкам при быстром росте сети Интернет. В какой-то момент адреса класса В находились под угрозой полного исчезновения. Быстрое истощение запаса адресов класса В показало, что трех базовых адресных классов недостаточно: класс А слишком велик, а класс С имеет слишком маленькую емкость. Для большинства сетей излишеством был даже класс В, но его приходилось использовать за неимением лучшего.
Разрешить кризис с адресами класса В можно было очевидным путем - принудить организации использовать наборы адресов класса С. Свободные адреса этого класса исчислялись миллионами, и такому запасу не грозило скорое истощение. Однако, как часто случается, очевидное решение оказалось не таким простым, как на первый взгляд. Каждому адресу класса С должна соответствовать запись в таблице маршрутизации. Распространение миллионов адресов класса С привело бы к быстрому росту таблиц маршрутизации и перегрузке маршрутизаторов. Решение задачи требовало нового взгляда на функциональность адресных масок и нового метода распределения адресов.
Изначально сетевые адреса распределялись преимущественно в порядке следования, по мере поступления запросов. Метод замечательно работал для небольшой сети с централизованным управлением. Тем не менее он не учитывал топологию сети, а потому шансы того, что для передачи сообщений в сети 195.4.12.0 и 195.4.13.0 будет использоваться один набор промежуточных маршрутизаторов, определялись лишь случаем. В результате особую сложность приобретала задача минимизации размера таблицы маршрутизации. Набор адресов может рассматриваться в совокупности лишь в том случае, если адреса представлены последовательными номерами и доступны по одному маршруту. Например, для непрерывного блока адресов поставщика сетевых услуг может быть создан единый маршрут, поскольку количество подключений к сети Интернет для этой организации будет ограничено. Но если один сетевой адрес находится во Франции, а следующий за ним по порядку - в Австралии, создание общего маршрута для таких адресов становится невозможным.
В настоящее время длинные блоки последовательных адресов назначаются крупным поставщикам сетевых услуг в порядке, который более точно отражает топологию сети. Поставщики услуг выделяют фрагменты своих адресных блоков под нужды организаций, выступающих в роли клиентов. Распределение адресов, отражающее топологию сети, позволяет применять объединение маршрутов. Известно, что при такой системе сети 195.4.12.0 и 195.4.13.0 достижимы через один и тот же набор промежуточных маршрутизаторов. Более того, можно сказать, что оба адреса принадлежат диапазону, выделенному Европе: от 194.0.0.0 до 195.255.255.255.
Распределение адресов, отражающее топологию сети, позволяет применять объединение маршрутов. Чтобы схема заработала, необходима еще и реализация. Пока адреса 195.4.12.0 и 195.4.13.0 интерпретируются в качестве адресов различных сетей класса С, каждый из них требует отдельной записи в таблице маршрутизации. Развитие адресных масок не только расширило емкость адресного пространства, но и улучшило маршрутизацию.
Применение адресных масок вместо устаревших адресных классов для определения сети адресата носит название бесклассовой междоменной маршрутизации (Classless Inter-Domain Routing, CIDR). CIDR требует модификации маршрутизаторов и протоколов маршрутизации. Наряду с конечными адресами, протоколы должны передавать адресные маски, позволяющие интерпретировать адреса. Маршрутизаторам и узлам необходима информация о том, как интерпретировать адреса в качестве «бесклассовых» и как применять битовую маску, сопровождающую адрес. Работа с адресными масками поддерживается всеми современными операционными системами и протоколами маршрутизации.
Предполагалось, что маршрутизация CIDR станет временным решением, но решение оказалось намного более долговечным, чем предполагали архитекторы. Система CIDR уже много лет является решением проблемы с адресацией и маршрутизацией и еще много лет останется разумным решением. Что касается долгосрочного решения проблемы истощения запасов адресов, оно заключается в обновлении системы адресации. В семействе протоколов TCP/IP за адресацию отвечает протокол IP. Комитет IETF - в целях создания новой адресной структуры - разработал новую версию IP, названную IPv6.