CN106302178B - 一种路由查询方法及装置 - Google Patents
一种路由查询方法及装置 Download PDFInfo
- Publication number
- CN106302178B CN106302178B CN201510260256.0A CN201510260256A CN106302178B CN 106302178 B CN106302178 B CN 106302178B CN 201510260256 A CN201510260256 A CN 201510260256A CN 106302178 B CN106302178 B CN 106302178B
- Authority
- CN
- China
- Prior art keywords
- routing
- storage structure
- level tree
- routing table
- cluster
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种路由查询方法及装置,基于预先创建的两级树形存储结构,在第一级树形存储结构中查找与待查询路由表项相关联的第一路由集群,再在第一路由集群下查找与待查询路由表项相关联的第一路由设备,然后再在第一路由设备下查找待查询路由表项,并返回查询结构,其中,第一路由设备是第一级树形存储结构中的叶子结点,又是第二级树形存储结构中的根结点。这样仅需要三次查找过程,即可得到待查询路由表项的查询结构,大大提高了路由的查询速度。
Description
技术领域
本发明涉及路由优化领域,尤其涉及一种路由查询方法及装置。
背景技术
对于高速路由器的包转发能力至少达到20Mpps以上,支持转发路由至少25万条以上。在单台路由器无法继续扩展以适应需求的情况下,集群化技术应运而生。集群***能够在各台路由器单机之间很好的协同工作,极大的扩展了路由器的容量,由于集群路由器对外仅体现为一台路由器,使得网络拓扑和路由策略变得简单和清晰。但路由器集群***涉及设备个体较多,当***满负荷运行时,在保证高可靠性和高稳定性同时,多台路由器之间交换路由查询速度,对高速路由器的性能有着至关重要的作用。
交换设备在学习到某路由表项后,会先存放至供CPU进行软转发的软件层路由表中,然后再下发至转发芯片中用于实现硬件层转发的硬件层路由表。当需要更新或删除某条路由表项时,需要CPU先从软件层路由表中查询到该路由表项,然后再予以更新或删除,最后才会更新或删除转发芯片中的硬件层路由表。因此,软件层路由表项的查询效率将直接影响到路由表项下发至硬件层的进度,从而影响报文硬件层转发的进度。而软件层路由表项的查询效率通常取决于路由表项的存储方式。集群***路由表存储方式对于路由查询效率影响更明显。
现有IP路由存储方式大多基于树形,公网和每个VPN分别占用一棵树,并利用IP地址前缀作为树节点。对于最大长度为32位的IP地址前缀来说,树的深度即为32层,那么利用IP地址从树的根节点依次遍历每一层来查找路由表项时,最多需要32次查找才能够找到待查找路由表项所对应的目标节点,因而查询效率较低。
发明内容
为了解决上述技术问题,本发明提供了一种路由查询方法及装置,解决了现有技术中路由查询速度慢,查询效率低的问题。
依据本发明的一个方面,提供了一种路由查询方法,包括:
根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群;其中,路由集群为第一级树形存储结构的根结点,路由设备为第一级树形存储结构的叶子结点;
在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由设备;其中,第一级树形存储结构的叶子结点为第二级树形存储结构的根结点,路由表项为第二级树形存储结构的叶子结点;
在第二级树形存储结构的根结点下查找与待查询路由表项相同的叶子结点,并返回查询结果。
进一步地,根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群的步骤包括:
在第一级树形存储结构中,以待查询路由表项作为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址;其中,第一哈希地址中存储有与待查询路由表项相关联的路由集群;
在第一哈希地址中读取对应的候选路由集群,若候选路由集群中包括待查询路由表项,则将候选路由集群作为第一路由集群。
进一步地,在由单个路由设备下多个路由表项形成的第二级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由设备的步骤包括:
在第二级树形存储结构中,以待查询路由表项作为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址;其中,第二哈希地址中存储有与待查询路由表项相关联的路由设备;
在第二哈希地址中读取对应的候选路由设备,若候选路由设备中包括待查询路由表项,则将候选路由设备作为第一路由设备。
进一步地,在第二级树形存储结构的根结点下查找与待查询路由表项相同的叶子结点,并返回查询结构的步骤包括:
在第一路由设备为根结点的第二级树形存储结构中,以待查询路由表项作为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址;其中,第三哈希地址中存储有第一路由设备的全部路由表项;
在第三哈希地址中读取对应的候选路由表项,若候选路由表项为待查询路由表项,则查找成功;否则,遍历线性链表查找待查询路由表项。
进一步地,在根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群的步骤之前,还包括:
获取待查询路由表项,并判断待查询路由表项是否为预设频繁项;其中,预设频繁项为占有率高于预设阈值的路由表项;
若不是,则遍历线性链表查找待查询路由表项;
若是,则在第一级树形存储结构中查找第一路由集群。
进一步地,在根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群的步骤之前,还包括:
获取单个路由集群下多个路由设备中的频繁项,并根据第一预设哈希函数,创建频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中;
根据第二预设哈希函数,创建频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中;
根据第三预设哈希函数,将路由表项存储于第二级树形存储结构的叶子结点中。
进一步地,根据第一预设哈希函数,创建频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中的步骤包括:
以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地 址,并将对应的路由集群存储于第一哈希地址中;
存储有不同路由集群的多个第一哈希地址,构建为第一级树形存储结构的根结点。
进一步地,根据第二预设哈希函数,创建频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中的步骤包括:
以频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的路由设备存储于第二哈希地址中;
存储有不同的路由设备的多个第二哈希地址,构建为第一级树形存储结构的叶子结点或第二级树形存储结构的根结点。
进一步地,根据第三预设哈希函数,将路由表项存储于第二级树形存储结构的叶子结点中的步骤包括:
以路由表项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的路由表项存储于第三哈希地址中;
存储有不同路由表项的多个第三哈希地址,构建为第二级树形存储结构的叶子结点。
进一步地,在根据第一预设哈希函数,创建频繁项对应的路由集群下的多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中的步骤之后,还包括:
当增加新路由集群时,获取新路由集群的频繁项;
以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的新路由集群存储于第一哈希地址中,更新第一级树形存储结构的根结点。
进一步地,在根据第一预设哈希函数,创建频繁项对应的路由集群下的多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中的步骤之后,还包括:
当路由集群减少时,将对应的第一哈希地址中的路由集群删除,更新第一级树形存储结构的根结点。
进一步地,根据第二预设哈希函数,创建频繁项对应的路由设备下的路由 表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中的步骤之后,还包括:
当增加新路由设备时,获取新路由设备的频繁项;
以频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的新路由设备存储于第二新哈希地址中,更新第一级树形存储结构的叶子结点或二级树形存储结构的根结点。
进一步地,在根据第二预设哈希函数,创建频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中的步骤之后,还包括:
当路由设备减少时,将对应的第二哈希地址中存储的路由设备删除,更新第一级树形存储结构的叶子结点或二级树形存储结构的根结点。
进一步地,根据第三预设哈希函数,将路由表项存储于第二级树形存储结构的叶子结点中的步骤之后,还包括:
当增加新路由表项时,获取新路由表项的频繁项;
以频繁项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的新路由表项存储于第三哈希地址中,更新第二级树形存储结构的叶子结点。
进一步地,在根据第三预设哈希函数,将路由表项存储于第二级树形存储结构的叶子结点中的步骤之后,还包括:
当路由表项减少时,将对应的第三哈希地址中存储的路由表项删除,更新第二级树形存储结构的叶子结点。
依据本发明的另一个方面,还提供了一种路由查询装置,包括:
第一查找模块,用于根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群;其中,路由集群为第一级树形存储结构的根结点,路由设备为第一级树形存储结构的叶子结点;
第二查找模块,用于在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由设备;其中,第一级树形存储结构的叶子结点为第二级树形存储结构的根结点,路由 表项为第二级树形存储结构的叶子结点;
第三查找模块,用于在第二级树形存储结构的根结点下查找与待查询路由表项相同的叶子结点,并返回查询结果。
进一步地,第一查找模块包括:
第一查找单元,用于在第一级树形存储结构中,以待查询路由表项作为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址;其中,第一哈希地址中存储有与待查询路由表项相关联的路由集群;
第一读取单元,用于在第一哈希地址中读取对应的候选路由集群,若候选路由集群中包括待查询路由表项,则将候选路由集群作为第一路由集群。
进一步地,第二查找模块包括:
第二查找单元,用于在第二级树形存储结构中,以待查询路由表项作为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址;其中,第二哈希地址中存储有与待查询路由表项相关联的路由设备;
第二读取单元,用于在第二哈希地址中读取对应的候选路由设备,若候选路由设备中包括待查询路由表项,则将候选路由设备作为第一路由设备。
进一步地,第三查找模块包括:
第三查找单元,用于在第一路由设备为根结点的第二级树形存储结构中,以待查询路由表项作为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址;其中,第三哈希地址中存储有第一路由设备的全部路由表项;
第三读取单元,用于在第三哈希地址中读取对应的候选路由表项,若候选路由表项为待查询路由表项,则查找成功;否则,遍历线性链表查找待查询路由表项。
进一步地,该路由查询装置还包括:
判断模块,用于获取待查询路由表项,并判断待查询路由表项是否为预设频繁项;其中,预设频繁项为占有率高于预设阈值的路由表项;
若不是,则遍历线性链表查找待查询路由表项;
若是,则在第一级树形存储结构中查找第一路由集群。
进一步地,该路由查询装置还包括:
第一创建模块,用于获取单个路由集群下的多个路由设备中的频繁项,并 根据第一预设哈希函数,创建频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中;
第二创建模块,用于根据第二预设哈希函数,创建频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中;
第三创建模块,用于根据第三预设哈希函数,将路由表项存储于第二级树形存储结构的叶子结点中。
进一步地,第一创建模块包括:
第一计算单元,用于以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的路由集群存储于第一哈希地址中;
第一创建单元,用于将存储有不同路由集群的多个第一哈希地址,构建为第一级树形存储结构的根结点。
进一步地,第二创建模块包括:
第二计算单元,用于以频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的路由设备存储于第二哈希地址中;
第二创建单元,用于将存储有不同的路由设备的多个第二哈希地址,构建为第一级树形存储结构的叶子结点或第二级树形存储结构的根结点。
进一步地,第三创建模块包括:
第三计算单元,用于以路由表项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的路由表项存储于第三哈希地址中;
第三创建单元,用于将存储有不同路由表项的多个第三哈希地址,构建为第二级树形存储结构的叶子结点。
进一步地,该路由查询装置还包括:
第一获取模块,用于当增加新路由集群时,获取新路由集群的频繁项;
第一更新模块,用于以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的新路由集群存储于第一哈希地址中,更新第一级树形存储结构的根结点。
进一步地,该路由查询装置还包括:
第二更新模块,用于当路由集群减少时,将对应的第一哈希地址中的路由 集群删除,更新第一级树形存储结构的根结点。
进一步地,该路由查询装置还包括:
第二获取模块,用于当增加新路由设备时,获取新路由设备的频繁项;
第三更新模块,用于以频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的新路由设备存储于第二新哈希地址中,更新第一级树形存储结构的叶子结点或二级树形存储结构的根结点。
进一步地,该路由查询装置还包括:
第四更新模块,用于当路由设备减少时,将对应的第二哈希地址中存储的路由设备删除,更新第一级树形存储结构的叶子结点或二级树形存储结构的根结点。
进一步地,该路由查询装置还包括:
第三获取模块,用于当增加新路由表项时,获取新路由表项的频繁项;
第五更新模块,用于以频繁项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的新路由表项存储于第三哈希地址中,更新第二级树形存储结构的叶子结点。
进一步地,该路由查询装置还包括:
第六更新模块,用于当路由表项减少时,将对应的第三哈希地址中存储的路由表项删除,更新第二级树形存储结构的叶子结点。
本发明的实施例的有益效果是:一种路由查询方法及装置,基于预先创建的两级树形存储结构,在第一级树形存储结构中查找与待查询路由表项相关联的第一路由集群,再在第一路由集群下查找与待查询路由表项相关联的第一路由设备,然后再在第一路由设备下查找待查询路由表项,并返回查询结构,其中,第一路由设备是第一级树形存储结构中的叶子结点,又是第二级树形存储结构中的根结点。这样仅需要三次查找过程,即可得到待查询路由表项的查询结构,大大提高了路由的查询速度。
附图说明
图1表示本发明的路由查询方法的流程示意图;
图2表示图1中步骤10的具体流程示意图;
图3表示图1中步骤20的具体流程示意图;
图4表示图1中步骤30的具体流程示意图;
图5表示图1中执行步骤10之前的具体流程示意图;
图6表示本发明实施例中树形存储结构的创建流程示意图;
图7表示本发明的路由查询装置的模块结构示意图。
其中图中:101、第一查找模块,102、第二查找模块,103、第三查找模块。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
实施例
在网络需求日益增大的情况下,集群概念普遍应用于各种网络拓扑结构中,为了扩大路由器的容量,引进了路由集群,但由于路由集群中涉及到的路由设备个体较多,路由查询的速度会影响着整体的性能,为了提高查询速度,如图1所示,本发明的实施例提供了一种路由查询方法,具体包括以下步骤:
步骤10:根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群。
其中,路由集群形成第一级树形存储结构的根结点,路由设备形成第一级树形存储结构的叶子结点。在需要查询某一路由表项时,需要先在第一级树形存储结构中查找到与其相关联的路由集群。
步骤20:在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由设备。
其中,第一级树形存储结构的叶子结点为第二级树形存储结构的根结点,路由表项为第二级树形存储结构的叶子结点;即路由设备既是第一级树形存储结构的叶子结点,又是第二级树形存储结构的根结点。也就是说,每个路由集 群都形成一第一级树形存储结构,每个路由设备形成一第二级树形存储结构,这样在查找到第一路由集群后,可在第一路由集群下查找与该待查询路由表项相关联的第一路由设备。
步骤30:在第二级树形存储结构的根结点下查找与待查询路由表项相同的叶子结点,并返回查询结果。
这里,在查找到对应的第一路由设备后,在第一路由设备中查找与待查询路由表项相同的叶子结点,即查找第一路由设备中是否存在待查询路由表项,若存在,则查找成功,若不存在,则查找失败。
本发明实施例中的路由查询方法,基于预先创建的两级树形存储结构,在第一级树形存储结构中查找与待查询路由表项相关联的第一路由集群,再在第一路由集群下查找与待查询路由表项相关联的第一路由设备,然后再在第一路由设备下查找待查询路由表项,并返回查询结构,其中,第一路由设备是第一级树形存储结构中的叶子结点,又是第二级树形存储结构中的根结点。这样仅需要三次查找过程,即可得到待查询路由表项的查询结构,大大提高了路由的查询速度。
进一步地,哈希树因其结构简单,并且查找速度快,又可以很方便的替换哈希算法,故而常常被用于存储关键的数据,基于以上优势,本发明实施例中可采用哈希树结构对路由进行存储。其中,步骤10具体可参照如图2所示的步骤实现:
步骤11:在第一级树形存储结构中,以待查询路由表项作为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址。
这里,第一哈希地址中存储有与待查询路由表项相关联的路由集群;以待查询路由表项作为关键字K,并将K代入创建第一级树形存储结构的根结点时所采用的第一预设哈希函数H1,计算出第一哈希地址H1(K)。
步骤12:第一哈希地址中读取对应的候选路由集群,若候选路由集群中包括待查询路由表项,则将候选路由集群作为第一路由集群。
这里,在第一哈希地址H1(K)中读取对应的候选路由集群,并判断该候选路由集群中是否存在待查询路由表项,若存在则将该候选路由集群作为第一路由集群。
进一步地,步骤20中查找第一路由设备的具体实现方式与步骤10中查找第一路由集群的具体实现方式类似,大致可参照如图3所示的步骤实现:
步骤21:在第二级树形存储结构中,以待查询路由表项作为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址。
这里,第二哈希地址中存储有与待查询路由表项相关联的路由设备;以待查询路由表项作为关键字K,并将K代入创建第一级树形存储结构的叶子结点或第二级树形存储结构的根结点时所采用的第二预设哈希函数H2,计算出第二哈希地址H2(K)。
步骤22:在第二哈希地址中读取对应的候选路由设备,若候选路由设备中包括待查询路由表项,则将候选路由设备作为第一路由设备。
这里,在第二哈希地址H2(K)中读取对应的候选路由设备,并判断该候选路由设备中是否存在待查询路由表项,若存在则将该候选路由设备作为第一路由设备。
进一步地,步骤30可具体参照如图4所示的步骤实现:
步骤31:在第一路由设备为根结点的第二级树形存储结构中,以待查询路由表项作为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址。
其中,第三哈希地址中存储有第一路由设备的全部路由表项,以待查询路由表项作为关键字K,并将K代入创建第二级树形存储结构的叶子结点时所采用的第三预设哈希函数H3,计算出第三哈希地址H3(K)
步骤32:在第三哈希地址中读取对应的候选路由表项,若候选路由表项为待查询路由表项,则查找成功;否则,遍历线性链表查找待查询路由表项。
这里,在第三哈希地址H3(K)中读取对应的路由表项,并将其与待查询路由表项作比较,若相等,则查找成功,并将查询结构反馈;若不相等,则按照创建树形存储结构时设定的处理冲突的方法查找下一个地址,直至查找到某一个地址中存储的路由表项与待查询的路由表项相同或查找到某一个地址未被占用时停止查找,本实施例中将存在冲突的路由表项存储于线性链表中,当查找到的路由表项与待查询路由表项不相等时,遍历线性链表查找。
进一步地,对于使用或查找频率较低的路由表项,亦可采用线性链表存储的方式,优选地,我们可以将查询或使用的频繁项以树形存储结构进行存储以 提高查询速度,而对于非频繁项则以线性链表的存储方式进行存储,以降低路由查询的复杂度。基于以上,本发明实施例的路由查找方法,如图5所示,在步骤10之前,还可以包括:
步骤01:获取待查询路由表项,并判断待查询路由表项是否为预设频繁项。
其中,预设频繁项为占有率高于预设阈值的路由表项,例如,我们可将预设阈值设置为0.001,这样当整个路由***中包括10万条路由表项时,路由表项A出现的次数大于或等于100,那么路由表项A即为频繁项。
步骤02:若不是,则遍历线性链表查找待查询路由表项;若是,则在第一级树形存储结构中查找第一路由集群。
进一步地,在步骤10之前,还包括如图6所示的创建树形存储结构的步骤。
步骤0A:获取单个路由集群下多个路由设备中的频繁项,并根据第一预设哈希函数,创建频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中。
进一步地,步骤0A具体可参照以下步骤实现:
以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的路由集群存储于第一哈希地址中。这里,第一预设哈希函数为H1,将每一个频繁项Ki均代入第一预设哈希函数H1中,得到第一哈希地址H1(Ki),并将包括频繁项Ki的路由集群存储于第一哈希地址H1(Ki)中。
存储有不同路由集群的多个第一哈希地址,构建为第一级树形存储结构的根结点。
步骤0B:根据第二预设哈希函数,创建频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中。
进一步地,步骤0B具体可参照以下步骤实现:
以频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的路由设备存储于第二哈希地址中。这里,第二预设哈希函数为H2,将每一个频繁项Ki均代入第二预设哈希函数H2中,得到第二哈希地址 H2(Ki),并将包括频繁项Ki的路由集群存储于第二哈希地址H2(Ki)中。
存储有不同的路由设备的多个第二哈希地址,构建为第一级树形存储结构的叶子结点或第二级树形存储结构的根结点。
步骤0C:根据第三预设哈希函数,将路由表项存储于第二级树形存储结构的叶子结点中。
进一步地,步骤0C具体可参照以下步骤实现:
以路由表项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的路由表项存储于第三哈希地址中。这里,第三预设哈希函数为H3,将每一个频繁项Ki均代入第三预设哈希函数H3中,得到第三哈希地址H3(Ki),并将包括频繁项Ki的路由集群存储于第三哈希地址H3(Ki)中。
存储有不同路由表项的多个第三哈希地址,构建为第二级树形存储结构的叶子结点。
以上也就是说,单台路由设备的路由表项均通过树形结构方式存储,路由表项作为该树形结构的叶子结点,当查找到某一台路由设备上是否存在待查询路由表项K时,需要将K代入建树时采用的第三预设哈希函数H3,计算出第三哈希地址H3(K),并读取该地址下存储的路由表项,与待查询路由表项K作比较,若相等,则查询成功,否则遍历线性链表,直至查找失败或查找成功。
将多个上述路由设备分为多个路由集群,对每个路由集群中的各个路由表项的支持度进行计数进行并行计算,得到支持度高于预设阈值的频繁项,并对频繁项支持度的高低进行降序排列,依据排序后的频繁项列表对路由设备进行分组,然后在分好的组内,依据路由表项K并根据第二预设哈希函数H2计算第二哈希地址,并将对应的路由设备存储于第二哈希地址中,也就是说单独的每一个路由集群中都形成一个完整的树形存储结构。
将路由集群视为一个整体,将多个不同的路由集群通过预设第一哈希函数H1存储于不同的第一哈希地址中。
进一步地,在建好树形存储结构后,当频繁项、路由设备或路由集群发生变化时,均会造成树形存储结构的变化,这样就涉及到树形存储结构的更新问题,以下将分别对于频繁项、路由设备或路由集群发生变化时树形存储结构的更新情况进行介绍。
情况一:当频繁项发生变化时,删除旧频繁项映射关系下第一哈希地址、第二哈希地址和第三哈希地址中存储的数据,增加新频繁项映射关系下的第一哈希地址、第二哈希地址和第三哈希地址中存储的数据,以实现树形存储结构中数据的更新。具体可参照以下步骤实现:
1)计算LΔ1=L1′-L1,式中,L1′是新频繁项下原路由集群的频繁项路由表项1的项集,L1是原阈值下原集群设备路由的频繁1-项集;
2)判断差值LΔ1是否为空集,是则执行步骤04),否则执行步骤03):
3)以差值LΔ1更新第一级树形存储结构;
4)第一级树形存储结构更新后与原第一级树形存储结构相同。
步骤3具体可参照以下方式进行:
01)判断差集LΔ1是否是空集,是则结束流程;
02)更新频繁项列表L1′=L1∪LΔ1;
03)将更新后的频繁项列表L1′降序排序;
04)对原集群设备路由集中的任意事项t,执行nItem=L1′∩t,取出待查询路由表项中与频繁项列表相交的路由表项;
05)执行nNode=nItem∩LΔ1,在频繁列表中出现的路由集中的待查询路由表项与差集LΔ1相交,求出新nNode;
06)将新nNode***到树形存储结构对应的地址中,更新结束。
情况二:当增加新路由集群时引起频繁项的变化时,获取新路由集群的频繁项,并以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的新路由集群存储于第一哈希地址中,更新第一级树形存储结构的根结点。首先,计算LΔ2=LDP1+LdP1-L1,式中,LDP1是新频繁项下原路由集群中的路由表项1的项集,LDP1是新频繁项下新增路由集群的路由表项1的项集,L1是原频繁项下原路由集群的路由表项1的项集;然后以差值LΔ2更新第一哈希地址中存储的路由集群。
这里,由于新增路由集群,可能会造成频繁项发生变化,这样需要再次获取频繁项,具体挖掘频繁项的步骤可参照以下介绍:
11)初始化k=1;
12)令k=k+1,采用Apriori算法,通过新增路由集群的频繁项路由表 项1的项集LDP1,其中l=k-1,生成新增路由集的候选频繁项路由表项k的项集cdk,判断新增路由集的候选频繁项路由表项k的项集cdk是否为空集,是则挖掘结束;
13)执行cΔk=cdk-Lk,求出新增路由集的候选频繁项路由表项k的项集cdk与原频繁项下原路由集群频繁项路由表项k的项集Lk之差,判断差值cΔk是否为空集,是则执行步骤15),否则执行步骤14);
14)对于步骤3)得到的差值cΔk中的每个项,通过更新后的树形存储结构计算出各路径的支持数;通过判断cΔk中的项的支持数是否不小于新阈值s′,得到新增的频繁项路由表项k的项集。
15)通过判断cdk中的项的支持数是否不小于新阈值s′,得到新增路由集群的频繁项路由表项k的项集LdP1。
情况三:当路由集群减少时,将对应的第一哈希地址中的路由集群删除,更新第一级树形存储结构的根结点。
情况四:当增加新路由设备时,获取新路由设备的频繁项;
以频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的新路由设备存储于第二新哈希地址中,更新第一级树形存储结构的叶子结点或二级树形存储结构的根结点。具体实现与情况二的实现方式类似,故在此不再赘述。
情况五:当路由设备减少时,将对应的第二哈希地址中存储的路由设备删除,更新第一级树形存储结构的叶子结点或二级树形存储结构的根结点。
情况六:当增加新路由表项时,获取新路由表项的频繁项;
以频繁项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的新路由表项存储于第三哈希地址中,更新第二级树形存储结构的叶子结点。
情况七:当路由表项减少时,将对应的第三哈希地址中存储的路由表项删除,更新第二级树形存储结构的叶子结点。
依据本发明实施例的另一个方面,还提供了一种路由查询装置,如图7所示,包括:
第一查找模块101,用于根据待查询路由表项,在由单个路由集群下的多 个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群;其中,路由集群为第一级树形存储结构的根结点,路由设备为第一级树形存储结构的叶子结点;
第二查找模块102,用于在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由设备;其中,第一级树形存储结构的叶子结点为第二级树形存储结构的根结点,路由表项为第二级树形存储结构的叶子结点;
第三查找模块103,用于在第二级树形存储结构的根结点下查找与待查询路由表项相同的叶子结点,并返回查询结果。
进一步地,第一查找模块101包括:
第一查找单元,用于在第一级树形存储结构中,以待查询路由表项作为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址;其中,第一哈希地址中存储有与待查询路由表项相关联的路由集群;
第一读取单元,用于在第一哈希地址中读取对应的候选路由集群,若候选路由集群中包括待查询路由表项,则将候选路由集群作为第一路由集群。
进一步地,第二查找模块102包括:
第二查找单元,用于在第二级树形存储结构中,以待查询路由表项作为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址;其中,第二哈希地址中存储有与待查询路由表项相关联的路由设备;
第二读取单元,用于在第二哈希地址中读取对应的候选路由设备,若候选路由设备中包括待查询路由表项,则将候选路由设备作为第一路由设备。
进一步地,第三查找模块103包括:
第三查找单元,用于在第一路由设备为根结点的第二级树形存储结构中,以待查询路由表项作为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址;其中,第三哈希地址中存储有第一路由设备的全部路由表项;
第三读取单元,用于在第三哈希地址中读取对应的候选路由表项,若候选路由表项为待查询路由表项,则查找成功;否则,遍历线性链表查找待查询路由表项。
进一步地,该路由查询装置还包括:
判断模块,用于获取待查询路由表项,并判断待查询路由表项是否为预设频繁项;其中,预设频繁项为占有率高于预设阈值的路由表项;
若不是,则遍历线性链表查找待查询路由表项;
若是,则在第一级树形存储结构中查找第一路由集群。
进一步地,该路由查询装置还包括:
第一创建模块,用于获取单个路由集群下的多个路由设备中的频繁项,并根据第一预设哈希函数,创建频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中;
第二创建模块,用于根据第二预设哈希函数,创建频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中;
第三创建模块,用于根据第三预设哈希函数,将路由表项存储于第二级树形存储结构的叶子结点中。
进一步地,第一创建模块包括:
第一计算单元,用于以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的路由集群存储于第一哈希地址中;
第一创建单元,用于将存储有不同路由集群的多个第一哈希地址,构建为第一级树形存储结构的根结点。
进一步地,第二创建模块包括:
第二计算单元,用于以频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的路由设备存储于第二哈希地址中;
第二创建单元,用于将存储有不同的路由设备的多个第二哈希地址,构建为第一级树形存储结构的叶子结点或第二级树形存储结构的根结点。
进一步地,第三创建模块包括:
第三计算单元,用于以路由表项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的路由表项存储于第三哈希地址中;
第三创建单元,用于将存储有不同路由表项的多个第三哈希地址,构建为第二级树形存储结构的叶子结点。
进一步地,该路由查询装置还包括:
第一获取模块,用于当增加新路由集群时,获取新路由集群的频繁项;
第一更新模块,用于以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的新路由集群存储于第一哈希地址中,更新第一级树形存储结构的根结点。
进一步地,该路由查询装置还包括:
第二更新模块,用于当路由集群减少时,将对应的第一哈希地址中的路由集群删除,更新第一级树形存储结构的根结点。
进一步地,该路由查询装置还包括:
第二获取模块,用于当增加新路由设备时,获取新路由设备的频繁项;
第三更新模块,用于以频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的新路由设备存储于第二新哈希地址中,更新第一级树形存储结构的叶子结点或二级树形存储结构的根结点。
进一步地,该路由查询装置还包括:
第四更新模块,用于当路由设备减少时,将对应的第二哈希地址中存储的路由设备删除,更新第一级树形存储结构的叶子结点或二级树形存储结构的根结点。
进一步地,该路由查询装置还包括:
第三获取模块,用于当增加新路由表项时,获取新路由表项的频繁项;
第五更新模块,用于以频繁项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的新路由表项存储于第三哈希地址中,更新第二级树形存储结构的叶子结点。
进一步地,该路由查询装置还包括:
第六更新模块,用于当路由表项减少时,将对应的第三哈希地址中存储的路由表项删除,更新第二级树形存储结构的叶子结点。
需要说明的是,该路由查询装置是与上述路由查询方法对应的装置,上述方法实施例中所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些 改进和润饰也在本发明的保护范围内。
Claims (28)
1.一种路由查询方法,其特征在于,包括:
根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群;其中,路由集群为所述第一级树形存储结构的根结点,路由设备为所述第一级树形存储结构的叶子结点;
在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由设备;其中,所述第一级树形存储结构的叶子结点为所述第二级树形存储结构的根结点,路由表项为所述第二级树形存储结构的叶子结点;
在所述第二级树形存储结构的根结点下查找与所述待查询路由表项相同的叶子结点,并返回查询结果;
其中,在根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群的步骤之前,还包括:
获取待查询路由表项,并判断所述待查询路由表项是否为预设频繁项;其中,所述预设频繁项为占有率高于预设阈值的路由表项;
若不是,则遍历线性链表查找所述待查询路由表项;
若是,则在所述第一级树形存储结构中查找第一路由集群。
2.根据权利要求1所述的路由查询方法,其特征在于,所述根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群的步骤包括:
在所述第一级树形存储结构中,以所述待查询路由表项作为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址;其中,所述第一哈希地址中存储有与所述待查询路由表项相关联的路由集群;
在所述第一哈希地址中读取对应的候选路由集群,若所述候选路由集群中包括所述待查询路由表项,则将所述候选路由集群作为第一路由集群。
3.根据权利要求1所述的路由查询方法,其特征在于,在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由设备的步骤包括:
在所述第二级树形存储结构中,以所述待查询路由表项作为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址;其中,所述第二哈希地址中存储有与所述待查询路由表项相关联的路由设备;
在所述第二哈希地址中读取对应的候选路由设备,若所述候选路由设备中包括所述待查询路由表项,则将所述候选路由设备作为第一路由设备。
4.根据权利要求1所述的路由查询方法,其特征在于,在所述第二级树形存储结构的根结点下查找与所述待查询路由表项相同的叶子结点,并返回查询结构的步骤包括:
在所述第一路由设备为根结点的第二级树形存储结构中,以所述待查询路由表项作为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址;其中,所述第三哈希地址中存储有所述第一路由设备的全部路由表项;
在所述第三哈希地址中读取对应的候选路由表项,若所述候选路由表项为所述待查询路由表项,则查找成功;否则,遍历线性链表查找所述待查询路由表项。
5.根据权利要求1~4任一项所述的路由查询方法,其特征在于,在根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群的步骤之前,还包括:
获取单个路由集群下多个路由设备中的频繁项,并根据第一预设哈希函数,创建所述频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将所述路由集群存储于所述第一级树形存储结构中的根结点中;
根据第二预设哈希函数,创建所述频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将所述路由设备存储于所述第一级树形存储结构中的叶子结点或所述第二级树形存储结构的根结点中;
根据第三预设哈希函数,将所述路由表项存储于所述第二级树形存储结构的叶子结点中。
6.根据权利要求5所述的路由查询方法,其特征在于,根据第一预设哈希函数,创建所述频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将所述路由集群存储于所述第一级树形存储结构中的根结点中的步骤包括:
以所述频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的路由集群存储于所述第一哈希地址中;
存储有不同路由集群的多个第一哈希地址,构建为第一级树形存储结构的根结点。
7.根据权利要求5所述的路由查询方法,其特征在于,根据第二预设哈希函数,创建所述频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将所述路由设备存储于所述第一级树形存储结构中的叶子结点或所述第二级树形存储结构的根结点中的步骤包括:
以所述频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的路由设备存储于所述第二哈希地址中;
存储有不同的路由设备的多个第二哈希地址,构建为第一级树形存储结构的叶子结点或第二级树形存储结构的根结点。
8.根据权利要求5所述的路由查询方法,其特征在于,根据第三预设哈希函数,将所述路由表项存储于所述第二级树形存储结构的叶子结点中的步骤包括:
以路由表项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的路由表项存储于所述第三哈希地址中;
存储有不同路由表项的多个第三哈希地址,构建为第二级树形存储结构的叶子结点。
9.根据权利要求6所述的路由查询方法,其特征在于,在根据第一预设哈希函数,创建所述频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将所述路由集群存储于所述第一级树形存储结构中的根结点中的步骤之后,还包括:
当增加新路由集群时,获取所述新路由集群的频繁项;
以所述频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的新路由集群存储于所述第一哈希地址中,更新所述第一级树形存储结构的根结点。
10.根据权利要求6所述的路由查询方法,其特征在于,在根据第一预设哈希函数,创建所述频繁项对应的路由集群下的多个路由设备的第一级树形存储结构,并将所述路由集群存储于所述第一级树形存储结构中的根结点中的步骤之后,还包括:
当路由集群减少时,将对应的第一哈希地址中的路由集群删除,更新所述第一级树形存储结构的根结点。
11.根据权利要求7所述的路由查询方法,其特征在于,根据第二预设哈希函数,创建所述频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将所述路由设备存储于所述第一级树形存储结构中的叶子结点或所述第二级树形存储结构的根结点中的步骤之后,还包括:
当增加新路由设备时,获取所述新路由设备的频繁项;
以所述频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的新路由设备存储于所述第二哈希地址中,更新所述第一级树形存储结构的叶子结点或所述二级树形存储结构的根结点。
12.根据权利要求7所述的路由查询方法,其特征在于,在根据第二预设哈希函数,创建所述频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将所述路由设备存储于所述第一级树形存储结构中的叶子结点或所述第二级树形存储结构的根结点中的步骤之后,还包括:
当路由设备减少时,将对应的第二哈希地址中存储的路由设备删除,更新所述第一级树形存储结构的叶子结点或所述二级树形存储结构的根结点。
13.根据权利要求8所述的路由查询方法,其特征在于,根据第三预设哈希函数,将所述路由表项存储于所述第二级树形存储结构的叶子结点中的步骤之后,还包括:
当增加新路由表项时,获取所述新路由表项的频繁项;
以所述频繁项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的新路由表项存储于所述第三哈希地址中,更新所述第二级树形存储结构的叶子结点。
14.根据权利要求8所述的路由查询方法,其特征在于,在根据第三预设哈希函数,将所述路由表项存储于所述第二级树形存储结构的叶子结点中的步骤之后,还包括:
当路由表项减少时,将对应的第三哈希地址中存储的路由表项删除,更新所述第二级树形存储结构的叶子结点。
15.一种路由查询装置,其特征在于,包括:
第一查找模块,用于根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群;其中,路由集群为所述第一级树形存储结构的根结点,路由设备为所述第一级树形存储结构的叶子结点;
第二查找模块,用于在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由设备;其中,所述第一级树形存储结构的叶子结点为所述第二级树形存储结构的根结点,路由表项为所述第二级树形存储结构的叶子结点;
第三查找模块,用于在所述第二级树形存储结构的根结点下查找与所述待查询路由表项相同的叶子结点,并返回查询结果;
判断模块,用于获取待查询路由表项,并判断所述待查询路由表项是否为预设频繁项;其中,所述预设频繁项为占有率高于预设阈值的路由表项;
若不是,则遍历线性链表查找所述待查询路由表项;
若是,则在所述第一级树形存储结构中查找第一路由集群。
16.根据权利要求15所述的路由查询装置,其特征在于,所述第一查找模块包括:
第一查找单元,用于在所述第一级树形存储结构中,以所述待查询路由表项作为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址;其中,所述第一哈希地址中存储有与所述待查询路由表项相关联的路由集群;
第一读取单元,用于在所述第一哈希地址中读取对应的候选路由集群,若所述候选路由集群中包括所述待查询路由表项,则将所述候选路由集群作为第一路由集群。
17.根据权利要求15所述的路由查询装置,其特征在于,所述第二查找模块包括:
第二查找单元,用于在所述第二级树形存储结构中,以所述待查询路由表项作为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址;其中,所述第二哈希地址中存储有与所述待查询路由表项相关联的路由设备;
第二读取单元,用于在所述第二哈希地址中读取对应的候选路由设备,若所述候选路由设备中包括所述待查询路由表项,则将所述候选路由设备作为第一路由设备。
18.根据权利要求15所述的路由查询装置,其特征在于,所述第三查找模块包括:
第三查找单元,用于在所述第一路由设备为根结点的第二级树形存储结构中,以所述待查询路由表项作为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址;其中,所述第三哈希地址中存储有所述第一路由设备的全部路由表项;
第三读取单元,用于在所述第三哈希地址中读取对应的候选路由表项,若所述候选路由表项为所述待查询路由表项,则查找成功;否则,遍历线性链表查找所述待查询路由表项。
19.根据权利要求15~18任一项所述的路由查询装置,其特征在于,还包括:
第一创建模块,用于获取单个路由集群下多个路由设备中的频繁项,并根据第一预设哈希函数,创建所述频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将所述路由集群存储于所述第一级树形存储结构中的根结点中;
第二创建模块,用于根据第二预设哈希函数,创建所述频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将所述路由设备存储于所述第一级树形存储结构中的叶子结点或所述第二级树形存储结构的根结点中;
第三创建模块,用于根据第三预设哈希函数,将所述路由表项存储于所述第二级树形存储结构的叶子结点中。
20.根据权利要求19所述的路由查询装置,其特征在于,所述第一创建模块包括:
第一计算单元,用于以所述频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的路由集群存储于所述第一哈希地址中;
第一创建单元,用于将存储有不同路由集群的多个第一哈希地址,构建为第一级树形存储结构的根结点。
21.根据权利要求19所述的路由查询装置,其特征在于,所述第二创建模块包括:
第二计算单元,用于以所述频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的路由设备存储于所述第二哈希地址中;
第二创建单元,用于将存储有不同的路由设备的多个第二哈希地址,构建为第一级树形存储结构的叶子结点或第二级树形存储结构的根结点。
22.根据权利要求19所述的路由查询装置,其特征在于,所述第三创建模块包括:
第三计算单元,用于以路由表项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的路由表项存储于所述第三哈希地址中;
第三创建单元,用于将存储有不同路由表项的多个第三哈希地址,构建为第二级树形存储结构的叶子结点。
23.根据权利要求20所述的路由查询装置,其特征在于,还包括:
第一获取模块,用于当增加新路由集群时,获取所述新路由集群的频繁项;
第一更新模块,用于以所述频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的新路由集群存储于所述第一哈希地址中,更新所述第一级树形存储结构的根结点。
24.根据权利要求20所述的路由查询装置,其特征在于,还包括:
第二更新模块,用于当路由集群减少时,将对应的第一哈希地址中的路由集群删除,更新所述第一级树形存储结构的根结点。
25.根据权利要求21所述的路由查询装置,其特征在于,还包括:
第二获取模块,用于当增加新路由设备时,获取所述新路由设备的频繁项;
第三更新模块,用于以所述频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的新路由设备存储于所述第二哈希地址中,更新所述第一级树形存储结构的叶子结点或所述二级树形存储结构的根结点。
26.根据权利要求21所述的路由查询装置,其特征在于,还包括:
第四更新模块,用于当路由设备减少时,将对应的第二哈希地址中存储的路由设备删除,更新所述第一级树形存储结构的叶子结点或所述二级树形存储结构的根结点。
27.根据权利要求22所述的路由查询装置,其特征在于,还包括:
第三获取模块,用于当增加新路由表项时,获取所述新路由表项的频繁项;
第五更新模块,用于以所述频繁项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的新路由表项存储于所述第三哈希地址中,更新所述第二级树形存储结构的叶子结点。
28.根据权利要求22所述的路由查询装置,其特征在于,还包括:
第六更新模块,用于当路由表项减少时,将对应的第三哈希地址中存储的路由表项删除,更新所述第二级树形存储结构的叶子结点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510260256.0A CN106302178B (zh) | 2015-05-20 | 2015-05-20 | 一种路由查询方法及装置 |
PCT/CN2015/095448 WO2016184069A1 (zh) | 2015-05-20 | 2015-11-24 | 一种路由查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510260256.0A CN106302178B (zh) | 2015-05-20 | 2015-05-20 | 一种路由查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106302178A CN106302178A (zh) | 2017-01-04 |
CN106302178B true CN106302178B (zh) | 2020-02-21 |
Family
ID=57319399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510260256.0A Active CN106302178B (zh) | 2015-05-20 | 2015-05-20 | 一种路由查询方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106302178B (zh) |
WO (1) | WO2016184069A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109714347A (zh) * | 2018-12-29 | 2019-05-03 | 杭州迪普科技股份有限公司 | 策略命中结果的存储、查询方法与装置、设备及介质 |
CN112749208A (zh) * | 2020-12-30 | 2021-05-04 | 普华云创科技(北京)有限公司 | 一种基于二级路由的分布式存储查找方法与*** |
CN114513449B (zh) * | 2022-02-23 | 2024-04-26 | 北京慧橙信息科技有限公司 | 一种域内路由选择优化方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159658A (zh) * | 2007-11-02 | 2008-04-09 | 华为技术有限公司 | 虚拟私用网路由查找的方法和装置 |
CN101902388A (zh) * | 2009-05-26 | 2010-12-01 | 北京风格九州文化传播有限公司 | 可扩充的多级排序资源快速发现技术 |
CN102511151A (zh) * | 2011-04-27 | 2012-06-20 | 华为技术有限公司 | 一种路由器、虚拟集群路由器***及建立方法 |
CN102571599A (zh) * | 2012-02-08 | 2012-07-11 | 福建三元达通讯股份有限公司 | 一种路由表项的快速存储方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797348B2 (en) * | 2003-05-01 | 2010-09-14 | The Hong Kong Polytechnic University | Data structure and system for IP address lookup and IP address lookup system |
US9608898B2 (en) * | 2010-08-05 | 2017-03-28 | Alcatel Lucent | Method and apparatus for performing multicast traces in MPLS networks |
CN103107945B (zh) * | 2013-01-10 | 2016-01-27 | 中国科学院信息工程研究所 | 一种快速查找ipv6路由的***及方法 |
US9467302B2 (en) * | 2013-10-07 | 2016-10-11 | Avaya Inc. | Quality of service aware hybrid multicast networks |
-
2015
- 2015-05-20 CN CN201510260256.0A patent/CN106302178B/zh active Active
- 2015-11-24 WO PCT/CN2015/095448 patent/WO2016184069A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159658A (zh) * | 2007-11-02 | 2008-04-09 | 华为技术有限公司 | 虚拟私用网路由查找的方法和装置 |
CN101902388A (zh) * | 2009-05-26 | 2010-12-01 | 北京风格九州文化传播有限公司 | 可扩充的多级排序资源快速发现技术 |
CN102511151A (zh) * | 2011-04-27 | 2012-06-20 | 华为技术有限公司 | 一种路由器、虚拟集群路由器***及建立方法 |
CN102571599A (zh) * | 2012-02-08 | 2012-07-11 | 福建三元达通讯股份有限公司 | 一种路由表项的快速存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106302178A (zh) | 2017-01-04 |
WO2016184069A1 (zh) | 2016-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866502B (zh) | 数据匹配的方法及装置 | |
US9269411B2 (en) | Organizing data in a hybrid memory for search operations | |
WO2016184029A1 (zh) | 支持哈希查找和路由查找的存储、查找方法和装置、存储介质 | |
US10191998B1 (en) | Methods of data reduction for parallel breadth-first search over graphs of connected data elements | |
US10771386B2 (en) | IP routing search | |
CN103051543A (zh) | 一种路由前缀的处理、查找、增加及删除方法 | |
CN107948060A (zh) | 一种新型的路由表建立、以及ip路由查找方法和装置 | |
CN102880628A (zh) | 哈希数据存储方法和装置 | |
CN106302178B (zh) | 一种路由查询方法及装置 | |
WO2013138441A1 (en) | Systems, methods, and software for computing reachability in large graphs | |
US8914574B2 (en) | Content addressable memory and method of searching data thereof | |
KR100999408B1 (ko) | 해시트리를 이용한 url 검색방법 | |
KR100965552B1 (ko) | 영역분할을 이용한 패킷 분류 테이블 생성 방법 및 패킷분류 방법과 장치 | |
CN110995876B (zh) | 一种ip存储与查找的方法及装置 | |
CN113328947B (zh) | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 | |
CN106709045B (zh) | 分布式文件***中节点选择方法及装置 | |
KR101587756B1 (ko) | 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법 | |
Alimohammadi et al. | Clustering-based many-field packet classification in software-defined networking | |
Lin et al. | A multi-index hybrid trie for lookup and updates | |
Kniesburges et al. | Hashed Patricia Trie: Efficient longest prefix matching in peer-to-peer systems | |
WO2013108333A1 (ja) | 検索装置、検索方法、及び、検索プログラム | |
US10476785B2 (en) | IP routing search | |
Li et al. | An IPv6 Routing Lookup Algorithm Based on Hash Table and HOT | |
Zhian et al. | Parallel processing priority trie-based IP lookup approach | |
CN115714752A (zh) | 一种包分类方法、装置、转发芯片及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |