一种通信网络负载均衡最大流路由方法与流程

文档序号:15979474发布日期:2018-11-17 00:09阅读:211来源:国知局

本发明属于无线通信技术领域,尤其涉及一种通信网络负载均衡最大流路由方法。

背景技术

网络作为信息传输的平台,是通信至关重要的组成部分。随着通信业务的急剧增长,需要提升通信网络吞吐量使其能够满足增长的通信需求。为了解决网络吞吐量最大化的问题,一般在路由算法中采用最大流方法加以分析求解。最大流问题是指在链路容量受限的情况下,通过对流过网络的信息流、数据流等进行路由的决策与管控,从而获得网络整体流量的最大化。获取网络最大流对通信网络资源最大化利用问题具有重要的指导意义。

网络最大流路由算法已有不少成果,但这些成果的目标多集中在降低算法复杂度与提升算法效率方面,对于负载均衡的考虑则少有涉及。2f(ford-fulkerson)算法在进行最大流路由选取时,对于有可用容量的路径即增广路径的选取是随机的,这意味着同一个网络拓扑图得到的最大流路由会有多种可行解,即每次用2f算法求得的最大流网络分布图都不一致,这会导致流量在链路上分布的随机性,使得负载均衡性能不稳定,导致负载均衡性能很差。最短增广路径(sap)算法每次都选择边数最少的即最短的增广路径进行流量增广,这可能使得流量过于集中在由更短链路组成的路径上,而更长路径中的链路则可能长时间处于空闲,造成局部链路过于繁忙的状态,这种对资源利用的不合理会导致负载均衡性能很差。一般预流推进算法由于每次会优先对离目的节点更近的某一个中间节点单独进行流量推进,同样也可能会发生流量过于集中在更短链路组成的路径上的问题,造成局部链路过于繁忙的状态,致使负载均衡性能很差。

这些现有的网络最大流路由算法能够得到满足网络最大流的路由决策结果,但是在决策形成的路由中存在链路负载不均衡的情况,会导致网络中对资源利用的不充分。所以需要一种新的最大流路由方法,让流量更均衡的分布在链路上,改善网络负载均衡性能。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种通信网络负载均衡最大流路由方法。

本发明是这样实现的,一种通信网络负载均衡最大流路由方法,所述通信网络负载均衡最大流路由方法包括:针对通信网络拓扑图进行分层,得到分层网络,根据分层网络将链路和路径分类,再对网络节点进行节点高度标记;以饱和预流均衡推进的方式使网络达到最大流;进行等效均衡分流调整。

进一步,所述针对网络拓扑图进行分层,得到分层网络,根据分层网络将链路和路径分类,再对网络节点进行节点高度标记包括以下步骤:

(1)将网络拓扑图分层,将原来网络拓扑图构成的网络转换为对应的层次网络,只需要标记节点的层次,将节点按层次排列,得到分层网络;

(2)对分层网络中的链路和路径进行分类,网络分层后链路弧有三种可能:高层节点有向连接相邻低层节点的链路为一类弧、同层节点对之间的链路为二类弧、低层节点有向连接高层节点的链路为三类弧;层次网络中的路径也分成三类:只包含一类弧的路径为一类路径、只包含一类弧和二类弧的路径为二类路径、包含了第三类弧的路径为三类路径;

(3)对网络节点进行高度标记,用广度遍历方法给每个节点标记初始节点高度,初始节点高度就是当前节点所处的层次高度,源点的节点高度等于除源点外最大节点高度加1。

进一步,所述进行等效均衡分流调整的方法具体包括:

(1)先前向查找等效结构;

(2)当查找完源点时,没找到未饱和的路径,此时开始后向查找等效结构;

(3)若查找到汇点时仍没有找到未饱和的路径,则当前的第二类弧不具备分流功能,结束操作寻找下一段空闲的二类或三类弧。

进一步,所述通信网络负载均衡最大流路由方法具体包括:

步骤一:对通信网络拓扑图进行分层,得到层次网络g'(v,e,c),其中v表示图g中所有顶点的集合,e是图g中所有链路弧的集合,c是所有链路弧的容量集合;图中的源点记为vs,汇点记为vt,且图中每条链路(vi,vj)上都有一个表示其相应容量的数值c(vi,vj);转步骤二;

