[发明专利]一种基于增量最短路径优先的域内路由保护方法有效

专利信息
申请号: 201710270583.3 申请日: 2017-04-24
公开(公告)号: CN107426097B 公开(公告)日: 2020-06-12
发明(设计)人: 耿海军 申请(专利权)人: 山西大学
主分类号: H04L12/703 分类号: H04L12/703;H04L12/721;H04L12/751;H04L12/865
代理公司: 山西五维专利事务所(有限公司) 14105 代理人: 陈昉
地址: 030006*** 国省代码: 山西;14
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 增量 路径 优先 域内 路由 保护 方法
【权利要求书】:

1.一种基于增量最短路径优先的域内路由保护方法,包括以下步骤:

步骤S101:计算以节点c为根节点的最短路径树spt(c),包括以下步骤:

步骤11,网络中所有路由器根据开放最短路径优先(OSPF)协议获取域内拓扑结构;

步骤12,创建一个优先级队列,优先级队列中节点对应的结构体由路由器标识、节点代价、父亲节点和访问标识组成;将网络中所有节点的结构体进行初始化;节点结构体包括,该节点的路由器标识、节点代价、父亲节点和访问标识;将根节点c的节点代价设置为0,将其余节点的节点代价设为无穷大,设置所有节点的父亲节点为空,设置所有节点的访问标记为未访问,路由器ID为回环接口地址;将根节点c加入到该队列中;

步骤13,检查优先级队列中是否为空;如果不为空,则执行步骤14;如果为空,则执行步骤S102;

步骤14,根据节点出队列规则选取一个节点出队列,将出队列的节点存储在变量v中,并且将其访问标识属性设置为已访问;

步骤15,如果出队列的节点不是根节点c,计算出根节点c到该节点的默认下一跳;当一个节点出队列后,将该节点的节点代价t(c,v)的数值赋给节点c到该节点的最小代价cost(c,v)即cost(c,v)=t(c,v),其中t(c,v)表示节点v的节点代价;

通过下面的方法计算根节点c到v的默认下一跳dn(c,v):

其中,p(c,v)表示节点v的父亲节点;

步骤16,遍历节点v的未被访问过的邻居节点,根据更新邻居节点的节点代价和父亲节点的方法,更新邻居节点的节点代价和父亲节点,并且将更新后的节点存储在优先级队列中;

步骤17,如果节点u是节点v的最后一个未被访问的邻居或者节点u的所有邻居都被访问过,则执行步骤13,否则继续遍历其下一个邻居节点,并且执行步骤16;

步骤S102:改变与根节点c直连节点的权值,如果x∈N(c),则将链路(c,x)和链路(x,c)的权值调整为0,即w(c,x)=w(x,c)=0,并且将该链路权值变化量存储在变量weight中,N(c)表示根节点c的邻居节点;

步骤S103:计算新的最短路径树,包括以下步骤:

步骤31,将除去根节点c的所有节点的访问标识设置为未访问,找出节点x的所有子孙节点D(spt(c),x),如果y∈D(spt(c),x),则将cost(c,x)=cost(c,x)-weight,将D(spt(c),x)中所有节点的访问标记设置为已访问,对于如果该节点未被访问并且与D(spt(c),x)中的节点直接相连,根据t(c,m)=cost(c,x)+w(x,m)计算该节点的节点代价;如果t(c,m)<cost(c,m),则将节点m的节点代价修改为t(c,m),父亲节点修改为节点x;将节点m加入到优先级队列中;

步骤32,检查优先级队列中是否为空,如果不为空,则执行步骤33;如果为空,则执行步骤S104;

步骤33,根据节点出队列规则选取一个节点出队列,将出队列的节点存储在变量v中,并且将其访问标识属性设置为已访问;当一个节点出队列后,将该节点的节点代价t(c,v)的数值赋给节点c到该节点的最小代价cost(c,v)即cost(c,v)=t(c,v),其中t(c,v)表示节点v的节点代价;

步骤34,遍历节点v的未被访问过的邻居节点,根据更新邻居节点的节点代价和父亲节点方法,更新邻居节点的节点代价和父亲节点,并且将更新后的节点存储在优先级队列中;

步骤35,如果节点u是节点v的最后一个未被访问的邻居或者节点u的所有邻居都被访问过,则执行步骤32;否则继续遍历其下一个邻居节点,并且执行步骤34;

步骤S104:根据spt(c)和spt'(c)计算根节点c到到网络中其他所有节点的备份下一跳,具体方法如下:

对于网络中除去根节点c的任意一个节点,将该节点存储在变量u中,如果在spt(c)中,根节点c到节点u的默认下一跳为y;对于链路(c,x)(x≠y),将其权值调整为0;在新的spt'(c)中,如果节点u为节点x的子孙节点u∈D(spt'(c),x),则cost(x,u)<cost(c,u),则节点x可以作为根节点c到节点u的备份下一跳,即bn(c,u)=bn(c,u)∪{x};

然后,将链路(c,x)和链路(x,c)的权值调整为变更为0之前的数值;如果与其直接相连的链路的代价没有被调整过,则执行步骤S102;否则方法结束。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山西大学,未经山西大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710270583.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top