Традиционная популярная история связывает создание Интернета с ядерной войной, а точнее, с приготовлениями к ней. Действительно, появившаяся в 70-х годах прошлого века вычислительная сеть, ставшая прообразом Интернета, финансировалась в рамках проекта, рассматривавшего случай глобальной ядерной войны. Сценаристы Пентагона предполагали очень неприятный расклад: после массированного ядерного удара по территории США инфраструктура систем связи будет разрушена, и уцелеет лишь несколько командных центров-бункеров, разбросанных по огромной территории. Этим центрам нужно будет попытаться установить связь между своими компьютерными сетями, используя остатки инфраструктуры. Не представлялось возможным заранее предсказать, какие кабельные и радиорелейные линии связи сохранят работоспособность и какие пути окажутся доступными для доставки данных из одного командного пункта в другой. Более того, нельзя было предвидеть, какие командные центры уцелеют после ядерного удара. Все это усложняло задачу, решение которой в итоге дало миру Интернет.

Ключевую поддержку проекту оказывало Агентство перспективных исследований Минобороны США – ARPA (ныне DARPA). Следы его деятельности и сейчас в изобилии находятся в разных системах Интернета. Например, существует специальный технический домен. ARPA. Весьма интересен тот факт, что DARPA, вполне официально, ведет отсчет своей истории с момента запуска первого искусственного спутника Земли. Как известно, Cпутник-1 был запущен 4 октября 1957 года СССР. И именно в качестве ответа на советский технологический прорыв правительство США оперативно создало специальное агентство перспективных научных разработок, деятельность которого должна была помочь сократить возникшее технологическое отставание. Да, сейчас этот момент может показаться неочевидным, но в середине XX века успешный запуск первого спутника однозначно указывал на критическое отставание важнейших для военного дела направлений прикладной науки и техники США от СССР.

«Ядерная тема» красной нитью бежит сквозь канву ключевых технологий Сети. Например, веб придуман в одном из ведущих мировых центров ядерной физики – CERN. Не многие знают, что в Россию Интернет пришел благодаря ряду проектов Курчатовского института, связанных с Чернобыльской аварией и международным сотрудничеством по анализу ее последствий.

Теперь, спустя десятилетия, глядя на «ядерную составляющую» глобальной Сети, можно сказать, что Интернет – это апокалиптическая технология, не дождавшаяся своего часа. Впрочем, тот факт, что Апокалипсис еще не наступил, не помешал Интернету развиться в нечто гораздо большее, чем первоначально планировали его главные разработчики.

Итак, разработки DARPA позволили построить Интернет. А само DARPA появилось в результате запуска советского спутника. Можно сказать, что Интернет некоторым образом обязан своим рождением успехам советских программ освоения космического пространства. Вот так переплетены пути истории технологий.

Конечно, военная составляющая технологий вычислительных сетей была лишь одним аспектом. Для военной программы исследователям удалось получить финансирование и ресурсы, которые позволили ковать фундаментальные научные достижения в области телекоммуникаций. При этом у той же программы была и более старая, чисто гражданская составляющая: ученым требовались механизмы разделения вычислительных ресурсов больших компьютеров, установленных в разных университетах, между пользователями, также разбросанными по всей стране. В общем, как это всегда бывает с успешными глобальными технологиями, полезное решение рождалось на стыке интересов нескольких научных дисциплин и ведомств, на государственные деньги и перед лицом военной угрозы (возможно, мнимой).

Первые успешные эксперименты по построению сетей связи между вычислительными машинами проводились в США еще в конце 1960-х годов. Интересно, что эти первые «сети» были беспроводными – сигнал передавался по радиоэфиру.

Так что окутывающий нынешние мегаполисы электромагнитный смог из сигналов станций Wi-Fi и аппаратуры мобильных сетей GSM имеет корни подревнее, чем сам Интернет и, тем более, веб.

Веб – это группа технологий, позволяющих публиковать гипертекстовые документы, связанные между собой. Логически обособленный набор таких документов, вместе с сопутствующими данными, сейчас называют веб-сайтом. Веб, разработанный в 1989–90 годах, в наши дни стал настолько популярным, что для многих пользователей превратился в синоним Интернета. Однако веб – лишь один из сервисов, работающих на базе Интернета, пусть и весьма популярный. Хорошим примером другой технологии, популярной и работающей на базе Интернета, является IP-телефония. Доменные имена являются фундаментом и для веба, и для IP-телефонии, и для массы других сервисов, транспорт для которых обеспечивает Интернет.