步骤二:用广度遍历方法给每个节点标记初始节点高度d(i),初始节点高度就是当前节点所处的层次高度,源点的节点高度等于除源点外最大节点高度加1,转步骤三;

步骤三:对g'(v,e,c)进行初始化,令初始可行流f={fsj|(vs,vj)∈e},对与源点vs相邻的弧进行饱和推进,其他的fij=0,构造剩余网络d(f),转步骤四;

步骤四:节点i为g'(v,e,c)中除源点汇点外的任意一个节点,那么流入节点i的总流量减去流出节点i的总流量就是节点i的盈余,用e(i)表示,流量盈余e(i)>0的节点为活跃节点;若d(f)中不存在活跃节点,则f为最大流,转步骤八;否则,在d(f)中选取节点高度最高的活跃节点vi,非源汇点,转步骤五;

步骤五:若弧(u,v)是节点u的正向允许弧,且d(u)>d(v),那么称弧(u,v)是节点u的推进允许弧;如果vi的出弧中不存在推进允许弧,转步骤六,否则,按如下操作:

出容量为节点的推进允许弧的剩余容量和,当节点盈余e(i)大于等于出容量时,将每条出弧进行饱和推进fij=cij|((vi,vj)为推进允许弧),修改节点盈余e(i)=e(i)-∑fij|((vi,vj)为推进允许弧),e(j)=fij|((vi,vj)为推进允许弧),构造剩余网络d(f),转步骤四;

当节点盈余e(i)小于出容量时,按照每条推进允许弧的空余容量比进行流量推进,修改节点盈余,e(i)=0,e(j)=fij|((vi,vj)为推进允许弧),构造剩余网络d(f),转步骤四;

步骤六:若弧(v,u)是节点u的反向允许弧,且d(v)<d(u),那么称弧(v,u)是节点u的回退允许弧;如果vi的入弧中不存在回退允许弧,转步骤七,否则按如下操作:将节点盈余按照回退允许弧退回前向节点:

若存在多条回退允许弧,则将节点盈余按照回退允许弧的流量比退回,e(i)=0,(∑fki为节点vi的回退允许弧流量和),fji=fji-e(j),构造剩余网络d(f);

若只存在一条回退允许弧并且接受了节点的全部盈余,则在该回退允许弧上标注终止符p,表明该弧与饱和弧一样为不允许弧,e(j)=e(i),fji=fji-e(j),构造剩余网络d(f);转步骤四;

步骤七:令d(i)=min{d(j)+1|vj是vi的正向允许弧节点或反向允许弧节点},转步骤四;

步骤八:m表示残余网络中流量为0的二三类弧集合,其中二类弧是指同层节点对之间的链路,三类弧为低层节点有向连接高层节点的链路,转步骤九;

步骤九:若则结束算法,已获得最大流;否则,按照等效均衡分流方法查找弧(vi,vj)∈m的等效路径进行分流操作,m=m-{(vi,vj)},转步骤九。

进一步,所述步骤九:按照等效均衡分流方法查找弧(vi,vj)∈m的等效路径,具体的等效方法如下:

弧(u,v)为流量等于0的空闲二类弧,若存在有空余容量的路径w-a-u,以及流量大于0的路径w-b-v,则路径w-a-u-v可以替路径w-b-v分担一部分流量,使弧(u,v)不至于完全空闲,进一步提升流网络的负载均衡性能;

1)先前向查找等效结构,以u为终点查找还未饱和的一类路径a,找不到未饱和的一类路径,依次找二类、三类路径,如果动用了饱和路径,则可能影响到最大流的计算,所以必须是未饱和路径;接着以v为终点前向查找有流量的路径b,直到找到路径a和路径b为相同起点w;

此时:

路径w-a-u-v的容量cw-a-u-v=min{路径a的剩余容量值,链路(u,v)的容量值};

路径w-b-v的容量cw-b-v=min{路径w-b-v上每一段链路的容量值};

路径w-b-v的流量fw-b-v=min{路径w-b-v上每一段链路的流量值};

这时按照cw-b-v和cw-a-u-v的比值来将流量fw-b-v分配给路径w-b-v和w-a-u-v,分流完毕,结束操作寻找下一段空闲的二类或三类弧;

2)当查找完源点vs时,依旧没找到未饱和的路径a,此时开始后向查找等效结构;

首先以v为起点查找还未饱和的一类路径a,找不到未饱和的一类路径,就依次找二类、三类路径;接着以u为起点后向查找有流量的路径b,直到找到路径a和路径b为相同终点w;

此时:

路径u-v-a-w的容量cu-v-a-w=min{路径a的剩余容量值,链路(u,v)的容量值};

路径u-b-w的容量cu-b-w=min{路径u-b-w上每一段链路的容量值};

路径u-b-w的流量fu-b-w=min{路径u-b-w上每一段链路的流量值};

此时按照cu-v-a-w和cu-b-w的比值来将流量fu-b-w分配给路径u-v-a-w和u-b-w,分流完毕,结束操作寻找下一段空闲的二类或三类弧;

3)若查找到汇点vt时,仍没有找到未饱和的路径a,则当前的第二类弧不具备分流功能,结束操作寻找下一段空闲的二类或三类弧。

综上所述,本发明的优点及积极效果为:对于现有算法进行流量增广时不考虑增广路径或可行弧之间的容量比而可能带来的负载不均衡问题,本发明基于一般预流推进方法,在进行流量增广时考虑可行弧容量比因素,使用饱和预流均衡推进的方式使网络达到最大流并进行等效均衡分流调整,对每条链路尽可能做到公平对待,通过查找空闲等效路径进行分流调整,让更多空闲链路参与分流,避免流量过于集中在某一区域,改善了网络的负载均衡性能,提升了对通信网络资源利用的合理性。

附图说明

图1是本发明实施例提供的通信网络负载均衡最大流路由方法流程图。

图2是本发明实施例提供的二类弧前向等效结构图。

图3是本发明实施例提供的二类弧后向等效结构图。

图4是本发明实施例提供的所用的网络拓扑图。

图5是本发明实施例提供的标记节点高度示意图。

图6是本发明实施例提供的初始化可行流示意图。

图7是本发明实施例提供的对活跃节点进行流推进示意图。

图8是本发明实施例提供的得到最大流示意图。

图9是本发明实施例提供的均衡的最大流网络分布图。

图10是对本发明实施例中所用网络拓扑图采用sap算法得到的最大流网络分布图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

针对现有算法存在的2f算法无法保证链路上流量均衡的稳定性,最短增广路径算法和一般预流推进算法可能造成局部链路过于繁忙的状态,导致负载均衡性能较差的问题,本发明能够在得到最大流路由的基础上,让流量更均衡地分布在网络链路上,提升对通信网络资源利用的合理性。

下面结合附图对本发明的应用原理作详细的描述。

如图1所示,本发明实施例提供的通信网络负载均衡最大流路由方法包括以下步骤:

s101:针对通信网络拓扑图进行分层,得到分层网络,根据分层网络将链路和路径分类,再对网络节点进行节点高度标记;

s102:以饱和预流均衡推进的方式使网络达到最大流;

s103:进行等效均衡分流调整,进一步提升网络的负载均衡性能。

在本发明的优选实施例中,根据本发明的通信网络网络负载均衡最大流路由方法,其中步骤s101具体包括以下步骤:

(1)将通信网络拓扑图分层,就是将原来拓扑图构成的网络转换为对应的层次网络,该过程不改变原网络的拓扑结构,只需要标记节点的层次,将节点按层次排列,由此得到分层网络。

(2)对分层网络中的链路和路径进行分类。网络分层后链路弧只有三种可能:高层节点有向连接相邻低层节点的链路为一类弧、同层节点对之间的链路为二类弧、低层节点有向连接高层节点的链路为三类弧。因此,层次网络中的路径也分成三类:只包含一类弧的路径为一类路径、只包含一类弧和二类弧的路径为二类路径、包含了第三类弧的路径为三类路径。

(3)对网络节点进行高度标记。用广度遍历方法给每个节点标记初始节点高度,初始节点高度就是当前节点所处的层次高度,源点的节点高度等于除源点外最大节点高度加1。

在本发明的优选实施例中,根据本发明的通信网络负载均衡最大流路由方法,其中在步骤s103中,进行等效均衡分流调整的方法具体包括以下步骤:

(1)先前向查找等效结构。

(2)当查找完源点时,没找到未饱和的路径,此时开始后向查找等效结构。

(3)若查找到汇点时仍没有找到未饱和的路径,则当前的第二类弧不具备分流功能,结束操作寻找下一段空闲的二类或三类弧。

