流媒体分析之webrtc之rtcp

news2024/12/24 8:53:24

TCP作为RTP控制协议,对于弱网下音视频质量和会话控制具有重要的作用。

1. RTCP Header

V:RTCP的版本号,一定等于2;
P:如果设置,填充位表示数据包包含末尾的附加填充八位字节,不属于控制信息,但包含在长度字段中;
FMT:反馈消息类型,并根据PT类型的不同而含义不同。比如当PT=200时,表示ReportBlock的个数;当PT=205时,表示反馈包的类型,1:NACK丢包重传,15:TWCC拥塞控制
PT:负载类型,详细请看下表
length:此数据包的长度(以32位字节为单位减去1),包括Header和任何填充。

2、RTCP Payload

 RTCP 主要涉及到 3 个 RFC 文档

  • RFC3550 → SR/RR/BYE/APP/SDES
  • RFC4585 → RTPFB/PSFB
  • RFC3611 → XR

3.RTCP发送端报告(SR)

官方文档:RFC 3550 - RTP: A Transport Protocol for Real-Time Applications

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
header |V=2|P|   FMT   |   PT=SR=200   |             length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         SSRC of sender                        |
       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
sender |              NTP timestamp, most significant word             |
info   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |             NTP timestamp, least significant word             |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         RTP timestamp                         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                     sender packet count                       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                      sender octet count                       |
       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
report |                 SSRC_1 (SSRC of first source)                 |
block  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1    | fraction lost |       cumulative number of packets lost       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           extended highest sequence number received           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                      interarrival jitter                      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         last SR (LSR)                         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                   delay since last SR (DLSR)                  |
       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
  • FMT:在SR中,FMT表示后面跟的report block个数,可以是0个(只发送流),也可以是多个。
  • SSRC of sender:同步源标识符,SR数据包的发起者的编号
  • NTP timestamp:64位无符号整型,表示该SR报文发送的时刻的系统NTP时间;
  • RTP timestamp:32位无符号整型,表示该SR报文发送的时刻的RTP时间,RTP时间戳初始值是随机的,是相对时间,加到最大值后会翻转从0开始;
  • packet count:发送端发送的包总的个数;
  • packet octet:发送端发送的总的字节数;
  • report block相关参数和RR一致,放后面介绍。

3、RTCP接收端报告(RR)

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
header |V=2|P|   FMT   |   PT=RR=201   |             length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                     SSRC of packet sender                     |
       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
report |                 SSRC_1 (SSRC of first source)                 |
block  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1    | fraction lost |       cumulative number of packets lost       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           extended highest sequence number received           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                      interarrival jitter                      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         last SR (LSR)                         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                   delay since last SR (DLSR)                  |
       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
  • FMT:在RR中,FMT同样表示后面跟的report block个数
  • SSRC of sender:同步源标识符,RR数据包的发起者的编号
  • SSRC_1:接收报告块中的信息所属的源的SSRC标识符
  • fraction lost:丢包率,表示来自源 SSRC_n 的 RTP 数据包在上一个 SR 或 RR 包被发送后丢失的部分,表示为一个定点数,二进制点位于字段的左边缘。
  • cumulative number of packets lost:丢失数据包的累积数量,表示自接收开始以来丢失的来自源SSRC_n的RTP数据包的总数。
  • extended highest sequence number received:接收到的扩展最高序列号,低16位表示接收到的RTP包最大序列号,高16位表示RTP包序列号翻转次数。
  • interarrival jitter:到达间隔抖动,指RTP数据包到达间隔时间的统计方差估计值。
  • 计算公式如下:
  • 定义到达间隔抖动值:J,定义偏差值:D,
  • 如果Ri是数据包i以RTP时间戳为单位的到达时间,Si是数据包i的RTP时间戳,那么对于两个数据包i和j,D可以表示为
  • D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)
  • J(i) = J(i-1) + (|D(i-1,i)| - J(i-1))/16
  • 增益参数1/16 提供了良好的降噪比,同时保持了合理的收敛速度
  • LSR:最后接收的SR包里的NTP时间戳,只截取了中间的32bit。如果还没有收到SR,则该字段设置为0。
  • DLSR:自最后接收SR包以来到发送RR包之间的延迟,以 1/65536 秒为单位

