Главная Фотогалерея Скачать Викторина Форум О нас
Главная arrow Спорт и общество arrow Как устроен Интернет?
Не откладывайте тренировку на завтра, когда ей можно заменить ужин сегодня
М.Киргетов

Как устроен Интернет?

Версия для печати Отправить на e-mail
Рейтинг: / 6
ХудшаяЛучшая 
Написал Алексей Абрамов   
26.01.2009 г.

Как технически устроен интернет? 

К написанию этой статьи сподвигла долгая, но к сожалению, неплодотворная дискуссия на форуме QRZ.RU с Михаилом Завьяловым RX1AL. Обсуждался вопрос «Почему нет доступа на антивирусные сайты и не обновляется антивирус». Дискуссия началась с удивившего меня высказывания Михаила: «hosts здесь не причем… Раз интернет есть, значит гейт по умолчанию тоже». Когда я тактично намекнул Михаилу, что речь идет «немного» о разных аспектах работы сети он взорвался целым фонтаном высказываний, и напоследок предъявил, что он сетифицированный инженер Cisco уровня expert.

Чтобы убедиться в знаниях моего оппонента, я попросил его рассказать, что происходит, когда пользователь набирает в строке браузера какой-нибудь адрес, хотя бы «http://kontur.tk». Поскольку Миша умело ушел от ответа на прямой вопрос — я пообещал ответить на него сам.

Как же все-таки устроен Интернет?

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

 

Поскольку модемные соединения сечас неактуальны, будем считать, что компьютер с Windows находится в небольшой локальной сеточке Ethernet, отделенной от Интернета, скажем, простеньким «бытовым» шлюзом-маршрутизатором.

Прежде чем рассказывать о принципах работы сети, следует упомянуть о т. н. стеке протоколов или семиуровневой модели ISO-OSI. Расписывать подробно каждый уровень здесь не буду, тем более сетевой стек windows немного отличается от канонической модели. Но про  несколько уровней сказать необходимо. Упомяну только наиболее важные, в контексте данной заметки, уровни.

Семиуровневая модель ISO-OSI

Информационные запросы формируются на верхнем уровне стека протоколов — прикладном. К примеру, веб-страница при запросе и ответе оформляется в виде http-запроса, где кроме данных добавляется еще и различная служебная информация.

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

tcp

Под транспортным уровнем находится сетевой. IP. Этот протокол также считает все полученное с транспортного уровня просто данными. Он добавляет дополнительную служебную информацию, в т. ч. информацию об адресе отправителя и получателя информационного пакета.

Формат дейтаграммы ipv4

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

ethernet

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

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

Ну и наконец, протокол прикладного уровня, отделив свою служебную информацию, дает «чистые» данные которые обрабатывает приложение.

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

Теперь для полного понимания процесса передачи информации по сети нужно ответить еще на некоторые вопросы.

К примеру, каким образом канальный уровень узнает MAC-адрес сетевой карты компьютера получателя, если с сетевого уровня ему передается IP-адрес?

Есть специальная табличка, где содержится информация о соответствии IP и MAC адресов. И есть специальный протокол, позволяющий обновлять записи в этой табличке, к примеру при перенастройке компьютеров или появлении в сети «новичка». 

Это протокол называется ARP и является протоколом канального уровня. Работает он примерно так: Если адресат в табличке не обнаружен, в сеть посылается широковещательный (адресованный всем) запрос: «Скажите-ка ребята, у кого такой-то IP-адрес».  Канальные уровни запрашивают своих «коллег» на сетевом уровне об ответе на этот вопрос и при совпадении адреса «хозяин» отвечает «У меня!». И компьютер обновляет записи в своей табличке.

Посмотреть ARP — записи можно командой arp -a. Ниже — результат ее работы — в данный момент в сети только один мой компьютер и маршрутизатор Dlink с адресом 192.168.0.1

Работа команды ARP -a

Есть у ARP и брат-близнец — протокол RARP. Он работает на сетевом уровне и выполняет обратную задачу — преобразует MAC-адрес в IP.

Еще один вопрос: Неужели ВСЕ компьютеры могут получить информацию о том, что им не адресовано?

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

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

Коммутаторы работают на канальном уровне. Коммутатор знает MAC-адреса устройств подключенных к его портам. В отличии от концентратора, коммутатор отправляет кадры только адресату. Можно ли заниматься сниффингом в сети построенной на коммутаторах? Можно. Вспомним про протокол ARP.

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

Существуют управляемые коммутаторы. Это сложные устройства, с собственным программным обеспечением. Грань между такими коммутаторами и маршрутизаторами весьма условна. Управляемые коммутаторы позволяют строить виртуальные сети — виланы (VLAN) — топология которых может отличаться от топологии физической сети. О виланах поговорим как-нибудь в другой раз.

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