下面结合具体实施例对本发明的应用原理作进一步的描述。

本发明实施例提供的通信网络负载均衡最大流路由方法包括以下步骤:

步骤一:对通信网络拓扑图进行分层,得到层次网络g'(v,e,c),其中v表示图g中所有顶点的集合,e是图g中所有链路弧的集合,c是所有链路弧的容量集合;图中的源点记为vs,汇点记为vt,且图中每条链路(vi,vj)上都有一个表示其相应容量的数值c(vi,vj);转步骤二;

步骤二:用广度遍历方法给每个节点标记初始节点高度d(i),初始节点高度就是当前节点所处的层次高度,源点的节点高度等于除源点外最大节点高度加一,转步骤三;

步骤三:对g'(v,e,c)进行初始化,令初始可行流f={fsj|(vs,vj)∈e},对与源点vs相邻的弧进行饱和推进,其他的fij=0,构造剩余网络d(f),转步骤四;

步骤四:节点i为g'(v,e,c)中除源点汇点外的任意一个节点,那么流入节点i的总流量减去流出节点i的总流量就是节点i的盈余,用e(i)表示,流量盈余e(i)>0的节点为活跃节点;若d(f)中不存在活跃节点,则f为最大流,转步骤八;否则,在d(f)中选取节点高度最高的活跃节点vi,非源汇点,转步骤五;

步骤五:若弧(u,v)是节点u的正向允许弧,且d(u)>d(v),那么称弧(u,v)是节点u的推进允许弧;如果vi的出弧中不存在推进允许弧,转步骤六,否则,按如下操作:

出容量为节点的推进允许弧的剩余容量和,当节点盈余e(i)大于等于出容量时,将每条出弧进行饱和推进fij=cij|((vi,vj)为推进允许弧),修改节点盈余e(i)=e(i)-∑fij|((vi,vj)为推进允许弧),e(j)=fij|((vi,vj)为推进允许弧),构造剩余网络d(f),转步骤四;

当节点盈余e(i)小于出容量时,按照每条推进允许弧的空余容量比进行流量推进,修改节点盈余,e(i)=0,e(j)=fij|((vi,vj)为推进允许弧),构造剩余网络d(f),转步骤四;

步骤六:若弧(v,u)是节点u的反向允许弧,且d(v)<d(u),那么称弧(v,u)是节点u的回退允许弧;如果vi的入弧中不存在回退允许弧,转步骤七,否则按如下操作:将节点盈余按照回退允许弧退回前向节点:

若存在多条回退允许弧,则将节点盈余按照回退允许弧的流量比退回,e(i)=0,(∑fki为节点vi的回退允许弧流量和),fji=fji-e(j),构造剩余网络d(f);

若只存在一条回退允许弧并且接受了节点的全部盈余,则在该回退允许弧上标注终止符p,表明该弧与饱和弧一样为不允许弧,e(j)=e(i),fji=fji-e(j),构造剩余网络d(f);转步骤四;

步骤七:令d(i)=min{d(j)+1|vj是vi的正向允许弧节点或反向允许弧节点},转步骤四;

步骤八:m表示残余网络中流量为0的二三类弧集合,其中二类弧是指同层节点对之间的链路,三类弧为低层节点有向连接高层节点的链路,转步骤九;

步骤九:若则结束算法,已获得最大流;否则,按照等效均衡分流方法查找弧(vi,vj)∈m的等效路径进行分流操作,m=m-{(vi,vj)},转步骤九。

对于上述算法流程中的步骤九:按照等效均衡分流方法查找弧(vi,vj)∈m的等效路径,具体的等效方法如下:

以第二类弧(u,v)为例,查找等效路径,如图2所示的二类弧前向等效结构。弧(u,v)为流量等于0的空闲二类弧,若存在有空余容量的路径w-a-u,以及流量大于0的路径w-b-v,则路径w-a-u-v可以替路径w-b-v分担一部分流量,使弧(u,v)不至于完全空闲,进一步提升流网络的负载均衡性能。图3为另一种等效结构,二类弧后向等效结构。

1)先前向查找等效结构。

首先以u为终点查找还未饱和的一类路径a,找不到未饱和的一类路径,就依次找二类、三类路径,如果动用了饱和路径,则可能影响到最大流的计算,所以必须是未饱和路径;接着以v为终点前向查找有流量的路径b,直到找到路径a和路径b为相同起点w;

