Лучшие компьютерные игры

СОЗДАЁМ САЙТПАНЕЛЬ ИНСТРУМЕНТОВ

Автор материала:
Дмитрий Симонов
Опубликовано в журнале
«Лучшие компьютерные игры»
№10 (59) октябрь 2006

Компас, ведущий на сайт

Каждое утро вместо завтрака я открываю браузер и посещаю несколько сайтов, в том числе и наш (www.lki.ru). Из этой статьи вы узнаете, почему и как мне это удается, и получите представление об организации собственного интернет-домена.

Немного истории

Все началось в далеком 1957 году, кода Советский Союз запустил первый искусственный спутник Земли — побочный продукт программы развития ядерных ракет. Это обострило технологическую конкуренцию между США и СССР. В итоге в 1958 году в США при Министерстве обороны было создано специальное агентство, главным направлением деятельности которого было проведение исследований в области связи и коммуникаций в ходе обмена ядерными ударами на предмет безопасности. Это агентство носило название Advanced Research Projects Agency (ARPA) — Агентство Передовых Исследовательских Проектов. Главной задачей, которая стояла перед ARPA, было создание такой коммуникационной системы, которая смогла бы функционировать во время ядерной атаки или природного катаклизма. Существующие традиционные телефонные коммуникации были не достаточно надежны, так как повреждение линии связи приводило к потере контроля и управления. Необходима была особая технология, позволяющая иметь связь при повреждении прямой линии связи.

  • В 1961 году Студентом Массачусетского Технологического Института Леонардом Клейнроком описана технология, которая позволяла сохранять связь между определенными пунктами, даже в случае повреждения прямой линии связи между ними. Технология предполагала разбитие исходной передаваемой информации на куски и передачу каждого куска по разным путям.
  • В 1963 году руководитель ARPA Джон Ликлидер предлагает первую концепцию сети.
  • Инициативный практик Ларри Робертс в 1967 году начинает работу над воплощением идей Джона Ликлидера в жизнь.
  • В 1969 году в Калифорнийском университете была создана первая пакетная сеть с использованием одинарного маршрутизатора, которая получила название ARPANET.
  • 1971 год — год появления электронной почты, когда ученый из Массачусетса Рей Томлинсон впервые послал сообщение по e-mail между двумя компьютерами, находящимися в своем офисе.
  • После открытия коммерческой версии ARPANET Telnet в 1974 году и создания первой локальной сети Ethernet начинается стремительное развитие сети — прообраза Интернет.

Использовавшаяся в те времена система адресации вам хорошо знакома — IP-адреса, обычно записываемые как наборы из 4 чисел от 0 до 255, разделенные точками.

Перспектива

IPv6 — следующая версия интернет-протокола, версия 6.0.

Сегодняшние компьютеры используют IP версии 4.0, которая разрабатывалась в середине семидесятых и получилась очень удачной, но достигла своего предела. Адресное пространство вот-вот переполнится, то есть пришло время модернизации.

Ниже приведены 4 основные причины, по которым IP v4.0 следует усовершенствовать:

  • Ограниченное адресное пространство. Совсем немного адресов осталось и, принимая во внимание количество желающих, IP адресов явно не достаточно
  • Производительность. У IP весьма требовательный формат заголовка, способный загрузить существенную долю полосы пропускания
  • Безопасность. Следующая версия IP располагает исключительными средствами обеспечения безопасности, управляемыми верхними слоями ПО
  • Автоконфигурирование. DHCP следующей версии будут позволять компьютеру просто подключаться к сети и работать

Все компьютеры подключенные к сети ARPANET работали по протоколу IP (Internet Protocol) и имели специальные файлы, в которых содержалась информация (соответствие IP-адреса символьному имени) о всех других компьютерах, подключенных к сети. При появлении нового компьютера в сети в этот файл добавлялась запись, а затем этот обновленный файл рассылался по всем другим компьютерам сети. В начале 1977 года количество таких хостов было в районе 100 и на каждом из них были прописаны имена остальных.

В 1982 ARPA выпустила стек протоколов TCP/IP для разнородной вычислительной среды. Этот год считают годом рождения Internet. Протокол TCP/IP предполагал разбитие файлов на пакеты и передачу их по разным путям. Сеть начала развиваться с неимоверной скоростью — к началу 1984 года количество хостов превысило тысячу, файлы типа /etc/hosts, используемые на каждом компьютере становились все больше и больше. Начинали возникать проблемы: трафик связанный с обновлением информации о новых компьютерах в сети грозил забить все линии связи; все труднее становилось подобрать уникальное символьное имя для новых компьютеров. И вот на смену плоской системе именования компьютеров в сети Интернет в середине 80х пришла иерархическая система, получившая название Domain Name System DNS — система доменных имен.

