基于TCP拥塞控制的改进Backpressure算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于TCP拥塞控制的改进Backpressure算法
占庆杰;韩韧;周好生
【摘要】本文研究了无线网络中在Backpressure算法路由调度下TCP数据流的性能表现,发现该算法无法有效提高网络吞吐量,原因是Backpressure算法基于队列差值的路由调度与TCP的拥塞控制机制之间的不匹配造成的.本文提出了一种适应于TCP数据流调度的改进Backpressure算法(T-BP),并从理论上证明了T-BP 算法具有throughput-optimal性能.仿真结果表明,在多种网络拓扑结构下,与传统BP算法相比,TCP数据流在吞吐量和公平性方面的性能得到了有效的提高.
【期刊名称】《软件》
【年(卷),期】2019(040)004
【总页数】7页(P67-73)
【关键词】Backpressure算法;TCP;最优吞吐量;公平性
【作者】占庆杰;韩韧;周好生
【作者单位】上海理工大学,光电信息与计算机工程学院,上海 200093;上海理工大学,光电信息与计算机工程学院,上海 200093;上海理工大学,光电信息与计算机工程学院,上海 200093
【正文语种】中文
【中图分类】TP393.03
Backpressure算法(以下简称BP算法)是由Tassiulas和Ephremides提出的一种可以实现网络路由和调度的算法,能够动态高效的分配带宽资源[1]。
网络中
的每个节点会为经过该节点的数据流维持一个队列,通过计算得出各个网络节点与相邻可通信节点之间的最大队列差值,并把它赋为该对相邻节点之间的链路权值,再根据链路权值和干扰模型,进一步得出具有最大权值和的可行链路集,从而实现数据包的路由转发[2]。
研究表明BP算法具有throughput-optimal的性能优势,当BP算法与数据流控制相结合时,无线网络可以达到效用最大化[3]。
BP算法可以有效提高网络吞吐量,因此引起了研究者的兴趣,但仍有许多问题需
要解决,如集中控制模型的复杂度问题、延迟性能差等。
目前为止,已经有大量的文献为解决这些问题提出了各种有效的方法,来改进BP算法。
文献[4]使用shadow队列值来计算链路权值,shadow队列值由虚拟的队列长度和真实的队列长度决定,这样就可以减少每个节点维持的真实队列长度,达到改善延迟的作用。
文献[5]将惩罚函数来决定路由调度,队列里数据包采用后进先出的方法,改善了
延迟性能。
文献[6,7]研究了单跳网络下链路调度延迟性能的改善,采用相邻节点
队头延迟差代替队列长度差作为链路权值,提高了延迟性能。
文献[8]采用基于每
个邻居队列的路由调度的方法,在每个时隙只激活调度一个链路,在一定程度上降低了复杂度,但是却增加了延迟。
文献[9]在延迟容忍网络中使用了基于集群的两
级队列结构,有效地降低了节点的排队复杂度。
传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、
基于字节流的传输层通信协议,在当今Internet上占主导地位,在未来一段时间
内也会一直保持这种地位[10]。
因此BP算法在TCP网络中有效使用,充分利用二者各自的性能优势是一个值得研究的问题,人们针对这个问题提出了一些解决方法。
Ajit Warrier, Sankararaman Janakiraman[11]等人针对无线网络的拥塞控制,结合BP算法的路由调度,提出了一种效用最优的无线多跳网络拥塞控制算法。
文献[12]中对TCP拥塞控制和BP算法之间的协作方式进行了研究,提出了一种新的链路调度方法,并提出了一种新的网络编码方式,提高了网络吞吐量。
这些文章解决
了TCP与BP算法结合在一起使用时的一些问题,但他们都对TCP协议做出了一
定的改动,同时忽略了TCP数据流在传输机会上的公平性,本文提出了一种新的BP算法,并在不对TCP协议做修改的前提下改善了网络吞吐量和传输公平性。
本文通过研究TCP拥塞控制下的数据流在BP算法路由调度下的性能表现,深入
分析了其网络吞吐量性能较差的原因,研究发现在BP算法的路由调度下,数据队列较短的数据流一直得不到传输机会,而长队列数据流可以一直得到传输,进而提出了一种改进BP算法(T-BP),对传统BP算法的链路权重计算方法进行了改进,让短队列数据流也可以传输,提高了TCP数据流的吞吐量和传输公平性,同时证
明了其具有throughput-optimal性能。
本章研究分析了非TCP拥塞控制下和TCP拥塞控制下的数据流在BP算法路由调
度下的不同表现,说明了TCP数据流与BP算法之间兼容性问题产生的原因。
如图1(a)所示,这是非TCP拥塞控制下数据流在BP算法路由调度下的情况,
它由一个发送节点和两个接收节点(和)组成,数据流1和2的目的地分别是和。
在时隙t处,和分别是数据流1和2在发送节点上的队列长度,两个数据流以速
率和注入数据包,数据包存储在相应的流队列中。
BP路由调度算法确定了在时隙
t处应该从哪个队列(即数据流)中传输数据包出去,调度决策基于队列差值,即和,其中和分别表示数据流1和2在接收节点和上的队列长度。
此处将和设为流1和
2的目的节点,则从数据流1和2传输过来的数据包会立即传递到更高的层,即
和无须为数据流1和2维持数据队列,因此。
则此时的调度决策只取决于和的长
度大小,调度决策,在时隙t会传输数据流的数据包。
如果数据包注入速率和在
网络容量区域内,则调度算法可以稳定网络中的队列,且和是独立于调度决策的,调度决策不会影响和的值的大小,由图可以看出此时两个数据流的传输机会是一样的,数据流1和2都可以传输。
如图1(b)所示,TCP数据流在BP路由调度算法的作用下传输,发送节点上的
数据包注入由TCP拥塞控制算法决定。
假设在时隙t处,第一个数据流的TCP拥塞窗口大小(取packet做窗口大小单位是为了描述方便),第二个数据流的TCP 拥塞窗口大小,数据流2的拥塞窗口大小大于1是因为它可能在数据流1传输之
前就已经在传输了,同时它的窗口大小也增加了。
图1(b)中所示的队列长度和。
因为,则从第二个数据流中选择数据包传输。
在TCP的拥塞控制算法作用下,接
收节点接收传输过来的数据包并生成ACKs数据包,将其传递回发送节点,发送节点在接收到ACKs数据包后会增加数据流2的拥塞窗口大小。
因此会有更多的数
据包注入到数据队列中,另一方面,在BP路由调度算法的作用下,在下一个时隙数据队列长度对比还是,所以不会有数据包从数据流1中传递出去,则发送节点
一直没有收到过数据流1的ACKs数据包,那么它的拥塞窗口大小也一直没有增加,也就没有新的数据包注入到数据队列中。
最终,数据队列的大小几乎一直没有增长,数据流1也没有数据包传输。
拥塞窗口和,以及数据队列和随时间变化的
趋势图如图2和图3所示。
如图2所示,数据流1拥塞窗口大小无变化,数据流2则在拥塞控制算法的作用
下窗口大小上下波动并最终稳定在一个常附近,同样的如图3所示,对应于拥塞
窗口的变化,数据流1的队列长度也一直无变化1,数据流2的队列长度上下波
动但是总体是呈增长态势的。
由以上分析可知,当TCP数据流由BP算法来路由调度时,如果一些数据包由于BP算法而被困在缓冲区中,则这些数据包只会接收到零星的或没有ACKs反馈数
据包,那么这些数据包的队列长度一直没有增加,进而导致无法被BP算法路由调度,形成恶性循环。
本文通过以上的研究分析,提出了一种新的BP算法,使得队列长度较小的数据流也可以得到机会传输,提高了TCP数据流的吞吐量和公平性。
我们用一个图来描述网络模型,表示所有节点的集合,表示所有链路的集合。
表示的是节点到节点的链路,通信链路是双向的,网络中的每一个节点都可以执行路由
和调度。
在我们的公式与分析中,我们假设时间是分成一个个时隙的,即表示的是在时隙的开始。
网络中的每一个节点都可以产生数据流,无线网络中的每一个数据流都建立了端到端的TCP连接,每一个数据流都可能通过一个或多个中间节点到达目的节点,并
离开网络。
用表示所有数据流的集合,数据流产生数据包的速度为。
用表示最优吞吐量区域,吞吐量区域指的是网络可支持的到达速率集合。
最优吞吐量区域,又称稳定区域,被定义为所有可能的调度决策可以支持的吞吐量区域的集合,则有。
对于每一条数据流,表示数据流经过的节点集,表示组成流路由的链路集合。
对于任意的节点,节点为数据流当前所在的路由节点,节点为数据流的下一跳节点,节点为数据流的上一跳节点(节点不能为数据流源节点)。
设表示链路状态集合,以随机概率从集合中取。
当时,表示该条链路以速率传输数据;若,则该条链路上无数据传输。
设为相应链路状态下的链路速率集合,则时隙t 处的速率集表示的是每一条链路的传输速率,的值从集合取,且。
T-BP算法不同于传统BP算法,旨在改善TCP拥塞控制下短队列数据流得不到传输的情况,消除了TCP数据流在传统BP算法路由调度下的兼容性问题,对传统BP算法中的链路权重计算方法进行了改进,提高了短队列数据流被传输的可能性。
在无线网络中的每个节点上T-BP算法的实现分为两步:第一步是根据队列长度信息实现路由及节点内调度,第二步是根据网络中的链路状态信息和干扰模型实现节点间调度,T-BP算法的具体实现如下。
2.1.1 路由及节点内调度
网络中每个节点上的每一个数据流的队列长度变化是一个动态过程,网络中的每一个节点会为每一个数据流维持一个数据流队列,这些队列仅存储来自对应数据流的数据包。
在每个时隙处,数据流队列的长度为。
设是数据流的源节点,以速率生成数据包并插入到节点的数据流队列中。
每个节点(不为数据流的源节点)会从它的
邻居节点接收数据包并将它们插入到数据队列中。
数据流从节点到下一跳节点的传输速率为,从上一跳节点到节点的传输速率为,链路上的最大链路传输速率为,则数据流的传输速率应小于等于,即。
数据流队列长度是动态变化的,长度值由公式(1)决定:
其中是一个指示函数,若节点是数据流的源节点(即),则数据流以速率往队列中插入数据包,此时;反之若节点不是数据流的源节点(即),此时。
公式(1)是一个
不等式,是因为数据队列中的数据包的数量可能小于传输速率,即队列中的数据包不够数量传输。
T-BP算法的路由和节点内调度决定了每一条链路应该选择传递哪一条数据流的数
据包,以及传输多少数据包。
对于网络中每一条链路,计算通过该链路的所有数据流在节点和的对应队列长度差值,把最大队列差值作为链路权值。
再根据链路权值、可行链路集合计算出具有最大链路权值和的可行链路集,即链路调度集合[13]。
网络中每一条链路的权值计算如式(2)所示。
其中是一个非负的有界的常数,公式(3)表示链路上的所有数据流的最大队列差:链路上队列差值最大的数据流记作其计算如公式(4)所示:
如果最大队列差,而且数据队列有足够的数据包用以传输,那么就从该数据流队列中选择数据包传输出去。
T-BP算法使用来计算队列差值,而不是传统BP算法中
使用的。
这是本文提出的对于传统BP算法链路权值计算公式的改进,有效避免了短队列数据流得不到传输的情况的发生。
2.1.2 节点间调度
T-BP算法的节点间调度部分根据当前的网络链路状态信息和干扰约束,确定可行
链路调度集合。
在时隙处,如果链路属于链路调度集合,则有最大权值的数据流的数据包将通过链路被发送,链路调度集合计算如式(5):
为被选中的链路调度集,该集合中的所有链路在时隙处都会被激活传输。
T-BP算法的路由调度决策采用公式(2)来计算节点间的最大队列差值,该值的
大小取决于值的选取,值的大小对消除TCP数据流和BP算法之间的兼容性问题
十分重要。
如果值取得太小,被困在缓冲区的数据包数量会增加,即没有得到传输机会的数据包的数量会增加,这会降低TCP数据流的吞吐量。
另一方面,如果值
取得过大,则BP算法的最优吞吐量性能会下降。
我们假设经过节点的数据流应该公平的共享数据缓冲区,记为节点的数据缓冲区大小,表示节点的数据流数量,考虑到若队列上的数据一直得不到机会传输,则其队列队头延迟会一直增加,设为队头延迟,在值的选定中加入延迟参数是为了让长期得不到传输的短队列数据流可以更快的获得传输机会,为了让所有的TCP数据流可以得到传输机会,并让其互相
公平竞争,我们设置节点上的。
在此设置下,如果每个数据流队列的大小小于,则所有TCP数据流的数据包都可以传输。
另一方面,如果一些数据流队列大小大于,那么来自队列大小较小的流的数据包仍然可能被困在缓冲区中。
但是,在这种情况下,由于缓冲区占用总量很大,缓冲区溢出概率会增加。
在缓冲区溢出时,队列长度较大的TCP流会降低其速率(因为在拥塞时会删除来自最大数据流队列的数据包),减小了最大数据流队列的长度,并且可以再次传输来自所有流的数据包。
如果节点上的数据流的长度很小,T-BP算法使用公式(2)计算队列差,则数据
流依然有可能得到传输。
如图1(b)中所示,假设在时隙处,数据流1和2的队列队列长度分别为和。
T-BP算法中的取值为10,则调度策略为。
因为,则这两
个数据流都有公平的机会得到传输,两个TCP数据流的拥塞窗口大小会随着时间
而变化,TCP数据流可以传输它们的数据包。
经过一段时间后,若此时数据流队
列大小分别为和,则数据流1的数据包又得不到机会传输,因此确定值的大小十
分重要。
数据流1和2的队列长度分别和,设0,则此时只有数据流2中的数据
包得到传输。
假设数据队列1和2在开始时就需进行队列长度差计算,则其队头
延迟忽略不计,又因为,由公式可得缓冲区大小,现在已用的缓冲区大小为,这意
味着节点的缓冲区即将溢出,这将导致第二个数据流的回退,即来自最大队列的包将被删除。
因此,第二个数据流的流速率和队列大小将减少,则第一个流获得传输机会。
若短队列数据流在一段时间内得不到传输,其队头延迟增大,则其值会比长队列数据流大,因而短队列数据流可以更快的得到传输机会,在一段时间后二者传输机会相等,此时数据流的队头延迟也相等。
假设是由传统BP算法队列差公式计算得到的最优调度决策,是由计算得到的最优调度决策。
因为,所以可得式(6):
其中是一个正的常数,上式可变为:
定义李雅普诺夫[14]函数,其中,由公式(1)决定,定义李雅普诺夫漂移函数,也就是,通过数学公式可将上式变为:
可以设为一个有限的正常数,则b ,将公式(7)插入(8),则变为:
如果到达率向量在稳定区域内,则总是存在,使得,则公式(9)可以写作: 则,即无线网络中数据流队列的总长度和是有界的,证明了在数据流到达速率集合处于网络容量区域范围内时,T-BP算法可以起到稳定网络的作用,实现throughput- optimal性能。
本章实验采用MATLAB仿真工具,针对T-BP算法和传统BP算法分别仿真了在其路由调度下的TCP数据流的吞吐量变化。
本文实验场景描述如下:信道模型采用的是随机的瑞利衰减信道模型,仿真时间设为200秒,TCP拥塞控制算法采用TCP-RENO算法,即基于丢包的拥塞控制,在仿真开始的前5秒内TCP数据流随机调度,5秒后由T-BP算法或者BP算法路由调度。
信道容量设为2Mbps,每个节点上的缓冲区大小设为100个数据包,每个数据包大小为1000B。
为了体现T-BP算法相比于传统BP算法对于TCP数据流传输性能的改善,本文在两种不同的网络拓扑结构中进行了仿真,如图4所示。
在树状拓扑结构中,节点A是数据流源节点,其上有两个TCP数据流和(以下简称流1和流2),流1和流2的目的节点分别是B和D,故流1的路由路径是A->B,流2的路由路径是A->C->D。
在网状拓扑结构中,节点S是数据流源节点,产生四个数据流,分别是、、和,目的节点分别为、、和,它们通过中间节点传输数据到目的节点,为防止数据流传输包含长路径和循环路径,以及最后包问题,我们为其设置路由跳数限制。
数据包到达目的节点后直接传递到更高的层,不再停留在网络中,故我们以每一秒离开网络的数据包的数量作为吞吐量,通过观察流1和流2的吞吐量变化来对比T-BP算法和传统BP算法的性能。
如图5所示,在传统BP算法路由调度下的流1和流2的吞吐量在仿真时间开始5s后产生了两级分化,如上文分析所述,短队列TCP数据流在传统BP算法的路由调度下一直得不到任何传输机会,故流2的吞吐量始终为0,而长队列数据流1可以一直传输,最终吞吐量稳定在一个常值附近。
本文提出的T-BP算法改善了短队列数据流得不到传输机会的情况,如图6所示,流1和流2在仿真时间开始5s后吞吐量上下交替波动,二者传输机会均等,证明了本文所提出的T-BP算法是行之有效的,对传统BP算法路由调度下TCP数据流传输机会不均等的情况进行了改善。
如图7所示,在网状拓扑结构中,传统BP算法路由调度下的流1仿真5s时的队列长度大于其余三条数据流,则流1可以得到传输,故它的拥塞窗口大小在TCP 拥塞控制算法的控制下增加,流1的数据队列也会有更多的数据包传入;而流2、流3和流4则得不到传输机会,拥塞窗口无变化,数据队列无数据包进入。
流1占据了所有的传输机会,而其他数据流无传输机会。
如图8所示,四个数据流的吞吐量曲线变化在一个常值附近上下波动交替,即四个数据流都得到了传输机会,这四个数据流的传输机会相等。
综上所述,我们展示了T-BP与传统BP路由调度下TCP数据流的性能对比,并证明了T-BP算法支持网络中的所有TCP流的传输,而在传统BP算法中一些TCP 数据流无法得到传输机会。
仿真结果表明了:(1)传统BP算法和TCP数据流之间存在兼容性问题。
(2)T-BP算法消除了了TCP数据流在传统BP算法路由调度下的兼容性问题,其吞吐量性能和传输公平性得到了的提升。
本文提出了T-BP算法,以解决TCP和传统BP算法的兼容性问题。
通过分析传统BP算法路由调度下TCP数据流的工作机制,在不对TCP协议做更改的情况下,对传统BP算法的链路权重计算方法进行改进,改善了短队列数据流得不到传输机会的情况。
MATLAB中的仿真表明,T-BP算法提高了TCP流的吞吐量,让所有的TCP数据流得到了公平传输的机会。
【相关文献】
[1] Tassiulas L, Ephremides A. Stability properties of constrained queueing systems and scheduling policies for maximum throughput in multi-hop radio networks[J]. IEEE Trans on Automatic Control, 1992, 37(12): 1936-1948.
[2] 胡雪晴, 周继鹏, 陈晓霞. Ad hoc网络中Backpressure调度算法延迟性能的改进[J]. 计算机应用研究, 2017, 34(6): 1812-1816.
[3] M. J. Neely, E. Modiano, C. Li. Fairness and optimal stochastic control for heterogeneous networks [J]. IEEE/ ACM Transactions on Networking, 2008, 16(2): 396-409.
[4] Bui L, Srikant R, Stolyar A. A novel architecture for reduction of delay and queueing structure complexity in the backpressure algorithm[J]. IEEE/ACM Transactions on Networking, 2011, 19(6): 1597-1609.
[5] Moeller S, Sridharan A, Krishnamachari B, et al. Routing without routes: the backpressure collection protocol[C]// Proc of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks. New York: ACM Press, 2010: 279-290. [6] Liu Shihuan, Ekici E, Lei Ying. Scheduling in multihop wireless networks without back-pressure[J]. IEEE/ACM Trans on Networking, 2014, 22(5): 1477-1488.
[7] Mekkittikul A, Mc Keown N. A starvation-free algorithm for achieving 100% throughput in an input queued switch[C]// Proc of ICCCN. 1996: 226-231.
[8] E. Athanasopoulou et al. Back-Pressure-Based Packet-by-Packet Adaptive Routing
in Communication Networks [J]. IEEE/ACM Transactions on Networking, 2013, 21(1): 244-257.
[9] Jung Ryu, Lei Ying, Sanjay Shakkottai. Back-Pressure Routing for Intermittently Connected Networks [C]. 2010 Proceedings IEEE INFOCOM, 2010: 1-5.
[10] K Thompson, G J Miller, R Wilder. Wide-area Internet Traffic Patterns and characteristics[J]. IEEE Network, 1997, 11(6): 10-23.
[11] A. Warrier, S. Janakiraman, S. Ha, I. Rhee. DiffQ: Practical differential backlog congestion control for wireless networks [C]. IEEE INFOCOM 2009, 2009: 262-270. [12] Hulya Seferoglu, Eytan Modiano. TCP-Aware Backpressure Routing and Scheduling[J]. IEEE Transactions on Mobile Computing,2016,15(7): 1783-1796.
[13] Bui L, Srikant R, Stolyar A. A novel architecture for reduction of delay and queueing structure complexity in the back- pressure algorithm [J]. IEEE/ACM Trans on Networking, 2011, 19(6): 1597-1609.
[14] Eleni Stai, Symeon Papavassiliou, John S. Baras. Performance- Aware Cross-Layer Design in Wireless Multihop Networks Via a Weighted Backpressure Approach[J].
IEEE/ACM Transactions on Networking, 2016, 24(1): 245-258.。