Интернет придумали как саморегулирующуюся сеть компьютерных сетей – и в итоге эту сумму телекоммуникационных технологий использовали для обеспечения надежности межсетевого взаимодействия в масштабе стран и огромных территорий.

Древний Интернет… Да, именно древний – ведь это вполне допустимый термин: по меркам сверхскоростного прогресса в сфере информационных технологий Интернет действительно весьма давнее явление. Итак, древний Интернет в плане адресации был числовым, потому что его придумали специалисты в области компьютерных технологий, а как известно, компьютеры очень любят самые разнообразные числа и не любят слова и естественные языки. Более того, именно использование правильного числового представления позволило решить сложную задачу создания саморегулирующейся сети передачи данных. Числами обозначались адреса подключенных к Интернету компьютеров. С помощью преобразований чисел компьютеры находили пути доставки данных внутри Сети друг другу.

В основе функционирования современного Интернета, конечно, также лежат числа. Однако современному массовому пользователю они не видны и, скорее, напоминают некий тайный реликт, артефакт, направляющий глубинные процессы внутри глобальной Сети.

Важно понимать, что абсолютно все межкомпьютерные процедуры по обмену данными реализуются в исключительно числовом виде и могут быть полностью сведены к математическим операциям по «превращению» одних чисел в другие и по установлению сравнительных отношений между ними (больше, меньше, равно). Когда речь идет о компьютерной технике, то буквенные обозначения всегда появляются лишь для удобства работающих с компьютерами людей. Но эти буквенные обозначения рано или поздно появляются обязательно .

Каждый компьютер, подключенный к Интернету, идентифицируется специальным адресом – так называемым IP-адресом. Грубо говоря, IP-адрес позволяет отличить один узел от другого. По этой причине редкая книга об Интернете обходится без рассказа о группе протоколов TCP/IP. Прежде чем приступить к краткому рассказу о них, я поясню важный момент: сама по себе передача данных в глобальной Сети организована довольно-таки сложным образом. Если подвергнуть эту организацию детальному строгому разбору, то быстро выяснится, что первоочередное значение имеют вовсе не сами IP-адреса, а такие непривычные для неспециалиста объекты, как автономные системы (AS), представляющие собой группы компьютеров; политики маршрутизации, определяющие в конечном итоге доступность отдельных узлов сети для остального Интернета (да, вовсе не сам IP-адрес позволяет обмениваться данными с другими компьютерами на земном шаре); точки обмена трафиком, реализующие физическую коммутацию между крупными сегментами Интернета, и т. д. Однако эта книга о доменах, а не об IP-сетях. Потому IP я уделю лишь несколько слов, изложив упрощенно некоторые важные особенности фундаментального транспортного протокола.

В настоящее время (то есть на начало 2014 года) наибольшее распространение в Интернете имеет версия протокола IPv4. Довольно давно разработана новая версия, имеющая ряд весьма существенных отличий, – IPv6. Предполагается, что IPv6 полностью вытеснит IPv4 в ближайшие годы, хотя прогресс здесь пока движется небыстро.

Предыдущий абзац, оценивающий ход внедрения IPv6 как не самый быстрый, появился еще в 2007 году, в самой первой версии книги. Прошедшие годы подтвердили: этот процесс медленный даже по меркам спящей улитки. Несмотря на все предпринимаемые усилия, IPv6 в Сети до сих пор почти не виден.

Итак, в наиболее распространенной версии, IPv4, адреса состоят из 32 бит. Такой IP-адрес можно записать с помощью нескольких чисел в десятичной системе счисления – например, 192.168.35.101 или 10.10.101.123.

Наверное, самым часто озвучиваемым отличием новой версии протокола – IPv6 – является длина записи адреса: в IPv6 для представления полного адреса используется 128 бит против 32 в IPv4. Это очень серьезное увеличение «пространства адресации». Так, с помощью IPv6 можно выделить уникальный IP-адрес всем когда-либо произведенным человечеством электронным устройствам. При этом останется еще предостаточно адресов для использования, скажем, в целях нумерации всех автомобилей, холодильников или даже всех рубашек, проданных на территории Китая. Нумерация рубашек IP-адресами, возможно, окажется полезна в том случае, если они будут оснащены микрочипами и попадут в автоматическую химчистку, центральный компьютер которой захочет выяснить, какие на конкретной рубашке присутствуют пятна.

Строго говоря, максимальное число узлов, которые можно пронумеровать, используя 128 бит, равняется 2 128 , или приблизительно 3,4*10 38 . Это действительно большое число, значительно превышающее массу нашей родной планеты Земля, выраженную в граммах. Однако из-за особенностей протокола адреса 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 века.

