Meshtastic и MeshCore в России: физика радиоканала, коллизии и расчет пропускной способности 📡

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

В этой статье мы разберем фундаментальную проблему конфликта между виртуальной архитектурой Meshtastic и физической реальностью радиочастотного спектра в Российской Федерации. Мы проведем математические расчеты времени нахождения сигнала в эфире, проанализируем сценарии коллапса сети при использовании тяжелых пакетов ATAK и дадим конкретные рекомендации по настройке узлов для условий плотной городской застройки Казани и Республики Татарстан.


Оглавление

Архитектура каналов: Виртуальное против Физического 🏗️

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

Миф о LongFast и ключе шифрования

По умолчанию в прошивке активен канал с именем LongFast. Многие считают его каким-то специальным техническим режимом. На самом деле это просто пресет настроек. Его главная особенность заключается в использовании "пустого" ключа шифрования, который в кодировке Base64 выглядит как AQ==. Этот ключ означает отсутствие шифрования полезной нагрузки, что делает сообщения видимыми для любой ноды в радиусе действия, использующей ту же частоту и параметры модуляции.

Механика инкапсуляции трафика

Все остальные каналы, которые вы создаете в приложении и защищаете паролем, являются виртуальными. Они не выделяют вам новую физическую частоту. Вместо этого они работают поверх главного физического канала. Алгоритм шифрует полезную нагрузку (текст, телеметрию, координаты), упаковывает ее в стандартный контейнер и отправляет в эфир на той же частоте, что и все остальные.

[ Уровень приложения ]
  Сообщение: "Встреча в 18:00"
  Вирт. канал: "KazanPrivate" (с паролем)
          │
          ▼ (Шифрование полезной нагрузки)
[ Сетевой уровень ]
  Контейнер: [Заголовок: Отправитель X] + [Зашифрованные данные]
          │
          ▼ (Привязка к физической частоте)
[ Физический уровень ]
  Частота: 869.075 МГц
  Модуляция: LoRa, SF9, BW 250 кГц
          │
          ▼ (Излучение в эфир)
[ Эфир ] (Слышат все ноды на этой частоте, но расшифровать может только владелец ключа)

Городские ноды, слушающие частоту 869.075 МГц, примут этот пакет. Они увидят заголовок, определят отправителя и поймут, что пакет зашифрован ключом, которого у них нет. Пакет будет отброшен на уровне расшифровки, но он уже занял эфирное время.

💡 Важно: Настройка уникального имени канала и пароля не спасает от помех. Если физическая частота совпадает с общегородской, ваши пакеты создают нагрузку на общий эфир и подвержены коллизиям с чужим трафиком.

Особенность Primary-канала

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


Физические ограничения спектра в Российской Федерации 🇷🇺

Радиочастотный спектр строго регулируется. Для использования технологий LoRa без получения индивидуальной лицензии и регистрации радиоэлектронных средств (РЭС) пользователи вынуждены опираться на решения Государственной комиссии по радиочастотам (ГКРЧ), разрешающие использование устройств с малой мощностью в определенных диапазонах.

Реальность доступных частот

Для обеспечения дальнобойной связи в условиях городской застройки оптимальным является использование полосы пропускания (Bandwidth) 250 кГц. В этом режиме в России легально и технически целесообразно доступны по сути только две центральные частоты.

Регион Доступные каналы (BW 250 кГц) Центральные частоты Комментарий
Россия 2 канала 868.825 МГц, 869.075 МГц 869.075 МГц является де-факто стандартом для публичных сетей
Европа 1 основной канал 869.525 МГц (и др. с ограничениями Duty Cycle) Строгие ограничения на время передачи (1%)
США ~100 каналов 902.3 - 927.5 МГц Диапазон 915 МГц, огромное количество непересекающихся частот

Это критическое отличие. В США пользователь может выбрать из десятков непересекающихся частот, полностью изолируя свою сеть от соседей физически. В России мы вынуждены делить две частоты со всеми энтузиастами, умными счетчиками и промышленными системами телеметрии в радиусе нескольких километров.


Математика радиоканала: Расчет времени в эфире (Airtime) 🧮

Чтобы понять, почему сеть "встает", нужно обратиться к физике передачи данных. LoRa не измеряет скорость в мегабитах в секунду как Wi-Fi. Она измеряет время, которое сигнал занимает в эфире. Это время называется Airtime.

Формула и параметры модуляции

Время передачи одного пакета зависит от трех ключевых параметров:

  • Spreading Factor (SF): Коэффициент расширения спектра. Значения от SF7 до SF12. Чем выше SF, тем дальше летит сигнал, но тем дольше он передается. Увеличение SF на 1 удваивает время передачи.
  • Bandwidth (BW): Ширина полосы пропускания. 250 кГц или 125 кГц. Увеличение ширины полосы вдвое сокращает время передачи вдвое.
  • Размер полезной нагрузки (Payload): Количество байт в пакете.

