基于蚁群算法的网络探测优化方法与流程

文档序号:16245284发布日期:2018-12-11 23:31阅读:585来源:国知局
基于蚁群算法的网络探测优化方法与流程

本发明涉及基于蚁群算法的网络探测优化方法。

背景技术

低碳节能已经成为当前最受关注的话题之一。据统计,目前信息和通信技术领域的碳排放超过全球排放总量的2%,服务于互联网的服务器、路由器、交换机、冷却设施等各种设备的耗电占全球总耗电量的5.3%,高能耗已经成为网络通信领域亟待解决的问题。在数据网络中,节能策略分为设备级和网络级。设备级节能策略主要研究减少单个或某种设备能耗的技术方法,如针对服务器、主机等设备的动态频速率调整、虚拟机放置与迁移、休眠等技术;而网络级节能策略则从网络全局考虑,试图使网络整体的能耗与负载与比例,由于传统网络的设计原则要求过度供应和冗余,这与节能的理念背道而驰,因此要对网络整体的设计和架构、协议与路由进行优化和改进,建立绿色网络。

重新设计和部署网络架构是一个庞大的工程,因此我们常用的方法是改进协议和路由,通过流调度和设备休眠机制,在满足数据传输需求的前提下最小化传输使用的网络资源。具体实现方法是使用能耗感知的路由选择合理路径,生成一个满足流量需求的拓扑子集,而后采用流调度将流量聚合到这部分链路上来,关闭空闲链路,达到节能目的。目前在这方面研究有很多,但大部分算法仅限于针对特定能耗模型在实验环境中运行,对实际部署中的细节问题考虑较少,距离应用还有差距。

进行能耗感知的路由,需要掌握网络各部分的能耗状态,以指导路由决策,而在路由优化生成拓扑子集之后,也要获悉网络整体的能耗以评价优化的结果,因此需要对能耗进行实时准确的探测。而能耗是网络中一类特殊的度量指标,它根据网络环境的变化实时改变,且受负载、设备工作机制、物理环境等多因素的影响,难以监测和采集。

传统的网络状态探测方式按采集信息的方法分为主动式和被动式。主动测量通过发送数据包去探测被测对象的情况,通过分析被测对象的响应得到反馈指标,它具备实时性,但监测者的参与对网络性能造成了一定影响,所以并不准确。现有基于链路状态的路由协议就使用这种方法,如ospf,它通过节点间频繁交换数据包获知网络的状态,一旦状态发生变化就用洪泛法向全网传递信息,而各节点也要重新计算路由。这种方法开销较大,且在以能耗为优化目标的网络中,会使设备链路速率、休眠状态发生改变,对能耗造成影响。被动测量是在监测点截取一部分真实的网络数据,通过分析其中的标志性数据得到网络和设备的信息,一些网络监控软件采用这种方法,它不会对网络性能造成影响,但实时性差且一般需要管理权限,而且无法分析得到能耗信息。



技术实现要素:

为了解决现有技术的不足,本发明提供了基于蚁群算法的网络探测优化方法,利用算法的随机分布式特点,设计一种利用蚁群对网络能耗信息进行探测和采集、并将能耗作为度量指标对网络路由进行优化的方法;

基于蚁群算法的网络探测优化方法,包括:

网络中各节点根据流量分布,释放出流蚂蚁进行巡游,流蚂蚁在到达某个节点后,生成探测蚂蚁探知周围网络的状况,在掌握路径的下一跳可选节点的链路延迟信息、带宽利用信息和下一跳可选节点的当前功率值后,流蚂蚁筛选出候选节点,启发式地构建到达目标的巡游路径;在到达目的节点或超过最大生存时间后,流蚂蚁提交记录的路径信息,路径信息组成本次迭代的路径集,计算拓扑子集的总能耗,继而计算更新的信息素,让流蚂蚁原路返回释放更新的信息素;经过若干次的迭代,流量逐渐集中到部分路径上来,生成满足数据传输需求的低能耗的拓扑子集。

基于蚁群算法的网络探测优化方法,包括:

步骤(1):加载目标网络数据;初始化每条路径上的信息素;