Это интересно: современный вид интернет приобрел еще через несколько лет — после разработки в 1991 году Тимом Бернерс-Ли протокола HTTP. За это изобретение Бернерс-Ли получил право именоваться сэром.

Как устроен DNS

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

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

Каждый клиент знает, к какому серверу обращаться. Обычно указывается не один, а несколько серверов — если первый не отвечает, клиент обращается ко второму и так далее до исчерпания списка. В принципе неважно, к какому серверу обращаться — они дают (должны давать при правильном функционировании) одинаковые ответы на любой запрос. Поэтому для ускорения работы обычно указывают ближайший. Следует помнить, что на одной машине могут функционировать одновременно Name-сервер и программы-клиенты; поэтому если на машине запущен Name- сервер, то в качестве Name-сервера на ней должен быть прописан «я сам».

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

Мне неизвестна ни одна машина с доменным именем из одного сегмента; очень редко используются доменные имена из двух сегментов; имена из трех и четырех сегментов составляют подавляющую долю всех имен Internet; имена из пяти сегментов встречаются довольно редко, а из шести и более мне неизвестны.

Допустим, клиент запросил адрес «www.организация.город.страна». Поиск информации по доменному имени происходит следующим образом:

  • Клиент спрашивает своего сервера.
  • Если тот является сервером данной зоны, то ответит, на чем все заканчивается.
  • Сервер спрашивает корневой сервер.
  • Тот не может ответить, потому что не знает; зато знает, какой сервер отвечают за зону «страна».
  • Сервер зоны «страна» тоже не может ответить, но знает, что нужно спросить сервер зоны «город.страна».
  • Тот в свою очередь отсылает запрос серверу зоны «организация.город.страна», который сообщит нужную информацию.

Это приближенная модель, которая тем не менее позволяет представить работу системы DNS.

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

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

Это важно: из-за кеширования изменения записей DNS распространяются по сети не мгновенно, поэтому при смене IP-адреса домена он может на какое-то время (обычно несколько часов) стать недоступным.

Хочу обратить особое внимание на сходство, различие и взаимодействие систем DNS и IP- маршрутизации. Как и IP-маршрутизация, DNS работает по принципу делегирования полномочий, но выделение доменных имен совершенно не зависит от выделения IP-адресов. Для примера рассмотрим домен freebsd.org. Это — домен организации, занимающейся распространением операционной системы FreeBSD Unix. FTP-сервер, содержащий дистрибутив операционной системы и множества утилит для нее, имеет копии в нескольких десятках стран. Имена серверов выглядят так:

  • ftp.freebsd.org — первичный сервер в США
  • ftp.страна.freebsd.org — основной сервер в стране
  • ftpчисло.страна.freebsd.org — дополнительный сервер в стране

Так например на 11 февраля 1998 года

  • ftp.ru.freebsd.org соответствует ftp.ru
  • ftp2.ru.freebsd.org соответствует ftp.gamma.ru
  • ftp3.ru.freebsd.org соответствует ftp.chg.ru

Таким образом, машины, находящиеся в России оказались произвольно (по воле администратора DNS из университета Беркли) включенными в домен freebsd.org; однако, они также состоят в своих зонах. Система DNS позволяет любому администратору DNS включить любой сервер в свою зону, хотя это включение никого ни к чему не обязывает.

Однако некоторым сервисам этого недостаточно — так, электронная почта требует, чтобы машина, принимающая письмо, признала своим адрес, указанный в качестве пункта назначения. Современная версия протокола HTTP (в предыдущей этого не было) этого тоже требует.

Существует несколько типов записей DNS. Отдельного упоминания достойны так называемые обратные зоны, сообщающие доменное имя по IP-адресу. При отсутствии записей обратной зоны многие провайдеры отказываются принимать почту.

Одна из проблем состоит в том, что обратную зону можно выделить только на сеть класса A, B или C (на 16777216, 65536 или 256 адресов) и никак иначе. Можно получить права на несколько зон одного или разных классов, но что делать тем, кому выделили меньше 256 адресов? А ведь в условиях исчерпания адресного пространства не редкость выделения пула уже на 16 адресов!

Имена

Пойдем по адресной строке любимого браузера справа налево.

Как уже сказано выше, IP-адресам соответствуют более легкие для запоминания смысловые имена. Начнем с конца — с имени зоны. Их можно условно разделить на «организационные» и «географические». Организационных существенно меньше. Самые популярные из них — зоны .com, изначально предназначенная для коммерческих организаций, и .org  для некоммерческих.

