oogleongestionontrol

loss-based controller 通常在 sender 实现

delay-based controller 既可以在 sender 实现 也可以 在 receviver 实现

sender-based :实际上是 loss-based controller 的实现。

receiver-based :实际上便是 delay-based controller 在 receviver 的实现。在 2012 的版本中,暂未提供 delay-based controller 在 sender 的实现,而在 2016 的版本中进行了补充。

本文档描述了两种用于 RTCWEB 的拥塞控制方法:one delay-based and one loss-based 。

拥塞控制是共享 internet 资源的所有应用程序的需求。

为实时流媒体进行拥塞控制是一个极大的挑战,主要涉及以下原因:

本文档描述了两种拥塞控制算法,它们一起能够与使用相同拥塞控制算法(即本文描述的两种拥塞控制算法)的其他音视频流以及共享相同链路的 TCP 流提供良好的性能和合理的带宽共享。

拥塞控制系统中包含以下要素:

loss-based controller 和 delay-based controller 共同实现 拥塞控制 算法。

有两种方法可实现提出的算法:

loss-based controller 和 delay-based controller 都运行在发送端。

RTP 接收者将记录每个 RTP 包的到达时间和 transport-wide(传输范围) sequence number,它将 transport-wide feedback message 定期发送回发送者。建议的反馈间隔是每个接收到的视频帧一次,如果是纯音频或多流,则至少每 30 毫秒一次,如果需要限制反馈开销,这个间隔可以增加到 100 毫秒。

RTP 发送者将从接收到的 feedback message 获得 {sequence number, arrival time} ,并将 feedback message 所涵盖的每个包的 sequence number 映射其 send-time ,然后将 {send-time, arrival time} 喂给 delay-based controller 。同时,发送者还将根据 feedback message 中的 sequence number 计算丢包率。

依赖 TWCC 消息,接收端 通过 TWCC 消息向 发送端 反馈 一组包的到达时间,发送端根据 TWCC 消息反馈的 {sequence number, arrival time} 以及本地的 send-time 喂给 delay-based controller 计算bitrate ,并计算丢包率,最后 loss-based controller 根据 bitrate 和 丢包率 给出最终的目标 bitrate 。

delay-based controller 在发送端,但是发送端不知道 RTP 包的到达时间,因此需要接收端使用 TWCC 消息向发送端反馈 RTP 包的到达时间,以便 delay-based controller 进行带宽估计,此时带宽估计的计算量在发送端。

loss-based controller 运行在发送端,delay-based controller 运行在接收端。

丢包通过 RTCP receviver reports 发回。

发送端 将 REMB message 中的 bitrate 和 RTCP report 中的 丢包率 喂给 loss-based controller, loss-based controller 输出最终的目标码率。建议在检测到拥塞后立即发送 REMB 消息,否则至少每秒发送一次。

依赖 REMB 消息,接收端的 delay-based controller 输出一个 bitrate,通过 REMB 消息告知 发送端,发送端的 loss-based controller 根据 REMB 消息的 bitrate 以及丢包率 给出 最终的目标 bitrate 。

delay-based controller 在接收端,即基于延迟的带宽估计在接收端,通过 REMB 消息向发送端报告基于延迟的带宽估计结果。

Pacing 用于驱动 controller 计算的目标比特率。

当媒体编码器产生数据时,这将被送入 Pacer 队列。

Pacer 每隔 burst_time 间隔向网络发送一组数据包。推荐的 burst_time 是 5 ms 。一组数据包的大小被计算为目标 bitrate 和 burst_time 之间的乘积。

Delay-based control 算法可进一步拆分为 4 部分:

前置过滤 的目的在于 处理由通道中断引起的延迟瞬变。在中断期间在网络缓冲区中排队的数据包,由于与拥塞无关的原因,在中断结束后以突发方式传递。

前置过滤 的实现是 将一下子到达的多组包合并。