步骤(2):网络中每个源节点按照数据流传输方向释放出流蚂蚁向目的节点移动,每只流蚂蚁都与一个流量需求一一对应;每只流蚂蚁都配置有自身流量需求对应的源节点、目的节点和带宽需求;

每只流蚂蚁在移动过程中,记录走过的路径,采集路径上每个节点的当前功率值;

流蚂蚁在到达某个中间节点后,将除去上一跳节点外的其它所有相邻非休眠链路的节点作为可选节点,根据下一跳可选节点的个数生成对应个数的探测蚂蚁;

每只探测蚂蚁探测与当前中间节点连接的下一跳可选节点的链路延迟信息、带宽利用信息和下一跳可选节点的当前功率值,探测蚂蚁将探测结果反馈给流蚂蚁,探测蚂蚁被销毁;

流蚂蚁根据探测结果从下一跳可选节点中进一步筛选出当前中间节点的下一跳候选节点;

步骤(3):判断是否筛选出候选节点,如果筛选出候选节点,则计算转移概率,流蚂蚁根据各候选节点转移概率,采用轮盘赌的方式选择下一跳节点,进入步骤(4);如果没有筛选出候选节点,则直接选择可用带宽最高链路,流蚂蚁移动至下一跳节点,进入步骤(4);

步骤(4):判断流蚂蚁是否到达目的节点,如果流蚂蚁到达目的节点,则将流蚂蚁采集的信息提取出来,交付中央控制节点;如果流蚂蚁未达到目的节点,则进一步判断当前流蚂蚁是否到达最大生存时间,如果到达最大生存时间,则将当前流蚂蚁采集的信息提取出来,交付中央控制节点;然后将当前流蚂蚁销毁;如果未到达最大生存时间,则返回步骤(3);

待所有流蚂蚁提交信息后,中央控制节点将所有流蚂蚁采集的信息进行汇总,采集的信息包括流蚂蚁所经过的路径和每个节点的当前功率值,从而得到网络的拓扑子集,计算拓扑子集的总功率,根据总功率计算更新的信息素;而后成功到达目的地的流蚂蚁原路返回,返回期间向所经过的路径释放更新的信息素,并根据流蚂蚁原路返回的路径,修改路径上每个节点的mpls转发表;进入步骤(5);

步骤(5):判断是否满足终止条件,如果是,就结束,输出最小能耗网络拓扑子集,调度对应的流量,关闭空闲节点;如果否,就返回步骤(2)。

进一步的,所述目标网络数据,包括:网络拓扑信息和流量需求;

所述网络拓扑信息,包括:网络中的各节点设备及其承载的线卡的工作状态,设备的底座功率pci、安装的各个线卡的功率pli、各设备线卡数mi、各节点之间链路链接的情况和每条链路的最大带宽容量cij;

所述流量需求,包括:各流量的源节点、目的节点和传输需要占用的带宽wk。

进一步的,所述初始化每条路径上的信息素,是将每条链路上n个流量需求对应的n种信息素置为一个常数τ0。

进一步的,所述链路延迟信息的计算步骤为:设探测蚂蚁准备从当前节点出发,加入当前节点发送队列的时间为ti,到达下一节点的时间为tj,则通过两节点间的时间差测出链路延迟delayij,即delayij=tj-ti。

进一步的,所述带宽利用信息的计算过程为:通过路由设备端口属性直接读出当前链路的最大带宽容量cij和当前链路已经被占用的流量

进一步的,所述下一跳可选节点的当前功率值的计算过程为:节点设备的底座功率与处于工作状态的线卡额定功率之和,再加上有流量通过时线卡能耗的增加值,即pci+α*pli+b*ωi*pli。其中a为该节点设备上所有工作线卡的数量,b为有流量通过的线卡数量,ωi对于指定节点设备为一个常数,表示节点i的线卡上在有流量经过时功率增加的百分比。

进一步的,流蚂蚁根据探测结果从下一跳可选节点中进一步筛选出当前中间节点的下一跳候选节点筛选依据是:若当前链路已经被占用的流量与带宽需求之和所占带宽比例不超过最大利用率θcij,即则保留该链路对应的节点为候选节点,否则删除。

进一步的,计算转移概率:

