← Вернуться к оглавлению
Alterna · глава 4 · страница 4.2

Как данные путешествуют

Ты вводишь в браузере google.com — и через доли секунды на экране появляется поисковая строка. Но что произошло за эти мгновения? Как твой запрос дошёл до сервера в другой стране и вернулся обратно? На этой странице ты увидишь весь путь данных: от нажатия клавиши до загрузки страницы.

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

Ответ кроется в протоколах — наборе правил, по которым устройства понимают друг друга. Как почта: чтобы письмо дошло, нужно знать адрес (IP), правильно написать конверт (пакет) и отправить через почтовое отделение (маршрутизатор). Здесь ты разберёшься, как устроен этот процесс от начала до конца.

ФГОС · базовый ФОП · углублённый
01

Клиент-сервер: кто кого обслуживает?

Основная модель взаимодействия в Интернете: один запрашивает, другой отвечает.

ФГОС

Два роли: клиент и сервер

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

Сервер — программа или компьютер, который хранит данные и отвечает на запросы клиентов.

💻
Клиент
аналогия: посетитель ресторана

Заказывает блюдо (отправляет запрос). Не готовит сам — ждёт, пока повар принесёт. Примеры: браузер, Telegram, онлайн-игра.

🖥️
Сервер
аналогия: кухня ресторана

Принимает заказ, готовит и отдаёт. Работает круглосуточно, обслуживает тысячи клиентов. Примеры: веб-сервер, почтовый сервер, сервер игры.

Принцип запрос-ответ

  1. Клиент отправляет запрос — например, «Покажи мне страницу google.com».
  2. Запрос путешествует по сети — через роутеры, провайдеров, магистральные каналы.
  3. Сервер получает запрос — обрабатывает его (ищет страницу, проверяет права).
  4. Сервер отправляет ответ — возвращает HTML-код страницы, картинки, видео.
  5. Клиент получает ответ — браузер отображает страницу на экране.
Важно Один компьютер может быть одновременно и клиентом, и сервером. Когда ты смотришь YouTube, ты клиент (запрашиваешь видео). Когда загружаешь фото в соцсеть, ты тоже клиент, но сервер соцсети принимает твоё фото и сохраняет его.
02

Пакеты: как данные делятся на части

Большие файлы не летят целиком — они разбиваются на маленькие пакеты.

ФГОС ФОП

Зачем нужны пакеты?

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

Так же работает Интернет: данные разбиваются на пакеты — небольшие блоки с заголовками.

Что внутри пакета?

Каждый пакет состоит из двух частей:

  • Заголовок — служебная информация: IP-адрес отправителя, IP-адрес получателя, номер пакета, контрольная сумма (для проверки целостности).
  • Данные — кусочек полезной информации (часть файла, фрагмент страницы, кусочек видео).
ЗАГОЛОВОК IP-адреса, номер, контроль ДАННЫЕ Фрагмент файла, HTML, видео
Рис. 1. Структура сетевого пакета: заголовок (адреса и управление) + данные (полезная информация)

Как пакеты собираются обратно?

Каждый пакет имеет номер. Когда все пакеты достигают получателя, они собираются в правильном порядке — как пазл. Если какой-то пакет потерялся или повреждён — протокол TCP запрашивает его повторную отправку.

Размер пакета Типичный пакет в Интернете — от 64 до 1500 байт. Когда ты загружаешь фото размером 3 МБ, оно разбивается примерно на 2000 пакетов!
🔬

Рентген пакета

нажми на слой · увидишь реальные поля
интерактив

Каждый пакет — это «матрёшка»: данные оборачиваются заголовками на каждом уровне стека TCP/IP. Нажми на слой, чтобы увидеть реальные поля.

