一种测量节点放置和探测路径规划的启发式方法与流程

文档序号:18357350发布日期:2019-08-06 23:19阅读:238来源:国知局
一种测量节点放置和探测路径规划的启发式方法与流程
本发明涉及计算机
技术领域
,具体地,涉及一种测量节点放置和探测路径规划的启发式方法。
背景技术
:近年来,云计算技术蓬勃发展,并迅速得到学术界和工业界的广泛关注,成为现代信息化社会建设的热点和未来发展趋势。同时,互联网在线业务的用户数量急剧增长,导致一直处于核心基础设施重要位置的数据中心在数量和规模上呈现出爆炸性发展趋势,其网络流量特征也出现了极大的变化。传统互联网业务的流量主要发生在数据中心网络外部的客户端与数据中心网络内部的服务器之间,而内部服务器间的通信很少。如今,大量的云计算应用需要数据中心网络的内部服务器间进行大量的通信,并且其网络流量占总流量的绝大部分。该变化使得数据中心网络的流量呈现出爆炸性增长趋势。为了更好地对数据中心网络进行管理和维护,网络管理者需要准确地掌握网络的状态信息。其中,网络链路时延是表征网络链路状态的重要参数之一。网络链路时延测量可以帮助网络管理者掌握网络链路状态信息,进而预测网络性能和进行故障检测,以更好的对网络进行管理和维护。目前,网络链路时延测量的方法主要有两种。其中一种方法通过测量端到端的时延,然后利用网络层析成像对网络的内部链路时延进行推测。该方法不需要网络节点的配合即可完成链路时延的推测,实施起来比较简单,但其准确性无法得到保证。另一种方法通过在网络节点上放置测量节点向网络中注入探测包,然后基于网络节点间的相互配合,使探测包流经需要探测的链路,以实际地体验链路状态,最后由测量节点回收探测包,并根据探测包的实际信息计算网络链路的时延。该方法的测量结果准确性较高,但在传统ip网络中的实施比较困难。正如上文所述,使用探测包测量网络链路时延的第一步是在网络中放置测量节点和建立探测路径。其中,测量节点负责向网络中注入、接收和分析探测包,而探测路径用于引导探测包沿着预先规划的探测路线转发。先前的解决方案没有考虑测量节点的能力,以及探测路径的长度。测量时,超过测量节点的测量能力会导致测量失效,而探测路径过长会引起较大的测量误差和较高的探测成本。因此,测量时应保证测量节点的测量能力,并限制探测路径的长度。技术实现要素:本发明提供了一种测量节点放置和探测路径规划的启发式方法,解决了现有方法的不足,以保证测量节点的测量能力,并对探测路径进行优化。为实现上述发明目的,本申请提供了一种测量节点放置和探测路径规划的启发式方法,所述方法包括:将原网络中的链路和网络节点分别映射到辅助二部图中的链路节点和网络节点;然后根据原网络中链路到网络节点的距离限制,对辅助二部图中的链路节点和网络节点进行连接,并在边上存储距离属性,以得到完整的辅助二部图;在辅助二部图上添加源节点和目的节点,得到拓展的辅助二部图;其中,源节点与链路节点逐一进行连接,边容量为1;网络节点与目的节点逐一进行连接,边容量为k;此外,拓展的辅助二部图是有向图,流只能沿着源节点、链路节点、网络节点、目的节点的方向流动;使用改进的标号算法,计算拓展的辅助二部图的最大流初始解,设有向连通图g=(v,e),其中v是有向连通图的顶点集合,e是有向连通图的边集合,原有的标号算法如下:1.标号过程(1)给源节点以标号(δ,+∞);(2)选择一个已标号的顶点vi,对于vi的所有未给标号的邻接点vj按下述方法处理:(a)若边(vj,vi)∈e,且顶点vj到vi的流大小fji>0,,则令δj=min(fji,δi),并给顶点vj以标号(-vi,δj);(b)若边(vi,vj)∈e,且fij<cij,其中cij表示从顶点vi到顶点vj的边的容量,则令δj=min(cij-fij,δi),并给顶点vj以标号(+vi,δj);(3)重复(2)直到目的节点vt被标号,或不再有顶点可标号时为止;2.调整过程(1)令(2)去掉所有标号,回到1标号过程,对连通图重新进行标号。改进后的标号算法如下:1.标号过程:(1)选择源节点vsrc,对源节点连接的所有未给标号的链路节点vi:(a1)若fsrc,i<csrc,i,则给vi标号t(vsrc,0),(b1)否则,不给vi标号;fsrc,i为源节点vsrc到链路节点vi的实际流量,csrc,i为源节点vsrc与链路节点vi间的边的容量;(2)选择每个已有标号的链路节点vi,对vi连接的每个备选网络节点vj:(a2)若fi,j<ci,j且fj,dst<cj,dst,其中,fi,j为链路节点vi到网络节点vj的实际流量,ci,j为链路节点vi与网络节点vj间的边的容量,fj,dst为网络节点vj到目的节点vdst的实际流量,cj,dst为网络节点vj与目的节点vdst间的边的容量:●若vj没有标号,则dj=di,j,给vj标号t(vi,dj),其中dj表示到网络节点vj的最小距离,di,j表示从链路节点vi到网络节点vj的距离;●若vj有标号,且di,j<dj,则dj=di,j,重新给vj标号t(vi,dj);(b2)否则,不给vj标号;(3)选择每个已有标号的网络节点vi:(a3)若目的节点vdst没有标号,则ddst=di,ddst为到目的节点vdst的最小距离,di为到网络节点vi的最小距离,给vdst标号t(vi,ddst);(b3)若目的节点vdst有标号,且di<ddst,则ddst=di,重新给目的节点标号t(vi,ddst);2.若目的节点vdst得到标号,继续执行3调整过程,否则结束;3.调整过程:(1)令vj=vdst,vdst为目的节点;(2)取出vj的标号t(vi,dj),vi为标号中的节点,可能是网络节点、链路节点或源节点,dj为到节点vj的最小距离,调整fi,j=fi,j+1;(3)若vi=vsrc,则删除所有节点的标号,重新回到1标号过程,否则重置vj=vi,继续调整过程的(2)步骤。将最大流初始解中有流经过的网络节点,根据流过的流的数量,按从小到大的顺序进行排序;然后按序依次尝试删除其中的网络节点,并尝试将流经该网络节点的流迁移到其它网络节点;若流经该网络节点的流可以全部被迁移到其它网络节点,则继续重复该过程,否则直到尝试完所有有流经过的网络节点为止,以达到最小化测量节点数的目的;根据计算后的辅助二部图,得到数量最小化的测量节点具体放置位置,以及每个测量节点负责探测的链路;其中,计算后的辅助二部图中,有流经过的网络节点对应测量节点在原网络拓扑中的具体放置位置,经过链路节点的流最终经过的网络节点对应原网络拓扑中相应链路被相应的测量节点进行探测。本申请提供的一个或多个技术方案,至少具有如下技术效果或优点:1、相比使用线性规划求解最优解来说,在测量节点能探测的链路数量受限情况下,该启发式方法能在较短的时间内对测量节点放置和探测路径规划问题进行求解,得到次优解,甚至是最优解;2、在拓展的辅助二部图中,通过设置网络节点与目的节点间边的容量为测量节点能测量的最大链路数量,以保证测量节点负责探测的链路数量不超过测量节点所能探测的最大链路数量;3、进行最大流求解时,使用链路节点与网络节点间的距离属性进行约束,因此能保证测量节点负责探测的链路与测量节点相邻,且距离在一定跳数以内。附图说明此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定;图1是本发明实施例的具体网络拓扑结构示意图;图2是本发明实施例的拓展的辅助二部图示意图;图3是本发明实施例的基于最大流的启发式算法最大流计算子流程示意图;图4是本发明实施例的基于最大流的启发式算法推流计算主流程示意图;图5是本发明实施例的计算后的拓展的辅助二部图示意图。具体实施方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。图1是本发明实施例的具体网络拓扑结构示意图。该网络拓扑共有14个网络节点和18条网络链路,后续方法的讲解均以该网络拓扑为基础。假设存在网络节点n和网络链路<i,j>,其中i和j表示链路的端点编号,用dn,<i,j>表示网络链路<i,j>到网络节点n间的距离,其中:(1)若网络节点n是链路<i,j>的端点,则规定dn,<i,j>=1;(2)若链路<i,j>与节点n间至少隔一条链路,则规定dn,<i,j>=2;(3)若链路<i,j>与节点n间至少隔了两条链路,则dn,<i,j>=3;(4)其它以此类推。例如,网络节点1和网络节点7是链路1的端网络节点,其距离为1;网络节点2和网络节点13是网络节点7的邻接网络节点,与链接1间隔一条链路,其距离为2;网络节点8是网络节点1的邻接网络节点,同样与链接1间隔一条链路,因此其距离为2,其它以此类推。图2是本发明实施例的拓展的辅助二部图示意图。该拓展的辅助二部图是测量节点能探测的最远链路的距离为2,测量节点能探测的最大链路数量为8时,从图1所示网络拓扑转换而来的。图中从左到右依次为源节点、链路节点层、网络节点层和目的节点,其中链路节点层和网络节点层统称为辅助二部图。链路节点表示原网络拓扑中的网络链路,其链路节点编号与原网络链路的对应关系如表1所示。表1链路节点网络链路链路节点网络链路链路节点网络链路1<1,7>7<4,9>13<7,13>2<1,8>8<4,10>14<8,14>3<2,7>9<5,11>15<9,13>4<2,8>10<5,12>16<10,14>5<3,9>11<6,11>17<11,13>6<3,10>12<6,12>18<12,14>网络节点表示原网络拓扑中的网络节点,其网络节点编号与原网络拓扑中的网络节点编号相同。并且网络节点有一个距离属性,表示从链接节点到网络节点的距离,即原网络拓扑中网络链路与网络节点的距离。拓展的辅助二部图中的源节点和目的节点是根据最大流最小费用求解思路添加的辅助节点。其中,源节点能提供无限多的单位流量,目的节点能接收无限多的单位流量。并且,拓展的辅助二部图是一个有向图,流只能沿着源节点→链路节点层→网络节点层→目的节点的方向流动。接下来,按照拓展的辅助二部图中从左到右的顺序,对各节点层间边的连接情况进行详细说明。首先是源节点到链路节点层间的边。如图2所示,源节点到每个链路节点都用边进行连接,边上的数字1表示该边的容量为1,最多允许1个单位流量从源节点流到链路节点。然后是链路节点层到网络节点层间的边。如图2所示,该部分的边的连接情况比较复杂,每个链路节点都连接到多个网络节点,但每条边的连接都遵循以下规则:(1)当dn,<i,j>≤2时,链路<i,j>与网络节点n进行连接;(2)当dn,<i,j>>2时,链路<i,j>与网络节点n不进行连接。以链路节点1为例,查询表1可知链路节点1对应原网络拓扑结构中的网络链路<1,7>。由图1所示的网络拓扑可得链路<1,7>到各网络节点的距离为:d1,<1,7>=d7,<1,7>=1d2,<1,7>=d8,<1,7>=d13,<1,7>=2dother,<1,7>>2因此,链路节点1与网络节点1、2、7、8、13相连接,与其它网络节点不连接。其它链路节点与网络节点的连接情况以此类推。此外,链路节点到网络节点间的边的容量原则上为1,但也可以是大于1的任意值,图2中没有做标识。并且,每条边都有一个距离属性,表示从链路节点到网络节点的距离,即原网络拓扑中网络链路到网络节点的距离,为了不引起误解,图2中省略了标识。最后是网络节点层到目的节点的边。如图2所示,每个网络节点都连接到目的节点,其边上的数字8表示该边的容量为8,最多允许8个单位流量从网络节点流到目的节点。图3是本发明实施例的基于最大流的启发式方法最大流计算子流程示意图,如图3所示,该方法的子流程包括:标号过程和调整过程。最大流计算开始时,首先进入标号过程对拓展的辅助二部图中的节点进行标号。标号结束时,如果目的节点得到了标号,则进入调整过程,然后返回标号过程继续下一轮标号,否则退出最大流计算。为了便于对方法的说明和解释,表2对方法中的符号定义进行了说明。表2最大流计算子流程的具体步骤如下:(1)标号过程:a)选择源节点vsrc,对源节点连接的所有未给标号的链路节点vi:若fsrc,i<csrc,i,则δi=1,给vi标号t(vsrc,δi),否则,不给vi标号;b)选择每个已有标号的链路节点vi,对vi连接的每个备选网络节点vj:若fi,j<ci,j且fj,dst<cj,dst:●若vj没有标号,则δj=1,dj=di,j,给vj标号t(vi,δj),●若vj有标号,且di,j<dj,则δj=1,dj=di,j,重新给vj标号t(vi,δj),否则,不给vj标号;c)选择每个已有标号的网络节点vi:若目的节点vdst没有标号,则δdst=1,ddst=di给vd标号t(vi,δdst),若目的节点vdst有标号,且di<ddst,则δdst=1,ddst=di,重新给目的节点标号t(vi,δdst);(2)若目的节点vdst得到标号,继续(3)调整过程,否则结束;(3)调整过程:a)令vj=vdst;b)取出vj的标号t(vi,δj),调整fi,j=fi,j+δdst;c)若vi=vsrc,则删除所有节点的标号,重新回到(1)标号过程,否则重置vj=vi,继续本过程的b)步骤图4是本发明实施例的基于最大流的启发式方法推流计算主流程示意图,如图4所示,该方法包括:首先,构建拓展的辅助二部图,并进入最大流计算子流程得到一个初始解;然后,保存边当前的原始状态,获取当前有流经过的所有网络节点集合a,并根据流过的流量大小按从小到大的顺序进行排序;之后,按顺序从集合a中取出有流经过的网络节点,释放从vsrc出发流过该网络节点的所有流,并置该网络节点与目的节点间边的容量为0;最后,进入最大流计算子流程尝试释放该节点,如果释放不成功,则从集合a中删除该网络节点,并还原边的原始状态,然后继续尝试释放下一个网络节点,如果释放成功,则重新获取当前有流经过的所有网络节点,重复上述过程。直到某一次的推流计算过程中,无法释放集合a中的任何一个网络节点时,退出推流计算过程,方法结束。推流计算主流程的具体步骤如下:(1)构建拓展的辅助二部图;(2)调用最大流计算子流程得到初始解;(3)保存边的原始状态;(4)获取有流经过的所有网络节点集合a,并根据流过的流量大小按从小到大的顺序进行排序;(5)按顺序从集合a中取出网络节点v,释放从源节点出发流经v的所有流量(其流经边上的流量均释放),并将v到目的节点间边的容量置为0;(6)转到最大流计算子流程;(7)若源节点到所有链路节点的边均有流量经过,则继续,否则从a中删除v,并还原边的原始状态,转步骤(5)。(8)若集合a为空,退出迭代,方法结束,否则转步骤(3)继续。图5是本发明实施例的计算后的拓展的辅助二部图示意图。如图5所示,边上的数字表示实际流过的流的数量,未标明数字的边的实际流量为1。为了便于观察计算结果,图5中删除了没有流量流过的链路节点与网络节点间的边。对于网络节点来说,只有网络节点2、4、6有流量经过。因此,测量节点的具体放置位置为网络节点2、4、6。对于链路节点来说,流过链路节点1、2、3、4、13、14的流经过了网络节点2。因此,放置在网络节点2上的测量节点负责测量链路节点1、2、3、4、13、14对应的网络链路。查表1可知,放置在网络节点2上的测量节点的探测路径为2→7→1、2→7→13、2→8→1和2→8→14,其中的数字表示网络节点编号。同理可得,放置在网络节点4上的测量节点的探测路径为4→9→3、4→9→13、4→10→3和4→10→14;放置在网络节点6上的测量节点的探测路径为6→11→5、6→11→13、6→12→5和6→12→14。在本发明实施例中,首先由原网络拓扑结构得到拓展的辅助二部图,然后使用基于最大流的启发式方法对拓展的辅助二部图进行计算,最后从计算后的拓展的辅助二部图中解析得到测量节点在原网络拓扑中的放置位置,以及每个测量节点的探测路径。采用启发式方法,使得该np-hard问题可以在较短的时间内得到次优解,甚至是最优解。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1