Числа весьма отличаются от привычных нам слов того или иного языка. Разница особенно заметна в случае представления и обработки данных компьютером. Конечно, и числа могут быть записаны словами, и слова – числами. Однако слова человеческого языка обозначают многогранные понятия, существующие в памяти человека. Именно из-за связи с речью словесные обозначения лучше запоминаются.

Первопричиной прихода буквенных, точнее, алфавитно-цифровых обозначений в систему адресации Интернета стала электронная почта. Оказалось, что для людей гораздо удобнее представлять адреса электронной почты в формате, сходном с адресами для почты обычной. Понятно, что удобство записи и запоминания адресов человеком способствует росту эффективности использования электронной почты. Поэтому вместо сложных комбинаций чисел сейчас применяются адреса вида [email protected].

Конечно, системы, преобразующие числовые адреса в символьные строки, в компьютерных сетях были известны и ранее, до появления электронной почты. Более того, некоторые из таких систем использовались задолго до появления TCP/IP. Тем не менее именно межсетевое распространение электронной почты подтолкнуло инженеров к идее введения общей системы «символьной адресации» в Интернете. Так в 1983 году появилась – сперва в качестве научного лабораторного проекта – система доменных имен Интернета. Сокращенное название DNS обозначает одновременно и Domain Name System (систему имен), и Domain Name Service (сервис по преобразованию адресов). Эквивалентное русскоязычное название – доменная система имен.

DNS представляет собой сложный распределенный технологический механизм, позволяющий, помимо прочего, сопоставить символьному имени домена (строке символов) один или несколько числовых IP-адресов, определяющих соответствующий узел Интернета. Например, доменному имени test.ru соответствует адрес 192.168.17.101.

Заметьте, что это далеко не единственная задача, которую решает DNS. Система гораздо гибче и универсальнее. DNS – распределенная база данных, ориентированная на хранение и поиск записей, представляющих собой пары значений. Пара «домен – IP-адрес» – только одна из возможных. При помощи DNS выполняют и обратное преобразование, позволяющее найти символьное имя, соответствующее IP-адресу. В этой книге основное внимание уделено функциям DNS, используемым для работы с IP-адресами применительно к символьным адресам ресурсов. Это один из самых востребованных классов функций DNS.

Домены для Интернета придумал Пол Мокапетрис (Paul Mockapetris), ученый из США. Именно он разработал основополагающие для DNS документы – RFC 882 и RFC 883.

Аббревиатура RFC уже не первый раз встречается в тексте. Что она обозначает? RFC (Request for Comments) – это достаточно свободная форма определения тех или иных стандартов и протоколов работы Глобальной сети, сложившаяся в результате исторического развития интернет-сообщества. Можно сказать, что б о льшая часть документов RFC, касающихся Интернета, – это описания новых технологий, добровольно принимаемые ко вниманию и исполнению всеми заинтересованными разработчиками.

В современном Интернете документы RFC 882 и RFC 883 (их тексты опубликованы на специальном сайте по адресам http://tools.ietf.org/html/rfc882 и http://tools.ietf. org/html/rfc883) не действуют – сейчас их заменили более новые версии. Однако по фундаментальным принципам работы нынешняя система DNS Сети не отличается от системы, предложенной более четверти века назад.

Современный Интернет все больше ассоциируется с вебом и веб-сайтами. Большинство новых пользователей вообще не слышали о других технологиях Интернета, для них понятия «веб» и «Интернет» эквивалентны. Но если старые технологии типа Gopher давно умерщвлены всемогущим вебом, то DNS только окрепла, ведь именно символьные имена позволяют вебу виртуализировать понятия реального мира, отражая их в именах доменов.

Современные пользователи Интернета давно привыкли к символьным именам. Подавляющему их большинству даже не придет в голову набирать в адресной строке браузера загадочную цепочку чисел вместо привычного www.nic.ru. Текстовые имена проще воспринимаются в рекламе. Адреса, заданные в виде доменных имен, могут быть привязаны не только к названию бренда (что необходимо для корпоративных сайтов), но и к той отрасли, к тому сектору рынка, с которым относится сайт. Примером подобного «говорящего» имени могут быть auto.ru и gramota.ru.

То есть без символьного именования сайтов никакого интернет-бума быть не могло – ни первого, ни второго. Скорее всего, после очередного «схлопывания инвестиционного пузыря» (а оно неминуемо наступит) в выигрыше опять останутся держатели доменного пространства как единственной технологии, позволяющей через языковые конструкции мертвым узлом привязать виртуальный мир к реальному.