当前位置:网站首页>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 吧。
浙江温州皮鞋湿,下雨进水不会胖。
边栏推荐
- 深度剖析数据在内存中的存储----C语言篇
- Sword finger offer II 099 Sum of minimum paths - double hundred code
- Loss function~
- Looking at Ctrip's toughness and vision from the Q1 financial report in 2022
- Start from the bottom structure to learn the customization and testing of FPGA --- Xilinx ROM IP
- Jerry's built-in short press and long press, no matter how long it is, it is a short press [chapter]
- Webrtc audio and video capture and playback examples and mediastream media stream analysis
- antd组件upload上传xlsx文件,并读取文件内容
- Construction of Hisilicon 3559 universal platform: draw a frame on the captured YUV image
- [chestnut sugar GIS] ArcMap - how to batch modify the font, color, size, etc. of annotation elements
猜你喜欢

景联文科技低价策略帮助AI企业降低模型训练成本

Application of containerization technology in embedded field

Share 10 JS closure interview questions (diagrams), come in and see how many you can answer correctly

The motivation of AES Advanced Encryption Protocol

PMP project integration management

从底层结构开始学习FPGA----Xilinx ROM IP的定制与测试
![P7072 [CSP-J2020] 直播获奖](/img/bc/fcbc2b1b9595a3bd31d8577aba9b8b.png)
P7072 [CSP-J2020] 直播获奖

QT qpprogressbar details

Lambda expression: an article takes you through

Boot actuator - Prometheus use
随机推荐
成功改变splunk 默认URL root path
Jinglianwen technology's low price strategy helps AI enterprises reduce model training costs
用matlab调用vs2015来编译vs工程
Motivation du Protocole de chiffrement avancé AES
数据分析学习记录--用EXCEL完成简单的单因素方差分析
Jatpack------LiveData
Configuration clic droit pour choisir d'ouvrir le fichier avec vs Code
归并排序详解及应用
20220527_数据库过程_语句留档
Jielizhi, production line assembly link [chapter]
【板栗糖GIS】global mapper 如何通过dsm批量制作贴地等高线
Xiaopeng P7 had an accident and the airbag did not pop up. Is this normal?
How does Jerry test the wrong touch rate of keys [chapter]
[chestnut sugar GIS] ArcScene - how to make elevation map with height
【板栗糖GIS】arcscene—如何做出有高度的高程图
psnr,ssim,rmse三个指标的定量分析
[chestnut sugar GIS] ArcMap - how to batch modify the font, color, size, etc. of annotation elements
stop slave卡住--事务的事件没有复制完整
[Solved] Splunk: Cannot get username when all users are selected“
分布式监控系统zabbix