一种时延容忍网络最小代价备份路径方法与流程

文档序号:22141182发布日期:2020-09-08 13:42阅读:170来源:国知局
一种时延容忍网络最小代价备份路径方法与流程

本发明属于通信技术领域,涉及一种时延容忍网络备份路径方法,具体涉及一种时延容忍网络最小代价备份路径方法。



背景技术:

在移动自组织网络、无线传感器网络、星际网络等网络中,会经常出现网络断开的现象,导致端到端的路径难以建立,这类网络被称为时延容忍网络。

在时延容忍网络中,数据需要进行多跳传输,即数据包由源节点发送,通过中间节点转发到目的节点。该路径的某一链路或节点发生故障时,可以进行本地路由修复或者重新寻找路由,这将导致路由收敛慢,还可能在路由收敛过程中出现丢包,无法实现数据的可靠传输。

当链路或节点发生故障时,为了可以快速的找到替代路由,目前大多做法是在每对源节点到目的节点间维护两条路径,一条为主路径,另一条为备份路径。当主路径的某一链路或节点发生故障,导致主路径中断时,可以快速切换到备份路径,减少路由收敛时间,提高数据传输的可靠性。

现阶段选择备份路径的方法是在选定主路径后,再选择一条与主路径没有相交链路或相交节点的路径作为备份路径,但某些关键链路或节点会同时出现在多条路径中,导致源、目的节点间根本找不到备份路径,无法实现数据的可靠传输,所以在网络中不能完全找到节点不相交或链路不相交的两条路径,只能尽可能地降低关键链路或节点的重复率。因此,如何保证源、目的节点间存在备份路径,并且主路径和备份路径间拥有最少的重复链路,以提高数据传输的可靠性,是本领域的研究热点。

为了提高数据传输的可靠性,例如,申请公布号为cn108600096a,名称为“一种基于快速重路由的域内节能路由方法”的专利申请,公开了一种基于快速重路由的域内节能路由方法。该方法将网络中的所有链路存储在链表l中,从链表l中取出任意一条链路,向该链路加入至少一个网络中的节点,形成链路的一条备份路径,若备份路径中不包含该链路,则将备份路径放入链表lc中,统计lc中每条链路出现的次数,按照次数进行升序排序,并放在链表m中,然后遍历链表m,关闭次数最低的链路,但其对应的备份路径中的链路不能关闭,直至遍历到最后一条链路为止。该方法为每一链路准备了一条备份路径,保证了当该链路出现故障时,可以通过备份路径继续为网络提供服务的能力,但该方法为了节能关闭了出现次数低的链路,相当于关闭了一些链路的备份路径,降低了整个网络数据传输的可靠性;并且该方法是对每一链路逐一备份的,在选取备份路径时,该备份路径不一定是全局最优的路径。



技术实现要素:

本发明的目的在于克服上述现有技术的不足,提供了一种时延容忍网络最小代价备份路径方法,用于解决现有技术中存在的数据传输可靠性较低的技术问题。

为实现上述目的,本发明采取的技术方案包括如下步骤:

(1)构建时延容忍网络拓扑结构的快照图g:

(1a)根据时延容忍网络拓扑结构中每条链路的通断信息,以每次链路断开的时刻作为时间节点,将时间范围0~t划分为k个连续时间段t1,t2,…,ti,…,tk,使得网络拓扑在各时段内保持不变,其中,ti表示第i个时间段,1≤i≤k;

(1b)根据各时段网络拓扑中每条链路的通断信息,构建时延容忍网络拓扑结构的快照图g(t)={g1,g2,...,gi,...,gk},其中,gi表示ti对应的快照子图,gi={ni,ei,ci},ni表示节点集合,表示ti时段内第α个节点,α≥3,ei表示链路集合,表示ti时段内第r条链路,r≥3,ci表示链路代价集合,表示ti时段内标注在上的代价;

(2)搜索每个快照子图gi中源节点si到目的节点di间的最小代价主路径:

(2a)根据业务传输需求,设ni中的源节点为si、目的节点为di,si∈ni,di∈ni

(2b)采用dijkstra算法,根据每个快照子图gi,以代价最小为优化目标,计算源节点si到目的节点di间的最短路径,并将该最短路径作为ti时段内源节点si与目的节点di间的最小代价主路径;

(3)对每个快照子图gi中的链路代价进行更新:

(3a)利用深度优先搜索方法,在每个快照子图gi中搜索源节点si与目的节点di间的最大代价无环路径,将路径代价值作为代价惩罚值pi

(3b)将快照子图gi中主路径经过的放入链表mi内,并遍历快照子图gi中的ei,将与链表mi中的元素进行逐一比对;

(3c)判断链表mi中的元素是否包含若是,则包含在主路径中,并更新上的代价否则,不包含在主路径中,上的代价保持不变,得到更新后的快照子图gi′