其中,t表示算法迭代次数,pijd(t)表示以d为目的节点的蚂蚁在第t次迭代中从当前节点i转移到下一跳节点j的概率值,allowedi(t)为所有从节点i转移的候选节点,τijd(t)为第t次迭代中链路(i,j)上以d为目的节点的信息素信息素,ej(t)为节点j的当前功率值,为节点i和j之间距离的倒数,把延迟delayij(t)作为距离代价的度量,则α、β和γ分别用来调节信息素、当前功率值和距离三种指标各自的权重;式(1)分母代表所有候选节点指标之和,其中τisd(t)为从节点i到某一候选节点s的链路上的信息素,es(t)为某一节点s能耗,为节点i和s之间距离的倒数。

进一步的,可用带宽最高链路的可用带宽即链路的最大带宽容量cij减去当前链路已经被占用的流量

进一步的,网络的拓扑子集,包括蚂蚁所经过的路径以及各节点的当前功率值,每只蚂蚁走过的路径是一条线,所有蚂蚁的路径叠加起来就是一个网,是原网络的子网。

进一步的,计算拓扑子集的总功率的步骤为:

拓扑子集的总功率e(t)为所有节点功率之和,即e(t)=∑i∈v′pi,其中v′为拓扑子集的节点集,pi为节点i的功率。

进一步的,根据总功率计算更新的信息素的步骤为:

τijd(t+1)=(1-ρ)τijd(t)+δd(t);

其中,τijd(t+1)表示第t次迭代完成后,蚂蚁经过的路径ij上以d为目的节点的信息素的量;τijd(t)表示第t次迭代初始时路径ij上以d为目的节点上信息素的量;ρ表示信息素的挥发率;δd(t)表示需要释放增加的信息素的量;e(t)表示当前迭代生成的拓扑子集所有节点功率之和;maxenergy为一个常数,表示网络能耗的最大值。

进一步的,最大生存时间是一个常数,是固定值。

进一步的,终止条件为:设定最大迭代次数及能耗方差阈值,如果达到最大迭代次数,或最近n次迭代生成的拓扑子集的总能耗值的方差小于阈值,则结束。

进一步的,调度对应的流量的步骤为:流蚂蚁在原路返回途中已通过修改mpls转发表告知沿途节点对流量数据包的转发规则,在流蚂蚁到达源节点后,源节点在后续流量的传输中通过为该流量的每个ip数据包插入mpls首部进行标记,路径上的所有节点通过识别标记建立连接的隧道,基于转发规则进行流量数据包的转发,从而完成了显式路由和流量调度。

本发明用于对网络的能耗等状态信息进行探测,继而在获知网络状态的基础上进行路由优化,达到节能的目的。首先网络中各节点根据流量分布,释放出流蚂蚁进行巡游,流蚂蚁在到达某个节点后,生成探测蚂蚁探知周围网络的状况,在掌握路径的的信息素、节点能耗和链路延迟信息后,流蚂蚁以一定的策略选择下一跳,启发式地构建到达目标的巡游路径。在到达目的节点或超过最大生存时间后,流蚂蚁提交记录的路径信息,这些路径信息组成本次迭代的路径集,我们以此计算该拓扑子集的总能耗,继而决定信息素的量,让流蚂蚁原路返回释放信息素。经过一定次数的迭代,流量会逐渐集中到部分路径上来,生成满足数据传输需求的一个低能耗的拓扑子集,从而可以关闭其它链路,达成节能的目的。

与现有技术相比,本发明的有益效果是:

(1)在同一个算法中实现了网络探测和路由优化,实时地探测网络状态信息用来为路由决策提供准确的数据支持,效果优于采用静态网络指标的传统网络优化,解决了数据传输中路径寻优相对网络动态变化的滞后性问题,在探测和优化之间形成耦合关系。

(2)蚁群算法的随机分布式特点与网络的流量负载和设备能耗的不定性相契合,我们提出流蚂蚁和探测蚂蚁的概念,充分利用蚁群的自组织性进行定点测量,与传统网络测量方法相比,它既可以规避休眠路径,又不采用广播方式,比主动测量方法对网络的影响和开销小;同时它对周围网络环境的探测是即时的,比被动测量方法实时性强、准确性高。

