[发明专利]可扩展路由器中OSPF链路状态信息的分布式存储方法有效
申请号: | 201410609873.2 | 申请日: | 2014-11-03 |
公开(公告)号: | CN104468387B | 公开(公告)日: | 2017-08-29 |
发明(设计)人: | 陈文龙;王淑贤;郑喆 | 申请(专利权)人: | 首都师范大学 |
主分类号: | H04L12/803 | 分类号: | H04L12/803;H04L12/733;H04L29/08 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙)11201 | 代理人: | 张大威 |
地址: | 100048 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 扩展 路由器 ospf 状态 信息 分布式 存储 方法 | ||
1.一种可扩展路由器中OSPF链路状态信息的分布式存储方法,其特征在于,包括以下步骤:
S1:对待处理的OSPF区域中的各项参数进行初始化,具体包括:
S11:获取所述待处理的OSPF区域中的可扩展路由器中的节点处理器的个数NUMP以及所述待处理的OSPF区域中路由器的个数NUMR,设NUMP=n,NUMR=m;
S12:将所述可扩展路由器中各节点处理器按照当前任务的个数从小到大进行排序;
S13:设置一个大小为预设大小的数组存放所有路由器的标识信息,并将所述数组中的所有元素置零以完成初始化;
S14:设置数据结构RTNode,用以存储各个路由器之间的连接关系,其中,所述数据结构RTNode中的信息包括:Router ID,指向左孩子路由器的Lrouter指针和指向右孩子路由器的Rrouter指针;
S2:将所述待处理的OSPF区域的网络拓扑结构图形转换成树形结构;
S3:根据所述树形结构对所述待处理的OSPF区域进行区域划分及进行节点处理器的分配;
S4:在按照预设遍历顺序划分后的每个区域内选择一个代理路由器用以交换各个区域间的OSPF链路状态信息。
2.根据权利要求1所述的可扩展路由器中OSPF链路状态信息的分布式存储方法,其特征在于,所述步骤S2进一步包括:
S21:查找所有路由器的路由表以获取Routerroot;
S22:以Routerroot作为根节点开始构建树形结构;
S23:将所述根节点Routerroot的Router ID放入所述数组,将CPointer指向数组中的第一个元素,并根据当前路由器生成树形结构。
3.根据权利要求1所述的可扩展路由器中OSPF链路状态信息的分布式存储方法,其特征在于,所述步骤S3进一步包括:
S31:根据节点处理器的个数n和路由器的个数m,得到要划分成的区域的路由器的个数A,其中,A=[m/n]+1,并对所述树形结构进行遍历;
S32:查找所述树形结构最左边的叶子节点;
S33:从所述最左边的叶子节点开始按照所述预设遍历顺序依次进行遍历;
S34:将遍历后得到的A个路由器分配给n个节点处理器中指定的一个进行处理;
S35:判断所述A个路由器是否都分配给了指定的节点处理器,如果未分配完毕,则继续执行该步骤S35,如果分配完毕,则进入开始遍历,并将节点处理器的记录数目减一;
S36:判断n是否小于或等于0,如果n小于或等于0,则判定所述待处理OSPF区域分区完成,否则继续执行步骤S32至步骤S36。
4.根据权利要求1所述的可扩展路由器中OSPF链路状态信息的分布式存储方法,其特征在于,所述步骤S4进一步包括:
在每个划分后的区域中选择连接数最多的路由器作为本区域内的代理路由器,如果连接数最多的路由器有多个,则选择第一个找到的路由器作为本区域内的代理路由器,并通过所述代理路由器代理该区域内的所有路由器,与其它划分后的区域进行OSPF链路状态信息的交换,并通过划分后的区域内的代理路由器和管理该区域的节点处理器进行路由器链路状态信息的管理和维护,并且其它路由器不做任何改动。
5.根据权利要求2所述的可扩展路由器中OSPF链路状态信息的分布式存储方法,其特征在于,所述步骤S21进一步包括:
S211:记录每个路由器的路由表中与其自身直连的路由器的个数;
S212:获取所述路由表中与其自身直连的路由器的个数最多的路由器的Router ID,并将该路由器标记为Routerroot;
S213:如果所述路由表中与其自身直连的路由器的个数最多的路由器为多个,则将到所述待处理的OSPF区域中的指定路由器(DR,Designated Router)的跳数最小的路由器作为Routerroot。
6.根据权利要求2所述的可扩展路由器中OSPF链路状态信息的分布式存储方法,其特征在于,所述步骤S23进一步包括:
S231:查询当前路由器的路由表,获取与所述当前路由器直接相连的所有路由器的个数K,其中,将到当前路由器之间的跳数为1的路由器称为与当前路由器直接相连的路由器;
S232:根据从上到下的顺序查找所述当前路由器的路由表,并将所述当前路由器的Lrouter指针指向第一个在路由表中查询到的路由器,并将当前查找到的路由器的Router ID放入数组,然后将与当前路由器直接相连的路由器的记录数目减一;
S233:判断K是否大于0;
S234:如果K大于0,则继续在当前路由器的路由表中查找与CPointer指针指向的路由器直连的路由器,并将上一个查询到的路由器的Rrouter指针指向本次查找到的路由器,并将本次查询到的路由器的Router ID放入数组,并将与当前路由器直接相连的路由器数目的记录数目减一;
S235:判断K是否小于或等于0,如果K小于或等于0,则执行步骤S236,否则返回执行所述步骤S234;
S236:将CPointer指针指向所述数组中的下一个路由器以作为当前路由器,并执行上述步骤S234至步骤S235;
步骤S237:重复执行步骤S234至步骤S236,直至所述数组中所有的Router ID都被遍历完。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410609873.2/1.html,转载请声明来源钻瓜专利网。