Лаборатория AI Routing: как машинное обучение помогает совершенствовать сетевые маршруты
Краткое резюме
В рамках проекта CloudBridge Research используют машинное обучение для оптимизации сетевых маршрутов и преодоления ограничений протокола BGP. Цель — научить сеть самостоятельно выбирать оптимальный путь, учитывая реальную задержку и джиттер.
В рамках исследовательского проекта CloudBridge Research, направленного на использование машинного обучения для оптимизации сетевых протоколов, была подготовлена статья. Проект доступен по адресу github.com/twogc/ai-routing-lab.
Ранее мы уже рассказывали о том, как максимально эффективно использовали сетевые протоколы BBRv3, FEC и QUIC, а также о создании инструментов для их тестирования, таких как quic-test. Однако мы столкнулись с проблемой: несмотря на все усилия по ускорению передачи данных по одному каналу, иногда самый быстрый способ доставки данных — это выбор альтернативного маршрута.
В интернете, где BGP (протокол маршрутизации) функционирует независимо и не всегда учитывает текущие условия сети, такой как потери пакетов или джиттер на «коротком» маршруте, мы решили использовать машинное обучение для того, чтобы научить сеть самостоятельно выбирать оптимальный путь.
**Контекст задачи**
Представьте, что у вас есть три маршрута между Москвой и Франкфуртом: прямой маршрут через Ростелеком, через Амстердам (Cogent) и через Варшаву (Level3). Каждый маршрут имеет свои особенности в зависимости от времени суток, загрузки сети, погодных условий и других факторов. Традиционная маршрутизация выбирает путь на основе метрик BGP, таких как AS Path и MED, но эти метрики не учитывают реальную задержку и джиттер.
Мы решили использовать машинное обучение для прогнозирования поведения маршрутов и активного выбора наилучшего пути.
**Проблема BGP**
BGP — это основа интернет-маршрутизации, но у него есть ограничения:
* Статические метрики, такие как AS Path, Local Preference и MED, не отражают реальное качество канала.
* Медленная конвергенция: изменение маршрута занимает много времени.
* Отсутствие учёта джиттера: BGP не знает о вариации задержки.
* Отсутствие прогнозирования: BGP реагирует на проблемы, а не предсказывает их.
**Реальный пример**
На маршруте Москва — Франкфурт мы наблюдали, что прямой маршрут быстрее утром, но ухудшается вечером. BGP об этом не знает и продолжает использовать прямой путь.
**Решение: использование машинного обучения для прогнозирования маршрутов**
Архитектура системы включает в себя:
* quic-test для непрерывного измерения метрик на всех доступных маршрутах;
* AI Routing Lab для обучения моделей машинного обучения;
* CloudBridge Relay для применения моделей.
Данные экспортируются в Prometheus с временными метками. AI Routing Lab использует Random Forest для прогнозирования:
* LatencyPredictor предсказывает RTT на следующие 5–10 минут;
* JitterPred предсказывает джиттер.