(3)创造性地使用能耗值作为启发信息,让蚂蚁在选择下一跳时更倾向于能耗高的节点。由于网络设备的耗能机制,高能耗代表该节点设备上工作的线卡多,在一定程度上也说明流经它的流量多,该节点为热点节点。将流量集中到热点节点和热门路径上来,一是因为它们本身就有承载较大网络流量的能力,二是只需要迁移少部分非热点路径上的流量,流量调度的代价较小。同时,以能耗为指引使得蚂蚁在构建路径时的选择性更强,可以让算法更快收敛。

(4)在构建网络能耗模型时,加入了流量对线卡功率的增加系数ω,计算能耗时考虑了网络设备休眠机制的影响,从而使模型更加贴近现实、数据更加准确。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为本发明的方法流程图;

图2为骨干网最终拓扑子集;

图3为骨干网能耗优化过程;

图4为中小网最终拓扑子集;

图5为中小网能耗优化过程;

图6为不同节点规模下的运行结果;

图7为相同节点规模不同流量下的运行结果。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本发明使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

蚁群优化算法是在真实蚂蚁觅食行为启发下提出的一种仿生元启发式算法,它具有自组织性、正反馈性、鲁棒性和并行性的特点。蚂蚁群体合作选择最佳觅食路径,在探索过程中通过在经过的路径上留下信息素间接交互信息,路径越短单位时间内通过的蚂蚁越多,留下的信息素也就越多,而蚂蚁倾向于选择信息素浓度大的路径,从而形成正反馈,使得最优路径很快被发现。同理,蚁群算法向网络中发放若干“人工蚂蚁”,通过让蚂蚁既各自探索又相互协作来生成问题的解。

将蚁群算法用于网络优化的研究已经比较成熟,在本发明中我们尝试将其用于网络能耗探测和能耗感知路由。蚁群算法的随机分布式特点与网络的流量负载和设备能耗的不定性相契合,算法执行过程中蚂蚁数据包即时地探测周围的网络环境,根据探测到的网络状态信息选择合适的传输链路,启发式地构建巡游路径,这样对网络造成的影响和代价都较小。且由于其自组织性,在具有节能机制的网络中,人工蚂蚁可以主动规避休眠路径,不会改变网络的能耗状态。

本发明关注路由设备和链路的能耗,据研究发现链路上的能耗,即网线、光纤等传输介质的能耗不到网络总能耗的1%,可以忽略。路由设备主要包括路由器、交换机等,其主要部件包括底座、处理器和若干线卡:底座上承载着设备的供电系统和总线等,处理器负责对传输的数据进行运算控制,每个线卡上有若干端口,可以连接不同的链路。在大部分时间里,只要设备上有数据传输,底座和处理器均处于工作状态,它们的能耗超过设备总能耗的一半。而当线卡的所有端口均无数据传输时,它可以灵活地选择休眠或关闭。

特定型号的路由设备,其底座、处理器和每个线卡的功率是额定的,然而在运行中其实际能耗也会随链路带宽、流量大小、物理环境等因素而有所浮动。实验表明,采用ciscogsr12008路由器,安装3个4端口千兆以太网线卡,在室温22℃时,在其中一个线卡的4个端口上传输稳定流量,带宽利用率在50%左右,数据包为中等大小(500byte左右)时,比路由器无流量通过的空闲状态下能耗提升了12w,大约为一个线卡空闲功率的13%。因此在网络的实际运行中,对于无流量或流量很少的空闲设备,我们可以忽略其它因素,根据设备额定功率直接算出能耗值;而对于热点设备则要对能耗进行实际的测量。在本发明中我们以功率度量能耗,并假设目标网络的节点设备上已安装有配套的能耗测量组件,进行探测的蚂蚁数据包能够读出这些功率值。

算法中的人工蚂蚁分为流蚂蚁和探测蚂蚁。每只流蚂蚁代表着一个数据流量需求,它在数据流的源节点生成,与流量传输并发,在网络中巡游并为流量启发式地构建传输路径。流蚂蚁在巡游路径的节点上生成若干探测蚂蚁,自发地探知周围网络的状况,并将能耗、延迟、带宽等网络信息反馈给流蚂蚁,为流蚂蚁的路由决策提供数据支持。

