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

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

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

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

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

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

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

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

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

Как устроен интернет: Ваш смартфон делает запрос, компьютер «Яндекса» отдаёт вам страницу в виде кода

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

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

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

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

Как устроен интернет: Компьютеры в интернете грубо делят на клиенты и серверы

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

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

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

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

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

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

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

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

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

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

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

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

Как устроен интернет: Провода между двумя соседними многоэтажками — чаще всего интернет

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

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

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

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

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

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

Как устроен интернет: Компьютер отправляет пакет данных маршрутизатору

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

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

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

Как устроен интернет: От роутера к роутеру на магистральный канал

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

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

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

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

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

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

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

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Объясни мне: как опубликовать свой сайт в интернете

Покупаем домен, оформляем хостинг, настраиваем привязку и заливаем файлы. Купаемся в лучах славы.

medium
Объясни мне: что такое домен и как его получить

Пошаговая инструкция для начинающих.

medium
Один футболист против законов математики
Один футболист против законов математики

Самое простое и понятное объяснение теории вероятностей, которое вы встретите.

medium
Прокачиваем навыки CSS: GRID

Таблицы на максималках.

easy
Flipper Zero: как устроен хакерский тамагочи
Flipper Zero: как устроен хакерский тамагочи

И сколько на нём можно заработать.

easy
Решение матричных уравнений
Решение матричных уравнений

Финальная глава саги.

medium
Программисты из SpaceX отвечают на вопросы про разработку
Программисты из SpaceX отвечают на вопросы про разработку

Переводим для вас популярный тред из Reddit.

easy
Растровая и векторная графика: это как?
Растровая и векторная графика: это как?

Как-нибудь так…

easy
Словарь тестировщика: автотесты, юнит-тесты и другие важные слова
Словарь тестировщика: автотесты, юнит-тесты и другие важные слова

Основные подходы и понятия инженеров по тестированию

easy
Зачем нужна сортировка в программировании
Зачем нужна сортировка в программировании

И почему это любят спрашивать на собеседовании.

easy
Кто такой дата-сайентист

Если вы не знаете, чем заняться ближайшие 15 лет, — идите в дата-сайенс, помогите нейросетям захватить мир.

easy
Как установить Python на компьютер и начать на нём писать

Это занимает всего 10 минут.

medium
Делаем неубиваемый сайт: статика и динамика
Делаем неубиваемый сайт: статика и динамика

Немного об устройстве сайтов.

easy
easy