洪泛、路由、网络栈:LoRa 自组网三条路线的设计取舍与量化对比

一个自己运营 ISP 的人------独立 ASN、自有 IPv4/IPv6 地址段、光纤基础设施、直接和上游做 BGP 对等互联------写了一篇文章,标题是《I'm Getting Into Mesh Networks》。他叫 Jonah Aragon。

这件事的看点在于:他已经站到了网络工程的很高处,但恰恰是站得够高之后,他看清了一个大多数人看不见的事实------你就算做到 BGP 对等互联,对网络资源的访问权仍然被少数中心化服务商锁死。IP 地址你从来不"拥有",只是在向 ARIN 交年费租用。

于是他问了那个问题:

我们手里的设备算力已经极其强大,为什么我们仍然只能充当大厂的"消费者",而不是彼此直连的"对等节点"?

这篇文章我不想写成读后感。我想借他的框架,把"自组网到底该选哪条技术路线"这件事算清楚------因为三条主流路线(Meshtastic / MeshCore / Reticulum)的差异,本质上是三个可以用数字和拓扑说清的工程决策,不是口味问题。

结论先行

如果你只想知道该选哪条,四条:

  1. 小圈子(3~7 人徒步 / 活动协调)→ Meshtastic。 开箱即用,但它用的是洪泛,大规模公共 Mesh 从设计上就不成立。
  2. 本地社区固定部署 → MeshCore。 它有了真路由、支持 64 跳,但 Companion/Repeater 二分架构让"Mesh"退化成星形-树形混合拓扑,且客户端闭源 + 付费功能------对"离网备用"这个用途是硬伤。
  3. 想要一张能生长、能互通、能抗审查的网络 → Reticulum。 它不是应用,是网络栈:把"物理介质"从协议里拿掉,LoRa / Wi-Fi / 以太网 / 互联网隧道可以混在同一条路由里。
  4. Reticulum 现在最大的短板是部署门槛------没有独立嵌入式固件,中继节点要额外挂一台树莓派。这一条我在下面用功耗和成本算给你看,它为什么对山顶节点是决定性的。

一、先算清楚:LoRa 凭什么能当自组网的物理层

选物理层不能靠感觉,得算。LoRa 和 Wi-Fi 的参数差异是数量级的:

特性 LoRa (Sub-GHz) Wi-Fi (2.4/5 GHz)
频段 免许可 Sub-GHz(各国不同) 免许可 2.4/5 GHz
功耗 极低(收发 mA 级) 较高
传输距离 数公里(视距可达 10km+) 数十到数百米
带宽 极低(kbps 级) 高(Mbps~Gbps)
穿透力 强(Sub-GHz 特性) 弱

关键认知:LoRa 不是为了替代 Wi-Fi 或 5G,而是承载那些"不需要高带宽、但需要高可靠 + 远距离 + 抗审查"的场景------消息、位置、广播、应急。

这里必须把"带宽极低"这个描述量化,否则后面对比没有尺度。LoRa 的空中速率取决于扩频因子(SF)和带宽(BW),常见组合的标称速率大致在这个量级:

复制代码
SF7  / BW125kHz  →  ~5.5 kbps
SF9  / BW125kHz  →  ~1.8 kbps
SF12 / BW125kHz  →  ~0.3 kbps

扩展因子越高 → 传得越远、速率越低。最低档 0.3 kbps,大约相当于 300 比特每秒。 记住这个数字,后面讲"为什么高频消息在这张网上不成立"会用到。

物理层的取舍也解释了它为什么抗穿透:Sub-GHz 的波长更长,绕射能力更好,穿过建筑和植被的衰减比 2.4GHz 小得多------代价就是天线尺寸和带宽。

二、Meshtastic:洪泛策略的规模天花板(可算)

Meshtastic 是消费级 LoRa Mesh 的先行者,优点很实在:刷固件到 Heltec V3 就能组网、场景聚焦(移动消息 + 位置)、社区活跃。

但它的消息传递方式是洪泛:

css 复制代码
节点A 发送消息 → 节点B 收到 → 节点B 广播给 C, D, E
                            → 节点C 广播给 B, D, F
                            → 节点D 广播给 B, C, E
                            → ...无限扩散直到 TTL 耗尽

