为什么WebRTC移除BBR拥塞控制算法

why-bbr-remove-from-webrtc.png

Via:PixPark: 为什么WebRTC移除BBR拥塞控制算法

WebRTC 在 Bug: webrtc:9883 移除了 BBR 拥塞控制算法,给出的原因也比较简单:

This was introduced on trial but turned out to perform badly for WebRTC
purposes and never used in production.

翻译(gpt-3.5):这个功能在试验中被引入,但在 WebRTC 的实际应用中表现不佳,从未在生产环境中使用过。
image.png

关于 BBR 被WebRTC移除国内网上也有一些介绍,大多来源于这两个帖子:

  1. Question about applying BBR on video streaming
  2. Better throughput estimation

里面提到:

However, BBR was deprecated due to some "performance issues" and removed from the codebase.

但国内的人似乎把 performance 翻译成了 性能,容易让人有误解,以为 BBR 在性能消耗性有问题,其实翻译为表现更准确一些。

BBR的表现

那么 BBR 究竟什么表现让 WebRTC 移除了它呢?

帖子 1的作者给出实测数据:


image.png

第一张图:红线是由 BBR 给出的带宽测量结果。蓝线是相应的建议编码比特率(由自适应编码模块给出)。绿色类似直方图的线条表示实际的发送带宽。水平虚线是真实的带宽数值。

第二张和第三张图代表了相应的往返时延(RTT)和 pacing 队列大小。它们共同决定了服务器和客户端之间的延迟。

根据实验结果(上图),当 BBR 对带宽进行过高估计时,自适应编码模块会增加编码器的目标比特率。这与大批量传输非常不同,因为过高估计不会增加待发送数据的总量。增加的比特率会导致拥塞。当飞行数据受 CWND 限制时,剩余的数据将积压在 pacing 队列中,导致服务器和客户端之间出现明显的延迟。

也就是说,当 BBR 估测出一个高于实际带宽的值时,作用于编码器,编码处的码率则高于实际带宽,就会造成包在 pacing 中排队, rtt 也相应增大。

如果堆积的包数量超过 pacing 队列的阈值,大量数据包又会发送到网络上,造成拥塞恶化,严重丢包。

why bbr is removed from webrtc 这篇国内文章有探讨这个现象。

对此有谷歌开发者解释:

一个问题是轻微的带宽过估计,就像你观察到的那样。应用最大过滤器会使即使是小的过估计也相当持久。如你的图所示,这个问题在启动阶段(STARTUP)最严重,因为带宽估计受到发送速率的限制,而在启动阶段的发送速率明显高于带宽估计。我们可能在带宽估计器中有一个尚未发现的错误,但在存在ACK聚合的情况下也存在已知的过估计可能性。

在我们的测试中,流程经常处于应用限制状态,这可能会阻止错误的带宽估计从STARTUP中快速过期,但考虑到你的测试中存在一个持续存在的队列,这似乎不是一个因素。

我们观察到的最后一个问题是在WebRTC流的双向使用BBR时,特别是在从STARTUP阶段退出所需的时间较长时,最小往返时间(min_rtt)估计会被夸大。

见:帖子 1

另外一个WebRTC 移除 BBR 原因在帖子 2 有提到:

I don't think there are any plans for using BBR. One of the problems with BBR for real-time communications is that it alternates between probing the bandwidth and measuring the RTT. To measure the bottleneck bandwidth, we need to build network queues. To accurately measure the RTT, all network queues must be completely drained which requires sending almost nothing for at least one RTT. These variations in target send rate do not play nice with encoders and jitter buffers.

我认为目前没有使用 BBR 的计划。BBR 在实时通信中的一个问题是它在探测带宽和测量往返时延(RTT)之间交替。要测量瓶颈带宽,我们需要建立网络队列。要准确测量 RTT,所有网络队列都必须完全排空,这要求至少在一个 RTT 内几乎不发送任何数据。这种目标发送速率的变化对编码器和抖动缓冲器来说并不友好。

也就是说 BBR 和 WebRTC 的编码器以及Jitter Buffer 配合不好

思考

从现有资料看(@PixPark 没有实测),BBR 在带宽估计上要比 GCC 准确,在收敛性上也比 GCC 迅速,这是 BBR 的优点。WebRTC 自从引入 BBR 依赖,网络上关于它的讨论很多,国内好多RTC 开发者对BBR 寄予厚望。

既然 BBR 属于实验性的功能,实际和 WebRTC 配合表现又不是太好,那是不是 BBR 就不能在 RTC 中应用了?

个人认为如果是对带宽准确性要求较高的场景,比如说在服务端对 SVC 编码层转发丢弃的场景,可以利用 BBR 带宽准确的特点,比较准确的对下行进行转发数据包。

另外就是根据自己的要求对 BBR 进行调参,调优,比如按照探测带宽的 80% 给编码器设置码率(可能是个馊主意)。

还有一点疑问是在带宽变动比较大的场景,如楼道走动等,BBR 的适应性怎么样?需要进一步探索

本文对 BBR 的讨论并不深入,并且带了一些疑问,主要是让大家对 WebRTC 移除BBR 有个了解。对这块比较了解的朋友,希望分享你的观点和看法。

参考

整理了一些关于 BBR 和网络相关的参考文章:

why bbr is removed from webrtc
结果令人失望的 bbr2
真实网络中的 bbr
揭露 bbr 的真相
长肥管道:为何文件传输速度这么慢
网络协议--TCP的未来和性能

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容