此时:

路径w-a-u-v的容量cw-a-u-v=min{路径a的剩余容量值,链路(u,v)的容量值};

路径w-b-v的容量cw-b-v=min{路径w-b-v上每一段链路的容量值};

路径w-b-v的流量fw-b-v=min{路径w-b-v上每一段链路的流量值};

这时按照cw-b-v和cw-a-u-v的比值来将流量fw-b-v分配给路径w-b-v和w-a-u-v,分流完毕,结束操作寻找下一段空闲的二类或三类弧。

2)当查找完源点vs时,依旧没找到未饱和的路径a,此时开始后向查找等效结构。

首先以v为起点查找还未饱和的一类路径a,找不到未饱和的一类路径,就依次找二类、三类路径;接着以u为起点后向查找有流量的路径b,直到找到路径a和路径b为相同终点w;

此时:

路径u-v-a-w的容量cu-v-a-w=min{路径a的剩余容量值,链路(u,v)的容量值};

路径u-b-w的容量cu-b-w=min{路径u-b-w上每一段链路的容量值};

路径u-b-w的流量fu-b-w=min{路径u-b-w上每一段链路的流量值};

此时按照cu-v-a-w和cu-b-w的比值来将流量fu-b-w分配给路径u-v-a-w和u-b-w,分流完毕,结束操作寻找下一段空闲的二类或三类弧。

3)若查找到汇点vt时,仍没有找到未饱和的路径a,则当前的第二类弧不具备分流功能,结束操作寻找下一段空闲的二类或三类弧。

下面结合具体实施例对本发明的应用原理作进一步的描述。

本发明提出的通信网络负载均衡最大流路由方法,在得到最大流的基础上,让流量更均衡地分布在链路上,提升对网络资源利用的合理性。为进一步理解本发明的方法步骤与积极效果,下面给出本发明所述的通信网络负载均衡最大流路由方法的具体实施例。

为了进一步理解本发明的方法步骤,本实施例参照图4所示的网络拓扑图进行说明,求解源点s到汇点t的最大流。首先,对网络拓扑图进行分层,得到层次网络g'。并用广度遍历法给每个节点vi标记初始节点高度d(i),初始节点高度就是当前节点所处的层次高度。并令源点s的高度d(s)=3,如图5所示,节点括号内的第一个参数表示当前节点高度,第二个参数表示当前节点盈余(下同);然后,对层次网络g'初始化其可行流,即fsa=6,fsc=4,并修改节点盈余,如图6所示,链路旁斜杠前面的参数表示当前链路流量,后面的参数表示链路容量。接着选取当前节点高度最高的活跃节点a按照推进允许弧进行流量推进,由于存在两条推进允许弧,且盈余小于出容量,于是按着容量比将盈余分别推入节点b和节点d,并修改剩余网络,接着选取当前节点高度最高的活跃节点c进行流量推进,并修改剩余网络,如图7所示。然后选取当前节点高度最高的活跃节点b和d进行流量推进,并修改剩余网络,如图8所示。此时剩余网络中活跃节点数量为0,得到网络最大流fmax=10。接着寻找到唯一的空闲二类链路(a,c),对其进行等效均衡分流,此时网络中已无空闲二三类链路,算法结束。最后得到最终的更为均衡的最大流网络分布图,如图9所示。

为了进一步理解本发明的积极效果,对本实施例的均衡性能进行分析。网络负载均衡性能可以用均衡度作为衡量指标,均衡度则由链路占用度的标准差计算,链路占用度用β表示,具体计算公式为:

其中,fij表示链路(i,j)的流量,cij表示链路(i,j)的容量,它们的比值反映当前链路的占用程度。

标准差σ用来表示一个数据集的离散程度,其计算公式为:

其中,n表示数据集{x1,x2,...,xn}的个数,μ表示数据集的均值。

通过计算网络中所有链路占有度的标准差,来反映当前链路资源的负载均衡程度,标准差越小,说明所有链路占有度的离散程度越小,所有链路的占用程度越均衡。对于图4所示的网络拓扑图,由本发明所述的通信网络负载均衡最大流路由方法得到的最大流网络分布图如图9所示,链路占用度为0.297。而对于图4所示的网络拓扑图采用sap算法得到的最大流网络分布图如图10所示,链路占用度为0.374。显然本发明使链路的占用度更均衡。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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