【技术实现步骤摘要】
本专利技术涉及数据处理领域,特别是涉及一种数据处理方法和装置。
技术介绍
路由查找是根据报文的目的IP地址,查找路由器中的路由表,得到报文下一跳信息的过程。路由表中的每条路由都是一个路由前缀。路由前缀可以用‘0’,‘1’和‘*’组成的三值位串表示。如IPv4前缀192.168.1.0/24可以用下面的三值位串表示:110000001010100000000001********。‘*’表示不关心,既可以跟‘1’匹配,也可以跟‘0’匹配。所以,两个IPv4地址192.168.1.1和192.168.1.2都跟前缀192.168.1.0/24匹配。当后面有多个‘*’时,一般只写一个‘*’。比如‘01*’,表示前两位的值为“01”,后面的位都是‘*’。路由查找是一个最长前缀匹配(LPMLongestPrefixMatch)问题。当有多条前缀跟输入的IP地址匹配时,掩码最长的匹配前缀对应的下一跳信息才是最终的查找结果。假设IP地址的长度为9位,如果路由表中有两个前缀“01*”和“010*”,则IP地址010100101跟这两个前缀都匹配,但因为前缀“010*”比“01*”长,所以,“010*”才是最长的匹配前缀,它对应的下一跳信息才是最终的查找结果。现有技术中常用的路由查找算法主要是使用多位树(Multi-BitTrie),多位树可以理解为,根据路由前缀中的位串建立一棵二叉树,在二叉树中,如果当前位的值为‘0’则向左走一 ...
【技术保护点】
一种数据处理方法,其特征在于,应用于多位树,所述多位树中包括多个路由前缀,所述方法包括:获取所述多位树的结构中包括至少一个树Trie节点和对应的前缀Prefix节点,所述Prefix节点的容量小于等于预设容量,所述Prefix节点包括当前最长前缀匹配PLPM、对应Trie节点中的路由前缀和对应Trie节点中路由前缀的下一跳信息,第一Trie节点为所述至少一个Trie节点中的任一Trie节点,所述第一Trie节点包括对应的位图,所述第一Trie节点对应的Prefix节点包括直接Prefix节点和非直接Prefix节点,所述直接Prefix节点中包括所述第一Trie节点中的路由前缀、所述直接Prefix节点的PLPM和所述第一Trie节点中路由前缀的下一跳信息,所述非直接Prefix节点包括所述第一Trie节点下连接的Trie节点中的路由前缀、所述非直接Prefix的PLPM和所述第一Trie节点下连接的Trie节点中路由前缀的下一跳信息;进行迭代操作,直到迭代后得到的多位树的总容量小于等于所述预设容量;一次所述迭代操作具体为:利用得到的Prefix节点的关联前缀建立新的多位树,根据所述新 ...
【技术特征摘要】 【专利技术属性】
1.一种数据处理方法,其特征在于,应用于多位树,所述多位树中包括
多个路由前缀,所述方法包括:
获取所述多位树的结构中包括至少一个树Trie节点和对应的前缀Prefix
节点,所述Prefix节点的容量小于等于预设容量,所述Prefix节点包括当前最
长前缀匹配PLPM、对应Trie节点中的路由前缀和对应Trie节点中路由前缀
的下一跳信息,第一Trie节点为所述至少一个Trie节点中的任一Trie节点,
所述第一Trie节点包括对应的位图,所述第一Trie节点对应的Prefix节点包
括直接Prefix节点和非直接Prefix节点,所述直接Prefix节点中包括所述第一
Trie节点中的路由前缀、所述直接Prefix节点的PLPM和所述第一Trie节点
中路由前缀的下一跳信息,所述非直接Prefix节点包括所述第一Trie节点下
连接的Trie节点中的路由前缀、所述非直接Prefix的PLPM和所述第一Trie
节点下连接的Trie节点中路由前缀的下一跳信息;
进行迭代操作,直到迭代后得到的多位树的总容量小于等于所述预设容
量;
一次所述迭代操作具体为:
利用得到的Prefix节点的关联前缀建立新的多位树,根据所述新的多位
树的结构获取Trie节点和对应的Prefix节点,并对应保存本次迭代前相应的
位图。
2.根据权利要求1所述的方法。其特征在于,还包括:
获取待查找路由地址;
根据所述待查找路由地址从最后一次迭代得到的多位树开始进行最长前
缀匹配LPM,根据匹配到的Prefix节点所包含的位图以及所述待查找路由地
址确定上一次迭代中多位树中的Prefix节点;
进行循环匹配,直到匹配结果为匹配到未迭代前的多位树中的Prefix节
点或出现无匹配前缀;
所述循环匹配具体为:
根据在第N次迭代中获得的多位树匹配得到的Prefix节点所包含的位图
以及所述待查找路由地址确定第N-1次迭代中获得的多位树中的Prefix节点;
若所述匹配结果为匹配到未迭代前的多位树中的Prefix节点,则将所述
\t未迭代前的多位树中的Prefix节点中与所述待查找路由地址匹配的路由前缀
的下一跳信息作为所述待查找路由地址的下一跳信息;
若所述匹配结果为出现无匹配前缀,则将出现无匹配前缀的Prefix节点
的PLPM所对应路由前缀的下一跳信息作为所述待查找路由地址的下一跳信
息。
3.根据权利要求1所述的方法,其特征在于,还包括:
将多位树中在同一单连接结构中的多个Trie节点作为一个Trie节点处理,
所述单连接结构具体包括在所述多位树的连接结构中一个Trie节点下只连接
一个Trie节点的结构。
4.根据权利要求1所述的方法,其特征在于,还包括:
所述Prefix节点通过至少一个前缀簇PCL存储PLPM、对应Trie节点中
的路由前缀和对应Trie节点中路由前缀的下一跳信息,所述PCL与Trie节点
一一对应。
5.根据权利要求1至4任一项所述的方法,其特征在于,
所述预设容量根据处理系统的缓存大小决定。
6.一种数据处理装置,其特征在于,应用于多位树,所述多位树中包括
技术研发人员:张文勇,
申请(专利权)人:北京华为数字技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。