BBR脆弱的公平性

2023-11-22 21:30
文章标签 公平性 bbr 脆弱

本文主要是介绍BBR脆弱的公平性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前几个月,我写了一篇BBR算法的收敛动力学的文章:
https://blog.csdn.net/dog250/article/details/114727596
用一幅图描述了BBR的收敛过程,最终neal也是比较认可的。但我总觉得BBR这个收敛机制有点不是那么通透。

上周的时候,同事推荐了一篇讲如何优化BBR的论文,又一起聊了下关于BBR收敛的问题。

由于这篇论文是基于一个数学过程描述的,比我那个要简单得多,我想根据论文里的描述,再解释一下BBR脆弱的公平性,论文的链接如下:
https://13838019299791283621.googlegroups.com/attach/7a1ad8b39994e/improve_bbr-2.pdf

我们知道,一条连接的RTT分为3个部分,传输时延,排队时延,处理时延,在TCP端到端场景下,忽略处理时延,那么某时刻 t t t,一条连接 i i i的RTT为:

R T T i = R T p r o p i + D i ( t ) {RTT}_i={RTprop}_i+D_i(t) RTTi=RTpropi+Di(t)

其中 R T p r o p RTprop RTprop为传输时延,以下写为 T i T_i Ti

于是,设时间 t t t,连接 i i i的inflight为 B i ( t ) B_i(t) Bi(t),实际带宽 λ i ( t ) \lambda_i(t) λi(t)可以写作:

λ i ( t ) = B i ( t ) T i + D i ( t ) \lambda_i(t)=\dfrac{B_i(t)}{T_i+D_i(t)} λi(t)=Ti+Di(t)Bi(t)

理论上, D ( t ) D(t) D(t)是比较小的,但在BBR收敛动力学的推导中却是不可忽略的,因为正是因为 D ( t ) D(t) D(t),BBR最终才会在ProbeRTT阶段收敛。

由于BBR的带宽增益是1.25,可以认为当前的 B ( t ) B(t) B(t)是之前带宽增益的结果,如果这次带宽增益确实获得了实效,设 C i ( t ) C_i(t) Ci(t)为连接 i i i在时刻 t t t由BBR估计出来的带宽,那么:

B i ( t ) M A X = 1.25 × T i × C i ( t − 8 T i ) B_i(t)^{MAX}=1.25\times T_i\times C_i(t-8T_i) Bi(t)MAX=1.25×Ti×Ci(t8Ti)

前一个时间之所以是 t − 8 T i t-8T_i t8Ti是因为BBR的ProbeBW周期就是8个RTT。

于是,可以在实际带宽 λ i ( t ) \lambda_i(t) λi(t)和实际带宽 C i ( t ) C_i(t) Ci(t)之间建立关联了,如果某次BBR通过增益预估的带宽是正确的,那么:

C i ( t ) = λ i ( t ) = 1.25 T i T i + D ( t ) × C ( t − 8 T i ) C_i(t)=\lambda_i(t)=\dfrac{1.25T_i}{T_i+D(t)}\times C(t-8T_i) Ci(t)=λi(t)=Ti+D(t)1.25Ti×C(t8Ti)

之所以不再区分 D i ( t ) D_i(t) Di(t)是因为所有的流共享同一个queue buffer且pacing到达,因此它们的排队时延是一致的。

这下我们就找到了BBR MIMD的系数了,它就是 1.25 T i T i + D ( t ) \dfrac{1.25T_i}{T_i+D(t)} Ti+D(t)1.25Ti

通过这个系数,我们可以清晰地看出排队时延和传输时延的关系对实际带宽的影响:

  • 如果 D ( t ) D(t) D(t)大于 0.25 T i 0.25T_i 0.25Ti,那么带宽不增反减,说明此时已经资源过载了,这是BBR自动发现的。
  • 如果 D ( t ) D(t) D(t)小于 0.25 T i 0.25T_i 0.25Ti,那么带宽会增加,仍有空余资源,但一般不会是1.25倍增益,除非完全不排队。