Практический расчет для текстового сообщения

Рассмотрим стандартный сценарий для Казани: использование пресета LongFast (SF9, BW 250 кГц, кодирование 4:8). Отправка короткого текстового сообщения объемом 50 байт.

Согласно официальным калькуляторам времени в эфире LoRa, такой пакет будет занимать эфир примерно 72 миллисекунды. Это кажется малым значением. Однако радиоканал является полудуплексным. В один момент времени передавать может только одна нода.

Влияние коэффициента Duty Cycle

Для диапазона 869 МГц в России существуют рекомендации по максимальному времени нахождения передатчика в активном состоянии (Duty Cycle). Для некоторых поддиапазонов это 10%, для других 1%. Хотя Meshtastic не всегда жестко ограничивает это на уровне прошивки для всех регионов, физический предел пропускной способности канала остается неизменным. Если суммарное время передачи всех нод превысит доступное время, начнутся коллизии.

Количество активных нод Интервал отправки Общая загрузка канала (SF9, 50 байт) Состояние сети
10 нод 1 сообщение в минуту ~1.2% Отличное
50 нод 1 сообщение в минуту ~6.0% Приемлемое
100 нод 1 сообщение в минуту ~12.0% Заметные задержки
100 нод 1 сообщение в 10 секунд ~72.0% Коллапс

⚠️ Предупреждение: Расчет выше идеализирован. Он не учитывает служебные пакеты (ping, traceroute, обновление таблиц маршрутизации), которые ноды генерируют автоматически. Реальная загрузка всегда на 20-30% выше расчетной.


Проблема ATAK и MeshCore: Когда сеть встает 📉

Текстовые сообщения редко являются причиной перегрузки. Настоящая угроза стабильности городской сети кроется в использовании тяжелых приложений, таких как ATAK (Android Team Awareness Kit) через плагин Meshtastic, или альтернативных прошивок MeshCore, генерирующих интенсивный поток данных.

Феномен тяжелых пакетов CoT

Пакеты Cursor on Target (CoT), используемые для передачи геопозиции, маршрутов и тактических меток на карту, значительно превосходят обычный текст по размеру. Один пакет ATAK может легко достигать 1000-2000 байт и более, особенно если передается информация о нескольких объектах одновременно или обновляется растровая подложка.

Рассчитаем время в эфире для пакета объемом 1500 байт на тех же настройках (SF9, BW 250 кГц). Время передачи возрастает пропорционально и может достигать 1.5 - 2.5 секунд на один пакет.

Механизм разрешения коллизий (CSMA/CA и CAD)

Модемы LoRa используют механизм прослушивания эфира перед передачей (Channel Activity Detection, CAD). Перед началом передачи нода "слушает" частоту. Если уровень сигнала превышает пороговый, нода делает вывод, что канал занят, и откладывает передачу на случайный промежуток времени (backoff).

[ Нода А ]                     [ Радиоканал ]                     [ Нода Б ]
     │                                │                                │
     │ Хочет передать ATAK            │                                │
     │ (пакет 1500 байт, ~2 сек)      │                                │
     ├───────────────────────────────>│                                │
     │ Проверка CAD...                │                                │
     │                                │ ЗАНЯТ                          │
     │                                │ (передает Нода В)              │
     │ Отмена передачи                │                                │
     │ Ожидание (Backoff)             │                                │
     │                                │                                │ Хочет передать
     │                                │                                │ Ожидание...
Сценарий коллапса городской сети

Представьте ситуацию: несколько пользователей в разных концах Казани настраивают мощные ноды с направленными антеннами и включают постоянную трансляцию ATAK на общедоступной частоте 869.075 МГц.

Поскольку каждый тяжелый пакет занимает эфир на несколько секунд, вероятность того, что канал свободен в любой произвольный момент времени, стремится к нулю. Модемы всех окружающих нод постоянно детектируют занятость канала. Они уходят в режим ожидания и не могут передать даже короткое текстовое сообщение.

В результате страдает не только сеть нарушителей (их пакеты тоже не проходят из-за взаимных коллизий), но и вся городская инфраструктура Meshtastic. Сеть становится неработоспособной для всех.

Фактор MeshCore и фоновый шум

Прошивки MeshCore, предназначенные для специфических задач, часто работают на тех же или смежных частотах. Некоторые энтузиасты пытаются использовать частоту 868.825 МГц для своих экспериментов. Из-за широкой полосы пропускания LoRa (250 кГц занимают значительный спектральный "хвост"), сигналы на 868.825 МГц и 869.075 МГц могут создавать интермодуляционные искажения и повышать общий уровень шума (Noise Floor), снижая чувствительность приемников.