在路由优化中,蚁群算法一般以信息素和距离为指引构建路径,在本发明中我们进行能耗感知的路由,新加入了能耗值作为启发信息,让蚂蚁在选择下一跳时更倾向于能耗高的节点。这是因为根据网络设备的耗能机制,高能耗代表该节点设备上工作的线卡多,在一定程度上也说明流经它的流量多,该节点为热点节点。我们以蚁群构建的路径为引导,将流量集中到热点节点和热门路径上来,一是因为它们本身就有承载较大网络流量的能力,二是只需要迁移少部分非热点路径上的流量,流量调度的代价较小。同时,相比于其它能耗感知路由算法中随机构建路径或关闭链路,以能耗为指引使得蚂蚁在构建路径时的选择性更强,可以让算法更快收敛。

将全网流量向某些路径聚合,必然改变了流量的自然分布,延长了传输所经过的路径,造成延迟增大,并且热点路径上的链路负载过大,网络性能和可靠性无法得到保证。为解决以上问题,我们一是以延迟作为启发式信息,用于路由决策,把延迟作为距离代价的度量;二是为链路设定了最大带宽利用率来限制流量的过度聚合,以保证一定的服务质量,并应对网络中的突发流量。

在算法迭代生成最小能耗拓扑子集后,需要使用显式路由将流量调度到我们指定的路径上来,可以通过用多协议标签交换(mpls,multi-protocollabelswitching)建立隧道实现。

综上,算法的简明执行过程是:初始化各路径上分布的信息素,与数据流的传输并发,各源节点释放流蚂蚁向目的节点移动,在中间节点上,流蚂蚁生成探测蚂蚁并自发地探知节点周围的网络状况进行反馈。流蚂蚁根据探测到的信息,包括路径上的信息素、能耗、延迟计算一个概率函数,基于一个贪婪随机策略选择下一跳,同时考虑带宽的限制。在到达目的节点或超过蚂蚁最大生存时间后,流蚂蚁提交记录的路径信息。所有流蚂蚁提交的信息组成原网络的一个拓扑子集,我们计算出子网络的总功率,判断此路径集的优劣,继而计算出要更新信息素的量。而后蚂蚁原路返回,更新路径上的信息素。经过若干次这样的迭代,最终能够找到原网络的一个最小能耗拓扑子集,通过流调度聚合流量并关闭空闲设备和线卡,达成节能目的。我们在同一个算法中实现了网络探测和路由优化,用实时探测到的网络状态信息去指导优化,在探测和优化之间形成耦合关系,有效地提高了优化的效率。

我们假定物理网络拓扑只包含节点和链路,用一个有向图g=(v,e)来表示,v代表节点,即路由器、交换机等路由设备,e代表边,即节点之间的链路。节点设备不断产生流量,在网络中传输,假设这些流量需求是给定已知的,且在算法执行期间流量近似保持不变,我们要为这些流量分配合理路径。以特定源和目的节点标识这若干个流量,用s表示流量的源,d表示目的,w表示占用带宽,则网络中的流量用源汇对表示为sds={<s1,d1,w1>,<s2,d2,w2>,...<sn,dn,wn>}。

设节点i,j∈v,链路(i,j)∈e,我们忽略链路的能耗,各节点的基础能耗值由路由设备的型号决定,设节点i底座能耗为pci,为方便计算我们假设所有设备每个线卡只有一个端口,且同一底座上都安装同种线卡,设备上的线卡集为mi,有线卡l∈mi,一个线卡能耗为pli。根据前文的实验分析,网络协议、物理环境等对节点能耗的影响较小,可以忽略,但流量大小对能耗影响比较可观,需要计入。我们设置一个系数ωi,表示节点i的线卡上在有流量经过时功率增加的百分比。

