Основы компьютерных сетей: как это работает в реальных проектах

Полное руководство: OSI и TCP/IP, MAC и IP, ARP, DNS, NAT, TCP/UDP — с диаграммами и практикой в терминале. Для backend, DevOps и системных администраторов.

АВ
Алексей ВолковТехнический редактор
Сетевой инженер, CCNP · 10 лет в инфраструктуре и облачных сетях

Когда сервис возвращает Connection refused, а деплой упирается в ETIMEDOUT — понимание сетей перестаёт быть теорией. Backend-разработчику нужно знать, почему localhost:5432 не работает из другого контейнера. DevOps — как трафик идёт между зонами доступности. Системному администратору — почему DNS сломался после изменения конфигурации.

Это руководство — не учебник по Cisco и не справочник для экзамена. Здесь рабочая модель сетей от физического сигнала до HTTP-запроса: подробно, с диаграммами, с практикой в терминале.

Часть 1. Что такое компьютерная сеть

Компьютерная сеть — система, позволяющая устройствам обмениваться данными. Любое устройство с сетевым интерфейсом называется хостом, или узлом: ваш ноутбук, сервер в дата-центре, контейнер в кластере Kubernetes.

По чему передаются данные

«Дорога» для данных — среда передачи — бывает трёх видов:

  • Медные провода (витая пара) — электрический сигнал. Стандарт для офисных и дата-центровых сетей.
  • Оптическое волокно — световой сигнал, высокая скорость на больших расстояниях. По оптике проходят магистральные линии между городами и подводные кабели между континентами.
  • Радиоэфир — Wi-Fi, мобильная связь. Нет физического подключения, но сигнал ослабевает с расстоянием и «глушится» препятствиями.

Типичный путь пакета: Wi-Fi от устройства до точки доступа → оптика по магистрали → ethernet или Wi-Fi у получателя. Среда меняется несколько раз, но содержимое пакета остаётся неизменным.

Два фундамента любой сети: адресация и протоколы

Адресация. У каждого устройства должен быть адрес — как у каждого дома есть почтовый адрес. Без адреса непонятно, кому предназначены данные. Адресов на самом деле два: один работает внутри локальной сети (MAC), другой маршрутизируется глобально (IP). Это одна из ключевых идей раздела.

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

Часть 2. Виды сетей: от персональной до глобальной

Сети различают по охватываемой площади:

Виды сетей: PAN, LAN, MAN, WAN

  • PAN (Personal Area Network) — соединение в пределах рабочего места: беспроводные наушники, мышь, смарт-часы. Радиус — несколько метров.
  • LAN (Local Area Network) — сеть в пределах здания или нескольких зданий: корпоративная сеть офиса, домашний роутер, сеть кластера в дата-центре. Именно здесь работают MAC-адреса и протокол ARP.
  • MAN (Metropolitan Area Network) — городская сеть, обычно в управлении провайдера или городских служб.
  • WAN (Wide Area Network) — глобальная сеть, связывающая LAN по всему миру. Интернет — крупнейшая WAN.

На практике вы работаете прежде всего с LAN (корпоративная сеть, VPC, pod-сеть кластера) и воспринимаете WAN как «всё, что за шлюзом».

Часть 3. Модель OSI и стек TCP/IP

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

Самая известная схема — модель OSI с 7 уровнями. На практике используют стек TCP/IP из 4 уровней — именно он работает в интернете.

Модель OSI и стек TCP/IP

Правило диагностики по OSI ping не проходит — проблема на L3 или ниже. DNS резолвится, TCP устанавливается, но HTTP отдаёт 502 — проблема на L7. Уровни дают чеклист: сузить зону поиска за секунды вместо перебора всего стека.

В повседневном общении вы будете встречать отсылки к номерам уровней: «проблема L3» — маршрутизация и IP; «балансировщик L7» — смотрит в HTTP-заголовки, а не просто распределяет TCP-соединения.

Уровни OSI сверху вниз

