跳到主要内容

4.7.2. Burst Metrics (突发指标)

4.7.2. Burst Metrics (突发指标)

突发是高比例的数据包丢失或由于延迟到达而被丢弃的时间段。就值 Gmin 而言, 突发被定义为最长序列, 该序列 (a) 以丢失或丢弃的数据包开始, (b) 不包含 Gmin 个或更多连续接收 (且未丢弃) 的数据包的任何出现, 以及 (c) 以丢失或丢弃的数据包结束。

非正式地说, 间隙是数据包丢失和/或丢弃率低的时间段。正式地, 间隙被定义为以下任何一种: (a) 从 RTP 会话开始到第一次突发之前最后一个接收到的数据包的接收时间的时间段, (b) 从最后一次突发结束到报告时间或 RTP 会话结束 (以先到者为准) 的时间段, 或 (c) 两次突发之间的时间段。

为了确定 RTP 会话开始或结束附近的丢失或丢弃数据包是在间隙内还是突发内, 假设 RTP 会话之前和之后至少有 Gmin 个接收到的数据包, 并且报告时间之后至少有 Gmin 个接收到的数据包。

间隙具有这样的属性: 间隙内的任何丢失或丢弃数据包前后必须至少有 Gmin 个接收且未丢弃的数据包。这给出了间隙内的最大丢失/丢弃率: 1 / (Gmin + 1)。

建议 Gmin 值为 16, 因为它导致与良好质量相对应的间隙特性 (即, 低数据包丢失率, 丢失数据包之间至少 16 个接收数据包的最小距离), 因此很好地区分了好质量和差质量时期。

例如, 1 表示接收到的数据包, 0 表示丢失的数据包, X 表示在以下覆盖 64 个数据包的模式中丢弃的数据包:

11110111111111111111111X111X1011110111111111111111111X111111111
|---------gap----------|--burst---|------------gap------------|

突发由上面指示的 12 个数据包组成, 从丢弃的数据包开始, 以丢失的数据包结束。第一个间隙从会话开始开始, 第二个间隙在报告时结束。

如果数据包间隔为 10 ms, Gmin 值为建议值 16, 则突发持续时间为 120 ms, 突发密度 0.33, 间隙持续时间 230 ms + 290 ms = 520 ms, 间隙密度 0.04。

这将导致报告值如下 (有关语义和如何计算这些值的详细信息, 请参见字段描述):

loss rate             12, which corresponds to 5%
discard rate 12, which corresponds to 5%
burst density 84, which corresponds to 33%
gap density 10, which corresponds to 4%
burst duration 120, value in milliseconds
gap duration 520, value in milliseconds

burst density: 8 位 自接收开始以来突发期内丢失或丢弃的 RTP 数据包的分数。此值表示为定点数, 二进制点在字段的左边缘。通过将突发期内丢失或丢弃的数据包总数 (不包括重复数据包丢弃) 除以突发期内预期的数据包总数, 将除法结果乘以 256, 将最大值限制为 255 (以避免溢出), 并取整数部分来计算。此字段必须填充, 如果没有接收到数据包, 则必须设置为零。

gap density: 8 位 自接收开始以来突发间间隙内丢失或丢弃的 RTP 数据包的分数。该值表示为定点数, 二进制点在字段的左边缘。通过将间隙期内丢失或丢弃的数据包总数 (不包括重复数据包丢弃) 除以间隙期内预期的数据包总数, 将除法结果乘以 256, 将最大值限制为 255 (以避免溢出), 并取整数部分来计算。此字段必须填充, 如果没有接收到数据包, 则必须设置为零。

burst duration: 16 位 自接收开始以来发生的突发期的平均持续时间, 以毫秒表示。每个时期的持续时间根据标记该时期开始和结束的数据包来计算。它等于结束数据包的时间戳加上结束数据包的持续时间减去开始数据包的时间戳。如果实际值不可用, 则必须使用估计值。如果没有突发期, 则突发持续时间值必须为零。

gap duration: 16 位 自接收开始以来发生的间隙期的平均持续时间, 以毫秒表示。每个时期的持续时间根据标记前一次突发结束的数据包和标记后续突发开始的数据包来计算。它等于后续突发数据包的时间戳减去前一次突发数据包的时间戳加上前一次突发数据包的持续时间。如果实际值不可用, 则必须使用估计值。在接收开始时发生间隙的情况下, 前一次突发数据包的时间戳与前一次突发数据包的持续时间之和被接收开始时间替换。在接收结束时发生间隙的情况下, 后续突发数据包的时间戳被接收结束时间替换。如果没有间隙期, 则间隙持续时间值必须为零。