Канальный Ethernet-кадр 14 байт
ПолеРазмерЗначение
MAC-адрес получателя6 байтAA:BB:CC:11:22:33
MAC-адрес отправителя6 байтDD:EE:FF:44:55:66
Тип протокола2 байта0x0800 (IPv4)
Интернет IP-пакет 20 байт
ПолеРазмерЗначение
Версия4 бита4 (IPv4)
Длина заголовка4 бита5 (20 байт)
TTL (время жизни)8 бит64
Протокол8 бит6 (TCP)
IP отправителя4 байта192.168.1.10
IP получателя4 байта142.250.80.46
Транспортный TCP-сегмент 20 байт
ПолеРазмерЗначение
Порт отправителя16 бит49152
Порт получателя16 бит443 (HTTPS)
Номер последовательности32 бита108456001
Флаги8 битACK, PSH
Размер окна16 бит65535
Прикладной Данные HTTP до 1460 байт
ПолеПример
МетодGET
Путь/index.html
ВерсияHTTP/1.1
Hostgoogle.com
User-AgentMozilla/5.0

Выбери слой

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

03

Протоколы: язык, на котором говорят сети

TCP/IP — набор правил, по которым устройства понимают друг друга.

ФГОС ФОП

Что такое протокол?

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

Стек TCP/IP — четыре уровня

Интернет работает по стеку протоколов TCP/IP. Он состоит из четырёх уровней, каждый из которых решает свою задачу:

УровеньЧто делаетПримеры протоколов
ПрикладнойРабота с конкретными приложениями: веб, почта, файлыHTTP, HTTPS, FTP, SMTP, DNS
ТранспортныйНадёжная доставка данных, разбиение на сегментыTCP (надёжный), UDP (быстрый)
ИнтернетАдресация и маршрутизация пакетовIP, ICMP, ARP
КанальныйПередача данных между соседними устройствамиEthernet, Wi-Fi, PPP
Модель OSI Существует более детальная модель — OSI (Open Systems Interconnection), состоящая из 7 уровней. Она используется для обучения и стандартизации. Стек TCP/IP объединяет некоторые уровни OSI: прикладной, представительный и сеансовый → в один прикладной. В главе 5 мы подробнее разберём каждый уровень OSI.
📧
HTTP/HTTPS
прикладной уровень

Протокол для загрузки веб-страниц. HTTPS — защищённая версия (с шифрованием). Ты уже видел его в URL: https://...

📦
TCP
транспортный уровень

Гарантирует, что все пакеты дойдут в правильном порядке. Если пакет потерялся — запрашивает повторную отправку.

📍
IP
интернет-уровень

Отвечает за адреса и маршрутизацию. Каждый пакет имеет IP-адрес отправителя и получателя.

🔌
Ethernet/Wi-Fi
канальный уровень

Передаёт данные между соседними устройствами: компьютер-роутер, роутер-провайдер.

Аналогия Представь, что ты отправляешь письмо:
  • Прикладной уровень — ты пишешь текст письма (содержание).
  • Транспортный уровень — кладёшь в конверт, пишешь «заказное» (TCP гарантирует доставку).
  • Интернет-уровень — указываешь адрес получателя (IP-адрес).
  • Канальный уровень — почтальон несёт письмо в соседний дом (физическая передача).
04

DNS: телефонная книга Интернета

Как доменные имена превращаются в IP-адреса.

ФГОС ФОП

Проблема: люди не любят числа

Компьютеры используют IP-адреса (142.250.80.46), но людям проще запомнить слова (google.com). Как решить эту проблему?

Решение: DNS

DNS (Domain Name System) — система, которая переводит доменные имена в IP-адреса. Как телефонная книга: ты знаешь имя друга, а телефон находишь в справочнике.

Как работает DNS?

  1. Ты вводишь google.com в браузере.
  2. Браузер спрашивает у DNS-сервера: «Какой IP у google.com?»
  3. DNS-сервер ищет в своей базе (или спрашивает у других серверов) и возвращает IP: 142.250.80.46.
  4. Браузер подключается к этому IP и загружает страницу.
БРАУЗЕР google.com? DNS-СЕРВЕР 142.250.80.46 БРАУЗЕР
Рис. 2. DNS-запрос: браузер спрашивает IP у DNS-сервера и получает ответ

Иерархия DNS