Это интересно: чтобы разгрузить домен com, создано несколько новых доменов. На данный момент уже есть такие домены, как .aero, .museum и некоторые другие, полный список которых можно найти на официальном сайте ICANN по адресу www.icann.org/registrars/accredited-list.html.

В организационных зонах обычно размещаются непосредственно домены организаций.

Географические домены по первоначальному замыслу соответствовали конкретным государствам. Сейчас их несколько больше, чем существует государств — Советский Союз, Чехословакия и Югославия успели распасться, ГДР объединилась с ФРГ... Перечислять все домены верхнего уровня и их соответствие странам смысла нет.

Это интересно: у маленького тихоокеанского государства Тувалу продажа доменов составляет существенную часть национального дохода. Многие телекомпании хотят получить адрес в зоне .tv! Есть еще два забавных исключения из принципа приписки географических доменов к государствам — это .eu и .cat. Домен .eu, как нетрудно догадаться, относится к Объединенной Европе. А вот домен .cat не имеет ни малейшего отношения к кошкам или каталогам. Он субсидируется Ассоциацией развития каталонского языка. Каталония — одна из провинций Испании, гордящаяся своей самобытностью.

В зонах государств опять же обычно имеются «организационные» и «географические» зоны. «Организационные» в большинстве своем повторяют структуру «организационных» зон верхнего уровня, разве что вместо «com» иногда используется «co». «Географические» выделяются городам и регионам. Непосредственно в тех и других размещаются домены организаций или домены персональных пользователей.

Сдвинемся еще левее. Теперь надо выбрать собственное имя домена. Как правило это название компании, торговая марка или что-нибудь столь же характерное. Для неанглоязычных стран используется транскрипция имен. Часто возникают конфликты, связанные с тем, что одно и то же имя используется несколькими фирмами (законодательство допускает это для фирм, работающих в разных отраслях); многие люди заранее резервируют имена, могущие стать популярными для последующей продажи их владельцу торговой марки; но это уже касается юридической стороны функционирования Internet.

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

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

Имена «функциональные» вытекают из функций, выполняемых машиной:

  • www — HTTP (WWW) сервер
  • ftp — FTP сервер
  • ns, nss, dns — DNS (Name) сервер

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

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

Немного практики

Итак, если вы — счастливый обладатель сайта где-нибудь на бесплатном хостинге и хотите дать ему полноценное имя, то читайте этот раздел внимательно.

Для начала надо проверить, что имя домена, которое вы выбрали, до сих пор свободно. Проверить это можно, например, на сайте whois.nic.ru.

После того, как свободное имя найдено и оно вас устроило, необходимо сделать следующие вещи:

  • зарегистрировать имя для своего сайта — домен второго уровня вида имя.ru

На заметку: в России регистрацией доменов до недавнего времени занимался исключительно РосНИИРос. Сейчас он делегировал регистрацию ряду других компаний.

  • заказать услуги хостинга с поддержкой доменного имени
  • получить логин и пароль
  • перекачать по FTP-протоколу файлы своего сайта на хостинг
  • узнать IP-адреса первичного и вторичного DNS в службе тех.поддержки или на сайте хостинга (придется проявить терпение — на некоторых хостингах это могут знать не все и нигде на их сайте это не написано)
  • написать письмо в службу поддержки доменных имен (что-нибудь вида domain@hosting.ru) с просьбой «прошу Вас включить поддержку моего доменного имени имя.ru для логина такого-то»
  • проконтролировать на телефону, получили ли они это письмо и предприняли ли они необходимые действия (на практике специалисты хостинга должны настроить первичный DNS)

Теперь снова надо взаимодействовать с компанией-регистратором:

  • в настройках доменного имени на сайте регистратора указать IP-адреса первичного и вторичного DNS в соответствующих местах;
  • заказать услугу вторичного DNS. Это не обязательно, но если Вы потратите на эту услугу небольшую сумму — порядка 5$ в год, — то компьютер регистратора уже не будет обращаться с запросами на хостинг — сайт будет открываться быстрее)
  • указать в настройках IP-адрес или имя первичного DNS (то есть в процессе взаимодействия компьютер регистратора сделает себе копию данных основных настроек первичного DNS)
  • Ждать примерно одни сутки, пока компьютеры регистратора и хостинга не договорятся между собой. В процессе общения между собой, компьютеры могут завалить Ваш почтовый ящик письмами с техническими подробностями этого процесса. Если там будет встречаться много разных непонятных слов — звоните в службы тех.поддержки обеих организаций и спрашивайте.

А что же дальше?

Рано или поздно процесс, описанный в разделе выше, закончится. В зависимости от условий хостинга вы сможете заводить поддомены, определять синонимы и пользоваться прочими благами. А успешно размещенный сайт — усовершенствовать. Но об этом мы еще расскажем.



Назад