为什么需要探测带宽?
答:拥塞控制的AIMD算法,加法增加太慢了,网络很好的时候,需要很快探测到最大带宽。
一 ProbeBitrateEstimator
我看其它文章说,是根据RTCP Feedback transport-cc的ACK应答,来计算码率。
具体说明下是怎么计算的,因为应答是不带长度的。
1 发送时,记录RTP包信息,比如发送时间,长度等,插入历史队列中。
2 收到应答,在历史队列中查找序列号,统计出相关的长度。

//根据RTCP Feedback transport中的ACK应答的序列号来计算的
absl::optional<DataRate> ProbeBitrateEstimator::HandleProbeAndEstimateBitrate(
const PacketResult& packet_feedback) {
...
//packet_feedback.sent_packet.size怎么计算的
cluster->size_total += packet_feedback.sent_packet.size;
...
DataSize send_size = cluster->size_total - cluster->size_last_send;
DataRate send_rate = send_siz

文章详细介绍了网络带宽探测的过程,包括ProbeBitrateEstimator如何利用RTCPFeedback的ACK应答来计算码率,ProbeController如何控制探测数据的发送,以及AcknowledgedBitrateEstimator如何基于ACK应答估计实际带宽。通过这些机制,系统能快速适应网络条件变化,实现高效的拥塞控制。
最低0.47元/天 解锁文章
729

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



