Строго говоря, максимальное число узлов, которые можно пронумеровать, используя 128 бит, равняется 2128, или приблизительно 3,4*1038. Это действительно большое число, значительно превышающее массу нашей родной планеты Земля, выраженную в граммах. Однако из-за особенностей протокола адреса IPv6 будут распределяться блоками (то есть не просто по порядку), а все пространство адресов с помощью особых префиксов окажется разбито на подмножества, выделенные каждое для определенных целей. Тем не менее даже с учетом этого адресов будет более чем достаточно для обозначения всех мыслимых устройств, которые можно подключить к Интернету – хотя бы в течение ближайших нескольких десятков лет, пока к Сети не захотят присоединиться марсианские колонии.
Нехватка свободных адресов IPv4 – проблема давно известная, причина ее в бурном росте Интернета. Все те миллиарды устройств, подключенных к Глобальной сети, уже давно не вписываются простым способом в 32 бита старого протокола, который позволяет перечислить лишь чуть более 4 миллиардов узлов. Впрочем, за время эксплуатации IPv4 инженеры и ученые придумали разные способы преодоления нехватки адресов, что явилось одним из эффективных факторов, замедляющих внедрение IPv6.
IPv6 может предложить новые механизмы обеспечения надежности и безопасности передачи данных в Интернете. Однако для перехода на этот протокол интернет-провайдерам требуется совершить довольно затратные в ресурсном плане шаги, так что, несмотря на давление координирующих адресацию в Интернете организаций, внедрение IPv6 пока что буксует, а число узлов Сети, поддерживающих новый протокол, по самым оптимистичным оценкам, измеряется единицами процентов (на 2014 год).
Чтобы подвести итог этому небольшому экскурсу в систему IP-адресации, давайте взглянем на примеры записи адресов IPv6. Используется несколько рекомендованных нотаций, позволяющих компактно записывать IPv6-адреса текстом, все они базируются на шестнадцатеричной системе счисления и поэтому выглядят, например, вот так: 1080:0:0:0:8:800:20 °C:417A или так:
1080::8:800:20 °C:417A. Это один и тот же адрес, взятый к тому же из RFC 3513 (можно сказать, из описания стандарта), определяющего IPv6. Отличия в записи вызваны тем, что второй вариант использует «сокращение нулей».
Ну вот, наверняка теперь даже не искушенный в тонкостях системного администрирования читатель сделал вывод, что IPv6 сложнее IPv4 в плане использования. Поэтому я не стану дальше вдаваться в подробности систем счисления и фундаментальных для IP стандартов RFC, а плавно перейду к связи чисел и имен.
Для начала давайте вспомним, что протоколы обмена данными – это некоторые стандарты, определяющие, каким образом компьютеры должны воспринимать и преобразовывать числа, представляющие собой передаваемые данные. Например, в определении протокола описано, какие части принятого (или переданного) пакета данных являются служебной информацией, а какие собственно полезными данными. Для успешного обмена информацией между собой компьютеры должны использовать совместимые протоколы, если сильно упростить ситуацию, то можно сказать, что компьютеры должны использовать один и тот же протокол.
Уместна аналогия с языками общения людей. Два человека лучше понимают друг друга в разговоре если используют язык, известный им обоим. Занятно, что это не обязательно один язык. Протоколы обмена данными имеют некоторые заметные отличия от живых языков, например, в них не всегда встречаются глаголы, но представление о протоколе передачи данных как о языке вполне информативно.
Протокол IP, входящий в состав группы TCP/IP, определяет адресацию сетевых узлов в Интернете и задает правила доставки пакетов данных от узла к узлу. Часть, обозначаемая TCP, отвечает за установление и работу сеанса связи, то есть некоторого «разговора», в рамках которого может быть передано и, что важно, получено большое количество пакетов. Числа, составляющие IP-адрес, определяют не только узел Интернета, но и сеть, к которой тот принадлежит (ведь Интернет – это сеть сетей).
По мере роста количества пользователей компьютерных сетей выяснилось, что числа вообще привычны лишь небольшой части этих пользователей. Поэтому неудивительно, что чисто человеческие трудности с практическим использованием чисел, определяющих адреса в Интернете, возникли довольно давно – еще в начале 80-х годов XX века.