4.RTCP RTP Feedback

作为WebRTC RTCP消息中的一种,RTP Feedback包含的内容很多,所以这里单独介绍。
在RTCP Header中,这类消息的负载类型Payload Type=205,反馈消息类型FMT如下:

FMTNameLong NameDescriptionReference
1NACKGeneric negative acknowledgement丢包重传请求RFC4585
3TMMBRTemporary Maximum Media Stream Bit Rate Request临时最大媒体流比特率请求RFC5104
4TMMBNTemporary Maximum Media Stream Bit Rate Notification临时最大媒体流比特率通知RFC5104
7TLLEITransport-Layer Third-Party Loss Early Indication传输层第三方丢失早期指示RFC6642
8ECNExplicit Congestion Notification显式拥塞通知RFC6679
15TWCCTransport Wide Congestion Control传输宽拥塞控制draft-holmer-rmcat-transport-wide-cc-extensions-01

4.1.丢包重传请求(NACK)

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|  FMT=1  |     PT=205    |          length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  SSRC of packet sender                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  SSRC of media source                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            PID                |             BLP               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • PID:数据包ID, 指丢失的RTP包的序列号。
  • BLP:丢失数据包的位掩码,表示从PID开始往后16个RTP包是否有丢失。如果第i位为1,则说明序列号为PID+i的RTP包丢失,若未丢包该位为0。

4.2 临时最大媒体流比特率请求(​TMMBR)

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|  FMT=3  |     PT=205    |          length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  SSRC of packet sender                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  SSRC of media source                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | MxTBR Exp |  MxTBR Mantissa                 |Measured Overhead|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • MxTBR Exp:指数
  • MxTBR Mantissa:系数
  • Measured Overhead:测量的平均数据包开销值(以字节为单位)
  • 说明:TMMBR用于流控,接收方向发送方请求按指定的最大比特率传输数据流,通常用于网络抖动情况下保证VOIP通信的流畅性(临时降低质量)。最大比特率 = 系数 * 2^指数。

4.3 临时最大媒体流比特率通知(TMMBN)

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|  FMT=4  |     PT=205    |          length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  SSRC of packet sender                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  SSRC of media source                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | MxTBR Exp |  MxTBR Mantissa                 |Measured Overhead|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

说明:此反馈消息用于通知TMMBR消息的发送者已收到一条或多条TMMBR消息

4.4 传输层第三方丢失早期指示(TLLEI)

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|  FMT=7  |     PT=205    |          length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  SSRC of packet sender                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  SSRC of media source                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              PID              |             BLP               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • PID:数据包ID, 指丢失的RTP包的序列号。
  • BPL:丢失数据包的位掩码,表示从PID开始往后16个RTP包是否有丢失。如果第i位为1,则说明序列号为PID+i的RTP包丢失,若未丢包该位为0。

4.5、显式拥塞通知(ECN)

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|  FMT=8  |     PT=205    |          length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  SSRC of packet sender                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Extended Highest Sequence Number                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | ECT (0) Counter                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | ECT (1) Counter                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | ECN-CE Counter                | not-ECT Counter               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Lost Packets Counter          | Duplication Counter           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Extended Highest Sequence Number:扩展最大序列号,表示此报告相关的最大 RTP 序列号。
  • ECT (0) Counter :
  • ECT (1) Counter:
  • ECN-CE Counter:
  • not-ECT Counter:
  • Lost Packets Counter:
  • Duplication Counter:

4.6 传输宽拥塞控制(TWCC)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|  FMT=15 |    PT=205     |           length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     SSRC of packet sender                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      SSRC of media source                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      base sequence number     |      packet status count      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 reference time                | fb pkt. count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          packet chunk         |         packet chunk          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.                                                               .
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         packet chunk          |  recv delta   |  recv delta   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.                                                               .
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           recv delta          |  recv delta   | zero padding  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • base sequence number:此反馈中的第一个RTP包序列号
  • packet status count:本次反馈包含的RTP包的总数
  • reference time:表示参考时间,以64ms为单位
  • feedback packet count:反馈数据包计数,用于接收方检测反馈包是否有丢失
  • packet chunk:数据包块,记录RTP包的到达状态,记录的这些RTP包序列号通过base sequence number计算得到
  • recv delta:对于每个“已收到数据包”的状态,也就是收到的RTP包,在recv delta列表中添加对应的的到达时间间隔信息,用于记录RTP包到达时间信息。通过前面的reference time以及recv delta信息,我们就可以得到RTP包到达时间。

