摘要

  • RFC 2103 把移动性拆成两个相互独立的结果:端点定位符可能改变,网络拓扑也可能改变;两者都可以单独发生。
  • 拓扑稳定时,动态关联模块可以维护新的端点—定位符绑定;一旦整个网络移动,地图与路由器也必须参与,单独的绑定已无法说明可达性。

RFC 2103 的四格移动矩阵里,最关键的一格乍看之下甚至有些反常:定位符没有改变,拓扑却改变了。

设想一个网络节点移动后换了邻居,但仍处在同一个 Nimrod 包含节点之内。它承载的端点可以保留原定位符。查询因此可能返回一条最新且完全正确的端点—定位符关联。然而,进入这一区域的数据包仍需要新的连通性描述。关联是真的,从旧地图算出的路径却仍然可能是错的。

这正是模块化设计的边界。

有用的抽象,以及它精确的边缘

RFC 1992 为 Nimrod 定义了不带拓扑含义的端点标识符,以及带拓扑含义的定位符。端点标识符稳定,定位符表达节点处于分层地图的什么位置。更换服务商的例子把后果说得很清楚:如果一个组织进入地图的另一部分,却继续携带旧的分层定位符,层级路由就会被迫扁平化。

RFC 2103 把这种分离改写成移动性模型。论文提出“动态关联模块”(DAM),负责维护端点和定位符之间不断变化的关系。DAM 不是指定部署的一台服务器,也不是换名后的 DNS;它只是比较不同方案的抽象。功能可以存在于数据库、归属代表或分布式路由器状态中。

如果一台主机从一个节点移动到另一个节点,而地图本身不变,这个抽象非常干净。DAM 记录新的定位符;Nimrod 可以被主动通知,也可以在发现旧位置不可达后再查询。身份稳定,位置改变,路由系统仍然在同一张图上运行。

RFC 2103 明确列出四种情形:

  1. 定位符与拓扑都不变;
  2. 定位符改变,拓扑不变;
  3. 定位符不变,拓扑改变;
  4. 定位符与拓扑都改变。

只有第二种完全符合“重新绑定即可”的诱人叙事。第三种里,DAM 根本没有东西可更新,但 Nimrod 的地图必须更新;第四种里,两边都要工作。

网络移动让抽象发生泄漏

论文举出的例子包括组织搬迁,以及火车、飞机、汽车和船舶中的无线网络在不同小区间移动。网络节点一旦换了邻居,图就变了;若它移出原包含节点,承载设备的定位符也可能同时改变。

RFC 2103 警告,Nimrod 的常规拓扑更新机制很可能按较慢变化优化。快速移动网络可能需要向适当的节点代表发送专门更新,使进入节点的数据包能够按照新拓扑转发。论文没有规定这种交互,只记录了要求和后果:与端点移动相比,网络移动可能迫使 DAM 与 Nimrod 路由系统或路由器发生更紧密的耦合。

这不是一个次要实现细节。它改变了“成功观测”究竟能证明什么。一条新鲜的端点—定位符记录只回答一个问题:当前哪个定位符与这个端点关联。它不回答节点的邻居是否改变、相关地图是否都收到了变化、路径是否重新计算,更不回答已安装路径是否还能用。

把智能放在哪里

RFC 2103 按关联由谁维护、重新映射在哪里发生,把方案分为三类。

由源端查询中央数据库的方案最简单,也可得到直接路径;但单点故障会让全部信息消失,论文认为它不足以成为 Nimrod 长期可扩展的答案。

分布式维护关联、在归属代表处重新映射的方案与 Mobile IP 相似。源端继续向归属位置发送,归属代表再把流量转向当前位置。它不要求改造源端和普通路由器,控制信息也较集中,还能让通信对端不知道移动端点的当前位置。但代价是三角路由、对归属代表可达性的依赖,以及未被证明的未来扩展性。论文称它或其改型为“可行的第一步”,并没有把它写成终局。

第三类把状态放进路由器。复杂度和参与的 Nimrod 实体都会增加,却更适合拓扑发生变化的第三、第四种情形。区域边界路由器可以利用靠近移动位置的最新映射状态;路径在分层结构允许的范围内可能更直接,但代价正是让路由架构进入了 DAM 原本想隔离的问题。

Mobile IP 是机制,不是结论

论文随后适配了 RFC 2002 的机制。移动主机发现外部代理或取得临时定位符,发送注册请求,让归属代理缓存移动绑定。发往归属身份的数据包可以被截获、封装并送往外部代理;外部代理解封装后查询访客列表。

这条链条中的每个动词都不能省略。注册可以获准,随后转发仍可能失败;缓存的外部代理定位符可能过时;数据包可以到达外部代理,但若访客列表没有端点条目,RFC 2103 规定应丢包并向归属代理返回错误。间接路径能够工作,不等于它是最优路径;请求通过认证,也不等于移动用户获准加入访问网络。

论文还把离线移动与在线移动分开:前者在移动时拆掉会话,后者让会话持续。它认为在线支持很重要,却没有证明这个第一步方案能让某个既有传输会话不断线。扩展性也没有实测。论文给出一个抽象极限:响应时间为 o 的跟踪系统,在接入点变化频率超过 1/o 时必然跟不上;但它没有部署测量来给出 o。

文献边界

RFC Editor 记录和 IETF Datatracker 记录把 RFC 2103 保留为 1997 年 2 月的 Informational 文档。正文明确说明它不是协议规范,并把认证细节、注销、快速拓扑更新、预测路由以及 DAM 与路由器的具体交互留在范围之外。

这种不完整正是历史意义所在。Nimrod 尝试把身份、位置和路由放在不同概念层。RFC 2103 指出了这些层不再对齐的精确位置:移动一个端点,可以用新关联描述;移动一个网络,则改变了让这条关联具有意义的那张图。

Lu Heng 的运行代码优先以及最小初始规范、未来本地决策与自愿采用在这里仅作为明确披露的现代分析镜头,而非历史证据。文档可以定义一个薄接口,也可以把未来选择留给本地;运行事实仍要等实现更新状态、路由器接受更新、路径真正工作并被运营者观测后才出现。他的现实层与符号层之分进一步收紧了证据边界:关于定位符的符号记录不能替代可执行的连通性。

因此,可靠结论必须很窄:当前绑定只证明当前绑定。若要声称移动成功,还必须分别保存拓扑版本、更新传播、路径决策、转发状态、授权、会话观测和投递结果;这些事实从来不在绑定本身之中。

来源