摘要

  • 草案允许 LoST 客户端轮询有序 ChangeSet 流,用部分位置字段找出可能受影响的本地记录,并以未来 asOf 时刻提前验证替代记录。
  • 未来响应只反映服务器答复当时掌握的计划,必须标记 NO-CACHE,在生效前仍可能改变,也不能取代真正联系服务时的当下 LoST 查询。
  • 变更公告、流连续性、未来验证、本地准备、生效执行、呼叫时映射、位置传递、PSAP 路由和应急结果必须分别留存收据。

同一栋楼在午夜前后可以有两个正确地址

一块区域并入城市,或者一条街在某日零时更名。建筑物没有移动,接入网络没有移动,终端也没有移动;发生变化的是市政位置记录及其生效时间。午夜前的 A3 字段可能正确,午夜后的另一个 A3 值也可能正确。位置服务器必须在正确时刻退役旧行、启用新行,不能让应急终端落在两套描述之间。

当前草案试图解决的正是这种“已知会发生、但尚未发生”的变化。RFC 5222 已经允许客户端向 LoST 请求市政地址验证,并以位置与服务标识查找服务 URI;RFC 5139 则定义 PIDF-LO 中包括 A3 在内的市政位置元素。草案增加三类接口:轮询变更 ID、按 ID 取得 ChangeSet,以及查询接口版本。

ChangeSet 含有标识符、生效时刻和一组部分位置。客户端将这些字段与本地记录匹配,找出可能受影响的行,再为未来时点构造并验证替代记录。它还可以用 revalidateAfter 接收下一次重验建议。这些机制降低了盲目全库重验的成本,也给切换留下准备时间。

但准备时间不是结果证明。

草案要求把未来答复当作不可缓存的认识

asOf 的语义非常克制。服务器回答的是:以本次查询时它所知道的计划,到目标时刻预计什么会有效。新的预定或非预定变化随时可能进入系统,所以对同一未来时刻进行两次查询,结果可能不同。未来 mapping 必须写成 expires="NO-CACHE";客户端不得假定它会保持不变,真正联系服务时仍应当时使用 LoST。

这条限制很重要。它阻止一个规划接口把自己包装成未来事实的公证人。文档可以描述计划,运行系统才能证明执行。

NO-EXPIRATION 也不能被理解成“永久有效”。它只表示服务器目前不知道会影响该结果的预定变化,并且不建议特定重验时间。没有已知计划,不代表不会发生临时调整、数据纠正或权威源更新。草案即使加入轮询,仍建议周期性重验。

RFC 6443 解释了为何必须守住这条边界。应急呼叫从位置取得开始,经过 LoST 映射、位置传递、代理与应急路由,最后才到 PSAP。RFC 6881 还要求端点在呼叫时尝试刷新位置和 LoST 映射,并在无法及时刷新时采用明确的缓存降级。一次提前验证没有替其中任何一环签字。

ChangeSet 游标记住的是一台服务器的历史位置

客户端保存上次收到的最后一个 ChangeSet ID,后续要求服务器返回其后的变更。ID 字符串本身未必可以排序;服务器知道“下一项”是什么。新客户端或者丢失游标的客户端,只能请求服务器仍保留的全部变更。

Security Directorate 评审由此提出一组尚未封口的问题:ID 是否只在单一服务器范围内有效;不同服务器出现碰撞怎么办;客户端是否必须为每个服务器维护独立队列;多个权威对同一日期的状态意见不一致时如何处理。评审还指出,正文要求后续轮询带上旧 ID,但 OpenAPI 描述似乎没有明确给出该参数。

这些问题说明游标的证明范围。它可以说明“这个客户端在这台服务器保留的变更流中走到了哪里”,却不能自动证明所有权威已经达成一致、没有事件被遗漏、客户端本地匹配完全,或切换任务已执行。

Operations Directorate 评审把类似问题指向 XML Schema。草案保留 RFC 5222 的 Relax NG 为权威,同时提供更易用但非权威的 XML Schema,并建议后续扩展以它为基础。若两种验证工件的地位不同,通过方便的那个就不能在没有等价性证据时被当成通过权威规范。

用九张收据完成一次切换

第一张收据来自公告:服务器是谁、ChangeSet ID 是什么、生效时刻是什么、哪些部分位置命中了哪些本地记录。第二张收据记录流连续性:服务器作用域、前一游标、返回序列、保留窗口,以及是否发生缺口、倒退或重置。

第三张是未来验证:查询时刻、asOf、精确输入记录、返回 mapping 与 NO-CACHE。第四张是本地准备:新行如何生成、哪些冲突被发现、谁审核、何时排入任务。第五张才是生效执行:旧行实际退役、新行实际激活、失败项被隔离、回滚包仍可用。

到了真正呼叫发生时,证据链需要重新开始。记录当前取得的位置、当下 LoST 映射、PSAP URI、服务边界、实际传递的位置对象或引用、代理与 ESRP 路径、PSAP 接收、呼叫建立,以及后续响应。前面八个步骤都正确,也不能替第九步宣布成功。

这是基础设施最小权力原则:每个系统只为自己拥有的状态作证。LoST 服务器可证明它给出的映射,LIS 可证明其激活记录,代理可证明转发,PSAP 可证明接收。连续工作流不应让上游借用下游尚未发生的事实。

当前仍是评估中的 Internet-Draft

在研究截止时,IESG 议程把第 18 版列入 9 月 24 日 telechat;Datatracker 显示 IESG Evaluation、3 个 DISCUSS、仍需更多表决位置,并保留 IANA XML 注册问题。安全与运营评审都给出“有问题”。这不是已批准 RFC、部署报告或互操作结果。

本文不预测投票,也不把评审意见写成最终结论。无论文档之后如何变化,运营问题都不会消失:每张收据究竟证明什么,下一个状态由谁控制,到了生效时刻又留下了什么可验证事实?

来源

一手记录:当前 Internet-Draft、IESG 议程、Security Directorate 评审、Operations Directorate 评审、RFC 5222、RFC 5139、RFC 6443和 RFC 6881。