如果以下的两个条件之一成立,那么数据包将被合并在同一组中:

当 i > 1 时,参数组间延迟变化 d(i) 对每一组包是可用的。我们希望估算 Arrival-time model 中的 m(i) ,并使用这个估算值来检测瓶颈链路是否 over-used 。参数 m(i) 可以使用任何可用的 filter 进行估算,在此我们采用了 Kalman filter 。

arrival-time filter 输出组间延迟变化估计值 m(i), m(i) 被用于与阈值 del_var_th(i) 进行比较:若 m(i) 高于 del_var_th(i) 则被认为是 over-use 的一个指示。这样的指示是不足以让检测器向速率控制子系统(rate control subsystem)发出 over-use 的信号的。只有 在至少 overuse_time_th 毫秒内连续检测到 over-use 时,才会发出 over-use 信号。

但是,如果 m(i) < m(i-1),即使满足上述所有条件,也不会发出 over-use 信号。

类似地,当 m(i) < - del_var_th(i) 时,检测到相反的状态,under-use(over-use 的反义词)。 如果既没有检测到过度使用(over-use)也没有检测到使用不足(under-use),则检测器将处于 normal 状态。

阈值 del_var_th 对算法的整体动态和性能有显着影响。

特别是,已经有实践表明,使用静态阈值 del_var_th,由所提出算法控制的流可能会被并发 TCP 流 [Pv13] 饿死。可以通过将阈值 del_var_th 增加到足够大的值来避免这种饥饿。

原因是,通过使用较大的 del_var_th,可以容忍较大的排队延迟 (即允许较大的 m(i) 值);对于较小的 del_var_th,over-use detector 会通过生成 over-use 信号来快速对偏移估计 m(i) 的小幅增加做出反应(减少基于延迟估计的可用带宽 A_hat)。

出于这个原因,我们建议根据以下动态方程改变阈值 del_var_th(i):

Rate control 被分为两部分:

只要没有检测到拥塞,两者都旨在增加对可用带宽 A_hat 的估计,并确保最终匹配信道的可用带宽,并检测到 over-use。

一旦发现 over-use,由 delay-based controller 估计的可用带宽减少。通过这种方式,我们得到了可用带宽的递归和自适应估计。

在本文档中,我们假设 rate control subsystem 是周期性执行的,并且这个周期是恒定的。

rate control subsystem 有 3 个 states:Increase、Decrease 和 Hold。

subsystem 从 increase 状态开始,increase 状态将一直停留在 subsystem 中直到 over-use 或 under-use 。 在 increase 状态下,每次更新时,基于延迟估计的可用带宽都会增加(无论是 multiplicative increase 还是 additive increase,乘法还是加法取决于其当前状态,见下文)。

如果当前带宽估计看起来离收敛很远,则系统会进行乘法增加,而如果看起来更接近收敛,系统会进行加法增加。(何为离收敛很远,何为接近收敛,见下文)。

接近收敛如果当前输入的比特率 R_hat(i) 接近我们之前处于 Decrease 状态时的输入比特率的平均值,我们假设我们接近收敛。“接近”定义为围绕该平均值的三个标准差。建议使用平滑因子为 0.95 的指数移动平均线测量此平均值和标准差,因为预计该平均值涵盖了我们处于 Decrease 状态的多个场合。

远离收敛每当这些统计数据的有效估计不可用时,我们假设我们尚未接近收敛,因此仍处于乘法 Increase 状态。

如果 R_hat(i) 增加到平均最大比特率的三个标准偏差以上,我们假设当前拥塞级别已经改变,此时我们重置平均最大比特率并返回乘法 Increase 状态。

R_hat(i)R_hat(i) 是 delay-based controller 在 T 秒窗口内测量的输入比特率:

N(i) 是过去 T 秒接收到的数据包数量,L(j) 是数据包 j 的有效负载大小。 建议使用 0.5 到 1 秒之间的窗口 T。