如果节点i设备开启,则其底座必处于启用状态,设此时yi=1,否则为0;如果节点i上的线卡l开启有zil=1,反之为0;链路为双向链路,如果链路(i,j)被用到则xij=1,否则xij=0;如果流量<sk,dk>传输经过链路(i,j)则否则fij为链路(i,j)上的总流量;wk为需求<sk,dk>的带宽,也即占用的流量;限定最大带宽利用率为θ;链路(i,j)的带宽容量为cij。优化问题为寻找一个传输给定需求流量使用的最小的节点和链路的子集,关闭空闲的路由设备和工作路由设备中闲置的线卡,使得整个网络的能耗最小,也就是:

目标函数:

最小化

约束条件:

fij≤θcijxij,(i,j)∈e(2-3)

式(2-1)是网络中所有工作的节点设备能耗之和,由所有打开的底座功率加上线卡功率组成,需要注意的是链路是双向的,只要在一个方向上有流量,则两端的线卡都要开启,所以在式中我们采用向上取整的方法,这样对节点i来说,只要xij或xji任一个为1,i的线卡就必须开启,对节点j也是同理。另外,要计入总能耗的路径集,其各链路上均有流量,所以要考虑流量对功率的影响,对所有线卡的功率乘上系数(1+ωi)。

式(2-2)计算某链路的总流量,为各个需求流量在这条链路上的占用带宽之和,用于判断是否满足式(2-3)的最大带宽利用率约束。式(2-4)确保节点设备只有在所有相连的链路都关闭,即所有线卡都不工作时才可以关闭。|mi|为设备上线卡的数量,是常量,不等式左边只要有一个zil为1,即至少有一个线卡开启,则右边yi必须为1,即设备底座必定开启。

如果把网络拓扑看作有向图,能耗作为费用或代价,链路带宽看作容量,流量需求看作物资,那么该优化问题可看作是传统多商品流问题(mcf,multi-commodityflow)的变换。我们上文构建的求解这个问题的模型,在数学上属于混合整数线性规划问题(milp,mixedintegerlinearprogramming),而它是np-hard问题,在大型网络中无法在可接受的时间内求出一个较好的解,更不能根据网络当前的状态和用户的动态需求实时进行路由优化,会严重影响整个网络的效率。基于群智能理论的蚁群算法能够比较好地求解这个问题。

根据上文,网络中有n个流量需求,则按照不同流量的目的节点,网络中分布着n种信息素,我们用t表示算法迭代次数,以区分每次迭代中的参数,则第t次迭代中链路(i,j)上以d为目的节点的信息素为τijd(t)。初始时所有路径上所有种类的信息素都为常量,信息素以一定速率挥发,挥发率为ρ。为防止蚂蚁搜索空间不足而过早收敛到一个非最优解,我们要控制信息素过于集中或挥发过快,因此为信息素设置上、下限τmax和τmin。节点j能耗为ej(t),链路(i,j)延迟为delayij(t),设以延迟度量的节点间距离变量

算法具体实施步骤如图1所示,具体如下:

1、加载网络拓扑g和流量需求sds的相关数据,初始化所有路径上的信息素τijd(0)=τ0。

2、与数据流的传输并发,各源节点释放出人工蚂蚁数据包,即流蚂蚁进行巡游。每只流蚂蚁都对应一个以源汇对表示的流量<sk,dk,wk>,蚂蚁掌握该流量的源、目的和带宽信息。

3、流蚂蚁一步接一步地前进,在每个中间节点上,流蚂蚁根据候选下一跳节点的数目生成相应数量的探测蚂蚁。我们初步将除去上一跳节点外的其它所有相邻非休眠链路的节点作为候选节点,探测蚂蚁分别向这些候选节点移动,沿途记录相应链路的带宽利用情况,并通过到达下一节点与加入当前节点发送队列的时间差测出链路延迟,在候选节点上通过部署的能耗测量组件读出设备当前功率值。而后探测蚂蚁返回当前节点,将探测到的信息反馈给流蚂蚁后销毁。

4、流蚂蚁根据带宽要求进一步筛选候选节点,若链路当前流量与需求流量之和不超过最大利用率θ的限制,即则保留该链路对应的节点为候选节点,否则删除。如果所有链路都不满足带宽要求,则直接选择可用带宽最高的链路作为下一跳。然后跳至步骤6。

