Skip to content

3.3 Сетевой уровень передачи данных. Типы организации сетевых услуг. Управление нагрузкой в сети. Маршрутизация пакетов на сетевом уровне. Виды оптимизации маршрутов. Методы глобальной оптимизации маршрутов. Алгоритм минимального числа линий.

1. Сетевой уровень (Network Layer) модели OSI

Сетевой уровень — это третий уровень эталонной модели OSI, отвечающий за доставку данных (пакетов) от узла-отправителя к узлу-получателю в сетях с коммутацией пакетов.

Главные задачи сетевого уровня:

  1. Логическая адресация — присвоение уникальных адресов (например, IP-адресов), независимых от физического оборудования.
  2. Маршрутизация — выбор оптимального пути для передачи пакета через совокупность промежуточных сетей (роутеров).
  3. Фрагментация и сборка — разбиение больших пакетов на более мелкие фрагменты, если MTU (Maximum Transmission Unit) нижестоящего канала меньше размера пакета.

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


2. Типы организации сетевых услуг

В зависимости от подхода к передаче данных, сетевой уровень может предоставлять три типа услуг (характерно для технологий X.25, Frame Relay, IP):

1. С услугами без установки соединения (Datagram service)

  • Каждый пакет (дейтаграмма) маршрутизируется независимо.
  • Пакеты могут идти разными путями и приходить вразнобой.
  • Пример: IP-протокол (Интернет).
  • Плюсы: Высокая отказоустойчивость, простота, нет затрат на поддержание виртуального канала.
  • Минусы: Нет гарантий доставки, требуется работа вышележащих протоколов (TCP) для упорядочивания.

2. С установкой соединения (Virtual Circuit service)

  • Перед передачей данных устанавливается логический канал (виртуальный путь).
  • Все пакеты идут по одному заранее согласованному маршруту.
  • Пример: MPLS, ATM, X.25.
  • Плюсы: Гарантированная последовательность пакетов, предсказуемая задержка.
  • Минусы: Одиночная точка отказа на маршруте, затраты ресурсов на установку соединения.

3. С услугами, ориентированными на качество (QoS)

  • Гибридный подход, где для разных типов трафика (голос, видео, данные) устанавливаются разные приоритеты и параметры обслуживания (пропускная способность, задержка, джиттер).

3. Управление нагрузкой в сети (Congestion Control)

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

Причины перегрузки:

  • Скачки трафика (flash crowds).
  • Неисправности оборудования, ведущие к перемаршрутизации и концентрации трафика.
  • Неэффективные алгоритмы таймаутов (повторная отправка потерянных пакетов усугубляет ситуацию).

Методы управления нагрузкой:

МетодОписание
Упреждение (Preventive)Резервирование ресурсов заранее (RSVP, MPLS TE).
Реактивное (Reactive)Обнаружение перегрузки и снижение темпа отправки (алгоритмы TCP Reno/Cubic).
Управление очередями (AQM)RED (Random Early Detection) — маршрутизатор начинает случайным образом отбрасывать пакеты до того, как очередь переполнится, заставляя отправителей снизить скорость.
Полисинг (Policing)Отбрасывание трафика, превышающего согласованный лимит (Leaky Bucket / Token Bucket).

4. Маршрутизация пакетов на сетевом уровне

Маршрутизация — это процесс определения пути, по которому пакет должен следовать от источника к получателю.

Классификация алгоритмов маршрутизации:

  1. Статическая (Fixed Routing): Пути прописываются вручную администратором. Используется в малых сетях. Не адаптируется к отказам.
  2. Динамическая (Adaptive Routing): Пути меняются автоматически на основе состояния сети (загрузка каналов, отказы).
    • Централизованная: Один маршрутизатор (RCC) вычисляет все пути для всей сети.
    • Распределенная: Каждый маршрутизатор обменивается информацией с соседями (OSPF, RIP, EIGRP).
  3. Изоляционная (Isolated): Каждый узел принимает решение только на основе своей локальной информации (например, алгоритм «горячей картошки» — отправить пакет на самую короткую свободную очередь).

