Статья подготовлена в рамках исследовательского проекта CloudBridge Research, посвященного применению ML для оптимизации сетевых протоколов.

Проект: github.com/twogc/ai-routing-lab


Вы, возможно, помните наши предыдущие статьи, где мы рассказывали, как выжимали максимум из сетевых протоколов (BBRv3, FEC и QUIC) и строили инструменты для их тестирования (quic-test).

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

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

И вот что из этого вышло.


Контекст задачи

Представьте: у вас есть три маршрута между Москвой и Франкфуртом:

  • Прямой маршрут через Ростелеком

  • Через Амстердам (Cogent)

  • Через Варшаву (Level3)

Каждый маршрут ведет себя по-разному в зависимости от времени суток, загрузки сети, погоды (да, это влияет на спутниковые каналы) и других факторов. Традиционная маршрутизация выбирает путь на основе метрик BGP (AS Path, MED), но эти метрики не учитывают реальную задержку и джиттер.

Мы решили применить машинное обучение для прогнозирования поведения маршрутов и проактивного выбора оптимального пути.


Проблема

Почему BGP недостаточно?

BGP (Border Gateway Protocol) — основа интернет-маршрутизации, но у него есть фундаментальные ограничения:

  1. Статические метрики: AS Path, Local Preference, MED не отражают реальное качество канала

  2. Медленная конвергенция: изменение маршрута занимает минуты

  3. Нет учета джиттера: BGP не знает о вариации задержки

  4. Нет прогнозирования: BGP реагирует на проблемы, а не предсказывает их

Реальный пример

На трассе Москва → Франкфурт мы наблюдали:

Маршрут

Время

RTT P50

Jitter

Packet Loss

Direct

08:00

42 мс

2.1 мс

0.1%

Direct

18:00

78 мс

8.4 мс

1.2%

Via AMS

08:00

51 мс

1.2 мс

0.05%

Via AMS

18:00

53 мс

1.4 мс

0.08%

Прямой маршрут быстрее утром, но деградирует вечером. BGP об этом не знает и продолжает использовать прямой путь.


Решение: ML для прогнозирования маршрутов

Архитектура

┌─────────────┐         ┌──────────────┐         ┌─────────────┐
│  quic-test  ├────────►│ AI Routing   ├────────►│ CloudBridge │
│             │ метрики │ Lab          │ модели  │ Relay       │
└─────────────┘         └──────────────┘         └─────────────┘
                             │
                             ▼
                        ┌──────────────┐
                        │  Prometheus  │
                        │  Time Series │
                        └──────────────┘

Как это работает

1. Сбор данных

quic-test непрерывно измеряет метрики на всех доступных маршрутах:

  • RTT (Round-Trip Time)

  • Jitter (вариация задержки)

  • Throughput (пропускная способность)

  • Packet Loss (потери пакетов)

Данные экспортируются в Prometheus с временными метками.

2. Обучение моделей

AI Routing Lab использует Random Forest для прогнозирования:

  • LatencyPredictor: предсказывает RTT на следующие 5-10 минут

  • JitterPredictor: предсказывает джиттер

  • RoutePredictionEnsemble: ранжирует маршруты по качеству

3. Инференция в реальном времени

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


Технические детали

Feature Engineering (Инженерия признаков)

Мы используем следующие признаки для обучения:

Временные признаки:

  • Час дня (0-23)

  • День недели (0-6)

  • Выходной/рабочий день

  • Скользящее среднее RTT за последние 5/15/30 минут

Сетевые признаки:

  • Текущий RTT

  • Текущий jitter

  • Packet loss rate

  • Throughput

  • Количество хопов (AS Path length)

Исторические признаки:

  • RTT в это же время вчера

  • Среднее RTT за последний час

  • Стандартное отклонение RTT

Модели

Random Forest Regressor:

  • 100 деревьев

  • Max depth: 10

  • Min samples split: 5

Почему Random Forest?

  • Хорошо работает с lag-признаками временных рядов при грамотной feature engineering

  • Устойчив к выбросам

  • Не требует нормализации данных

  • Быстрая инференция (<1 мс)

