bbr 微观建模与 inflight 守恒

2024-08-30 13:28

本文主要是介绍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=xRxi

这个简单的负反馈能让数据流收住 buffer,显然,当其 inflt 大于 bdp 时,方程为负数,直到排空 buffer。如果没有这个方程,带宽该收敛还是会收敛,但 buffer 和 rtt 会发散。我们可以很容易看到这个事实。

将上述方程简单改一下,设 r 为实际 srtt:

d x i d t = x ⋅ r − x i \dfrac{dx_i}{dt}=x\cdot r-x_i dtdxi=xrxi

r = ∑ x i C r=\dfrac{\sum x_i}{C} r=Cxi

结果就如下了:
在这里插入图片描述

bbr 解决了 bufferbloat 问题,但我为什么又提出 inflight 守恒呢,这似乎没有充分的理由。并且 inflight 守恒算法的bdp 余量参数非常难调,哦豁,我还嫌它收敛慢,若要收敛快,buffer 占用就大,参见这一篇: 传输算法的效率和公平。

bbr 的问题才是 inflight 算法提出的理由。为更加细致观测 bbr 的微观层面,我对其微观细节进行了重新建模。

在标准 bbr 算法中,probebw 状态由若干 8-round 周期构成,因此 gain 是一个脉冲周期函数,而若干数据流 probebw 周期之间的相位关系决定了其公平收敛的效率,同时也影响了 rtt 抖动。以 2 条流共存为例,新模型如下:

g ( t ) = { 1.25 , t m o d T = 1 1 , 1 < t m o d T ≤ T − 1 g(t)=\begin{cases} 1.25 ,& t\mod T=1\\\\1,&1<t\mod T\leq T-1 \end{cases} g(t)= 1.25,1,tmodT=11<tmodTT1

d x d t = C ⋅ g ( t ) ⋅ x g ( t ) ⋅ x + g ( t − ϕ ) ⋅ y − x \dfrac{dx}{dt}=C\cdot \dfrac{g(t)\cdot x}{g(t)\cdot x+g(t-\phi)\cdot y}-x dtdx=Cg(t)x+g(tϕ)yg(t)xx

d y d t = C ⋅ g ( t − ϕ ) ⋅ y g ( t − ϕ ) ⋅ y + g ( t ) ⋅ x − y \dfrac{dy}{dt}=C\cdot \dfrac{g(t-\phi)\cdot y}{g(t-\phi)\cdot y+g(t)\cdot x}-y dtdy=Cg(tϕ)y+g(t)xg(tϕ)yy

d x i d t = x ⋅ R − x i \dfrac{dx_i}{dt}=x\cdot R-x_i dtdxi=xRxi

d y i d t = y ⋅ R − y i \dfrac{dy_i}{dt}=y\cdot R-y_i dtdyi=yRyi

r = x i + y i C r=\dfrac{x_i+y_i}{C} r=Cxi+yi

其中 C,R,T 分别为瓶颈带宽,传播时延,probe 周期,phi 为相位差。

如下是在不同 phi 下的效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

正如理论分析,相位差为 0 意味着这是一个同步 mimd(multiplicative increase multiplicative decrease) 系统,不会收敛,我就不画相图展示了(有点腻了),仿真也体现了出来这一点,而不同的相位差导致不同的收敛效率。

最极端情况,所有数据流一起 probe,结局是占据 0.25*bdp 的 buffer,可是为什么要有 0.25 这个常量呢?类似的,codel 的提出不也是为了消除 red 的配置压力么,所以,自适应才是选择。

看出问题了么?

人们对 “事件驱动” 情有独钟,好还是坏?和 aimd 相比,大锯齿换成了 bbr 小锯齿而已,我在十几年前就疑问,为什么非要有锯齿,这个问题的探究过程及其漫长,期间我学会了一个词,capacity-seeking,就着这个词,我提出一个没有锯齿的新算法,inflight 守恒。

和 bbr 相比,inflight 守恒有以下特点:

  • 没有锯齿,因此尽量避免了抖动;
  • 收敛效率与相位无关;
  • 不会比 bbr 收敛慢,周期 probe 版的 bbr 其实也慢,此前我的建模是连续版,所以才快;
  • 和 bbr 试图清空所有 queue 不同,我用占据一点点 buffer 换来了更稳定解决 bufferbloat 的效果。
  • 想起来再说…

从 2018 年开始,我寻找 bbr 的数学模型,从 neal cardwell 处获得很多,他几乎是有求必应。但我依然一度甚至认为 bbr 背后没有数学模型,起初我通过我擅长的笛卡尔几何建模,通过斜率和面积分析,直到最终用微分方程获得了 bbr 的整个描述,可比几何描述简洁优美多了,而且高尚。

但是不能指望经理(特别是那些小经理,小角色大 sb)有能力理解这些,无论是过程还是结果。

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

这篇关于bbr 微观建模与 inflight 守恒的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

OCC开发_变高箱梁全桥建模

概述     上一篇文章《OCC开发_箱梁梁体建模》中详细介绍了箱梁梁体建模的过程。但是,对于实际桥梁,截面可能存在高度、腹板厚度、顶底板厚度变化,全桥的结构中心线存在平曲线和竖曲线。针对实际情况,通过一个截面拉伸来实现全桥建模显然不可能。因此,针对变高箱梁,本文新的思路来实现全桥建模。 思路 上一篇文章通过一个截面拉伸生成几何体的方式行不通,我们可以通过不同面来形成棱柱的方式实现。具体步骤

一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)