7. Прикладной — логика приложения. HTTP, HTTPS, DNS, SSH, SMTP, FTP. Здесь рождаются данные.

6. Представления — стандартизация формата данных, шифрование. Обеспечивает, что разные реализации читают данные одинаково (кодировка, сжатие, TLS).

5. Сеансовый — управление сеансом связи: установка, поддержание, восстановление. На практике функции уровней 5–7 часто реализованы вместе.

4. Транспортный — доставка данных между процессами. Делит данные на сегменты, управляет надёжностью и порядком. Протоколы: TCP и UDP.

3. Сетевой — маршрутизация между сетями. Протокол IP, единица данных — пакет.

2. Канальный — передача внутри одного сегмента сети. MAC-адреса, Ethernet, единица данных — кадр.

1. Физический — передача битов по среде: электрический сигнал по проводу, свет по оптике, радиоволны по воздуху.

В стеке TCP/IP уровни 5–7 объединены в «прикладной», уровни 1–2 — в «сетевого доступа».

Инкапсуляция: конверт внутри конверта

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

Инкапсуляция: данные → сегмент → пакет → кадр → биты

  • Приложение создаёт данные.
  • Транспортный уровень добавляет TCP/UDP-заголовок → сегмент.
  • Сетевой уровень добавляет IP-заголовок → пакет.
  • Канальный уровень добавляет заголовок с MAC-адресами → кадр.
  • Физический уровень преобразует кадр в биты.

На принимающей стороне процесс обратный — деинкапсуляция: каждый уровень снимает свой заголовок и передаёт данные уровню выше.

У каждого «конверта» своя задача. Конверт с IP-адресом нужен, чтобы найти нужную сеть в глобальном интернете. Конверт с MAC-адресом — чтобы передать данные конкретному соседу прямо сейчас. Два слоя адресации работают вместе.

Устройства сети: хаб, коммутатор, маршрутизатор

Промежуточные устройства отличаются тем, до какого уровня OSI они «понимают» трафик.

Хаб, коммутатор и маршрутизатор

Хаб (концентратор) — L1. Получив сигнал, повторяет его всем подключённым портам без разбора адресов. Создаёт лишний трафик и коллизии. Исторически использовались в первых Ethernet-сетях; сегодня полностью вытеснены коммутаторами.

Коммутатор (switch) — L2. Читает MAC-адреса из заголовков кадров и отправляет кадр только на нужный порт. Соединяет устройства внутри одной LAN — это стандартное устройство в корпоративных сетях и дата-центрах.

Маршрутизатор (router) — L3. Читает IP-адреса, соединяет разные сети, строит маршруты. Ваш домашний роутер, шлюз VPC в AWS, пограничный маршрутизатор дата-центра — всё это маршрутизаторы.

Межсетевой экран (firewall) — L3–L7 в зависимости от типа. Фильтрует трафик по правилам: IP, порт, протокол, состояние соединения. В Linux — iptables или nftables. В облаке — Security Groups (AWS) или Network Security Groups (Azure). Правила применяются по порядку, первое совпавшее — побеждает.

Часть 4. Ethernet и MAC-адрес

Ethernet — доминирующая технология локальных сетей. Описывает и формат кадра, и физическую передачу. Скорость эволюционировала от 10 Мбит/с в первых реализациях 1980-х до 400 Гбит/с в современных дата-центровых решениях.

В основе Ethernet — принцип равноправного доступа к среде. Если два устройства начинают передачу одновременно, сигналы накладываются — коллизия. Алгоритм CSMA/CD решает это: перед передачей устройство слушает среду; при коллизии оба устройства останавливаются, ждут случайное время и пробуют снова. В современных коммутируемых сетях с полным дуплексом коллизии фактически исключены — у каждого порта коммутатора своя выделенная линия.

MAC-адрес — физический идентификатор интерфейса

Каждый сетевой интерфейс имеет MAC-адрес — 48-битный идентификатор, назначенный производителем.

Строение MAC-адреса