Метрики качества

Мы оцениваем модели по следующим метрикам:

  • MAE (Mean Absolute Error): средняя абсолютная ошибка предсказания RTT

  • RMSE (Root Mean Squared Error): корень из среднеквадратичной ошибки

  • R² Score: коэффициент детерминации (насколько хорошо модель объясняет вариацию)

  • Accuracy: точность выбора лучшего маршрута

Целевые показатели:

  • MAE < 5 мс для RTT

  • Accuracy > 92% для выбора маршрута


Результаты

[!NOTE]
Приведенные ниже результаты являются целевыми показателями, которые мы ожидаем получить при обучении моделей на реальных данных из quic-test. Архитектура моделей (Random Forest с оптимизированными гиперпараметрами) и feature engineering разработаны для достижения этих метрик.

Целевая точность прогнозирования

Ожидаемые результаты на тестовой выборке (30% данных, 2+ недели измерений):

Метрика

Latency Predictor

Jitter Predictor

MAE

3.2 мс

0.8 мс

RMSE

4.7 мс

1.2 мс

0.94

0.91

Целевая accuracy выбора маршрута: >93%

Текущий статус

Модели обучены и протестированы на синтетических данных. Сейчас эти значения достигнуты на синтетическом датасете; мы рассматриваем их как ориентир для дальнейшей валидации на реальных трассах quic-test.

Для достижения целевых показателей на реальных данных требуется:

  • Сбор реальных метрик из quic-test (минимум 2 недели непрерывных измерений)

  • Несколько маршрутов для сравнения (минимум 3)

  • Различные сетевые условия (WiFi, LTE, 5G, satellite)

Покрытие тестами: 196 unit тестов, 71.73% coverage

Ожидаемое практическое применение

Кейс 1: Москва → Франкфурт (3 маршрута) (ожидаемые результаты)

Без ML (статический BGP):

  • Средний RTT: 58 мс

  • Средний jitter: 4.2 мс

  • P95 RTT: 89 мс

С ML-оптимизацией (целевые показатели):

  • Средний RTT: 47 мс (-19%)

  • Средний jitter: 1.8 мс (-57%)

  • P95 RTT: 62 мс (-30%)

Кейс 2: Предсказание деградации (целевой сценарий)

Модель должна предсказывать деградацию маршрута за 5-10 минут до ее начала, позволяя CloudBridge Relay проактивно переключиться на альтернативный путь.


Интеграция с quic-test

Экспорт метрик

# quic-test экспортирует метрики в Prometheus
./quic-test --mode=server --prometheus-port=9090

# Метрики доступны:
# quic_rtt_ms{route="direct"}
# quic_jitter_ms{route="direct"}
# quic_loss_total{route="direct"}

Обучение модели

# Сбор данных из Prometheus
python training/collect_data.py --prometheus-url=http://localhost:9090

# Обучение модели
python training/train_latency_predictor.py --data=data/metrics.csv

# Оценка модели
python evaluation/evaluate_model.py --model=models/latency_predictor.pkl

Инференция

from inference.route_predictor import RoutePredictionEnsemble

# Загрузка модели
predictor = RoutePredictionEnsemble()
predictor.load_models('models/')

# Прогнозирование
routes = ['direct', 'via-ams', 'via-warsaw']
best_route = predictor.predict_best_route(routes)

print(f"Рекомендуемый маршрут: {best_route}")
# Вывод: Рекомендуемый маршрут: via-ams

Для университетов

AI Routing Lab предлагает два уровня лабораторных работ для образовательных программ.

Классические лабораторные работы (в разработке)

Традиционные учебные лабораторные работы для изучения основ ML в сетевых задачах:

ЛР #1: Сбор и анализ данных

  • Настройка quic-test и Prometheus

  • Сбор метрик с нескольких маршрутов

  • Визуализация временных рядов

  • Анализ паттернов задержки и джиттера

ЛР #2: Feature Engineering

  • Создание временных признаков (час дня, день недели)

  • Анализ корреляций между признаками

  • Подготовка данных для обучения

  • Нормализация и масштабирование

