他们把死人存进银行,吃利息。
多径tcp
当别人造的公式没有办法理解的时候,只能勉强去理解。
[1]中有个表达式同[2]中的(7)式有一样的形式,殊途同归。也可以参考[15]的推导,更容易理解。
For every ACK,
w
r
←
w
r
+
I
r
w_r\gets w_r+I_r
wr←wr+Ir,for each lost,
w
r
←
w
r
+
D
r
w_r\gets w_r+D_r
wr←wr+Dr
对于AIMD的TCP来说,
I
r
=
1
w
r
I_r=\frac{1}{w_r}
Ir=wr1,
D
r
=
w
r
2
D_r=\frac{w_r}{2}
Dr=2wr.
设丢包率为
p
r
p_r
pr,
Δ
w
=
I
r
(
1
−
p
r
)
−
D
r
p
r
(1)
\Delta w=I_r(1-p_r)-D_rp_r\tag{1}
Δw=Ir(1−pr)−Drpr(1)
(1)反映的是收到ack,或者丢包发生的时候,窗口的变化。
p
r
p_r
pr可以认为是返回的ack被标记的概率,根据[3]中的随机微分方程,则有:
δ
w
l
o
s
s
=
w
r
2
p
r
x
r
δ
t
=
w
r
2
2
p
r
\delta w_{loss}=\frac{w_r}{2}p_rx_r\delta t=\frac{w_r^2}{2}p_r
δwloss=2wrprxrδt=2wr2pr,取
δ
t
=
r
t
t
,
x
r
∗
r
t
t
=
w
r
\delta t=rtt,x_r*rtt=w_r
δt=rtt,xr∗rtt=wr.
或者可以这样推理,
Δ
w
\Delta w
Δw为收到一个ack的窗口变化,收到ack的时间间隔
Δ
t
=
τ
r
w
r
\Delta t=\frac{\tau_r}{w_r}
Δt=wrτr.一个rtt窗口的变化
δ
w
=
Δ
w
Δ
t
τ
=
Δ
w
w
r
\delta w=\frac{\Delta w}{\Delta t}\tau=\Delta ww_r
δw=ΔtΔwτ=Δwwr
根据上面的解释,确实可以得到[1]中的下式。
δ
w
\delta w
δw设为一个rtt内的窗口变化情况,有:
δ
w
r
=
(
I
r
(
1
−
p
r
)
−
D
r
p
r
)
w
r
=
Δ
w
w
r
(2)
\delta w_r=(I_r(1-p_r)-D_rp_r)w_r=\Delta ww_r\tag{2}
δwr=(Ir(1−pr)−Drpr)wr=Δwwr(2)
另:
δ
w
r
=
w
˙
r
τ
r
=
x
˙
r
τ
r
2
(3)
\delta w_r=\dot w_r\tau_r=\dot x_r\tau^2_r\tag{3}
δwr=w˙rτr=x˙rτr2(3)
因此:
x
˙
r
=
Δ
w
w
r
τ
r
2
=
x
r
τ
r
Δ
w
=
x
r
τ
r
[
I
r
(
1
−
p
r
)
−
D
r
p
r
]
(4)
\dot x_r=\frac{\Delta ww_r}{\tau^2_r}=\frac{x_r}{\tau_r}\Delta w=\frac{x_r}{\tau_r}\left[I_r(1-p_r)-D_rp_r\right]\tag{4}
x˙r=τr2Δwwr=τrxrΔw=τrxr[Ir(1−pr)−Drpr](4)
(4)式同[2]中的(7)式是同一个表示。下一步需要学习下随机微分方程[4]。
[1]中的后续分析主要基于下面这个公式:
x
˙
r
=
k
r
(
x
r
)
(
ϕ
(
x
r
)
−
p
r
)
(5)
\dot x_r=k_r(x_r)(\phi(x_r)-p_r)\tag{5}
x˙r=kr(xr)(ϕ(xr)−pr)(5)
对比(4),
k
r
(
x
r
)
=
x
r
τ
r
D
r
k_r(x_r)=\frac{x_r}{\tau_r}D_r
kr(xr)=τrxrDr
ϕ
(
x
r
)
=
I
r
D
r
\phi(x_r)=\frac{I_r}{D_r}
ϕ(xr)=DrIr
k
r
(
x
r
)
k_r(x_r)
kr(xr)反应的是系统的dynamic property。
ϕ
(
x
r
)
\phi(x_r)
ϕ(xr)反应的是系统的equilibrium property。
[1]只是找到TCP在AIMD约束下的明确表达式。大概可以这样理解,面对链路回馈的代价,Kelly在[5]中给出了一个速率调整的原则(6)。那么另外一个问题,就是根据速率,网络应该如何更新链路代价(8)。这其实不就网络研究的两个终极问题吗,tcp应该如何向网络中发送数据包?网络中的路由器应该如何控制tcp的发送速率?
这两个方面用Kelly的数学语言表示就是[5]中的primal algorithm,dual algorithm。我采用[6]中的形式:
primal algorithm-tcp端的速率更新方法:
x
˙
s
(
t
)
=
k
(
w
s
−
x
s
(
t
)
∑
l
∈
L
(
s
)
p
l
(
t
)
)
(6)
\dot x_s(t)=k(w_s-x_s(t)\sum\limits_{l\in L(s)}p_l(t))\tag{6}
x˙s(t)=k(ws−xs(t)l∈L(s)∑pl(t))(6)
p
l
(
t
)
=
f
l
(
∑
s
∈
S
(
l
)
x
s
(
t
)
)
)
(7)
p_l(t)=f_l(\sum\limits_{s\in S(l)}x_s(t)))\tag{7}
pl(t)=fl(s∈S(l)∑xs(t)))(7)
dual algorithm-网络对速率的控制方法:
p
˙
l
(
t
)
=
k
(
∑
s
∈
S
(
l
)
x
s
(
t
)
)
−
q
l
(
p
l
(
t
)
)
)
(8)
\dot p_l(t)=k(\sum\limits_{s\in S(l)}x_s(t))-q_l(p_l(t)))\tag{8}
p˙l(t)=k(s∈S(l)∑xs(t))−ql(pl(t)))(8)
x
s
(
t
)
=
w
s
∑
l
∈
L
(
s
)
p
l
(
t
)
(9)
x_s(t)=\frac{w_s}{\sum\limits_{l\in L(s)}p_l(t)}\tag{9}
xs(t)=l∈L(s)∑pl(t)ws(9)
如果
w
s
w_s
ws为窗口,
p
l
p_l
pl为一条链路的时延,那么(9)就完美契合。
[7]就直接推导出了不同tcp的拥塞控制机制的utility function。
[6]就给出了相应的效用最大化函数的数学推导。
##network utility maximazation
以下属于效用最大化部分,公式中的序列号与上述无关。
根据[6]的分析,稍微推导之:
符号 | 含义 |
---|---|
x s x_s xs | 速率为x的网络流s |
S ( l ) S(l) S(l) | 经过链路l的流s的集合 |
L ( s ) L(s) L(s) | 流s经过的链路的集合 |
c l c_l cl | 链路l的带宽处理能力 |
U s U_s Us | 流s的效用函数 |
根据效用最大化的定义,有如下约束:
primal problem:
m
a
x
∑
s
U
s
(
x
s
)
max \sum\limits_s U_s(x_s)
maxs∑Us(xs)
s
u
b
j
e
c
t
t
o
∑
s
∈
S
(
l
)
x
s
≤
c
l
,
l
=
1
,
2...
L
.
subject\ to \sum\limits_{s\in S(l)}x_s\leq c_l,\ l=1,2...L.
subject tos∈S(l)∑xs≤cl, l=1,2...L.
对上述式子采用拉格朗日:
dual problem:
L
(
x
,
p
)
=
∑
s
U
s
(
x
s
)
−
∑
l
p
l
(
∑
s
∈
S
(
l
)
x
s
−
c
l
)
=
∑
s
(
U
s
(
x
s
)
−
x
s
∑
l
∈
L
(
s
)
p
l
)
+
∑
l
p
l
c
l
L(x,p)=\sum\limits_s U_s(x_s)-\sum\limits_{l}p_l(\sum\limits_{s\in S(l)}x_s-c_l)=\sum\limits_s( U_s(x_s)-x_s\sum\limits_{l\in L(s)}p_l)+\sum\limits_{l} p_lc_l
L(x,p)=s∑Us(xs)−l∑pl(s∈S(l)∑xs−cl)=s∑(Us(xs)−xsl∈L(s)∑pl)+l∑plcl
p
s
=
∑
l
∈
L
(
s
)
p
l
(4)
p^s=\sum\limits_{l\in L(s)}p_l\tag{4}
ps=l∈L(s)∑pl(4)
求(3)的极值,对(3)求偏导,:
∂
L
∂
x
i
=
U
i
′
(
x
i
)
−
∑
l
∈
L
(
i
)
p
l
=
0
⇒
U
i
′
(
x
i
)
=
∑
l
∈
L
(
i
)
p
l
(5)
\frac{\partial L}{\partial x_i}=U_i'(x_i)-\sum\limits_{l\in L(i)}p_l=0\Rightarrow U_i'(x_i)=\sum\limits_{l\in L(i)}p_l\tag{5}
∂xi∂L=Ui′(xi)−l∈L(i)∑pl=0⇒Ui′(xi)=l∈L(i)∑pl(5)
那么(5)式的反函数,
x
i
=
U
i
′
−
1
(
p
)
x_i=U_i'^{-1}(p)
xi=Ui′−1(p)。根据Low的的说法,这就是微观经济学中的需求函数(demand function)。
采用gradient projection method迭代的方式求解(3)的极值。
p
l
(
t
+
1
)
=
[
p
l
(
t
)
−
γ
∂
L
∂
p
l
]
+
(6)
p_l(t+1)=[p_l(t)-\gamma\frac{\partial L}{\partial p_l}]^{+}\tag{6}
pl(t+1)=[pl(t)−γ∂pl∂L]+(6)
其中
∂
L
∂
p
l
=
c
l
−
x
l
(
p
)
x
l
(
p
)
=
∑
s
∈
S
(
l
)
x
s
\frac{\partial L}{\partial p_l}=c_l-x^{l}(p)\ \ \ x^{l}(p)=\sum\limits_{s\in S(l)}x_s
∂pl∂L=cl−xl(p) xl(p)=s∈S(l)∑xs
(6)就是在路由器层面的拥塞控制机制,这个算法是可以根据本地信息求解的。所以Low围绕Kelly的两个式子,做了很多研究。在TCP的拥塞控制方面,他提出了基于时延信息的TCP FAST[12],在路由器的主动队列管理方面,他提出了REM[13]算法。Low在[7]求出了Reno和Vegas的效用函数。
[1][Peng Q, Walid A, Hwang J, et al. Multipath TCP: Analysis, design, and implementation[J]. IEEE/ACM Transactions on Networking, 2016, 24(1): 596-609.]
[2]基于窗口与基于速率的拥塞控制
[3]Misra V, Gong W B, Towsley D. Fluid-based analysis of a network of AQM routers supporting TCP flows with an application to RED[C]//ACM SIGCOMM Computer Communication Review. ACM, 2000, 30(4): 151-160.
[4]Misra V, Gong W B, Towsley D. Stochastic differential equation modeling and analysis of TCP-windowsize behavior[C]//Proceedings of PERFORMANCE. 1999, 99.
[5][Kelly F P, Maulloo A K, Tan D K H. Rate control for communication networks: shadow prices, proportional fairness and stability[J]. Journal of the Operational Research society, 1998, 49(3): 237-252.]
[6]Low S H, Lapsley D E. Optimization flow control. I. Basic algorithm and convergence[J]. IEEE/ACM Transactions on networking, 1999, 7(6): 861-874.
[7]Low S H, Paganini F, Doyle J C. Internet congestion control[J]. IEEE control systems, 2002, 22(1): 28-43.
[8]Athuraliya S, Low S H. Optimization flow control, II: Implementation[J]. submitted for publication, 2000.
[9]Kelly F. Fairness and stability of end-to-end congestion control[J]. European journal of control, 2003, 9(2-3): 159-176.
[10]Kelly F, Voice T. Stability of end-to-end algorithms for joint routing and rate control[J]. ACM SIGCOMM Computer Communication Review, 2005, 35(2): 5-12.
[11]Ruiz H M, Kieffer M, Pesquet-Popescu B. TCP and network coding equilibrium and dynamic properties[C]//Network Coding (NetCod), 2013 International Symposium on. IEEE, 2013: 1-6.
[12]FAST TCP: motivation, architecture, algorithms, performance
[13]An enhanced random early marking algorithm for internet flow control
[14]Low S H. A duality model of TCP and queue management algorithms[J]. IEEE/ACM Transactions On Networking, 2003, 11(4): 525-536.
[15] AIMD吞吐量公式的推导 https://blog.csdn.net/u010643777/article/details/78950328