洪泛在 3~7 人徒步队里完全没问题------节点少,冗余转发反而是可靠性优势。但把它放到大规模公共 Mesh,会撞上一堵物理墙:每次发送,信道被全网节点重复占用。

信道拥塞是"节点数 × 跳数"的函数。节点一多、跳数一深,空中时间(airtime)被转发吃光,有效吞吐断崖式下跌。这不是软件优化能绕过去的,是 LoRa 极低带宽这个前提决定的。

再看覆盖半径。假设城市环境节点间距 2 km(LoRa 典型值),Meshtastic 默认 3 跳、可配置到 7 跳:

复制代码
3 跳  → 直径 ≈ 6 km   (勉强覆盖一个区)
7 跳  → 直径 ≈ 14 km  (远不足以覆盖一个中型城市)

Jonah 的结论很直接:

对于非常大型的公共 Mesh,Meshtastic 从设计上就是一个站不住脚的方案。

我的判断:这不是 Meshtastic "做得不好",而是它压根没想解决这个问题------它的设计目标是"小团体开箱即用"。错的是把它当成城市级基础设施来期待。

三、MeshCore:路由对了,拓扑退了一步

MeshCore 解决了 Meshtastic 最核心的问题------有了真正的路由,不再洪泛:

css 复制代码
节点A → 节点C → 节点F → 节点Z
        ↑        ↑        ↑
     中继节点  中继节点  目标节点
​
消息只沿特定路径传递,不被全网广播

两个直接收益:信道利用率大幅提升 (不再每条消息炸全频道);支持最多 64 跳(对比 Meshtastic 的 3~7 跳,覆盖半径是数量级差异)。

但 MeshCore 引入了两个新问题。

问题一:Companion / Repeater 二分架构

复制代码
Companion(伴侣节点)→ 普通用户持有,发消息用
                        ↓ 必须在 Repeater 覆盖范围内
Repeater(中继节点) → 承担网络骨干,真正做 Mesh 路由

关键在:Companion 之间不会互相中继。 这意味着 MeshCore 的"Mesh"在拓扑上更接近星形-树形混合 ,而不是真正的对等网。代价是需要预先规划和部署中继节点------组织成本和中心化倾向同时上升。

这一点很反直觉:MeshCore 在协议层 比 Meshtastic 先进,却在拓扑自由度上退了一步。对"随手组网、自动成 mesh"这个期待来说,它是退步的。

问题二:闭源客户端 + 付费功能

Jonah 对此非常尖锐:

专有软件不是灾难就绪的。依赖中心化支付处理器的软件更是如此。对于离网 Mesh 网络来说,唯一存在的意义就是完全的自由和掌控------在这种场景下,我根本不可能支持闭源方案。

我认为他说到了本质。自组网的存在理由就是去中心化 + 抗审查;如果在客户端层引入中心化商业实体,等于在应用层重建了你试图在物理层摆脱的控制结构。

他给了个很朴素的判断标准,我觉得可以直接拿来当检验题:

如果某天支付处理器宕机了、官方服务器被关闭了,你的 Mesh 还能工作吗?

一个为"离网通信"而生的系统,关键组件却依赖在线支付验证------这从设计目标上就已经背离了。

四、Reticulum:把"介质"从协议里拿掉

这是三条路线里唯一的网络栈,不是应用:

arduino 复制代码
Meshtastic / MeshCore  →  "应用"(带网络功能的消息 App)
Reticulum              →  "网络栈"(可以跑任意应用的网络层)

类比到互联网的分层:

层次 传统互联网 Reticulum 生态
应用层 Chrome, WeChat, Email NomadNet, Sideband, MeshChat
协议层 HTTP, SMTP, XMPP LXMF, LXST, RRC
网络层 IP + BGP Reticulum Stack
链路层 Ethernet, Wi-Fi, 4G/5G LoRa, Wi-Fi, Ethernet, I2P, Tor, Packet Radio...

