AIMD response function的一般推导

之前我通过Reno算法推导过近似的AIMD response function:
https://blog.csdn.net/dog250/article/details/119816289
但是不具备普遍性,今天早上在推导MPTCP的coupled cc的时候,觉得那篇论文1里关于稳定状态的守恒律说的不是很严谨,就想不失一般性地推导一个通用的。还是离不开微积分。正好本周的任务之一就是给小小普及微积分,我决定从 盯着变化 开始。

从一般表达式求导,几乎很多事情都可以从此开始。

顺便写这么一篇。参考经典2

在丢包率为 p p p的路径上,任意时间 t t t,设cwnd为 w w w,AI系数为 α \alpha α,MD系数为 β \beta β,RTT为 R R R,那么吞吐率 T T T为:

T ( t ) = w R T(t)=\dfrac{w}{R} T(t)=Rw

求导,就可以得到吞吐率的变化情况:

d T ( t ) d t = 1 R d w d t \dfrac{dT(t)}{dt}=\dfrac{1}{R}\dfrac{dw}{dt} dtdT(t)=R1dtdw

其中, d w dw dw可以通过AIMD行为来表示出来,即AI获得的 w w w增量与MD带来的 w w w损失之差:

AI rate = α w =\dfrac{\alpha}{w} =wα
MD rate = β w =\beta w =βw

d w = ( α w ) ( 1 − p ) − ( β w ) p dw=(\dfrac{\alpha}{w})(1-p)-(\beta w)p dw=(wα)(1p)(βw)p

另一方面,TCP数据的发送是靠ACK自时钟驱动的,一个RTT内,一共会收到 w w w个ACK, d t dt dt作为连续ACK到达的间隔:

d t = R w dt=\dfrac{R}{w} dt=wR

d w dw dw d t dt dt代入 d T d t \dfrac{dT}{dt} dtdT的表达式:

d T ( t ) d t = w R 2 × ( α w ( 1 − p ) − β w p ) = T ( t ) R × ( α w ( 1 − p ) − β w p ) \dfrac{dT(t)}{dt}=\dfrac{w}{R^2}\times (\dfrac{\alpha}{w}(1-p)-\beta wp)=\dfrac{T(t)}{R}\times (\dfrac{\alpha}{w}(1-p)-\beta wp) dtdT(t)=R2w×(wα(1p)βwp)=RT(t)×(wα(1p)βwp)

整理成 T ( t ) T(t) T(t) p p p的关系,可得:

d T ( t ) d t = α 1 − p R 2 − β T ( t ) 2 p \dfrac{dT(t)}{dt}=\alpha\dfrac{1-p}{R^2}-\beta T(t)^2p dtdT(t)=αR21pβT(t)2p

在稳定情况下,吞吐率是不会变化的,即 d T d t = 0 \dfrac{dT}{dt}=0 dtdT=0代入上式:

α 1 − p R 2 = β T ( t ) 2 p \alpha \dfrac{1-p}{R^2}=\beta T(t)^2p αR21p=βT(t)2p

求解 T ( t ) T(t) T(t),可得:

T ( t ) = 1 R α ( 1 − p ) β p T(t)=\dfrac{1}{R}\sqrt{\dfrac{\alpha(1-p)}{\beta p}} T(t)=R1βpα(1p)

这就导出了丢包率 p p p和吞吐率 T T T之间的关系。

对于Reno而言, α = 1 \alpha=1 α=1 β = 0.5 \beta=0.5 β=0.5

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


  1. https://www.usenix.org/legacy/events/nsdi11/tech/full_papers/Wischik.pdf ↩︎

  2. https://www.cse.wustl.edu/~jain/papers/ftp/cong_av.pdf ↩︎

Guess you like

Origin blog.csdn.net/dog250/article/details/120794519