乘法增加delay-based controller 的可用带宽估计 A_hat 。在乘法增加(multiplicative increase)期间,估计每秒最多增加 8% :

加法增加delay-based controller 的可用带宽估计 A_hat 。在加法增加(additive increase)期间,每个 response_time 间隔最多增加一半数据包的估计值。 response_time 间隔估计为往返时间加上 100 ms ( 100ms 作为 over_use 估计器和检测器反应时间的估计 ) 。

当检测到过度使用时,系统转换到 Decrease 状态,其中 delay-based control 可用带宽估计 A_hat(i) 降低到当前 接收bitrate R_hat(i) 的一个因子。

beta 通常选择在区间 [0.8, 0.95] 内,0.85 是推荐值。

当检测器向速率控制子系统发出 under-use 的信号时,我们知道网络路径中的队列正在被清空,这表明我们的可用带宽估计值 A_hat 低于实际可用带宽。 收到该信号后,速率控制子系统将进入 hold 状态,在此状态下接收端可用带宽估计将保持不变,同时等待队列稳定在较低级别——这是一种尽可能降低延迟的方法。

建议更新 A_hat(i) 的例程至少在每个 response_time 间隔运行一次。

第二部分的拥塞控制器(Loss-based controller)的决策基于 RTT ,丢包 packet loss 和 来自 delay-based controller 的可用带宽估计 A_hat 。

Loss-based controller 的可用带宽估计用 As_hat 表示。

由 Delay-based controller 产生的可用带宽估计 A_hat 仅在沿路径的队列大小足够大时才可靠。如果队列非常短,over-use 只会通过丢包可见(如果队列长,over-use 会引起 packet 在队列中排队的时间长,从而引起时延的变化,delay-based control 就能感知到 over-use),而 Delay-based controller 不会关心丢包。

每次接收到来自 receiver 的反馈(反馈 丢包 等信息))时,Loss-based controller 都应该运行:

将 Loss-based controller 的估计 As_hat 与 Delay-based controller 的估计 A_hat 进行比较。 实际发送速率设置为 As_hat 和 A_hat 之间的最小值。

我们通过注意到如果传输通道由于 over-use 而有少量丢包,如果发送者不调整他的比特率,这个量很快就会增加,那么很快就会超过 10% 的阈值并调整 As_hat(i)。 但是,如果丢包率没有增加,那么丢包可能与自己造成的拥塞无关,因此我们不应该对它们做出反应。

能够在连接上插入或删除消息的攻击者将能够破坏速率控制。 这可能使算法产生一个发送速率不足利用瓶颈链路容量,或者发送速率过高导致网络拥塞。

在这种情况下,控制信息是在 RTP 内部携带的,并且可以使用 SRTP 来防止修改或消息插入,就像媒体一样。 鉴于时间戳包含在未加密的 RTP 标头中,因此无法防止泄露,但仅基于时间信息似乎很难发起攻击。