5、如果候选节点不为空,则流蚂蚁基于一个贪婪随机策略选择下一跳,根据路径上的信息素和探测蚂蚁反馈的能耗、延迟信息,计算得到各候选节点的转移概率,采用轮盘赌决定去向。转移概率计算公式为:

其中pijd(t)表示蚂蚁在第t次迭代中从当前节点i转移到j的概率值,allowedi(t)为所有从节点i转移的候选节点,τijd(t)为信息素,ej(t)为节点能耗,为距离的倒数,上式分子为节点j的各度量指标值之积,分母为所有候选节点度量指标值之积的总和,信息素含量越高、能耗值越大、节点距离越小,被选择的概率越大。α、β、γ用来调节三种指标各自的权重,需要根据待优化目标网络的拓扑、流量状况及设备属性进行调节。

6、在移动过程中,蚂蚁记录下走过的路径,并采集记录路径上节点的能耗值。

7、蚂蚁的最大生存时间依据目标网络拓扑、流量状况而定,当蚂蚁到达了目的节点或巡游达到最大跳数后,蚂蚁在当前节点停留并提交记录的路径和能耗信息。所有蚂蚁提交的路径信息组成该网络中满足流量需求的一个拓扑子集,在有多个蚂蚁通过同一节点时,我们根据蚂蚁采集能耗信息的时间先后,取最新的能耗数据。将子拓扑上所有节点能耗相加即得到该次迭代结果总能耗e(t)。我们根据这个总能耗计算要释放信息素的量,公式为:

其中δd(t)为信息素增量,maxenergy为网络所有的能耗元素全部打开时的能耗值。

所有的能耗元素,包括:网络中所有节点设备底座、线卡。

8、对于那些没有到达目的地的蚂蚁,其花费了时间也产生了能耗代价,但并没有进行正确的路由,可以认为这些蚂蚁对网络状态的判断和决策是错误和过时的,不适合用来更新信息素,故将其直接销毁。我们只让那些到达目的节点的蚂蚁逆着来时的路径返回源节点,并按照此次迭代为流量构造的路径,修改路径上节点设备的mpls转发表,将构建的路径信息告知沿途节点,在经过的路径上更新信息素:

τijd(t+1)=(1-ρ)τijd(t)+δd(t)

τijd(t+1)表示第t次迭代完成后,流蚂蚁经过的路径上信息素的量,(1-ρ)τijd(t)表示挥发后的信息素量。在蚁群未经过的其它路径上,只计算信息素的挥发。并且,无论信息素增加或减少,最终都不能超出其上、下限的值τmax和τmin。

9、终止条件判断。我们设定最大迭代次数maxiteration及能耗方差阈值threshold,如果达到最大迭代次数或最近8次的总能耗方差小于threshold,则算法结束,我们定义成功到达目的节点的蚂蚁比例为到达率,以此衡量我们的算法对自然分布的流量进行调度和优化的程度,并设置最小到达率ε。算法最终运行的结果如果不满足此约束,则将结果作废,重新运行算法。若算法结果满足要求,输出拓扑子集和总能耗值作为结果,转到步骤10。否则转到步骤2,开始新一轮迭代。

10、输出能够满足流量需求的最小能耗拓扑子集,为对应的流量建立显式路由,对于没有成功构建完整路径的流量,仍按照之前路由的路径传输。而后关闭空闲设备和线卡,达成节能目的。

模拟实施及实验结果

我们研发了模拟算法运行的程序进行仿真实验,下文主要说明关于实验具体实施中的一些问题,并展示算法运行的效果。

实验环境

算法运行在办公计算机上,配置为intelcorei7-4790处理器,8gb内存,系统环境为windows7旗舰版64位,程序研发平台为matlabr2015b。为简化问题,实验中节点均采用相同型号的设备。我们考察了ciscogsr12008路由器,查询到了它的硬件架构和功率信息。它的底座上有10个线卡插槽,其中1个安装有处理器,2个安装交叉式架构,所以可用线卡数为7个。线卡我们统一采用单端口gelinecard,即千兆以太网线卡,它只有一个端口,方便根据流量进行线卡的开关。底座、处理器、交叉式架构的总功率是固定的,我们把它们统一为底座功率,即pci=450w;单个线卡开启后在无流量通过时的功率pli=20w,在有流量时我们根据上文统一按中等强度的流量计,功率提高系数ωi=13%。