这意味着,BBR确实把queue buffer稍微(注意这个“稍微”)看作了一种资源,但不能大量占据。我们先画出增益函数的图像:
在这里插入图片描述
可以看出,无论如何, T i T_i Ti越大,增益越大,这是一个单调递增函数,然而当 T i T_i Ti达到一定值的时候,增益就趋于等同,不再显著随着 T i T_i Ti的增加而增加,这说明,在不排队或者轻微排队的情况下,对于不同的 T i T_i Ti,增益是公平的。

同样的分析方法,如果排队时间显著增加,那么可以看出,增益随着 T i T_i Ti的增加明显增加,这是BBR RTT不公平的根源,即便是进入ProbeRTT也挽救不了。

同时,我还画了一个增益为5,排队为30的图像,这里点个题,调一手好参数的事情,就不再分析了。

先看 T i T_i Ti相同时的收敛图:
在这里插入图片描述
一个数学式子一气呵成我之前画的那个复杂图示。

为什么实际的MIMD会和理想情况有个夹角进而推动BBR收敛呢?我们知道,BBR在ProbeRTT后进行收敛,设 λ 1 < λ 2 \lambda_1<\lambda_2 λ1<λ2,它们的 T 1 = T 2 = T T_1=T_2=T T1=T2=T,如果 λ 1 \lambda_1 λ1进入了ProbeRTT,那么实际上queue buffer并没有清空, λ 2 \lambda_2 λ2依然占据着它,因此这个时候 λ 1 \lambda_1 λ1测量出的 T 1 T_1 T1是偏大的,即 T 1 ′ > T T_1^{'}>T T1>T,这是这个差值造成了 λ 1 \lambda_1 λ1增益大于 λ 2 \lambda_2 λ2,进而造成了收敛。

一旦 λ 2 \lambda_2 λ2进入ProbeRTT,那么queue buffer将基本清空,无论如何, λ 2 \lambda_2 λ2清空的都比 λ 1 \lambda_1 λ1清空的多,进而导致自己测量的 T 2 ′ T_2^{'} T2偏大,这就是BBR收敛的实质。

然而,如果 T 1 ≠ T 2 T_1\neq T_2 T1=T2,那必然悲剧了:
在这里插入图片描述
因为 λ 1 < λ 2 \lambda_1<\lambda_2 λ1<λ2,且 T 1 < T 2 T_1<T_2 T1<T2 λ 2 \lambda_2 λ2的增益系数比 λ 1 \lambda_1 λ1大,双向加持, λ 1 \lambda_1 λ1将会被挤到虚无,万劫不复。

这就是脆弱的平衡!

在这里插入图片描述
至于如何改进,这篇论文里说的方法和我之前那个差不多,也是引入一个 α \alpha α,不管怎样,引入一个参数是一个常规方案。


浙江温州皮鞋湿,下雨进水不会胖。

这篇关于BBR脆弱的公平性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/413041

相关文章

BBR 与 AIMD 共存公平性探究

一个古已有之的结论: deep buffer 场景,bbr 相对 reno/cubic 等 aimd 有优势,侵占性强;shallow buffer 场景,aimd 有优势,bbr 带宽被挤占。 本文用实例分析 why 并给出 how。 先看 deep buffer 场景 bbr 单挑 aimd 双流的效果,下图是标准 bbr,被虐成经理: 下图是用 max(bw/delay) 替代 ma

TCP拥塞控制算法BBR源码分析

BBR是谷歌与2016年提出的TCP拥塞控制算法,在Linux4.9的patch中正式加入。该算法一出,瞬间引起了极大的轰动。在CSDN上也有众多大佬对此进行分析讨论,褒贬不一。   本文首先对源码进行了分析,并在此基础上对BBR算法进行总结。 1.源码分析 /* Bottleneck Bandwidth and RTT (BBR) congestion control** BBR co

语音处理中隐私与公平性的相互作用

隐私和公平性通常被视为具有独特挑战和解决方案的独立领域。然而,最近的研究表明,隐私增强技术可能会影响机器学习算法中的偏见。另一方面,注重公平性的模型学习技术已经显示出对个人隐私的不利影响。       本文挑战了隐私和公平性可以在语音处理技术背景下分别处理的假设,并强调了探索这一领域内隐私-公平性权衡的必要性。鉴于现代语音处理技术严重依赖于机器学习和生成模型,其他领域观察到的隐私-公

用相图分析 bbr,inflight 守恒的收敛速度

以下的代码绘制了 bbr 的收敛相图: #!/opt/homebrew/bin/python3import numpy as npimport matplotlib.pyplot as pltfrom scipy.integrate import odeintdef model(vars, t, C, g):x, y = varsdxdt = C * (g * x) / (g * x + y

bbr 微观建模与 inflight 守恒

bbr 解决 bufferbloat 的核心在于一个负反馈方程,设 x 为预估带宽,x_i 为 inflt,则: d x i d t = x ⋅ R − x i \dfrac{dx_i}{dt}=x\cdot R-x_i dtdxi​​=x⋅R−xi​ 这个简单的负反馈能让数据流收住 buffer,显然,当其 inflt 大于 bdp 时,方程为负数,直到排空 buffer。如果没有这个方程

闲聊:为什么需要正确的了解BBR?

为什么需要正确的了解BBR,当人们了解了BBR才能明白如KCP、锐速等解决方案与BBR本身的不同性,而不是听信谗言,一顿乱输出。 BBR是一个关注尽可能吃满管道宽频上限的算法,所以BBR并不关心丢包的问题,而类似 cubic、kcp 等拥塞控制算法都需要考虑丢包的问题。 这也意味着BBR,在产生拥塞的时候会存在一定的滞后性,它通过G(增益因子)来保持扩大带宽及感知,但过程至少需要一个R

筛斗数据:如何确保数据提取技术在法律领域的安全性和公平性?

在当前数字时代,数据提取技术已成为法律领域中的重要工具,其安全性和公平性的确保是促进技术健康发展的关键。数据提取技术涉及从大量数据中提取有用信息,并在法律实践中发挥作用,如辅助合同审查、案件分析、以及犯罪预防和侦测等。以下是确保数据提取技术在法律领域的安全性和公平性的几种方法: 1. 建立严格的法律和规章制度:    - 制定专门的法律来规范数据提取技术在法律领域的使用,明确界定其应用范围、限

采用沙普利值(Shapley value)实现了数据供给方报酬分配的公平性.

目录 采用沙普利值(Shapley value)实现了数据供给方报酬分配的公平性. 采用沙普利值(Shapley value)实现了数据供给方报酬分配的公平性. 采用沙普利值(Shapley value)实现数据供给方报酬分配的公平性,在交易模型中考虑参与个体的异质性与隐私保护,主要体现在以下几个方面: 一、沙普利值的概念与特点 沙普利值(Shapley Value)是合

TCP BBR算法加速效果实测(比对)

作为一枚学生党,国内的云服务器价格和带宽太过昂贵,有提供学生优惠的云服务带宽也只有1M,而我想做的是在服务器上搭建一个同步云盘,当然这些都不是最重要的,最重要的是无法帮助我科学上网。 恰巧去年暑假的时候,Vultr搞活动注册了一个账号,现还有15美元,当时因为它们的网络对电信太不友好,速度慢丢包率高,用了一小段时间后就抛弃了,而后在去年年底Google 发布了TCP BBR算法,最近突然

常见端口及其脆弱点

端口及脆弱性 ⚫ FTP (21/TCP) 1.默认用户名密码anonymous:anonymous 2.暴力破解密码 3.VSFTP 某版本后门 ⚫ SSH (22/TCP) 1.部分版本 SSH 存在漏洞可枚举用户名 2.暴力破解密码 ⚫ Telent (23/TCP) 1.暴力破解密码 2.嗅探抓取明文密码 ⚫ SMTP (25/TCP) 1.无认证时可伪造发件人