3.3 Сетевой уровень передачи данных. Типы организации сетевых услуг. Управление нагрузкой в сети. Маршрутизация пакетов на сетевом уровне. Виды оптимизации маршрутов. Методы глобальной оптимизации маршрутов. Алгоритм минимального числа линий.
1. Сетевой уровень (Network Layer) модели OSI
Сетевой уровень — это третий уровень эталонной модели OSI, отвечающий за доставку данных (пакетов) от узла-отправителя к узлу-получателю в сетях с коммутацией пакетов.
Главные задачи сетевого уровня:
- Логическая адресация — присвоение уникальных адресов (например, IP-адресов), независимых от физического оборудования.
- Маршрутизация — выбор оптимального пути для передачи пакета через совокупность промежуточных сетей (роутеров).
- Фрагментация и сборка — разбиение больших пакетов на более мелкие фрагменты, если 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. Маршрутизация пакетов на сетевом уровне
Маршрутизация — это процесс определения пути, по которому пакет должен следовать от источника к получателю.
Классификация алгоритмов маршрутизации:
- Статическая (Fixed Routing): Пути прописываются вручную администратором. Используется в малых сетях. Не адаптируется к отказам.
- Динамическая (Adaptive Routing): Пути меняются автоматически на основе состояния сети (загрузка каналов, отказы).
- Централизованная: Один маршрутизатор (RCC) вычисляет все пути для всей сети.
- Распределенная: Каждый маршрутизатор обменивается информацией с соседями (OSPF, RIP, EIGRP).
- Изоляционная (Isolated): Каждый узел принимает решение только на основе своей локальной информации (например, алгоритм «горячей картошки» — отправить пакет на самую короткую свободную очередь).
5. Виды оптимизации маршрутов
Оптимизация маршрутов — это выбор критерия, по которому путь считается «лучшим».
Основные метрики оптимизации:
- Минимальное число транзитных участков (hops) — классика RIP (макс. 15 прыжков).
- Минимальная задержка — учитывает время прохождения пакета (актуально для VoIP).
- Максимальная пропускная способность — выбор широкого канала.
- Минимальная стоимость — финансовая стоимость передачи по каналу (провайдеры).
- Надежность — учет статистики ошибок на линии.
Виды оптимизации (по времени действия):
- Адаптивная (онлайн): Пересчет маршрутов каждые несколько секунд/минут (OSPF).
- Долгосрочная (офлайн): Планирование трафика на основе прогнозов на недели/месяцы.
6. Методы глобальной оптимизации маршрутов
Глобальная оптимизация подразумевает нахождение наилучших путей для всех потоков трафика в сети одновременно, а не для каждого пакета по отдельности. Это сложная задача, так как маршруты конкурируют за ресурсы.
Основные подходы:
Метод минимальной стоимости (Shortest Path First — SPF):
- Используется алгоритм Дейкстры. Находит путь с минимальной суммой весов ребер.
- Является локально-оптимальным для одного источника, но не гарантирует глобальной эффективности при множестве источников.
Метод максимальной пропускной способности (Widest Path):
- Ищет путь с самой большой «узкой горловиной» (bottleneck bandwidth).
- Хорош для больших файлов, но может “забить” магистраль.
Метод балансировки нагрузки (Load Balancing):
- Трафик распределяется по нескольким равнозначным или почти равнозначным путям (ECMP — Equal Cost Multi-Path).
- Оптимизирует использование всех ресурсов сети, а не только одного канала.
Метод минимальной задержки (Shortest Delay):
- Учитывает длину очередей. Направляет пакеты туда, где меньше скоплений.
Теория потоков в сетях (Network Flows):
- Решение задач линейного программирования (например, алгоритм Форда-Фалкерсона для нахождения максимального потока или алгоритм минимизации стоимости потока). Позволяет учесть ограничения всех каналов одновременно.
7. Алгоритм минимального числа линий (Minimum Hop Algorithm)
Это базовый и самый интуитивный алгоритм маршрутизации, являющийся частным случаем оптимизации по критерию «число транзитных участков».
Суть алгоритма:
Каждому ребру (линии, каналу) присваивается вес, равный 1 (или одинаковый положительный вес). Задача: найти путь, содержащий наименьшее количество таких ребер между узлом A и узлом B.
Реализация:
Обычно используется алгоритм поиска в ширину (BFS) для невзвешенного графа, либо алгоритм Дейкстры, если веса равны 1.
Достоинства:
- Предельная простота вычислений.
- Быстродействие — не требует сложных математических операций.
- Минимизация накладных расходов на обработку на каждом роутере (меньше транзитных узлов — меньше задержка обработки).
Недостатки (критика):
- Игнорирование пропускной способности. Путь с 2 спутниковыми линиями (с высокой задержкой) может быть выбран вместо 3 оптоволоконных линий (с низкой задержкой), так как “hops” равны 2 против 3.
- Игнорирование загруженности. Короткий путь может быть перегружен, а длинный — свободен.
- Проблема «липких» маршрутов. Все пакеты устремляются по кратчайшему пути, вызывая его перегрузку, в то время как альтернативные маршруты простаивают (эффект «близорукости»).
Модификации:
На практике алгоритм минимального числа линий редко используется в чистом виде. Его модернизируют:
- Административные расстояния: Вес линии может быть увеличен администратором, чтобы маршрутизатор «не видел» короткий, но ненадежный путь.
- Комбинация с качеством: В протоколе EIGRP используется формула, где минимальное число хопов учитывается только в том случае, если разница в пропускной способности незначительна.
Итоговое резюме
Сетевой уровень является мозгом любой крупной сети. Эволюция алгоритмов маршрутизации идет от простого подсчета прыжков (RIP) к сложным метрикам (OSPF, EIGRP) и глобальной оптимизации трафика (MPLS-TE, SDN). Главный вызов современности — это не просто найти путь, а найти путь, который удовлетворит требованиям миллионов одновременных сессий, не создав при этом новых точек перегрузки.