IP-адреса, доменные имена и DNS-серверы

Основные понятия о технологиях Сети.

Содержание
1.1. Метафоры Интернета
1.2. Протокол TCP/IP
1.3. IP-адреса, доменные имена и DNS-серверы
1.4. Службы Интернета
1.5. Гипертекстовая ссылка, URL и URI
1.6. Создание простейшего сайта
1.7. Упражнения
1.8. Контрольные вопросы

Метафоры Интернета

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

Интернет представляет собой конгломерат мириада компьютерных сетей и компьютеров, разбросанных по всему миру. Термин «гиперсеть» указывает на то, что Интернет объединяет в глобальное образование другие сети. Под Интрасетью (Интранет) понимается корпоративная сеть, реализованная средствами Интернета, но не подключенная к Интернету, а доступная только сотрудникам организации. Для создания Интрасети требуются те же аппаратные и программные средства, что и для Интернета, кроме подключения к провайдеру Сети. На рис 1.1 представлены основные метафоры Интернета.

Рис. 1.1. Метафоры Интернета.

Согласно этим метафорам основная функция всех технологий Интернета в совокупности состоит в установлении и обслуживании соединений подключенных к сети пользователей. Действия, которые выполняются для этого компьютерами в Сети, регламентируются протоколами стандарта TCP/IP (Transmission Control Protocol / Internet Protocol, Протокол управления передачей / Протокол Интернета), состоящими из двух протоколов – IP и TCP.

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

Технология WWWи реализующая ее информационная служба впервые появились в гиперсети Интернет в начале 90-х годов. Именно этой службе Сеть обязана своей постоянно растущей популярностью. Основными компонентами технологии WWW являются web-документы, web-серверы, обозреватели-клиенты (браузеры) и собственно Web.

Под документом Web (или Web-документом)понимается файл в том или ином стандартном формате, к которому пользователь Сети может получить доступ с помощью обозревателя (клиента) – клиентской программы службы WWW. В частном случае такой файл представляется в текстовом формате и содержит в себе собственно текстовые данные и теги языка разметки гипертекста, например, языка HTML. Такой частный случай документа Web принято называть web-страницей. Непременной и наиболее важной частью web-документа являются гипертекстовые ссылки на другие web-документы. Web-документ является также средой, в которой выполняются программы (скрипты), написанные на различных языках программирования.

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

В других источниках используется термин Web-сайт или сайт, а иногда узел Web или Web-узел. Узел и сайт– это любой набор документов, обозначаемый уникальным IP-адресом в Интернете. Нет IP-адреса – нет узла (сайта). Типичный пример – клиент, подключенный к Интернет не через свой сайт, а через сайт провайдера. Узел не обязательно сервер. На одном сервере может быть несколько узлов, имеющих свои IP-адреса. Для создания узла не обязательно иметь собственный сервер, так как узлы можно располагать на серверах провайдеров по всему Миру, работая со своим узлом по модему или выделенной линии через ближайшего провайдера.

Крупный узел, по существу являющийся программной системой с единой точкой входа (для входа используется один IP-адрес), каждая страница которого может запускать программы и комплексы программ различной степени сложности, иногда называют Web-порталом или порталом(от портал – ворота). По типу порталов сейчас строятся современные автоматизированные системы банков, предприятий, образовательных учреждений и других достаточно крупных организаций.

Порт – это некоторое число, которое идентифицирует программу, желающую принимать данные из Интернета. Это еще одна составляющая адресации протокола TCP, входящая в строку URL, о которой мы не упоминали. Любая программа, стремящаяся передать данные другой, должна знать имя порта, который закреплен за последней. Обычно назначаются фиксированные номера портов. Например, Web-серверу чаще всего выделяется порт с номером 80. Когда вы набираете в броузере адрес какого-нибудь узла, запрос идет на порт 80 компьютера, содержащего указанный узел.

Хостчасто смешивают с понятием узел. Хост и узел, однако, это не всегда не синонимы, поскольку есть понятие виртуальный хост, что позволяет размещать на одном узле несколько хостов, имеющих уникальные доменные имена. Виртуальный хост не имеет уникального IP-адреса, но тем не менее доступен в Сети указанием дополнительной приставки в DNS-имени.

Провайдер – организация, предоставляющая услуги по подключению для доступа в Интернет с помощью различного типа технических устройств (модемов, декодеров, Ethernet-модемов и т.п.).

Хостинг-провайдер (хостер) – организация, которая оказывает услуги (хостинг) по созданию хостов (виртуальных хостов), в том числе предоставляеть место на своем сервере для самостоятельно создаваемых сайтов.

