摘要
- HELLO 只在本地接口上广播且不被转发,它让节点形成一跳、两跳和 MPR 选择记录;TC 再把必须公布的选择者链路传播到全网。两者构成的是分层记录,不是对物理网络的连续观测。
- 可问责的路径结论必须保留从 HELLO 来源、有效期、MPR 计算、TC 接收和拓扑版本,到内核路由、下一跳、数据包及应用确认的完整证据链,不能让任何一个控制状态越权代表后续结果。
两张地图来自不同的观察面
一个节点收到邻居发来的 HELLO,于是更新链路元组。它看到自己的地址被对方标记为对称邻居,也看到对方声称的其他对称邻居。由此,本节点建立一跳邻居和两跳邻居视图,并计算哪些一跳邻居足以覆盖全部“严格两跳”节点。
这是一张本地地图。HELLO 不会被继续转发,所以它证明的是某个接口在某个时刻接受了某个邻居声明。即使状态机将链路标记为 symmetric,也不能把这个词扩大为“无线介质正在被持续双向测量”。元组在有效期内保留,正是因为协议允许观察之间存在间隔。
随后,入选 MPR 的节点发送 Topology Control 消息。TC 至少公布选择本节点为 MPR 的那些邻居链路,经过其他 MPR 扩散。远端节点接受这些声明,形成自己的拓扑集合,再结合本地邻居信息计算路由。
这是第二张地图。它不等于第一张地图的完整复制,而是经过选择、压缩、传播和时效处理后的共同记录。控制面的价值恰恰来自这些转换;风险也来自把转换后的记录误称为现实本身。
RFC 3626 于 2003 年 10 月发布,把 Optimized Link State Routing Protocol 定义为面向移动自组织网络的 Experimental 协议,并非互联网标准。它的目标不是消灭不确定性,而是在主动链路状态协议中减少广播开销。理解这一点,才能既尊重运行代码,也不把运行代码生成的记录当成物理事实的作者。
MPR 覆盖的是报告出来的两跳邻域
MPR 必须从对称一跳邻居中选择。所选节点的一跳邻域合起来,应覆盖本节点所有对称的严格两跳邻居。集合越小,通常控制开销越低;但最小集合并非必要条件。MPR_COVERAGE 还可以要求一个两跳节点尽可能被多个 MPR 覆盖。
这个条件非常具体:它在当前接受的邻接图上寻找转发机会。它没有预留带宽,没有检测干扰,没有确认队列,也没有观察应用。两条候选路径可能共享同一个射频故障、供电故障或软件缺陷。覆盖数增加,代表模型中的机会数增加,不等于独立交付证据增加。
节点还会通过 HELLO 自报 willingness。WILL_NEVER 不可被选,WILL_ALWAYS 会进入初始选择。该字段可以体现电量或资源策略,但它仍是声明,不是独立测量。谁配置它、依据什么、何时失效、改变了哪些选择,都应进入审计记录。
因此,MPR 选择的正确表述是:“基于这组在这些时刻仍有效的 HELLO 记录,算法选出了能覆盖已知严格两跳邻域的候选中继。”少一个限定词,结论就可能从控制面机会滑向业务保证。
有效期让旧观察继续有用
OLSR 不是每个瞬间重建世界。链路、邻居、两跳、选择者和拓扑元组都有时间边界。保持时间需要长于刷新间隔,以承受正常丢包,避免单个 HELLO 或 TC 未到就让拓扑剧烈抖动。
这是一种合理的稳定性设计,同时也是明确的证据债务。物理条件可能先变,记录后过期。此时“有效”仅表示还符合协议的时间合同,不表示刚刚重新观测。
序列号解决的是另一类问题。消息序列与 ANSN 帮助节点判断新旧,即使计数器回绕也能比较。它能拒绝乱序旧信息,却不能创造缺失的现实观察。最新记录仍可能已经老化,只是比另一个记录更新。
如果仪表盘只显示“邻居正常”或“拓扑有效”,团队很容易通过延长保持时间换取更稳定的绿色界面。正确的展示应同时给出最后观察时间、剩余有效期、预计刷新、连续缺失次数以及依赖该元组的路由。稳定和新鲜是两个指标,不能相互冒充。
TC 的“更新”不等于物理世界更新
TC 中的 Advertised Neighbor Sequence Number 用来标识公布邻居集合的变化。移除链路时必须增加,添加时应增加。接收者用它决定哪个集合更新。
但是 ANSN 的权威只限于记录顺序。某个数值较新的 TC 能覆盖旧版本,不代表其中每条链路在读取时仍然存在。节点可能在 TC 发出后移动,控制消息也可能经历抖动、丢失和不同路径。
消息大小还可能使完整的公布集合分成多个 TC。规范要求在刷新周期内完成发送。只抓到其中一包,不能把它当作全量拓扑。证据系统需要把同一来源、版本和时段的片段合并,记录接收接口、有效期、接受决定及最终拓扑版本。
这也是“记录与现实”区分最容易被忽略的地方。TC 可以诚实记录:“来源节点在这一版本公布了这些选择者链路。”它不能自己证明来源的 HELLO 判断正确,也不能证明传播期间所有节点形成一致地图。
duplicate set 只证明本节点见过
广播会产生副本。OLSR 用来源地址和消息序列等信息维护 duplicate set,避免重复处理或转发同一控制消息。
命中记录意味着本节点在相应时间内见过该消息身份。它不是全网确认。一个分支可能收到并记录,另一个分支可能中断;一个节点可能按规则处理却不再次转发;下游节点可能因此保留不同的拓扑。
单看重复计数甚至可能得到反向结论:副本很多,看起来网络活跃,但关键边界仍未到达。需要在代表性节点上关联接收、重复判断、MPR selector 关系、转发决定和下游接收。没有重复记录同样含义不明,可能是新消息、丢失,也可能是旧条目已经过期。
协议优化可以删除预计不必要的传输,运营证据却不能删除验证这个预计所需的观察。
路由表是控制面的指令
RFC 3626 明确说明,OLSR 本身不转发数据包;它维护底层操作系统的路由表,并假定系统按路由转发。这句话划清了权力边界。
拓扑计算正确,不等于内核提交成功;内核有路由,不等于下一跳解析成功;邻居接收控制广播,不等于愿意转发单播数据;数据抵达主机,也不等于应用接受请求。RFC 3626 的安全讨论甚至明确列出一种情形:节点正确转发广播控制消息,却不转发单播数据。
因此,“route installed”只能是中间收据。完整链条应记录使用的拓扑版本、计算结果、内核事务、实际活动表项、下一跳解析、接口计数、入口与出口包观察、丢失、重复、乱序、延迟,最后由应用返回独立确认。
这不是对 OLSR 的苛责。任何分布式控制系统都需要让每个观察者只为自己能看到的事实作证。
HNA 把记录送到权限边界
HNA 允许节点宣告通过非 OLSR 接口连接的外部网络。其他节点保存网关、网络地址、掩码和到期时间,并可据此增加路由。HNA 信息依靠到期删除,不像 TC 那样通过 ANSN 变化取消旧集合。
收到和传播 HNA,只能说明某个来源做出了声明。它不能证明来源有权宣告该前缀,也不能证明外部路径当前可达。即使消息签名有效,身份真实性与前缀授权仍是两件事。
跨域导入需要明确的 principal:谁拥有决定权、允许哪些来源、范围多大、何时撤回、失败如何回滚。没有这些条件,移动网络的本地记录就会越过边界,变成它无权创造的外部合法性。
消息签名不能替每条链路背书
RFC 3626 没有规定专门安全机制。它指出主动扩散会暴露拓扑,并列举无效 HELLO、TC、HNA、冒充来源、篡改、拒绝转发、错误选择 MPR 和重放等风险,因此建议使用消息认证。
规范进一步区分了整体控制消息的真实性与消息中每条链路的真实性。签名能证明某个凭据生成或保护了这些字节,不能证明每个邻居确实存在,也不能证明外部前缀授权。旧消息即使签名完全正确,仍可能被重放,所以还需要时间证据。
后续 MANET RFC 把通用消息格式、邻居发现、完整性保护和威胁分析分别发展。OLSRv2 又把 flooding MPR 与 routing MPR 分开:一个负责控制消息扩散,另一个参与路由链路通告与路径选择。这个分离不是对 RFC 3626 实现的追责,而是更清楚地告诉我们,传播成功和路由成功本来就是两个控制函数,应用结果还在它们之外。
不让记录成为现实的作者
OLSR 的工程成就,是用有限的本地信息和较少的传输形成可运行的路由。它并没有承诺让一条记录拥有所有答案。
HELLO 能证明本地收到了什么。MPR 计算能证明算法选择了什么。TC 能证明某个拓扑声明到达。内核表项能证明系统接受了什么指令。数据包与应用才能证明服务发生了什么。
领导者需要保护的不是一个更大的绿色状态,而是这些小结论之间的边界。只要每个记录不越权,自动化就能快速而可信;一旦地图开始替道路作证,控制面就会获得它从未被授予的权力。
来源
- https://www.rfc-editor.org/rfc/rfc3626.html
- https://www.rfc-editor.org/rfc/rfc3626.txt
- https://www.rfc-editor.org/info/rfc3626/
- https://datatracker.ietf.org/doc/rfc3626/
- https://www.rfc-editor.org/errata_search.php?rec_status=0&rfc=3626
- https://www.rfc-editor.org/rfc/rfc2501.html
- https://www.rfc-editor.org/rfc/rfc5148.html
- https://www.rfc-editor.org/rfc/rfc5444.html
- https://www.rfc-editor.org/rfc/rfc5497.html
- https://www.rfc-editor.org/rfc/rfc6130.html
- https://www.rfc-editor.org/rfc/rfc6621.html
- https://www.rfc-editor.org/rfc/rfc7181.html
- https://www.rfc-editor.org/rfc/rfc7183.html
- https://www.rfc-editor.org/rfc/rfc7185.html
- https://www.rfc-editor.org/rfc/rfc7186.html
- https://www.rfc-editor.org/rfc/rfc8116.html
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/on-authority-belief-and-the-internets-addressing-system/
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