DNS-серверы распределены по всему миру и организованы иерархически:

  • Корневые серверы (13 штук по всему миру) — знают, где искать домены верхнего уровня (.com, .ru, .org).
  • Серверы доменов верхнего уровня — знают IP-адреса DNS-серверов для конкретных доменов (google.com, yandex.ru).
  • Локальные DNS-серверы — провайдерские или корпоративные, кэшируют ответы для ускорения.
Кэширование Чтобы не спрашивать у DNS каждый раз, браузер и операционная система кэшируют (запоминают) ответы. Поэтому повторное открытие сайта работает быстрее.
🔍

DNS-симулятор

введи домен · увидишь IP-адрес
интерактив

Введи доменное имя, и симулятор покажет, как DNS переводит его в IP-адрес. Попробуй разные домены!

Нажми «Найти IP», чтобы увидеть процесс...
05

HTTP: как браузер разговаривает с сервером

Протокол HTTP и его защищённая версия HTTPS.

ФГОС ФОП

Что такое HTTP?

HTTP (HyperText Transfer Protocol) — протокол передачи гипертекста. Он определяет, как браузер запрашивает веб-страницы и как сервер их возвращает.

HTTP-запрос

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

  1. Строка запроса — метод (GET, POST), путь (/index.html), версия протокола (HTTP/1.1).
  2. Заголовки — дополнительная информация: какой браузер, какой язык, какие куки.
  3. Тело — данные (например, форма, которую ты отправляешь). Для GET-запроса тело пустое.
GET /index.html HTTP/1.1 Host: google.com User-Agent: Mozilla/5.0 Accept: text/html ← заголовки
Рис. 3. Пример HTTP-запроса: метод GET, путь /index.html, заголовки с информацией о браузере

HTTP-ответ

Сервер возвращает HTTP-ответ, который тоже состоит из трёх частей:

  1. Строка ответа — версия протокола, код состояния, пояснение.
  2. Заголовки — тип содержимого, размер, дата, куки.
  3. Тело — сами данные (HTML-код страницы, картинка, JSON).

Коды состояния HTTP

КодЗначениеЧто означает
200OKЗапрос успешен, страница загружена
301Moved PermanentlyСтраница переехала на новый адрес
404Not FoundСтраница не найдена (ошибка в адресе)
500Internal Server ErrorОшибка на сервере (проблема не твоя)
HTTPS — защищённый HTTP Обыный HTTP передаёт данные в открытом виде — любой перехватчик может их прочитать. HTTPS (HTTP Secure) шифрует данные с помощью протокола TLS. Поэтому в браузере рядом с адресом появляется замочек 🔒 — это значит, соединение защищено.

Скорость передачи данных: считаем время

Как быстро файл долетит от сервера до твоего компьютера?

ФГОС ОГЭ · ЕГЭ

Формула скорости

Передача данных подчиняется простой формуле, похожей на формулу скорости из физики:

Формула

Время = Объём / Скорость

t = V / q, где V — объём данных (бит, байт, МБ), q — скорость канала (бит/с, Мбит/с)

Единицы измерения

Важно не путать биты и байты:

  • 1 байт = 8 бит
  • Скорость канала обычно измеряют в бит/с (Мбит/с, Гбит/с)
  • Объём файлов — в байтах (КБ, МБ, ГБ)
ЕдиницаСколько битПример
1 Кбит1 000 битМаленький текстовый файл
1 КБ8 192 бит (8 × 1024)Фотография (сжатая)
1 Мбит1 000 000 битПесня (MP3)
1 МБ8 388 608 битФотография (высокое качество)
1 ГБ≈ 8,6 млрд битФильм (HD)
Внимание! В задачах ЕГЭ часто используется: 1 Кбит = 1000 бит (десятичная приставка), но 1 КБ = 1024 байта (двоичная приставка). Внимательно читай условие задачи!

Пример задачи

Задача: Скорость интернет-канала — 10 Мбит/с. Сколько секунд понадобится для передачи файла размером 5 МБ?

Решение:

  1. Переведём 5 МБ в Мбит: 5 × 8 = 40 Мбит
  2. Применим формулу: t = 40 / 10 = 4 секунды
🧮

