我本科的时候就看过网络优化[1]的内容,当时没有学过最优化,完全不理解。
[2]主要是network utility maximization的讲解材料,对于网络效率最大化,我之前写了篇博客介绍[4],里面的参考文献,值得阅读。
今天主要记录对于[3]的阅读理解,基于网络链路对列时延的mptcp 拥塞控制。2012年,清华大学的学生发表的。
[3]的主要结论是,在多径tcp中,数据流倾向于向代价小的链路发送数据包,同时,又会增加相应路径的代价。最终,各个子路径达到一个均衡点(如果存在),各个子流的子流代价相同。
符号 | 含义 |
---|---|
U U U | utility function |
x s , r x_{s,r} xs,r | 子流速率 |
y s y_s ys | 端的总速率, y s = ∑ r ∈ R s x s , r y_s=\sum\limits_{r\in R_s}x_{s,r} ys=r∈Rs∑xs,r |
R s R_s Rs | 流s经过的路由器集合 |
c l c_l cl | 链路容量 |
公式的序号,遵从原文的序号。
优化目标,对网络中的所有数据流,使得效用函数最大。
max
x
≥
0
∑
s
∈
S
U
s
(
y
s
)
s
.
t
.
y
=
B
x
A
x
≤
c
(1)
\max\limits_{\boldsymbol{x}\geq\boldsymbol{0}}\sum\limits_{s\in S}U_s(y_s)\\ s.t.\ \ \ \ \boldsymbol{y}=B\boldsymbol{x}\\ A\boldsymbol{x}\leq \boldsymbol{c} \tag{1}
x≥0maxs∈S∑Us(ys)s.t. y=BxAx≤c(1)
求其Lagrangian function:
L
(
x
,
λ
)
=
∑
s
∈
S
U
s
(
y
s
)
−
∑
l
∈
L
λ
l
(
∑
r
∈
R
a
l
,
r
x
r
−
c
l
)
=
∑
s
∈
S
U
s
(
y
s
)
−
∑
r
∈
R
q
r
x
r
+
λ
l
c
l
L(\boldsymbol{x},\lambda)=\sum\limits_{s\in S}U_s(y_s)-\sum\limits_{l\in{L}}\lambda_{l}\left(\sum\limits_{r\in{R}}a_{l,r}x_r-c_l\right)\\ \ =\sum\limits_{s\in S}U_s(y_s)-\sum\limits_{r\in{R}}q_rx_r+\lambda_{l}c_l
L(x,λ)=s∈S∑Us(ys)−l∈L∑λl(r∈R∑al,rxr−cl) =s∈S∑Us(ys)−r∈R∑qrxr+λlcl
q
r
=
∑
l
∈
L
λ
l
a
l
,
r
(2)
q_r=\sum\limits_{l\in{L}}\lambda_{l}a_{l,r}\tag{2}
qr=l∈L∑λlal,r(2)
定义:
L
s
(
λ
)
=
max
r
∈
R
s
U
s
(
∑
r
∈
R
s
x
s
,
r
)
−
∑
r
∈
R
s
q
r
x
s
,
r
(3)
L_s(\lambda)=\max\limits_{r\in R_s}U_s(\sum\limits_{r\in{R_s}}x_{s,r})-\sum\limits_{r\in{R_s}}q_rx_{s,r}\tag{3}
Ls(λ)=r∈RsmaxUs(r∈Rs∑xs,r)−r∈Rs∑qrxs,r(3)
D
(
λ
)
=
∑
s
∈
S
L
s
(
λ
)
+
λ
c
T
(4)
D(\lambda)=\sum\limits_{s\in S}L_s(\lambda)+\lambda \boldsymbol c^T\tag{4}
D(λ)=s∈S∑Ls(λ)+λcT(4)
(1)的dual problem:
min
λ
≥
0
D
(
λ
)
(5)
\min\limits_{\lambda\geq 0}D(\lambda)\tag{5}
λ≥0minD(λ)(5)
其中
λ
=
(
λ
l
,
l
∈
L
)
\lambda=(\lambda_l,l\in{L})
λ=(λl,l∈L).
q
即
为
链
路
代
价
q即为链路代价
q即为链路代价.当路径代价按照升序排序,
q
1
=
.
.
.
=
q
m
<
q
m
+
1
≤
.
.
.
≤
q
n
q_1=...=q_m<q_{m+1}\leq{...}\leq{q_n}
q1=...=qm<qm+1≤...≤qn,根据文中的求出的KKT条件,公式(25)(26)(27),推理出:
U
s
′
(
∑
r
=
1
m
x
s
,
r
∗
(
λ
)
)
−
q
1
=
0
,
(7)
U_s'(\sum\limits_{r=1}^{m}x_{s,r}^*(\lambda))-q_1=0,\tag{7}
Us′(r=1∑mxs,r∗(λ))−q1=0,(7)
x
s
,
r
∗
(
λ
)
=
0
,
r
=
m
+
1
,
.
.
.
,
n
.
(8)
x_{s,r}^*(\lambda)=0,r=m+1,...,n.\tag{8}
xs,r∗(λ)=0,r=m+1,...,n.(8)
(7)(8)说明的就是下述结论:
A flow tends to always use only the cheapest paths while giving up other expensive ones so as to maximize its utility. Note that the path price reflects the extent of congestion. So the behavior that every flow pours into the cheap paths will push up the price of those paths, and meanwhile, will make the price of the previously expensive paths decline. At the equilibrium point, all the paths used by a flow will eventually have the same price, or in other words,will become equally congested, if possible.
根据vegas的控制原则:
d
i
f
f
=
(
c
w
n
d
b
a
s
e
R
T
T
−
c
w
n
d
r
t
t
)
∗
b
a
s
e
R
T
T
(13)
diff=(\frac{cwnd}{baseRTT}-\frac{cwnd}{rtt})*baseRTT\tag{13}
diff=(baseRTTcwnd−rttcwnd)∗baseRTT(13)
根据Low的结论[5],在均衡点,
d
i
f
f
diff
diff收敛至阈值
α
s
,
r
\alpha_{s,r}
αs,r,将
q
r
=
r
t
t
−
b
a
s
e
R
T
T
q_r=rtt-baseRTT
qr=rtt−baseRTT代入(13):
x
s
,
r
=
a
s
,
r
q
r
(14)
x_{s,r}=\frac{a_{s,r}}{q_r}\tag{14}
xs,r=qras,r(14)
优化(3)的速率更新原则:
x
s
,
r
(
t
+
1
)
=
[
x
s
,
r
(
t
)
+
θ
(
U
′
(
y
s
)
−
q
r
)
]
+
(11)
x_{s,r}(t+1)=\left[x_{s,r}(t)+\theta(U'(y_s)-q_r)\right]^+\tag{11}
xs,r(t+1)=[xs,r(t)+θ(U′(ys)−qr)]+(11)
θ
\theta
θ为更新步长。
根据(14),总的速率,这里认为各个子路径的
q
r
q_r
qr相等,为
q
s
q_s
qs
y
s
=
∑
α
s
,
r
q
r
=
1
q
s
∑
α
s
,
r
=
α
s
q
s
(15)
y_s=\sum\frac{\alpha_{s,r}}{q_r}=\frac{1}{q_s}\sum\alpha_{s,r}=\frac{\alpha_{s}}{q_s}\tag{15}
ys=∑qrαs,r=qs1∑αs,r=qsαs(15)
又有:
U
′
(
y
s
)
=
q
s
=
α
s
y
s
,
U
(
y
s
)
=
α
s
l
o
g
(
y
s
)
.
(16)
U'(y_s)=q_s=\frac{\alpha_s}{y_s},\\ U(y_s)=\alpha_{s}log(y_s). \tag{16}
U′(ys)=qs=ysαs,U(ys)=αslog(ys).(16)
取
θ
=
x
s
,
r
(
t
)
q
r
(17)
\theta=\frac{x_{s,r}(t)}{q_r}\tag{17}
θ=qrxs,r(t)(17)
将(17)代入(11),
x
s
,
r
(
t
+
1
)
=
U
s
′
(
y
s
)
q
r
x
s
,
r
(
t
)
(18)
x_{s,r}(t+1)=\frac{U'_s(y_s)}{q_r}x_{s,r}(t)\tag{18}
xs,r(t+1)=qrUs′(ys)xs,r(t)(18)
x
s
,
r
(
t
+
1
)
=
x
s
,
r
(
t
)
y
s
α
s
q
r
=
k
s
,
r
(
t
)
α
s
q
r
(19)
x_{s,r}(t+1)=\frac{x_{s,r}(t)}{y_s}\frac{\alpha_s}{q_r}=\frac{k_{s,r}(t)\alpha_s}{q_r}\tag{19}
xs,r(t+1)=ysxs,r(t)qrαs=qrks,r(t)αs(19)
where
k
s
,
r
(
t
)
=
x
s
,
r
(
t
)
y
s
(20)
k_{s,r}(t)=\frac{x_{s,r}(t)}{y_s}\tag{20}
ks,r(t)=ysxs,r(t)(20)
其中阈值
α
s
\alpha_s
αs可以设置固定值,这样就可一个根据(19)周期性地调整发送速率。
对比(19)与(14),子路径上的窗口调节权重
a
s
,
r
=
k
s
,
r
α
s
a_{s,r}=k_{s,r}\alpha_s
as,r=ks,rαs
[1]a tutorial on decomposition methods for network utility maximization
[2]Solving Dual Problems
[3]Cao Y, Xu M, Fu X. Delay-based congestion control for multipath TCP[C]//Network Protocols (ICNP), 2012 20th IEEE International Conference on. IEEE, 2012: 1-10.
[4]Multipath TCP与网络效率最大化
[5]Understanding TCP Vegas: A Duality Model
[6] mFAST: A Multipath Congestion Control Protocol for High Bandwidth-Delay Connection