Записывается шестью парами шестнадцатеричных цифр через двоеточие: F8:63:3F:28:4E:CE. Первые три байта — OUI (Organizationally Unique Identifier), идентифицируют производителя. Последние три — уникальный номер интерфейса. Во всём мире не должно быть двух интерфейсов с одинаковым MAC.

MAC-адрес FF:FF:FF:FF:FF:FFшироковещательный: кадр с таким адресом получателя принимают все устройства в сегменте. Используется в ARP и других протоколах L2-уровня.

ip link show           # MAC-адреса всех интерфейсов
ip addr show eth0      # конкретный интерфейс

Что внутри кадра Ethernet

Каждый кадр содержит: MAC-адрес получателя, MAC-адрес отправителя, поле EtherType (указывает протокол вышестоящего уровня: 0x0800 = IPv4, 0x86DD = IPv6), данные (IP-пакет) и контрольную сумму CRC для проверки целостности.

Структура кадра Ethernet

Принимающий коммутатор проверяет CRC. Если не совпадает — кадр отбрасывается. Ошибки физического уровня (повреждение кабеля, помехи) видны как рост счётчиков ошибок интерфейса.

Часть 5. IP-адресация

MAC-адрес работает только в пределах одного L2-сегмента. Чтобы маршрутизировать трафик между сетями — через интернет, между зонами доступности AWS, между узлами Kubernetes — используют IP-адреса.

IPv4: структура адреса

IPv4-адрес — 32 бита, записанные четырьмя десятичными числами через точку: 192.168.1.100. Адрес делится на две части:

IP-адрес: сетевая и хостовая части

  • Сетевая часть — идентификатор сети (аналог названия улицы). Одинакова у всех устройств в одной сети.
  • Хостовая часть — уникальный номер устройства внутри сети (аналог номера дома).

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

CIDR и маска подсети

Граница между сетевой и хостовой частью задаётся маской подсети или CIDR-нотацией:

Маска подсети

192.168.1.0/24   — 256 адресов (254 хоста), маска 255.255.255.0
10.0.0.0/8       — ~16 млн адресов, маска 255.0.0.0
172.16.0.0/12    — ~1 млн адресов, маска 255.240.0.0

/24 означает: первые 24 бита — сетевая часть, оставшиеся 8 — хостовая. Маску удобно воспринимать как «линейку»: там, где в маске 255 — сетевая часть; там, где 0 — хостовая.

Практический вопрос: принадлежит ли адрес данной подсети? 192.168.1.200 и 192.168.1.100 — оба в 192.168.1.0/24, одна сеть. 192.168.2.50 — уже другая.

Приватные диапазоны (RFC 1918)

Три диапазона зарезервированы для частных сетей и не маршрутизируются в публичном интернете:

ДиапазонCIDRТипичное применение
10.0.0.0 – 10.255.255.255/8Корпоративные сети, облачные VPC
172.16.0.0 – 172.31.255.255/12Docker-сети по умолчанию
192.168.0.0 – 192.168.255.255/16Домашние роутеры, офисные LAN

При создании Docker-сети или VPC в AWS/GCP вы выбираете адрес из этих диапазонов. IPv4-адресов в публичном пространстве всего ~4 млрд — и все они уже распределены.

Специальные адреса:

  • 127.0.0.1 — loopback, localhost. Трафик не выходит за пределы хоста.
  • 0.0.0.0 — при привязке сервиса означает «слушать на всех интерфейсах». Сервер, слушающий 0.0.0.0:8080, принимает соединения на любом сетевом интерфейсе хоста.
  • Широковещательный адрес подсети — последний в диапазоне (192.168.1.255 для /24).
Ловушка с контейнерами. Если сервис внутри контейнера привязан к 127.0.0.1 — он недоступен снаружи контейнера, даже с хост-машины. Bind на 0.0.0.0 — обязательное условие, чтобы сервис был виден через docker network или Kubernetes Service.

IPv6