(4)搜索每个快照子图gi′中源节点si到目的节点di间的最小代价备份路径:

采用dijkstra算法,根据每个更新后的快照子图gi′,以代价最小为优化目标,计算源节点si到目的节点di间的最短路径,并将该最短路径作为ti时段内源节点si到目的节点di间的最小代价备份路径。

本发明与现有技术相比有如下优点:

1.本发明以代价最小为优化目标,利用dijkstra算法计算出源节点到目的节点间两条最短路径,并且对主路径包含的各链路增加代价惩罚值,使两条路径间有最少的重复链路,克服了找不到备份路径,或主路径与备份路径间有过多重复链路的问题,与现有技术相比,有效提高了数据传输的可靠性。

2.本发明通过链路代价来表征使用每条链路所需要付出的代价,以代价最小为优化目标,克服了盲目选择备份路径,而未考虑该路径是否为最佳路径的问题,与现有技术相比,本发明选出的备份路径一定是除主路径外,全局最优的路径。

附图说明

图1是本发明的实现流程图;

图2是本发明实施例中使用的时延容忍网络快照图;

图3是本发明实施例中初始化链路代价后的快照图;

图4是本发明实施例中链路代价更新后的快照图。

具体实施方式

以下结合附图和具体实施例,对本发明作进一步详细描述:

参照图1,本发明包括如下步骤:

步骤1)构建时延容忍网络拓扑结构的快照图g:

步骤1a)根据时延容忍网络拓扑结构中每条链路的通断信息,以每次链路断开的时刻作为时间节点,将时间范围0~t划分为k个连续时间段t1,t2,…,ti,…,tk,使得网络拓扑在各时段内保持不变,其中,ti表示第i个时间段,1≤i≤k;

在本实施例中,将0~t划分为3个连续时间段t1、t2、t3。

步骤1b)根据各时段网络拓扑中每条链路的通断信息,构建时延容忍网络拓扑结构的快照图g(t)={g1,g2,...,gi,...,gk},其中,gi表示ti对应的快照子图,gi={ni,ei,ci},ni表示节点集合,表示ti时段内第α个节点,α≥3,ei表示链路集合,表示ti时段内第r条链路,r≥3,ci表示链路代价集合,表示ti时段内标注在上的代价;

本实施例中,构造了如图2所示的快照图g(t)={g1,g2,g3},在快照子图g1中,节点集合n1={a1,b1,d1,f1,h1,i1},链路集合链路代价集合在快照子图g2中,节点集合n2={a2,b2,d2,f2,h2,i2},链路集合链路代价集合在快照子图g3中,节点集合n3={a3,b3,d3,h3,i3},链路集合链路代价集合设每个快照子图的链路代价都为1,如图3所示。

步骤2)搜索每个快照子图gi中源节点si到目的节点di间的最小代价主路径:

(2a)根据业务传输需求,设ni中的源节点为si、目的节点为di,si∈ni,di∈ni

本实施例中,选取节点集合ni中的ai为源节点,ii为目的节点,表明在各时段为同一源、目的节点计算最小代价主路经和最小代价备份路径,其中i=1,2,3。

(2b)采用dijkstra算法,根据每个快照子图gi,以代价最小为优化目标,计算源节点si到目的节点di间的最短路径,并将该最短路径作为ti时段内源节点si与目的节点di间的最小代价主路径,即源节点si与目的节点di间的工作路径;

在本实施例中,分别计算三个快照子图中源节点ai到目的节点ii间的最短路径:

在如图3(a)所示的快照子图g1中,源节点a1到目的节点i1间的最短路径为a1-b1-d1-i1、a1-f1-d1-i1和a1-f1-h1-i1,在其中随机选择一条路径作为主路径,本实施例中选择a1-f1-d1-i1为主路径;

在如图3(b)所示的快照子图g2中,源节点a2到目的节点i2间的最短路径为a2-b2-d2-i2、a2-b2-h2-i2和a2-f2-h2-i2,在其中随机选择一条路径作为主路径,本实施例中选择a2-b2-d2-i2为主路径;

在如图3(c)所示的快照子图g3中,源节点a3到目的节点i3间的最短路径为a3-b3-d3-i3、和a3-b3-h3-i3,在其中随机选择一条路径作为主路径,本实施例中选择a3-b3-d3-i3为主路径。

步骤3)对每个快照子图gi中的链路代价进行更新:

步骤3a)利用深度优先搜索方法,在每个快照子图gi中搜索源节点si与目的节点di间的最大代价无环路径,将路径代价值作为代价惩罚值pi

步骤3a1)以源节点si作为起始节点,目的节点di作为终止节点,从si出发,先访问si的第一个邻接点,然后访问第一个邻接点的第一个邻接点,直至访问到di为止,并将访问过的节点放入链表内,然后返回到si重新出发,对没有访问过的节点进行访问,直到所有的节点都被访问到,并将每轮访问过程中访问的节点依次放入链表内,其中,是指在ti时段内第m轮访问过程中存放节点的链表;

