发明名称 |
一种数据查找的方法及装置 |
摘要 |
本发明公开了一种数据查找的方法,该方法包括:根据当前与搜索数据串匹配的节点的第二条目,查找是否有与所述搜索数据串匹配的子节点;当有与所述搜索数据串匹配的子节点时,以所述子节点为下一个与搜索数据串匹配的节点继续查找;当没有与所述搜索数据串匹配的子节点时,根据所述第二条目,查找对应的第一条目,得到所述搜索数据串的最长匹配前缀。及一种数据查找的装置,根据每个节点中的项数不同,采用一个或多个长度为L的数据结构表示每个节点,通过这种灵活的表示方式,提高内存的利用率,进一步的提高网络容量。 |
申请公布号 |
CN101572647B |
申请公布日期 |
2012.07.04 |
申请号 |
CN200810088707.7 |
申请日期 |
2008.04.30 |
申请人 |
华为技术有限公司 |
发明人 |
龚钧;詹翀;沈士军;赵鸿翔 |
分类号 |
H04L12/56(2006.01)I;G06F17/30(2006.01)I |
主分类号 |
H04L12/56(2006.01)I |
代理机构 |
北京集佳知识产权代理有限公司 11227 |
代理人 |
梁明升;逯长明 |
主权项 |
一种数据查找的方法,用于查找最长匹配前缀,系统硬件支持的最大步长为N,N为自然数,步长N对应的数据结构长度为L;其特征在于,根据路由表构造步长为M的查找树,所述查找树的每个节点包括第一条目和第二条目,所述第一条目用于表示所述第一条目对应节点的前缀节点,所述第二条目用于表示所述第二条目对应节点的子节点,所述第二条目包括指向所述第一条目的指针;其中,M为大于N的自然数;当所述节点的前缀节点中的项数不小于2N/M时,所述第一条目采用二的M‑N次幂个长度为L的数据结构表示,对应的第一条目的数据结构类型为第一类型;当所述节点的前缀节点中的项数小于2N/M时,所述第一条目采用一个长度为L的数据结构表示,对应的第一条目的数据结构类型为第二类型;当所述节点的子节点中的项数不小于2N/M时,所述第二条目采用二的M‑N次幂个长度为L的数据结构表示,对应的第二条目的数据结构类型为第一类型;当所述节点的子节点中的项数小于2N/M时,所述第二条目采用一个长度为L的数据结构表示,对应的第二条目的数据结构类型为第二类型;该方法包括:根据当前与搜索数据串匹配的节点的第二条目,查找是否有与所述搜索数据串匹配的子节点;当有与所述搜索数据串匹配的子节点时,以所述子节点为下一个与搜索数据串匹配的节点继续查找;当没有与所述搜索数据串匹配的子节点时,根据所述第二条目,查找对应的第一条目,得到所述搜索数据串的最长匹配前缀。 |
地址 |
518129 广东省深圳市龙岗区坂田华为总部办公楼 |