Как устроен интернет

Как устроен интернет


Объясни мне: как устроен интернет


Часть 1: Компьютеры и сеть

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

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


Интернет — это много компьютеров

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

Например, есть ваш смартфон. И есть компьютер Яндекса, который отвечает за отображение страницы по адресу yandex.ru. Ваш смартфон делает запрос «Покажи мне главную yandex.ru», компьютер Яндекса этот запрос получает, обрабатывает, проверяет, кто вы, и отдает вам эту страницу в виде кода. Ваш смартфон получает код страницы и выводит на экран в виде главной страницы Яндекса.

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


Клиенты и серверы

Обычно компьютеры в интернете грубо делят на клиенты и серверы. Клиенты — это все компьютеры, на которых информацию потребляют. Обычно у них есть клавиатуры, экраны, они мобильные и удобные для людей. Ваш телефон, планшет и ноутбук — клиенты.

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

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


Ради интереса: что может быть сервером

Сервером может работать почти любой компьютер. Вот несколько идей:

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

На вашем рабочем компьютере может в фоновом режиме работать сервер для игры Counter Strike. Другие люди смогут спасать виртуальных заложников и обезвреживать виртуальные бомбы, пользуясь мощностями вашего компьютера.

Можно купить одноплатный компьютер Raspberry Pi, подключить к нему вай-фай-антенну и батарею, и у вас будет карманный сервер, который по вашему желанию может раздавать файлы, показывать сайты или управлять ботом в Телеграме.

Можно на базе того же Raspberry Pi сделать сервер для умного дома. Он собирает информацию со всех датчиков в квартире, а вы подключаетесь к нему через интернет и смотрите, какая где температура, нет ли протечек, что происходит на камерах.


Как они связаны

Все понимают, что в интернете компьютеры как-то связаны. Но как? Представьте разветвленную корневую систему дерева или кровеносную систему человека: есть большие толстые артерии, от них отходят сосуды, от них — более тонкие сосуды, потом еще и еще, до тончайших капилляров. Похожим образом устроен интернет.

Основа интернета — огромные магистральные кабели, которые лежат под землей и на дне океана: они соединяют города, страны и континенты. Это толстые пучки оптоволокна, по которым передаются колоссальные объемы данных.

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

Огромные магистральные кабели соединяют большие точки обмена данными: так называемые эксчейнджи. Это организации, которые отвечают за обмен трафиком между городами, странами и континентами. В России порядка 50 таких точек, в мире — порядка полутора тысяч.

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

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

Провод попадает в ваш дом. На крыше или в подвале ставится маршрутизатор — это устройство, которое определяет, куда какой сигнал отправить. В маршрутизатор вставляется провод, который тянется непосредственно в вашу квартиру. Мастер подключает провод к маршрутизатору в вашей квартире — та серая или черная коробочка с огоньками. Коробочка начинает раздавать вай-фай, и ваш компьютер подключается к сети.

Есть и другие способы подключиться, но в общем виде это так: Магистраль → городская точка → провайдер → район → дом → подъезд → Вы. И везде кабели. Интернет — это не волшебное облако с контентом, это огромная куча серверов, маршрутизаторов и кабелей, которые оплетают планету. И в самом конце, как вишенка на торте, ваш беспроводной роутер с вай-фаем.


На примере одного запроса

Допустим, вы захотели открыть главную страницу Яндекса. Вот как всё будет происходить.

Вы набрали в браузере адрес yandex.ru. Опуская технические подробности, скажем, что ваш браузер узнал, что сайт yandex.ru живет на компьютере с адресом 77.88.55.80.

77.88.55.80 — это IP-адрес. Такой адрес есть у всех компьютеров в интернете, в том числе у вашего. Ваш браузер говорит компьютеру «Сделай запрос на 77.88.55.80».

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

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

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

У провайдера на роутере написана четкая инструкция, что если придет запрос на адрес 77.88.55.80, нужно передать его вон тому роутеру. Он это делает. Мы оказываемся на магистральном канале, который приведет запрос в Яндекс.

У Яндекса тысячи серверов, и один из них отвечает за главную страницу. Он получил запрос через цепочку роутеров и теперь обрабатывает.

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

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

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

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

На весь путь из вашей квартиры до сервера Яндекса и обратно ушло меньше секунды, но в процессе было задействовано не менее пятидесяти машин — роутеров и серверов. Ваш запрос физически пропутешествовал до сервера Яндекса и вернулся обратно. У вас ощущение, будто вы зашли в Яндекс, но на самом деле Яндекс пришел в ваш дом.



Источник: https://vk.com/thecode.media