1.没有分段的情况 原函数为一元二次凹函数(开口向下),如下: 因为要使得其存在正解,必须满足,那么。 上述函数的最优结果为:,。 对应的mathematica代码如下: Clear["Global`*"]f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)Maximize[{f0[x, a, b,

2024年高教社杯数学建模国赛最后一步——结果检验-事关最终奖项

2024年国赛已经来到了最后一天,有必要去给大家讲解一下,我们不需要过多的去关注模型的结果,因为模型的结果的分值设定项最多不到20分。但是如果大家真的非常关注的话,那有必要给大家讲解一下论文结果相关的问题。很多的论文,上至国赛优秀论文下至不获奖的论文并不是所有的论文都可以进行完整的复现求解,大部分数模论文都为存在一个灰色地带。         白色地带即认为所有的代码均可运行、公开

数据集 3DPW-开源户外三维人体建模-姿态估计-人体关键点-人体mesh建模 >> DataBall

3DPW 3DPW-开源户外三维人体建模数据集-姿态估计-人体关键点-人体mesh建模 开源户外三维人体数据集 @inproceedings{vonMarcard2018, title = {Recovering Accurate 3D Human Pose in The Wild Using IMUs and a Moving Camera}, author = {von Marc

Rhinoceros 8 for Mac/Win:重塑三维建模边界的革新之作

Rhinoceros 8(简称Rhino 8),作为一款由Robert McNeel & Assoc公司开发的顶尖三维建模软件,无论是对于Mac还是Windows用户而言,都是一款不可多得的高效工具。Rhino 8以其强大的功能、广泛的应用领域以及卓越的性能,在建筑设计、工业设计、产品设计、三维动画制作、科学研究及机械设计等多个领域展现出了非凡的实力。 强大的建模能力 Rhino 8支持多种建

2024 年高教社杯全国大学生数学建模竞赛题目——2024 年高教社杯全国大学生数学建模竞赛题目的求解

2024 年高教社杯全国大学生数学建模竞赛题目 (请先阅读“ 全国大学生数学建模竞赛论文格式规范 ”) 2024 年高教社杯全国大学生数学建模竞赛题目 随着城市化进程的加快、机动车的快速普及, 以及人们活动范围的不断扩大,城市道 路交通拥堵问题日渐严重,即使在一些非中心城市,道路交通拥堵问题也成为影响地方经 济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。 考虑一个拥有知名景区

2024 年高教社杯全国大学生数学建模竞赛 C 题 农作物的种植策略 参考论文 无水印

持续更新中,2024年数学建模比赛思路代码论文都会发布到专栏内,只需订阅一次!  完整论文+代码+数据结果链接在文末!  订阅后可查看参考论文文件 第一问 1.1 问题重述 这个问题围绕的是华北山区的某乡村,在有限的耕地条件下,如何制定最优的农作物种植策略。乡村有 34 块露天耕地和 20 个大棚,种植条件包括粮食作物、蔬菜、水稻和食用菌。除了要考虑地块的面积、种植季节等,还要确保

Matlab simulink建模与仿真 第十章(模型扩展功能库)

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili 一、模型扩展功能库中的模块概览         注:下面不会对Block Support Table模块进行介绍。 二、基于触发的和基于时间的线性化模块 1、Trigger-Based Linearization基于触发的线性化模块 (1)每次当模块受到触发时,都会调用linmod或者dlinmod函数