基于时延的mptcp的拥塞控制

 我本科的时候就看过网络优化[1]的内容,当时没有学过最优化,完全不理解。
 [2]主要是network utility maximization的讲解材料,对于网络效率最大化,我之前写了篇博客介绍[4],里面的参考文献,值得阅读。
 今天主要记录对于[3]的阅读理解,基于网络链路对列时延的mptcp 拥塞控制。2012年,清华大学的学生发表的。
 [3]的主要结论是,在多径tcp中,数据流倾向于向代价小的链路发送数据包,同时,又会增加相应路径的代价。最终,各个子路径达到一个均衡点(如果存在),各个子流的子流代价相同。

符号含义
U U Uutility 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=rRsxs,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} x0maxsSUs(ys)s.t.    y=BxAxc(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,λ)=sSUs(ys)lLλl(rRal,rxrcl) =sSUs(ys)rRqrxr+λ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=lLλ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(λ)=rRsmaxUs(rRsxs,r)rRsqrxs,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(λ)=sSLs(λ)+λ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,lL).
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=1mxs,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=(baseRTTcwndrttcwnd)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=rttbaseRTT代入(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值