(计算机应用技术专业论文)基于网络处理器多线程防火墙的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于网络处理器多线程防火墙的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于网络处理器多线程防火墙的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于网络处理器多线程防火墙的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于网络处理器多线程防火墙的设计与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机应用技术专业论文)基于网络处理器多线程防火墙的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华中科技大学硕士学位论文 摘要 随着千兆网络的建设和升级,传统防火墙在硬件和结构上已不能满足日益增长的 性能方面的要求。针对当前防火墙的不足,以互联网交换架构( i x a ,i n t e r a c te x c h a n g e a r c h i t e c t u r e ) 为基础,设计并部分实现了基于n p ( n e t w o r k p r o c e s s o r ,网络处理器) 的防火墙。 在阐述了网络处理器和防火墙的一些背景和技术后,对传统防火墙的优缺点进行 了分析。在此基础上,充分利用互联网交换架构的网络处理器本身所具有的优点,选 择合适的多线程编程模式,设计了一个多线程n p 防火墙。系统设计的核心是利用微 引擎多线程实现对数据包的高速处理和转发。微引擎具有1 0 g b p s 的线速转发能力。 设计方案中,绝大多数网络数据包只流经微引擎,通过微引擎线程的合理分配,可达 到3 2 5 g b p s 吞吐率的设计目标。 提出数据层面与控制层面剥离的多层面并行设计思想,在实现过程中,重点对三 个难点模块( 数据包接收模块、数据包过滤模块和数掘包转发模块) 的数据结构进行 了分柝和描述,流程图绘制,及其程序开发实现。 对系统程序的功能正确性、时空问复杂度、系统稳定性以及系统吞吐率等系统性 能进行了分析和测试,结果表明;基于i x p 2 4 0 0 的防火墙基本实现了状念检测、a c l 过滤、流量控制、n a t 转换和日志等当前硬件防火墙的功能。由于防火墙大部分功能 由软件实现,在功能升级时,只需要对某些部分进行软件修改,不需要硬件的重新设 计,降低了开发的周期和费用。基于n p 的防火墙在性能和功能可扩展等方面具有较 大的发展潜力。 关键字:防火墙,互联网交换架构,网络处理器,网络地址转换,包过滤 华中科技大学硕士学位论文 a b s t r a c t w i t hc o n s t r u c t i n ga n du p d a t i n go f k i l o m e g an e t w o r k ,t r a d i o n a lf i r e w a t lc a l ln o tm e e t t h er e q u e s to fi n c r e a s i n gp e r f o r m a n c ei nh a r d w a r ea n df r a m e w o r k i na l l u s i o nt od e f i c i e n c y o fc u r r e mf i r e w a l l ,w ed e s i g na n di m p l e m e mf i r e w a l lb a s e do nn p ( n e t w o r kp r o c e s s 0 0 u s i n gi n t e li x a a r c h i t e c t u r e a f i e r i n ge x p a t i a t e i n g t h eb a c k g r o u n d so fn e t w o r kp r o c e s s o ra n df i r e w a l l sa n d a n m y z i n gt h ed e f e c t so ft h ec l a s s i c a lf i r e w a l l s b ys e l e c t i n gaa p p r o p r i a t em u l t i t h r e a d p r o g r a m m i n gm o d ea n dm a k i n gu s eo fp r e d o m i n a n c et h a ti x an e t w o r kd e s i g naf i r e w a l l b a s e do nn p t h es y a e md e s i g nc o r ei sh o wt od e a lw i t ha n dt r a n s m i tp a c k e tb yu t i l i z i n g m i c r o e n g i n ew h i c hc a nt r a n s m i tp a c k e ta t1 0 g b p s i nt h ec o u r s eo fd e s i g n i n g , al o to f p a c k e to n l yg ot h r o u g hm i c r o e n g i n e ,t h r o u g hr a t i o n a la l l o t t i n gt h r o u g h p u to fp a c k e tc a l l r e a c ht h eg o a lo f3 2 5 g b p s t h i sp a p e rp u tf o r w a r dan e wd e s i g nt h i n g k i n gw h i c hc a l lw o r kb ys e p a r a t i n gd a t al a y a n dc o n t r o ll a y ,a n a 】y s et h r e ed i f f i c u l t i e sm o d u l e ( p a c k e tr e c e i v i n gm o d u l e ,p a c k e tf i l t e r i n g m o d u l ea n dp a c k e tt r a n s m i t ) f r o md a t as t r u c t u r e ,d r a w i n gf l o wc h a r ta n dp r o g r a m m i n g i m p l e m a t a t i o n b ya n a l y z i n ga n dt e s t i n g f u n c t i o nv a l i d i t y ,s p a c et i m ec o m p l e x i t y ,s y s t e ms t a b i l i t y a n dt h r o u g h p u t w ec a ns e et h a tf i r e w a l lc a ne x e c u t es t a t ei n s p e c t i n g ,a c lf i l t e r i n g ,n a t s w i s ha n dl o gw h i c hf i r e w a us h o u l do w n a sf i r e w a uw o r kb ys o f t w a r ei m p l e m e n t a t i o n m o s t l y ,w h a ti tc a nd oi sm o d i f ys o m es o f t w a r ew h e ni tw a su p d a t e d ,y o un e e d n td e s i g n h a r d w a r ea g a i na n ds p e n ds ol o n gt i m ea n dm o n e y s ot h ef i r e w a ub a s e do nn pt a k eo n g r e a td e v e l o p m e n tp o t e n t i a l k e yw o r d s :f i r e w a l l ,i n t e m e te x c h a n g ea r c h i t e c t u r e ,n e t w o r kp r o c e s s o r ,n e t w o r ka d d r e s s t r a n s l a t o r ,p a c k e tf i l t e r 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均己在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名亳为 、 、 日期:历旧年,p 月z 2 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密囵。 ( 请在以上方框内打“4 ”) 学位论文作者签名: 蔓力 日期:驯6 年,o 月z z 日 指导教师笔兰璐 7 、之 日期:2 群月拥 华中科技大学硕士学位论文 1 1 研究背景 1引言 随着干兆网络的建设和升级,出现了新的问题:带宽提高了9 倍,可系统总线, 接口没变,c p u 的处理能力却不能提高9 倍,对于要完成包括包过滤、代理、n a t 、 防攻击等多项任务的防火墙来说,原有的硬件和结构不可能满足千兆环境的性能要 求。这就决定了在下一阶段,性能将成为防火墙产品的竞争焦点。 软硬结合一直是防火墙设计和实现的主要方法,对于提高性能来说,硬件技术是 关键。高速网络环境下千兆防火墙产品的数据处理包括包过滤、内容检查、高速交换、 加解密等诸方面,没有高性能的硬件就不能保证千兆以上的线速处理,而缺乏灵活性 就不能满足千兆防火墙产品对网络协议进行- n 七层处理的需求。这就需要使用有高 性能、高灵活性以及高可靠性的专用网络设备。网络处理器以其杰出的包处理性能和 可编程性形成为构筑网络转发引擎不可替代的核心,它已经成为新一代网络设备的核 心处理器,是未来网络设备的发展趋势i l 】。 目静千兆防火墙的硬件实现技术主要有三种:1 n t e l x 8 6 架构工控机、a s i c 硬 件加速技术和网络处理器加速技术。由于采用p c i 总线接口,i n t e lx 8 6 架构的硬件 虽然理论上能达到接近2 g b p s 的吞吐量,但实际应用中,尤其是在小包情况下,远 远达不到标准性能,通用c p u 的处理能力也很有限。而且,由于x 8 6c p u 的广泛 应用,很多网络攻击,尤其是溢出攻击很容易实现,设备自身的安全性较低。而网络 处理器不但处理性能高,由于采用了x s c a l e 、a r m 、p o w e r p c 或m i p sc p u ,能防 范大多数的溢出攻击,提高了自身的安全性。 采用a s i c 专用硬件加速的防火墙可以明显提升防火墙的吞吐性能,但对于升级 维护的灵活性和扩展性不够,而且开发费用高,开发周期长,不利于更新防火墙产品。 而网络处理器是一种非基于a s l c 的i c 或i c 芯片组,利用软件编程,网络处理器 可以像a s i c 那样快速地处理数据包,同时可以升级芯片上的固件增加新的功能。其 固件即可以由网络设备厂商编写。也可由第三方加载到处理其中。一般来说,网络处 理器比基于a s i c 的设计解决方案能缩短上市时间,并能节约资会。同时由于知识产 权包含在软件而不是硬件中,因而,网络设备制造商可以很方便地重复应用他们的秘 华中科技大学硕士学位论文 密,从而使下一代产品的设计成本进一步减少,上市时间更短。由此可见采用网络处 理器进行千兆防火墙的开发是一种最好的选择【2 l 。 1 2 国内外研究现状 网络处理器被认为是推动下一代网络向灵活性和高性能发展的核心技术,围绕其 本身以及应用在国内外已经展开了相关研究。在网络处理产品市场,与a s i c 和 m p u ( 微处理器单元1 相比,网络处理器目前虽处于起步阶段,但其发展速度是a s i c 和m p u 所不能比拟的。目前的网络设备业的组成结构正朝着横向结构发展,网络处 理器的设计开发必须着眼于下代网络高速、开放、多业务多协议的需求,尤其在网 络处理性能和多业务支持方面,当今的网络处理器仍面临着许多挑战,例如采用什么 技术扩展,如何简化编程模式等问题都需要进一步研究。 综合起来,当前有关研究主要包括以下几方面p j : 1 体系结构研究 这方面的研究主要由相关公司主导。国内的清华大学、北京邮电大学、西北工业 大学等也在进行这方面的研究。包括: ( 1 ) 可扩展网络处理器结构 随着下一代网络的复杂度和性能不断增长,网络设备的处理能力和智能化程度 不断提高,网络处理器的发展也必须满足应用需求,由于网络处理的速度发展远远高 于芯片工作速率的提高,因此必须设计可扩展的网络处理器结构,包括芯片内部的可 扩展结构,和系统的可扩展结构。 ( 2 ) 新型流水线结构 为了满足线速处理的要求,无论采用什么结构,都离不开流水技术。一种流水线 结构是将任务分成若干阶段,每个阶段采用专门的处理单元;另一种流水线结构是每 个阶段都采用相同的处理单元,执行不同的程序,还有一种结构是每个任务在一个处 理单元上完成。多个处理单元同时处理多个任务,从目前的情况来看,第种结构的 灵活性受到很大的限制,只局限于特定的应用,后两种结构是发展的方向。随着流水 级数的加深,子任务之间的相关成了急需解决的问题 ( 3 ) 多任务调度硬件支持 不管是基于流水的结构还是基于并行的结构,网络处理器都需要同时在多个任务 2 华中科技大学硕士学位论文 中进行调度,特别是服务质量的要求,不少公司都在他们的下一代网络处理器产品中 采用这种技术,例如a m c c 公司的n p 3 4 0 0 就是采用动态任务调度机制。网络处理的 一个突出特点就是需要多次访问存储器,随着处理要求的提高,访存时间成为了严重 的瓶颈,多线程技术已经被证明是能够解决这种访问延迟的一种方案,多线程分时使 用硬件处理单元,可以有效的提高硬件效率。 目前的n p 丌发环境一般只提供微代码汇编和c 语言编译器支持,有代表性的系 统是i n t e lw o r k b e n c h ,其提供了一个集成的开发环境,除代码编译生成支持外,还提 供了一个仿真器,但两个平面的应用开发是截然分开的。没有统一的丌发手段。目| j 应用研究方面主要在下面几个方面: ( 1 ) 可编程q o s 路由器体系结构 主要是关于路由器的体系结构和相关算法的研究,比较有名的有p r i n c e t o n 大学的 可扩充路由器v e r a 及c o l u m b i a 大学的g e n e s i s 。以p r i n c e t o n 的v e r a 为例,它主 要是基于d i f f s e r v 的体系结构,并兼顾可扩展、兼容性、高效率三方面特点,具体实 现上,该项目采用一种基于i n t e li x p l 2 0 0 和p c 的层次化体系结构,此外,该项目组 还在体系结构的性能评价方面做了一定工作,并对3 种不同队列模型所引入的q o s 调度机制和同步控制策略进行了一定的研究【4 j 。 ( 2 ) 主动网络和可编程网络 这些研究包括执行代码的动态移植和发布、代码的安全执行、资源共享调度等, 其中一些研究成果也被应用到网络处理器中,比如c o l u m b i a 大学的g e n e s i s 将可编程 虚拟网络中的概念移植到网络处理器系统中。 ( 3 ) 其他应用 随着网络处理器的应用研究广泛开展,涌现出了一些成功的应用范例这些应用集 中地体现在:基于网络处理器的智能路由交换设备;防火墙、v p n 及入侵检测设备等 智能安全设备的应用;网络系统的监测控制或模拟设备。 1 3 主要研究工作 论文的主要工作是在分析传统防火墙的性能缺陷的基础上,提出基于i x p 2 4 0 0 网 络处理器防火墙的设计方案。利用网络处理器多线程并行处理和可编程的特性,规划 了n p 多线程防火墙总体目标和防火墙开发模型等,对防火墙三个难点模块( 数据包 华中科技大学硕士学位论文 接收模块、数据包过滤模块、数据转发模块) 进行了具体的实现。最后对所设计的防 火墙进行性能分析和测试,证明设计的正确性。 1 4 论文组织 本文共分为六章。 第一章为引言,主要介绍论文研究的背景、国内外对基于网络处理器防火墙的研 究现状与发展前景,以及论文研究目标、研究内容及论文的组织情况。 第二章介绍网络处理器的功能与体系结构,重点介绍网络处理器微引擎的体系结 构与工作原理,详细说明其多线程的工作原理。 第三章首先介绍防火墙的基本概念,其次详细说明防火墙的分类与工作原理。最 后提出n p 防火墙的思想和模型。 第四章在分析传统防火墙不足的基础上,对多线程的编程模式与i x p 2 4 0 0 的编程 环境作了详细的分析,最后,提出n p 多线程防火墙的具体实现。 第五章本章首先对系统空间复杂度和时间复杂度进行分析,然后从程序的正确 性、系统功能、性能和稳定性等四方面对系统进行了测试,证明了防火墙程序在各种 数据情况下程序过滤和转发的正确性以及防火墙程序在长时间运行后程序运行的稳 定性。 第六章对论文全文进行了整体的总结,提出今后工作的重点。 4 华中科技大学硕士学位论文 2i x p 2 4 0 0 网络处理器 2 1i n t e l i x a 概述 2 1 1i n t e li x a 定义 i n t e li x a 即i n t e l 互联网交换架构( i n t e m e te x c h a n g ea r c h i t e c t u r e ) ,它泛指i n t e l 的网络处理器架构,它包括以下三个主要部分1 5 , 6 1 : ( 1 ) 微引擎技术一完全可编程,多线程r i s c 处理器的子系统,它能够在数据平 面中执行高性能的包处理; ( 2 ) i n t e lx s c a l e 技术在工业上提供了最高的性能动力比率。在速度达到 1 0 0 0 m i p s 的情况下功率的消耗只有1 0 m w 。它使低消耗,高密度数据处理的控制平 面应用成为可能; ( 3 ) i n t e li x a 移动架构一通过个标准的可编程框架,可移植性代码以及基于网 络处理器和下代网络处理器的可重用来提供软件投资保护以及加快产品面世的时 间。 i n t e li x a 包括控制平台和数据平台处理( 比如,慢路径和快路径处理) ,它定义了 硬件抽象层,应用程序接h ( a p i s ) ,和互通机制,提供了有效的、灵活的硬件和软件 结构来开发和交付网络服务应用,我们能够使用应用程序接口( a p i ) ,即i x a a p i 来 为这个架构开发一些应用,这些应用包括防火墙、虚拟专用网v p n ( v i r t u a lp r i v a t e n e t w o r k s ) ,入侵监测( i n t r u s i o nd e t e c t i o ns y s t e m s ) ,r m o n 统计监控应用,负载平衡 系统,服务质量( q o s ) 应用,v o i p 应用,协议转换,第三层转发等。 2 1 2i x a 应用的逻辑架构 i x a 移动架构是一个网络应用架构,它是开发应用代码的底层基础,能够【7 1 : ( 1 ) 通过充分利用底层软件和a p i s 来节约开发时问; ( 2 ) 通过利用提供的可配置构件块来节约歼发时间; ( 3 ) 通过i x a 网络处理器束允许灵活接入; ( 4 ) 为第三方即插应用模块提供一个结构思想。 要理解i x a 软件架构,就必须理解一个网络服务应用所执行的基本任务。一个 网络服务应用典型地运行于以下三个逻辑平台,如图2 1 所示。 华中科技大学硕士学位论文 图2 1网络服务应用功能平台 数据平台:数据平台的功能包括高速处理和转发输入的数据包。因为所有设备处 理的数据包都必须经过数据平台,所以数据平台是整个处理过程中性能最关键的部 分。数据平台由以下两个部分组成i s ! : ( 1 ) 快速路径:处理绝大多数数据包的m e v 2 微引擎。比如快速路径处理简 单地i p v 4 数据包; ( 2 ) 慢速路径:比如i n t e lx s c a l ec o r e 。由于一些数据包的处理很复杂而不能 在快速路径上处理,因此将这些包交给慢速路径处理。具体的事例如转发包头中具有 选项的i p 包,处理分片的数据包等。 执行数据平台功能的i x a 应用部分称为数据处理机( 有时称为转发单元) 。它接 受来自一个网络接口的缓冲区数据( 包括信元,数据包,帧,甚至于通用i o 缓冲) 根据协议和内容分类,然后通过查询数据表执行相应的动作。数据处理机处理快速路 径最常用的操作比如数据包的转发。优化这部分应用束执行和处理大多数的网络 数据流。对于i x p 2 4 0 0 ,数据处理机通常作为对具体微引擎编译的m i c r o b l o c k 来执 行。 控制平台:处理协议信息并负责安装、配置和更新表格以及设计数据平台查找的 数据。例如,控制平台处理包含路有信息的r i e o s p f 数据包并更新数据平台使用的 i p v 4 转发表。 控制功能包括异常事例或者错误事件的处理,创建和维护应用对象以及用于数掘 处理部分查询的表和数据集。 6 华中科技大学硕士学位论文 执行控制平台功能的i x a 应用部分称为控制器( 有时称为控制单元) 。这部分执 行数据处理过程中遇到的复杂或者耗时的任务。例如,当个路由应用的数据处理机 遇到在路出表中没有入口的数据包时,它能够发送这个数据包给控制器。这使锝数据处 理机空闲束继续转发网络流量,同时控制器找到正确的路由,增加它到路由表,否则 处理异常。对于i x p 2 4 0 0 ,控制器通常被当作m i c r o b l o c k 执行并为提供更多操作系统 服务的核心处理器编译。另一种选择的方法是用i x as d k 3 ,0 修改第三方协议栈软 件,使之( 在i x a 环境下) 实现控制器。 管理平台:负责系统配置,收集和报告统计信息,停止或开始应用功能束响应环 境变化或者用户的输入。管理平台典型地执行一个g u i 来显示或者获得用户信息。一 个管理器能够处理报警,状态汇报,以及应用产生的其他信息。 执行管理功能的i x a 应用部分称为管理器程序。管理任务能够通过个片外应用 或者通过一个运行在p 2 4 0 0 上的标准l i n u x 应用来处理。i x a 应用的管理代码通常 是包括某种用户接口的大型应用的一部分。这部分通过调用i x p 2 4 0 0 系统软件能够同 控制和数据处理块通信。比如,管理程序可以通过一个图形用户接口( g u i ) 得到来 自用户的信息并且通过改变i x a 应用部分之间的数据流方向来响应。同样地,它可以 通过g u i 给用户显示信息来表示一个柬自控制器的错误信息降p l 。 在嵌入式系统中,管理器程序可以执行i x p 2 4 0 0 子系统和中心管理单元之l b j 的特 殊应用的管理协议,例如,基于i x p 2 4 0 0 在线芯片和一个管理芯片之间通过底板通信。 不同的代码模块能够被编译运行在不同的处理器上,这依赖于一个模块的任务什么是 可用的、适合的,以下是处理器上任务分配情况。 数掘处理和控制模块通常放在i x p 2 4 0 0 网络处理器上,在这上面它们能够高速地 响应和处理数据包,对于p 2 4 0 0 网络处理器中不同的处理器,通过指定( 处理器 类型) 编译来迸一步优化。 管理程序可以放于另一个处理器上,在这上面它可以访问用户接口,存储,以及 全部操作系统提供的服务,采用主机p c 来运行管理程序。采用的具体架构将在第四 章详细描述。 2 1 3i x a 应用的逻辑单元 i n t e li x a 的网络处理本质上是应用于连续数据流或者信元数据的一系列任务。具 有多处理器多线程架构的i x p 2 4 0 0 和p 2 8 0 0 网络处理器,这些任务分配到几个 华中科技大学硕士学位论文 微引擎,每个微引擎计划执行明确的任务。当一个微引擎完成它的任务后,传送上下 文到它的下个微引擎以便能继续对数据包进行处理1 1 叫】。 在m e v 2 微引擎和i n t e lx s e a l ec o r e 上使用分层架构来执行i x a 移动架构。图 2 2 为i x a 应用单元使用分层架构,能灵活地使用整个i x a 移动架构或者仅仅在某 个特定级的时候使用,比如可以选择在微引擎上仅仅使用x s e a l ec o r e 上的资源管理 器a p i 来写微模块。 x s c a l e 内核 微弓l 攀 按心缀件 擞 作 系 核心组件聚黜库 瑕 务 姿源鬻怒霹 瓣 - - - - - - - - - - i - - - - - - - - - - 微援块麓继簿 l优纯数嚣半巍潭l 幽2 2i x a 应_ j 单元分层架构 优化数据平台库:优化的数据平台库是用于构建一个应用微引擎模块或者微模块 的底层功能。为了取得高性能和最小的代码空间,对这些宏的库函数或者微引擎c 功 能进行优化。使用优化的数据平台库函数开发的程序组成汇编指令或者在没有牺牲实 时性能的情况下创建更易读、理解和维护的微引擎c 函数。 微模块:微引擎上处理的快速路径被划分成微模块的逻辑网络功能。每个微引擎 是一个宏或者使用分派环架构和优化的数据平台库函数提供的基本底层库函数编写 的微引擎c 函数。微模块的日的是允许对微引擎进行写操作,这样每个微模块能够 独立于其它微模块。优点是提高了代码的重用性并且允许开发者用不同方式连接微引 擎,同时写快速路径代码的任务也被简化,加快了投入市场的时日j 。每个微引擎在 8 华中科技大学硕士学位论文 x s c a l ec o r e 上都有相应的管理模块,开发的这些典型应用管理模块有利于微引擎处理 一些常用的事例而异常事例被传到x s c a l e 组件做进一步处理。 分派环:分派环将运行在单个微引擎线程上的微模块组合成一个微模块组。分派 环运行在多个m e 的多个线程上并且在微模块之问执行数据流。微模块可以被组合 成上下文( c o n t e x t ) 流水线或者功能( f u n c t i o n a l ) 流水线。分配环为微模块提供了一种 架构,允许微模块有效地访问数据包描述符和头部中经常用到的数据域。分派环也提 供一种机制:在分派环与其他分配环或者x s c a l e 核心之日j 接收和发送数据。 核心组件:核心组件是指微模块运行在x s c a l e 核心上的慢路径的相应部分。它 包括以下功能: ( 1 ) 配置微模块( 通过输入变量静态配置和通过控制模块动态配置) ; ( 2 ) 初始化和维护一些有可能在其他应用中被更新的通用数据结构: ( 3 ) 提供控制信息手柄和异常来处理其他微模块所发送的数据包。 每个核心组件有多个不同的输入,每个输入和不同的数据包,信元相联系。x s c a l e c o r e 组件是执行微模块的配置、管理和异常数据包的处理代码。一个核心组件可以管 理多个微模块,在极端情况下,一个核心可以管理所有的微模块。有两种方法可以实 现一个核心组件,一个是使用1 x a 核心组件基本构件库函数( i x ac o r ec o m p o n e n t i n f r a s t r u c t u r el i b r a r y ) 束执行核心组件,核心组件基本构件为处理这些信息和数据提供 支持。另一个是通过直接使用资源管理器a p i 的软件实体来执行。实体的设计( 它 是否是一个共享库函数,驱动程序,线程,进程等) 以及它处理数据包和消息的实现 完全是由开发者实现。 硬件抽象层( h a l ) :提供像操作系统那样的与硬件相关的功能,分别是内存和缓 冲区管理、临界区的管理、进程b j 通信、控制和状态寄存器等。 2 1 4 微引擎技术 i m e li x p 2 4 0 0 系列网络处理器中有八个独立的r i s c 数据引擎( 即微引擎) ,这 些微引擎从硬件上支持多线程,能够处理以前由高速专用集成电路( a s i c ) 完成的任 务,并具有良好的可编程性1 1 2 , 1 3 i 。 微引擎的指令系列是为网络和通信应用中快速有效地转发数据而特别设计的。微 引擎的硬件结构则是设计成不需要核心处理器的帮助就有很高的处理性能。为了保证 每个微引擎能够充分利用,每个微引擎都有独立的程序计数器,支持零歼销的现场切 9 华中科技大学硕士学位论文 换和硬件信号量。微引擎按照核心的时钟频率操作。算术逻辑运算和移位操作能够在 一个时钟周期内完成。每个微引擎支持2 5 6 个通用目的寄存器( g p r ) 以及用于同内 存和0 设备通信的5 1 2 个传出寄存器( x f r ) ,还有1 2 8 个用于邻居微引擎之间 通信的下一个邻居寄存器。 微引擎支持硬件多线程,使得在一个微引擎上能运行8 个分离的程序代码。每 个微引擎有8 个程序指针,支持8 个线程,每个线程有它自身的线程i d 。但一个线 程不执行时,每个线程的上下文都保存起来。当一个线程睡眠,便发生上下文转换, 执行另外一个线程。当一个线程睡眠时,上下文仲裁逻辑判断哪一个线程运行,它通 过从其他功能单元发出的信号事件来仲裁。一个线程可以处理以下三种状态5 ) : ( 1 ) 运行( 线程在处理器上执行) ; ( 2 ) 睡眠( 等待一个信号事件的发生) : ( 4 ) 就绪( 已经收到它所等待的信号事件,等待上下文仲裁器允许它运行) 。 微引擎的多线程结构是非抢占式的。当一个线程执行一个上下文转换指令之后。 上下文仲裁器决定下一个执行的是哪个线程。 2 1 si n t e ix s c a l e 微结构 i n t e lx s c a l e 微结构为下一代网络处理程序提供了基础,i n t e lx s c a l e 技术有助于 大幅度的提高处理性能。 数据包处理应用由数据平台代码和控制平台代码两部分组成。数据包的处理主要 在数据平台上进行,而异常数据包则由i n t e lx s c a l e 微结构处理,控制平台代码也由 i n t e lx s c a l e 微结构处理。i n t e lx s c a l e 微结构也可用于运行用户界面和管理( 配置) 代码。i n t e lx s c a l e 微结构是基于i n t e l 超流水线技术,具有很高的m w a t t m i p s 性 能,非常适合于嵌入式应用。i n t e lx s c a l e 微结构的指令系统仍然是基于a r m 的5 t e 指令集( 不包括浮点指令) ,因而能够保持与i n t e ls t r o n g a r mc o r e 的软件兼容i i 。 i n t e lx s c a l e 微结构有着完善的开发支持工具,包括编译器,调试器,操作系统, 模型,仿真器,第三方供应商的服务支持以及评估板和工具包等。 2 1 6i x a 软件开发工具包( s d k l i n t e l1 x as d k ( i n t e li n t e r n e te x c h a n g ea r c h i t e c t u r es o f t w a r ed e v e l o p e r sk i t ) 是提供 给开发者快速开发1 x p 2 4 0 0 功能的强大工具。i n t e li x as d k 基于一种网络服务分离 模式,在这种模式下一个i x a 应用分成三个平面,快速包处理的数据平面,异常包 1 0 华中科技大学硕士学位论文 以及协议栈处理的控制平面,进行全面系统配置和控制的管理平面。使用i x a a p i 开 发的应用成为i x a 应用。i x a s d k 提供了工具和库函数允许开发者快速方便的开发 和交付i x a 应用。这些应用直接操作数据包,并独立于协议层。s d k 的开发组件如 图2 3 所示。 ,| 绂l :j 数獬甲台羧嬲奈 w o r k b e n c ht o r n a d o t r a n s a c t o r ( 器务缝蠼嚣)翻ug c c c o m p i l e r ( 编译器) i x a 移幼繁弼嵌入式0 s i x a 羟籍甲螽p d k系统较律 艇工弋编租貘镬 m o d u l a rp r o g r a m s d k m o d e l ) 3 。0 优化数糍甲台潍 构建浚浚 夸铡软件 图2 3s d k 开发组件 2 2i x p 2 4 0 0 网络处理器的体系结构 2 2 1i x p 2 4 0 0 网络处理器的硬件体系结构 i x p 2 4 0 0 是l m e l 公司继i x p1 2 0 0 之后推出的又一个基于i x a ( i m e le x c h a n g e a r c h i t e c t u r e ) 体系结构的网络处理器。它支持2 5 g b p s 应用,具有8 个6 0 0 m h z 的微引 擎、6 0 0 m h z 的处理核心x s c a l e ,可外接i 块d d rd r a m 和2 块q d r s r a m ,支持 标准的m s f 接口标准s p i 3 或c s i x l io 微引擎的处理能力适用于数据包转发等功能, 8 个微引擎能够在每秒钟转发3 层数据包3 百万个。x s c a l e 处理器可用于处理更加复 杂的任务,如地址学习建立和维护转发表以及网络管理等u 7 , 8 1 。体系结构如图2 4 所 示。 1 l 华中科技大学硕士学位论文 图2 4i x p 2 4 0 0 网络处理器体系结构 i x p 2 4 0 0 网络处理器是一个高度集成的综合数据处理器。它提供高性能并行处理 能力,具有各种层次的可扩展性。它结合x s c a l e 微处理器以及8 个独立的3 2 位r i s c 数据包转发微引擎,加上硬件的多线程支持可达到每秒5 4 g 次操作。它支持各种各 样的w a n 和l a n 应用。通过改进微引擎的系统结构达到高性能和可扩展性,这些改 进包括多线程的分配和使软件具有流水特性的高速缓存系统结构。 i x p 2 4 0 0 包含8 个可编程的3 2 位r i s c 处理器、称为微引擎,专用于网络通信 处理。每个微引擎可执行4 个线程,有4 个程序计数器能在一个时钟周期完成a l u 和移位操作。微引擎的指令集是专门为网络和通信应用设计的能快速有效地转发数据 包数据类型,有位、字节和长字。微引擎中采用一种硬件多线程的特征,线程的切换 没有时间开销。每个微引擎具有4 个程序计数器,分别用于4 个线程。每个线程有自 己的线程标识,使得对于访存的结果能够直接返回给请求的线程。在微引擎中的一个 线程发出访存请求时,这个线程把自己切换出去使得其他线程得到运行,等到存储器 返回结果时再切换到该线程。线程的切换不是采用中断机制,而是在微指令的控制下 进行。这种线程切换机制可以充分利用访存间隙,提高微引擎的利用率和吞吐率。 2 2 2i x p 2 4 0 0 的功能模块 图2 4 显示了i x p 2 4 0 0 主要功能单元的简化块状图,这些功能单元在下面给出简 要的描述i l 。 x s c a l e 核心:完全的3 2 b i tr i s c 处理器,具有高性能、低功耗和紧凑设计等特点, 适用于与其它专用的可执行单元集成在同个芯片中。它带有综合的缓存,可以用来 实现管理功能,运行路由协议,例外处理和其他的功能。 华中科技大学硕士学位论文 = = = = = = = = = = = = = := = = = = = = = = = = = = := = = = = = = = = = = = = = = = = = = = = = = = = = = = ;= = = ;一 八个微引擎:如图2 5 所示,这些高效的r i s c 引擎可以用于任何要求快速的包 内容的探测,数据处理,或数据传输的任务。他们是具有5 级执行流水的一个大寄存 器组的完全可编程3 2 位引擎。硬件多线程,和上下文敏感的寄存器窗口可以进行快 速的上下文切换。 s d r a m 单元:一个共享的,智能存储器接口,可以由x s c a l e 核心,微引擎和 p c i 总线上的设备接入。可以在s d r a m 和微引擎或者i x b u s 单元间,p c i 总线间移 动数据块。 图2 5 微引擎结构图 s r a m 单元:共享的智能接口,可以由x s c a l e 和微引擎接入。可以在s r a m 和 微引擎之间移动数据块。 p c i 总线接口单元:标准接口,可以连接其它的p c i 设备,或者其它的主机处理 器。p c i 接口的速度可以快到1 3 3 m h z ,但是受到p c i 总线协议和带宽的限制。这也 没有预定说p c i 应该是数据进出i x p 2 4 0 0 的主要途径,需要注意的是,在p c i 单元和 微引擎之间没有内部的直接的连接。 华中科技大学硕士学位论文 xb u s 单元:i xb u s 接口是p 2 4 0 0 的高速数据流接口。可以在i x p 2 4 0 0 和网 络设备例如m a c 和s a r 之间传递块数据。i xb u s 单元可以在i x p 2 4 0 0 内部执行多 种复杂的数据传输,外部的i xb u s 接口本身很简单。 m s f 接口交换单元:为m a c 层设备提供服务,例如在接收和发送f i f o 之日j 转 移数据。 三种存储资源s r a m 。s d r a m 和s c r a t c h p a dr a m 在容量、带宽方面都有不同。 同时拥有三种类型的存储的好处在于其中的每个存储操作都可以并行的进行,而且程 序员也可以利用适合他们要求的不同特性的存储资源。例如:s d r a m 存储器是为了 分组数据存储和特大的表格,而s r a m 存储器是为了较小延迟的表的查找,s c r a t c h p a d r a m 在i x p 2 4 0 0 种是较小的。但是它的延迟也很小,通常在内部的通信中使用,并 且用于共享的信号量或者计数器。 2 3i n t e li x p 2 4 0 0 网络处理器特点 ( 1 ) 多处理器。八个微引擎,加上x s c a l e 弥补了i x p 2 4 0 0 的计算资源。他们共 享了一系列的资源:s d r a m ,s r a m ,m s f , i x b u s ,s c r a t c h p a dr a m 和些其它的功 能。 ( 2 ) 分布式的数据存储结构。每个微引擎都有可编程的4 k 指令存储区、2 5 6 个 通用寄存器、5 1 2 个传输寄存器、1 2 8 个邻居寄存器及6 4 0 个3 2 b r 的本地存储器,微 引擎有一个下载一存储结构,一个微引擎不能够访问位于它外部的数据它必须把这些 数据放入它的传输寄存器,对该数据进行操作,然后将数据写回位于传输寄存器外部 的目的地址( 例如s d r a m ) ,一旦数据位于传输寄存器后,一个微引擎有一个周期的 时问访问,这大大的提高了它的处理能力如果数据没有在传输寄存器中,微引擎可以 发出一条引用命令柬取得所需要的数据,然后“进入睡眠”,等待所露数握的到来, 这时候硬件的多线程开始工作。 ( 3 ) 硬件多线程。每个微引擎实际上有四个程序计数器,设计成可以支持四个 线程( 称为上下文) ,当其中一个线程等待数据的时候,它可以“入睡”并且允许其它 在同一微引擎上的线程运行,这样的话,就可以在一个微引擎上运行四个线程,以一 种更为有效的方式使用微引擎的计算资源这样的方式也获得了更好的芯片使用率,比 实现更多的微引擎,但是没有多线程的方法的消耗更低在无多线程的设计中,微引擎 在等待数据的时问内仅仅是等待,i x p 2 4 0 0 的多线程是硬件中实现的,但是由软件控 4 华中科技大学硕士学位论文 制,硬件中实现多线程使上下文切换的零消耗成为可能1 2 。 ( 4 ) 动态的内存优化。s d r a m 和s r a m 单元有一些队列和优化,这允许八个 微引擎( 实际上的3 2 个微引擎线程) 和x s c a l e 从内存单元请求渎或者写,并且内存单 元可以智能的决定执行这些请求的优化的顺序通过这些,实现了在硬件级别,并由软 件控制的在指令基础上的动态的内存优化。 ( 5 ) 并发。i x p 2 4 0 0 内部的几个相互独立的数据和控制总线可以使数据同时被 移动。 所有以上的各条都可以同时而且互相独立的发生,在软件控制下但是在硬件的基 础上实现,所以程序员不用考虑细节问题。 ( 6 ) 块传输。每个微引擎上都有大寄存器,这样的话一个指令就可以使6 4 字节 的数据从一个功能单元到另一个功能单元,或者1 2 8 字节的数据通过i xb u s 。这样就 更好的利用了微引擎的计算资源,同时也减小了代码规模。 ( 7 ) 可扩展性。i x p 2 4 0 0 结构在不同的层次上实现了可扩展性首先,这样的结 构使i x p 2 4 0 0 系列的成员可以增加额外的微引擎,同时仍保持同样的编程模型。其次, i x p 特性网络处理器可以在微引擎内增加指令的存储。第三,多个i x p 2 4 0 0 可以简单 的设计连接在一起,提高处理能力和带宽。 2 4 小结 本章介绍了网络处理器的基本概念和功能,以i x p 2 4 0 0 为网络处理器,分析了 i x p 2 4 0 0 的体系结构,结合处理器微引擎的工作原理,说明了基于网络处理器的设备, 具有高效的性能和线速处理能力。 华中科技大学硕士学位论文 3 1 设计思想 3 基于网络处理器多线程防火墙的设计 防火墙主要用于计算机和网络之间,对往来的网络通信进行扫描,过滤掉非法的 请求( 黑客攻击) 。从理论上讲防火墙作为一种保安机制,它控制那些数据包可以进 出网络而那

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论