THE END
0.徐州腾龙阁沙盘模型有限公司徐州腾龙阁沙盘模型有限公司业务类型,建筑模型沙盘,工业模型,工艺流程模型沙盘,场景复原,景观雕塑等。jvzquC41yy}/vuloqfkm0lto1
1.圆明园胜景时全景模型展‍2024年10月7日盘座是移动式结构,分体制作,组合总装;山形地貌采用拓样制作,山体有山脉、山脊、沟谷等,山形根据等比例缩放景意、建筑、植被配制,各具特色;三园水系根据亚克力树脂灯光影像结合,各有落差,采用特制灯光演示;三园建筑采用精细、先进的技术和工艺,按照现有的历史文献,充分展示我国园林建筑风格,利用第六代高分子聚合工程jvzquC41yy}/onnrkct/ew479i{dc>|
2.对话皇艺|周昊:可居住的窑/TheInhabitableKilnFig9. 黏土体块模型 Q:可以解释集体活动是怎么对应在建筑上的吗? A:建筑是生活和生产空间的并置。中心工作室被山形建筑所围护保护,分布在建筑的小工坊都面向中心。这样的空间组织形式化了烧窑作为制瓷活动高潮的重要性和中心性。建筑构成可以被单纯地解释为一个内院与它的边界。所有小的功能性空间都嵌入这个边界。相比于内部,向外部jvzq<84yyy4489iqe0ipo8hqpvkov87312?2687519;3:<864a?:7>7898
3.现代石头碎石堆3D模型下载渲染器:VR素材大小:8.09MB现代地貌山形石头3D模型 113 石块碎石建筑垃圾石堆3D模型 85 现代岩石地面巨石3D模型 155 现代地面河滩石子3D模型 124 河道岩石3D模型 65 现代河滩风化碎石乱石3D模型 69 写实石块堆3D模型 202 现代碎石堆3D模型 174 现代泥石石头3D模型 83 石堆3D模型 245 现代 石头3D模型 149 jvzquC41yy}/5m;80eun1{jncvopp8jD[g9[a:>97561a?3jvor@rjwgpvOe?SHJ49<5:B;3268
4.大比例工程设备模型制作哪家好批发厂家在此项目中模型分为几个功能区(风力发电、太阳能发电、储变电站、住宅小区),通过灯光以流水灯效果来模拟发电、输电效果,模型中可采用几种形式来表现风光储输的原理。三维地形地貌(模型整体采用雕塑沙盘的制作工艺进行制作,整体山形根据效果图采用雕塑泥制作出山脉的走向;***步采用透明树脂翻模出山体等。 厂区主厂房,jvzq<84hcpmv79:0ep4djrsc0et0u~urn{55495;:69887mvon
5.公路选线决策模型,DecisionmakingmodelofHighwayRoute,音标航摄像片选线 利用沿路线航摄的像片或国家已有的航摄像片及航测资料,在立体镜下或多倍仪上建立光学立体模型,观察选线地区的地貌和水系,并结合地质判释资料进行选线。在平原区也可利用航摄像片编制像片平面图进行选线。还可通过精密立体测图仪测绘出大比例尺(1:2000,1:1000)地形图进行纸上定线。目前卫星摄影取得jvzq<84yyy4eklycnn4dqv4kpf{05:8153844;54G2?/j}r
6.武汉市城市空间结构形态及规划演变6篇(全文)侗寨以鼓楼为中心,依顺山形地貌而生长,建筑群顺应地形蜿蜒起伏、曲折有致,绝少开山劈地。这种建筑群落的生长模式,是历史、社会、文化因素共同作用的结果,随着时间推移与侗寨规模的逐渐扩大,湘西地区侗寨的内部空间格局与村寨整体形态的发展演变都体现出明显的地方民族特色。jvzquC41yy}/;B}wgunv0lto1y5gkujtto6{dj80jvsm
7.假山景观施工中的注意要点和形式地形地貌:考察现场的地形起伏、坡度变化以及周边环境。根据地形特点设计假山的布局和形态,使其与自然地形相融合,达到浑然天成的效果。若场地存在高低落差,可巧妙利用地势打造出层次丰富的假山景观。 周边环境:分析周边建筑物、道路、植被等环境因素。确保假山景观与周边环境协调一致,不影响原有景观风貌,同时避免施工对周边jvzquC41yy}/dvqkpm4dqv4fhjxzn8sgyu547?87424ivvq
8.石阶遗址3D模型下载渲染器:VR素材大小:40.15MB3d溜溜网(3d66)为您提供石阶遗址3D模型下载,MAX版本:2016及以上,渲染器:VR,有无贴图:有贴图,素材面数:91.9万+面,灯光详情:有灯光,压缩包大小:40.15 MB,有无相机:有相机,包含草渲图,线框图,贴图材质,渲染即用。jvzquC41o09e8?3eqo5sgufvkqt0Nto2:G4ivvq