没有数学理论指导的研究,没有意义。本篇主要介绍Tcp拥塞控制中的流模型[1],现在假设,一条链路上只有一个tcp流。
符号 | 含义 |
---|---|
W ( t ) W(t) W(t) | 拥塞窗口 |
R ( t ) R(t) R(t) | RTT |
Q ( t ) Q(t) Q(t) | 网络队列长度 |
X ( t ) X(t) X(t) | 发送速率 |
C C C | 瓶颈链路带宽 |
需要点背景,经典的TCP的拥塞控制算法遵从AIMD原则.TCP在拥塞避免阶段,每收到一个ACK,窗口大小增加
1
W
\frac{1}{W}
W1,经过一个RTT,窗口大小增加1.这句话用数学公式表示:
d
W
=
1
R
(
t
)
d
t
(1)
dW=\frac{1}{R(t)}dt\tag{1}
dW=R(t)1dt(1)
(1)当
X
(
t
)
<
C
X(t)<C
X(t)<C时,就是发送速率小于网络中的带宽处理能力,不存在排队现象,有如下结论:
W
˙
=
1
R
m
i
n
(2)
\dot{W}=\frac{1}{R_{min}}\tag{2}
W˙=Rmin1(2)
R
(
t
)
=
R
m
i
n
(3)
R(t)=R_{min}\tag{3}
R(t)=Rmin(3)
Q
(
t
)
=
0
(4)
Q(t)=0\tag{4}
Q(t)=0(4)
X
(
t
)
=
W
(
t
)
R
m
i
n
(5)
X(t)=\frac{W(t)}{R_{min}}\tag{5}
X(t)=RminW(t)(5)
(2)当
X
(
t
)
>
C
X(t)>C
X(t)>C时,发送速率超出了网络的处理能力,网络中开始出现排队现象,有如下结论:
W
˙
(
t
)
=
1
R
(
t
)
(6)
\dot{W}(t)=\frac{1}{R(t)}\tag{6}
W˙(t)=R(t)1(6)
R
(
t
)
=
R
m
i
n
+
Q
(
t
)
C
(7)
R(t)=R_{min}+\frac{Q(t)}{C}\tag{7}
R(t)=Rmin+CQ(t)(7)
Q
=
∫
(
X
(
t
)
−
C
)
d
t
⇒
Q
˙
(
t
)
=
X
(
t
)
−
C
(8)
Q=\int(X(t)-C)dt\Rightarrow\dot{Q}(t)=X(t)-C\tag{8}
Q=∫(X(t)−C)dt⇒Q˙(t)=X(t)−C(8)
X
(
t
)
=
(
1
+
1
W
(
t
)
)
C
(9)
X(t)=(1+\frac{1}{W(t)})C\tag{9}
X(t)=(1+W(t)1)C(9)
公式(9)不是很明显,按照[1]的说法,发送速率已经超出了瓶颈链路的处理能力,ACK返回的速率
a
c
k
_
r
a
t
e
ack\verb|_|rate
ack_rate为瓶颈链路的处理能力
C
C
C,所以
X
(
t
)
=
(
1
+
1
W
(
t
)
)
∗
a
c
k
_
r
a
t
e
X(t)=(1+\frac{1}{W(t)})*ack\verb|_|rate
X(t)=(1+W(t)1)∗ack_rate.
以上几个公式可以说是Tcp研究中的麦克斯韦方程组。
求解,对(7)求导:
KaTeX parse error: \tag works only in display equations
根据(6)(10),得到:
1
=
W
˙
(
t
)
R
(
t
)
=
W
(
t
)
R
˙
(
t
)
⇒
d
(
R
(
t
)
W
(
t
)
)
d
t
=
2
(11)
1=\dot{W}(t){R(t)}=W(t)\dot{R}(t)\Rightarrow\frac{d(R(t)W(t))}{dt}=2\tag{11}
1=W˙(t)R(t)=W(t)R˙(t)⇒dtd(R(t)W(t))=2(11)
并且,对(12)求导可以得到(11)左边等式的结论,说明在达到瓶颈链路的处理能力后,窗口的增加,带来时延的增加,发送速率并没有增益。
W
(
t
)
R
(
t
)
=
C
(12)
\frac{W(t)}{R(t)}=C\tag{12}
R(t)W(t)=C(12)
将(12)带入(11):
C
R
R
˙
=
1
⇒
∫
R
m
i
n
R
R
d
R
=
∫
0
t
1
C
d
t
⇒
R
(
t
)
=
2
C
t
+
R
m
i
n
2
(13)
CR\dot{R}=1\Rightarrow\int_{R_{min}}^{R}{R}dR=\int_{0}^{t}\frac{1}{C}dt\Rightarrow{R(t)=\sqrt{\frac{2}{C}t+R_{min}^{2}}}\tag{13}
CRR˙=1⇒∫RminRRdR=∫0tC1dt⇒R(t)=C2t+Rmin2(13)
(13)代入(12):
W
(
t
)
=
C
R
(
t
)
=
2
C
∗
t
+
(
C
R
m
i
n
)
2
=
2
C
∗
t
+
(
W
(
0
)
)
2
(14)
W(t)=CR(t)=\sqrt{2C*t+(CR_{min})^{2}}=\sqrt{2C*t+(W(0))^{2}}\tag{14}
W(t)=CR(t)=2C∗t+(CRmin)2=2C∗t+(W(0))2(14)
Q
˙
(
t
)
=
C
W
(
t
)
=
W
˙
(
t
)
⇒
Q
(
t
)
=
W
(
t
)
−
W
(
0
)
(15)
\dot{Q}(t)=\frac{C}{W(t)}=\dot{W}(t)\Rightarrow{Q(t)=W(t)-W(0)}\tag{15}
Q˙(t)=W(t)C=W˙(t)⇒Q(t)=W(t)−W(0)(15)
X
(
t
)
=
C
+
1
R
(
t
)
(16)
X(t)=C+\frac{1}{R(t)}\tag{16}
X(t)=C+R(t)1(16)
而且,还可以得到:
Q
˙
(
t
)
=
C
W
(
t
)
=
1
R
(
t
)
=
W
˙
(
t
)
(17)
\dot{Q}(t)=\frac{C}{W(t)}=\frac{1}{R(t)}=\dot{W}(t)\tag{17}
Q˙(t)=W(t)C=R(t)1=W˙(t)(17)
推广到多条流:
符号 | 含义 |
---|---|
W i ( t ) W_{i}(t) Wi(t) | 第i个tcp流拥塞窗口 |
R i ( t ) R_{i}(t) Ri(t) | 第i个tcp流RTT |
Q ( t ) Q(t) Q(t) | 网络队列长度 |
X ( t ) X(t) X(t) | 所有数据流发送速率和 |
X i ( t ) X_{i}(t) Xi(t) | 第i个tcp流发送速率 |
C C C | 瓶颈链路带宽 |
Y i ( t ) Y_{i}(t) Yi(t) | 第i个tcp流返回ack的速率 |
W
i
˙
(
t
)
=
1
R
i
(
t
)
(18)
\dot{W_{i}}(t)=\frac{1}{R_{i}(t)}\tag{18}
Wi˙(t)=Ri(t)1(18)
R
i
(
t
)
=
R
i
,
m
i
n
+
Q
(
t
)
C
(19)
R_{i}(t)=R_{i,min}+\frac{Q(t)}{C}\tag{19}
Ri(t)=Ri,min+CQ(t)(19)
Q
˙
(
t
)
=
X
(
t
)
−
C
⇒
Q
˙
(
t
)
=
−
C
+
N
R
i
(
T
)
W
i
(
t
)
(20)
\dot{Q}(t)=X(t)-C\Rightarrow \dot{Q}(t)=-C+\frac{N}{R_{i}(T)}W_{i}(t)\tag{20}
Q˙(t)=X(t)−C⇒Q˙(t)=−C+Ri(T)NWi(t)(20)
X
i
(
t
)
=
(
1
+
1
W
i
(
t
)
)
Y
i
(
t
)
(21)
X_{i}(t)=(1+\frac{1}{W_{i}(t)})Y_{i}(t)\tag{21}
Xi(t)=(1+Wi(t)1)Yi(t)(21)
根据(17)可以得到:
Q
˙
(
t
)
=
∑
i
=
1
N
1
R
i
(
t
)
=
∑
i
=
1
N
1
R
i
,
m
i
n
+
Q
(
t
)
C
(22)
\dot{Q}(t)=\sum_{i=1}^N\frac{1}{R_{i}(t)}=\sum_{i=1}^N\frac{1}{R_{i,min}+\frac{Q(t)}{C}}\tag{22}
Q˙(t)=i=1∑NRi(t)1=i=1∑NRi,min+CQ(t)1(22)
公式(22)还有另外的表达形式,参考[2].
[1]A Note on Tcp Fluid Model
[2]Hollot C V, Misra V, Towsley D, et al. Analysis and design of controllers for AQM routers supporting TCP flows[J]. IEEE Transactions on automatic control, 2002, 47(6): 945-959.