Внешние факторы помех в городской среде 🏙️

Помимо внутренних конфликтов внутри сообщества Meshtastic, радиоканал подвержен воздействию внешних факторов, которые невозможно контролировать настройками прошивки.

Умные электросчетчики и бытовой трафик

Массовая установка интеллектуальных систем учета электроэнергии (АСКУЭ) привела к тому, что в каждом многоквартирном доме появились передатчики, работающие в диапазоне 868 МГц. Эти устройства периодически отправляют показания в управляющие компании. В вечерние часы пик, когда сотни счетчиков одновременно пытаются установить связь с коллектором, уровень шума в диапазоне возрастает, что напрямую снижает дальность связи ваших LoRa-устройств.

Радиоэлектронная борьба (РЭБ) и глушение

К сожалению, в текущих реалиях необходимо учитывать наличие систем радиоэлектронного подавления. Локальные "глушилки", подавляющие диапазоны GPS и гражданской связи, могут создавать широкий спектральный шум, полностью "выжигая" возможность приема слабых LoRa-сигналов в определенном радиусе. В таких зонах никакие расчеты и оптимизации не помогут, так как отношение сигнал/шум (SNR) падает ниже порога чувствительности модема.


Практические рекомендации для Казани и Татарстана 🛠️

Знание физики процесса позволяет не просто констатировать проблемы, но и грамотно настроить оборудование для достижения максимальной эффективности без вреда для окружающего радиоэфира.

Стратегия выбора частоты

Если вы создаете закрытую группу для обмена тяжелыми данными (ATAK, телеметрия с высоким разрешением), никогда не используйте частоту 869.075 МГц. Эта частота должна оставаться резервом для коротких текстовых сообщений и экстренной связи.

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

Настройка режимов ретрансляции

Критически важно правильно настроить поведение ноды при получении чужих пакетов.

  • Режим ALL: Нода ретранслирует абсолютно все пакеты. Категорически не рекомендуется для узлов, подключенных к пользователям ATAK. Это мгновенно размножит тяжелые пакеты по всей сети.
  • Режим KNOWN или NONE: Используйте эти режимы для ретрансляции. Нода будет помогать только тем сообщениям, которые принадлежат вашему виртуальному каналу (имеют правильный ключ), или вообще не будет выступать ретранслятором, работая только как конечный клиент.

Оптимизация параметров LoRa для тяжелых данных

Если вам необходимо передавать большие объемы данных, пожертвуйте дальностью ради скорости. Настройки по умолчанию (SF9) слишком медленны для ATAK.

  • Установите Spreading Factor (SF) на 7 или 8.
  • Оставьте Bandwidth (BW) на 250 кГц.

Эта комбинация (SF7/BW250 или SF8/BW250) сократит время передачи пакета ATAK с 2 секунд до 200-400 миллисекунд. Это кардинально снизит нагрузку на эфир и уменьшит окно для возникновения коллизий. Да, дальность связи уменьшится, но для городской сети с плотным расположением узлов это приемлемый компромисс.

Мониторинг и аудит собственной ноды

Прежде чем запускать интенсивный трафик, проведите аудит. Используйте веб-интерфейс ноды или логирование через последовательный порт для оценки количества пакетов, проходящих через ваше устройство. Если вы видите, что утилизация канала (Channel Utilization) постоянно держится выше 15-20%, это прямой сигнал к тому, что нужно снизить частоту отправки сообщений или пересмотреть параметры модуляции.

🔥 Критически важно: Децентрализованная сеть живет только за счет взаимного уважения пользователей к общему ресурсу. Настройка "мощнее и быстрее" в ущерб другим участникам приводит к деградации системы для всех. Проверяйте свои настройки частот и режимов ретрансляции перед каждым запуском.


Выводы и Итоги ✅

Meshtastic и MeshCore предоставляют потрясающие возможности для построения независимой связи. Однако магия приложения заканчивается там, где начинаются законы радиофизики. В условиях ограниченного спектра Российской Федерации, особенно в таких городах как Казань, каждый пользователь несет ответственность за чистоту эфира.

Понимание механики инкапсуляции, умение рассчитать время в эфире и осознанный выбор частоты (868.825 МГц для тяжелых задач) позволяют построить стабильную, быструю и надежную сеть. Начните с малых мощностей, используйте низкие значения SF для больших данных и всегда отключайте ретрансляцию чужого тяжелого трафика.

Только такой подход гарантирует, что ваша сеть будет работать тогда, когда это действительно необходимо.


🔥 Репетиторы по математике • 5-11 класс • Поступление в физико-математические школы России