why-meshtastic-uses-managed-flood-router
Проектирование беспроводной mesh-сети с низкой пропускной способностью для работы на микропроцессорах с низким энергопотреблением и ограниченной памятью представляет собой сложную задачу. Самый простой протокол маршрутизации mesh, пожалуй, — это Flood Routing: каждый радиоприемник, получивший пакет, переотправит его снова, до определенного лимита прыжков. Хотя Meshtastic основан на этой стратегии, в нем есть несколько тонких, но значительных улучшений. Самое важное: перед тем как узел переотправит пакет, он ждет некоторое время и слушает, не переотправляет ли его кто-то другой. Если да, то он не переотправляет повторно. Поэтому «Managed Flood Routing» было бы более точным названием. Подробнее об улучшениях см. в нашей документации.
{/ truncate /}
Поскольку Flood Routing не очень эффективен, мы понимаем, что этот подход не идеален. В прошивке предусмотрено множество мер для ограничения трафика, чтобы не перегружать mesh-сеть, но, как и в любом протоколе на основе RF, существуют ограничения по пропускной способности сети. В попытках повысить эффективность мы в прошлом оценивали «более умные» протоколы маршрутизации. Однако нам пока не удалось найти ничего, что стабильно превосходило бы текущий подход в сценариях использования Meshtastic. Мы разберем несколько причин, почему, по нашему мнению, Managed Flood Routing остается превосходным подходом для Meshtastic.
Ключевые преимущества Managed Flood Routing в Meshtastic
- Исключает накладные расходы на обнаружение маршрутов
- Обеспечивает превосходную адаптацию к динамическим топологиям сети
- Оптимизирован для трафиков с преобладанием широковещательных сообщений, характерных для Meshtastic
- Демонстрирует отличную масштабируемость в средах с низкой пропускной способностью
- Минимизирует использование ресурсов на ограниченных IoT-устройствах
- Эмпирически подтвержден обширными сетевыми симуляциями
Избегает обнаружения маршрутов
В-первую очередь, Managed Flood Routing устраняет необходимость в обнаружении маршрутов или централизованном управлении. В традиционных алгоритмах маршрутизации устройства полагаются на предопределенные или динамические маршруты для пересылки сообщений к получателям. С Managed Flood Routing вы можете начать общение сразу после загрузки устройства. Кроме того, обнаружение и поддержание маршрутов приводит к накладным расходам, которые быстро становятся значительными в протоколах с низкой пропускной способностью, таких как LoRa. Для поддержания маршрутов требуются либо дополнительные управляющие пакеты, либо метаданные в обычном трафике. В любом случае это увеличивает использование ценного эфирного времени. В статических сценариях это не большая проблема, но когда топология часто меняется — как мы обсудим в следующем разделе, — накладные расходы быстро превышают преимущества «умного» протокола маршрутизации.
Бесшовно адаптируется к изменениям топологии сети
Еще одно значительное преимущество Managed Flood Routing — его способность адаптироваться к изменениям топологии сети. В mesh-сетях устройства могут присоединяться или покидать сеть в любой момент, а в случае Meshtastic узлы часто мобильны, что приводит к частым изменениям топологии. Даже изменения окружающей среды, такие как погода или время суток, могут влиять на маршруты. Традиционные алгоритмы маршрутизации с трудом справляются с этими изменениями, что часто приводит к потере сообщений или задержкам. Managed Flood Routing же преуспевает в таких сценариях. Поскольку каждое устройство участвует в маршрутизации по требованию, сеть быстро адаптируется к изменениям, обеспечивая доставку сообщений к получателю даже при частых изменениях топологии.
Ограниченная неэффективность
Протокол маршрутизации стремится доставить пакеты к получателю наиболее эффективным способом. Действительно, для пакетов с одним получателем можно многое выиграть, выбрав единственный эффективный маршрут. Однако для широковещательных пакетов потенциальная выгода ограничена, поскольку они предназначены для доставки всем узлам в mesh. Поскольку большинство пакетов в Meshtastic — это широковещательные, а не сообщения конкретному узлу, «умный» протокол имел бы ограниченное влияние. Кроме того, в беспроводной среде, даже если пакет адресован определенному узлу, все узлы в зоне действия его услышат и в это время не смогут передавать или принимать другие пакеты. Это значит, что даже с идеальным протоколом маршрутизации узлы, которым пакет не интересен, все равно его примут, особенно если у них высокая чувствительность приемника, что часто бывает в LoRa.
Обеспечивает масштабируемость на транспорте LoRa с низкой пропускной способностью
Кроме того, Managed Flood Routing определенно масштабируем, поскольку узлы, которые вряд ли внесут вклад в маршрутизацию, не участвуют в ней. В крупных mesh-сетях с сотнями устройств масштабируемость становится критическим фактором, а минимизация эфирного времени — ключевой задачей. Традиционные алгоритмы маршрутизации часто с трудом справляются с растущим числом устройств и связанными с этим накладными расходами на маршрутизацию из-за дополнительных управляющих сообщений, необходимых для поддержания маршрутов в высокоэpheмеральных топологиях. С другой стороны, с Managed Flood Routing новые устройства, присоединяющиеся к сети, интегрируются в процесс маршрутизации без лишних церемоний, повышая общую устойчивость сети и эффективность доставки сообщений.
Работает на устройствах с ограниченными ресурсами
Наконец, Managed Flood Routing минимизирует потребление ресурсов на очень ограниченных по ресурсам и энергопотреблению IoT-устройствах. Традиционные алгоритмы маршрутизации часто требуют от устройств хранения больших таблиц маршрутизации или выполнения сложных вычислений, что потребляет дополнительную RAM, flash и ценные вычислительные ресурсы. Managed Flood Routing благодаря своей простоте и распределенной природе значительно снижает эти накладные расходы. Устройствам нужно только пересылать полученные сообщения, без сложных вычислений, что освобождает ресурсы для других полезных функций и повышает автономность устройства.
Многие решения основаны на данных симуляций Meshtasticator
Соображения и будущие направления
Хотя Managed Flood Routing доказал высокую эффективность для Meshtastic, мы признаем его ограничения: - Не оптимален для всех конфигураций сети - Потенциал для улучшений в конкретных сценариях unicast - Продолжающиеся исследования гибридных подходов для будущих реализаций
Текущий Managed Flood Routing не идеален, и успех не гарантирован, но он доказал свою эффективность даже в крупных mesh-сетях более чем из 100 узлов при правильном контроле трафика. С любым подходом связаны компромиссы, и использование любого «умного» протокола неизбежно приведет к накладным расходам в нескольких аспектах, которые, по нашему мнению, могут быстро свести на нет его преимущества.
