usepoint
menu

Как устроен интернет: базовые понятия

Это первая статья нашего учебника для ИТ-менеджеров - тот самый момент, когда мы вместе глубоко вдыхаем, смотрим на огромный и пугающе сложный мир технологий и решаем: «Ладно, разберёмся». Итак, как же устроен интернет? Начнем с базовых терминов.

Что такое «данные» в IT

В обычной жизни мы говорим: «Мне нужно передать данные» и имеем в виду что угодно - файл, таблицу, письмо.
В IT под данными понимают любую информацию, представленную в виде последовательности единиц и нулей (битов), с которой компьютер может работать.

Ключевые идеи:

  • Компьютеру всё равно, что это - текст, картинка, видео или платеж. Для него это просто последовательность битов.
  • Чтобы эти биты имели смысл, люди договариваются о формате: например, что сначала идёт длина текста, потом код символов, потом подпись и т.д.

В контексте сетей нас интересуют данные, которые нужно передать от одного участника к другому:

  • запрос от браузера к сайту;
  • сообщение из чата;
  • команда от мобильного приложения к серверу;
  • финансовая транзакция из нашего сервиса в банк.

Тут важно понимать: когда технари говорят «данные не дошли», «данные битые», «данные не тем форматом» - это разные проблемы:

  • не дошли - проблема сети/доставки;
  • битые - проблема целостности (по пути испортились);
  • не тем форматом - проблема согласования протокола/контракта.

Сообщения и потоки

Когда данные передаются по сети, обычно говорят либо о сообщениях, либо о потоках.

Сообщение - это кусок данных, у которого есть:

  • начало и конец;
  • отправитель и получатель (или хотя бы получатель);
  • определённая структура (формат).

Примеры сообщений:

  • один HTTP-запрос от браузера к серверу;
  • одно сообщение в очереди (в Kafka, RabbitMQ);
  • одно push-уведомление.

Поток - это длительная последовательность данных, которая идёт непрерывно или очень долго:

  • видеострим (онлайн-трансляция);
  • аудио-стриминг;
  • бесконечный поток событий от датчиков.

Важное отличие:

  • Сообщение: «прилетело - обработали - забыли».
  • Поток: «идёт постоянный поток кусочков данных, система всё время слушает и обрабатывает».

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

Пакеты: как данные «нарезаются» для сети

Сеть не передаёт сразу весь файл или сообщение целиком.
Она работает с более мелкими кусочками, которые называются пакеты (network packets).

Пакет - это небольшой фрагмент данных, к которому добавлена служебная информация:

  • от кого и кому он идёт (адреса);
  • какому «каналу» или протоколу он принадлежит;
  • контроль целостности (поломался ли пакет по пути).

Если провести аналогию:

  • у тебя есть большой документ (сообщение);
  • ты режешь его на много конвертов (пакеты);
  • на каждый конверт пишешь адрес отправителя, адрес получателя и номер страницы;
  • почта доставляет конверты по разным маршрутам;
  • у получателя есть инструкция как собрать все страницы в правильном порядке.

Ключевые свойства пакетов:

  • один логический запрос (например, HTTP-запрос) может быть разбит на множество пакетов;
  • пакеты могут идти разными путями через интернет;
  • пакеты могут приходить не по порядку, а нижележащие протоколы заботятся о том, чтобы собирать их в правильном порядке (или нет - это уже различия TCP/UDP, о которых дальше).

Кто такой «клиент», а кто «сервер»

Это один из самых важных базовых терминов.

Клиент - это программа или устройство, которое инициирует запрос к другому участнику:

  • браузер пользователя;
  • мобильное приложение;
  • другая система.

Характерные признаки клиента:

  • он «начинает разговор»;
  • обычно расположен ближе к пользователю;
  • может быть «тонким» (мало логики, почти всё на сервере) или «толстым» (много логики на себе).

Сервер - это программа или система, которая:

  • ждёт входящих запросов;
  • обрабатывает их и возвращает ответ.

С точки зрения бизнес-логики сервер:

  • «знает всё» о данных;
  • реализует основные процессы (регистрация, создание заказа, платежи и т.д.).

Важно: «сервер» - это не обязательно железный компьютер. Это может быть, наример:

  • программа (процесс) на одном физическом сервере;
  • набор микросервисов в облаке.

Локальная сеть и интернет

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

Локальная сеть (LAN - Local Area Network)

Локальная сеть - это сеть внутри ограниченного пространства:

  • офис;
  • квартира;
  • дата-центр.

Типичные компоненты:

  • Wi‑Fi роутер/точка доступа;
  • коммутаторы;
  • устройства: компьютеры, телефоны, принтеры, серверы.

