基于软件定义网络的动态QoS方法
徐苒茨;曹袖
【摘 要】随着计算机网络的快速发展,其对于服务质量(Quality of Service)的需求和要求也越来越高.近年来,软件定义网络(Software Defined Network)逐渐兴起,由于软件定义网络的服务质量方法可编程性、可扩展性强,因而能够弥补传统服务质量的很多问题.提出了一种软件定义网络实现的动态服务质量方法,在转发队列和路由选择环节都能根据当前网络的状况进行决策;与此同时还会根据网络状态的变化以及数据包到达目的地的延时和丢包率情况来对决策进行调整和补偿.%With the rapid development of network,there is more and more requiring for quality of service in communication system.In recent years,software defined network(SDN) has become a hot spot.SDN based Qos method is programmable and extensible,it makes up the defects of traditional method.This paper proposes a method for dynamic quality of service based on SDN in smart grid by considering both the state of current network and the delay and packet loss of the data packets arriving the destination.
【期刊名称】《微型电脑应用》 【年(卷),期】2017(033)012 【总页数】4页(P71-74)
【关键词】服务质量;软件定义网络;动态路由;动态转发队列 【作 者】徐苒茨;曹袖
【作者单位】复旦大学计算机科学技术学院,上海201203;网络信息安全审计与监控教育部工程研究中心,上海200433 【正文语种】中 文 【中图分类】TN393
近年来,计算机网络快速发展,开始承载越来越多具有商业价值的业务,如网络音频视频会议、位置服务、云服务等,此类业务在传输时需要保证最低的带宽,且对时延、带宽、丢包率等网络参数敏感,要求一定的服务质量QoS(Quality of Service)而不是尽力服务(Best Effort Service)。现有的两种主要QoS模型分别是集成服务IntServ(Integrated Service)和区分服务DiffServ(Differentiated Service)。集成服务模型建立在流的概念上,通过发送封装信令的IP包向传输网络申请服务,交换机通过解析IP包中的信令数据获取QoS相关信息并根据参数预留资源。区分服务模型中交换机会根据携带在IP报文头部的参数信息,使用与之匹配的队列策略以满足它的需求。上述两种模型存在着需要硬件支持,开销太大,可扩展不好等问题,难以大规模地在网络通信中运用[1]。
为了解决上述问题,一种新的网络架构软件定义网络SDN(Software Defined Network)被设计并提出。SDN致力于将传统网络设备的数据平面与控制平面相分离,通过逻辑上集中的控制器来对整个网络的设备进行配置和管理,具有良好的适应性、可编程性、可扩展性以及较高的性价比。OpenFlow作为实现SDN的一个协议,提供用于创新和测试网络框架的真实实验平台。SDN实现的QoS弥补了传统QoS存在的不足,能够实现网络的自动化配置,能为信息流的最优路由选择提供全局的负载信息。
由于SDN与QoS具有良好的契合度和性能,近来有很多与此相关的研究和论文。现有的通信系统中的数据种类繁多,其对于丢包和延时的要求也是多种多样、跨度
很大;数据的流量大小、流量变化、突发性程度也存在很大区别。普通的QoS方法对于不同类型的数据仅在流量环节存在不同,而在进行路由选择时的策略较为单一和固定,这导致在短时间内具有共同目的地的两种或多种数据在转发至某个交换机时,得到的转发链路没有任何差异,致使QoS的整体效果不够理想。本文提出了一种新的动态路由选择方法,对于每一种类型的数据包种类,都会存储其目标延时和丢包率以及实时的延时和丢包率,在进行路由选择时,会根据实时数据与目标数据的偏差来对链路代价进行补偿,从而选择总代价最小的路径进行转发。同时,当数据包到达终端设备的时候,会将数据的延时和丢包情况上传到控制器。如果某类型数据存在大量的丢包情况,那么该数据的实时丢包率就会相应提升,路由选择时就会选择负载较轻但可能路径更长或代价更大的链路,以防止丢包情况的继续发生。
文章将在第二章介绍一些相关的工作;第三章将介绍动态QoS方法的具体细节和各个模块的算法实现;第四章主要介绍模拟实验及其结论;第五章是全文的总结并提出展望。
SDN作为网络领域中一个全新的概念与机制,其目的是解除阻碍当前的网络创新的障碍,将传统网络设备的数据转发与路由控制两个功能相分离,通过控制器来对全局的网络设备进行管理和配置,降低网络复杂性及管理的难易度,构建可编程的网络环境。SDN架构的核心是数据平面与控制平面地分离,网络设备被视为管理对象,为上层的应用或虚拟提供统一的管理视图、网络拓扑视图及应用程序接口。所提出的网络操作系统支持网络的虚拟化,并为用户开发各种网络管理程序提供统一的应用平台。
近年来,出现了很多基于SDN的QoS的研究和论文[2]。在处理QoS转发队列策略的问题时,提出了最大重量优先服务的算法[3];致力于分组的零丢失,在进行路由选择时,不仅仅只考虑路径距离,还考虑了路径上带宽的实时容量[4];提出
了预流路由的方法,在有延时的情况下,使用基于拉格朗日松弛的代价算法得到近似于最优的路由路径[5];提出了网络即服务的动态QoS控制系统,实现了可供给的端到端QoS[6-7];则侧重于QoS系统各个模块的设计与实现,给本文的仿真实验提供了帮助。以上研究没有完美地利用SDN的灵活性,运用在较为复杂的网络环境中时,会存在实时性差、路由方法僵化等弊端。
在前文中介绍了现有QoS系统的框架和存在的主要问题,为本章的模块和算法的设计提供了理论基础和研究方向。
本章将主要介绍一种新的动态QoS方法。整个方法会部署在控制器、交换机以及终端监控设备三个模块之中[9]。系统架构,如图1所示。 其中各个模块的功能如下: 1) 交换机
当某个数据包进入交换机后,如果该数据包的头部信息与交换机流表中某些流表项定义的匹配规则相匹配,那么就匹配这些流表项,并基于优先级顺序执行相应的流表动作。如果流表项与数据包的关键信息相匹配,则该流表项所关联的计数器会被更新。如果数据包与交换机中的所有流表项均不匹配,则交换机会将其发往控制器;控制器根据该数据包的特征,对其制定合理的转发策略并分解成一个个流表项分发到各个交换机,该数据包就会在交换机中依照新的表项进行转发。 2) 控制器
控制器会记录每一种数据类型的状态,包括目标数据和实时数据等。当交换机的表项不能匹配时,交换机会向控制器请求新的转发策略;控制器根据当前的网络情况以及该类型数据的状态制定转发策略,并将转发链路拆解成路由表项分发到各个交换机中。 3) 终端监控设备
终端监控设备设立在终端设备上,如PC、服务器等。主要用于监控数据包到达终
端(目的地)时的延时和丢包率,这些统计信息会周期性地被发送到控制器,用于更新该类型数据包的实时信息和参数,达到反馈的目的,从而影响动态路由的决策。 路由选择算法一般分为静态路由和动态路由。静态路由算法无法根据网络流量和拓扑结构的变化来对路由表进行调整,而动态路由算法则可以依靠网络当前的状态信息来决定。这种策略能较好地适应网络流量、拓扑结构的变化,有利于改善网络的性能。在进行最优路径选择时,大多数的动态算法都会根据网络的实时参数,如延时、带宽和丢包率等,找出从起始点到终点的时延或者是代价最小的链路进行分组转发。但由于算法复杂,获取实时参数困难,加重了网络的负担。
不同于传统的路由算法,基于SDN的路由选择方法有效地规避了现有方法存在的缺点,能够轻易地获取网络拓扑的信息和实时的参数,从而动态、及时地调整路由信息。在参考实时网络参数的同时,本文提出的路由选择方法还会根据某类型数据的全局参数,对路由选择时的链路代价进行补偿。
现有N个节点(转发器)组成的网络,它们都连接到同一控制器。对于任意一对节点i,j(i=1,…,N,j=1,…,N,i≠j),若i, j邻接且存在可行的链路,Ci,j(t,k)代表数据类型k在该链路t时刻的转发代价,Di,j(t)代表该链路在t时刻的实时延时,Li,j(t)则代表链路在t时刻的实时丢包率,Ci,j(t,k)是由Di,j(t)和Li,j(t)计算得到的,如式(1)。 其中DCk(t)为数据类型k在t时刻的延时补偿,LCk(t)为数据类型k在t时刻的丢包率补偿,s为网络丢包敏感度,默认情况下s为1,当网络对于丢包更加敏感时,s的值可以适当增加。DCk(t)计算见式(2)。
其中Dlk(t)为数据类型k在t时刻的全局平均延时,DRk为该数据的延时要求,当DRk≥Dlk(t)时,该类型数据在网络中的延时低于要求的延时,控制器在对该数据进行路由选择时,延时的重要程度就会下降,反之说明延时很高,所以需要选择丢包率较高但延时更低的链路进行转发。LCk(t)计算如式(3)。
其中Llk(t)为该数据类型k在t时刻的全局丢包率,LRk该数据要求的丢包率,当
LRk>Llk(t)时,说明丢包率在可接受的范围,在进行路由选择时, 就可以多考虑延时方面,反之则需要选择延时可能较高但丢包率更低的链路,如式(4)、(5)、(6)。 LCk(t)=
numk(t)=numk(t-1)+numk(t′)
其中DCk(t-1)与LCk(t-1)分别为t时刻前一周期(后文都称为t-1时刻)数据种类k的全局延时和丢包率,DCk(t′)与LCk(t′)分别是数据k在t时刻新记录到控制器的平均延时和丢包率,numk(t-1)与numk(t′)分别为数据种类k在t-1时刻的包的总数和在t时刻记录到控制器的包的数量。这些信息都需要依靠POX中的组件PortStatsMonitor来周期性的获取,相应的计算会在控制器中进行。
控制器掌握到网络实时的拓扑信息和参数后,会构建一副以可用链路为边,转发器为节点的无向图,其中点i,j之间的边在t时刻实时的转发代价为Ci,j(t,k)。若有数据包从起始点s发送到终点t,当该数据包在经过某个交换机r时,没有发现匹配的转发规则,交换机就会将该转发请求发送到控制器。控制器会根据请求,找到一条从r点到t点的无环路径k1→…→kn(n≥2,r=k1,t=kn)进行转发,得式(7)。 本文采用SPFA最短路算法,得到r点到t点的最短路径,并将转发规则分发到路径经过的交换机。这些规则会周期性的进行清空,既防止匹配表项太大影响转发速率,也避免了新旧规则之间发生的冲突[10-11]。
实验采用POX控制器,Mininet网络模拟器。模拟器中包括6台主机、4台交换机,其拓扑结构,如图2所示。
首先对基本的QoS队列进行测试,设定交换机的总带宽为100 Mbits,在交换机s1上设置队列q0和q1,并设置初始比例分别为70%和30%。现有从h1发送到h2流量稳定为60 Mbits/sec的数据p0以及从h3发送到h2流量稳定为50 Mbis/sec的数据p1。其中p0被设置进入q0队列而p1被设置进入q1队列,队列的流量调整周期为30秒。动态队列启用前,启用后5秒,35秒以及65秒流量
大小和数据实际流量大小的情况,如表1所示。
启用前p0与p1的发送速率之和接近于交换机吞吐率的最大值,并且相对平均。在动态队列启动之后的第一个周期(即启动后5秒)中,p1的发送速率受到了。根据动态队列算法,在第二个周期时,队列q1从q0中调用了一部分流量,相较于第一个周期,吞吐率有了明显的提高。
图3给出了队列q0和q1限速的变化情况,如图3所示。
动态队列刚启用时,q1的流量远远不够,所以在前两个周期,q1的限速都在增大。在第三周期(即65秒)时,q0的流量也出现缺口,调整之后,q0的限速上升。由于交换机总的速率达不到所有数据的速率之和,队列的比例会一直发生变化,从65 s到215 s可以看出,q0与q1呈现出来回平衡的规律,而当队列更多时,这个规律可能更为复杂。
接下来需要验证动态路由。lk0连接h1与s1,其延时为10 ms,lk1连接s1与s2,其延时为20 ms,lk2连接s1与s3,其延时为30 ms,lk3连接s1与s4,其延时为40 ms,lk4连接s2与s5,其延时为10 ms,lk5连接s3与s5,其延时为10 ms,lk6连接s4与s5,其延时为10 ms,lk7连接s5与h4,其延时为10 ms。其中lk1的丢包率为40%,lk2的丢包率为20%,其余的链路丢包率都为0,另络对于丢包的敏感系数s为默认值1。
现有大量同类型数据需要从h1发送到h4,其延时要求低于80 ms,丢包率要求低于5%。数据在转发地过程中一定会经过s1、s5,以及s2、s3、s4 3个交换机中的一个,并且其余经过的链路代价都相等,所以只需要监控s1到s2、s3、s4的转发情况,也就是说计算lk1、lk2、lk3的转发代价就可以知道动态路由算法得到的转发路径,如表2所示。
当动态路由启动时,控制器没有上一周期该数据的参数,所以默认为目标的延时和丢包率,如图5所示。
根据算法计算,lk1的转发代价较低,数据转发的路径是h1→s1→s2→s5→h4。其实际延迟和实际丢包率为62 s和43%,延时在要求的范围内,但丢包率远远超过了低于5%的要求。于是在第二个周期,算法对于丢包率的敏感度大幅度提高,使得lk3的实时代价最低,转发路径变更为h1→s1→s4→s5→h4,这是实时延时和丢包率都低于要求的值,达到了算法的目的。
本文提出了一种基于SDN的动态QoS方法。其中,动态队列能够实时地调整交换机各个队列的限速,既满足了网络对于服务质量的要求,又提高了整体的吞吐率;动态路由算法不仅借鉴了网络的实时参数,还将数据包到达目的地的延时和丢包情况纳入到决策中来,使得决策算法更具有针对性和侧重性,更加契合数据的特点和网络的实际情况,从而保证不同数据类型的服务质量,提高网络的运行效率。最后使用POX控制器和Mininet网络模拟器验证了算法的有效性。未来的研究主要侧重于将转发代价中的延时和丢包计算拆解开来,得到更准确的代价公式;建立更完善的模拟环境,使得测试更加可靠。
曹袖(1968-),男,硕士、高级工程师。研究方向:计算机网络、分布式处理、智能电网等。 【相关文献】
[1] Li Hu-sheng,Zhang Wei-yi. QoS Routing in Smart Grid[J]. Mathematics,2010:1-6. [2] Long Hui,Shen Yao,Guo Min-yi,et al. LABERIO: Dynamic load-balanced Routing in OpenFlow-enabled Networks[C]. IEEE International Conference on Advanced Information Networking & Applications,2013:290-297.
[3] S Civanlar,M Parlakisik,AM Tekalp,et al. A QoS-enabled OpenFlow environment for Scalable Video streaming[J]. Globecom Workshops, 2010, 29(16):351-356.
[4] HE Egilmez,ST Dane,KT Bagci,et al. Open QoS: An OpenFlow controller design for multimedia delivery with end-to-end Quality of Service over Software-Defined Networks[J].Signal & Information Processing Association Summit & Conference, 2012, 8345(11):1-8.
[5] I Bueno,JI Aznar,E Escalona,et al. An OpenNaaS Based SDN Framework for Dynamic QoS Control[J]. Future Networks & Services, 2013:1-7.
[6] Zeng Fu-shan.Design and implementation of QoS system based on openflow[D].Shanghai Jiao Tong University,2014.
[7] K Jeong,J Kim,YT Kim. QoS-aware Network Operating System for software defined networking with Generalized OpenFlows[J]. IEEE Network Operations & Management Symposium, 2012, 104(5):1167-1174.
[8] JG Deshpande,E Kim,M Thottan. Differentiated services QoS in smart grid communication networks[J].Bell Labs Technical Journal, 2011, 16(3):61-81.
[9] Agarwal, Sugam, Murali Kodialam, T. V. Lakshman.Traffic engineering in software defined networks[C].2013Proceedings IEEE.2013:2211-2219.
[10] Egilmez H E, Civanlar S, Tekalp A M. An Optimization Framework for QoS-Enabled Adaptive Video Streaming Over OpenFlow Networks[J]. IEEE Transactions on Multimedia, 2013, 15(3):710-715.
[11] Ishimori A, Farias F, Cerqueira E, et al. Control of Multiple Packet Schedulers for Improving QoS on OpenFlow/SDN Networking[C].European Workshop on Software Defined Networks. 2013:81-86.