一种路由查询方法及装置制造方法及图纸

技术编号:14368774 阅读:42 留言:0更新日期:2017-01-09 14:28
本发明专利技术公开了一种路由查询方法及装置,基于预先创建的两级树形存储结构,在第一级树形存储结构中查找与待查询路由表项相关联的第一路由集群,再在第一路由集群下查找与待查询路由表项相关联的第一路由设备,然后再在第一路由设备下查找待查询路由表项,并返回查询结构,其中,第一路由设备是第一级树形存储结构中的叶子结点,又是第二级树形存储结构中的根结点。这样仅需要三次查找过程,即可得到待查询路由表项的查询结构,大大提高了路由的查询速度。

【技术实现步骤摘要】

本专利技术涉及路由优化领域,尤其涉及一种路由查询方法及装置
技术介绍
对于高速路由器的包转发能力至少达到20Mpps以上,支持转发路由至少25万条以上。在单台路由器无法继续扩展以适应需求的情况下,集群化技术应运而生。集群系统能够在各台路由器单机之间很好的协同工作,极大的扩展了路由器的容量,由于集群路由器对外仅体现为一台路由器,使得网络拓扑和路由策略变得简单和清晰。但路由器集群系统涉及设备个体较多,当系统满负荷运行时,在保证高可靠性和高稳定性同时,多台路由器之间交换路由查询速度,对高速路由器的性能有着至关重要的作用。交换设备在学习到某路由表项后,会先存放至供CPU进行软转发的软件层路由表中,然后再下发至转发芯片中用于实现硬件层转发的硬件层路由表。当需要更新或删除某条路由表项时,需要CPU先从软件层路由表中查询到该路由表项,然后再予以更新或删除,最后才会更新或删除转发芯片中的硬件层路由表。因此,软件层路由表项的查询效率将直接影响到路由表项下发至硬件层的进度,从而影响报文硬件层转发的进度。而软件层路由表项的查询效率通常取决于路由表项的存储方式。集群系统路由表存储方式对于路由查询效率影响更明显。现有IP路由存储方式大多基于树形,公网和每个VPN分别占用一棵树,并利用IP地址前缀作为树节点。对于最大长度为32位的IP地址前缀来说,树的深度即为32层,那么利用IP地址从树的根节点依次遍历每一层来查找路由表项时,最多需要32次查找才能够找到待查找路由表项所对应的目标节点,因而查询效率较低。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种路由查询方法及装置,解决了现有技术中路由查询速度慢,查询效率低的问题。依据本专利技术的一个方面,提供了一种路由查询方法,包括:根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群;其中,路由集群为第一级树形存储结构的根结点,路由设备为第一级树形存储结构的叶子结点;在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由设备;其中,第一级树形存储结构的叶子结点为第二级树形存储结构的根结点,路由表项为第二级树形存储结构的叶子结点;在第二级树形存储结构的根结点下查找与待查询路由表项相同的叶子结点,并返回查询结果。进一步地,根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群的步骤包括:在第一级树形存储结构中,以待查询路由表项作为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址;其中,第一哈希地址中存储有与待查询路由表项相关联的路由集群;在第一哈希地址中读取对应的候选路由集群,若候选路由集群中包括待查询路由表项,则将候选路由集群作为第一路由集群。进一步地,在由单个路由设备下多个路由表项形成的第二级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由设备的步骤包括:在第二级树形存储结构中,以待查询路由表项作为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址;其中,第二哈希地址中存储有与待查询路由表项相关联的路由设备;在第二哈希地址中读取对应的候选路由设备,若候选路由设备中包括待查询路由表项,则将候选路由设备作为第一路由设备。进一步地,在第二级树形存储结构的根结点下查找与待查询路由表项相同的叶子结点,并返回查询结构的步骤包括:在第一路由设备为根结点的第二级树形存储结构中,以待查询路由表项作为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址;其中,第三哈希地址中存储有第一路由设备的全部路由表项;在第三哈希地址中读取对应的候选路由表项,若候选路由表项为待查询路由表项,则查找成功;否则,遍历线性链表查找待查询路由表项。进一步地,在根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群的步骤之前,还包括:获取待查询路由表项,并判断待查询路由表项是否为预设频繁项;其中,预设频繁项为占有率高于预设阈值的路由表项;若不是,则遍历线性链表查找待查询路由表项;若是,则在第一级树形存储结构中查找第一路由集群。进一步地,在根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与待查询路由表项相关联的根结点,得到第一路由集群的步骤之前,还包括:获取单个路由集群下多个路由设备中的频繁项,并根据第一预设哈希函数,创建频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中;根据第二预设哈希函数,创建频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中;根据第三预设哈希函数,将路由表项存储于第二级树形存储结构的叶子结点中。进一步地,根据第一预设哈希函数,创建频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中的步骤包括:以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的路由集群存储于第一哈希地址中;存储有不同路由集群的多个第一哈希地址,构建为第一级树形存储结构的根结点。进一步地,根据第二预设哈希函数,创建频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中的步骤包括:以频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的路由设备存储于第二哈希地址中;存储有不同的路由设备的多个第二哈希地址,构建为第一级树形存储结构的叶子结点或第二级树形存储结构的根结点。进一步地,根据第三预设哈希函数,将路由表项存储于第二级树形存储结构的叶子结点中的步骤包括:以路由表项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的路由表项存储于第三哈希地址中;存储有不同路由表项的多个第三哈希地址,构建为第二级树形存储结构的叶子结点。进一步地,在根据第一预设哈希函数,创建频繁项对应的路由集群下的多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中的步骤之后,还包括:当增加新路由集群时,获取新路由集群的频繁项;以频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的新路由集群存储于第一哈希地址中,更新第一级树形存储结构的根结点。进一步地,在根据第一预设哈希函数,创建频繁项对应的路由集群下的多个路由设备的第一级树形存储结构,并将路由集群存储于第一级树形存储结构中的根结点中的步骤之后,还包括:当路由集群减少时,将对应的第一哈希地址中的路由集群删除,更新第一级树形存储结构的根结点。进一步地,根据第二预设哈希函数,创建频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将路由设备存储于第一级树形存储结构中的叶子结点或第二级树形存储结构的根结点中的步骤之后,还包括:当增加新路由设备时,获取新路由设备的频繁项;以频繁项为关键字,并本文档来自技高网...
一种路由查询方法及装置

