摘要
- SIP 注册服务器可以在成功的 REGISTER 响应里返回有顺序的 Service-Route;用户代理可以把它与地址记录绑定,并在未来发起请求时作为预置 Route 使用。
- 这份响应只能证明注册服务器当时提出了什么。它不能证明终端后来采用了什么、名称解析到了哪里、每个代理是否真正收到请求、服务是否执行或会话是否成功。
RFC 3608 于 2003 年 10 月作为标准轨道文件发布,定义的是 SIP 扩展及其状态周期,并不是对任何运营商现网的观测。
控制面最容易制造一种错觉:只要系统记住了路线,旅程就仿佛已经发生。数据库里保存着两个代理 URI,注册状态显示绿色,运维界面于是写下“请求经由家庭服务代理”。但 RFC 3608 交付的只是一个可供终端选择的路线向量,不是未来事件的录像。
协议的边界写得很清楚。终端完成注册后,可以保存成功响应中的 Service-Route。下一次成功刷新会更新这份状态;新响应没有该字段,旧状态就应清除;注册被拒绝或到期且不再续期,终端也应丢弃它。换言之,路由不是一个永恒属性,而是某次注册的版本化产物。
因此,任何可靠记录都必须带上注册实例:地址记录、Contact、Call-ID、CSeq、字段顺序、响应时间、有效期、认证结果以及后续刷新关系。把 URI 从这些上下文中摘出来,留下的只是一串曾经可能有效的名字。它没有能力说明现在仍然有效,更没有能力说明已经被使用。
终端是否使用这条路线也是本地决定。RFC 3608 允许终端在未来的初始请求中把 Service-Route 作为预置 Route,并要求保留顺序;它没有规定终端每次都必须使用。终端还可能先经过访问网络的出口代理,再进入注册服务器所了解的家庭域。规范明确承认,本地路由、默认出站代理与服务路由如何组合取决于实现。
这也解释了为何不能把 RFC 3608 与 RFC 3327 的 Path 混为一谈。Path 是 REGISTER 向注册服务器前进时由代理累积的记录,帮助家庭侧未来找到注册联系点。Service-Route 则由注册服务器交给终端,供终端发起请求时选择家庭域服务。一个主要服务于入向联系,一个主要服务于出向请求;相似语法不等于相同证据。
Route 与 Via 同样不能互相冒充。Route 是尚待网络处理的路由意图。代理转发事务时才增加 Via,用于标识响应返回路径。某个代理名字出现在 Route,不能证明它收到过请求;某个地址出现在 Via,更接近转发事实,却仍不能证明代理内部的计费、日志、策略或其他服务模块确实执行。
名字与机器之间还隔着解析。RFC 3263 规定 SIP 如何结合 DNS 和传输规则选择目的地。TTL 会过期,优先级和权重会改变,首选节点可能故障,客户端可能尝试备用地址,本地策略也可能覆盖选择。同一个 Service-Route URI 在不同时间可以落到不同地址、端口或传输方式。只保存 URI,就丢失了真正让请求落地的决策。
后来的机制能增加证据,却不会倒写历史。RFC 5626 的出站流和流令牌可以维持终端与边缘之间的可达状态;RFC 5923 的连接复用可以减少新连接。这些记录能够证明某条传输关系存在,却不能自动证明被调查的那一个请求使用了它。桥梁开放,不等于某辆车已经过桥。
注册响应的完整性保护也有明确范围。RFC 3608 提醒,中间代理可能篡改或插入 Service-Route,并建议使用认证和完整性机制。验证成功,可以增强“这组值来自注册服务器且未被改写”的结论。它不能预先认证几分钟后的 DNS 结果、网络故障、本地选择或服务执行。
正确的证据链应拆成六层。第一层是配置回执:完整 REGISTER 响应、注册身份、向量顺序、发布者、时间、有效期与完整性结论。第二层是意图回执:后来请求在本地策略组合之后实际携带的 Route。第三层是解析回执:DNS 答案、TTL、选中的地址、端口、传输和备用尝试。
第四层是穿越回执:预期节点在相近时间看到同一事务,并能以事务标识关联顺序。第五层是服务回执:代理内部预期策略的版本、执行结果和错误。第六层是结果回执:SIP 响应、对话状态,以及必要时的媒体或应用结果。RFC 7989 的 Session-ID 可以帮助跨节点关联,但无法替不存在的日志作证。
分层之后,故障才不会互相顶替。注册服务器可能发错向量;终端可能保留过期状态;DNS 可能选到不可用实例;代理可能正确转发却漏掉服务;信令可能成功而媒体失败。这五类问题都可能发生在“REGISTER 200 成功”的背景下。一个绿灯不能统治其他事实。
这不是要求无限保存数据。运营者可以缩短保留期、采用抽样、使用假名标识并限制访问。原则只是:保存了哪一层,就只能声称哪一层。若只留下注册响应,就只能证明当时的建议,不得把它包装成后来运行路径。
RFC 3608 的价值正在于克制。它规定一套最小共同语义,让不同实现交换一条有序的服务路由建议;未来是否采用、如何解析、怎样转发,仍由运行代码和本地环境决定。问题不在协议,而在组织把控制面的记忆升级成对运行现实的权威。
最准确的结论很窄:某个注册服务器在某个时刻,为某个地址记录返回了一组服务路由。要证明后来的旅程,必须拿出后来的证据。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
