低优先级的TCP拥塞控制TCP-LP

 精神空虚的时候,就把自己学习的到东西记下来,这样可以安慰内心,日无所废。枯燥而无创造的生活,让我拿什么自慰?
 照例,博客是对[1]的解读,代码实现在[2]。TCP-LP的主要思想和LEDBAT[3]相似,将自身流量摆到一个较低的位置,链路中存在带宽就主动占用,当估计链路要接近拥塞的时候,主动向TCP出让带宽。这样的拥塞控制机制,使得TCP-LP适合文件资源的传输。这种比基于丢包的拥塞控制机制提前感知网络拥塞状况的算法,一般都是基于网络时延的。
d m i n d_{min} dmin, d m a x d_{max} dmax,分别是网络数据包经历的最小与最大单向时延。 d m a x − d m i n d_{max}-d_{min} dmaxdmin反应的就是网络中的排队时延变化情况。TCP中有个选项,可以数据包打上发送时的时戳。
 网络中的控制信号为 s d i sd_i sdi,根据采集到的单向时延进行平滑计算:
KaTeX parse error: \tag works only in display equations
s d i sd_i sdi满足下式,则将发送窗口降低一半。
KaTeX parse error: \tag works only in display equations
下面,证明,TCP-LP能够提早感知网络拥塞,及时出让带宽。假设一条瓶颈链路上存在TCP、TCP-LP流。瓶颈链路的容量为 C C C,链路中存在的缓冲区大小为 Q Q Q。两条数据流的rtt分别为 r t t h , r t t l rtt_{h},rtt_{l} rtth,rttl。h、l表示高低优先级。TCP和TCP-LP感知网络拥塞的时刻分别为 t h , t l t_h,t_l th,tl。假设0时刻两条数据流的发送带宽和达到 C C C。每个rtt,两条数据流的窗口变化为分别增加 α h , α l \alpha_{h},\alpha_{l} αh,αl,就是在拥塞避免阶段,窗口大小随时间线性变化。根据TCP fluid model[4],队列长度的导数满足 Q ˙ ( t ) = ∑ x i ( t ) − C \dot Q(t)=\sum{x_i(t)}-C Q˙(t)=xi(t)C
KaTeX parse error: \tag works only in display equations
可以求得:
t l = 2 Q δ / ( α l / r t t l + α h / r t t h ) t_l=\sqrt{2Q\delta/(\alpha_{l}/rtt_{l}+\alpha_{h}/rtt_{h})} tl=2Qδ/(αl/rttl+αh/rtth) ,其中 δ \delta δ反映的就是瓶颈链路目前的buffer占用情况,原理可以类比[5]。同理可以求得, t h = 2 Q / ( α l / r t t l + α h / r t t h ) t_h=\sqrt{2Q/(\alpha_{l}/rtt_{l}+\alpha_{h}/rtt_{h})} th=2Q/(αl/rttl+αh/rtth)
TCP-LP提前响应链路拥塞,需要满足, t l + r t t l < t h t_l+rtt_l<t_h tl+rttl<th。之后的论文就是推算,怎么选取相应的阈值。
 在文章[6],我对TCP-LP在ns3平台上进行了仿真分析。代码开源。

[1]TCP-LP: Low-Priority Service via End-Point Congestion Control(2006-ton)
[2]TCP-LP module for Linux 2.6.x
[3]基于UDP拥塞控制-LEDBAT
[4]TCP Fluid Model
[5]tcp拥塞控制vegas的数学分析
[6] TCP-LP 仿真分析

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值