5. Виды оптимизации маршрутов

Оптимизация маршрутов — это выбор критерия, по которому путь считается «лучшим».

Основные метрики оптимизации:

  • Минимальное число транзитных участков (hops) — классика RIP (макс. 15 прыжков).
  • Минимальная задержка — учитывает время прохождения пакета (актуально для VoIP).
  • Максимальная пропускная способность — выбор широкого канала.
  • Минимальная стоимость — финансовая стоимость передачи по каналу (провайдеры).
  • Надежность — учет статистики ошибок на линии.

Виды оптимизации (по времени действия):

  1. Адаптивная (онлайн): Пересчет маршрутов каждые несколько секунд/минут (OSPF).
  2. Долгосрочная (офлайн): Планирование трафика на основе прогнозов на недели/месяцы.

6. Методы глобальной оптимизации маршрутов

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

Основные подходы:

  1. Метод минимальной стоимости (Shortest Path First — SPF):

    • Используется алгоритм Дейкстры. Находит путь с минимальной суммой весов ребер.
    • Является локально-оптимальным для одного источника, но не гарантирует глобальной эффективности при множестве источников.
  2. Метод максимальной пропускной способности (Widest Path):

    • Ищет путь с самой большой «узкой горловиной» (bottleneck bandwidth).
    • Хорош для больших файлов, но может “забить” магистраль.
  3. Метод балансировки нагрузки (Load Balancing):

    • Трафик распределяется по нескольким равнозначным или почти равнозначным путям (ECMP — Equal Cost Multi-Path).
    • Оптимизирует использование всех ресурсов сети, а не только одного канала.
  4. Метод минимальной задержки (Shortest Delay):

    • Учитывает длину очередей. Направляет пакеты туда, где меньше скоплений.
  5. Теория потоков в сетях (Network Flows):

    • Решение задач линейного программирования (например, алгоритм Форда-Фалкерсона для нахождения максимального потока или алгоритм минимизации стоимости потока). Позволяет учесть ограничения всех каналов одновременно.

7. Алгоритм минимального числа линий (Minimum Hop Algorithm)

Это базовый и самый интуитивный алгоритм маршрутизации, являющийся частным случаем оптимизации по критерию «число транзитных участков».

Суть алгоритма:

Каждому ребру (линии, каналу) присваивается вес, равный 1 (или одинаковый положительный вес). Задача: найти путь, содержащий наименьшее количество таких ребер между узлом A и узлом B.

Реализация:

Обычно используется алгоритм поиска в ширину (BFS) для невзвешенного графа, либо алгоритм Дейкстры, если веса равны 1.

Достоинства:

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

Недостатки (критика):

  1. Игнорирование пропускной способности. Путь с 2 спутниковыми линиями (с высокой задержкой) может быть выбран вместо 3 оптоволоконных линий (с низкой задержкой), так как “hops” равны 2 против 3.
  2. Игнорирование загруженности. Короткий путь может быть перегружен, а длинный — свободен.
  3. Проблема «липких» маршрутов. Все пакеты устремляются по кратчайшему пути, вызывая его перегрузку, в то время как альтернативные маршруты простаивают (эффект «близорукости»).

Модификации:

На практике алгоритм минимального числа линий редко используется в чистом виде. Его модернизируют:

  • Административные расстояния: Вес линии может быть увеличен администратором, чтобы маршрутизатор «не видел» короткий, но ненадежный путь.
  • Комбинация с качеством: В протоколе EIGRP используется формула, где минимальное число хопов учитывается только в том случае, если разница в пропускной способности незначительна.

Итоговое резюме

Сетевой уровень является мозгом любой крупной сети. Эволюция алгоритмов маршрутизации идет от простого подсчета прыжков (RIP) к сложным метрикам (OSPF, EIGRP) и глобальной оптимизации трафика (MPLS-TE, SDN). Главный вызов современности — это не просто найти путь, а найти путь, который удовлетворит требованиям миллионов одновременных сессий, не создав при этом новых точек перегрузки.