Адресов IPv4 физически не хватает: 2³² ≈ 4 млрд — все распределены. NAT — временное решение. IPv6 использует 128-битные адреса: 2001:0db8:85a3::8a2e:0370:7334. Адресного пространства достаточно, чтобы адресовать каждый атом на Земле. IPv6 устраняет необходимость в NAT: каждое устройство может иметь глобально уникальный публичный адрес.

Часть 6. Как выбирается маршрут: свой или чужой

Перед отправкой каждого пакета устройство решает: получатель находится в моей сети или нет? Ответ определяет, как именно передать пакет.

Свой или чужой: выбор пути

Устройство сравнивает сетевые части своего IP и IP получателя с помощью маски:

Получатель в той же сети — устройства общаются напрямую через коммутатор. MAC-адрес в кадре ставится самого получателя. ARP (см. следующую часть) находит нужный MAC.

Получатель в другой сети — пакет отдаётся шлюзу по умолчанию (default gateway). IP-адрес назначения в пакете остаётся адресом конечного получателя — именно там конечная цель. MAC-адрес в кадре ставится шлюза — именно ему пакет передаётся физически прямо сейчас. Шлюз принимает кадр, извлекает пакет, смотрит на IP назначения и передаёт дальше — следующему маршрутизатору.

Ключевое правило Получатель в моей сети → MAC получателя, данные отдаются напрямую.
Получатель в другой сети → MAC шлюза, но IP в пакете всё равно конечного.

Таблица маршрутизации

Каждый хост и каждый маршрутизатор хранит таблицу — список правил «куда отправлять пакеты для данного диапазона адресов»:

ip route show
# Вывод:
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
10.0.0.0/8 via 10.0.0.1 dev tun0

default via 192.168.1.1 — шлюз по умолчанию. Всё, для чего нет специфичного маршрута, уходит туда. Побеждает правило с самым длинным совпадающим префиксом (longest prefix match) — специфичный маршрут 10.0.0.0/8 всегда приоритетнее default.

Маршрутизаторы в интернете хранят таблицы с сотнями тысяч записей (протокол BGP). Принцип тот же.

Часть 7. Протокол ARP

Чтобы отправить кадр, нужен MAC-адрес получателя или шлюза. Но отправитель знает только IP. Откуда взять MAC?

Эту задачу решает ARP (Address Resolution Protocol) — протокол, который связывает IP-адреса (L3) с MAC-адресами (L2) внутри одной подсети.

Работа протокола ARP

Процесс, шаг за шагом:

  1. Хост A хочет отправить пакет хосту B (знает IP, не знает MAC). Рассылает широковещательный ARP-запрос: «У кого IP 192.168.1.30? Сообщите 192.168.1.10.» MAC назначения в кадре — FF:FF:FF:FF:FF:FF, запрос получают все устройства сегмента.
  2. Устройства с другими IP игнорируют запрос.
  3. Хост B (192.168.1.30) отвечает юникастом: «Это я. Мой MAC — AA:BB:CC:DD:EE:FF
  4. Хост A сохраняет пару IP → MAC в ARP-кэш. Следующие пакеты идут без повторного запроса.
ip neigh show    # ARP-кэш (таблица соседей)
arp -n           # устаревший вариант

Маршрутизатор не пропускает ARP-запросы в другие сети — они ограничены одним L2-сегментом. Поэтому MAC-адрес устройства из чужой сети напрямую узнать нельзя. При отправке в другую сеть ARP нужен для MAC шлюза, а не конечного хоста.

Если IP меняется (перезапуск контейнера, динамический адрес DHCP) — устаревший ARP-кэш у соседей может давать неверный MAC. Время хранения записи регулируется настройками ОС.

Часть 8. TCP и UDP — транспортный уровень

TCP: гарантированная доставка

TCP (Transmission Control Protocol) устанавливает соединение через трёхстороннее рукопожатие: клиент отправляет SYN → сервер отвечает SYN-ACK → клиент подтверждает ACK. После этого данные передаются с нумерацией сегментов, подтверждениями и повторной отправкой потерянных. Порядок байт на приёмной стороне гарантирован.

