之前我通过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α)(1−p)−(β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α(1−p)−βwp)=RT(t)×(wα(1−p)−β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)=αR21−p−β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
αR21−p=β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α(1−p)
这就导出了丢包率
p
p
p和吞吐率
T
T
T之间的关系。
对于Reno而言,
α
=
1
\alpha=1
α=1,
β
=
0.5
\beta=0.5
β=0.5
浙江温州皮鞋湿,下雨进水不会胖。
原文链接: https://blog.csdn.net/dog250/article/details/120794519
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/405673
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!