[发明专利]一种路由表项的快速存储方法有效
| 申请号: | 201210028320.9 | 申请日: | 2012-02-08 |
| 公开(公告)号: | CN102571599A | 公开(公告)日: | 2012-07-11 |
| 发明(设计)人: | 林川;黄海峰;张媛 | 申请(专利权)人: | 福建三元达通讯股份有限公司 |
| 主分类号: | H04L12/56 | 分类号: | H04L12/56 |
| 代理公司: | 福州市鼓楼区京华专利事务所(普通合伙) 35212 | 代理人: | 宋连梅 |
| 地址: | 350000 福建省福州市鼓楼区五*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 路由 快速 存储 方法 | ||
1.一种路由表项的快速存储方法,其特征在于:采用256tire树结构来配置路由表项,该256tire树的树高为四,即包括根节点、第二级节点,第三级节点,第四级节点,所述根节点、第二级节点,第三级节点,第四级节点均包括索引值为0~255的256个索引表项,所述根节点的索引值为255的索引表项直接指向的路由表项表示默认路由;而第二级节点的索引值为255的索引表项指向的是匹配中根节点后,第二级节点都没有匹配的情况下,应该返回的路由表项;第三级节点的索引值为255的索引表项指向的是匹配中前两级节点后,第三级节点都没有匹配中的情况下,应该返回的路由表项;第四级节点的索引值为255的索引表项指向的是匹配中前三级节点后,第四级节点都没有匹配中的情况下,应该返回的路由表项。
2.如权利要求1所述的一种路由表项的快速存储方法,其特征在于:将任意一个目的ip地址,都用4个一字节的数值表示;该4个一字节的数值分别称为ip地址的第一字节,第二字节,第三字节和第四字节;所述路由表项的快速存储方法包括256trie树生成的过程,该256trie树生成的过程包括下述步骤:
步骤(1)、判断配置的路由表项的类型:
a、如果配置的是默认路由,则直接把根节点的索引值为255的索引表项指向该默认路由表项,无需进入步骤(2);
b、如果是掩码长度小于等于8的路由表项,需要设置到根节点,所有索引值和目的ip地址前缀匹配的,且前缀匹配长度为掩码长度的索引表项都要设置路由表项;设置路由表项的过程按步骤(2)进行;
c、如果是掩码长度大于8小于等于16的路由表项,先取目的ip的第一字节,算出根节点的索引值,然后取出目的ip地址的第二字节,找到和第二字节前缀匹配,并且匹配长度是掩码减8的所有第二级节点的索引表项,这些第二级节点的索引表项和刚才算出的索引值对应的索引表项建立关联,同时按步骤(2)设置这个路由表项;
d、如果是掩码长度大于16小于等于24的路由表项,先取目的ip地址的前两字节,算出根节点的索引值和第二级的索引值,该根节点的索引值和第二级的索引值分别等于目的ip地址的第一字节,第二字节的值,把根节点中与根节点的索引值对应的索引表项关联到第二级节点,把第二级节点中与第二级的索引值对应的索引表项关联到第三级节点,然后,取出目的ip地址的第三字节,找到和第三字节前缀匹配,并且长度是掩码长度减16的所有第三级节点的索引表项,这些第三级节点的索引表项,和所述与第二级的索引值对应的索引表项建立关联,同时按步骤(2)设置路由表项;
e、如果掩码长度大于24小于等于32的路由表项,先取目的ip地址的前三字节,算出根节点的索引值、第二级的索引值和第三级的索引值,该根节点的索引值、第二级的索引值和第三级的索引值分别等于目的ip地址的第一字节,第二字节的值、第三字节的值,把根节点中与根节点的索引值对应的索引表项关联到第二级节点,把第二级节点中与第二级的索引值对应的索引表项关联到第三级节点,把第三级节点中与第三级的索引值对应的索引表项关联到第四级节点,然后,取出目的ip地址的第四字节,找到和第四字节前缀匹配,并且长度是掩码长度减24的所有第四级索引表项,这些第四级索引表项和所述的第三级的索引值对应的索引表项建立关联,同时按步骤(2)设置路由表项;
步骤(2)、设置路由表项:对于前三级节点,除了默认路由以外,要关联路由表项,上一级节点都是和下一级节点的索引值为255的索引表项建立关联,然后将该索引的索引值为255的索引表项指向这个路由表项;第四级节点表项则是直接指向步骤(1)对应的所述路由表项;在设置路由表项时要先看是否已经关联了路由表项了,如果该索引表项已经指向了一个路由表项,则比较这两个路由表项中掩码长度,该索引表项与掩码长度长的那个路由表项关联;
如果上一级节点要关联的下一级节点没有创建,则需要先创建下一级节点。
3.如权利要求2所述的一种路由表项的快速存储方法,其特征在于:该路由表项的快速存储方法还包括256tire树查找路由的过程,所述256tire树查找路由的过程为:
步骤1、首先取ip地址的第一字节,在根节点中匹配索引值等于该第一字节的索引表项,即看根节点中索引值等于该第一字节的索引表项是否关联到第二级节点,如果否,说明未匹配中,则返回根节点中的索引值为255的索引表项指向的路由表项,如果根节点中的索引值为255的索引表项没有指向任何路由表项,则返回路由查找失败;如果是,说明匹配中,则转入步骤2;
步骤2、取ip地址的第二字节,看在步骤1根节点的索引值等于该第一字节的索引表项所关联的第二级节点中,索引值和ip地址的第二字节对应的第二级索引表项是否和第三级节点建立了关联;如果建立了关联则转步骤3,如果没有建立关联,则返回第二级节点的索引值为255的索引表项指向的路由表项,如果第二级节点的索引值为255的索引表项没有指向路由表项,则返回根节点的索引值为255的索引表项指向的路由表项,如果根节点的索引值为255的索引表项没有指向路由表项,则返回查找失败;
步骤3、取ip地址的第三字节,看步骤2中第二级索引表项所关联的第三级节点中,索引值和该ip地址第三字节相同的第三级索引表项是否关联到第四级节点;如果建立了关联则转步骤4,如果没有建立关联,则返回第三级节点的索引值为255的索引表项指向的路由表项,如果第三级节点的索引值为255的索引表项没有指向路由表项,则返回第二级节点的索引值为255的索引表项指向的路由表项,如果第二级节点的索引值为255的索引表项没有指向路由表项,则返回根节点索引值为255的索引表项指向的路由表项,如果根节点的索引值为255的索引表项没有指向路由表项,返回查找失败;
步骤4、取ip地址的第四字节,看步骤3中第三级索引表项所关联的第四级节点中,和ip地址第四字节相同的索引值所对应的第四级索引表项是否关联到第四级节点;如果建立了关联,返回第四级节点对应的索引表项指向的路由表项;如果没有建立关联,则返回第四级节点的索引值为255的索引表项值指向的路由表项,如果四级索引的索引值为255的索引表项没有指向路由表项,则返回第三级节点的索引值为255的索引表项指向的路由表项,如果第三级节点的索引值为255的索引表项没有指向路由表项,则返回第二级节点的索引值为255的索引表项指向的路由表项,如果第二级节点的索引值为255的索引表项没有指向路由表项,则返回根节点的索引值为255的索引表项所指向的路由表项,如果根节点没有指向路由表项,则返回查找失败;
其中,所述的关联是指上一级节点中,与某个索引值对应的索引表项指向下一级节点,或者指向路由表项。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建三元达通讯股份有限公司,未经福建三元达通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210028320.9/1.html,转载请声明来源钻瓜专利网。





