,,2,
(1.武汉科技大学a.计算机科学与技术学院; b.湖北省智能信息处理与实时工业系统重点实验室,武汉 430065;2.湖北语言与智能信息处理研究基地,武汉 430072)
互联网的快速发展对整个社会产生了深远的影响,然而数量庞大的网络设备也带来了巨额的能耗[1],网络节能也越来越成为网络设计的重要考虑因素。与此同时,网络的最终目的是给用户提供高性能的服务,服务质量和用户体验是非常重要的2个方面。尽管网络能耗正在成为业界关注的重点,但节能不应以较大的网络性能损失为代价,因此,根据当前网络动态调节网络能耗和性能成为未来网络发展的重要方向。
绿色网络的实现,会使用流汇聚、路由选择等策略。它们的基本思路都是最小化资源需求,避免资源浪费,这就很容易造成带宽竞争加剧、链路高负荷、网络时延等情况,这种设计是在最小化资源需求的前提下实现网络的功能。虽然这种设计实现了网络功能,但其并没有考虑到网络性能和用户体验,最终造成网络性能和服务质量的降低。
在传统网络的层次结构中,封闭的网络设备内置了过多的复杂协议,科研人员无法在真实环境中规模部署新协议[2],同时网络能耗和性能评价的标准存在多样性,实现能耗和性能的动态调节存在着部署和评价困难等问题。在传统网络中往往只能实现网络节能或者只能使用超额资源供给、提高网络冗余来提高网络性能。文献[3]给出了网络能耗和性能动态调节的模型,并给出了在具体流量需求下的动态调节方案。然而,在当前网络能耗严重的情况下,需要从网络全局的角度考虑能耗和性能,因此需要新的网络架构和新的机制来实现能耗和性能的动态调节。
网络按照区域规模划分可分为局域网、城域网和广域网。传统网络的设计会使用大量冗余链路和超额资源供给以保证网络的性能和可靠性[4]。广域网由于广泛采用网状拓扑(全互联拓扑),使用大量冗余链路,在保证服务质量的同时产生了巨大的能耗。为此,本文基于软件定义网络(Software Defined Network,SDN),提出一种在广域网环境中能耗和性能的动态调节机制,使用休眠和启发式算法,能够根据用户对网络性能的关注程度弹性地调节网络结构,根据网络状态反馈进行实时自适应调整。定义新的网络评价方法,对能耗和性能的调节进行评价,并在模拟环境中实现验证。
传统网络存在扩展困难等问题,互联网经过三十多年的高速发展,网络技术也越来越成熟,逐渐孕育出一种新型的网络体系架构,即软件定义网络,2009年,Mckeown教授正式提出了SDN概念[5]。利用分层思想,SDN将交换机网络的控制平面和数据平面分离,控制功能迁移到控制器并向上层提供应用程序编程接口[6],控制层使用OpenFlow协议可以获取底层网络设备的运行状态等细节数据,通过将二层转发和三层路由表机制抽象为流表,控制层向数据转发层的网络设备下发流表便可以控制数据转发规则,同时控制层向应用层提供操作网络设备的接口,为应用层的设计提供了良好的平台。通过开放南向和北向接口,SDN实现应用和网络的无缝集成,南向接口的统一开放屏蔽了底层物理转发设备的差异,实现了底层网络对上层应用的透明化,SDN的出现使得网络具有可编程性质。
SDN目前主要应用于流量工程、网络安全以及负载均衡,随着SDN应用的不断扩展,SDN的应用范围也在不断延伸,从最开始的校园网,现在越来越多的公司企业也正在采用SDN对网络进行优化,例如Google公司搭建了基于SDN架构的B4系统[7]来实现流量平衡。微软公司的SWAN系统利用SDN技术实现数据的高效利用。越来越多的数据中心也在使用SDN架构提高链路利用率降低能耗[8-10]。在无线网络中,也在利用SDN提高网络可靠性以及降低能耗[11]。
目前主流的能耗管理机制可以分成以下2种:睡眠-唤醒机制和动态速率调节机制[12]。睡眠-唤醒机制可以让负载较低的链路处于休眠状态,链路能耗降为0,从而实现节能;速率自适应机制是根据链路的负载动态调节链路的带宽。文献[13]对2种能耗管理机制进行了比较,指出睡眠-唤醒机制的节能效果更好且实现代价小,故本文使用睡眠-唤醒机制实现网络能耗管理。
研究表明,设备负载对于网络能耗影响很小,其主要因素是网络中处于开启状态的元素[14],因此,减少网络中处于工作状态的元素可以显著减少网络能耗。在处于工作状态的网络设备中,主要的能耗来源为CPU、内存、端口等元素。网络中,除了链路元素外,网络设备的其他元素无法实现休眠或者休眠代价太高,故本文中实现链路的睡眠-唤醒。
在传统网络的设计中,通过冗余链路和设备,提高网络的可靠性。然而,大量的冗余链路导致很多网络元素处于工作状态,引起网络能耗,减少冗余虽然可以减少网络能耗,但又会导致网络性能和可靠性降低。因此,通过使用休眠机制,动态的增加网络中的冗余元素可以动态调节网络的能耗和性能。
在传统网络中,实现动态的睡眠-唤醒需要设计新的协议或者更换网络设备,扩展性较差,具有很大的实现开销和经济代价。相较于传统网络,在SDN网络架构中,控制层可以获取底层网络信息,并对底层网络元素(链路、交换机等)进行控制,通过控制增加或者减少底层网络的冗余链路,便可灵活地实现网络能耗和性能的动态调节,同时由于SDN核心技术OpenFlow将底层设备各自的控制平面集中到SDN架构的控制层,底层转发设备只需要根据控制层下发的数据转发规则进行数据转发即可,减少了大量底层网络设备在拓扑数据维护和路由计算的能耗,节能效果更加明显。
图1为网络性能和节能动态调节架构。整个架构分为3层:应用层,控制层以及数据转发层。应用层通过北向接口和控制层连接,使用北向接口控制数据转发层的数据转发;应用层包含用户输入模块、策略选择模块、策略实施模块、系统反馈模块,共同实现网络能耗和性能动态调节的核心功能;数据转发层为支持OpenFlow协议的交换机,数据转发层通过OpenFlow协议连接南向接口和控制层连接,根据控制层的指令修改自己的转发规则以及更改自己的状态。控制层为应用层提供操作数据转发层的接口。
图1 网络性能和节能动态调节架构
网络能耗和网络性能之间存在着如下所示的关系:
Z=αP+(1-α)C
(1)
其中,P表示网络的性能,C表示网络的能耗,Z表示网络能耗和性能之间的调节。由式(1)可以看出,网络能耗和性能之间存在着动态调节,假如α= 0,则Z=C,此时只关注网络的能耗;假如α= 1,则Z=P,此时只关注网络的性能;α∈(0,1)时,则关注点会在能耗C和性能P之间动态变化,故能耗和性能需要根据网络状态,使用应用层的4个模块进行动态调整。
1)用户输入模块
系统在初始运行时,α设置为1,此时系统只关注网络性能,系统反馈模块持续向用户反馈当前网络运行状态,用户获得网络运行状态后,就可以参考当前α值和网络运行状态对α值进行调整。
2)策略选择模块
系统对能耗和性能的调节分为2个阶段:第1个阶段α∈[0,0.5],在此阶段,用户关注的重点是网络能耗;第2个阶段α∈(0.5,1],此阶段用户主要关注网络性能。在用户输入模块,输入α值后,策略选择模块根据α值判断此时能耗和性能调节所处的阶段,根据不同的阶段使用不同的算法和策略计算最新的网络拓扑。
3)策略实施模块
策略实施模块根据所选择的能耗和性能调节策略计算得到最新的网络拓扑,对当前网络拓扑进行更新。
4)系统反馈模块
用户选择α值可能会改变网络的拓扑,从而改变网络的能耗和性能。由于网络流量不断变化,流量突然涌入或者减少都会使α值的设置不符合当前网络状态,系统反馈模块会及时向用户反馈当前网络的状态,供用户参考,从而使用户能够继续选择更合适的α值,以实现弹性自适应的网络能耗和性能的调节。
假设整个网络为G(N,V),N为网络中的节点集合,V为网络中的链路集合,IN表示网络中节点的数量,IV表示网络中链路的数量。对于整个网络,假设网络能耗为CG,则:
CG=CN+CV
(2)
其中,CN表示网络节点的能耗,CV表示网络链路的能耗。CNi表示第i个网络节点的能,则:
(3)
(4)
这些元素包括端口、线卡、CPU、内存、基带芯片等,在以上元素中,若设备处于工作状态,除了端口和线卡以外,在正常工作时其他设备元素都无法关闭,因此,在使用链路休眠机制进行能耗管理时,式(4)中只有通过改变INi也就是改变端口的数目,才可以实现对能耗的管理。综上所述,本文对节点进行能耗管理时,是通过关闭与某个端口相连的链路,从而关闭端口以及端口的线卡,以达到节能的效果。通过以上分析可知,减少链路可以减少处于工作状态的端口,而冗余的链路可以提高网络的可靠性和性能,因此实现网络能耗和性能动态调节的方式就是增加或者减少网络中的链路。
基于上述算法分析,提出SDN网络环境中的能耗和性能动态调节算法。
首先获取系统的网络拓扑,获取网络拓扑后就可以对整个网络结构分析。从第2.3节的分析可知,实现节能和性能的动态调节是通过增加和减少链路实现的,因此,在获取获取网络拓扑后便要获取网络的链路信息,包括网络链路的能耗和网络的带宽。获取到所有的链路信息后,将这些链路按照能耗和带宽分别进行排序得到Le和Lb(Le为按照链路能耗从小到大排序的链路集合,Lb为按照带宽从小到大进行排序的链路集合),以便策略选择模块和策略实施模块进行分析计算。
Le和Lb是网络中所有链路的集合,策略选择和策略实施模块在进行计算时,需要是使用Le和Lb进行计算,在计算过程中需要增加和减少链路,同时在计算过程中需要保证网络中所有节点之间的是连通的(网络中任意两点之间存在一条路径),因此,在计算之前需要去除Le和Lb中不能处于休眠的链路,假设所有网络拓扑中不可以处于休眠状态的链路集合为Lneed。
如图2所示,在示例拓扑中,为了保证网络中任意2个节点之间是连通的,节点N2和节点N3之间的链路不能处于休眠状态。
图2 不能处于休眠状态的链路演示
在网络G(N,V)中,当V中所有链路都启用,此时网络中的链路冗余最大,网络的性能也最高,此时的α取值为1;当V中使用的链路只能满足整个网络的连通且链路是从Le中从小到大选取的,再删除一条路径整个网络便无法联通时,此时网络的链路冗余最小,网络的性能也最小,能耗也最小,α取值为0,α值的大小就代表整个网络中参与路径计算的链路数目的多少。在网络启动的初始阶段,参与路径计算的是网络G(N,V)的全部链路,此时网络的能耗最大,网络的性能最高,α为1。在第2.2节的策略选择模块中,将α的取值分为2个阶段:[0,0.5]为关注网络能耗阶段,(0.5,1]为关注网络性能阶段,这2个阶段分别选择不同的策略来选择开启和睡眠的链路,以达到动态调节网络能耗和性能。
α在[0,0.5]区间,此时网络最关注的是网络的能耗,为了实现α的在此区间的动态调节,首先要保证网络中所有节点是连通的(即保证网络中任意2个节点之间有路径可以达到)。由于此时最关注的事网络的能耗,在使用启发式算法计算最小拓扑时,会从Le中按照网络能耗从小到大选取,假设最小拓扑中的链路集合为Lmin,则算法如下:
算法1α∈[0,0.5]最小拓扑查找算法
Lmin= Le
Ltmp=Le-Lneed
i = number of links in Ltmp
Repeat
link = link at index i of Ltmp
if( link is deleted from G(N,V) and
G(N,V) is connected )
Lmin=Lmin-link
i = i-1
end
until (i=0)
算法1计算出α∈[0,0.5]时的最小拓扑,也就是α=0时的网络拓扑Lmin,则后续会参与α调节计算的链路集合为Lmc=Le-Lmin,Lmc中链路的数量为Nmc。假设此时α设置为α1,则在最小计算拓扑的基础上,需要添加的链路数目为Nmc×α1条(Nmc×α1的值可能有小数部分,由于此时α∈[0,0.5],系统关注网络能耗,因此直接对Nmc×α1取整数)。
α在(0.5,1]区间,此时网络最关注的是网络的性能,同α在[0,0.5]区间一样,为了实现α在此区间的动态调节,首先也要保证网络中所有的节点是连通的。由于在此区间关注的事网络的性能,因此在使用启发式算法计算最小计算拓扑时从Lb中选取。
算法2α∈(0.5,1]最小拓扑查找算法
Lminb= Lb
Ltmp= Lb-Lneed
i = number of links inLtmp
Repeat
link = link at index i of Ltmp
if( link is deleted from G(N,V) and
G(N,V) is connected )
Lminb= Lminb-link
i = i-1
end
until (i = 0)
经过以上算法计算出α∈(0.5,1]时的最小计算拓扑,假设此时最小计算拓扑中链路的集合为Lminb,则后续会参与α调节计算的链路集合为Lmcb=Lb-Lminb,Lmcb中链路的数量为Nmcb。假设此时α设置为α2,则在最小计算拓扑的基础上,需要添加的链路数目为Nmc b×α1条(Nmc×α1的值可能有小数部分,由于此时α∈(0.5,1],系统关注网络性能,故直接对Nmc×α2使用进一法)。
通过以上步骤计算出网络的最新拓扑后,使用迪杰斯特拉算法重新计算网络中各个节点的路由规则。计算完最新的拓扑和网络节点最新的路由规则后,策略实施模块将最新的拓扑和路由规则下发到网络节点。
由于网络流量具有突发性,α值的设置可能无法及时适应网络的流量,因此需要实时计算网络的负载情况,为了防止网络性能过低和网络能耗过高,设计如下预警阶段:
1)提示阶段
如果有某条链路的负载超过了链路带宽60%,那么会提示用户需要增加α的值,如果所有链路负载均低于链路带宽的30%,那么提示用户可以减小α的值。
2)强制调整阶段
当网络中某条链路的负载已经超过链路带宽的70%,则系统会自动增大α值;如果所有链路负载均低于链路带宽的10%,那么系统会自动减小α的值。
由第2.2节可知,网络能耗和网络性能之间存在着如下所示的关系:
Z=αP+(1-α)C
其中,P表示网络的性能,C表示网络的能耗,Z表示网络能耗和性能之间的调节。基于网络能耗和性能的关系,提出如下网络评价方法。
对于网络G(N,V),IV表示网络中链路的数量,IN表示网络中节点的数量,IS表示网络中处于休眠状态的链路,定义网络节能效率为:
ηC=IS/IV
(5)
由于网络性能的评价指标有带宽、丢包率、抖动等参数,评价方式不相同,因此定义网络性能效率为ηp。本文选择带宽和抖动作为网络性能评价指标。Bmax表示测试链路在α=1时的网络带宽,Bcur表示测试链路当前网络带宽,则:
ηP=Bmax/Bcur
(6)
Jmin表示测试链路在α=1时的抖动时延,Jcur表示测试链路当前抖动时延,则:
ηP=Jmin/Jcur
(7)
定义网络能耗和性能调节因子:
ψ=αηP+(1-α)ηC
(8)
其中,ψ的大小代表网络能耗和性能调节的合理程度,ψ越大表示能耗和性能调节的越合理。在达到相同性能时,ψ越大表明能耗越小;而在能耗相同时,更大的ψ表明取得更高的性能。
本文实验是基于floodlight+mininet组成的SDN虚拟环境完成的,具体环境如下:
1)硬件环境
PC机;CPU为2.6 GHz;RAM为4 096 MB。
2)软件环境
操作系统为64位ubuntu16.04;floodlight;mininet;iperf。
floodlight为当前主流SDN控制器,具有稳定性和易用性的特点,能够灵活地控制SDN网络。mininet是轻量级的软件定义网络系统平台,同时提供了对OpenFlow协议的支持,可以模拟真实环境中的SDN网络。iperf是一款流行的网络性能测试工具,可以测试带宽等网络参数。
1)广域网常使用网状拓扑,故在SDN模拟环境中建立如下示例拓扑。
2)随机设置图3测试拓扑中链路的带宽,获得的链路带宽如表1所示。
图3 网络拓扑测试
表1 网络拓扑链路测试
由于是在同样的网络环境中,在通常情况下,链路的带宽和能耗成正比,因此可以假设网络链路的能耗也是按照表1的排序。
3)α∈[0,0.5]和α∈(0.5,1]时的最小拓扑分别如图4、图5所示。
图4 α∈[0,0.5]时的最小拓扑
图5 α∈(0.5,1]时的最小拓扑
根据第2.4节中的算法可知,α=0和α=1的拓扑分别如图3、图4所示。α其他值会根据第2.4节中的算法实现动态调节,网络拓扑也会根据α值的变化动态改变,以实现能耗和性能的动态调节。
4)根据第2.5节中的网络评价方法对不同α值所对应的网络拓扑进行评价。测量使用随机模型,任意选择测试拓扑中2个交换机,测试2个交换机之间在不同α值时的网络能耗和性能调节因子ψ的变化,本测试选择S1和S5 2个交换机。在本测试中,使用网络带宽和网络抖动作为网络性能指标。使用网络带宽和网络抖动作为网络性能指标所得到的α与ψ的变化关系如图6~图8所示。
图6 UDP带宽作为性能评价指标时α与ψ的变化关系
图7 TCP带宽作为性能评价指标时α与ψ的变化关系
图8 使用抖动作为性能评价指标时α与ψ的变化关系
首先在mininet模拟环境中建立使用网状拓扑的广域网网络,并设置了OpenFlow交换机中之间的链路带宽。根据2.4节中的算法分析,分别计算出α∈[0,0.5]和α∈(0.5,1]时的最小拓扑,分别如图4、图5所示。图3、图4分别是α=1和α=0时的拓扑,根据2.4节中的算法可知,本文的动态调节机制会根据网络的负载情况动态调节α值,从而动态调节网络拓扑,以实现网络能耗和性能的动态调节。
2.5节中设计了网络能耗和性能的调节因子,调节因子ψ的大小反映了能耗和性能调节的合理程度。由于目前的广域网常使用网状拓扑,为了保证网络性能,存在大量冗余链路,没有考虑能耗问题,此时,α=1,文献[7]指出互联网的忙时最大平均链路利用率不足30%,故根据2.5节分析可知,在目前的广域网环境下,ψ≤0.3。根据第2.4节分析可知,在图3所示的测试拓扑中,α=1和α=0.9经过计算具有相同的网络拓扑,故α=1和α=0.9时,ψ值相同。
通过图6和图7结果可知,在分别使用UDP和TCP带宽作为性能评价指标时,α的变化引起网络拓扑的变化,从而引起网络性能发生变化,最终导致ψ的变化,但是不论α在[0,1]之间如何变化,ψ始终不小于0.3;图8的结果表明,在使用抖动作为性能评价指标时,α的变化引起ψ的变化,但是不论α在[0,1]之间如何变化,ψ始终不小于0.3。
图6、图7和图8的实验结果表明,α在[0,1]之间变化时,ψ的大小也发生变化。传统网络(α=1)侧重性能导致ψ小于0.3,在实际的网络中,为了保证网络的高性能会增加冗余链路,产生巨大的网络能耗;在本文实验中,当α在[0,1)变化时,由于可以根据系统反馈模块弹性实时改变α,并且根据2.4节对网络结构进行修改,在保证网络性能的同时减小了网络能耗,在相同网络能耗时达到较高的网络性能,与传统网络相比,ψ始终大于0.3。实验结果表明,传统网络侧重网络性能的提高而忽视了网络的能耗,导致网络调节因子ψ较小,即使网络负载降低依然存在大量的冗余,网络能耗和性能不能随着网络状态进行动态调整,本文的机制在网络负载不断变化时会弹性实时自适应修改网络结构,既不会造成大量冗余,也不会造成网络性能降低,网络调节因子ψ也大于传统网络。
目前的节能策略主要是将一些低利用率或闲置的网络单元(交换机、路由器、链路)转入睡眠状态,把流汇聚到尽可能少的路径中[15-16],最终可能会造成网络性能降低。为此,针对传统网络性能和能耗调节实现复杂,基于链路休眠机制,本文提出SDN网络环境中广域网性能和能耗的动态调节机制,并在mininet中搭建了模拟环境进行验证,同时也基于提出的评价算法对传统以及SDN网络环境中的调节算法进行了对比。实验结果表明,本文提出的调节机制在SDN网络中实现了性能和能耗的动态调节,相较于传统网络,该算法更加合理,在降低网络能耗的同时保证了网络利用率高于传统网络。
由于使用启发式算法,在修改α值时可能会引起网络拓扑的波动,下一步将会利用SDN在流量工程中的独特优势,优化网络能耗和性能的动态调节。
[1] 张 法,Antonio F A,侯晨颖,等.网络能耗系统模型及能效算法[J].计算机学报,2012,35(3):603-615.
[2] 张朝昆,崔 勇,唐翯祎,等.软件定义网络(SDN)研究进展[J].软件学报,2015,26(1):62-81.
[3] BRUNILDE S,HAKIM M.On reliability,performance and Internet power consumption[C]//Proceedings of the 7th International Workshop on IEEE Xplore Conference:Design of Reliable Communication Networks.Washington D.C.,USA:IEEE Press,2009:259-264.
[4] BOLLA R,BRUSCHI R,DAVOLI F,et al.A northbound interface for power management in next generation network devices[J].IEEE Communications Magazine,2014,52(1):149-157.
[5] MCKEOWN N,ANDERSON T,BALAKRISHNAN H N,et al.Openflow:enabling innovation in campus net-works[J].ACM Sigcomm Computer Communication Review,2008,38(2):69-74.
[6] 段 通,兰巨龙,程国振,等.基于元能力SDN功能组合机制[J].通信学报,2015,36(5):156-166.
[7] JAIN S,KUMAR A,MANDAL S,et al.Experience with a globally-deployed software defined WAN[J].ACM SIGCOMM Conference on Sigcomm,2013,43(4):3-14.
[8] 董 仕,李瑞轩,李晓林.基于软件定义数据中心网络的节能路由算法[J].计算机研究与发展,2015,52(4):806-812.
[9] LI D,SHANG Y,CHEN C.Software defined green data center network with exclusive routing[C]//Proceedings of IEEE Infocom Conference on Computer Communications.Washington D.C.,USA:IEEE Press,2014:1743-1751.
[10] 汪 帅,赵安澜,李 书.基于SDN的数据中心网络节能机制研究[J].无线互联网科技,2016(1):44-45.
[11] 潘 甦,陶 帅,刘胜美.SDN 在无线网中的研究进展[J].南京邮电大学学报(自然科学版),2016,36(3):18-22.
[12] 林 闯,田 源,姚 敏.绿色网络和绿色评价:节能机制、模型和评价[J].计算机学报,2011,34(4):593-612.
[13] BIANZINO A P,CHAUDET C,ROSSI D,et al.A survey of green networking research[J].IEEE Communications Surveys & Tutorials,2012,14(1):3-20.
[14] FRÉDÉRIC G,JOANNA M,TRUONG K P,et al.Minimization of network power consumption with redundancy elemination[J].Computer Communications,2012,59:247-258.
[15] BOLLA R,BRUSCHI R,CIANFRANI A,et al.Enableing backbone networks to sleep[J].IEEE Network,2011,25(2):26-31.
[16] GUNARATNE C,CHRISTENSEN K,NORDMAN B,et al.Reducing the energy consumption of Ethernet with adaptive link rate(ALR)[J].IEEE Transactions on Computers,2008,57(4):448-461.