一种路由表的构建和查找方法

文档序号:9923776阅读:1195来源:国知局
一种路由表的构建和查找方法
【技术领域】
[0001] 本发明设及信息通信技术领域,具体设及一种路由表的构建和查找方法。
【背景技术】
[0002] 1993年W来国际互联网工程任务组(The Internet Engineering !"ask Force, IETF)提出无类域间路由(Classless Inter-Domain Routing,CIDR)结构,使得传统路由查 找算法不再适用,最长前缀匹配(^Longest Prefix Matching,LPM)成为路由查找算法的核 屯、。
[0003] 而随着技术的进步,=网融合逐渐成为未来网络技术的发展方向。=网融合的表 现方式为网络系统互相交叉、渗透,网络技术趋于统一的IP协议,逐步整合成为统一的通信 网络。运意味着IP协议将得到更广泛的应用,同时IPv6协议的应用将使IP地址的长度和数 量都大幅度膨胀,运对路由器性能提出了新的要求,而优化路由表存储结构和路由查找算 法是提升路由器性能的关键。
[0004] 路由表项的不断膨胀的问题亟待人们的研究与解决,而寻找一个能最大化删除冗 余信息并减少内存访问次数的方法是解决运一问题的关键。目前的路由查找算法主要有:
[0005] (1)基于地址前缀长度的路由查找算法利用前缀长度不同的特性,将路由表 (Look-叫化ble,LUT)分成多个集合,典型算法有哈希查找算法、二分查找算法。运类算法 优点是其查找时间只与前缀长度有关,但是哈希算法很难找到一个通用的哈希函数能够适 应整个路由匹配项。
[0006] (2)基于化ie结构的路由查找算法使用前缀中的每一位构建节点,路由转发信息 保存在节点中,典型的化ie树查找算法有LC-Trie、路径压缩Trie树、多分支Trie树等。基于 Trie树的算法具有数据结构单一、算法简单等优点,但其查找过程需要大量的内存访问,且 算法中有回溯操作。
[0007] (3)基于符号抓D的可重构路由表结构和算法,但是节点数较多影响路由器性能。 [000引从现有的路由查找算法可知,不能兼顾节点比较次数和节点数量等方面,且在查 找中可能有回溯操作。

【发明内容】

[0009] 本发明所要解决的技术问题是现有路由查找方法不能兼顾节点比较次数和节点 数量,且在查找中可能有回溯操作的问题,提供一种路由表的构建和查找方法。
[0010] 为解决上述问题,本发明是通过W下技术方案实现的:
[ocm] -种路由表的构建和查找方法,包括如下步骤:
[0012] 步骤A、将路由表及其路由表项转换成伪布尔函数的代数决策图;
[0013] 步骤B、对步骤A所得到的代数决策图结构的路由表中的路由表项进行选择性删 除;
[0014] 步骤C、将需要添加的路由表项转换成伪布尔函数的代数决策图,并将其通过递归 合取的方式添加进步骤B所得到的代数决策图结构的路由表中;
[0015] 步骤D、对步骤C所得到的代数决策图结构的路由表中的节点进行删除和合并,获 得化简后的代数决策图结构的路由表;
[0016] 步骤E、基于步骤D所建立的代数决策图结构的路由表,利用深度捜索对传入数据 包中的目的IP地址进行匹配,查找下一跳端口。
[0017] 所述步骤A具体为:
[0018] 步骤AU将路由表中的每一条路由表项使用伪布尔函数f(xo,xi,…,xi,v)表示,其 中X0,X1,X2, . . . ,Xl表示前缀,V表示下一跳端口;
[QQ19]步骤A2、将路由表中所有路由表项的伪布尔函数相力胸到新的伪布尔函数;
[0020] 步骤A3、按照固定变量序,对步骤A2生成的新的伪布尔函数中的变量逐次进行香 农展开,并将其展开过程用图形的形式表示,得到伪布尔函数的代数决策图。
[0021] 所述步骤B具体为:
[0022] 步骤B1、根据当前前缀值对路由表深度捜索,得到前缀指向的节点;
[0023] 步骤B2、如果路由表中相应的前缀指向叶子节点且端口号为默认跳,则表示路由 表中没有相应路由表项,结束返回;
[0024] 步骤B3、如果路由表中相应的前缀指向叶子节点且端口号为非默认跳,则将该条 路由表项从路由表中删除;
[0025] 步骤B4、如果路由表中相应的前缀指向中间节点,则根据节点和输出弧方向对后 面的节点递归删除,并回收内存。
[00%] 所述步骤C具体为:
[0027] 步骤CU将需要添加的路由表项中的前缀和下一跳端口刻画为一个代数决策图;
[0028] 步骤C2、将步骤Cl生成的代数决策图和步骤B生成的代数决策图析取合成为一个 新的代数决策图。
[0029] 所述步骤E具体为:
[0030] 步骤EU记录根节点作为当前节点;
[0031] 步骤E2、如果当前节点是叶子节点,固b向步骤E5;
[0032] 步骤E3、如果当前节点不是叶子节点,并且目的IP地址的二进制值从左到右的第 index位(即索引位)的值为1则当前节点指向其右孩子节点,返回步骤E2;
[0033] 步骤E4、如果当前节点不是叶子节点,并且目的IP地址的二进制值从左到右的第 index位(即索引位)的值为0则当前节点指向其左孩子节点,返回步骤E2;
[0034] 步骤E5、取出叶子节点值并返回。
[0035] 与现有技术相比,本发明具有如下特点:
[0036] 1、本发明综合考虑路由表结构特征和符号算法的优势,建立了基于前缀的路由 表。
[0037] 2、本发明第一次提出使用ADD结构构建路由表的思想,有效利用了紧凑高效的表 示伪布尔函数W及知识共享的特性,降低了路由表的存储空间,运种方法可W解决路由表 项越来越多的趋势下空间膨胀的问题,同时应用化简和删除冗余节点也降低了路由查找时 的比较次数。
[003引3、本发明具有很好的扩展性,可直接应用在IPv6协议上。
【附图说明】
[0039] 图1为一种路由表的构建和查找方法的流程图。
[0040] 图2为一种路由表的构建和查找方法的具体实例步骤图。
[0041] 图3为一种路由表的构建和查找系统的结构框架图。
【具体实施方式】
[0042] -种路由表的构建和查找方法,如图1所示,包括如下步骤:
[0043] 阶段1、路由表形式化建模阶段:
[0044] 步骤A、建立一个基于伪布尔函数的代数决策图结构的路由表。
[0045] 步骤A1、使用伪布尔函数表示路由表项,根据路由表中的前缀的二进制值,从左到 右逐一使用伪布尔变量表示,如果当前二进制位为0则用ri = xi/表示。相反,如果二进制值 为1则用ri = xi表示。前缀对应的下一跳端口 veV表示叶子节点,运样每一条前缀路由表项 都可W使用伪布尔函数f(xo,xi,X2, . . .,Xi,v)=;r〇八ri八T2八…八Ti八V表示,其中ie[0, 剧。
[0046] 如811615232 23 3223957901表示一个实际的路由表项。其中巧11615232"为目的 IP,"23"是掩码,目的IP和掩码构成路由表项的前缀。"3223957901"为下一跳端口。
[0047] 步骤A2、将路由表中的所有路由表项使用伪布尔函数表示,将所有伪布尔函数相 加得到新的伪布尔函数。
[004引步骤A3、按照固定变量序xo<xi<X2<. . .<xi,对步骤A2生成的伪布尔函数f(xo, XI,…,xi,v)中的变量逐次进行香农展开,并将其展开过程用图形的形式表示:根节点表示 伪布尔函数自身,从根节点引出两个分支,分别表示经过变量Xi的第一次香农展开后所得 到的伪布尔函数fx/和fxi。同样继续对fx/和fxi进一步展开,直到展开项为常值。根据此方 法,可W得到伪布尔函数的代数决策图。
[0049] 阶段2、路由表更新阶段,包括路由表项的删除、添加 W及对整个路由表的化简:
[0050] 步骤B、对步骤A所得到的代数决策图结构的路由表中的路由表项进行选择性删 除。
[0051] 步骤B1、根据当前前缀值对路由表深度捜索,得到前缀指向的节点。
[0052] 步骤B2、路由表中相应的前缀指向叶子节点且端口号为默认跳,则路由表中没有 相应路由表项,结束返回。
[0053] 步骤B3、前缀指向叶子节点且端口号为非默认跳,将该条路由表项从路由表中删 除。
[0054] 步骤B4、前缀指向中间节点,则将该节点W及该节点的所有子节点递归删除。
[0055] 步骤C、将需要添加的路由表项转换代数决策图,并将其通过递归合取的方式添加 进步骤B所得到的代数决策图结构的路由表中。
[0056] 步骤CU将路由表项中的前缀值和下一跳端口刻画为代数决策图,使用步骤Al中 的方法,将路由表项进行伪布尔函数表示,然后按照步骤A3对其香农分解得到路由表项的 代数决策图。
[0057] 步骤C2、将步骤Cl生成的代数决策图递归合取添加进路由表,其递归计算公式为:
[005引 f = ITE(g,l,h)。
[0059] 其中,g是路由表的代数决策图表示,h是路由表项的代数决策图表示,f是当前生 成的路由表。
[0060] 步骤D、对步骤C所得到的代数决策图结构的路由表中的节点进行删除和合并,获 得化简后的代数决策图结构的路由表。
[0061] 步骤Dl、将代数决策图的各个节点根据索引值分别存储到链表中。
[0062] 步骤D2、从索引值最大的链表开始对每个节点执行步骤D3和步骤D4,直至所有节 点处理完成。
[0063] 步骤D3、如果有相同的叶子节点,则叶子节点合并成一个。所有的输入弧指向合并 后的节点。
[0064] 步骤D4、如果节点的左孩子节点和右孩子节点指向同一个节点,则将当前节点的 父节点直接连至其孩子节点,并将当前节点删除。如果存在两个节点的U和V左孩子节点相 同,右孩子节点也相同,则删除U节点,将其父节点连接至节点V。
[00化]阶段3、路由
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1