Цена надёжности — задержка: ожидание подтверждений и overhead рукопожатия при каждом новом соединении.

Используется: HTTP/HTTPS, SSH, PostgreSQL/MySQL, SMTP — везде, где потеря данных недопустима.

ss -tn           # активные TCP-соединения
ss -tnp          # с именами процессов

UDP: скорость без гарантий

UDP (User Datagram Protocol) — без установки соединения, без подтверждений, без гарантии порядка и доставки. Отправитель посылает датаграммы, не зная, дошли ли они.

Используется: DNS-запросы, видеостриминг, VoIP, онлайн-игры, QUIC (основа HTTP/3). В этих приложениях потеря единственного пакета не критична, а задержка — критична.

Порты

Порты позволяют держать несколько сервисов на одном IP-адресе. TCP и UDP имеют независимые пространства портов (0–65535).

ПортПротокол
22SSH
25SMTP
53DNS
80HTTP
443HTTPS
5432PostgreSQL
6379Redis
27017MongoDB
ss -tlnp                  # TCP, слушающие порты, с процессами
ss -tlnp | grep :5432     # конкретный порт

Firewall-правила оперируют комбинацией IP:port и протокола. Когда сервис недоступен — первый шаг диагностики: убедиться, что порт слушается (ss -tlnp) и не заблокирован (iptables -L или Security Group).

Часть 9. DNS: как имя превращается в адрес

DNS (Domain Name System) — распределённая иерархическая база данных, переводящая доменные имена в IP-адреса.

Как происходит резолвинг

Запрос api.example.com:

  1. Система смотрит в локальный DNS-кэш ОС и /etc/hosts.
  2. Если нет — запрос уходит на рекурсивный резолвер (ваш DHCP-сервер или публичный: Cloudflare 1.1.1.1, Google 8.8.8.8).
  3. Резолвер обращается к корневым серверам (13 кластеров по всему миру) — они знают, кто управляет зоной .com.
  4. Затем к TLD-серверу .com — он знает, кто управляет example.com.
  5. Затем к авторитативному серверу example.com — он возвращает IP.
  6. Результат кэшируется на время TTL записи.

Типы DNS-записей

ЗаписьНазначение
AИмя → IPv4
AAAAИмя → IPv6
CNAMEИмя → другое имя (алиас)
MXПочтовый сервер домена
TXTПроизвольный текст (SPF, DKIM, верификация домена)
NSАвторитативные серверы зоны
PTRОбратный DNS: IP → имя
SRVАдрес сервиса с портом и приоритетом
dig example.com A            # A-запись
dig example.com MX           # MX-записи
dig +short example.com       # только IP
dig @8.8.8.8 example.com A   # запрос к конкретному резолверу
dig +trace example.com       # трассировка делегирования
dig -x 93.184.216.34         # обратный DNS
nslookup example.com 1.1.1.1

DNS в контейнерных средах

В Docker каждая сеть имеет встроенный DNS-резолвер — контейнеры находят друг друга по имени (db, redis), а не по IP (IP назначается динамически и меняется при перезапуске).

В Kubernetes DNS решает ту же задачу для Pod’ов и сервисов: my-service.my-namespace.svc.cluster.local.

Инцидент: связь по IP есть, по имени — нет. Первое, что проверяют DevOps-инженеры — CoreDNS в кластере. Сломанный DNS — один из наиболее неочевидных источников инцидентов: сам сетевой уровень исправен, но сервисы не находят друг друга.

Часть 10. NAT: почему адрес 192.168.x.x

NAT (Network Address Translation) — механизм, позволяющий множеству устройств с приватными IP выходить в интернет через один публичный адрес.

Когда хост с 192.168.1.100 обращается к 93.184.216.34:443, шлюз подменяет исходный адрес своим публичным IP и записывает в таблицу трансляций: «соединение с 192.168.1.100:54321 → публичный:54321». При получении ответа — обратная трансляция.