Reticulum 的核心洞察 :物理传输介质不应该是协议的一部分。一张理想的自组网应该在 LoRa、Wi-Fi、微波、光纤、甚至互联网隧道之间无缝切换和混合路由。

scss 复制代码
     [你的手机]
         |
    Reticulum Stack
    /    |     \
  LoRa  Wi-Fi  互联网隧道
  (本地) (局域网) (连接远程Mesh)
    \    |     /
   同一张网络 → 同一套路由 → 同一个地址空间

它文档里有句话把这个设计哲学说得很准:

在传统网络中,混合不同传输介质通常需要网关、转换层和精细配置。Wi-Fi 网络不能原生地与分组无线电网络互通。Reticulum 将异构性视为核心前提。

异构连接:三个能落地的场景

  1. 本地 Mesh 互联:明尼阿波利斯的 LoRa Mesh 可以通过互联网隧道与芝加哥的 LoRa Mesh 互通。将来若有人架了城市间微波直连,路由会自动切到更优路径。
  2. 跨国频率桥接 :中国 LoRa 用 470--510 MHz、美国 915 MHz、欧洲 868 MHz------Reticulum 只需在边界放一个双频节点(同时接两张不同频率的子网),两个网络就能互通,不需要中心化桥接服务器。
  3. 渐进式建设 :不用一步到位。先用两台 Heltec V3 在 470MHz 组一个两人的 Mesh;某天朋友在隔壁小区也组了一个,两个网络检测到彼此时自动合并。

全局地址空间:不需要 ARIN 的身份证

Reticulum 每个节点有一个由加密算法保证唯一性的全球地址,不需要 IANA/ARIN 这类中心机构分配。含义是:不同网络绝不会地址冲突,合并时也不用重新编号。

css 复制代码
传统 IP 网络合并:
网络 A (192.168.1.0/24) + 网络 B (192.168.1.0/24)
  → 地址冲突!需要 NAT 或重新规划
​
Reticulum 网络合并:
网络 A + 网络 B → 自动发现 → 交换路由表 → 无冲突 → 即时互通

这一点呼应了开头 Jonah 关于"IP 地址只是租用"的判断:地址空间的权威性,从机构手里转移到了密码学手里。

五、Reticulum 的阿喀琉斯之踵(用功耗算给你看)

Jonah 很诚实地指出了 Reticulum 当前最大的短板:没有独立的嵌入式固件。

scss 复制代码
Meshtastic 节点部署:
Heltec V3 + Meshtastic 固件 → 独立运作,太阳能供电,丢在山上就行
​
Reticulum 节点部署:
Heltec V3 (RNode 固件,纯 Modem) + 树莓派 (运行 Reticulum)
  → 需要额外计算平台

这不是"多带个小板子"那么轻。对一个完全靠太阳能的远程山顶中继节点,功耗是决定性变量。把 Jonah 给的数字列出来:

项 Meshtastic 方案 Reticulum 方案
主控 Heltec V3(含 LoRa) Heltec V3(RNode 纯 Modem)
额外计算平台 不需要 树莓派 Zero 2W 或同级
硬件成本 ~35 元(模组) ~35 + ~150 元
运行功耗 ~0.5 W 3~5 W
太阳能板面积 基准 需相应放大数倍

功耗从 0.5 W 跳到 3~5 W,是六到十倍。太阳能供电的节点,电池和板子面积是按功耗线性放大的------十倍的功耗意味着十倍的采光面积和储能。对山顶节点,这直接决定"能不能部署得起来"。

好消息是 microReticulum (ESP32 移植版)在持续开发。一旦成熟,现有 Meshtastic 硬件可以直接刷固件迁移,零成本------这条路走通了,Reticulum 最大的门槛就消失了。

六、三条路线对照

把上面的分析收成一张表:

维度 Meshtastic MeshCore Reticulum
定位 消息应用 消息应用 网络栈
转发方式 洪泛 路由寻址 路由寻址
跳数上限 3(可配 7) 64 依介质
拓扑自由度 高(但规模上不去) 中(需预部署中继) 高
异构介质 需桥接 需桥接 原生支持
地址分配 --- --- 密码学全局地址
开源程度 开源 客户端闭源 + 付费 开源
中继硬件 单板即可 单板即可 需加计算平台
中继功耗 ~0.5 W ~0.5 W 3~5 W
最佳场景 徒步 / 活动协调 本地社区固定部署 长期基础设施

