Консультация № 70353
10.01.2007, 21:11
0.00 руб.
0 1 1
Здравствуйте!
Я почему-то думал до недавнего момента, что каждому домену соответствует IP-адерс сервера(виртуального чаще конечно). То есть юзер набирает адрес, идет запрос на DNS-сервер и далее все понятно. Но совсем недавно узнал что это необязательно. Оказывается можно ссылатся на тот же адрес, но другой порт. Короче я запутался, помогите растолковать все по полкам.
Спасибо!

Обсуждение

Неизвестный
11.01.2007, 11:34
общий
это ответ
Здравствуйте, Valeraorg!

Любой компьютер, подключенный к Интернету и желающий обмениваться информа-цией со своими "сородичами", должен иметь некоторое уникальное имя, или IP-адрес. IP-адрес выглядит примерно так: 127.12.232.56. Как мы видим, это — четыре 8-разрядных числа (то есть принадлежащих диапазону от 0 до 255 включительно), соединенные точками. Не все числа допустимы в записи IP-адреса: ряд из них используется в служебных целях (например, адрес 127.0.0.1выделен для обращения к локальной машине — той, на которой был произведен запрос, а число 255 соответствует широковещательной рассылке в пределах текущей подсети). Мы не будем здесь обсуждать эти исключения детально. Возникает вопрос: ведь компьютеров в Интернете миллионы (а скоро будут миллиар-ды). Как же мы, простые пользователи, запросив IP-адрес машины, в считанные се-кунды с ней соединяемся. Как "оно" (и что это за "оно".) узнает, где на самом деле расположен компьютер и устанавливает с ним связь, а в случае неверного адреса адекватно на это реагирует. Вопрос актуален, поскольку машина, с которой мы собираемся связаться, вполне может находиться за океаном, и путь к ней пролегает через множество промежуточных серверов. В деталях вопрос определения пути к адресату довольно сложен. Однако достаточно нетрудно представить себе общую картину, точнее, некоторую ее модель. Предполо-жим, что у нас есть 1 миллиард компьютеров (давайте завысим цифры), каждый из которых напрямую соединен с 11 (к примеру) другими через кабели. Получается эта-кая паутина из кабелей, не так ли. Кстати, это объясняет, почему одна из наиболее популярных служб Интернета, базирующаяся на протоколе HTTP, названа WWW (World Wide Web, или Всемирная паутина).
Итак, мы сидим за компьютером номер 1 и желаем соединиться с машиной somehostс таким-то IP-адресом. Мы даем нашему компьютеру запрос: выясни-ка у своих соседей, не знают ли они чего о somehost. Он рассылает в одиннадцать сторон этот запрос (считаем, что это занимает 0,1 с, т. к. все происходит практически одно-временно — размер запроса не настолько велик, чтобы сказалась задержка передачи данных), и ждет, что ему ответят.
Что же происходит дальше. Нетрудно догадаться. Каждый из компьютеров окруже-ния действует по точно такому же плану. Он спрашивает у своих десятерых соседей, не слышали ли они чего о somehost. Это, в свою очередь, занимает еще 0,1 с. Что же мы имеем. Всего за 0,2 с проверено уже 11.10= =110 компьютеров. Но это еще не все, ведь процесс нарастает лавинообразно. Не-трудно подсчитать, что за время порядка 1 секунды мы "разбудим" 10 в десятой сте-пени машин, т. е. в 10 раз больше, чем мы имеем!
Конечно, на самом деле процесс будет идти медленнее: какие-то системы могут быть заняты и не ответят сразу. С другой стороны, мы должны иметь механизм, который бы обеспечивал, чтобы одна машина не "опрашивалась" многократно. Но все равно, согласитесь, результаты впечатляют, даже если их и придется занизить для реальных условий хоть в 100 раз.
И все-таки обычным людям довольно неудобно работать с IP-представлением адреса. Действительно, куда как проще запомнить символьное имя, чем набор чисел. Чтобы облегчить простым пользователям работу с Интернетом, придумали систему DNS (Domain Name System — Система имен доменов).
Итак, при использовании DNS любой компьютер в Сети может иметь не только IP-адрес, но также и символическое имя. Выглядит оно примерно так: www.somehost.msu.su. То есть, это набор слов (их число произвольно), опять же соединенных точкой. Каж-дое такое сочетание слов называется доменом N-го уровня (например, su— домен первого уровня, msu.su— второго, somehost.msu.su— третьего и т. д.) Вообще говоря, полное DNS-имя выглядит немного не так: в его конце обязательно стоит точка, например: www.somehost.msu.su.
Именно такое (вообще-то, и только такое) представление является правильным, но браузеры и другие программы часто позволяют нам опускать завершающую точку. В принятой нами терминологии будем называть эту точку доменом нулевого уровня, или корневым доменом. домене somehost.ru.
Нужно заметить, что одному и тому же IP-адресу вполне может соответствовать сразу несколько доменных имен. Каждое из них ведет в одно и то же место — к единствен-ному IP-адресу. Благодаря протоколу HTTP 1.1 Web-сервер, установленный на машине и откликающийся на какой-либо запрос, способен узнать, какое доменное имя ввел пользователь, и соответствующим образом среагировать, даже если его IP-адресу соответствует несколько доменных имен. В последнее время HTTP 1.1 применяется практически повсеместно — не то, что несколько лет назад, поэтому все больше и больше серверов используют его в качестве основного протокола для доступа к Web.

