Базовые концепции компьютерных сетей: IP, порты и протоколы
Когда вы открываете сайт в браузере, ваш компьютер выполняет удивительно сложный ритуал: он находит нужную машину среди миллиардов устройств в интернете, выбирает конкретную «дверь» на этой машине и договаривается о языке общения — всё за доли секунды. Если вы не понимаете, как это работает, настройка сервера превращается в копирование чужих команд без понимания. А на собеседовании именно эти базовые концепции проверяют чаще всего — не потому что они сложные, а потому что по ним сразу видно: человек понимает, что делает, или просто нажимает кнопки.
IP-адрес: почтовый индекс для компьютеров
IP-адрес (Internet Protocol Address) — это уникальный числовой идентификатор устройства в сети. Работает как почтовый адрес: чтобы доставить письмо, почте нужен конкретный адрес дома, а не просто имя получателя. Без IP-адреса компьютер в сети невидим — к нему невозможно обратиться, и он сам не может никуда отправить данные.
Существует две версии IP-адресации:
IPv4 — классический формат, состоящий из четырёх чисел от 0 до 255, разделённых точками. Пример: 192.168.1.10. Каждое число занимает 8 бит (1 байт), итого 32 бита. Это даёт примерно 4,3 миллиарда уникальных адресов — звучит много, но интернет-провайдеры и компании давно исчерпали свободный пул.
IPv6 — новый формат, записываемый как восемь групп шестнадцатеричных чисел через двоеточие. Пример: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Обеспечивает уникальных адресов — достаточно, чтобы присвоить IP каждому атому на поверхности Земли. Для локального сервера и собеседования вам достаточно уверенно работать с IPv4.
Два типа адресов: публичный и приватный
Публичный IP — адрес, видимый из интернета. Его выдаёт провайдер, и он уникален в глобальной сети. Именно по нему внешние пользователи обращаются к вашему серверу, если он доступен извне.
Приватный IP — адрес внутри локальной сети, невидимый из интернета. Диапазоны приватных адресов зарезервированы стандартом RFC 1918:
| Диапазон | Маска | Типичное использование |
| :--- | :--- | :--- |
| 10.0.0.0 – 10.255.255.255 | /8 | Крупные корпоративные сети |
| 172.16.0.0 – 172.31.255.255 | /12 | Средние сети |
| 192.168.0.0 – 192.168.255.255 | /16 | Домашние роутеры, малые сети |
Когда ваш ноутбук подключается к домашнему Wi-Fi, роутер выдаёт ему адрес вроде 192.168.1.105. Это приватный адрес — он работает только внутри вашей квартиры. Для выхода в интернет роутер выполняет NAT (Network Address Translation) — подменяет приватный адрес на публичный при отправке запросов и возвращает ответы обратно на нужное устройство.
Маска подсети: границы территории
Маска подсети (Subnet Mask) определяет, какая часть IP-адреса обозначает сеть, а какая — конкретное устройство внутри неё. Представьте жилой комплекс: первые цифры адреса — это номер комплекса (сеть), последние — номер квартиры (хост).
Маска записывается как четыре числа или как число после косой черты (CIDR-нотация). Например:
192.168.1.10/24 — маска 255.255.255.0. Первые 24 бита — сеть, последние 8 — хост. В такой подсети может быть до 254 устройств (256 минус адрес сети и широковещательный адрес).
10.0.0.5/8 — маска 255.0.0.0. Первые 8 бит — сеть, остальные 24 — хост. Потенциально более 16 миллионов устройств.Для локального сервера в домашней или офисной сети вы почти всегда работаете с /24 — это стандарт для небольших сетей.
Порт: номер комнаты на этаже
Если IP-адрес — это адрес здания, то порт — это номер комнаты в этом здании. Компьютер может одновременно запускать десятки сервисов: веб-сервер, SSH-сервер, базу данных, почтовый сервер. Каждый из них слушает свой порт, и сетевые запросы направляются именно тому сервису, который их ждёт.
Порт — это число от 0 до 65535. Диапазоны делятся на три категории:
0–1023 — системные (привилегированные) порты. Закреплены за стандартными сервисами: 80 — HTTP, 443 — HTTPS, 22 — SSH, 53 — DNS. Для запуска сервиса на таком порту нужны права суперпользователя.
1024–49151 — зарегистрированные порты. Назначаются конкретному ПО: 3306 — MySQL, 5432 — PostgreSQL, 8080 — часто используется для альтернативного веб-сервера.
49152–65535 — динамические (эфемерные) порты. Операционная система автоматически назначает их клиентским приложениям при исходящих подключениях.На собеседовании часто спрашивают: «Какой порт использует Apache по умолчанию?» — 80 для HTTP и 443 для HTTPS. «Какой порт у SSH?» — 22. Эти знания должны быть на уровне рефлекса.
Протоколы: языки общения
Протокол — это набор правил, по которым устройства обмениваются данными в сети. Без протоколов компьютеры не смогли бы понять друг друга — это как разговор двух людей на разных языках без переводчика.
Модель OSI и TCP/IP
Теоретически сетевое взаимодействие описывается моделью OSI из семи уровней: от физического (кабели, сигналы) до прикладного (браузер, почтовый клиент). На практике используется упрощённая модель TCP/IP из четырёх уровней. На собеседовании могут спросить про обе — важно понимать, что OSI это теоретическая модель, а TCP/IP это то, что реально работает.
Для вашей задачи важны два протокола транспортного уровня:
TCP (Transmission Control Protocol) — протокол с установлением соединения и гарантией доставки. Перед передачей данных устройства «договариваются» через тройное рукопожатие (three-way handshake): SYN → SYN-ACK → ACK. Если пакет потерян, TCP запросит повторную отправку. Используется для всего, где важна точность: веб-страницы, файлы, электронная почта, SSH.
UDP (User Datagram Protocol) — протокол без установления соединения. Данные отправляются сразу, без гарантий доставки и порядка. Быстрее, но ненадёжнее. Используется для DNS-запросов, видеозвонков, онлайн-игр — везде, где скорость важнее идеальной точности.
> Представьте разницу так: TCP — это заказное письмо с уведомлением о вручении. UDP — это открытка, брошенная в почтовый ящик: может дойти, может нет, но отправляется мгновенно.
DNS: телефонная книга интернета
DNS (Domain Name System) — система, которая преобразует доменные имена в IP-адреса. Когда вы вводите google.com, DNS-сервер возвращает IP-адрес вроде 142.250.74.46, и браузер подключается уже к нему.
Без DNS вам пришлось бы запоминать IP-адреса всех сайтов. DNS работает на порту 53 и использует преимущественно UDP.
Как всё работает вместе: запрос веб-страницы
Когда вы вводите http://192.168.1.100 в браузере, происходит следующее:
Браузер создаёт TCP-соединение с хостом 192.168.1.100 на порту 80 (стандарт для HTTP).
По установленному соединению отправляется HTTP-запрос — текстовое сообщение вида GET / HTTP/1.1.
Веб-сервер на 192.168.1.100 получает запрос на порту 80, обрабатывает его и отправляет обратно HTTP-ответ с содержимым страницы.
Браузер отображает полученную HTML-страницу.Каждый элемент — IP (куда обращаемся), порт (какому сервису), протокол TCP (как гарантируем доставку) и HTTP (какой формат запроса) — работает как шестерёнки в одном механизме.
Диагностические команды
Для проверки сетевых параметров в Linux используются несколько инструментов:
Команда ss заменила устаревшую netstat и показывает все слушающие (LISTEN) TCP и UDP сокеты. Флаг -p покажет, какой именно процесс держит порт — критически полезно при отладке.
Чек-лист базовых сетевых концепций
[ ] Могу объяснить разницу между публичным и приватным IP-адресом
[ ] Знаю зарезервированные диапазоны приватных адресов (10.x, 172.16–31.x, 192.168.x)
[ ] Понимаю, что маска подсети /24 означает 255.255.255.0 и ~254 хоста
[ ] Знаю стандартные порты: 22 (SSH), 80 (HTTP), 443 (HTTPS), 53 (DNS)
[ ] Могу объяснить разницу между TCP и UDP на бытовом примере
[ ] Понимаю, зачем нужен DNS и на каком порту он работает
[ ] Умею использовать ip addr, ping, ss -tuln для диагностики