摘要

  • TGREP 解决的是域内网关如何向 Location Server 注册电话路由的问题。
  • 网关以 Send Only 模式工作,只发送自身可达性,不学习其他网关路由,也不负责呼叫选路。
  • TotalCircuitCapacity 是配置上限,不是为下一通电话预留的电路。
  • AvailableCircuits 是动态采样,只能用于网关与其 peer LS 之间,不能向外传播。
  • 为降低 UPDATE 负载而采用的时间窗口,会让显示值与决策时刻产生距离。
  • CallSuccess 是历史计数,不是下一次呼叫的承诺。
  • 是否成功由报告网关按断开原因自行映射;忙线而未接通也可按惯例计为成功。
  • 计数器回绕、采样频率、分母和流量构成都影响比率含义。
  • consolidation 合并同一目的地的多条路由,aggregation 则把不同目的地摘要化。
  • 下游看到的候选路由可能是接收器生成的投影,并非任何单一网关的原始陈述。
  • IPsec 能证明受保护字节来自某个 peer,却不能证明容量、授权或呼叫结果为真。
  • 注册、测量、转换、选择、信令、PSTN 处置与业务结果必须分别留痕。

比率领先时,最重要的问题还没问

路由代理收到三条可用路线。第一条公布的总容量最大,第二条剩余电路最多,第三条过去一段时间的 CallSuccess 比率最好。系统必须选一个,于是排序器给出答案。

这个答案只说明选择过程完成了。它没有说明第三条路在此刻仍有电路,没有说明历史样本与当前目的地的流量结构相同,也没有说明所谓“成功”就是人接起电话。RFC 5140 的价值在于把这些输入标准化;它从未把预测变量升级为事实收据。

TRIP 原本负责在提供商之间传播电话路由,却没有规定域内网关如何把路由注入系统,也没有规定呼叫进入一个 POP 后应选哪个网关。TGREP 补上这一段:网关向 Ingress LS 报告,接收器可以整理后交给 Egress LS,再进入 TRIP。每一次跨层都产生新责任人。

发送者甚至不执行最终选择

TGREP 网关在 OPEN 阶段声明 Send Only。建立会话后,它用 UPDATE 发送完整可达性和相关属性。它没有等同于 TRIP Adj-TRIBs-In 或 Loc-TRIB 的数据库,也不运行路由选择。

更值得注意的是,Established 状态下收到 UPDATE 时,网关会静默丢弃该消息而继续保持 Established。绿色会话灯不能证明网关学到了接收器的任何信息,更不能证明它接受了新的运行指令。

网关为每个 peer LS 维护一个 Adj-TRIB-GW-Out。RFC 5140 明确把这个数据库如何填充留在范围之外,并指出可能来自手工配置。因此,第一张收据不应只是“UPDATE 已签名”,而应包含配置来源、操作者或系统、变更时间、适用目的地以及撤回条件。

容量字段各自走在不同的时钟上

TotalCircuitCapacity 描述行政配置的容量,是某一瞬间可能承载的总呼叫数上限。它变化较慢,可以在收到它的 LS 之外继续传播。同一 ITAD 内对相同前缀进行聚合时,还可以把各路由的总容量相加。

AvailableCircuits 则描述某条路由当时剩余的电路。它会随着呼叫变化,可以参与逐呼叫选路,但不能聚合,也绝不能随路由向外传播。它只属于网关与负责管理该网关的 peer LS。

协议建议采用措施减少频繁更新,并用足够大的时间窗口形成有用统计。代价很直接:越平滑的数值,越不是决策那一秒的库存。显示“还有 12 条电路”却不显示观测时间、窗口、更新门槛和呼叫到达速度,会把工程折衷伪装成实时事实。

总容量也不是现实保障。维护会下线 trunk,策略会限制可用集合,不同组件的相加不代表它们在一套条件下可互换。上限是规划数据;剩余值是采样;两者都不是预留。

CallSuccess 的分子是一项本地政策

这个属性由两个四字节计数组成:同一窗口内被认为成功终止的呼叫数,以及尝试呼叫总数。样本越多,统计可能越稳定;计数器回绕时需要重置对齐,接收器也必须足够频繁地取值,避免丢失显著性。

真正的边界藏在“成功”二字里。网关根据呼叫结束时的 disconnect cause 做判断。RFC 5140 举例说,呼叫达到 Alerting 后因为被叫不可用或忙而没有接通,按惯例仍可算成功;因电路或资源不可用而断开,则按惯例算失败。精确映射由报告网关自行决定。

这项自由使指标能贴近本地运维,也使跨网关比较必须附带语义。一个网关测量“已到达被叫网络”,另一个界面却可能让读者理解为“双方已经通话”。若没有原因码映射、时间窗口、分母、计数周期和业务流量构成,比率只是一枚可排序但不可解释的标签。

RFC 的措辞保持了克制:它可用于提高成功终止的概率。它不能证明下一通电话会怎样,而且该属性不能聚合、不能传播。

接收器把多份证词变成一份新陈述

Ingress LS 可以同时接收多个网关对同一目的地的路由。consolidation 把这些路由组合起来,避免可用能力在选择候选路由时丢失。RFC 的例子把两个网关的 Carrier 值做并集,也把不同更新中的前缀集合做并集。

但不同属性和地址族究竟怎样合并,留给接收器实现。之后还可能进行 aggregation:它不是合并同一目的地,而是把不同目的地摘要成更短的路由信息。顺序是先 consolidation,再 aggregation。

因此,下游的“408 可达”可能是一个投影:Carrier 来自网关 A 和 B 的并集,前缀由多条输入拼成,摘要又隐藏了细分目的地。这个投影可以正确而有用,但必须保留组成图——原始网关、会话、属性、时间、合并规则、被排除值和版本。否则,集体能力会被误读为一个网关同时承诺了一切。

受保护的会话也不会替字段作证

RFC 5140 沿用 TRIP 的 IPsec 安全思路。AH 或 ESP 可以提供来源认证、完整性和抗重放,ESP 还可提供机密性。它们保护的是 peer 之间的传输。

它们无法验证手工配置的路由是否仍有效,无法判断发送者是否有权代表某个 Carrier,无法让旧的剩余容量恢复新鲜,也无法统一各网关对成功的定义。密码学回答“谁在受保护会话里发了这些字节”;业务仍需回答“这些字节有多新、适用到哪里、经过了什么转换、最后发生了什么”。

一条可审计链至少要连接:网关身份和授权范围;原始 UPDATE;观测与发布时刻;窗口、计数周期与原因码映射;接收器验证和转换;代理的策略版本与备选项;信令响应;PSTN 处置;以及组织真正要声称的业务结果。

TGREP 可以让选路更聪明。它没有让现实提前发生。

来源

  1. RFC 5140 HTML
  2. RFC 5140 文本
  3. RFC Editor 记录
  4. IETF Datatracker
  5. 文档历史
  6. RFC 5140 勘误检索
  7. IANA TRIP 参数
  8. RFC 2871:电话路由框架
  9. RFC 3219:TRIP
  10. RFC 3261:SIP
  11. RFC 4904:tel/SIP URI 中的 Trunk Group
  12. RFC 4694:号码携转参数
  13. RFC 4301:IPsec 架构
  14. RFC 4302:AH
  15. RFC 4303:ESP
  16. RFC 4306:IKEv2
  17. RFC 4835:ESP/AH 算法要求
  18. Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
  19. On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
  20. Running-Code Primacy