AIMD response function的一般推导

Posted dog250

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 ↩︎

以上是关于AIMD response function的一般推导的主要内容,如果未能解决你的问题,请参考以下文章

新式 AIMD 拥塞控制

TCP Illinois 与 TCP Highspeed

TCP Illinois 与 TCP Highspeed

ajax跨域请求

在处理来自 AngularJS 承诺的错误时,使用 `.catch(function(error)` 和 `function(err Response)` 有啥区别? [重复]

php mail function error -> Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must