Особенности:

  • Локальная сеть не обязана быть напрямую доступна из интернета;
    часто она «спрятана» за одним внешним адресом.
  • Внутри LAN устройства зачастую обращаются друг к другу напрямую или через внутренние маршрутизаторы.

Пример проблем локальной сети:

  • «Wi‑Fi отвалился», но интернет у провайдера есть.
  • Не работает доступ к внутреннему серверу, хотя внешние сайты открываются.

Интернет

Интернет - это огромная сеть, состоящая из множества меньших сетей (в том числе локальных), соединённых между собой.

Ключевые идеи:

  • У каждой сети есть свой провайдер (оператор связи), который подключает её к большим магистральным сетям.
  • Данные передаются между сетями через цепочку маршрутизаторов, которые «пересылают» пакеты от одного сегмента сети к другому.

Провайдер и маршрутизатор (роутер)

Теперь - два героя, которых ты будешь слышать очень часто: провайдер и маршрутизатор.

Провайдер (ISP - Internet Service Provider)

Провайдер - это организация, которая:

  • подключает дома, офисы и дата-центры к интернету;
  • обеспечивает канал передачи данных;
  • часто даёт публичный IP‑адрес (или диапазон), через который наша сеть видна «наружу».

Примеры для бизнеса:

  • у офиса один или несколько провайдеров;
  • у дата-центра/облака - свои каналы и договорённости с магистральными операторами.

Риски для проекта:

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

Маршрутизатор (роутер)

Маршрутизатор - это устройство или программа, которая принимает решение:

«Куда отправить этот пакет дальше, чтобы он в итоге дошел до назначения».

Маршрутизаторы есть:

  • у провайдера;
  • в ядре крупных сетей;
  • в офисе или квартире (домашний роутер).

Домашний роутер обычно совмещает несколько функций:

  • маршрутизатор (пересылает пакеты между локальной сетью и интернетом);
  • firewall (фильтрация трафика);
  • Wi‑Fi точка доступа.

Как всё это связывается вместе: короткий сценарий

Давай увяжем все понятия в одну простую картину - это будет рабочим «скелетом» для последующих разделов.

Пример: пользователь в офисе открывает наш веб‑сервис в браузере.

  1. Пользователь в помещении подключен к локальной сети (Wi‑Fi/кабель).
  2. Его устройство отправляет данные - HTTP-запрос, который в сетевом слое разбивается на пакеты.
  3. Пакеты попадают на офисный маршрутизатор (роутер).
  4. Роутер отправляет пакеты по каналу к провайдеру.
  5. Провайдер передаёт пакеты через цепочку маршрутизаторов в интернет, дальше - в нужный дата-центр/облако.
  6. В дата-центре пакеты доходят до сервера (или кластера серверов), где работает наш веб‑сервис.
  7. Сервер, в роли сервера в модели клиент–сервер, принимает запрос, обрабатывает его (обращается к БД, внешним системам) и отправляет ответ обратно.
  8. Ответ снова идёт через цепочку маршрутизаторов, провайдеров и наконец попадает к клиенту - браузеру.
  9. Браузер из полученных данных строит страницу (об этом будет глава про HTTP и браузер).

На каждом шаге может что-то пойти не так:

  • на стороне клиента (сломался Wi‑Fi, перегрузка устройства);
  • в локальной сети (битый кабель, роутер завис);
  • у провайдера (авария, перегрузка);
  • в магистралях (редко, но бывает);
  • в дата-центре (сбои, отказ оборудования);
  • на самом сервере (ошибка приложения, перегрузка БД).

Что важно запомнить из базовых понятий

  1. Данные - это информация, представленная в виде битов. Чтобы они имели смысл, нужен формат и протокол.
  2. Сообщение - логическая единица обмена (запрос, ответ, событие). Сеть передаёт его кусками - пакетами.
  3. Пакет - небольшой фрагмент данных плюс служебная информация. Пакеты могут теряться, приходить не по порядку, идти разными путями.
  4. Клиент инициирует запрос, сервер отвечает. Это не только браузер и «железный» сервер - это абстрактные роли в архитектуре.
  5. Локальная сеть - сеть внутри офиса/квартиры/дата-центра; интернет - сеть сетей, соединённых провайдерами.
  6. Провайдер даёт выход в интернет; маршрутизатор решает, куда дальше отправить пакеты.
  7. Любая проблема с «интернетом» почти всегда лежит на одном из этих уровней - устройство, локальная сеть, провайдер, магистраль, дата-центр, сервер.

СЛЕДУЮЩАЯ СТАТЬЯ: Модель OSI: семь уровней сети