Снаружи нельзя инициировать соединение к устройству за NAT. Для доступа к серверу нужен публичный IP, VPN или reverse proxy (например, nginx). В облачных средах NAT-шлюз позволяет ресурсам приватной подсети выходить в интернет, оставаясь недоступными снаружи.

Часть 11. Полный путь запроса: собираем всё вместе

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

  1. Прикладной уровень. Браузер определяет IP сервера через DNS (запрос → рекурсивный резолвер → авторитативный сервер → ответ). Устанавливает TCP-соединение (SYN → SYN-ACK → ACK). Для HTTPS — TLS-рукопожатие. Отправляет HTTP-запрос.

  2. Транспортный уровень. TCP делит запрос на сегменты с нумерацией. Целевой порт — 443 для HTTPS.

  3. Сетевой уровень. Каждый сегмент упаковывается в IP-пакет: IP источника (ваш хост) и IP назначения (сервер).

  4. Проверка маршрута. Ваш хост сравнивает сети по маске: IP сервера в другой сети → пакет уходит к шлюзу по умолчанию.

  5. ARP. MAC шлюза ещё не в кэше → ARP-запрос широковещанием в сегмент. Шлюз отвечает своим MAC. MAC сохраняется в ARP-кэш.

  6. Канальный уровень. Пакет упаковывается в кадр: MAC источника (ваш интерфейс), MAC назначения (шлюз).

  7. Физический уровень. Кадр уходит битами по Wi-Fi или ethernet.

  8. На маршрутизаторе. Получает кадр, извлекает IP-пакет, смотрит таблицу маршрутизации, упаковывает в новый кадр и передаёт следующему маршрутизатору. Так по цепочке hop за hop — до сервера назначения. На каждом hop MAC-адреса меняются, IP-адреса — нет (до NAT).

  9. На сервере. Деинкапсуляция. ОС передаёт данные процессу, слушающему порт 443. Формируется HTTP-ответ, он идёт обратно по тому же механизму.

Весь этот путь занимает десятки или сотни миллисекунд — в зависимости от географического расстояния и числа hop’ов.

Часть 12. Практика: диагностика из терминала

Это команды, которые реально использует сетевой инженер, DevOps и системный администратор.

Адреса и интерфейсы

ip addr show          # все интерфейсы и IP-адреса
ip link show          # состояние интерфейсов (UP/DOWN, MTU)
ip route show         # таблица маршрутизации
ip neigh show         # ARP-кэш

Проверка связи

# ICMP: проверяет L3-связность (если не заблокирован firewall)
ping -c 4 8.8.8.8
ping -c 4 example.com

# Трассировка маршрута — задержка на каждом hop'е
traceroute example.com
mtr example.com          # более информативный интерактивный вариант

Открытые порты и соединения

ss -tlnp               # TCP, слушающие порты, с именами процессов
ss -tn                 # все активные TCP-соединения
ss -tlnp | grep :5432  # конкретный порт
arp -n                 # ARP-таблица (устаревший вариант ip neigh)

DNS

dig example.com A            # A-запись
dig example.com MX           # MX-записи
dig +short example.com       # только IP
dig @8.8.8.8 example.com     # запрос к конкретному резолверу
nslookup example.com 1.1.1.1

Проверка TCP-соединения

# Проверить доступность порта (nc — netcat)
nc -zv 192.168.1.10 5432
# -z = только проверить порт, данные не отправлять
# -v = verbose

# curl с подробностями о соединении
curl -v https://example.com/api/health

Словарь

Хост (узел) — любое устройство в сети с сетевым интерфейсом.

PDU (Protocol Data Unit) — единица данных на каждом уровне: данные → сегмент → пакет → кадр → биты.

Инкапсуляция / деинкапсуляция — упаковка данных в заголовки при спуске по уровням OSI и обратная распаковка.

MAC-адрес — 48-битный физический идентификатор сетевого интерфейса. Работает в пределах одного L2-сегмента.

IP-адрес — логический сетевой адрес, используется для маршрутизации между сетями.

