Пятница, 2024-11-08, 1:30 PM
 
Начало Форум Регистрация Вход
Вы вошли как Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: denix  
Как устроен Интернет
denixДата: Пятница, 2006-06-09, 11:49 PM | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 531
Репутация: 0
Статус: Offline
Действительно, все мы пользуемся Интернетом, для многих из нас он уже стал частью жизни, а многие ли знают, как он устроен? Рассматривая такой глобальный вопрос, стоит разделить все повествование, отнюдь не претендующее на всеобъемлемость и всеохватность, на три части: 1) компьютер пользователя плюс его модем, 2) провайдер, 3) множество серверов во всем мире - со всеми соединениями и сетевыми устройствами, которые образуют Всемирную Сеть Интернет.

Начать, конечно, стоит сначала. То есть, с себя. Потому как в большинстве своем вы и есть конечный пользователь, сидящий дома за своим компьютером, слушающий "пение" своего модема во время установки связи. Вы и есть последняя (среди миллионов) точка Интернета. "Первой" точки нет. Почему – об этом отдельный рассказ. Следовательно, начинаем с вас, как с самого крайнего.

Вот схема, на которую я буду ссылаться далее (1 – компьютер пользователя с модемом, 2 – модемы провайдера, 3 – маршрутизатор, 4 – локальная сеть сервера провайдера, 5 – сервер провайдера, 1a – локальная сеть пользователей, 6 – концентратор для обмена трафиком между локальной сетью и провайдером).

Что вообще происходит после того, как вы дома или на работе (если у вас связь с провайдером не через локальную сеть) нажимаете кнопку "Установить связь"? После набора номера, ваш модем [1] соединится с провайдерским [2]. С этого момента лучше рассказывать, как это происходит, глядя "с того конца" - с провайдерского. К маршрутизатору [3] подцеплен модемный пул [2] (набор некоторого количества модемов), маршрутизатор настраивает их на автоответ. После поступления звонка и успешного прохождения handshaking (т.е. настройки обоих модемов, когда они "договариваются" о скорости и протоколе обмена), оба модема, вместе с линией между ними, начинают представлять уже просто транспорт для связи маршрутизатор <--> ваш компьютер. Все, о модемах с этого момента уже можно не вспоминать. Связь установлена.

Теперь маршрутизатор должен договориться с вашей операционной системой (он ведь пока не знает, какая у вас стоит) об авторизации вашего подключения. Для этого существует несколько специальных протоколов. Windows использует протокол CHAP. После того, как маршрутизатор это сделает, он посылает пакет с вашим именем и паролем на авторизующий сервер [5]. Как только авторизация пройдет успешно (если нет – соединение закрывается со стороны провайдера), маршрутизатор должен договориться с вашим компьютером о протоколе, посредством которого ваша система будет общаться с Интернетом в дальнейшем. Конкретно для ОС Windows этот протокол называется PPP (point-to-point protocol) - это можно увидеть в настройках.

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

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

С корпоративными сетями [1a] дела обстоят несколько проще - они просто напрямую (или через концентратор [6]) включены в маршрутизатор, и адрес их сети уже заранее прописан.

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

Ну и, само собой, у провайдера есть сервер [5], который содержит в себе базу пользователей, занимается обработкой почты, ftp, http и т.п. В принципе провайдер для предоставления просто услуг по подключению в Интернет способен обойтись только одним компьютером, который будет заниматься авторизацией (тут и 386-й пойдет). Остальное будет делать маршрутизатор.

