当前位置:网站首页>BBR 遭遇 CUBIC
BBR 遭遇 CUBIC
2022-07-02 22:10:00 【dog250】
BBR 动力学仅在纯 BBR 与模型匹配,否则需要各种技巧和其它算法共存,BBRv2 便是这种妥协。
本文着重说 BBR 之 ProbeRTT。
该状态有意思,它的收敛机制如此精致。以一大一小两流为例,大流指它侵入 buffer,足以影响 minrtt 采集:
- 大流进入 ProbeRTT,清让 buffer,大流小流同时采到 minrtt。
- 小流进入 ProbeRTT,采集到偏大 minrtt,待大流进入 ProbeRTT,两流同时采到 minrtt。
只要所有 BBR 流配置相同 ProbeRTT 窗口,收敛点就天然同步,就是 BBR 带宽/时间 图上向下凸起的那些小尖。
像高架桥面或铁轨上那些接缝,固定距离就要咯噔一下,BBR 对于一些流媒体也存在该问题,同步卡顿。随机化 ProbeBRR 窗口可解决,比如 5s~15s 内随机进入 ProbeRTT。
每条流 ProbeRTT 间隔随机,并不影响所有流依然在同一时间采到 minrtt,这是根本。
所有流采到 minrtt 那一刻开始,BBR 在 ProbeBW 状态收敛到公平,参见下文 “ProbeBW状态probe阶段BBR如何公平收敛” 一节:
The math behind dynamics of TCP BBR
走出理想,来到现实世界。
BBR 没有和 CUBIC 公平收敛的动力学,只能靠调参。
实践中发现与 CUBIC 共存,不抢 buffer,BBR 自己都立不稳,无法稳定维持状态机,此时带宽数据依然比 CUBIC 好,并非受益于 BBR 的模型,而是:
- BBR 可以憋住 10 rounds 的 maxbw 不退让。
- BBR 丢包状态依然试图稳住状态机并在恢复后 undo。
不过重传率也增加了,这已在透支资源维持状态机。至于 ProbeBW 中的 probe/drain,几乎完全乱套,因为 BDP 不再可信。
与 CUBIC 共存,ProbeRTT 将会给 BBR 带来厄运而不是机会,突然主动降低 inflight 给了其它流 buffer 依然未满的假象,等 BBR 退出 ProbeRTT 时,依然无法采集 minrtt,反而出让的带宽也让人给占了。
ProbeRTT 目标是采集 minrtt,当确认该目标无法达成,不再进 ProbeRTT 是良策,而不是将 4 inflight 改成 70%,后者依然无法采到 minrtt,又何必。
看起来有两个选择:
- 降低 minrtt 的期望,维持 CUBIC 状态下 midrtt 作为 minrtt。
- 依照 BBRv2 的做法,比例降低 inflight。
理想 BBR 的姿势很容易被现实的 buffer 打乱,它太依赖 pacing ,还是上文,看 “probe挤占导致的排队问题以及解法” 。
有 trick 可应对,长流有效。
在进入 ProbeRTT 前后分别测量 srtt 和 delivery rate,看结果是否有大改观,可区分 RTT 升高是否自己所为,若非自己所为,则记入链路画像。
若自己 ProbeRTT,RTT 依然居高不下,可判定自己未占 buffer,若一个窗口内采集到相仿的 minrtt,则对方同为 BBR,不进 ProbeRTT 概率减少,否则增加。每次进入 ProbeRTT 与否,全凭该概率决定,此举将 ProbeRTT 与 采集 minrtt 分离,不再依赖。
解释一下:
第一次 ProbeRTT 后,至少可保证自己 inflight 是 4(或者 10),此时的递增 RTT 肯定是别人所为,下次ProbeRTT,若 RTT 还高,大概率可说明还是别人造成,因为按照 BBR 规则不会占 buffer,既然不是我所为,再降 inflight 也无法采集 minrtt,纯吃亏,也就不再进入这次 ProbeRTT。
minrtt 不必每次都通过 inflight = 4 获得,确认 buffer 不是自己所为,可继承最近相对可信的 minrtt,或取两次 10s 间最小 RTT,把别人造成的排队延时都算进去。
总之,要在连接中持续刻画一幅链路画像,它将越来越准确。
CUBIC, BBR,25 Gbps,50 us 链路,无丢包,1000 pkts buffer,5v5,看下效果:
调参概率 10 倍增益,本意是 BBR 在 150 秒后吊打 CUBIC。修改偏好可以维持公平,但不吊打显示不出区别。
本准备去南汇赶海听潮,虽没法和深圳盐田大小梅沙,大鹏南澳杨梅坑比,但至少也是个海…无奈小小明天有个考试,就去不成了,本想今晚在酒店调试这个,就在这大热天的下午折腾完了。这次不放代码,因为不能总放,连 stap poc 也不放了。昨晚有朋友提示,跟那些长篇大论后面贴一个公众号二维码的作者相比,和那些大厂高 P 相比,我就是个 SB,他们拿了我太多输出,我却依然显得怡然自得。我回味无穷,也非常感谢这位朋友的善意,我怡然自得,但也总被误会拿到了什么好处,可现实中我却连一场江浙沪旅行都要因为没钱让老婆孩子失望。但无论如何,在我看来交流是目的,反正自己不干这行当很久了,目前也不是靠这个吃饭,还是写点思路,和谁都没有冲突,SB 就 SB 吧。
浙江温州皮鞋湿,下雨进水不会胖。
边栏推荐
- 从底层结构开始学习FPGA----Xilinx ROM IP的定制与测试
- 成功改变splunk 默认URL root path
- Niuke network: maximum submatrix
- [npuctf2020]ezlogin XPath injection
- Learning Websites commonly used by circuit designers
- Uniapp wechat login returns user name and Avatar
- Set right click to select vs code to open the file
- Go condition variable
- Innovation strength is recognized again! Tencent security MSS was the pioneer of cloud native security guard in 2022
- [leetcode] reverse string [344]
猜你喜欢
Qt QScrollArea
Configuration clic droit pour choisir d'ouvrir le fichier avec vs Code
Lambda表达式:一篇文章带你通透
容器化技术在嵌入式领域的应用
Splunk audit 的设定
Typical case of data annotation: how does jinglianwen technology help enterprises build data solutions
Introduction to the latest plan of horizon in April 2022
最小生成树 Minimum Spanning Tree
`Usage of ${}`
WebRTC音视频采集和播放示例及MediaStream媒体流解析
随机推荐
Configuration clic droit pour choisir d'ouvrir le fichier avec vs Code
Typical case of data annotation: how does jinglianwen technology help enterprises build data solutions
Detailed explanation and application of merging and sorting
Qt QProgressBar详解
最小生成树 Minimum Spanning Tree
China Academy of information technology, Tsinghua University, Tencent security, cloud native security, industry university research and use strong alliance!
数据分析学习记录(二)---响应曲面法及Design-Expert的简单使用
Minimum spanning tree
xshell配置xforward转发火狐浏览器
Jerry's fast touch does not respond [chapter]
Antd component upload uploads xlsx files and reads the contents of the files
ServletContext learning diary 1
[hardware] origin of standard resistance value
[npuctf2020]ezlogin XPath injection
[Luogu p1541] tortoise chess [DP]
深度剖析数据在内存中的存储----C语言篇
力扣刷题(2022-6-28)
Jinglianwen technology's low price strategy helps AI enterprises reduce model training costs
海思3559万能平台搭建:在截获的YUV图像上旋转操作
Freshman learning sharing