跳到主要内容

4.3. Packet Receipt Times Report Block (数据包接收时间报告块)

4.3. Packet Receipt Times Report Block (数据包接收时间报告块)​

此块类型允许对给定源的 RTP 数据包流的数据包接收时间进行逐序列号报告.此类信息可用于用于分发源的 RTP 数据包的组播树拓扑的 MINC 推断, 以及该树内链路上的延迟.它还可用于测量部分路径特性并为数据包抖动建模分布.

数据包接收时间以与数据包的 RTP 时间戳相同的单位表示.这样, 对于每个数据包, 可以用可比较的术语建立发送时间和接收时间.但是请注意, 由于 RTP 发送方通常将其时间初始化为随机选择的值, 因此不能期望报告的发送和接收时间之间的差异等于发送方和接收方之间的单向延迟.尽管如此, 报告的时间对于上述目的仍然有用.

对于此块中报告的每个序列号, 必须至少已接收到一个数据包.如果此块类型用于报告一系列序列号的接收时间, 其中包括丢失的数据包, 则需要多个块.如果对于给定序列号已接收到重复数据包, 并且这些数据包的接收时间不同, 则绝对不能报告除最早时间之外的任何时间.这是为了确保报告之间的一致性.

以 RTP 时间戳格式报告的时间比丢失或重复信息消耗更多的位, 并且不适合游程长度编码.鼓励使用稀疏化来限制 Packet Receipt Times Report Block 的大小.

Packet Receipt Times 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=3 | rsvd. | T | block length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| begin_seq | end_seq |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receipt time of packet begin_seq |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receipt time of packet (begin_seq + 1) mod 65536 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: ... :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receipt time of packet (end_seq - 1) mod 65536 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

block type (BT): 8 位 Packet Receipt Times Report Block 由常量 3 标识.

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 节中定义.

Packet i receipt time: 32 位 接收方接收到序列号为 i 的数据包的接收时间.数据包格式图中显示的模运算是为了允许序列号回滚.最好在链路层接口处建立时间值, 或者在任何情况下尽可能接近线路到达时间.单位和格式与 RTP 数据包中的时间戳相同.与 RTP 数据包时间戳相反, RTP 数据包时间戳可以使用标称值代替系统时钟值以传达对周期性播放有用的信息, 接收时间应尽可能反映实际时间.对于会话, 如果 RTP 时间戳是随机选择的, 则第一个接收时间值也应该随机选择, 并且后续时间戳从该值偏移.另一方面, 如果 RTP 时间戳旨在反映发送方的参考时间, 那么接收时间应该尽可能接近接收方的参考时间.