5WebRTC RTCP XR

RTCP扩展报告(XR)用于补充RTCP 的发送方报告 (SR) 和接收方报告 (RR) 数据包的报告块中的六个统计信息。

ValueNameNameDescriptionReference
1RRTReceiver Reference Time接收方参考时间rfc3611#section-4.4
2DLSRDelay since the last Sender Report自上次发送方报告以来的延迟rfc3611#section-4.5

        5.1  接收方参考时间(RRT)

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|reserved |   PT=XR=207   |             length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              SSRC                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     BT=4      |   reserved    |       block length = 2        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              NTP timestamp, most significant word             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             NTP timestamp, least significant word             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • block type(BT):块类型,该报告块为常数4
  • block length:块长度,2*32bit
  • NTP timestamp:64bit的NTP系统时间

    5.2 自上次发送方报告以来的延迟(DLSR)

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|reserved |   PT=XR=207   |             length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              SSRC                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     BT=5      |   reserved    |         block length          |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   |                 SSRC_1 (SSRC of first receiver)               | sub-
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
   |                         last RR (LRR)                         |   1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   delay since last RR (DLRR)                  |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   |                 SSRC_2 (SSRC of second receiver)              | sub-
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
   :                               ...                             :   2
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
  • block type(BT):块类型,该报告块为常数5
  • block length:块长度,3*32bit
  • last RR(LRR):最后接收的RRT包里的NTP时间戳,只截取了中间的32bit。如果还没有收到RRT,则该字段设置为0。
  • delay since last RR(DLRR):自最后接收RRT包以来到发送DLSR之间的延迟,以 1/65536 秒为单位

接收方发送RTCP-XR RRT后,发送方在下次的RTCP中携带RTCP-XR DLSR,可以使接收方估算出网络的RTT参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于jsp+mysql+ssm影视爱好者论坛交流系统-计算机毕业设计

项目介绍 设计一个电影学习交流社区,使对电影的学生可以方便的进行交流。同时,通过此课题使学生熟悉网站搭建流程和方法。 意义:此课题实现后,可以为喜欢电影的学生提供一个交流学习的平台,提高学生学习兴趣。同时&am…

想提前躺平的程序员,这10个网站收好了!

我们的口号是:搞钱!搞钱!再搞钱!程序员想兼职但是不知道该上哪找? 为大家整理了7个程序员最常用的接私活平台,希望对你有帮助!记得点赞收藏,先码后看!1、程序员客栈 程序…

基于jsp+mysql+ssm游戏爱好者论坛交流设计-计算机毕业设计

项目介绍 本论坛是一个面向爱好游戏的玩家提供一个交流分享游戏攻略、视频、图片以及娱乐互动,让游戏玩家展示自己最真实的心声!论坛提供注册、登陆、发帖、回复、搜索等功能。用户可以利用论坛进行网上约伴、分享装备属性及其获得方法,进行账号交易等,…

5 - 线程池 Java内置的线程池 - 异步计算结果(Future)

前面介绍 ExecutorService 线程池接口的时候,其中,提交任务的方法 submit() 的返回值就是Future接口类型的。 我们刚刚在学习java内置线程池使用时,没有考虑线程计算的结果,但开发中,我们有时需要利用线程进行一些计算…

2022年牙科医疗行业研究报告

第一章 行业概况 1.1 牙科医疗概念及现状 牙科医疗行业是指以牙科医疗消费为基础,集合了牙科医疗服务、职业牙医教育培训、牙科医疗器材研究开发生产、市场策划、宣传、投资、经营、管理等于一体的医疗产业链。由于牙科疾病的特点,牙科医疗产业在具有一…

iOS扫码一图多码原生处理AVCaptureSession

文章目录前言正文1.定位二维码的位置2.扫码、解析总结前言 业务中一直有扫码的需求,这次说需要扫多个码(详细一点是一图多码),有点东西的。 第一点:怎么做:拿到手第一反应是有没有什么库可以直接调用的&am…

