本节摘要:沿版本演进讲路由——树状路由按地址转发、网状按需路由以路由发现建路自愈、增强版的集中式汇聚路由与源路由匹配汇报型流量。给出三代算法的建路方式、开销模型与适用场景,并用一个完整案例走一遍路由发现。本节是网络层收尾,也是"演化历史"主调在单层协议内最完整的缩影。
树状年代的转发逻辑极简:收到帧,看目标地址落在自己哪个子节点的地址块内就转给谁,否则转给自己的父节点。零路由发现、零路由表维护,代价是路径完全被树的形状锁死——哪怕隔壁路由器一跳可达,帧也得沿树枝爬上去再爬下来,形成经典的"之"字形浪费。更糟的是上一节说的脆性:一枝断,一段地址不可达。它今天仍有一块残留阵地——休眠终端设备的上行帧和某些低功耗场景没有更好的选项,但作为主干机制它已随增强版退场。
按需路由(本质是自组网按需距离矢量法的变体)解决"之"字路与脆性。源设备想发给一个不知路径的目标时,广播一个路由请求帧;请求像水波一样在网络里扩散(每个收到请求的路由器记录来路并继续转发);到达目标(或知道路径的中间设备)后,目标沿请求来路单播回一个路由应答,沿途每个路由器据此建立指向目标的路由表项。双向往返完成,源与目标之间出现一条按链路代价评估出的路径。
自愈的机制藏在超时与重试里:路径失效表现为发送后等不到链路层确认,源设备收到失败报告后可发起路由错误通知相关节点、并重新发起路由发现换路。网络拓扑变化不需要全局重算——只有正在使用的路径才需要维护,这正是"按需"的含义,也是低功耗网络养得起网状路由的原因。
一次完整的路由发现(概念时序): 源 A ──路由请求(目标 D)──▶ 邻居 B 记录"A 可经我反向到达 D 方向"继续泛洪 邻居 C 同样转发,请求像水波扩散 目标 D 收到多条请求(经 B 一条 · 经 C 一条),比较路径代价 目标 D ──路由应答──▶ 沿最优请求的来路单播返回(经 B) 沿途 B 建立表项:去 D 走下一跳 D 源 A 收到应答,路由表项:去 D 走下一跳 B 此后 A 到 D 的数据帧沿这条路径逐跳转发,每跳独立确认 任一跳反复失败 → 路由错误帧回传 → 源重新发现换路
按需路由有个隐性假设:流量是"任意点到任意点"。但现实传感网的流量高度不对称——几十上百个传感器全部朝一个网关汇报,网关偶尔下发命令。增强版为这种"多对一"模型加了两件套。集中式汇聚路由:网关周期性广播路由记录请求,全网每个路由器在转发该广播时记下"我是经谁转发的",形成一棵朝网关汇聚的树——任何节点发给网关的帧都沿这棵树上行,一次广播换来全网到网关的单播路径,免去了几十个节点各自发起的按需发现。源路由:网关下行时把完整路径(途经节点序列)直接写进帧头,中途节点只管照单转发,不需要维护任何下行路由表——把"记住怎么回去"的负担从几百个路由器转移到网关一个。

路由解决了连通,但不解决容量。多跳网络每一跳都占用信道,五跳路径对信道的占用约是单跳的五倍(同信道前提下),高密度部署时"跳数深"与"节点密"会叠加放大争用。工程上控制网络直径的经验做法:路由器布点让多数端到端路径不超过若干跳(典型部署目标是个位数到十余跳);超过这个量级时优先加路由器分片分区,而不是指望路由算法硬扛。另一个边界是路由震荡——链路质量在阈值附近抖动时,路径反复重建白白消耗能量,现代实现普遍在链路代价里加滞回与平滑来抑制。
💡 关键直觉:路由算法的演化方向不是"更聪明",而是"更省"。每减少一次泛洪、每少维护一张表,都是在替电池设备省电。评估任何路由机制的的第一指标是它带来的控制面开销,而不是路径最优程度。
网络层至此完整。第四章上移一层,看帧到达设备之后,如何被分拣给正确的应用——端点、绑定与分组。
现代网络里三种机制并存,排障时先判断"这对通信走的哪一代"。判断线索:目标是网关的流量走汇聚树(看路由表里的汇聚标志);点对点流量(设备直控设备)走按需路由;休眠终端的简单上行可能残留树状路径。定位机制后再看对应机制的故障面:汇聚树出问题查网关的广播周期与链路质量;按需路由震荡查链路代价的滞回配置。把"查路由"变成"查某一代路由",是这一节能给现场工程师最实用的升级。
会。表项带生命周期,长期不用的路径到期清空,再次使用时重新发现——这是按需思想的延伸。副作用是低频通信的"第一次"总比后续慢(触发一次发现),把这类偶发慢帧误判为网络劣化是常见误报。
| 流量形态 | 走哪代 | 理由 |
|---|---|---|
| 传感器到网关汇报 | 汇聚加源路由 | 一次广播全网建树 · 免逐对发现 |
| 设备点对点直控 | 按需网状 | 任意目标按需建路自愈 |
| 休眠终端简单上行 | 树状残留 | 无路由能力的最简路径 |
配套判断:跳数放大信道占用(五跳约五倍占用);链路质量阈值附近抖动会致路径震荡 · 现代实现加滞回抑制。
补路由维护的工程细节:链路失败的发现与恢复。网状网络的路径不是一劳永逸的——环境变化(门关上、家具挪动)会让链路劣化。发现机制有二:被动(转发失败——下一跳没确认,重试几次后判定断链)与主动(周期性的链路质量探测,邻居表的 LQI 持续走低即预警)。恢复动作是重新发起路由发现找新路径——恢复期间的消息靠重传缓冲或应用层重试兜底。工程上的两个观察:其一,路由振荡的抑制——两条路径质量接近时反复切换会浪费带宽,滞回设计(新路径显著优于旧路径才切换)是必要的;其二,父子关系与路由的耦合——终端设备换父节点(它的"路由"只有一跳)的路由发现机制与路由器不同(孤儿扫描),两者的维护节奏不同。给大规模部署者的建议:路由行为的数据(重发现次数、平均跳数)要在网关侧长期统计——跳数上升与重发现频率上升是环境劣化的早期信号,比设备离线告警早几周发现,给了从容处理的时间窗口。