Поговорим об интернете!
А также о том, для чего нужны все эти соединения, маршрутизаторы, адреса и протоколы
Интернет повсюду вокруг нас: телефоны, компьютеры, игровые приставки, светофоры и умные чайники — все они ходят туда, а часто и вовсе сидят в сети непрерывно.
Интернет стал простой и привычной частью нашей жизни: мы ищем ответы в онлайн-поисковиках, общаемся в мессенджерах, чистим спам в почте и каждый раз огорчаемся, когда обновления из интернета не вовремя прилетают на наши устройства. Но откуда берётся эта вся информация и как попадает к нам?
Что такое интернет
В самом названии Internet есть слово net, то есть «сеть». Интернет раньше так и называли: «поискать информацию в сети», «загрузить в сеть» — так говорили наши родители. Или бабушки с дедушками.
И это очень правильное описание структуры интернета. Представьте себе рыболовную сеть, состоящую из кучи верёвочек и узелков.
Каждая верёвочка — это соединение, каждый узелок — маршрутизатор.
Представьте: в одном углу сети лежит ваш телефон, в другом — сервер Яндекса, а вы хотите узнать погоду на завтра. Как информации добраться от одного угла до другого? Каждый узелок по дороге (маршрутизатор) знает только соседние узелки и пути к ним, а также путь «по умолчанию», куда отправляет все неизвестные маршруты. Ваш телефон спросит у ближайшего узелка: «Мне нужен сервер Яндекса, куда мне?» Сервер далеко, узелок не знает ответа, поэтому скажет: «Прямо и наверх, спроси там». Этот процесс будет повторяться до тех пор, пока ваш запрос не дойдёт до узелка, соседнего с сервером. При этом сам запрос запоминает маршрут, по которому шёл. Он возьмёт нужные данные и той же дорогой вернётся в ваш телефон. Надеемся, было понятно!
Аналогия с рыболовной сетью очень хорошо описывает структуру интернет-соединений. Вы можете порвать много верёвочек, повредить много узелков, но останутся другие, и информация продолжит передаваться по сети. А вот если у вас дома сломается Wi-Fi-роутер (он служит вашим первым узелком), то вы не сможете отправить запрос. Для смартфонов такими первыми узлами работают вышки сотовой связи, они же базовые станции.
Одна из карт глобальных связей интернета. Попробуйте представить, каким маршрутом пойдёт ваше сообщение для друга в Австралии
Что такое протокол
При отправке запроса и получении ответа запрос делится на части — и каждая часть может пойти своим маршрутом, чтобы распределить нагрузку на сеть более равномерно.
При этом части запроса нумеруются, создаётся «порядок сборки», поэтому понятно, какая часть за какой должна идти. А если что-то потеряется по дороге, об этом станет известно — и эту часть отправят ещё раз, возможно, другим маршрутом. Этот механизм называется «протокол управления передачей», Transmission Control Protocol, сокращённо TCP.
Вторая важная часть работы интернета — это адресация. Было бы странно, если бы этот механизм работал без какой-то чёткой системы адресов. Все бы запутались и не знали, что где искать. Такая система называется «межсетевой протокол», Internet Protocol, сокращённо IP.
Каждому устройству в сети (маршрутизаторам тоже) даётся IP-адрес, с помощью которого это устройство можно найти. Адрес состоит из четырёх чисел, каждое от 0 до 255. Записи адреса обычно получаются такими: 74.56.129.252. Все маршруты в интернете построены от одних таких адресов к другим, адрес есть у каждого сервера и каждого клиента. Проблема этого подхода в том, что при такой комбинации чисел у нас может быть всего 4 млрд адресов. В 1981, когда его только придумали, казалось, что этого достаточно, но в 2000 году адреса начали заканчиваться. На смену этому подходу должен прийти обновлённый IPv6, который состоит из 32 чисел от 0 до 15, таких адресов должно быть примерно 5 × 10²⁸.Записи в нём выглядят так: 2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d (в двоичной записи один байт — это как раз от 0 до 15, или от нуля до f, чтоб записывать одним символом).
Правда, переход на новый протокол IP буксует, большая часть интернета продолжает использовать старую версию с четырьмя числами.
Также для экономии адресов есть специально выделенные «частные сети». Это обычные домашние или корпоративные сети, при использовании которых каждый подключённый клиент недоступен напрямую из интернета. Самый простой пример — обычная домашняя сеть.
Она выглядит как Wi-Fi-роутер, куда приходит кабель от провайдера. Роутер раздаёт интернет на ноутбук, умную колонку, телевизор, телефон и приставку. У каждого из этих устройств есть свой внутренний адрес в рамках домашней сети, но из интернета по нему обратиться к устройству нельзя. А ваш Wi-Fi-роутер перенаправляет запросы по нужным адресам и потом возвращает ответы клиентам. Шесть устройств работают одновременно, занимая всего один адрес в интернете.
Может быть, вы сталкивались с термином «белый IP» у провайдеров. Если ваш провайдер так организует сеть, но эта опция у вас не активна, роутер будет подключён через внутреннюю сеть провайдера — и даже не будет выходить напрямую в интернет.
Адресная книга, протокол и шифр
Следующий важный элемент работы интернета — это адресная книга. Согласитесь, заучивать, что надо набирать 77.88.55.88, чтобы попасть в поиск Яндекса, не очень удобно. Для этого придумали систему доменных имён, Domain Name System, сокращённо DNS. Это специальные серверы, задача которых — уметь отвечать на вопрос «по какому адресу находится вот такой сайт». Это буквально адресная книга. Конечно, со своими нюансами, потому что интернет очень большой.
Все имена состоят из доменов, которые различаются по уровням. Чем ближе к концу записи текст, отделённый точками, тем более высок уровень домена. Домены первого (высокого) уровня, top level domain, — например, .ru в weather.yandex.ru. В этом примере .yandex — домен второго уровня, а weather — третьего. Домены третьего и более низких уровней часто называют поддоменами. Основная идея такой иерархии в том, что мы можем оставить для центральных и мощных серверов управление доменами первого уровня и передать конечным владельцам сайтов управление доменами уровнем ниже. Если вы хотите создать свой сайт в домене .ru, вы отправляете заявку организации, управляющей доменом (эта процедура называется «регистрация домена»), и получаете в управление свой сайт, на котором можете делать любые домены уровнями ниже, просто настроив свой сервер DNS правильно.
Многие домены первого уровня называются национальными, потому что содержат прямую отсылку к стране, которой принадлежат. Например, домены .ru и .рф означают Россию и управляются соответствующей организацией, а домен .us означает США. Впрочем, если вы откроете сайт любого регистратора доменов, вы увидите сотни вариантов, которые можно зарегистрировать из любой страны мира, здесь нет чёткой корреляции.
До появления глобальной системы доменных имён на компьютерах был специальный файл, куда вручную заносились записи о соответствии имени и адреса, и при запросе можно было набрать введённое имя. Такие файлы остались с нами до сих пор, это часть сетевой инфраструктуры операционных систем. Вы можете найти на своём компьютере файл hosts (для Windows это Windows\System32\Drivers\etc\hosts на системном диске, для Мака — /etc/hosts), вписать туда mysite 185.15.59.224, и когда вы откроете браузер и наберёте в адресной строке mysite, попадёте в Википедию. Но работать это будет только у вас.
Это может быть забавно, но мы не рекомендуем без необходимости трогать системные файлы.
Также стоит рассказать про шифрование. Как мы уже выяснили, ваш запрос и ответ каждый раз проходят через неизвестные узлы по неизвестному вам маршруту. Если по дороге попадётся владелец узла, который решит, что ему очень интересно, что за информация проходит через него, а вы вбили данные карточки для оплаты заказа в интернет-магазине, он эти данные увидит. Согласитесь, так себе перспектива.
Так что один из стандартов в интернете — использование шифрования, основанного на сертификатах. Если очень кратко: при установке соединения вы и сервер выбираете временные секретные ключи и шифруете с их помощью все отправляемые данные, так что узнать, что было до шифрования, можете только вы или сервер, но никто по пути. Поэтому обращайте внимание на предупреждения браузера о незащищённом подключении или проблемах с сертификатом при работе в интернете, чтобы ваши данные не попали не в те руки.
И последнее, чего хотелось бы коснуться, это протоколы. Есть много разных способов использовать интернет кроме просмотра сайтов: отправка электронных писем, просмотр видео, общение в мессенджерах. Эти данные требуют другого подхода к организации и пересылке, так что при обмене информацией присутствует понятие «протокол». Обычно они определяются содержимым данных, которые вы отправляете и получаете, и часто различаются сетевыми портами на конечных серверах. Порт — это просто число после адреса или имени сервиса, к которому вы обращаетесь.
Например, 80-й и 443-й порты — это обычный HTTP, который используется для просмотра сайтов, 25-й — это протокол для получения и пересылки электронных писем, а протокол 53 используется для запросов доменных имён. Вам не обязательно знать и использовать эти порты, просто держите в голове, что по одним и тем же маршрутам может ходить разная информация с разным назначением.
Ну что, базово мы разобрались с интернетом. Приятно знать, как работает всё, включая эту статью.
Едем дальше!
