跳到主要内容

3. 解决方案 (Solution)

根据 Registered Performance Metric 请求者和审查者指南 [RFC8911], 每个指标都使用其必需特征进行规定 (例如 Identifier, Name, URI, Status, Requester, Revision, Description), 以确保不同实现和环境中的测量结果具有可比性. 这些特征注册在 IANA "Performance Metrics Registry" [IANA-PERF-METRIC] 中. 指标命名遵循 [RFC8911] 第 7.1.2 节定义的 "MetricType_Method_SubTypeMethod_... Spec_Units_Output" 约定.

本文档定义以下性能指标 (Performance Metric) 和 IPFIX Information Elements:

  +=============================+================================+
| Performance Metric | IPFIX Information Element |
+=============================+================================+
| OWDelay_HybridType1_I | pathDelayMeanDeltaMicroseconds |
| P_RFC9951_Seconds_Mean (27) | (530) |
+-----------------------------+--------------------------------+
| OWDelay_HybridType1_I | pathDelayMinDeltaMicroseconds |
| P_RFC9951_Seconds_Min (28) | (531) |
+-----------------------------+--------------------------------+
| OWDelay_HybridType1_I | pathDelayMaxDeltaMicroseconds |
| P_RFC9951_Seconds_Max (29) | (532) |
+-----------------------------+--------------------------------+
| OWDelay_HybridType1_I | pathDelaySumDeltaMicroseconds |
| P_RFC9951_Seconds_Sum (30) | (533) |
+-----------------------------+--------------------------------+

表 1: IPFIX IEs 与性能指标之间的映射

假设设备上已进行时间同步, 延迟通过计算两个时间戳之间的差值得到: 一个是在 OAM 头部封装节点处通过 On-Path Telemetry 加入数据包的时间戳, 另一个是 OAM 头部转发节点和 OAM 头部解封装节点在 IPFIX Flow Record 中导出的时间戳. 借助不同的 IPFIX IE 规范, 可以导出测得路径延迟的最低值、最高值、平均值和总和.

                       On-Path Telemetry Domain
.........................................
. .
. D1 .
. x-------> .
. .
. D2 .
. x--------------------> .
. .
. D3 .
. x----------------------------------> .
. .
(H1) -----> (R0) ------> (R1) ------> (R2) -------> (R3) -----> (H2)
Host 1 Encapsulating Transit Transit Decapsulating Host 2
Node Node 1 Node 2 Node
. .
. .
.........................................

图 1: 延迟用例: 数据包从 Host 1 流向 Host 2

在图 1 所示的用例中, 使用 On-Path Telemetry 导出延迟指标时, 节点 R1 使用 IPFIX 为同一条 Flow 导出延迟 D1, 节点 R2 导出延迟 D2, OAM 头部解封装节点 R3 导出总延迟 D3.

该解决方案支持直接在 OAM 头部转发节点和解封装节点上计算延迟指标 (minimum, maximum, and mean), 从而允许在 Flow Record 内进行聚合. 这会降低导出带宽和 Collector 上的处理需求. 为在本地计算这些指标, Exporter 的 Metering Process 必须执行逐包缓存和处理, 在根据 Flow Aggregation [RFC7015] 计算平均延迟时尤其如此. 一种计算开销较低的替代方法是导出延迟总和, 让 Collector 使用数据包计数通过简单除法计算平均值.

相反, 如果 OAM 头部转发节点或解封装节点上未执行延迟处理, 则每个数据包都必须作为单独的 Flow Record 导出, 并包含时间戳信息, 如 [IPFIX-ALT-MARK] 所规定. 然后, Collector 必须计算延迟指标并相应地重建聚合后的 Flow Record.