Мы уже говорили, что для работы протокола TCP/IP необходимо, чтобы каждый узел сети имел свой адрес. Однако числовые адреса хороши для связи машин, люди же предпочитают имена. Достаточно трудно запомнить и использовать адреса вида 192.112.36.5. Поэтому компьютерам в Интернете для удобства пользователей были присвоены собственные имена. Все приложения Интернета позволяют пользоваться системными именами вместо числовых адресов.

Для лучшего понимания мы использовали почтовую аналогию. Сетевые численные адреса вполне аналогичны почтовой индексации. Машины, сортирующие корреспонденцию на почтовых узлах, ориентируются именно по индексам, а если с индексами выходит какая-то путаница, передают почту на рассмотрение людям, которые по адресу могут определить правильный индекс почтового отделения места назначения. Людям же приятнее и удобнее иметь дело с географическими названиями — это аналоги доменных имен.

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

Доменная система имен — это метод назначения имен путем передачи сетевым группам ответственности за их подмножество имен. Каждый уровень этой системы называется доменом. Домены в именах отделяются друг от друга точками: dynamo. kiev. ua, internet. donetsk. ua, microsoft. com. В имени может быть различное количество доменов, но практически их не больше пяти. По мере движения по доменам слева направо в имени количество имен, входящих в соответствующую группу, возрастает.

Первым в имени стоит название рабочей машины — реального компьютера с IP-адресом. Это имя создано и поддерживается администратором. Домен предпоследнего, второго уровня является частью национальной сети (например, Украина - домен uа). Для США наименование страны по традиции опускается, там самыми крупными объединениями являются сети образовательных (edu), коммерческих (com), государственных (gov), военных (mil) учреждений, а также сети других организаций (org) и сетевых ресурсов (net).

Администратор домена может создавать или изменять любые подлежащие ей имена. Если администратор домена pupkin. donetsk. ua решит поставить новый компьютер и назвать его vasya, он ни у кого не должен спрашивать разрешения, все, что от него требуется, - это добавить новое имя vasya. pupkin. donetsk. ua в соответствующую часть соответствующей всемирной базы данных, и рано или поздно каждый, кому потребуется, узнает об этом имени. Если каждый администратор придерживается таких простых правил и всегда убеждается, что имена, которые он присваивает, единственны во множестве подчиненных имен, то никакие две системы, где бы те ни были в сети Интернет, не смогут заиметь одинаковых имен.

Эта ситуация совершенно аналогична ситуации с присвоением географических названий - организацией почтовых адресов. Названия всех стран различаются. Различаются также названия всех провинций, областей, округов, и эти названия утверждаются в государственном масштабе из центра. То же и с названиями районов и городов: власти городов утверждают названия улиц и следят за их уникальностью. Таким образом, почтовый адрес на основе географических и административных названий однозначно определяет точку назначения.

Поскольку Интернет - сеть мировая, требовался также способ передачи ответственности за имена внутри стран им самим. Сейчас принята двухбуквенная кодировка государств. Так, например, домен Украина называется uа, Россия — ru, Белоруссия - by и т. д. США также включили в эту систему структурирования для всеобщности и порядка. Всего же кодов стран почти 300. Единый Интернет-каталог находится у SRI International (Менло-Парк, Калифорния, США) - государственной организации.

Как же использовать эту систему? Автоматически. Вам надо лишь употребить имя на компьютере, который понимает, как обращаться с DNS. Вам никогда не придется самим разыскивать адрес, соответствующий этому имени, или подавать специальную команду для его поиска. Вы можете это проделать для собственного удовольствия, но это не требуется. Всё компьютеры Интернета способны пользоваться доменной системой. И работающий в сети компьютер всегда знает свой собственный сетевой адрес.

Когда вы пользуетесь именем, например www. terrikon. dn. ua, компьютер должен преобразовать его и адрес. Для этого он начинает запрашивать помощь у DNS-серверов. Это узлы, рабочие машины, обладающие соответствующей базой данных, в число обязанностей которых входит обслуживание такого рода запросов. DNS-сервер начинает обработку имени с правого его конца и двигается по нему влево, т. е. сначала производится поиск адреса в самой большой группе (домене), потом постепенно сужает поиск. Но для начала опрашивается на предмет наличия у него нужной информации местный узел. Здесь возможны три случая:

— местный сервер знает адрес, потому что этот адрес содержится в его части всемирной базы данных;

— местный сервер знает адрес, потому что кто-то недавно уже запрашивал тот же адрес. Когда запрашивается адрес, сервер DNS придерживает его у себя в памяти некоторое время на случай, если кто-нибудь еще захочет попозже тот же адрес — это повышает эффективность системы;

— местный сервер адрес не знает, но знает, как его выяснить.

Как местный сервер может разузнать запрошенный адрес? В его прикладном или системном программном обеспечении имеется информация о том, как связаться с корневым сервером. Это сервер, который знает адреса серверов имен высшего уровня (самых правых в имени), здесь это уровень государств (ранга домена uа). У него запрашивается адрес компьютера, ответственного за зону uа. Местный DNS-сервер связывается с этим более общим сервером и запрашивает у него адрес сервера, ответственного за домен dn. ua. Теперь уже запрашивается этот сервер и у него запрашивается адрес рабочей машины terrikon.

На самом деле для повышения эффективности поиск начинается не с самого верха, а с наименьшего домена, в который входите и вы, и компьютер, имя которого вы запросили. Например, если узел имеет имя Microsoft. com, то опрос начнется (если имя не выяснится сразу) не со всемирного сервера, чтобы узнать адрес сервера группы com, a сразу с группы com, что сразу сокращает поиск и по объему, и по времени.

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

Существует несколько нюансов применения доменной системы имен.

1. Части доменного имени говорят о том, кто ответственен за поддержку этого имени, то есть в чьем подчинении-ведении оно находится. Они могут вообще ничего не сообщать о владельце компьютера, соответствующего этому IP-адресу, или даже (несмотря на коды стран) где эта машина находится. Вполне можно иметь в Антарктиде машину с именем antarktida. donetsk. ua. Это совершенно ненормально, но никаким законам не противоречит.

2. Части доменного имени даже не всегда указывают локальную сеть, в которой расположен компьютер. Часто доменные имена и сети перекрываются, и жестких связей между ними нет: две машины одного домена могут не принадлежать одной сети. Например, системы firma1.donetsk. ua и firma2-donetsk. ua могут находиться в совершенно разных сетях. И еще раз: доменные имена указывают на ответственного за домен.

3. У машины может быть много имен. В частности, это верно для машин, предоставляющих какие-либо услуги, которые в будущем могут быть перемещены под опеку другой машины. Когда эти службы будут перемещены, то имя, под которым эта машина выступала в качестве такого сервера, будет передано новой машине-серверу вместе с услугами; для внешних пользователей ничего не изменится. В сущности, они будут продолжать пользоваться этой службой, запрашивая ее по тому же имени, независимо от того, какой компьютер на самом деле занимается обслуживанием. Имена, по смыслу относящиеся к службе, называются «каноническими именами» или «кименами» (cnames). В Интернете они встречаются чаще всего. Например, имя www. shop. dn. ua указывает на Web-сервер, а не на FTP-сервер.