VSCode远程连接免密登录

配置了VSCode远程连接服务器,但每次打开project都需要重新输入密码,比较麻烦,所以下面就介绍一下如何免密码登入 在上一篇blog里面配置好VSCode远程连接服务器之后按照如下操作。 步骤如下: 在windows端: 1、winR打…

softmax原理性质解析并python实现

Softmax原理 Softmax函数用于将分类结果归一化,形成一个概率分布。作用类似于二分类中的Sigmoid函数。 对于一个k维向量z,我们想把这个结果转换为一个k个类别的概率分布p(z)。softmax可以用于实现上述结果,具体计算公式为: 对于k…

【数集项目之 MCDF】(一) 控制寄存器 control_register

写在前面 本项目为MCDF数据整形器设计,所有的参考代码见我的github https://github.com/SuperiorLQF/verilog_ALL/tree/master/MCDF 其中设计的参考文档见github文件中的MCDF修订版.docx文件。选择的工具链是Vscode & iverilog & gtkwave,相关工…

前端框架 Nuxt3 Vue3 SSR 总结

目录 一、Nuxt3安装 二、路由 1、普通路由 2、动态路由 3、获取路由参数 4、路由跳转标签 5、路由跳转api 三、静态资源 四、常用标签 1、title标签、useHead的API 五、公共模板布局 1、默认布局 2、自定义公共模板 3、动态自定义布局 六、插件 七、中间件 …

【QString 函数学习篇】

【QString 函数学习篇】【1】UI设计布局【2】QChar | setAlignment |【3】sprintf | asprintf | setNum | number |【4】toInt | toUpper [十进制->十六进制 | 十进制->二进制]【5】clear | append【6】二进制->十六进制 | 二进制->十进制【7】prepend【8】strimme…

[附源码]Python计算机毕业设计SSM基于的餐厅管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

(十二)Vue之列表渲染

文章目录基本列表遍历数组遍历对象遍历字符串遍历指定次数key的原理虚拟DOM中key的作用用index作为key可能会引发的问题如何选择keyVue学习目录 上一篇:(十一)Vue之条件渲染 基本列表 在vue里基本的列表渲染可以使用v-for指令 v-for指令: …

Reactor手册

Flux Flux 是一个发出0-N个元素组成的异步序列的Publisher,可以被onComplete信号或者onError信号所终止。 Flux.just("Hello", "World").subscribe(System.out::println);// fromArray(),fromIterable(),fromStream()Flux.fromArra…

K8s 核心组件介绍

目录前言一、控制平面组件1.1 kube-apiserver1.2 etcd1.3 kube-scheduler1.4 kube-controller-manager1.5 cloud-controller-manager二、Node 组件2.1 kubelet2.2 kube-proxy2.3 Container Runtime前言 一个完整的 K8s 集群由一组节点(node)服务器组成&…

组队-蓝桥杯

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 作为篮球队教练,你需要从以下名单中选出 11 号位至 55 号位各一名球员,组成球队的首发阵容。 每位球员担任 11 号位至 55 号位时的评分如下…

关于人脸检测和人脸关键点检测的详解(涉及Opencv 和Dlibd)

关于人脸识别,大家入门opencv,最常见的是用opencv级联分类器器里面的函数进行人脸的识别(当然里面包含很多各种物体的分类器,大家可以一一测试),今天我们来练一下关于人脸识别的级联器。 1,ope…

数据仓库(DW)、数据湖、数据中台的关系

一句话说明:数据中台是一套体系,既不是工具又不是存储,它可以包含数据湖和数据仓库。 数据仓库 数据仓库是一个面向主题的、集成的、随时间变化但信息本身相对稳定的数据集合,用于支持管理决策过程。其本质就是完成从面向业务过程…

[附源码]Python计算机毕业设计Django-菜篮子系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

一文学会jenkins pipline自动化构建

01 Pipeline流水线基本语法 首先创建 在jenkins上创建一个pipeline的流水线任务 新建ITEM–>选择流水线 基本pipeline脚本结构 pipeline {//agent 表示要执行的节点,any表示任意节点 agent any //stages表示任务执行时的所有步骤集合 stages { /…