Линейка ПО для агрегации каналов связи
Программные продукты для организации бесперебойных каналов связи в условиях нестабильной передачи данных по физическим линиям: агрегация IP-каналов, агрегация радиоканалов и самоорганизующаяся Mesh-сеть.
Задача
Нестабильность и ограниченная пропускная способность каналов связи — постоянная проблема для распределённых систем: разрывы TCP-сессий, деградация SLA, ложные срабатывания систем мониторинга, простои оборудования. Классическое резервирование (failover) решает эту проблему лишь частично: при обрыве активного канала соединение приходится перестраивать заново, что означает паузу и потерю контекста сессии.
Представляем линейку программных продуктов для организации бесперебойных каналов связи в условиях нестабильной передачи данных по физическим каналам через объединение нескольких каналов связи в один логический, где переключение происходит на уровне отдельных пакетов, а не сессий. При деградации или потере одного из физических каналов трафик бесшовно перенаправляется через оставшиеся, без пересборки туннеля и без разрыва соединений.
Линейка состоит из трёх продуктов, ориентированных на разные типы физической среды:
- СПО «Агрегатор IP-каналов» — агрегация IP-каналов общего назначения (проводных, сотовых, Wi-Fi).
- СПО «Агрегатор радиоканалов» — агрегация выделенных радиоканалов (LoRa-класс) там, где IP-инфраструктура недоступна.
- СПО «Модуль Самоорганизующейся Маршрутизации» — компонент сетевого узла, организующий децентрализованную иерархическую Mesh-сеть.
СПО «Агрегатор IP-каналов»
Назначение
Продукт объединяет несколько независимых IP-каналов подключения к сети интернет: проводные линии, беспроводные сотовые соединения (3G/4G/5G), Wi-Fi — в единый логический канал с суммарной пропускной способностью и устойчивостью к обрыву отдельных физических линий.
Принцип работы
На клиентском устройстве поднимается логический туннельный интерфейс, через который перенаправляется весь исходящий трафик. Туннель терминируется на агрегирующем сервисе, откуда трафик перенаправляется в интернет или во внутреннюю сеть заказчика. Обратный трафик проходит тот же путь в обратную сторону.
Ключевая особенность архитектуры — распределение по каналам происходит на уровне отдельных IP-пакетов, а не сессий. Обе стороны туннеля непрерывно собирают метрики каждого канала (пропускная способность, задержка, объём переданных данных) и на их основе принимают решение, в каком процентном соотношении распределять пакеты. При деградации или потере одного физического канала туннель не перестраивается — трафик автоматически перенаправляется через оставшиеся активные каналы, что исключает даже кратковременные разрывы соединения.
Прирост скорости пропорционален сумме скоростей используемых каналов за вычетом накладных расходов на поддержание туннеля (в среднем 15–20 %): например, три канала по 50 Мбит/с в сумме дают около 120–130 Мбит/с полезной пропускной способности.
Архитектура развёртывания
- Клиентская часть разворачивается на встраиваемых Linux-платформах и рассчитана на работу на аппаратных платформах ARM, ARM64 и MIPS — то есть на типовых промышленных роутерах, шлюзах и IoT-устройствах с ограниченными вычислительными ресурсами.
- Серверная (агрегирующая) часть, напротив, спроектирована для эксплуатации в облачных средах: она разворачивается как кластер из нескольких равноправных узлов (нод), взаимодействующих между собой по защищённому бинарному протоколу поверх TLS. Такой кластер способен обслуживать одновременные подключения от большого числа клиентов и масштабируется горизонтально добавлением новых нод.
Типовые сценарии применения
- Промышленная телеметрия. Разрыв канала передачи показаний датчиков (давление, температура, вибрация) может быть ошибочно интерпретирован системой мониторинга как аварийный сигнал. Агрегация исключает интерпретацию временного обрыва физического канала как разрыва логического соединения.
- Финансовые транзакции. Для операций, чувствительных к разрыву TCP-сессии (эквайринг, авторизация платежей), агрегация гарантирует непрерывность соединения.
- Высокопроизводительные каналы связи. В компонентах инфраструктуры, в которых пропускная способность любого физического канала по отдельностии недостаточна для передачи необходиомго потока данных (доступ к высоконагруженным хранилищам, потоковое видео), агрегация позволяет распределить передаваемые данные между несколькими физическими каналами и тем самым объединить их пропускную способность.
СПО «Агрегатор радиоканалов»
Назначение
Там, где IP-инфраструктура (проводная или сотовая) недоступна или ненадёжна, применяется агрегация нескольких узкополосных радиоканалов LoRa-класса в единый логический канал — по тому же принципу пакетного бондинга, что и в IP-агрегаторе, но адаптированному под сильно ограниченную пропускную способность и специфику радиотракта.
Продукт исходно ориентирован на модуль радиомодемов собственной разработки, однако не привязан к нему архитектурно: за счёт слоя абстракции драйверов модемов ПО может быть адаптировано для работы с радиомодемами других производителей — для этого достаточно реализовать драйвер конкретного модема и описать его в конфигурации, не меняя код управляющего и маршрутизирующего слоя.
Программная архитектура
Программный стек делится на два уровня, взаимодействующих по структурированному бинарному протоколу поверх последовательного интерфейса:
- Управляющее ПО — работает на вычислительной платформе общего назначения под Linux (типовая целевая платформа — ARM SoC уровня Rockchip RK3588 или аналогичного класса), написано на C++. Основные компоненты:
- виртуальный TUN-интерфейс — через который происходит получение и передача IP-трафика между приложением и пространством пользователя;
- маршрутизатор/агрегатор — классификацию пакетов по правилам конфигурации, выбор канала для каждого пакета, фрагментацию крупных пакетов с параллельной передачей по нескольким каналам и последующей сборкой на приёмной стороне;
- менеджер модемов — конфигурацию, мониторинг RSSI/SNR, управление мощностью передатчика и статусом каждого канала каждого модема.
- Модемное ПО — прошивка микроконтроллера радиомодуля (C/C++), отвечающая исключительно за канальный уровень: инициализацию радиочипов, организацию псевдослучайной перестройки рабочей частоты (ППРЧ/FHSS), синхронизацию таймеров передающей и приёмной стороны, оценку качества канала (RSSI/SNR) и адаптивное управление мощностью передатчика. В базовой поставке ПО работает с модулем радиомодемов собственной разработки, но за счёт абстракции драйвера модема может быть настроено для работы с радиомодемами других производителей.
Ключевые механизмы
- Переключение на уровне пакетов, а не сессий. При деградации или обрыве одного физического радиоканала логический туннель не перестраивается — трафик перенаправляется через оставшиеся активные каналы без пауз на повторную инициализацию.
- Адаптивное управление мощностью TX. По значениям RSSI/SNR, поступающим с обеих сторон канала, мощность передатчика автоматически снижается при избыточном запасе сигнала (экономия энергопотребления — критично для автономных устройств на батарейном питании) и повышается при приближении к порогу устойчивой связи.
- Оптимизация объёма трафика. Сжатие заголовков IP/UDP/RTP (по типу ROHC) для потокового трафика, упрощённое сжатие для телеметрии со статическим контекстом, упаковка мелких пакетов телеметрии в агрегированные фреймы перед передачей — всё это компенсирует ограниченную пропускную способность узкополосного радиотракта.
- Управление доступом к среде передачи данных. Координация моментов начала передачи между каналами, работающими в одном поддиапазоне, и оценка занятости эфира перед выходом в эфир снижают вероятность коллизий и взаимных помех между агрегируемыми радиоканалами.
- Адаптивная подстройка параметров модуляции. В зависимости от текущего качества канала (RSSI/SNR, частота ошибок) модемное ПО динамически изменяет параметры модуляции — скорость передачи, ширину полосы, схему кодирования — балансируя между дальностью связи и пропускной способностью конкретного канала.
Типовой сценарий
Продукт рассчитан на сценарии одновременной передачи разнородного трафика с разными требованиями — например, потокового видео и телеметрии — между двумя точками, соединёнными исключительно радиоканалом в условиях ограниченного частотного ресурса и возможных помех, без доступа к проводной или сотовой инфраструктуре.
СПО «Модуль Самоорганизующейся Маршрутизации»
Назначение
Третий продукт линейки решает задачу иного рода: не агрегацию нескольких каналов между двумя точками, а построение децентрализованной иерархической Mesh-сети, в которой каждый узел одновременно является и источником собственного трафика, и ретранслятором для соседей. Данное ПО является обязательным компонентом каждого сетевого узла — без него узел не может присоединиться к сети.
Программа решает следующие задачи:
- автоматическое конфигурирование узла при включении;
- обнаружение соседних узлов и оценка качества связи с ними;
- динамическая маршрутизация трафика в обход отказавших или перегруженных участков сети;
- обеспечение бесшовного восстановления связности сети при перемещении или выходе узлов из строя (самовосстановление).
Архитектурная концепция
В основе — иерархическая ячеистая (mesh) топология поверх радиоканала: узлы не ограничены связью «точка-точка» с одним центральным устройством, а образуют многоскачковую (multi-hop) структуру, где пакет по мере необходимости передаётся через один или несколько промежуточных узлов, прежде чем достигнет адресата.
- Каждый узел одновременно поддерживает связь с несколькими соседями и участвует в пересылке чужого трафика, что обеспечивает избыточность маршрутов и устойчивость сети к выходу из строя отдельных узлов.
- Иерархия строится динамически: узел выбирает соседа для восходящей связи, ориентируясь на качество сигнала и текущую загруженность кандидата, что распределяет нагрузку по ретрансляции между узлами одного уровня иерархии.
- Каждый узел хранит таблицу маршрутизации для своего сегмента сети, что позволяет пересылать пакет по кратчайшему доступному пути без централизованного контроллера маршрутизации.
Построение и самовосстановление сети
Сеть строится и поддерживается автономно, без ручного администрирования:
- Автоматическое конфигурирование. При включении узел без какого-либо участия оператора определяет своё место в иерархии, обмениваясь служебными маячками с окружением.
- Обнаружение соседей и оценка качества связи. Узлы периодически обмениваются служебными кадрами, по которым строится и обновляется список доступных соседей с текущим уровнем сигнала и качеством канала до каждого из них.
- Динамическая маршрутизация. При деградации или перегрузке участка сети трафик автоматически перенаправляется в обход проблемного узла по альтернативному доступному маршруту.
- Самовосстановление. При выходе узла из строя или его физическом перемещении соседние узлы обнаруживают потерю связи и автоматически переподключаются к другим доступным узлам, восстанавливая связность сети без разрыва работы остальных её участков.
- Управление потоком. Восходящая передача данных регулируется механизмом «окна приёма»: узел обязан запросить квоту у соседа перед передачей, что исключает переполнение буферов при пиковой нагрузке на отдельных участках сети.
- Групповая и широковещательная рассылка поддерживаются на mesh-уровне без необходимости в централизованном сервере рассылки: пакет распространяется по сети от узла к узлу с однократной ретрансляцией на каждом участке.
Место в линейке
«Модуль Самоорганизующейся Маршрутизации» решает задачу связности там, где расстояние или препятствия делают связь «точка-точка» с одним устройством невозможной, а разворачивать проводную или сотовую инфраструктуру нецелесообразно. Узлы, объединённые в Mesh-сеть с помощью этого модуля, могут выступать одной из точек подключения для «Агрегатора IP-каналов», а отдельные участки сети — использовать выделенные радиоканалы «Агрегатора радиоканалов» там, где требуется гарантированная полоса для конкретного типа трафика. Таким образом три продукта линейки закрывают три разных слоя задачи обеспечения связи: агрегацию каналов общего назначения, агрегацию узкополосных выделенных радиолиний и обеспечение связности через самоорганизующуюся радиосеть.
Технологии
C++/20, C, UDP/TCP/MPTCP, TLS, LoRa/FHSS, ROHC, OpenWRT, Linux, x86 / ARM / ARM64 / MIPS.