CN104468387B - 可扩展路由器中ospf链路状态信息的分布式存储方法 - Google Patents

可扩展路由器中ospf链路状态信息的分布式存储方法 Download PDF

Info

Publication number
CN104468387B
CN104468387B CN201410609873.2A CN201410609873A CN104468387B CN 104468387 B CN104468387 B CN 104468387B CN 201410609873 A CN201410609873 A CN 201410609873A CN 104468387 B CN104468387 B CN 104468387B
Authority
CN
China
Prior art keywords
router
ospf
region
current
pending
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410609873.2A
Other languages
English (en)
Other versions
CN104468387A (zh
Inventor
陈文龙
王淑贤
郑喆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou zunchuang Network Technology Co., Ltd.
Original Assignee
Capital Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Capital Normal University filed Critical Capital Normal University
Priority to CN201410609873.2A priority Critical patent/CN104468387B/zh
Publication of CN104468387A publication Critical patent/CN104468387A/zh
Application granted granted Critical
Publication of CN104468387B publication Critical patent/CN104468387B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种可扩展路由器中OSPF链路状态信息的分布式存储方法,包括以下步骤:S1:对待处理的OSPF区域中的各项参数进行初始化;S2:将所述待处理的OSPF区域的网络拓扑结构图形转换成树形结构;S3:根据所述树形结构对所述待处理的OSPF区域进行区域划分及进行节点处理器的分配;S4:在按照预设顺序划分后的每个区域内选择一个代理路由器用以交换各个区域间的OSPF链路状态信息。本发明的方法既可以减少OSPF内部总体的交换链路状态信息的带宽,又可以很好地实现板卡间的负载均衡。

Description

可扩展路由器中OSPF链路状态信息的分布式存储方法
技术领域
本发明涉及互联网IP路由器体系结构设计研究技术领域,特别涉及一种可扩展路由器中OSPF链路状态信息的分布式存储方法。
背景技术
Internet技术的发展特别是云计算和物联网技术的快速发展给路由器的处理能力带来了很大的挑战,大量的数据充斥着网络带宽,这种现状带来的问题促使了可扩展路由器的兴起与发展。可扩展路由器是一种建立在路由器的功能、性能以及其接口上的可扩展性路由器。
OSPF(Open Shortest Path First,开放式最短路径优先)协议是现在应用最广泛的IGP((Interior Gateway Protocol,内部网关协议)协议,其配置和实施决定整个网络的性能。通常来说,OSPF协议适用于大型的路由系统,尽管OSPF协议本身是以使用区域划分的方法来减少路由器之间的信息通信量,但是一个配置恰当的OSPF区域内部可能仍然会有几百台甚至上千台的路由器信息需要维护。另外,OSPF协议本身所包含的链路状态信息也会占用很大的网络带宽,这就使得整个网络的LSDB(Link State DataBase,链路状态数据库)数据库非常庞大,这就给OSPF区域内部的路由信息维护带来了很大的挑战。目前,解决这种问题的方法往往是使用可扩展路由器中的多个节点处理器去同时维护整个区域的信息,这样,单个OSPF区域内需要维护数量较大的链路状态信息,可扩展路由器中的多个处理器同时管理着区域中的链路状态信息,这就在一定程度上造成了冗余存储。因此,这种方法可能会导致板卡的负载不均衡,而这种负载不均衡的情况可能会进一步阻碍整个区域的路由信息处理速度。
发明内容
本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。
为此,本发明的目的在于提出一种可扩展路由器中OSPF链路状态信息的分布式存储方法,该方法既可以减少OSPF内部总体的交换链路状态信息的带宽,又可以很好地实现板卡间的负载均衡。
为达到上述目的,本发明的实施例提出了一种可扩展路由器中OSPF链路状态信息的分布式存储方法,包括以下步骤:S1:对待处理的OSPF区域中的各项参数进行初始化;S2:将所述待处理的OSPF区域的网络拓扑结构图形转换成树形结构;S3:根据所述树形结构对所述待处理的OSPF区域进行区域划分及进行节点处理器的分配;S4:在按照预设顺序划分后的每个区域内选择一个代理路由器用以交换各个区域间的OSPF链路状态信息。
根据本发明实施例的通过将与指定的路由器相连的所有路由器作为其孩子节点的思想将OSPF区域的网络拓扑图转换为特定的抽象树型结构,然后按照一定的遍历顺序遍历这种树型结构,每当得到一定数量的路由器时,将这些一定数量的路由器的链路状态信息交给一个节点处理器去维护,直到区域中所有的路由器平均分配给不同的节点处理器去维护链路状态信息,并通过划分后的区域内的代理器和管理该区域的处理器进行路由器链路状态信息的管理和维护,而其它路由器不做任何改动。这样,每个处理器就只会管理和维护自己所需要管理的区域,而区域之间选择各自的代理节点相互发布信息,从而可以减少OSPF内部总体的交换链路状态信息的带宽,又可以很好地实现板卡间的负载均衡,并有效地提高了可扩展路由器中各处理器的处理效率。
另外,根据本发明上述实施例的可扩展路由器中OSPF链路状态信息的分布式存储方法还可以具有如下附加的技术特征:
在本发明的一个实施例中,所述步骤S1进一步包括:S11:获取所述待处理的OSPF区域中的可扩展路由器中的节点处理器的个数NUMP以及所述待处理的OSPF区域中路由器的个数NUMR,设NUMP=n,NUMR=m;S12:将所述可扩展路由器中各节点处理器按照当前任务的个数从小到大进行排序;S13:设置一个大小为预设大小的数组存放所有路由器的标识信息,并将所述数组中的所有元素置零以完成初始化;S14:设置数据结构RTNode,用以存储各个路由器之间的连接关系,其中,所述数据结构RTNode中的信息包括:Router ID,指向左孩子路由器的Lrouter指针和指向右孩子路由器的Rrouter指针。
在本发明的一个实施例中,所述步骤S2进一步包括:S21:查找所有路由器的路由表以获取Routerroot;S22:以Routerroot作为根节点开始构建树型结构;S23:将所述根节点Routerroot的Router ID放入所述数组,将CPointer指向数组中的第一个元素,并根据当前路由器生成树形结构。
在本发明的一个实施例中,所述步骤S3进一步包括:S31:根据节点处理器的个数n和所有路由器的个数m,得到每个要划分成的区域的路由器的个数A,其中,A=[m/n]+1,并对所述树型结构进行遍历;S32:查找所述树形结构最左边的叶子节点;S33:从所述最左边的叶子节点开始按照所述预设顺序依次进行遍历;S34:将遍历后得到的A个路由器分配给该划分区域内的n个节点处理器中指定的一个进行处理;S35:判断所述A个路由器是否都分配给了指定的节点处理器,如果未分配完毕,则继续执行该步骤S35,如果分配完毕,则进入开始遍历,并执行n--;S36:判断n是否小于或等于0,如果n小于或等于0,则判定所述待处理OSPF区域分区完成,否则继续执行步骤S32至步骤S36。
在本发明的一个实施例中,所述步骤S4进一步包括:在每个划分后的区域中选择连接数最多的路由器作为本区域内的代理路由器,如果连接数最多的路由器有多个,则选择第一个找到的路由器作为本区域内的代理路由器,并通过所述代理路由器代理该区域内的所有路由器与其它划分后的区域进行OSPF链路状态信息的交换,并通过划分后的区域内的代理路由器和管理该区域的节点处理器进行路由器链路状态信息的管理和维护,并且其它路由器不做任何改动。
在本发明的一个实施例中,所述步骤S21进一步包括:S211:记录每个路由器的路由表中与其自身直连的路由器的个数;S212:获取所述路由表中与其自身直连的路由器的个数最多的路由器的Router ID,并将该路由器标记为Routerroot;S213:如果所述路由表中与其自身直连的路由器的个数最多的路由器为多个,则将到所述待处理的OSPF区域中的指定路由器(DR,Designated Router)的跳数最小的路由器作为Routerroot
在本发明的一个实施例中,所述步骤S23进一步包括:S231:查询当前路由器的路由表,获取与所述当前路由器直接相连的所有路由器的个数K,其中,将到当前路由器之间的跳数为1的路由器称为与当前路由器直接相连的路由器;S232:根据从上到下的顺序查找所述当前路由器的路由表,并将所述当前路由器的Lrouter指针指向第一个在路由表中查询到的路由器,并将当前查找到的路由器的Router ID放入数组,然后执行K--;S233:判断K是否大于0;S234:如果K大于0,则继续在当前路由器的路由表中查找与CPointer指针指向的路由器直连的路由器,并将上一个查询到的路由器的Rrouter指针指向本次查找到的路由器,并将本次查询到的路由器的Router ID放入数组,并执行K--;S235:判断K是否小于或等于0,如果K小于或等于0,则执行步骤S236,否则返回执行所述步骤S234;S236:将CPointer指针指向所述数组中的下一个路由器以作为当前路由器,并执行上述步骤S234至步骤S235;步骤S237:重复执行步骤S234至步骤S236,直至所述数组中所有的Router ID都被遍历完。
在本发明的一个实施例中,在所述步骤S32中,查找所述树形结构最左边的叶子节点的过程通过如下代码实现:
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的可扩展路由器中OSPF链路状态信息的分布式存储方法的流程图;以及
图2为根据本发明另一个实施例的可扩展路由器中OSPF链路状态信息的分布式存储方法的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度小于第二特征。
下面参照附图描述根据本发明实施例的可扩展路由器中OSPF链路状态信息的分布式存储方法。
图1为根据本发明一个实施例的可扩展路由器中OSPF链路状态信息的分布式存储方法的流程图。图2为根据本发明另一个实施例的可扩展路由器中OSPF链路状态信息的分布式存储方法的流程图。结合图1和图2所示,该方法包括以下步骤:
步骤S1:对待处理的OSPF区域中的各项参数进行初始化。
具体地,步骤S1包括以下步骤:
步骤S11:获取待处理的OSPF区域中的可扩展路由器中的节点处理器的个数NUMP以及待处理的OSPF区域中的路由器的个数NUMR,设NUMP=n,NUMR=m。
步骤S12:按照可扩展路由器中各节点处理器中所有板卡的当前任务的个数对其从小到大进行排序,当前任务的个数越少就表示其处理能力越强。节点处理器按照处理能力从大到小分别标记为P1~Pn
步骤S13:设置一个大小为预设大小的数组存放网络中所有路由器的标识信息,并将数组中的所有元素置零以完成初始化。其中,预设大小例如为m*4B,具体地说,每个待处理的OSPF区域用4B的大小去存储一个路由器的标识,称为Router ID,并用该4B大小的Router ID信息来唯一的标识一台路由器。
步骤S14:设置数据结构RTNode,用以存储网络中各个路由器之间的连接关系,其中,数据结构RTNode中的信息包括:Router ID,指向左孩子路由器的Lrouter指针和指向右孩子路由器的Rrouter指针。
步骤S2:将待处理的OSPF区域的网络拓扑结构图形转换成树形结构。
具体地,步骤S2包括以下步骤:
S21:从待处理的OSPF区域中的可扩展路由器开始,查找所有路由器的路由表以获取Routerroot
更为具体地,步骤S21包括以下步骤:
S211:记录每个路由器的路由表中与其自身直连的路由器的个数。
S212:获取步骤S211中的路由表中与其自身直连的路由器的个数最多的路由器的Router ID,并将该路由器标记为Routerroot
S213:如果步骤S211中的路由表中与其自身直连的路由器的个数最多的路由器有多个,则将到待处理的OSPF区域中的DR(Designated Router,指定路由器)的跳数最小的路由器作为Routerroot
S22:以Routerroot作为根节点开始构建树型结构(将路由器的每个接口作为遍历的单位)。
S23:将根节点Routerroot的Router ID放入数组,将CPointer指向数组中的第一个元素,并根据当前路由器生成树形结构。其中,指针CPointer指向数组中的Routerroot节点,称指针CPointer所指的路由器节点为当前路由器节点。
具体地,步骤S23进一步包括以下步骤:
S231:查询当前路由器的路由表,获取与当前路由器直接相连的所有路由器的个数K,其中,将到当前路由器之间的跳数为1的路由器称为与当前路由器直接相连的路由器。
S232:根据从上到下的顺序查找当前路由的路由表,并将当前路由器的Lrouter指针(左孩子)指向第一个在路由表中查询到的路由器,并将当前查找到的路由器的Router ID放入数组,然后执行k--。其中,需要说明的是,如果Router ID已经存在,数组中就不再重复放入Router ID。如果未重复压入Router ID,则k--必须执行。
S233:判断K是否大于0。
S234,如果K大于0,则继续在当前路由器的路由表中查找与CPointer指针指向的路由器(当前路由器节点)直连的路由器,并将上一个查询到的路由器的Rrouter指针(右孩子)指向本次查找到的路由器,并将本次查询到的路由器的Router ID放入数组,然后执行k--。其中,需要说明的是,如果Router ID已经存在,数组中就不再重复放入Router ID。如果未重复压入Router ID,则k--必须执行。
S235:判断K是否小于或等于0,如果K小于或等于0,则执行步骤S236,否则返回执行步骤S234。
S236:将CPointer指针指向数组中下一个路由器的Router ID,也即数组中的下一个路由器作为当前路由器,并执行上述步骤S234至步骤S235,也即执行m--。
步骤S237:重复执行步骤S234至步骤S236,直至数组中所有的Router ID都被遍历完为止,即m=0时,退出循环。此时,待处理的OSPF区域中的所有路由器被搜索完毕,并形成了待分区的树型结构。
需要说明的是,在上述示例中,不存在与当前路由器相连的路由节点数为零的情况。具体地说,首先,在初始条件下,选取的是拥有最大连接数的路由节点,如果所有的路由器都不相连,这不符合OSPF协议;其次,即使不是在初始条件下,也不可能存在一个点是孤立的,这不符合OSPF协议。
步骤S3:根据树形结构对待处理的OSPF区域进行区域划分及进行节点处理器的分配。
具体地,步骤S3进一步包括以下步骤:
S31:根据步骤S11中节点处理器的个数n和路由器的个数m,得到每个要划分成的区域的路由器的个数A,其中,A=[m/n]+1,并开始对步骤S2中形成的树型结构进行遍历。
S32:初始化开始进行遍历的路由器节点,即查找树形结构最左边的叶子节点。在本发明的一个实施例中,该过程可通过如下代码实现:
S33:从树形结构的最左边的叶子节点开始按照预设顺序依次进行遍历。其中,在本发明的一个实施例中,预设顺序例如为由左孩子路由器—父亲路由器—右孩子路由器。
S34:按照步骤S32和步骤S33中描述的规则进行遍历得到A个路由器,将遍历后得到的A个路由器分配给该划分区域内的n个节点处理器中指定的一个进行处理。换言之,即将所有遍历到的路由器交给特定的一个节点处理器Pn处理(n的初始值是节点处理器的个数),并进一步执行n--。
其中,需要说明的是,因为Pn的处理能力最弱,因此,将其用于处理那些离Routerroot最远的路由器的转发信息,因为Routerroot必定是最后一个被遍历,所以处理能力最强的Pn去处理Routerroot所在的区域。
S35:判断A个路由器是否都分配给了指定的节点处理器,如果未分配完毕,则继续执行该步骤S35,如果分配完毕,则进入开始遍历,并执行n--。
S36:判断n是否小于或等于0,如果n小于或等于0,则判定待处理OSPF区域分区完成,否则继续执行该步骤S36。换言之,即当n>0时,表示n个节点处理器并没有都管理各自的A个路由器节点,也即OSPF区域中的路由器并未都分配到各自所属的节点处理器上,则继续执行该步骤。如果n<=0,则表示n个节点处理器全部都管理了各自的A个路由器节点,也即OSPF区域中的路由器都已经分配到各自所属的节点处理器上,则判定节点处理器分配完毕,也即待处理OSPF区域分区完成。
步骤S4:在按照步骤S3中的预设遍历顺序(左孩子路由器—父亲路由器—右孩子路由器)划分后的每个区域内选择一个代理路由器用以交换各个区域间的OSPF链路状态信息。具体地说,由于每个节点处理器按照处理能力的大小分到了一块区域,每块区域所分配到的路由器的个数相同,且都是相邻区域的路由器,所以重新划分区域后,不需要对现有的OSPF路由体系进行改动。
在一些示例中,步骤S4进一步包括:在每个划分后的区域中选择连接数最多的路由器作为该区域内的代理路由器,如果连接数最多的路由器有多个,则选择第一个找到的路由器作为该区域内的代理路由器,并通过该代理路由器代理该区域内的所有路由器与其它划分后的区域进行OSPF路由状态信息的交换。
综上所述,本发明上述实施例的方法的主要原理可概述如下:首先通过将与指定的路由器相连的所有路由器作为其孩子节点的思想将OSPF区域的网络拓扑图转换为特定的抽象树型结构,然后按照一定的遍历顺序遍历这种树型结构,每当得到一定数量的路由器时,将这些一定数量的路由器的链路状态信息交给一个处理器去维护,直到区域中所有的路由器平均分配(最后一个处理器可能与前面所分到路由器个数不同)给不同的处理器去维护链路状态信息。
换言之,该方法可以通过将OSPF区域内的一些相邻的路由器的划分为一个区域,并拿出一个单独的处理器去管理和维护这些信息,最后,一个OSPF区域就被划分成多个拥有相同数量的路由器的区域,那么,每个处理器就只会管理和维护自己所需要管理的区域,而区域之间选择各自的代理节点相互发布信息,并通过划分后的区域内的代理路由器和管理该区域的节点处理器进行路由器链路状态信息的管理和维护,而其它路由器不做任何改动。
根据本发明实施例的通过将与指定的路由器相连的所有路由器作为其孩子节点的思想将OSPF区域的网络拓扑图转换为特定的抽象树型结构,然后按照一定的遍历顺序遍历这种树型结构,每当得到一定数量的路由器时,将这些一定数量的路由器的链路状态信息交给一个节点处理器去维护,直到区域中所有的路由器平均分配给不同的节点处理器去维护链路状态信息,并通过划分后的区域内的代理器和管理该区域的处理器进行路由器链路状态信息的管理和维护,而其它路由器不做任何改动。这样,每个处理器就只会管理和维护自己所需要管理的区域,而区域之间选择各自的代理节点相互发布信息,从而可以减少OSPF内部总体的交换链路状态信息的带宽,又可以很好地实现板卡间的负载均衡,并有效地提高了可扩展路由器中各处理器的处理效率。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (6)

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都被遍历完。
CN201410609873.2A 2014-11-03 2014-11-03 可扩展路由器中ospf链路状态信息的分布式存储方法 Active CN104468387B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410609873.2A CN104468387B (zh) 2014-11-03 2014-11-03 可扩展路由器中ospf链路状态信息的分布式存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410609873.2A CN104468387B (zh) 2014-11-03 2014-11-03 可扩展路由器中ospf链路状态信息的分布式存储方法

Publications (2)

Publication Number Publication Date
CN104468387A CN104468387A (zh) 2015-03-25
CN104468387B true CN104468387B (zh) 2017-08-29

Family

ID=52913783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410609873.2A Active CN104468387B (zh) 2014-11-03 2014-11-03 可扩展路由器中ospf链路状态信息的分布式存储方法

Country Status (1)

Country Link
CN (1) CN104468387B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108075981B (zh) 2016-11-16 2021-04-09 华为技术有限公司 一种链路状态数据包的传输方法及路由节点
CN107070798B (zh) * 2016-12-23 2020-12-15 华为技术有限公司 网络区域划分方法、网络设备和系统
CN109714269B (zh) * 2018-12-19 2022-05-17 迈普通信技术股份有限公司 一种数据处理方法及网络设备
CN112260847B (zh) * 2019-07-22 2023-01-13 华为技术有限公司 一种发送ospf域信息的方法、获取ospf域信息的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102868619A (zh) * 2012-09-10 2013-01-09 杭州华三通信技术有限公司 一种lsa的传输方法和设备
CN102932260A (zh) * 2012-10-31 2013-02-13 福建星网锐捷网络有限公司 路由计算方法、设备及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60130844T2 (de) * 2000-08-29 2008-07-17 International Business Machines Corp. Autonomes OSPF-System mit einem in zwei Teilbereiche getrennten Hauptnetz

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102868619A (zh) * 2012-09-10 2013-01-09 杭州华三通信技术有限公司 一种lsa的传输方法和设备
CN102932260A (zh) * 2012-10-31 2013-02-13 福建星网锐捷网络有限公司 路由计算方法、设备及系统

Also Published As

Publication number Publication date
CN104468387A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
US7072304B2 (en) Network path selection based on bandwidth
CN104504003B (zh) 图数据的搜索方法和装置
CN107888496A (zh) 用于标签交换路径的多个路径计算
Mayer et al. Adwise: Adaptive window-based streaming edge partitioning for high-speed graph processing
CN104468387B (zh) 可扩展路由器中ospf链路状态信息的分布式存储方法
US8862744B2 (en) Optimizing traffic load in a communications network
US9454408B2 (en) Managing network utility of applications on cloud data centers
CN105515987B (zh) 一种基于sdn架构面向虚拟光网络的映射方法
CN103444149A (zh) 网络拓扑发现
CN105991430A (zh) 跨多个自治网络系统的数据路由
WO2017117951A1 (zh) 一种虚拟映射方法及装置
CN114090244B (zh) 一种服务编排方法、装置、系统及存储介质
CN106161610A (zh) 一种分布式存储的方法和系统
CN106850878A (zh) 逻辑l3路由
US20040153573A1 (en) Distributed router for dynamically managing forwarding information and method thereof
CN108040008B (zh) 在线服务功能链的跨域部署方法
CN108981739A (zh) 一种路径规划方法、装置、服务器及存储介质
US20100091685A1 (en) Method and System for Deducing Network Routes by Querying Routers
CN109565468A (zh) 确定通信网络中的路径
CN108781184A (zh) 用于在网络设备中提供分类资源的分区的系统和方法
CN107306224A (zh) 一种路由路径更新方法及网络管理装置
CN108259218A (zh) 一种ip地址分配方法和装置
CN105429879A (zh) 流表项查询方法、设备及系统
CN105634974A (zh) 软件定义网络中的路由确定方法和装置
CN111382114A (zh) 一种用于片上网络的数据传输方法、装置及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Ye Xixiang

Inventor after: Chen Wenlong

Inventor after: Wang Shuxian

Inventor after: Zheng Zhe

Inventor before: Chen Wenlong

Inventor before: Wang Shuxian

Inventor before: Zheng Zhe

CB03 Change of inventor or designer information
TR01 Transfer of patent right

Effective date of registration: 20171221

Address after: 510620 Room 518, Tianhe Road, Tianhe District, Guangzhou, Guangdong Province, room 2521

Patentee after: Guangzhou zunchuang Network Technology Co., Ltd.

Address before: 100048 Beijing West Third Ring Road, Haidian District, No. 105

Patentee before: Capital Normal Univ.

TR01 Transfer of patent right