Шлюз (гейт) соединяет различные по своей физической природе сети.

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

Теоретическая часть ответа на вопрос: «Как устроен Интернет» завершена.

Теперь после короткого экскурса в теорию, рассмотрим, наконец, что происходит, когда пользователь набирает в строке браузера какой-нибудь адрес, хотя бы «http://kontur.tk».

1. Проверяется, есть ли в конфигурационном файле hosts запись для kontur.tk. Если такая запись есть, то обращение будет происходить по сетевому (IP) адресу записанному в hosts. Если записи в hosts нет, то происходит обращение к DNS-серверу. Адреса DNS-серверов, обслуживающих данную сеть прописываются в настройках сетевого соединения, либо, в случае использования в сети динамических IP-адресов (о них тоже как-нибудь в другой раз) получается по DHCP (DHCP позволяет автоматически назначать IP-адреса компьютерам сети, а также централизованно раздавать параметры настройки сетевых соединений).

Для чего обычно используют настройки в файле hosts?

Большинство т. н. «ускорителей Интернета» анализируют, куда обращается пользователь и добавляют частопосещаемые ресурсы в hosts. В этом случае обращения к DNS не происходит, искомый ресурс загружается быстрее.

Есть также пакет php разработчика Denwer. В его состав входят веб-сервер, интерпретатор языка PHP, система управления базами данных MySQL. Денвер позволяет на локальном компьютере сэмулировать работу в Интернет. Обращение к создаваемому сайту через браузер происходит по доменному имени, хотя сам сайт расположен на локальном компьютере (доменное имя localhost, IP-адрес 127.0.0.1). Это и достигается автоматическим добавлением соответствующих строк в hosts.

Ну и некторые трояны и вирусы изменяют hosts чтобы вместо обращения на сайты антивирусов происходило обращение на сайт злоумышленника или просто запросы к антивирусам в Интернет «заворачивались» на localhost.

 

2. Происходит обращение к локальной таблице маршрутизации. (посмотреть ее можно командой route PRINT). Проверяется, к какой строчке таблицы относится искомый адрес. По табличке определяется адрес интерфейса (IP-адрес сетевой платы, к которой подключен сегмент сети, через который можно получить доступ к искомому адресу), адрес шлюза (маршрутизатора — компьютера или активного сетевого устройства, которое может обеспечить связь с другими сегментами сети, четрез которые можно получить доступ к искомому адресу) и метрику. Метрика отображает условное «расстояние» до искомого адреса и нужна для установки приоритета. Если искомый адрес находится в нескольких строках локальной таблицы маршрутизации — то выбирается запись с наименьшей метрикой.

Работа команды route PRINT

В приведенной табличке следует обратить внимание на колонку Адрес шлюза. В первой строке прописан как раз «гейт по умолчанию» — для всех адресов сети.

Однако вся «сеть» 127.0.0.0 будет "шлюзоваться через 127.0.0.1 — т. е. localhost — именно в силу того, что метрика 1, а не 20.

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

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

3. После того, как определен интерфейс и шлюз, сформированные IP-пакеты передаются на канальный уровень, где происходит формирование кадров Ethernet, адресованных шлюзу по умолчанию.

4. Шлюз, получает из сети кадр, MAC-адрес адресата которого совпадает с его собственным MAC-адресом (точнее MAC-адресом интерфейса обращенного в сторону локалки — LAN).Данные кадра, после обработки на канальном уровне передаются на сетевой уровень шлюза. Далее, шлюз-роутер, руководствуясь своей таблицей маршрутизации передает информацию следующему шлюзу — к примеру компьютеру или маршрутизатору интернет-провайдера, к которому подключена наша домашняя сеть.

5. Таким образом запрос передается от роутера к роутеру, пока не достигнет сети, в которой расположен kontur.tk. Последний роутер, прочитав в таблице маршрутизации, что адресат находится в его локальной сети, направляет кадр Ethernet непосредственно на сетевой интерфейс веб-сервера, на котором хостится kontur.tk.

6. Далее — все  как было в самом начале — только наоборот. С канального уровня на сетевой. С сетевого — на транспортный. Там, кстати, к адресу добавится TCP-порт. Как правило, для веб-серверов это порт 80. С транспортного — на прикладной. Там информация принимает первозданный  вид — вид HTTP-запроса. Этот запрос обрабатывается веб-сервером — и запрошенная страница в виде ответа веб-сервера спустившись по стеку протоколов отправляется обратно на наш компьютер, где поднявшись по стеку протоколов отображается веб-браузером.

Посмотреть путешествие запроса чере шлюзы можно с помощью команды tracert.

tracert

При маршрутизации может возникнуть ситуация, когда пакет начинает передаваться «по кольцу».
Чтобы избежать этой неприятности в структуре пакета предусмотрено поле TTL - «время жизни». Каждый шлюз уменьшает это поле на 1. Когда TTL становится равным 0 — пакет отбрасывается.

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

Как правило, обращение к DNS осуществляется через протокол транспортного уровня UDP — используется порт 53.

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

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

При нерекурсивном запросе запросы-ответы DNS упрощенно выглядят примерно так:
— Эй, сервер DNS, скажи-ка IP-адрес www.kontur.tk!
— Я его не знаю. Но в домене tk  рулит DNS-сервер с адресом ….
— Эй, DNS-сервер домена tk, скажи-ка адрес www.kontur.tk
— Не знаю, но домене kontur.tk есть DNS-сервер с адресом
— Эй, DNS-сервер домена kontur.tk, скажи IP-адрес www.kontur.tk
- 85.192.33.180.

Вообще-то рекурсивные запросы как правило разрешены для ограниченного круга клиентов. К примеру DNS-сервер провайдера разрешает своим клиентам обращаться к нему с рекурсивным запросом.

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

Поэкспериментировать с обращением к DNS можно с помощью стандартной утилиты Windows  nslookup. Пример диалога приведен на картинке:

 nslookup

Ответ в данном случае получен от неавторитетного для домена kontur.tk DNS-сервера провайдера. Там же указаны и авторитетные DNS-сервера, обслуживающие домен kontur.tk.

 

Я думаю, что мне удалось «на пальцах» рассказать читателю как устроен Интернет.



Ну и в заключении. Со всем букетом умных слов, которых нахватался Миша можно ознакомиться здесь: http://forum.qrz.ru/thread21679–2.html.
Читать советую осторожно, мелкими порциями.

Но пару перлов все же приведу:

rx1al - всезнайка
А на мое сообщение:
«Просветите плиз, ARPA в вашем понятии что такое и какое отношение имеет к обсуждаемому вопросу? Может опечатка: Вы имели в виду ARP?
Если так, то тогда разницу между канальным и сетевым-транспортным уровнем OSI Вы понимате?»
я получил такой ответ:

rx1al_arp

Удержаться от комментариев не могу, поэтому расскажу о том, что означают «умные слова» на самом деле, а вы решайте, стоит подпускать эксперта Cisco Мишу Завьялова к компьютерным сетям или нет.

ARPA — такого понятия в сетях нет. Есть .arpa — это домен верхнего уровня, используемый исключительно для инфраструктуры Интернета в т.ч. предназначенный для корректной работы, как раз «обратного DNS».

ARP — (Address Resolution Protocol) — протокол канального уровня, предназначенный для преобразования IP-адресов (адресов сетевого уровня) в MAC-адреса (адреса канального уровня) в сетях TCP/IP.
Поскольку речь идет о преобразовании IP в MAC заменой DNS быть никак не может.

SMB — (server message block) — это вообще не сервис, не протокол. А всего лишь формат сообщений, используемый для передачи файловых запросов. Естественно работает на прикладном уровне OSI и также не имеет никакого отношения к разрешению доменных имен.

SAMBA — это вообще программа для Unix, которая позволяет обращаться к сетевым дискам на различных операционных системах. В частности самба конфигурируется на UNIX платформах, чтобы обеспечить доступ к файловым ресурсам по сети с компьютеров, на которых установлена, к примеру, Windows.

Что имел в виду Михаил под «MeSH» это тайна покрытая мраком. То ли онлайн-сервис от Microsoft Live Mesh, то ли британскую музыкальную группу (подчерпнул из Вики)…
Ни то ни другое опять же к адресации компьютеров и разрешению имен отношения не имеет:).

Так и представляется картина: В серверной стоит клетка с попугаем. Наслушалась птица админов и кричит: «Аррр-па, аррр-па, аррпэ. Самба, самба, сээмбэ. Попка хоррроший!»

Ну и напоследок вопрос: Как Вы думаете, почем Михаил прикупил сертификаты Cisco? Если, конечно, они у него есть…



Последнее обновление ( 23.09.2011 г. )
 

Добавить комментарий


Защитный код
Обновить

< Пред.   След. >

На нашем сайте много полезной информации. Возможно Вас заинтересуют и эти странички:

Где купить разрядные значки и книжки

Расписание электричек. Самара, 2011 г.


......
Rambler's Top100
RSS-лентаRSS20

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

Рейтинг O-сайтов на O-sport.ru Экстремальный портал VVV.RU Яндекс цитирования
Система Orphus