Итак, связь установлена, браузер запущен и ожидает ввода сетевого адреса. В браузере вы набираете, к примеру, www.irk.ru в строке URL (заметьте, здесь - без добавки http:// - она сама добавится браузером). Полное имя (www.irk.ru) уходит в пакете запроса на DNS (Domain Name Service), который должен вернуть нормальный IP-адрес браузеру, чтобы работать дальше. Чтобы было понятнее, отвлекусь на термины DNS и "IP-адрес". Дело в том, что привычные имена, обозначающие адреса в Интернете, на самом деле предназначены только для человека - чтобы было удобнее запоминать имена. Компьютер же оперирует цифровыми адресами в виде четырех групп чисел, разделенных точками. Например, 195.160.40.12 – это одно из представлений IP-адреса. В принципе, имя ресурса в строке браузера можно набирать и таким образом, но это неудобно. Следовательно, должна существовать система, которая будет сопоставлять привычные нам имена с числовым представлением.

Этим как раз и занимается служба DNS (domain name service). Преобразования типа cooler.irk.ru -> 195.206.40.164. называются прямым преобразованием. А 195.206.40.164 -> cooler.irk.ru называется обратным преобразованием. То есть, существует два типа сервиса преобразования. У каждого провайдера должен быть свой DNS, который преобразовывает ваши запросы, чтобы вы не лазили далеко за простыми и часто используемыми именами и чтобы другие DNS могли у него спрашивать о его собственных доменах. Но всех имен в Интернете он, конечно, знать не может. На самом деле, DNS - это распределенная база данных. При "незнании" какого-либо адреса DNS провайдер начинает запрашивать его по частям у других DNS-серверов. Начинает с главного (или корневого, root) DNS-сервера, вернее, с нескольких главных – root-сервер не один.

Сам адрес не таков, каким мы его привыкли видеть. Например, www.irk.ru выглядит на самом деле как www.irk.ru. - с точкой в конце. Точка и указывает на "корень", т.е. у "главного" DNS спрашивают: - а кто там у нас отвечает за зону "ru"? Ему отвечают: такие-то и такие-то DNS, и он уже теперь у этих DNS спрашивает: - а кто отвечает за зону irk? - "такой то"... и так далее, пока не получит нужный IP. То есть, если где-либо не на сервере irk.ru запрашивали первый раз название cooler.irk.ru - то сервер того провайдера получил окончательную расшифровку как раз от DNS-сервера с доменом .irk.ru.

Теперь становится понятной надпись во время работы браузера Looking up host... - это он ждет, пока DNS отыщет нужный IP-адрес.

После этого браузер получает пакет с настоящим (цифровым) IP-адресом, и теперь он будет запрашивать ресурс по уже реальному IP-адресу. И будет подставлять порт 80 к своим запросам. Почему подставлять порт, причем именно 80? Это делается для того, чтобы разграничить типы ресурсов. Ведь FTP-сервер может находиться на том же IP-адресе, что и WWW. Протоколу http соответствует по стандарту порт 80 и браузер по умолчанию работает с www, т.е. с 80 портом, ведь написав, например, www.microsoft.com, я попадаю на WWW, а не на FTP. Кроме того, браузер пытается определить порт по первому слову в URL. Если пишется www.microsoft.com, значит нужно подставить 80 порт, а если ftp.microsoft.com, то 21 - порт для работы с FTP. Сами вы этот порт не пишите, он подставляется автоматом, как и многое другое. Конечно, можно написать в строке URL вместо www.microsoft.com - www.microsoft.com:80 - это будет одно т. Существует такая вещь, как alias - виртуальный хост. IP-адреса у разных хостов могут быть одинаковы. Например, IP-адреса www.irk.ru и www.dsi.ru – это одно и то же, и набирая в строке URL "чистый" IP-адрес, попадать вы будете только на какой-то один.

Виртуальный хост делается для того, чтобы вам не пришлось запоминать длинное название директории, где бы мог лежать нужный вам файл, например - www.irk.ru/siberia/ и т.п. Просто системный администратор так прописал настройки, что директория на сервере, где находится siberia, теперь вроде бы как является отдельным сервером www.siberia.ru. Но, все же, физически он находится на основном - www.irk.ru. Хотя, конечно, в Интернете все очень виртуально, и сам сервер www.irk.ru может находиться еще на каком-нибудь другом сервере.

Теперь возникает вопрос: как сервер различает, что именно вы хотите - www.irk.ru или www.dsi.ru, когда вы честно пишете в строке URL нормальный адрес? Ведь IP-адрес у них один и тот же (когда DNS вернет его после сопоставления). Так вот, после получения реального IP-адреса, браузер посылает серверу пакет, содержащий запрос на ресурс с адреса IP (который браузер уже получил) и в нем же (в пакете) обязательно будет присутствовать строка www.irk.ru, то есть обычное имя. На самом деле, адрес виртуального хоста содержится в запросе GET по HTTP-протоколу, но я описываю общий случай.

Наиболее популярной из программ www-серверов является программа Apache, (есть и одноименный проект для русской версии apache.lexa.ru), которая работает под операционной системой UNIX. Названа программа не по имени индейского племени, а по аббревиатуре "A PAtCHy sErver" т.е. "сервер, собираемый из patch-файлов" (из модулей). Apache занимается непосредственно тем, что отвечает на ваши запросы и по требованию выполняет скрипты (script) CGI, отдает файлики, картинки и сам html-код документа. Apache - это HTTPd - hypertext transfer protocol daemon, т.е. по русски – www-сервер.

Так вот, этот самый HTTP-демон, воспринимая IP-адрес с нормальным именем ресурса, смотрит у себя в конфигурационных файлах (слэнговое "конфиги" - они заранее были настроены сисадмином), какой именно ресурс отдать пользователю - с www.irk.ru или www.dsi.ru, ведь имя он получил вместе с IP-адресом, предварительно углядев там адрес своего сервера. А вот если сервер будет не его, то он такой пакет и не получит вовсе, так как маршрутизатор отправит его дальше.

Итак, Apache начинает выдавать ресурс с директории, содержащей файлы www.irk.ru по порту 80. Что он должен выдать? Ведь вы явно не указывали, что именно вы хотите, а просто написали название сайта (правда, еще и явно или неявно указали протокол верхнего уровня, по которому будете общаться – HTTP). В Apache прописано, что по умолчанию для 80 порта с такой-то директории всегда выдается файл index.html. Иногда это может быть default.html или еще что-либо. Для каждого типа файлов существует свой заголовок, который посылается вашему браузеру перед посылкой самого файла (используя протокол HTTP). Делается это для того, чтобы браузер понимал, что именно нужно делать с этим файлом - показать его в окне или предложить запись на диск (например, something.zip - не надо показывать в окне, а надо сохранить - откуда браузер должен это узнавать?).

Существуют и другие указания от сервера браузеру, что ему делать с файлами, находящимися на сервере. Например, когда еще тип файлов .mp3 не был достаточно известен, заголовка на него, естественно, никто не прописывал (это делается отдельно в конфигурациях сервера), поэтому вы могли замечать, что тыкая на ссылку, указывающую на файл с расширением mp3, браузер его добросовестно грузил вам в окно, как файл html. Приходилось обходить это, зажимая Shift при щелчке мышкой. Это, кстати, стандартный прием указания браузеру записывать указанный ресурс на свой диск независимо от заголовка.

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

Автор: Александр Чижов
Источник: http://www.winzone.ru

 
  • Страница 1 из 1
  • 1
Поиск:


Бесплатный хостинг uCoz