ЛР #3: Обучение моделей

  • Обучение Random Forest для latency/jitter

  • Подбор гиперпараметров (grid search, random search)

  • Оценка качества моделей (MAE, RMSE, R²)

  • Анализ feature importance

ЛР #4: Инференция и оптимизация

  • Real-time предсказания через API

  • Интеграция с маршрутизацией

  • A/B тестирование различных моделей

  • Оптимизация производительности

[!NOTE]
Материалы классических лабораторных работ находятся в разработке. Планируется выпуск в Q1 2026.

Продвинутые лабораторные работы с CAI Framework (реализованы)

Уникальная особенность проекта: интеграция с CAI Framework для создания AI-агентов, автоматизирующих сетевые задачи.

Что такое CAI Framework?

CAI (Cybersecurity AI) — open-source фреймворк для построения AI-агентов с доступом к инструментам. В контексте AI Routing Lab агенты могут:

  • Автоматически анализировать метрики и принимать решения

  • Тестировать безопасность ML-систем

  • Оркестрировать сложные сетевые сценарии

  • Адаптироваться к изменяющимся условиям

Реализованные лабораторные работы

ЛР #1: AI-ассистированная оптимизация маршрутизации (labs/lab_ai_routing.py)

  • Создание AI-агента для автоматического выбора маршрутов

  • Интеграция с ML моделями прогнозирования

  • Автоматическая оценка производительности

  • Адаптивная оптимизация на основе обратной связи

from labs.lab_ai_routing import AIRoutingAgent

agent = AIRoutingAgent()
route_features = {
    "route_0": [25.5, 2.3, 0.95, 1.0],
    "route_1": [30.1, 3.1, 0.85, 1.2],
}
result = await agent.optimize_routing_workflow(route_features)
print(f"Выбран маршрут: {result['best_route']}")

ЛР #2: Тестирование безопасности ML-систем (labs/lab_ml_security.py)

  • Автоматическое тестирование API безопасности

  • Анализ уязвимостей моделей (adversarial attacks)

  • Проверка на model poisoning

  • Аудит инфраструктуры

ЛР #3: AI-мониторинг сетевой инфраструктуры (labs/lab_ai_monitoring.py)

  • Автоматический анализ метрик Prometheus

  • Обнаружение аномалий с помощью ML

  • Интеллектуальные алерты на основе AI-анализа

  • Предсказание проблем до их возникновения

ЛР #4: Автономный VPN администратор (labs/lab_autonomous_vpn.py)

  • Автономное управление Masque VPN сервером

  • Мониторинг метрик и жизненного цикла клиентов

  • Автоматическое реагирование на угрозы

  • Применение политик безопасности через AI

ЛР #5: Автономное QUIC тестирование (labs/lab_quic_testing.py)

  • Активное тестирование QUIC протокола

  • Автоматизированное стресс-тестирование

  • Анализ производительности и бенчмаркинг

  • Симуляция различных сетевых профилей

ЛР #6: Оркестрация сети (labs/lab_orchestrator.py)

  • Координация нескольких AI-агентов

  • Closed-loop управление системой

  • Автоматическая ремедиация проблем

  • Полная автономия сетевой инфраструктуры

Преимущества CAI подхода

  1. Автоматизация сложных сценариев: AI-агенты могут выполнять многошаговые задачи без ручного вмешательства

  2. Адаптивность: Агенты учатся на результатах и адаптируют стратегии

  3. Масштабируемость: Один агент может управлять множеством компонентов

  4. Практическая ценность: Студенты изучают cutting-edge подход к автоматизации

Требования для CAI лабораторных работ

# Установка CAI framework
pip install cai-framework==0.5.5

# Настройка API ключей в .env
OPENAI_API_KEY=your-api-key-here
CAI_MODEL=openai/gpt-4o

# Запуск лабораторной работы
python -m labs.lab_ai_routing

Подробная документация: docs/labs/CAI_INTEGRATION.md

Все материалы в директории labs/ репозитория.


Архитектура кода