七、为什么"协议设计"比"功能堆砌"重要一百倍

这是读完最大的启发,我觉得值得单独说。

Meshtastic 的问题不是"功能不够多",而是在设计之初就把 "LoRa 消息应用"和"网络协议"耦合在了一起。一旦你要接 Wi-Fi 链路或互联网隧道,就必须"桥接";Reticulum 不需要桥接,因为它从一开始就不假设底层是某种特定介质。

这就是架构决策的复利效应:早期抽象层次的选择,会在规模扩大十倍时,变成几十倍的复杂度差异。

三条可迁移的:

  1. 抽象层次选早了是债,选对了是资产。 "介质不应该属于协议"这个决定,让 Reticulum 天然支持异构;反过来,耦合了介质的系统每加一种链路都要补一层桥。
  2. 用"灾难就绪"当检验题。 一个为离网而生的系统,如果关键组件依赖在线服务,就从设计目标上背离了。这条检验对任何基础设施都适用。
  3. 把约束量化再讨论。 "LoRa 带宽低"是废话,"0.3 kbps"才能支撑决策;"Reticulum 门槛高"是感觉,"0.5 W → 3~5 W"才是取舍依据。

八、我的结论

Jonah 在结尾说了句我很认同的话:

我们作为爱好者,在网络效应真正锁定人们到某个平台之前 ,有一个独特的机会去采纳最好的方案。

三条路线不是"谁更好"的关系,是三个不同层级的答案:

  • Meshtastic ------ 小团体徒步、活动协调,开箱即用,作为理解 LoRa 物理层的入门工具很合适;
  • MeshCore ------ 本地社区消息传递有优势,但闭源是硬伤;
  • Reticulum ------ 面向未来的全球自组网基础设施,代价是当前部署门槛高。

如果你的野心不只是"和三个朋友爬山时发消息",那该关注的是 Reticulum。

最后回到那个问题:为什么我们的设备算力这么强,却只能当消费者?因为在基础设施的层面,"能力"不等于"主权" 。你有再强的终端,只要网络层是租来的,你对它的控制就是租来的。Mesh 网络把这个问题推到了最底层:

如果明天你所在地区的互联网被切断,你还能和身边的人通信吗?

这不是杞人忧天。自然灾害、政治动荡、网络攻击------历史上每一种都导致过区域性断网。自组网提供的不是"更好的体验",而是最后的冗余。

相关推荐
科技重器1 小时前
京东方中央研究院推出高灵敏度电化学生物传感器芯片,为疾病早筛提供“芯”守护
人工智能·物联网
乐讯通物联网服务商4 小时前
智能心电监护仪接入物联网:低功耗远程监测方案设计与实践
物联网·物联网卡·智能心电监护仪
用户0510122572964 小时前
RGA(二)——RK3588 的核拓扑与能力差异
linux·嵌入式
用户0510122572964 小时前
RGA(一)——基础知识
linux·嵌入式
用户0510122572964 小时前
RGA(三)——实宽高、虚宽高与对齐约束
linux·嵌入式
燕卫博5 小时前
SSD201 BSP 开发教程
嵌入式·bsp·ssd201
一直C5 小时前
【嵌入式 ARM 驱动开发】PWM 脉宽调制原理与 GT9147 电容触控屏驱动开发详解
嵌入式硬件·lcd·嵌入式·arm汇编·imx6ull·cortex-a7
haliu6 小时前
【FHE 同态加密】我们如何实现同态加密推理(十四):为什么 `RESULT=PASS` 不是判据(纯 C11 · 零依赖)
人工智能·嵌入式·c·fhe·推理引擎·c11·边缘推理·同态加密推理
jianqiang.xue18 小时前
【CStackGUI 实战】深色主题终端:app.dark 默认深色 + 顶层命名样式表 + 运行时切换
单片机·嵌入式·cstackgui·c语言gui·可视化拖拽