Продолжение в приложении...

Приложение:
Интересен также случай, когда одному и тому же DNS-имени сопоставлены несколь-ко разных IP-адресов. В этом случае служба DNS автоматически выбирает тот из ад-ресов, который, по ее мнению, ближе всего расположен к клиенту, или который давно не использовался, или же наименее загружен (впрочем, последняя оценка может быть весьма и весьма субъективна). Эта возможность часто задействуется, когда Web-сервер становится очень большим (точнее, когда число его клиентов начинает пре-вышать некоторый предел) и его приходится обслуживать сразу нескольким компью-терам. Такая схема используется, например, на сайте компании NetscapeКак же ведется поиск по DNS-адресу. Для начала он преобразуется специальными DNS-серверами, раскиданными по всему миру, в IP-адрес. Давайте посмотрим, как это происходит. Пусть клиентом выдан запрос на определение IP-адреса машины www.host.ru.(еще раз обратите внимание на завершающую точку! — это не конец предложения). Чтобы его обработать, первым делом посылается запрос к так назы-ваемому корневому домену (точнее, к программе — DNS-серверу, запущенному на этом домене), который имеет имя "."(на самом деле его база данных распределена по нескольким компьютерам, но для нас это сейчас несущественно). Запрос содержит команду: вернуть IP-адрес машины (точнее, IP-адрес DNS-сервера), на котором рас-положена информация о домене ru. Как только IP-адрес получен, по нему происходит аналогичное обращение с просьбой — определить адрес, соответствующий домену hostвнутри домена ruвнутри корневого домена ".". В конце у предпоследней машины запрашивается IP-адрес поддомена wwwв домене somehost.ru.Важно, что каждый домен "знает" все о своих поддоменах, а те, в свою очередь — о своих, т. е. система имеет некоторую иерархичность. Корневой домен, как мы уже заметили, принято называть доменом нулевого уровня, домен ru.(в нашем приме-ре) — первого, host.ru.— второго уровня, ну и т. д. При изменении доменов неко-торого уровня об этом должны узнать все домены, родительские по отношению к нему, для чего существуют специальные протоколы синхронизации. Нам сейчас нет нужды вникать, как они действуют — скажу только, что распространяются сведения об изменениях не сразу, а постепенно, спустя некоторое время, задаваемое администратором DNS-сервера, и рассылкой также занимаются DNS-серверы. Просто. Не совсем. Представьте, какое бы произошло столпотворение на корневом домене ".", если бы все запросы на получение IP-адреса проходили через него. Чтобы этого избежать, практически все машины в Сети кэшируют информацию о DNS-запросах, обращаясь к корневому домену (и доменам первого уровня — ru, comи т. д.) лишь изредка для обновления этого кэша. Например, пусть пользователь, под-ключенный через модем к провайдеру, впервые соединяется с машиной www.host.ru.В этом случае будет передан запрос корневому домену, а затем, по цепочке, поддомену hostи, наконец, домену www. Если же пользователь вновь обра-тится к www.host.ru., то сервер провайдера сразу же вернет ему нужный IP-адрес, потому что он сохранил его в своем кэше запросов ранее. Подобная технология позволяет значительно снизить нагрузку на DNS-серверы в Интернете. В то же время у нее имеются и недостатки, главный из которых — вероятность получения ложных данных, например, в случае, если хост host.ru.только что отключился или сменил свой IP-адрес. Так как кэш обновляется сравнительно редко, мы всегда можем столк-нуться с такой ситуацией.Конечно, не обязательно, чтобы все компьютеры, имеющие различные доменные имена, были разными или даже имели уникальные IP-адреса: вполне возможна си-туация, когда на одной и той же машине на одном и том же IP-адресе располагаются сразу несколько доменных имен. Успехов и с праздниками!
Форма ответа