[发明专利]一种基于逐跳方式的单节点故障保护方法有效
申请号: | 201710436099.3 | 申请日: | 2017-06-12 |
公开(公告)号: | CN107302500B | 公开(公告)日: | 2020-06-12 |
发明(设计)人: | 耿海军;张举 | 申请(专利权)人: | 山西大学 |
主分类号: | H04L12/753 | 分类号: | H04L12/753;H04L12/707;H04L12/721 |
代理公司: | 山西五维专利事务所(有限公司) 14105 | 代理人: | 陈昉 |
地址: | 030006*** | 国省代码: | 山西;14 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 方式 节点 故障 保护 方法 | ||
1.一种基于逐跳方式的单节点故障保护方法,包括以下步骤:
步骤1:计算以节点d为根节点的反向最短路径树rspt(d);
步骤2:将网络中所有节点的备份下一跳设置为空,所有节点的访问标识设置为未访问,所有节点的颜色标记为白色;
步骤3:根据深度优先算法遍历以d为根的最短路径树中的未被访问过的节点;如果所遍历节点为未访问过的节点,则执行步骤4;如果所遍历的以节点d为根节点的最短路径树rspt(d)的全部节点均设为访问过的节点,则终止;
步骤4:将每次遍历的节点表示为节点v,设置节点v的访问标识为已访问;
步骤5:将其子树subtree(d,v)中的所有节点标记为红色,subtree(d,v)表示在rspt(d)中以节点v为根的子树的所有节点;
步骤6:访问节点v的未被访问过的孩子节点,根据计算第一类桥的方法判断;如果节点u∈child(d,v)对应的子树只有一个一类桥,则选择该桥作为该子树最终桥,记为(x,y),其中child(d,v)表示在rspt(d)中节点v的孩子节点;如果节点u∈child(d,v)对应的子树有多个第一类桥,则根据计算最终的桥的方法,计算具有最短重路由路径的一个桥作为该子树最终的桥,记为(x,y);
所述的计算第一类桥的方法为:
在以d为根的反向最短路径树中,对于该树中的任意一个节点v∈V-d,其中V表示网络中路由器的集合,当节点u∈child(d,v)时,如果存在一条链路,使得x∈subtree(d,u)和y∈V-subtree(d,v)-d同时成立,则链路(x,y)是子树subtree(d,u)的第一类桥;如果节点u∈child(d,v)对应的子树有第一类桥,将子树subtree(d,u)中的所有节点标记为红色,根据深度优先算法遍历子树subtree(d,u)中的所有节点,对于该子树中的节点x,检查它的每一个邻居节点y,如果该节点的颜色为白色,则链路(x,y)为子树subtree(d,u)的桥;
所述的计算最终的桥的方法为:
由下面公式计算节点u的重路由路径的代价,r(u,d)=cost(u,x)+cost(x,y)+cost(y,d),其中,cost(u,x)表示节点u到节点x的最小代价,cost(x,y)表示节点x到节点y的最小代价,cost(y,d)表示节点y到节点d的最小代价,r(u,d)表示节点u到节点d的重路由路径代价;对于找到的所有桥,选择具有最短重路由路径的一个桥作为该子树其最终的桥;
步骤7:如果节点v的孩子节点对应的子树不存在第一类桥,则根据第二类桥的计算方法,计算该子树的第二类桥,作为该子树最终的桥,记为(x,y);
所述的计算第二类桥的方法为:
在以目的地址d为根的反向最短路径树中,对于该树中的任意一个节点v∈V-d,当节点u∈child(d,v),w∈child(d,v)时,如果存在一条链路(p,q),使得p∈subtree(d,u)和q∈subtree(d,w)同时成立,则链路(p,q)为子树subtree(d,u)和子树subtree(d,w)的第二类桥;如果节点u∈child(d,v)对应的子树只有第二类桥,根据广度优先算法遍历子树subtree(d,u)中的所有节点,寻找首次出现的一条边(x,y),其中x是红色,y是绿色,则链路(x,y)即为该子树的最终桥;
步骤8:根据选择的最终的桥为相应节点,计算备份下一跳;其方法如下:
根据选定的最终的桥计算节点u的重路由路径,用(u,m...x,y,...p,q)来表示节点u的重路由路径,则相应节点的备份下一跳为:Backup(u,d)=m,Backup(x,d)=y,…,Backup(p,d)=q,Backup(u,d)表示节点u到节点d的备份下一跳,Backup(x,d)表示节点x到节点d的备份下一跳,Backup(p,d)表示节点p到节点d的备份下一跳;如果节点已经有备份下一跳,则将该节点的访问标识设置为已访问;
步骤9:如果节点v的孩子节点u有备份下一跳,则将该孩子节点对应的子树中的全部节点标记为绿色;
步骤10:检测subtree(d,v)中节点的颜色,如果subtree(d,v)中节点的颜色存在红色,执行步骤6;
步骤11:检测subtree(d,v)中节点的颜色,如果subtree(d,v)中所有节点的颜色全部为绿色,将subtree(d,v)中所有节点的颜色标记为白色,执行步骤3。
2.根据权利要求1所述的一种基于逐跳方式的单节点故障保护方法,其特征在于:还包括以下步骤:
步骤12:当节点u收到报文时,根据故障检测方法检测,如果节点u到达目的地址的默认下一跳没有故障,则将该报文直接转发到其默认下一跳;如果节点u到达目的地址的默认下一跳出现故障,则将该报文直接转发到其备份下一跳。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山西大学,未经山西大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710436099.3/1.html,转载请声明来源钻瓜专利网。