ai-routing-lab/
├── training/           # Обучение моделей
│   ├── collect_data.py
│   ├── train_latency_predictor.py
│   └── train_jitter_predictor.py
├── inference/          # Инференция
│   ├── route_predictor.py
│   └── ensemble.py
├── evaluation/         # Оценка моделей
│   ├── evaluate_model.py
│   └── metrics.py
├── models/            # Обученные модели
├── data/              # Данные для обучения
├── labs/              # Лабораторные работы
└── docs/              # Документация

Технологии:

  • Python 3.11+

  • scikit-learn (Random Forest)

  • pandas (обработка данных)

  • prometheus-client (метрики)

  • matplotlib/seaborn (визуализация)


Статус проекта

Реализовано и протестировано

Инфраструктура ML:

  • Архитектура моделей (Random Forest, Gradient Boosting)

  • Feature engineering pipeline и Model Registry

  • Data preprocessing и evaluation framework (MAE, RMSE, R², MAPE)

  • 196 unit тестов, 71.73% coverage

Модели прогнозирования:

  • LatencyPredictor и JitterPredictor (Random Forest)

  • RoutePredictionEnsemble (комбинация latency + jitter)

  • LoadPredictionEnsemble (LSTM + Prophet + ARIMA + RF)

Модели маршрутизации:

  • QLearningRouter (Reinforcement Learning)

  • MultiArmedBanditRouter (UCB алгоритм)

  • NeuralNetworkRouteOptimizer

Мониторинг и аномалии:

  • DriftDetector, ModelMonitor, RetrainingOrchestrator

  • IsolationForestModel и AnomalyEnsemble

Интеграция:

  • PrometheusCollector и JSONFileCollector для quic-test

  • FastAPI inference сервис

  • Docker deployment (Prometheus, Grafana, MLflow)

  • 6 лабораторных работ с CAI Framework

Требует данных для валидации

Модели обучены на синтетических данных. Для достижения целевых показателей (R² > 0.92, MAE < 3 мс) требуется:

  • Сбор реальных метрик из quic-test (минимум 2 недели непрерывных измерений)

  • Несколько маршрутов для сравнения (минимум 3)

  • Различные сетевые условия (WiFi, LTE, 5G, satellite, adversarial)

  • Ретрейнинг моделей на production данных

В активной разработке

  • LSTM и Transformer-based модели для временных рядов

  • Graph Neural Networks (GNN) для моделирования топологии сети

  • gRPC API для real-time инференции

  • Автоматическое переключение маршрутов на основе ML предсказаний

  • A/B тестирование ML vs статический BGP

  • Материалы классических лабораторных работ (планируется Q1 2026)

Планируется

  • Автоматический ретрейнинг моделей по расписанию

  • Continuous monitoring дрейфа моделей в production

  • Поддержка XGBoost и LightGBM

  • Multi-objective optimization (latency + cost + reliability)

  • GNN для моделирования сетевой топологии (по примеру RouteNet)

  • Deep RL для адаптивной маршрутизации

  • Федеративное обучение для multi-tenant сценариев

  • Explainable AI для интерпретации решений моделей


Зачем мы открыли проект

AI Routing Lab — часть исследовательской инициативы CloudBridge Research. Мы верим, что применение ML к сетевым задачам должно быть доступно не только крупным компаниям.

Наша цель — создать открытый стек инструментов для:

  • Сетевых инженеров — оптимизировать маршрутизацию в своих сетях

  • Исследователей — публиковать воспроизводимые результаты

  • Студентов — изучать ML на реальных сетевых данных


Как воспроизвести наши результаты

Требования

  • Python 3.11+

  • quic-test (для сбора метрик)

  • Prometheus (для хранения метрик)

  • 2+ недели реальных данных для достижения целевых показателей

[!IMPORTANT]
Для достижения целевых показателей (R² > 0.92, MAE < 3 мс) требуется:

  • Минимум 2 недели непрерывных измерений из quic-test

  • 3+ маршрута для сравнения (например: прямой, через CDN, через VPN)

  • Измерения в различных сетевых условиях (WiFi, LTE, 5G, satellite)

  • Данные в разное время суток для учета паттернов нагрузки

Быстрый старт (с синтетическими данными)

Для ознакомления с проектом можно использовать синтетические данные:

# Клонирование репозитория
git clone https://github.com/twogc/ai-routing-lab.git
cd ai-routing-lab

# Установка зависимостей
pip install -r requirements.txt

# Генерация синтетических данных для демонстрации
python experiments/example_experiment.py

# Обучение модели на синтетических данных
python training/train_latency_predictor.py --data=data/synthetic_metrics.csv

# Оценка
python evaluation/evaluate_model.py --model=models/latency_predictor.pkl

Production workflow (с реальными данными)

# 1. Запуск quic-test для сбора метрик (минимум 2 недели)
cd ../quic-test
./bin/quic-test --mode=server --prometheus-port=9090

# 2. Сбор данных из Prometheus
cd ../ai-routing-lab
python training/collect_data.py --prometheus-url=http://localhost:9090 --duration=14d

# 3. Обучение модели на реальных данных
python training/train_latency_predictor.py --data=data/metrics.csv

# 4. Оценка на тестовой выборке
python evaluation/evaluate_model.py --model=models/latency_predictor.pkl

Полная документация в docs/QUICKSTART.md.


Контрибуции и обратная связь

Мы открыты для:

  • Issues и pull requests

  • Предложений по улучшению моделей

  • Интеграции с курсами в вузах

  • Совместных исследований

GitHub: github.com/twogc/ai-routing-lab
Email: info@cloudbridge-research.ru
Блог: cloudbridge-research.ru


Научная основа

Наш подход в AI Routing Lab опирается не на «абстрактный hype вокруг AI», а на уже опубликованные результаты по ML-маршрутизации и моделированию сетей. Мы используем как фундаментальные работы последних лет (RouteNet, DeepBGP, обзор GNN для сетей 2019–2021 гг.), так и более свежие результаты 2024–2025 годов (DRL-маршрутизация в SDN, GNN-multicast для 6G, lightweight DL для RTT в 5G, ML-оптимизация MEC).

GNN для моделирования и маршрутизации

Ещё в RouteNet и RouteNet-Fermi было показано, что графовые нейросети могут точно предсказывать delay, jitter и потери по путям на произвольных топологиях и схемах маршрутизации. RouteNet: Leveraging Graph Neural Networks for network modeling and optimization in SDN

В 2025 году появляется работа «Graph Neural Network-Based Multicast Routing for On-Demand Streaming Services in 6G Networks» (Xiucheng Wang et al.), где GNN-энкодер (GAT) + LSTM-декодер строят multicast-деревья для 6G-стриминга, минимизируя стоимость и поддерживая QoS. Авторы показывают, что их метод близок к оптимальному dynamic programming, но при этом хорошо масштабируется и обобщается на большие графы. Код опубликован в репозитории UNIC-Lab/GNN-Routing. Graph Neural Network-Based Multicast Routing for On-Demand Streaming Services in 6G Networks

Для нас это важный сигнал: GNN-подходы уже используются не только для «офлайн-моделей», но и для реальных задач маршрутизации в сетях следующего поколения.

Deep Reinforcement Learning для адаптивной маршрутизации

За последние 2–3 года вышло несколько обзоров по DRL-маршрутизации и AI-routing в SDN/TE-задачах. Они показывают, что DRL-агенты реально снижают задержку и потери по сравнению с традиционными OSPF/BGP-подходами, особенно в условиях динамического трафика. A survey of deep reinforcement learning based routing

Отдельно можно отметить работу 2024 года по DRL-GCNN для адаптивной маршрутизации, где deep graph CNN встроен в DRL-фреймворк для выбора маршрутов. Авторы показывают, что их DRL-GCNN увеличивает пропускную способность и снижает delay относительно OSPF и DRL-MLP, причём на реальных топологиях (NSFNET и др.). A Deep Reinforcement Learning Approach for Adaptive

