摘要

  • BMP Statistics Information TLV 01 版新增测量窗口时长、样本数、P5、P95、时间戳存在标志,以及精确到微秒的最小值和最大值观测时间。
  • 这些字段足以推翻“两个端点相同,所以中间稳定”的判断,却无法还原样本顺序、阈值驻留时间,也无法把观测时间等同于告警和行动时间。

中午,收集器收到 10,000 条路由。十五分钟后,它再次收到 10,000。旧式快照会诱使值班人员把这段时间标为稳定。但路由器可能在窗口中一度升至 15,000,又跌到 8,000,最后才回到原点。新提出的 Statistics Information TLV 可以报告最小值、最大值、平均值、中位数、P5、P95 和样本数量,也可以为两个极值附上观测时间。

这是真正的信息增益,却不是一段可以回放的十五分钟。同一组汇总字段,既可能来自一秒钟的尖峰,也可能来自十分钟的平台,还可能来自反复振荡。把十五个样本重新排列,最小值、最大值、平均值、中位数和百分位数都可以完全不变,运营含义却会彻底改变。

本文所依据的是 draft-ietf-grow-bmp-stats-informational-tlv-01。该稿于 2026 年 9 月 11 日上传,2027 年 3 月 15 日到期,是 GROW 工作组处于 I-D Exists 状态的 Internet-Draft。封面写着 Standards Track,但 Datatracker 的 Intended RFC status 为空;没有记录文档 shepherd、负责的 area director 或 telechat。拟申请的 IANA 注册表和类型仍为 TBD1。证据包中也没有实现报告、互操作测试、生产部署或实测结果。

01 版补上了窗口与分母

RFC 7854 定义了 BMP Statistics Report,但周期性仪表快照无法描述两个报文之间的过程。00 版草案已提出最小值、最大值、快照值、平均值和中位数。01 版进一步加入 32 位的 Measurement Window Duration 和 32 位的 Sample Count,新增 P5 与 P95,并把一个保留字节改为标志位。

其中 T 位表示该条目是否携带时间戳。最小值和最大值必须附带自 1970 年 UTC 起计算的秒与微秒;快照、平均值、中位数、P5 和 P95 则不得附带时间戳。样本数不仅给派生统计量提供分母,也提醒使用者:上报的最大值只是采样点中最大的一个,两个采样点之间可能出现过更高却未被观察到的值。

测量窗口也不一定等于 Statistics Report 的发送周期。事件触发报告、新会话或 peer 状态变化,都可能形成不完整或不同长度的窗口。如果同一项统计需要不同窗口,发送端必须使用不同的 Information TLV。会话建立后的首份报告可以省略该 TLV,也可能只有部分数据。

分布被保留,时间顺序被丢弃

设想每分钟取样一次,共十五次。窗口 A 有十三分钟接近 10,000,一次达到 15,000,一次降至 8,000。窗口 B 使用完全相同的数值集合,却从峰值开始、以低谷结束。两者导出的字段可以一致,但事故解释不会一致:路由增长是否先于撤回潮,恢复是否发生在处置之后,两种症状在时间上是否支持因果关系,都取决于顺序。

极值时间戳只固定两个点,无法排列其间的所有观测。P95 无法区分连续高位和多次短促冲高。Sample Count 是分母,不是序列;Measurement Window Duration 是跨度,不是驻留时间。

草案明确承认采集可以是周期式、事件式或混合式,也指出 nearest-rank 与线性插值即便处理相同样本,也可能算出不同百分位数。报文不会输出采集配置或内部方法,因此跨路由器比较需要另行保证配置兼容。不过,即使采样频率、时钟和百分位算法完全一致,分布摘要仍无法恢复已经被删除的顺序。这一限制并非方法不统一造成,而是压缩本身的边界。

一个观测时刻不是事件持续时间

对于最小值和最大值,发送端应当报告实际观测时间,而不是报文生成时间。其精度和准确度取决于路由器的时钟分辨率和校时质量。加密传输可以保护会话,却无法纠正一只错误的时钟。

如果每分钟采一次样,并在 12:08 观测到最大值,那么阈值可能在 12:07:01 被突破,也可能在 12:07:59 才被突破;它可能一秒后恢复,也可能持续到下一次采样。发送周期又引入另一层延迟:12:01 看到的异常,可能到 12:15 才抵达收集器。极值时间戳恢复的是历史定位,不是实时告警。证据时间、报文生成时间、传输时间、接收时间与运营行动时间必须分开保存。

解析器仍需完整上下文

该 TLV 必须引用有效的 BMP gauge 型 Stat Type,不得用于单调递增的 counter;接收端遇到误用时应忽略,并可记录日志。未知 Entry Type 可以依据 T 位判断长度为 10 或 18 字节后跳过。同一 Entry Type 重复出现时,第一条之后的条目应被忽略。

Stat Type 9 和 10 带有 AFI/SAFI 语义,但 Information TLV 本身并不携带地址族身份。发送端必须在同一份报告中放入相同 AFI/SAFI 的普通统计 TLV,否则收集器无法判断这个分布描述哪一个地址族。普通快照与 Information TLV 同时出现时,快照值应位于最小值与最大值之间。这是有用的一致性检查,却不能证明全部样本正确。

BMP 也不会对统计内容本身作密码学真实性保证。TLS 或 IPsec 能保护链路、认证通信方,但被攻陷的监控路由器仍可输出虚假摘要。更丰富的 TLV 还会增加报文大小和状态成本,因此限速与资源管理仍然必要。

在有后果的摘要旁保留一小段原始轨迹

Heng Lu 的最小初始规范主张支持一个克制的互操作外壳:明确所指指标、窗口、分母与常用摘要,同时允许厂商保留各自采集机制。运行代码优先原则则要求在压缩值转化为告警、变更或自动处置的地方保留可核验凭据。

对于会触发行动的阈值,运营方应保留一个有界的原始样本或事件环形缓冲区,并记录窗口起止、采样模式与频率、百分位算法、时钟来源和偏差、报文生成与收集器接收时间、配置代次以及 TLV 原始字节。在延长上报周期之前,应先用这些轨迹校验摘要告警。以上是运营建议,不是 01 版草案的规范要求。

新 TLV 能证明“没有变化”是错误结论,却不能独自解释变化的过程。在归因、计算持续时间或追究责任之前,领导者仍要取得压缩过程主动舍弃的那条序列。

来源