tcp aimd 窗口的推导
旧事重提,今天用微分方程的数值解观测 tcp aimd 窗口值。
设系统 AI,MD 参数分别为 a = 1,b = 0.5,丢包率由 buffer 大小,red 配置以及线路误码率共同决定,设为 p,窗口为 W,则有:
d
W
d
t
=
(
1
−
p
)
∗
a
W
−
p
∗
b
∗
W
\dfrac{dW}{dt}=(1-p)*\dfrac{a}{W}-p*b*W
dtdW=(1−p)∗Wa−p∗b∗W
方程第一项为 AI,第二项为 MD。若窗口收敛到稳定点,则 dW / dt = 0,于是:
(
1
−
p
)
∗
a
W
=
p
∗
b
∗
W
(1-p)*\dfrac{a}{W}=p*b*W
(1−p)∗Wa=p∗b∗W
解得:
W
=
1
−
p
0.5
∗
p
W=\sqrt{\dfrac{1-p}{0.5*p}}
W=0.5∗p1−p
这就是结果,尝试获得微分方程的解析解也无妨。如果用数值解验证一下,递推式为:
# 不同丢包率(2 倍关系)的 cwnd
x[n] = x[n-1] + dt * ((1-c)*a/x[n-1] - c*b*x[n-1])
y[n] = y[n-1] + dt * ((1-2*c)*a/y[n-1] - 2*c*b*y[n-1])
结果如下:
这就是 tcp aimd 的 cwnd 与丢包率的关系方程。
浙江温州皮鞋湿,下雨进水不会胖。