4.2. Duplicate RLE Report Block (重复 RLE 报告块)
4.2. Duplicate RLE Report Block (重复 RLE 报告块)
此块类型允许对源的 RTP 数据包流中的重复进行逐序列号报告。此类信息可用于网络诊断, 并提供一种替代数据包丢失作为组播树拓扑推断基础的方法。
Duplicate RLE Report Block 格式与 Loss RLE Report Block 格式相同。唯一的区别在于解释, 即信息涉及数据包重复而不是数据包丢失。在这种情况下要编码的跟踪也由零和一组成, 但这里的零表示给定序列号存在重复数据包, 而一则表示没有接收到重复。
给定序列号的重复存在是在整个报告周期内确定的。例如, 如果数据包号 12,593 到达, 然后是具有其他序列号的其他数据包, 则在报告周期后期到达的另一个编号为 12,593 的数据包计为该序列号的重复。重复不需要立即跟随该编号的第一个数据包。必须注意报告不覆盖序列号空间中 65,534 或更大的范围。
对于给定序列号, 不区分存在单个重复数据包和多个重复数据包。还请注意, 由于丢失的数据包没有重复, 因此丢失在 Duplicate RLE Report Block 中编码为一。
Duplicate RLE Report Block 具有以下格式:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT=2 | rsvd. | T | block length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| begin_seq | end_seq |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| chunk 1 | chunk 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: ... :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| chunk n-1 | chunk n |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
block type (BT): 8 位 Duplicate RLE Report Block 由常量 2 标识。
rsvd.: 4 位 此字段保留供将来定义。在没有此类定义的情况下, 此字段中的位必须设置为零, 并且必须被接收方忽略。
thinning (T): 4 位 如第 4.1 节中定义。
block length: 16 位 在第 3 节中定义。
SSRC of source: 32 位 如第 4.1 节中定义。
begin_seq: 16 位 如第 4.1 节中定义。
end_seq: 16 位 如第 4.1 节中定义。
chunk i: 16 位 如第 4.1 节中定义。