CIDR — нотация подсети вида /24, указывает длину сетевой части адреса.

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

ARP (Address Resolution Protocol) — протокол получения MAC-адреса по известному IP внутри подсети.

DNS (Domain Name System) — иерархическая распределённая система, переводящая доменные имена в IP-адреса.

NAT (Network Address Translation) — трансляция приватных IP в публичный при выходе в интернет.

TCP — транспортный протокол с установкой соединения и гарантией доставки и порядка.

UDP — транспортный протокол без соединения и гарантий, минимальный overhead.

Часто задаваемые вопросы

Чем MAC-адрес отличается от IP-адреса? MAC — физический идентификатор интерфейса, задаётся производителем, работает только в пределах одного L2-сегмента. IP — логический, назначается в сети, используется для маршрутизации между сетями. Для каждой передачи нужны оба: IP говорит «конечная цель», MAC говорит «отдать этому соседу прямо сейчас».

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

Что происходит, если у двух устройств в одной сети одинаковый IP? Конфликт: ARP-ответы будут приходить от обоих, и сеть запутается, кому слать трафик. Оба устройства будут работать с ошибками. В Linux видно в dmesg | grep ARP, Windows показывает уведомление.

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

Чем 0.0.0.0 отличается от 127.0.0.1? 127.0.0.1 (localhost) — loopback, трафик не выходит за пределы хоста. 0.0.0.0 при привязке сервиса — «слушать на всех интерфейсах»: сервис доступен через localhost и через любой внешний IP хоста. Для контейнеров критично: сервис, привязанный к 127.0.0.1 внутри контейнера, недоступен снаружи контейнера.

Зачем нужен IPv6, если есть IPv4? Адресов IPv4 физически не хватает: 2³² ≈ 4 млрд — все распределены. NAT — временное решение. IPv6 с 128-битными адресами устраняет проблему: каждое устройство может иметь глобально уникальный публичный адрес.

Что такое VLAN? VLAN (Virtual LAN) — логическое разделение одной физической сети на изолированные сегменты. Устройства в разных VLAN не видят L2-трафик друг друга, даже подключённые к одному коммутатору. Используется для разделения prod/staging, изоляции безопасности, мультиарендности.

Как работает DHCP? DHCP автоматически выдаёт IP-адреса при подключении: DHCP Discover (broadcast) → DHCP Offer → DHCP Request → DHCP Acknowledge. Сервер выдаёт IP, маску, адрес шлюза и DNS-серверы. Аренда ограничена по времени — именно поэтому IP меняется при переподключении.

Как firewall принимает решения? По правилам фильтрации: IP источника/назначения, порт, протокол, состояние соединения (stateful firewall разрешает ответы на инициированные соединения). В Linux — iptables или nftables. Правила применяются по порядку, первое совпавшее — побеждает.

Что учить дальше

Понимание основ открывает несколько профессиональных направлений.

Сетевой инженер — углублённая работа с инфраструктурой: BGP, OSPF, MPLS, QoS, проектирование топологий, VPN. Вендоры: Cisco, Juniper, Huawei. В облаке: AWS VPC, Azure VNET, Yandex Cloud VPC.

DevOps-инженер — сети как инфраструктура деплоя: overlay-сети в Kubernetes (Calico, Flannel, Cilium), service mesh (Istio, Linkerd), балансировщики нагрузки (nginx, HAProxy, ALB), firewall-политики, VPN между окружениями.

Системный администратор — поддержка корпоративной инфраструктуры: Active Directory, DHCP, DNS, мониторинг (Zabbix, Nagios), управление доступом, VLAN-сегментация.

Backend-разработчик — понимание сетей нужно для отладки timeout’ов, настройки connection pool’ов, работы с TLS-сертификатами, проектирования распределённых систем с предсказуемой latency.

Курс · подобран по данным рынка

Лучший курс по теме

Лучшее совпадение
92%
соответствие
Нетология
Нетология
Сетевой инженер
12 месяцев
от 3 854 ₽/мес