[发明专利]路由查找方法及装置、B-Tree树结构的构建方法在审
申请号: | 201310408340.3 | 申请日: | 2013-09-09 |
公开(公告)号: | CN104426770A | 公开(公告)日: | 2015-03-18 |
发明(设计)人: | 程晨;李彧;张炜;徐宝魁;陈伟;孙远航 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | H04L12/741 | 分类号: | H04L12/741;H04L12/753;G06F9/44;G06F9/50 |
代理公司: | 工业和信息化部电子专利中心 11010 | 代理人: | 罗丹 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 路由 查找 方法 装置 tree 结构 构建 | ||
技术领域
本发明涉及网络交换领域,特别是涉及一种路由查找方法及装置、B-Tree树结构的构建方法。
背景技术
随着互联网Internet的迅猛发展,用于主干网络互联的核心路由器的接口速率达到100Gbps,该速率要求核心路由器在支持大容量路由表的情况下路由查找速率达到每秒几百万次。互联网协议(Internet Protocol,简称为IP)查找需要得到最长匹配前缀,由于高速查找的需要,软件查找方法已经不适用,近年来研究人员提出了多种硬件查找方法以提高查找速率,其中以Trie树结构和三态内容寻址存储器(Ternary Content Addressable Memory,简称为TCAM)最为流行。
Trie树结构是应用最为广泛的树结构,容易实现硬件上的流水操作,利于提升路由查找的吞吐率。但是Trie树结构具有一定的局限性。一般Trie树结构的流水级数较多,会带来过大的查找延时。采用多比特Trie树结构的路由查找设计可以大大减少流水级数,但会带来大量额外内存的消耗,并且这种额外的内存消耗量与路由表的前缀分布相关,使得基于多比特Trie树的路由查找硬件设计的路由表容量存在较大起伏,在比较坏的路由分布的情况下,存储空间利用率很低。
针对相关技术中路由查找方案内存消耗较大,影响路由查找效率的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中路由查找方案内存消耗较大,影响路由查找效率的问题,本发明提供了一种路由查找方法及装置、B-Tree树结构的构建方法,用以解决上述技术问题。
根据本发明的一个方面,本发明提供了一种路由查找装置,其中,该装置包括:路由查找算法软件模块、路由更新接口模块和路由查找硬件模块,其中,路由查找算法软件模块,用于执行对路由条目的软件计算和更新条目指令的下发;路由更新接口模块,用于在接收到上述路由查找算法软件模块下发的更新条目指令后,根据路由查找硬件模块的实际工作状态,控制上述路由查找硬件模块的数据流,并将更新条目写入上述路由查找硬件模块的存储器中;路由查找硬件模块,用于响应硬件系统的路由查找请求,并将最长前缀匹配的查找结果返回至上述硬件系统;其中,上述路由查找硬件模块为流水线型架构。
优选地,上述路由查找算法软件模块包括:插入操作子模块,用于响应路由转发系统的路由插入指令,并将上述路由条目插入到B-Tree树结构中;删除操作子模块,用于响应上述路由转发系统的路由删除指令,并将上述路由条目在上述B-Tree树结构中删除;软件表项内存管理子模块,用于对路由查找算法中的节点数据和结果表条目数据进行管理;更新硬件操作子模块,用于将在上述插入操作子模块的插入操作或上述删除操作子模块的删除操作中涉及到改变的B-Tree树节点和结果表条目记录在缓存中,并在插入操作或删除操作结束后,将树节点从软件数据格式转换成硬件数据格式,并将转换后的硬件数据和对应的硬件映射地址通过软硬件交互接口连续写入上述路由更新接口模块中。
优选地,上述路由查找硬件模块包括:查找逻辑子模块,用于在接收到上述硬件系统的路由查找请求后,将查找键值信息和内存子模块中的根节点地址信息发送至树结构的第一级查找流水中;然后判断上述根节点地址是否为本级节点;如果是,则向上述内存子模块发起读节点请求,等待上述内存子模块返回节点信息;如果不是,则保留当前节点信息不变;还用于根据比较上述节点信息与键值,判断路由条目是否命中;如果命中,则将命中的路由条目对应的结果记录替代之前的命中结果;内存子模块,包括多个独立内存空间,分别与上述树结构的每个查找逻辑层相对应。
优选地,上述路由更新接口模块包括:缓存子模块,用于通过上述软硬件交互接口接收节点数据和结果表条目数据以及对应的硬件映射地址;逻辑处理子模块,用于根据上述路由查找硬件模块的上述查找逻辑子模块的工作状态,将上述缓存子模块的条目更新内容更新至上述路由查找硬件模块的上述内存子模块中。
优选地,上述插入操作子模块包括:树结构管理单元,用于对新条目在上述B-Tree树结构中的访问顺序进行控制;节点解析及比较单元,用于与上述树结构管理单元共同控制新条目在上述B-Tree树结构中的有序查询,并找到插入位置;节点分裂操作单元,用于在新条目需要插入到已满节点时,对该已满节点进行分裂操作;结果表更新单元,用于将新条目携带的结果信息存入结果表,并将该结果信息的地址记录在上述新条目所在节点的对应位置中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310408340.3/2.html,转载请声明来源钻瓜专利网。