IP路由查找算法.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IP路由查找 主要内容 路由查找问题的产生背景 典型的IPv4路由查找算法 基于IXP2800的高速IPv6路由查找算法及实现 参考文献 Survey and Taxonomy of IP Address Lookup Algorithms. IEEE Network, 2001. High-performance IPv6 Forwarding Algorithm for Multi-core and Multithreaded Network Processors. In Proceedings of PPoPP’06, 2006. 地址前缀与地址聚合 IP编址方案最初使用一个简单的二层结构:上层为网络,下层为主机。 这个分层结构反映在IP地址上,就是IP地址由两个部分组成:网络地址部分(地址前缀)和主机地址部分。 地址前缀的两种表示方法: 不大于32比特的比特串跟上一个*,比如:1000001001010110* 带点十进制表示加上地址前缀长度,比如:130.86/16 地址聚合(address aggregation):连接到同一个网络的所有主机,在转发表中对应一个入口,即允许使用前缀来表示一组地址。 转发表举例 基于类的编址方案 基于类的编址方案的缺点 地址空间利用率低,地址短缺问题日益突显。 核心路由器的转发表规模急剧扩大,导致查表时间及内存需求增加。 无类域间路由(CIDR)编址方案 摒弃传统的基于类的地址分配方式,允许使用任意长度的地址前缀,有效提高地址空间的利用率。 允许任意地、递归地进行地址聚合,减少转发表中的入口数目,有效解决路由表爆炸的问题。 地址聚合的例子(1) 地址聚合的例子(2) 基于类的地址查找 转发表中的前缀被组织成三张表(分别对应A、B、C三类地址前缀),地址查找就是在对应的转发表中进行精确匹配查找。 查找过程如下: 根据IP地址的前几位得到该地址所属的地址类别 根据地址类别提取目的地址中的网络地址部分 查找相应的哈希表或进行二分查找 最长地址前缀匹配的困难 转发表中的目的前缀具有任意的长度,并且不再对应地址的网络部分,因而前缀长度无法从目的地址本身获得。 转发表查找要求采用最长前缀匹配查找而不是精确匹配查找。 地址查找在数值和长度两个维度上进行。 地址查找算法的评价标准 查找速度 存储空间 预处理和更新速度 算法实现的灵活性(同时具有硬件和软件实现方式) 算法的可扩展性(路由表规模,IPv6) 经典的IP地址查找算法 线性表查找 二进制Trie树(Binary Trie) 路径压缩Trie树(path-compressed Trie) 二进制Trie树 采用基于树的数据结构,通过前缀中每一位的值来决定树的分支。 处于第L层的节点代表了一个地址前L比特均相同的地址空间,这L个比特串就是由从根节点到这个节点路径上的L比特组成。 与地址前缀对应的节点包含了转发信息。 Trie树代表的地址空间结构 Trie树的查找 从根节点开始每次一位地查找: 当地址中的相应位为0时选择左分支,为1时选择右分支。 当遇到那些对应地址前缀的中间节点时,将此地址前缀记录为目前为止找到的最长地址前缀。 当不再有分支可以选择时搜索过程结束,此时被记录的最长地址前缀就是查找结果。 以上查找方法为基于长度的顺序前缀查找,每搜索一步,搜索空间就缩减一半,当缩减为1时搜索结束。 Trie树的更新 插入一个地址前缀 以该前缀项为关键字在Trie树中进行查找; 若查找过程在一个中间节点终止,将此节点标记为前缀节点,并在此中间节点中加入前缀转发信息; 若不再有分支可选取,需要插入必要的分支节点。 删除一个地址前缀 以该前缀项为关键字在Trie树中进行查找; 若查找过程在一个中间节点终止,将此节点标记为非前缀节点,删除此节点的转发信息; 若查找过程终止于叶子节点,除了删除该节点之外,还需要根据情况删除其它一些内部节点 。 路径压缩Trie树 路径压缩Trie树压缩单向分支 每个节点需要维护一个变量,指示下一个需要检查的比特位 前缀节点需要保存地址前缀的比特串 路径压缩Trie树(续) 当二进制Trie树中的前缀分布较稀疏时,路径压缩算法能够获得良好的压缩效果。 二进制Trie树和路径压缩Trie树的不足是查找过程需要大量的存储器访问操作。 研究表明,对于一个具有47113个前缀表项的典型骨干网路由器,使用BSD Trie会创建93304个节点,树的最大高度为26,平均高度为20。而对于同样的前缀表,二进制Trie树的最大高度为30,平均高度为22。 查找算法使用的辅助策略(1) 前缀扩展(prefix expansion) 将一条长度较短的地址前缀展开成多条长度较长的地址前缀集合,这个前缀集的转发信息就是原来地址前缀所对应的转

文档评论(0)

fkh4608 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档