原文链接:https://blog.csdn.net/u010643777/article/details/78666424
没有数学理论指导的研究,没有意义。本篇主要介绍Tcp拥塞控制中的流模型[1],现在假设,一条链路上只有一个tcp流。
符号 | 含义 |
---|---|
W(t)W(t) | 拥塞窗口 |
R(t)R(t) | RTT |
Q(t)Q(t) | 网络队列长度 |
X(t)X(t) | 发送速率 |
CC | 瓶颈链路带宽 |
需要点背景,经典的TCP的拥塞控制算法遵从AIMD原则.TCP在拥塞避免阶段,每收到一个ACK,窗口大小增加1W1W,经过一个RTT,窗口大小增加1.这句话用数学公式表示:
dW=1R(t)dt(1)(1)dW=1R(t)dt
(1)当X(t)<CX(t)<C时,就是发送速率小于网络中的带宽处理能力,不存在排队现象,有如下结论:
W˙=1Rmin(2)(2)W˙=1Rmin
R(t)=Rmin(3)(3)R(t)=Rmin
Q(t)=0(4)(4)Q(t)=0
X(t)=W(t)Rmin(5)(5)X(t)=W(t)Rmin
(2)当X(t)>CX(t)>C时,发送速率超出了网络的处理能力,网络中开始出现排队现象,有如下结论:
W˙(t)=1R(t)(6)(6)W˙(t)=1R(t)
R(t)=Rmin+Q(t)C(7)(7)R(t)=Rmin+Q(t)C
Q=∫(X(t)−C)dt⇒Q˙(t)=X(t)−C(8)(8)Q=∫(X(t)−C)dt⇒Q˙(t)=X(t)−C
X(t)=(1+1W(t))C(9)(9)X(t)=(1+1W(t))C
公式(9)不是很明显,按照[1]的说法,发送速率已经超出了瓶颈链路的处理能力,ACK返回的速率ack_rateack_rate为瓶颈链路的处理能力CC,所以X(t)=(1+1W(t))∗ack_rateX(t)=(1+1W(t))∗ack_rate.
以上几个公式可以说是Tcp研究中的麦克斯韦方程组。
求解,对(7)求导:
R˙(t)=Q˙(t)C=X(t)−CC=1W(t)(10)(10)R˙(t)=Q˙(t)C=X(t)−CC=1W(t)
根据(6)(10),得到:
1=W˙(t)R(t)=W(t)R˙(t)⇒d(R(t)W(t))dt=2(11)(11)1=W˙(t)R(t)=W(t)R˙(t)⇒d(R(t)W(t))dt=2
并且,对(12)求导可以得到(11)左边等式的结论,说明在达到瓶颈链路的处理能力后,窗口的增加,带来时延的增加,发送速率并没有增益。
W(t)R(t)=C(12)(12)W(t)R(t)=C
将(12)带入(11):
CRR˙=1⇒∫RRminRdR=∫t01Cdt⇒R(t)=2Ct+R2min−−−−−−−−−√(13)(13)CRR˙=1⇒∫RminRRdR=∫0t1Cdt⇒R(t)=2Ct+Rmin2
(13)代入(12):
W(t)=CR(t)=2C∗t+(CRmin)2−−−−−−−−−−−−−−√=2C∗t+(W(0))2−−−−−−−−−−−−−√(14)(14)W(t)=CR(t)=2C∗t+(CRmin)2=2C∗t+(W(0))2
Q˙(t)=CW(t)=W˙(t)⇒Q(t)=W(t)−W(0)(15)(15)Q˙(t)=CW(t)=W˙(t)⇒Q(t)=W(t)−W(0)
X(t)=C+1R(t)(16)(16)X(t)=C+1R(t)
而且,还可以得到:
Q˙(t)=CW(t)=1R(t)=W˙(t)(17)(17)Q˙(t)=CW(t)=1R(t)=W˙(t)
推广到多条流:
符号 | 含义 |
---|---|
Wi(t)Wi(t) | 第i个tcp流拥塞窗口 |
Ri(t)Ri(t) | 第i个tcp流RTT |
Q(t)Q(t) | 网络队列长度 |
X(t)X(t) | 所有数据流发送速率和 |
Xi(t)Xi(t) | 第i个tcp流发送速率 |
CC | 瓶颈链路带宽 |
Yi(t)Yi(t) | 第i个tcp流返回ack的速率 |
Wi˙(t)=1Ri(t)(18)(18)Wi˙(t)=1Ri(t)
Ri(t)=Ri,min+Q(t)C(19)(19)Ri(t)=Ri,min+Q(t)C
Q˙(t)=X(t)−C⇒Q˙(t)=−C+NRi(T)Wi(t)(20)(20)Q˙(t)=X(t)−C⇒Q˙(t)=−C+NRi(T)Wi(t)
Xi(t)=(1+1Wi(t))Yi(t)(21)(21)Xi(t)=(1+1Wi(t))Yi(t)
根据(17)可以得到:
公式(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.