这篇是接收端带宽评估的最后一篇,在上一篇中分析了在接收端基于丢包的带宽估计处理方法;
带宽估计后的值一方面会反馈到编码器控制编码码率,同时也会反馈到节拍器中;
pacing、pacer、pace,顾名思义,有节奏、按照节奏发送报文的含义,一般我们也称作平滑发送。
pacing是拥塞控制中重要的一个环节,它受拥塞控制输出的估计带宽、拥塞窗口大小控制,按照节奏(一般是5ms)保证报文匀速地发送到网络中,可以避免短时间大量报文造成网络情况恶化。
引用位置:https://zhuanlan.zhihu.com/p/184924220
1. 初始化
1.1 PacedSender初始化及数据包
在RtpTransportControllerSend的构造函数中初始化了pacer_也就是PacedSender类;
在CreateRtpStreamSenders中通过transport->packet_sender()获取到pacer,然后赋值给 RtpRtcp::Configuration,这个作为参数传递给ModuleRtpRtcpImpl的构造函数;最后是在RTPSender中调用InsertPacket把每次要发的包加入到队列;
图如下:
本文深入探讨WebRTC中的PacedSender,它负责平滑发送数据包,防止网络恶化。文章介绍了PacedSender的初始化、包处理、pacer的启停、码率更新以及固定频率发送数据的机制,阐述了如何通过pacing实现拥塞控制,以优化网络传输质量。
订阅专栏 解锁全文
970

被折叠的 条评论
为什么被折叠?



