Сетевой Цех
Модель OSI

Сетевой уровень (L3) модели OSI: IP-пакеты, маршруты и TTL

Третий уровень отвечает за связь между разными сетями. Здесь появляются IP-адреса, маршруты и знаменитое «сеть недоступна»

Редакция «Сетевого Цеха»27 августа 2026 г. (обновлено 23 сентября 2026 г.) 5 мин чтения

Зачем нужен ещё один адрес

MAC-адреса прекрасно работают внутри одного сегмента, но для интернета у них фатальный недостаток: в них нет структуры. По MAC невозможно понять, где находится устройство, — это просто номер, выданный на заводе, и соседние номера могут оказаться в Новосибирске и Лиссабоне. Строить по таким номерам всемирную маршрутизацию нельзя: таблица должна была бы содержать каждое устройство планеты.

IP-адрес устроен иначе. В нём есть часть, обозначающая сеть, и часть, обозначающая узел внутри неё. Маршрутизатору достаточно знать направления до сетей, а не до каждого устройства, и соседние адреса действительно находятся рядом физически. Именно эта простая идея делает интернет технически возможным: магистральный маршрутизатор держит около миллиона записей о сетях вместо миллиардов записей об устройствах.

Что на самом деле делает маршрутизатор

Распространённое заблуждение — что маршрутизатор знает весь путь до получателя. Не знает и знать не должен. Он принимает ровно одно решение: кому передать пакет следующим. Дальше решение принимает уже следующий маршрутизатор, и так далее, пока пакет не доберётся до сети назначения.

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

Что происходит с пакетом на каждом переходе

  • Маршрутизатор принимает кадр, снимает канальный заголовок и достаёт IP-пакет.

  • Смотрит адрес получателя и ищет подходящий маршрут в своей таблице.

  • Уменьшает TTL на единицу и пересчитывает контрольную сумму заголовка.

  • Упаковывает пакет в новый кадр — уже с MAC-адресом следующего узла — и отправляет.

Ключевой момент: IP-адреса отправителя и получателя при этом не меняются на всём пути (если по дороге нет NAT), а MAC-адреса меняются на каждом переходе. Два адреса работают каждый на своём уровне и не мешают друг другу.

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

Таблица — это список «в такую-то сеть отправляй туда-то». Посмотреть свою можно командой ip route в Linux или route print в Windows, и у обычного компьютера она довольно скромная: пара строк про свои сети и одна строка про всё остальное.

Назначение

Куда отправлять

Смысл

192.168.1.0/24

напрямую, через свой интерфейс

Своя локальная сеть — сосед рядом

10.20.0.0/16

через 192.168.1.2

Сеть филиала — за отдельным роутером

0.0.0.0/0

через 192.168.1.1

Всё остальное — маршрут по умолчанию

Правило самого точного совпадения

Выбирается всегда самый конкретный подходящий маршрут — тот, у которого длиннее префикс. Если пакет идёт в 10.20.5.7, сработает строка про 10.20.0.0/16, а не маршрут по умолчанию, хотя формально под 0.0.0.0/0 подходит вообще всё. И только когда ничего конкретного не нашлось, в дело вступает шлюз по умолчанию.

Откуда маршруты берутся

Маршруты бывают трёх происхождений. Подключённые появляются сами, когда вы настраиваете адрес на интерфейсе: система сразу знает, что эта сеть — соседняя. Статические прописывает администратор руками. Динамические маршрутизатор узнаёт от соседей по протоколам вроде OSPF внутри организации или BGP между провайдерами — там таблица строится автоматически и перестраивается при авариях.

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

TTL: почему пакеты не ходят по кругу вечно

В заголовке каждого IP-пакета есть счётчик TTL — time to live. Каждый маршрутизатор на пути уменьшает его на единицу, и когда счётчик доходит до нуля, пакет уничтожается, а отправителю посылается ICMP-сообщение об этом. Если бы не TTL, любая ошибка в маршрутах превращала бы сеть в бесконечную карусель из пакетов — примерно как петля на втором уровне, где такого счётчика нет.

Побочный эффект оказался полезнее самой защиты

На этом механизме построена traceroute. Программа отправляет пакеты с TTL, равным единице, потом двойке, потом тройке — и каждый раз кто-то на пути жалуется, что время жизни истекло. По этим жалобам выстраивается список узлов маршрута. Отсюда же, кстати, объяснение, почему в выводе traceroute часть строк — звёздочки: некоторые маршрутизаторы настроены не отвечать, но пакеты при этом честно передают дальше.

Фрагментация: почему её стараются избегать

Если пакет не помещается в MTU следующего участка, его нужно разрезать на части. Формально IP это умеет: маршрутизатор делит пакет на фрагменты, а собирает их обратно уже получатель. На практике механизм считается проблемным и его стараются не допускать.

  • Собирает фрагменты только конечный узел, поэтому потеря одного куска означает переотправку всего пакета целиком.

  • Номера портов есть только в первом фрагменте — фаерволы и балансировщики остальные части просто не понимают и нередко отбрасывают.

  • Сборка тратит память и процессорное время получателя, а на нагруженном сервере это заметно.

Поэтому отправители ставят в заголовке флаг «не фрагментировать» и заранее выясняют допустимый размер: если пакет где-то не проходит, маршрутизатор возвращает ICMP-сообщение с нужным значением, и отправитель уменьшает размер сам. Механизм называется Path MTU Discovery.

Ломается он ровно в одном случае — когда кто-то по дороге режет ICMP целиком «ради безопасности». Сообщение о необходимости уменьшить пакет не доходит, отправитель продолжает слать слишком крупные пакеты, и они молча исчезают. Симптом узнаваемый: соединение устанавливается, мелкие запросы проходят, а любая передача существенного объёма намертво зависает.

Когда до одной сети есть несколько маршрутов

Бывает, что в таблице оказываются два маршрута до одной и той же сети — например, основной канал и резервный. Выбор делается по метрике: чем она меньше, тем маршрут предпочтительнее. В Linux её видно прямо в выводе ip route, в Windows — в колонке «Метрика».

Система подставляет метрику автоматически, обычно исходя из скорости интерфейса: гигабитный проводной линк получает лучшее значение, чем Wi-Fi. Поэтому ноутбук, подключённый и кабелем, и по воздуху, ходит в интернет через кабель, а при его отключении сам переезжает на беспроводную сеть. Значение можно задать и вручную, если автоматический выбор не устраивает.

Отдельный случай — одинаковые метрики. Тогда трафик распределяется между маршрутами, и это уже балансировка. Для одиночных соединений она обычно безвредна, но приложения, чувствительные к смене адреса отправителя, от такого поведения ломаются — поэтому включают её осознанно, а не по умолчанию.

Ищете оборудование по теме статьи?

Перейти в каталог

Товары по теме

NanoPi R5S

NanoPi R5S

NanoPi

В наличии18 990 ₽
NanoPi R5C

NanoPi R5C

NanoPi

В наличии11 990 ₽
NanoPi R3S

NanoPi R3S

NanoPi

В наличии5 990 ₽
NanoPi R76S

NanoPi R76S

NanoPi

В наличии16 990 ₽

Похожие статьи