写点什么

技术分享:国民远控向日葵如何通过 BBR 算法提升远控体验?

作者:贝锐
  • 2022 年 7 月 26 日
  • 本文字数:1984 字

    阅读完需:约 7 分钟

技术分享:国民远控向日葵如何通过BBR算法提升远控体验?

决定远程控制服务体验是否优秀的核心点之一是网络。网络环境优秀时,远程控制的体验自然是高清流畅,但事实上,很多需要应用到远程控制的场景其网络环境远远称不上优秀,在这类弱网环境下如何保证远程控制服务依旧能够有十足的稳定性,是远程控制厂商们的一大课题。

“国民远控”向日葵为优化弱网环境下的连接稳定性问题并提升带宽的利用率,已于早前完成了一次技术升级,全球各地的主要服务器均支持 BBR 拥塞控制算法,该升级可以让服务器之间的连接更快,端与服务器的连接更稳定。

而作为本次技术升级核心的 BBR 拥塞控制算法,受到的关注却比较少,各路资料和宣传中均鲜被提及,这篇文章将介绍这一算法,并且实测引入 BBR 拥塞控制算法之后的向日葵在弱网环境中的提升。

 

拥堵控制算法的“来龙去脉”:从“Cubic”到“BBR”

● TCP 拥塞控制(Congestion Control)算法

互联网经历了几代的发展,从上网需要电话线带宽只有几十 Kbps,到现在随时随地上网,最新的 5G 更是让我们获得了 Gbps 的接入带宽,这在以前很难想象。不过,在互联网快速发展的背后,它的技术基础有相当一部分仍然构建于 20 年前甚至更早。TCP 拥塞控制(Congestion Control)算法就是其中之一。作为专有名词它很少被提及,但我们的一些经历,比如明明网速很快但下载却很慢这样的事很可能跟它有关。

互联网上的两点通信时,会经过很多路由,每经过一个路由设备叫一跳(hop)。每一跳都有不同的带宽,有大有小,两点之间的可用带宽是每一跳中的最小值,被称为 Bottleneck BW,因为是公共链路,它们几乎总是拥挤不堪,丢包和排队经常发生,可用带宽也时大时小,这很常见。

不过 7 层应用程序并不需要关心这些,即使排队和路由抖动产生了丢包或者数据错误,4 层的 TCP 协议也会处理,它会重传并进行带宽控制。重传用于保证数据的完整性,带宽控制则确保有限的带宽资源被尽可能公平分配,减少排队和丢包,这就是拥塞控制算法的核心,是的,为了公平。除了带宽,通信的另外一个重要指标是延时,用 RTT(Round-trip time)计量,是一个包从被发送到收到 ACK 的间隔,一般是以毫秒计。RTT 也与拥塞控制密切相关。

● Cubic 拥塞控制算法

1980 年代的互联网崩溃,促成了 TCP 拥塞控制的落地。经过十多年的发展,Cubic 出现并延续至令,目前它仍然是互联网主流的拥塞控制算法,它基于著名的“加性增,乘性减”(AIMD)控制律,将丢包作为网络链路拥塞的指示。它会检测丢包,发现时便会主动降低发送频率,减少拥塞。这被称为“基于丢包”的拥塞控制算法。同类算法有几个,像更早前的 Reno, BIC 等。



由于只有当路由器的队列满了以后才会有丢包,因此,这类算法倾向于快速填满瓶颈路由器的缓存,然后急剧降低发包(减少 50%),当队列空闲后又慢慢填满,周而复始。



Cubic 算法的正常运行对链路的丢包率有一定的要求,在丢包率较高的长肥管道环境下,其发送窗口会迅速收敛到很小。另一方面,当实际可用带宽增大时,它总是会花固定的时间去探测然后慢慢增大,显得缓慢而笨拙。

● BBR 拥塞控制算法

Cubic 在拥塞避免阶段会逐渐加大发送窗口直至填满瓶颈队列,这种机制加速了拥塞的形成,造成了网络延时的波动。在链路瓶颈处保持最大带宽和最小延时的状态是拥塞控制的目标,但明显 Cubic 在目前的互联网环境中已经不能很好的胜任。谷歌提出一种基于延时带宽积的算法 BBR (Bottleneck Bandwidth and RTT),使用了交替测试链路的最大带宽与最小的 RTT 的方法,来寻找名为 Kleinrock 的最佳操作点,这个点,核心特征是报文开始排队。如下图所示,Cubic 的拥塞控制点是排队并且缓存已经满了。



将最近 10 次往返中测得的最大带宽视为 Bmax,将过去 10s 中测得的最小 RTT 视为 Tprop,然后根据这两个值估算 BDP。

BBDP = Bmax × Tprop

BBR 分别通过窗口增益和起博增益来调整 CWND 和发送速率,进而控制其发送行为,将拥塞快速收敛到最佳控制点。



向日葵引入 BBR 之后在弱网环境的提升

前文已经详细介绍了 BBR 拥塞控制算法的发展历程和实现原理,接下来将具体介绍引入 BBR 拥塞控制算法之后,向日葵在弱网环境下有怎样程度的提升。

向日葵的实验室数据显示,在跨国的弱网环境中,未使用多路复用的单连接应用,BBR 能提升约 10 倍的端与服务器间的可用带宽(如:由 120Kbps 提升到>1Mbps)。同时,国内的服务器间互联时,BBR 能提升 1 倍以上的服务器间带宽利用率(由 40%到 85%)。



向日葵实际应用数据显示,在经过支持 BBR 的服务器中转后,向日葵的连接带宽提升了 3 倍以上,帧率提升了 5 倍以上。

因此,我们可以得到如下结论:BBR 拥塞控制算法能显著改善向日葵在部分使用场景下的用户体验。

当然,除了 BBR 拥塞控制算法,向日葵优秀的远控体验还得益于大量其他的技术优势,例如:、丢包重传及抗丢包(ARQ/FEC)技术、Visual saliency 算法、自研 SADDC 图像算法等等。事实上,正是向日葵经年累月在技术上的坚持不懈和极致追求,以及对技术细节的不断打磨,才能够不断突破技术瓶颈,造就如今行业的领先地位。

用户头像

贝锐

关注

连接,无处不在 2022.06.30 加入

上海贝锐信息科技股份有限公司是国内知名智能设备互联云服务商,为各类智能设备厂商提供简单易用的互联互通M2M接入平台,提供向日葵远程控制、蒲公英智能组网、花生壳内网穿透、域名注册等多款产品及服务。

评论

发布
暂无评论
技术分享:国民远控向日葵如何通过BBR算法提升远控体验?_技术分享_贝锐_InfoQ写作社区