[发明专利]一种路由表的构建和查找方法有效
申请号: | 201610224760.X | 申请日: | 2016-04-12 |
公开(公告)号: | CN105704040B | 公开(公告)日: | 2018-12-28 |
发明(设计)人: | 古天龙;胡魁;徐周波;常亮;吴泳钢;王敏 | 申请(专利权)人: | 桂林电子科技大学 |
主分类号: | H04L12/741 | 分类号: | H04L12/741;H04L12/753;H04L12/755 |
代理公司: | 桂林市持衡专利商标事务所有限公司 45107 | 代理人: | 陈跃琳 |
地址: | 541004 广西*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 路由 构建 查找 方法 | ||
1.一种路由表的构建和查找方法,其特征是,包括如下步骤:
步骤A、将路由表及其路由表项转换成伪布尔函数的代数决策图;
步骤B、对步骤A所得到的代数决策图结构的路由表中的路由表项进行选择性删除;
步骤C、将需要添加的路由表项转换成伪布尔函数的代数决策图,并将其通过递归合取的方式添加进步骤B所得到的代数决策图结构的路由表中;
步骤D、对步骤C所得到的代数决策图结构的路由表中的节点进行删除和合并,获得化简后的代数决策图结构的路由表;
步骤E、基于步骤D所建立的代数决策图结构的路由表,利用深度搜索对传入数据包中的目的IP地址进行匹配,查找下一跳端口。
2.根据权利要求1所述的一种路由表的构建和查找方法,其特征是,所述步骤A具体为:
步骤A1、将路由表中的每一条路由表项使用伪布尔函数f(x0,x1,…,xl,v)表示,其中x0,x1,x2,...,xl表示前缀,v表示下一跳端口,l+1表示的是前缀长度;
步骤A2、将路由表中所有路由表项的伪布尔函数相加得到新的伪布尔函数;
步骤A3、按照固定变量序,对步骤A2生成的新的伪布尔函数中的变量逐次进行香农展开,并将其展开过程用图形的形式表示,得到伪布尔函数的代数决策图。
3.根据权利要求1所述的一种路由表的构建和查找方法,其特征是,所述步骤B具体为:
步骤B1、根据当前前缀值对路由表深度搜索,得到前缀指向的节点;
步骤B2、如果路由表中相应的前缀指向叶子节点且端口号为默认跳,则表示路由表中没有相应路由表项,结束返回;
步骤B3、如果路由表中相应的前缀指向叶子节点且端口号为非默认跳,则将路由表项从路由表中删除;
步骤B4、如果路由表中相应的前缀指向中间节点,则根据节点和输出弧方向对后面的节点递归删除,并回收内存。
4.根据权利要求1所述的一种路由表的构建和查找方法,其特征是,所述步骤C具体为:
步骤C1、将需要添加的路由表项中的前缀和下一跳端口刻画为一个代数决策图;
步骤C2、将步骤C1生成的代数决策图和步骤B生成的代数决策图递归合取为一个新的代数决策图。
5.根据权利要求1所述的一种路由表的构建和查找方法,其特征是,所述步骤E具体为:
步骤E1、记录根节点作为当前节点;
步骤E2、如果当前节点是叶子节点,跳向步骤E5;
步骤E3、如果当前节点不是叶子节点,并且目的IP地址的二进制值从左到右的索引位的值为1,则当前节点指向其右孩子节点,返回步骤E2;
步骤E4、如果当前节点不是叶子节点,并且目的IP地址的二进制值从左到右的索引位的值为0,则当前节点指向其左孩子节点,返回步骤E2;
步骤E5、取出叶子节点值并返回。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610224760.X/1.html,转载请声明来源钻瓜专利网。