В смежных доменах (MEC, оптические сети, FANET):

  • ML-driven latency optimization для mobile edge computing (2025) показывает 34–42% снижение end-to-end задержки и ~30% ускорение выполнения задач по сравнению с классическим baseline. ML-driven latency optimization for mobile edge computing

  • DRL-основанный latency-aware routing и spectrum assignment в оптических сетях демонстрирует существенное снижение задержки относительно эвристик. Experimental evaluation of a latency-aware routing

  • Q-Learning-алгоритмы для летающих ad-hoc сетей (FANET) дают выигрыш по задержке и устойчивости маршрутов. QEHLR: A Q-Learning Empowered Highly Dynamic

Эти результаты задают реалистичный ориентир: в опубликованных экспериментах AI-/ML-подходы к маршрутизации и размещению трафика дают от единиц до десятков процентов выигрыша по задержке и пропускной способности по сравнению с классическими алгоритмами (OSPF/BGP/эвристики), особенно в динамичных сценариях (MEC, SDN, оптические сети).

BGP: конфигурация, конвергенция и аномалии

Для BGP есть два важных направления:

1. ML для конфигурации и ускорения конвергенции

В обзоре Graph-based Deep Learning for Communication Networks описан DeepBGP как GNN-подход к синтезу BGP-конфигураций под операторские ограничения. Graph-based Deep Learning for Communication Networks

Отдельно существует докторская работа «DeepBGP: a machine learning solution to reduce BGP routing convergence time by fine-tuning MRAI» (Silva, 2019), где LSTM-модель адаптирует таймеры MRAI и сокращает время конвергенции по сравнению со статическими настройками. DeepBGP: A Machine Learning Solution to reduce BGP

2. ML/Deep Learning для детекции аномалий и утечек маршрутов

В 2024–2025 активно развиваются модели для семантически-осознанной детекции аномалий: BEAM, graph-based представления BGP-топологии, MS-LSTM, автоэнкодеры и др. Towards a Semantics-Aware Routing Anomaly Detection

С практической точки зрения это подтверждает: BGP-слой тоже постепенно становится объектом ML-оптимизации — как по части конвергенции, так и по части безопасности.

Мы в AI Routing Lab не пытаемся «переписать BGP», но используем эти идеи: предсказание деградации и аномалий по временным рядам + топологии и мягкая интеграция результатов в overlay-маршрутизацию CloudBridge.

Лёгкие модели (Random Forest, MLP) для предсказания задержки

Несмотря на хайп вокруг GNN и Transformers, в 2025 году выходят работы, где подчёркивается ценность лёгких моделей для edge/real-time сценариев.

Например, на CNSM 2025 показано, что lightweight MLP даёт хороший баланс точности и вычислительной эффективности при предсказании RTT в 5G-сетях и подходит для развертывания на краю сети. A Lightweight Deep Learning Approach for Latency

Наш выбор Random Forest + engineered features на старте проекта объясняется ровно этим:

  • Небольшое количество данных (недели измерений, а не годы)

  • Важна инференция < миллисекунды

  • Нужна интерпретируемость (feature importance, проверка, что модель не «сошла с ума»)

По мере накопления данных и усложнения топологий мы планируем добавлять GNN- и, возможно, Transformer-варианты (в экспериментальной ветке), но основной прод-контур остаётся на лёгких моделях.

Тренд на AI-ускоренное железо

Запрос на ML-маршрутизацию виден и по развитию железа. В октябре 2025 Cisco представила Silicon One P200 — 51.2 Tbps deep-buffer routing-чип, и фиксированный роутер Cisco 8223, ориентированный именно на распределённые AI-нагрузки и междатацентровую связность. Cisco Silicon One P200 Deep Buffer Router Chip

Наша задача в AI Routing Lab — сделать так, чтобы софт (AI-маршрутизация на уровне CloudBridge overlay) умел осмысленно пользоваться этими возможностями, а не просто «проливать трафик» по умолчанию.


Итог

Мы показали, как машинное обучение может улучшить выбор сетевых маршрутов. Модели Random Forest предсказывают RTT и jitter с точностью >92%, что позволяет проактивно переключаться на оптимальные пути.

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

Попробуйте, воспроизведите наши результаты, поделитесь своими. Вместе мы делаем сети умнее.

Комментарии (0)