【技术保护点】
一种路由查询方法,其特征在于,包括:根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群;其中,路由集群为所述第一级树形存储结构的根结点,路由设备为所述第一级树形存储结构的叶子结点;在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由设备;其中,所述第一级树形存储结构的叶子结点为所述第二级树形存储结构的根结点,路由表项为所述第二级树形存储结构的叶子结点;在所述第二级树形存储结构的根结点下查找与所述待查询路由表项相同的叶子结点,并返回查询结果。

【技术特征摘要】
1.一种路由查询方法,其特征在于,包括:根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群;其中,路由集群为所述第一级树形存储结构的根结点,路由设备为所述第一级树形存储结构的叶子结点;在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由设备;其中,所述第一级树形存储结构的叶子结点为所述第二级树形存储结构的根结点,路由表项为所述第二级树形存储结构的叶子结点;在所述第二级树形存储结构的根结点下查找与所述待查询路由表项相同的叶子结点,并返回查询结果。2.根据权利要求1所述的路由查询方法,其特征在于,所述根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群的步骤包括:在所述第一级树形存储结构中,以所述待查询路由表项作为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址;其中,所述第一哈希地址中存储有与所述待查询路由表项相关联的路由集群;在所述第一哈希地址中读取对应的候选路由集群,若所述候选路由集群中包括所述待查询路由表项,则将所述候选路由集群作为第一路由集群。3.根据权利要求1所述的路由查询方法,其特征在于,在由单个路由设备下的多个路由表项形成的第二级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由设备的步骤包括:在所述第二级树形存储结构中,以所述待查询路由表项作为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址;其中,所述第二哈希地址中存储有与所述待查询路由表项相关联的路由设备;在所述第二哈希地址中读取对应的候选路由设备,若所述候选路由设备中包括所述待查询路由表项,则将所述候选路由设备作为第一路由设备。4.根据权利要求1所述的路由查询方法,其特征在于,在所述第二级树形存储结构的根结点下查找与所述待查询路由表项相同的叶子结点,并返回查询结构的步骤包括:在所述第一路由设备为根结点的第二级树形存储结构中,以所述待查询路由表项作为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址;其中,所述第三哈希地址中存储有所述第一路由设备的全部路由表项;在所述第三哈希地址中读取对应的候选路由表项,若所述候选路由表项为所述待查询路由表项,则查找成功;否则,遍历线性链表查找所述待查询路由表项。5.根据权利要求1所述的路由查询方法,其特征在于,在根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群的步骤之前,还包括:获取待查询路由表项,并判断所述待查询路由表项是否为预设频繁项;其中,所述预设频繁项为占有率高于预设阈值的路由表项;若不是,则遍历线性链表查找所述待查询路由表项;若是,则在所述第一级树形存储结构中查找第一路由集群。6.根据权利要求1~5任一项所述的路由查询方法,其特征在于,在根据待查询路由表项,在由单个路由集群下的多个路由设备形成的第一级树形存储结构中,查找与所述待查询路由表项相关联的根结点,得到第一路由集群的步骤之前,还包括:获取单个路由集群下多个路由设备中的频繁项,并根据第一预设哈希函数,创建所述频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将所述路由集群存储于所述第一级树形存储结构中的根结点中;根据第二预设哈希函数,创建所述频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将所述路由设备存储于所述第一级树形存储结构中的叶子结点或所述第二级树形存储结构的根结点中;根据第三预设哈希函数,将所述路由表项存储于所述第二级树形存储结构的叶子结点中。7.根据权利要求6所述的路由查询方法,其特征在于,根据第一预设哈希函数,创建所述频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将所述路由集群存储于所述第一级树形存储结构中的根结点中的步骤包括:以所述频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈希地址,并将对应的路由集群存储于所述第一哈希地址中;存储有不同路由集群的多个第一哈希地址,构建为第一级树形存储结构的根结点。8.根据权利要求6所述的路由查询方法,其特征在于,根据第二预设哈希函数,创建所述频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将所述路由设备存储于所述第一级树形存储结构中的叶子结点或所述第二级树形存储结构的根结点中的步骤包括:以所述频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的路由设备存储于所述第二哈希地址中;存储有不同的路由设备的多个第二哈希地址,构建为第一级树形存储结构的叶子结点或第二级树形存储结构的根结点。9.根据权利要求6所述的路由查询方法,其特征在于,根据第三预设哈希函数,将所述路由表项存储于所述第二级树形存储结构的叶子结点中的步骤包括:以路由表项为关键字,并根据第三预设哈希函数进行计算,得到第三哈希地址,并将对应的路由表项存储于所述第三哈希地址中;存储有不同路由表项的多个第三哈希地址,构建为第二级树形存储结构的叶子结点。10.根据权利要求7所述的路由查询方法,其特征在于,在根据第一预设哈希函数,创建所述频繁项对应的路由集群下多个路由设备的第一级树形存储结构,并将所述路由集群存储于所述第一级树形存储结构中的根结点中的步骤之后,还包括:当增加新路由集群时,获取所述新路由集群的频繁项;以所述频繁项为关键字,并根据第一预设哈希函数进行计算,得到第一哈
\t希地址,并将对应的新路由集群存储于所述第一哈希地址中,更新所述第一级树形存储结构的根结点。11.根据权利要求7所述的路由查询方法,其特征在于,在根据第一预设哈希函数,创建所述频繁项对应的路由集群下的多个路由设备的第一级树形存储结构,并将所述路由集群存储于所述第一级树形存储结构中的根结点中的步骤之后,还包括:当路由集群减少时,将对应的第一哈希地址中的路由集群删除,更新所述第一级树形存储结构的根结点。12.根据权利要求8所述的路由查询方法,其特征在于,根据第二预设哈希函数,创建所述频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将所述路由设备存储于所述第一级树形存储结构中的叶子结点或所述第二级树形存储结构的根结点中的步骤之后,还包括:当增加新路由设备时,获取所述新路由设备的频繁项;以所述频繁项为关键字,并根据第二预设哈希函数进行计算,得到第二哈希地址,并将对应的新路由设备存储于所述第二新哈希地址中,更新所述第一级树形存储结构的叶子结点或所述二级树形存储结构的根结点。13.根据权利要求8所述的路由查询方法,其特征在于,在根据第二预设哈希函数,创建所述频繁项对应的路由设备下的路由表项的第二级树形存储结构,并将所述路由设备存储于所述第一级树形存储结构中的叶子结点或所述第二级树形存储结构的根结点中的步骤之后,还包括:当路由设备减少时,将对应的第二哈希地址中存储的路由设备删除,更新所述第一级树形存储结构的叶...

【专利技术属性】
技术研发人员:严敏王涛
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1