1.2. Протокол TCP/IP

Из многих протоколов Интернета, самым фундаментальным является протокол IP (Internet Protocol), обеспечивающий передачу пакетов между двумя удаленными компьютерами. IP – это протокол, не требующий логического соединения. Его еще называют как «протокол без памяти», так как, послав пакет, протокол IP тут же «забывает» о нем, в отличие от протоколов, устанавливающих логическое соединение (протоколы с памятью), которые получают и сохраняют информацию о пути перемещения пакета. При использовании протоколов с памятью клиенту и серверу пришлось бы хранить много информации о состояниях друг друга и множестве запросов и ответов. В простоте состоит основное достоинство протокола IP, так как ему нет необходимости знать и помнить характеристики физической среды, по которой передается пакет. В результате протоколы без памяти являются «легкими», что позволяет быстро перемещаться от сервера к серверу (взгляд со стороны клиента) и от клиента к клиенту (взгляд со стороны сервера), не требуя большой работы по освобождению ресурсов и запоминанию информации.

Диалог между клиентом и сервером предельно прост: клиент посылает одиночный запрос, а сервер на него отвечает. При этом каждый новый запрос - это новая транзакция, т.е. запросы клиента никаким образом не связаны друг с другом (с точки зрения протокола). При разрыве связи передача прекращается и возобновить её в рамках протокола без памяти нет возможности. Чтобы продолжить передачу сообщения требуется совершенно новая транзакция, тогда как для протоколов с памятью передача данных сообщения осуществляется за один сеанс, а при разрыве передача не повторяется, а продолжается, так как протокол с памятью позволяет запомнить все необходимое для продолжения передачи. На время сеанса протокол с памятью связан с физической средой (зависит от аппаратуры), в которой происходит передача сообщения и реализует сложные алгоритмы реализации передачи сообщения на конкретных физических устройствах. А протокол IP очень прост, поскольку никак не зависит напрямую от структуры физической среды. Для протокола IP главное, что эта физическая среда в принципе способна к передаче пакетов. Поэтому IP работает, как в глобальных, так и в локальных сетях, как в обычных линиях связи, так и в беспроводных и т. п., а поскольку протокол IP является фундаментом, на котором базируется семейство протоколов TCP/IP, то все это семейство может функционировать в любой сети, с любым режимом передачи пакетов.

Протокол TCP построен на базе протокола IP и «отвечает» за установление соединения и управление установленным сеансом. Этот протокол еще называют транспортным уровнем в четырехуровневой сетевой модели TCP/IP. Чтобы обеспечить выполнение этих своих функций к базовому протоколу IP добавляется всего лишь три параметра (сегмента): контрольная сумма содержащихся в IP-пакете данных; сегмент с порядковым номером для каждого передаваемого байта для того, чтобы получатель правильно сложил эти пакеты и получил исходное сообщение; сегмент с записью о подтверждении получения и повторной отправки пакета, если пакет не удалось доставить.

IP-адреса, доменные имена и DNS-серверы

Чтобы соединение отправителя с получателем было возможным, у каждого компьютера в Интернете (вернее – сетевых карт компьютеров, как серверов, так и клиентов) имеется уникальный IP-адрес. Такой адрес присваивается каждой точке подключения к Сети и состоит из четырех 8-разрядных чисел (то есть, принадлежащих диапазону от 0 до 255), соединенных точками (каждое из чисел записывается в отдельный байт, а общая длина адреса составляет четыре байта). Например, сервер поисковой системы Яндекс (Yandex) имеет адрес 213.180.204.211, а 193.232.113.151 – адрес МГУ (Московского государственного университета имени М.В.Ломоносова).

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

В Интрасетях всем компьютерам обычно назначаются фиксированные (статические) IP-адреса, хотя это могут быть и динамические адреса. Адресация компьютеров в Сети обеспечивается с помощью протокола IP.

IP-адреса однозначно определяют компьютеры, обменивающиеся данными по сети, но человеку удобнее воспринимать не числовой код, а текстовый адрес. Для поддержки такой возможности в Сети была организована служба адресации DNS (Domain Name System – Служба имен доменов), превращающая текстовые (доменные) адреса в IP-адреса.

Доменным адресом (доменным именем)называется последовательность нескольких слов, разделенных точками. Такая форма лучше запоминается, поскольку позволяет зашифровать в себе ассоциативные связи с адресатом.

Условно доменное имя можно представить следующим образом: имя_компьютера.домен_второго_уровня.домен_верхнего_уровня.Имя компьютера www – это наиболее часто используемые имена компьютеров в связи с популярностью одноименной службы Интернета. Второе слово называется доменом второго уровня или поддоменом. Например, в доменном адресе www.msu.ru второе слово содержит в себе название университета (MSU - Moscow State University). Пользователям, не имеющим собственного ресурса (сайта) доменные адреса не нужны. Крайнее правое слово доменного адреса называется именем корневого доменаилидомена верхнего уровня.Ниже, в табл. 1.1. перечислены имена наиболее крупных корневых доменов.

Таблица 1.1

Имена некоторых корневых доменов.

Домен Описание
Com Коммерческие организации
Edu Образовательные учреждения
Gov Правительственные учреждения
Net Поставщики услуг Сети
Org Прочие организации
Us Домен Интернета США
ru или su Домен Интернета России
Uk Домен Интернета Великобритании
Ua Домен Интернета Украины

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

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

Существуют специальные протоколы для быстрого поиска IP-адреса или доменного адреса. Один из таких протоколов работает с командой ping, запускаемой в командной строке. Например, IP-адрес МГУ можно узнать введя команду ping www.msu.ru. Вы получите ответ, в котором с некоторым интервалом времени будут появляться строки: 64 bytes from 193.232.113.151: icmp_seq=1 ttl=46 time=144 ms . Для прекращения работы команды нажмите клавиши <ctrl+c>. И, наоборот, доменный адрес можно узнать, введя команду ping 193.232.113.151 .

Службы Интернета

Для обмена данными между клиентом и сервером с информационным ресурсом недостаточно протокола TCP/IP (протокола транспортного уровня). Для этого еще необходимы протоколы уровня приложений, которые так называются в сетевой модели TCP/IP, базирующиеся на протоколе TCP/IP. Для нас представляет интерес протокол HTTP, хотя в Интернет используются и другие протоколы. В рамках технологии Интернет обмен данными осуществляется с помощью служб. СлужбойИнтернета называется совокупность протокола передачи данных типа, характерного для указанной службы, программного обеспечения клиента и сервера службы, а также информационных ресурсов этой службы. Службы соответствуют различным видам информационного сервиса, который может получать пользователь Сети. Различные службы появились в Интернете в разное время и развивались по-разному. Каждая из них использует свой собственный протокол, построенный на основе протокола TCP/IP и работающий «поверх» него. Одна из наиболее популярных служб, базирующаяся на протоколе HTTP (Hypertext Transfer Protocol, протокол передачи гипертекста), называется WWW (World Wide Web, или Всемирная паутина). Эта служба в настоящее время ассоциируется с Интернет и будет основной темой настоящего пособия, однако необходимо знать и уметь пользоваться и другими сервисами (это обычно делается при программировании на стороне сервера), например, перечисленными в таблице 1.2.

Таблица 1.2

Службы и протоколы Интернета.

Служба Протокол Клиент (в составе MS Office 2000) Назначение
WWW HTTP MS Internet Explorer, MS Word, MS Excel Услуги по передаче данных в форматах гипертекста.
Обмен почтой (e-mail) POP3, SMTP MS Outlook, MS Outlook Express Услуги по передаче почтовых сообщений в форматах электронной почты.
Передача файлов FTP MS Internet Explorer Услуги по передаче файлов произвольного формата

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

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

Для работы с сервером каждой службы требуются соответствующие клиентские программы, «умеющие» работать с протоколом службы. Иногда клиентские программы могут работать с несколькими протоколами, и, соответственно, играть роль клиента нескольких служб (пример – обозреватель или браузер MS Internet Explorer).

Протокол HTTP используется не только для пересылки гипертекстовых HTML-документов, но и для доступа к самым различным файлам мультимедиа. Для доступа к файлам достаточно ввести адрес компьютера, путь к файлу и имя файла. HTTP – это общий «язык», посредством которого веб-серверы и веб-броузеры общаются друг с другом в Интернете, оперируя целыми сообщениями, предварительно собираемыми-разбираемыми по протоколу TCP/IP.

Каждое HTTP-взаимодействие начинается с запроса от клиента (веб-браузера). Пользователь либо вводит URL, либо переходит по гиперссылке, либо выбирает закладку, а браузер отображает соответствующий документ. Чтобы сделать это, он должен послать HTTP-запрос серверу. Запрос всегда включает в себя заголовок, а иногда и тело сообщения. Сервер возвращает ответ (информация с сервера всегда посылается только лишь в ответ на запрос), также содержащий заголовок и тело сообщения. Хотя запросы и ответы всегда содержат различную информацию, структура заголовка/тела совпадает у обоих сообщений: заголовок содержит мета-информацию (информацию о сообщении), а тело – содержимое сообщения.