




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
路由器中的硬件IP路由表应用解析1. 路由器的体系结构图1给出了一般路由器的逻辑体系结构。它主要由下面几部分组成 :路由引擎、转发引擎、路由表、网络适配器和相关的逻辑电路等。转发引擎负责把从一个网络适配器来的数据包转发到另一个网络适配器出去。IP协议,包括对路由表的查找,构成了转发引擎中最主要的部分。由于每个通过路由器并需要其转发的数据包都要对路由表进行查找,所以路由表的查找效率如何往往决定了整个路由器的性能。路由引擎则包括了高层协议,特别是路由协议,它负责对路由表的更新。由于路由引擎不涉及通过路由器的数据通路,故它可用通用的CPU代替。2硬件路由表的数据结构设计一般路由器中路由表的每一项至少有这样的信息:目标地址、网络隐码、下一跳地址。如果对每一个IP地址都要一个表项,那么需要占用很大的2323*4字节的存储器,而且其中必定有很多的表项没有被使用,这就会造成极大的资源浪费。为了用硬件实现路由表的查找,查找算法需要满足如下的条件:1) 实时的实现路由表的查找;2) 有效的实现路由表的插入和删除;3) 提供有效的最长前缀匹配;4) 具有良好的可扩展性;5) 支持广播和组播;6) 有效的对Memory进行利用;7) 硬件上容易实现,并具有良好的性能 。我们考虑,如果在对路由表的查找中,把子网隐码和IP地址结合起来,对IP地址进行相应的分段,并把它们相连。这样在路由表的表项中,只有IP地址的一部分及其相应的隐码部分,可以实现良好的可扩展性,只要对Memory进行有效的管理,可以灵活的动态的实现对路由的插入和删除。鉴于此,我们设计该表的结构(如下面的表一所示 ):点击查看大图它的思想是:把32位IPv4地址主要分成4部分,每部分8位。在该结构中,Address-part0-4是IP地址中的一部分,Mask-part0-4是相应的掩码部分。Hit-next0-4是需要查找的目标IP地址与掩码部分相与后,与Address-part一致时所要查找的下一路由项所在地址的指针。,Miss-hit0-4则是相互不一致时,下一路由项所在地址的指针。Shift位则用于判断是否需要对IP地址中的下8位进行查找和判断。它只有在当前的8位IP地址与目标地址中相应的8位一致时,才会被置位。Stop位用于判断是否还需进行查找。它在IP地址查找结束时被置位,或没有比当前项所对应的IP地址更长的路由表项时被置位。图2就是一个表1的例子 :在该例子中,每一方框中上面一行表示相应的IP地址部分和隐码部分。下面一行表示相关的隐码部分的二进制表示。 相应的查找算法如下:1 查找算法开始 */ 2 3 search = TRUE ; 4 5 WHILE ( search ) 6 7 masked_key = key & ( entry -mask_part ) ; 8 9 result = ( entry -address_part ) = = masked_key 10 11 IF ( result = = TRUE ) 12 13 best_match = entry ; 14 15 entryentry = entry -hit_next; 16 17 ELSE 18 19 entryentry = entry -miss_next; 20 21 IF ( entry -stop = = TRUE ) search = FALSE; 22 23 24 25 26 27 RETURN best_match ; 28 29 查找算法结束 */ 为了实现有效的插入和删除,我们还要在路由表的数据结构中再另外添加几个域 :parent指针(指向本结点的父结点),路由信息(routeinfo)等。它们的用途是在路由表的查找过程中,特别是在指针的回溯(pointer reversal)中,可以大大的节省查找时间。由于IP路由的插入和删除比较复杂。我们只是粗略得说明一下。IP路由的插入:30 /*插入算法开始 */ 31 32 /* 先用上面提到的查找算法找出best-match */ 33 34 best_match = search ( new_entry ); 35 36 /* 确定需要加入的路由中没有被best-match包括的那几位 */ 37 38 for ( count = first_unmatched_bit ; count = sizeof ( new_entry) ; 39 40 count+= sizeof ( address_part ) 41 42 /* 创建新的结点 */ 43 44 create new node ; 45 46 /* 将该结点连入best_match的hit_next */ 47 48 link node into hit branch of best_match ; 49 50 51 52 /*插入算法结束 */ IP路由的删除要分几种情况讨论 。如 best_match 是叶子结点 ,best_match的hit_next指针为空, best_match的miss_next指针为空 和hit_next指针和miss_next指针都不为空等四种情况。这里就不再讨论。3路由表查找的硬件实现:图3就是对应与上面提及的路由表结构的IP路由表查找的硬件实现(简称为路由卡)的系统框图。在路由卡中,主要有IP地址,状态机,路由信息,Memory,译码器,掩码器,比较器,地址寄存器组成。IP地址用于保存所要查找的目标地址。状态器用于控制IP路由表的查找。路由信息就是我们所要查找的信息。它的工作原理是这样的:当路由器从某一个网络适配器中接受/到一个需要转发的数据包后,在需要进行IP路由表的查找时,把IP包的目的地址送到IP地址寄存器中,同时给状态机发一个指令。状态接到这一指令后,从Memory中读出路由表的相应的表项,并和IP地址寄存器中的相应几位经译码器,掩码器后,进行比较,把比较的结果反馈给状态机。再由状态机来控制下一轮的比较。当比较结束后,把比较的结果放在路由信息寄存器中,供路由器(如转发引擎)读取。同时状态机在特定的某一端口设置标志,来通知CPU查找是否已经结束或还在进行当中。下面对其性能进行分析。4性能分析由于路由表项中,地址掩码的引入,使得路由结构变得非常灵活。但相应的,由此产生的内存的开销也相当的大。这是性能和硬件开销一对矛盾的必然体现。该路由卡原型的实现是利用微机上的ISA总线,采用存取时间为70ns 的SRAM存储器(所需容量为6*123k*8bit)。除了使用ISA总线上提供的总线外,本身还带了33M的晶振。对某一路由表项的查找,最多只需32步查找。在最坏情况下,共需32次查找,查找时间为:32* 1 /(33*106) 9.7 * 10 -7秒此时每秒可查找 1/(9.7 * 10 -7) 1.03 * 106次虽然该路由卡是基于ISA总线,但平均来说,该路由卡的查找速率为每秒8百万次。这也从另一方面说明该路由卡的设计是可行的。针对网络流量的增加,及对路由器性能要求的提高,本文从硬件的角度对IP路由查找算法用硬件实现做了一系列的分析,并提出了相应的便于用硬件实现的IP路由表的数据结构。同时对该路由卡的性能进行了分析。同时也该看到:为了更快的提高路由表的查找速率,基于IS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能化系统维护方案设计与实施策略探讨
- 锅炉房运行维护与安全操作规程制定
- 2025至2030挂钩行业市场深度研究及发展前景投资可行性分析报告
- 数绿融合金融对企业绿色创新的推动作用研究
- 2025成年人历史工业革命进程考试题目及答案
- 现代企业财务管理核心职能解析与发展挑战研究
- 教学课件加水印怎么做
- 越南语语音教学课件
- 残联康复知识培训课件
- 物流服务师二级课件
- 2025云南文山州融资担保有限责任公司人员招聘6人笔试参考题库附答案解析
- 2025-2026学年济南版(2024)初中生物八年级上册教学计划及进度表
- 2025山西运城市临猗县招聘社区工作者32人(一)考试备考试题及答案解析
- 2025年鞍山市铁西区教育局面向师范类院校应届毕业生校园招聘45人笔试参考题库附答案解析
- 空调与制冷操作考试试题(含答案)
- (2025年)河南省信阳市辅警协警笔试笔试真题(含答案)
- 网络直播带货讲解
- 2025江西九江都昌县公安局招聘警务辅助人员14人笔试备考题库及答案解析
- 肿瘤药物配制注意事项
- 军队骨干岗位申请书
- GB/T 22126-2025物流中心作业通用规范
评论
0/150
提交评论