在本实施例中,对于快照子图g1,将每轮访问过程中访问的节点依次放入链表中,则为a1->b1->d1->i1为a1->b1->d1->f1->h1->i1为a1->f1->d1->i1为a1->f1->h1->i1

对于快照子图g2,将每轮访问过程中访问的节点依次放入链表中,则为a2->b2->d2->i2为a2->b2->h2->i2为a2->f2->h2->i2为a2->f2->h2->b2->d2->i2

对于快照子图g3,将每轮访问过程中访问的节点依次放入链表中,则为a3->b3->d3->i3为a3->b3->h3->i3

步骤3a2)每个链表都代表一条无环路径,分别计算每条路径经过链路的链路代价之和,将链路代价之和作为每条路径的代价值,则链路代价之和最大的路径为最大代价无环路径;

本实施例,快照子图g1中共有4条无环路径,分别为a1-b1-d1-i1、a1-b1-d1-f1-h1-i1、a1-f1-d1-i1和a1-f1-h1-i1,每条路径经过链路的链路代价之和分别为3、5、3、3,即每条路径的代价值分别为3、5、3、3,所以最大代价无环路径为a1-b1-d1-f1-h1-i1

快照子图g2中共有4条无环路径,分别为a2-b2-d2-i2、a2-b2-h2-i2、a2-f2-h2-i2和a2-f2-h2-b2-d2-i2,每条路径经过链路的链路代价之和分别为3、3、3、5,即每条路径的代价值分别为3、3、3、5,所以最大代价无环路径为a2-f2-h2-b2-d2-i2

快照子图g3中共有4条无环路径,分别为a3-b3-d3-i3和a3-b3-h3-i3,每条路径经过链路的链路代价之和分别为3、3,即每条路径的代价值分别为3、3,两个链表长度相同,所以最大代价无环路径为a3-b3-d3-i3或a3-b3-h3-i3

步骤3a3)将每个快照子图gi中最大代价无环路径的路径代价值作为代价惩罚值pi

在本实施例的快照子图g1中,最大代价无环路径为a1-b1-d1-f1-h1-i1,该路径代价值为5,即代价惩罚值p1为5;在快照子图g2中,最大代价无环路径为a2-f2-h2-b2-d2-i2,该路径代价值为5,即代价惩罚值p2为5;在快照子图g3中,最大代价无环路径为a3-b3-d3-i3或a3-b3-h3-i3,路径代价值均为3,即代价惩罚值p3为3。

步骤3b)将快照子图gi中主路径经过的放入链表mi内,并遍历快照子图gi中的ei,将与链表mi中的元素进行逐一比对;

本实施例中,对于快照子图g1,主路经为a1->f1->d1->i1,则链表m1对于快照子图g2,主路经为a2-b2-d2-i2,则链表m2对于快照子图g3,主路经为a3-b3-d3-i3,则链表m3

步骤3c)判断链表mi中的元素是否包含若是,则包含在主路径中,并更新上的代价否则,不包含在主路径中,上的代价保持不变,得到更新后的快照子图gi′

对主路径包含的各链路增加代价惩罚值,是为了尽量避免在备份路径构建时对已选链路进行重复选择,主路径与备份路径有过多的重复链路,会降低数据传输的可靠性;

本实施例中,链表m1包含则链路上的代价更新为6,其余链路上的代价保持1不变,如图4(a)所示;链表m2包含则链路上的代价更新为6,其余链路上的代价保持1不变,如图4(b)所示;链表m3包含则链路上的代价更新为4,其余链路上的代价保持1不变,如图4(c)所示。

步骤4)搜索每个快照子图gi′中源节点si到目的节点di间的最小代价备份路径:

采用dijkstra算法,根据每个更新后的快照子图gi′,以代价最小为优化目标,计算源节点si到目的节点di间的最短路径,并将该最短路径作为ti时段内源节点si到目的节点di间的最小代价备份路径;

当主路径上的链路发生故障时,可快速切换到备份路径,同样,以代价最小为优化目标,选择备份路径,克服了现有技术中盲目选择备份路径的问题;

在更新后的快照子图g1′中,源节点a1到目的节点i1间的最短路径为a1-b1-d1-i1和a1-f1-h1-i1,在其中随机选择一条路径作为备份路径即可;

在更新后快照子图g2中,源节点a2到目的节点i2间的最短路径为a2-f2-h2-i2,则选择a2-f2-h2-i2作为备份路径;

在更新后快照子图g3中,源节点a3到目的节点i3间的最短路径为a3-b3-h3-i3,则选择a3-b3-h3-i3作为备份路径。

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