TCP BBR 数学模型完整版

今天顺带加入了 bbr 的所有状态和所有流程,获得以下的方程组:

C = Bltbw,R = RtProp,T_r = ProbeRTT 周期,g1 = Startup gain,g2 = ProbeBW gain。设 x = estimated bandwidth,r = round trip time,w = inflight:

I ( t ) = ∑ i = 0 n w i ( t ) I(t)=\displaystyle\sum_{i=0}^n w_i(t) I(t)=i=0nwi(t)

d x d t = { ( g 1 − 1 ) x , r = R C ⋅ g 2 ⋅ x ⋅ r I ( t ) − x , r > R \dfrac{dx}{dt} = \begin{cases} (g_1-1)x, & r = R \\\\ C\cdot \dfrac{g_2\cdot x\cdot r}{I(t)}-x, & r \gt R \end{cases} dtdx= (g11)x,CI(t)g2xrx,r=Rr>R

r ( t ) = { I ( t ) C , I ( t ) > C ⋅ R R , I ( t ) ≤ C ⋅ R r(t)=\begin{cases} \dfrac{I(t)}{C} ,& I(t)>C\cdot R\\\\R,&I(t)\leq C\cdot R \end{cases} r(t)= CI(t),R,I(t)>CRI(t)CR

r m i n = min ⁡ x ∈ [ t , t + T r ] r ( x ) r_{min}=\displaystyle\min\limits_{x\in[t,t+T_r]}r(x) rmin=x[t,t+Tr]minr(x)

d w x ( t ) d t = { x ( t ) ⋅ r m i n − w x ( t ) , t   m o d   T r ≠ 0 4 − w x ( t ) , t   m o d   T r = 0 \dfrac{dw_x(t)}{dt}=\begin{cases} x(t) \cdot r_{min}-w_x(t),& t\bmod T_r \neq 0 \\\\ 4-w_x(t),& t\bmod T_r = 0 \\ \end{cases} dtdwx(t)= x(t)rminwx(t),4wx(t),tmodTr=0tmodTr=0

以下是该模型跑出来的一个多流(3 流,其中 z 流在 50 坐标位置加入)共存场景,python matplotlib 实现画图:
在这里插入图片描述

以下是用代码实现上述方程组后跑的一个单流场景,主要是为了和 bbr 论文相契合,C 实现,gnuplot 画图:
在这里插入图片描述

解释一个问题,为什么单流 bbr 没有进入 probertt,因为它不与任何流相互作用,故而能紧贴 C,时刻都能采集到 R。至于 g1 = 2.89 的推导,参见 The math behind dynamics of TCP BBR

这样的 bbr 描述看起来是不是非常干净,比看论文的文字描述清爽多了吧。当然,你可以根据自己的需求任意魔改,改代码变成了改方程,利用数学工具即所见即所得,是不是轻松了很多。经理们周末愉快。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值