Калькулятор скорости передачи

введи объём и скорость · узнай время
интерактив

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

Нажми «Рассчитать», чтобы узнать время передачи...
06

Как загружается страница: полный путь

От нажатия клавиши до отображения страницы — все шаги за одну секунду.

ФГОС ФОП

Полный процесс загрузки страницы

Когда ты вводишь google.com и нажимаешь Enter, происходит следующее:

  1. DNS-запрос — браузер узнаёт IP-адрес сервера google.com (например, 142.250.80.46).
  2. TCP-соединение — браузер устанавливает надёжное соединение с сервером (трёхстороннее рукопожатие TCP).
  3. TLS-рукопожатие (если HTTPS) — браузер и сервер договариваются о шифровании, обмениваются ключами.
  4. HTTP-запрос — браузер отправляет GET-запрос: «Покажи мне главную страницу».
  5. HTTP-ответ — сервер возвращает HTML-код страницы с кодом 200 OK.
  6. Разбор HTML — браузер читает HTML и строит дерево элементов (DOM).
  7. Загрузка ресурсов — браузер запрашивает картинки, CSS, JavaScript, указанные в HTML.
  8. Отрисовка — браузер отображает страницу на экране.
Время загрузки Весь этот процесс занимает доли секунды! Но если DNS-сервер медленный, соединение нестабильное или страница тяжёлая (много картинок) — загрузка может затянуться.
Что может пойти не так
  • Ошибка 404 — страница не существует (опечатка в адресе).
  • Ошибка 500 — проблема на сервере (сайт сломан).
  • Нет соединения — Wi-Fi отключился, кабель отошёл, провайдер упал.
  • DNS не работает — DNS-сервер недоступен, домен не найден.
  • Блокировка — сайт заблокирован провайдером или файрволом.

Загрузка страницы: замедленная съёмка

нажми «Пуск» · увидишь все шаги с таймингами
интерактив

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

~1 мс
Шаг 1
Парсинг URL
Браузер разбирает адрес: протокол https, домен google.com, путь /
https :// google.com /
~1-100 мс
Шаг 2
DNS-запрос
Браузер спрашивает DNS: «Какой IP у google.com?»
google.com → 142.250.80.46
~20-50 мс
Шаг 3
TCP-соединение (handshake)
Трёхстороннее рукопожатие: SYN → SYN-ACK → ACK
Клиент: SYN → Сервер: SYN-ACK → Клиент: ACK ✓
~20-50 мс
Шаг 4
TLS-рукопожатие
Браузер и сервер договариваются о шифровании, обмениваются ключами
ClientHello → ServerHello → Certificate → Finished 🔒
~50-200 мс
Шаг 5
HTTP-запрос
Браузер отправляет: «GET / HTTP/1.1» с заголовками
GET / HTTP/2\nHost: google.com\nAccept: text/html
~50-300 мс
Шаг 6
HTTP-ответ
Сервер возвращает HTML-код страницы с кодом 200 OK
HTTP/2 200 OK\nContent-Type: text/html\nContent-Length: 18500
~10-50 мс
Шаг 7
Разбор HTML (DOM)
Браузер строит дерево элементов из HTML-кода
<html> → <head> + <body> → <div> → <img> ...
~100-500 мс
Шаг 8
Загрузка ресурсов
Браузер запрашивает CSS, JavaScript, картинки, шрифты
📄 style.css 📄 script.js 🖼 logo.png 🖼 bg.webp 🔤 font.woff2
~10-30 мс
Шаг 9
Отрисовка (render)
Браузер вычисляет стили, строит макет и рисует пиксели на экране
Style → Layout → Paint → Composite → 🖥️
Готово к запуску
📦

Путешествие пакета

нажми «Отправить» · увидишь путь данных
интерактив

Нажми кнопку, чтобы увидеть, как пакет данных путешествует от твоего компьютера через Интернет к серверу и обратно.

ПК Роутер ISP Сервер Роутер
Шаг 0 из 8

Готов к отправке

Нажми «Отправить пакет», чтобы начать путешествие данных от компьютера к серверу.