在目标网络的选择上,我们的网络拓扑和流量信息部分来源于sndlib。sndlib是一个公开的网络科研数据集,它收录了诸如abilene和geant等教育和商业网络中的拓扑和流量的真实数据,能够反映算法在骨干网中运行的状况。同时,我们根据waxman拓扑模型生成若干个不同规模和流量状况的拓扑,主要反映算法在中小型网络中运行的状况。

参数设置

算法执行的步骤在前文中已经作了详细描述,此处不再赘述,我们主要讨论算法中参数的设置。我们对不同的目标网络进行了多次实验,以我们使用waxman拓扑模型生成的50个节点、60个流量需求的目标网络为例,根据网络拓扑、流量状况以及实验环境的影响,我们调整并寻求合适的参数值,设置信息素的初值τ0=10,挥发率ρ为0.05,上限τmax=30,下限τmin=3;设最大带宽利用率θ=0.6;在计算转移概率时,各指标的权重参数α=4、β=10、γ=1;将蚂蚁生存的最大跳数设为15;最小到达率ε=85%;最大迭代次数maxiteration为100次;能耗方差阈值threshold为220。

实验结果

我们采用sndlib德国骨干网实例,实例中网络有50个节点,60个流量需求。同时我们用waxman拓扑模型生成一个50节点网络,模拟中小型网络中算法运行状况。

表1两种网络运行结果

图2、图4中灰线及其相连的节点为原始拓扑,黑线及其相连的节点为算法迭代出的拓扑子集。在每一次迭代中,生成不同的拓扑子集后,我们都将灰线代表的链路和没有黑线连接的节点关闭,计算出该次迭代结果的能耗值,形成图3、图5中的曲线。为进行比对,我们也计算了网络元素全部打开,无流量时的总能耗,并模拟实现了ospf算法,用以展示在无节能机制时流量自由分布的情况。结果数据见表1,在两种网络中算法均实现了节能,能耗值优于流量自然分布的情况,且满足最大带宽利用率和蚂蚁到达率的约束,运行时间也可接受。

中小网实例的节能效果优于骨干网,从拓扑图上直观来看,中小网的平均节点度高于骨干网,实际情况也是这样,所以中小网网络的总能耗值高,且流量可选的路径多样,流量聚合的空间大,节能效果也更明显。骨干网在迭代37次后就趋于收敛,而中小网迭代90次才得出最终结果,耗费的时间也更长。

在能耗优化过程图中,初始迭代中的能耗值比网络元素全部打开后的总能耗值要高,这是因为有流量的加入,计入了功率提高系数的影响。迭代过程中的总能耗曲折下降,这是算法中信息素、能耗信息和延迟信息共同作用的结果,体现了启发式算法在现有解中寻求最优的同时搜索新的可行解的特点。最终迭代结果的能耗值不一定是最低的,这顺应启发式算法在可接受的时间里,牺牲一定的精确性来高效地寻求一个次优解的本质。

我们生成了不同节点规模的网络进行对比实验,如图6所示。随着节点规模增大,能耗值逐渐增加,折线表示的运行时间也急剧增加。可以看出,我们的算法无论在何种情况下都能节省能耗,但在中等网络规模下相对于ospf算法节能效果更为明显。当网络规模过小时可选的路径有限,无论如何优化和聚合流量,流量的源和目的节点都不能被关闭,与之相关的网络元素占据了子拓扑的大部分,可优化的空间很小。当网络规模过大时,受限于我们设置的waxman模型节点度以及链路的固有带宽,流量也不能被过度聚合。

我们在相同节点规模、不同流量需求数目下也进行了实验。如图7所示,随着流量需求数目增大,能耗值逐渐增加,运行时间增加。与上文的分析同理,流量过多或过少都会固化占用的路径,使流量调度和可优化的空间变小,优化效果不佳。我们看到在流量需求达到100时,受限于网络规模,这些流量几乎占用了网络的所有节点和链路,再无聚合的空间。这是目前能耗感知路由无法解决的问题,需要研究利用其它的网络节能方法加以解决。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1