(通信与信息系统专业论文)基于网络处理器ixp2350的ipsec协议实现设计.pdf_第1页
(通信与信息系统专业论文)基于网络处理器ixp2350的ipsec协议实现设计.pdf_第2页
(通信与信息系统专业论文)基于网络处理器ixp2350的ipsec协议实现设计.pdf_第3页
(通信与信息系统专业论文)基于网络处理器ixp2350的ipsec协议实现设计.pdf_第4页
(通信与信息系统专业论文)基于网络处理器ixp2350的ipsec协议实现设计.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(通信与信息系统专业论文)基于网络处理器ixp2350的ipsec协议实现设计.pdf.pdf 免费下载

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

文档简介

摘要 随着i n t e m e t 的不断发展,现有的c d m ab s s 系统需要利用这个开放的网络 实现i p 报文的传输,为了保证在网络中m 报文传输的安全性和可靠性,需要使用 网络安全标准i p s e c 协议,鉴于i n t e li x p 2 3 5 0 网络处理器的高速的数据转发的处 理性能,及在i p s e c 应用方面的优势,本文将使用i x p 2 3 5 0 来实现i p s e c 协议的设 计,解决了传统的其它处理器在网络安全应用方面存在的一些问题。 本论文所要完成的工作主要是应用网络处理器i x p 2 3 5 0 设计与实现i p s e c 协 议,以实现以太网安全接入平台。首先,叙述了课题所研究的i p s e c 技术和网络处 理器技术的背景及应用,说明了本文的技术实现需要解决的问题。其次,介绍了 i x p 2 3 5 0 的软硬件结构,论述了网络处理器并行处理问题。同时,对i p s e c 协议的 体系结构做了相应的介绍,对本文涉及的各个协议及算法做了简要的说明。然后, 根据i n t e li x p 2 3 5 0 网络处理器的结构特点,说明如何来实现i p s e c 协议,及各个 模块的设计流程。重点解决了如何利用i x p 2 3 5 0 网络处理器的高速的数据转发性 能及分层架构特点来实现i p s e c 协议的设计与实现。最后,对本设计的性能进行了 理论分析及在实际以太网接入环境中测试,并作了系统总结。测试结果与性能分 析说明了基于i x p 2 3 5 0 网络处理器在m s e e 协议实现设计上相对于在其它处理器 的实现上的优势,达到了课题研究的目的。 关键词:网络处理器安全联盟i p s e ci k e a b s t r a c t a st h ei n c e s s a n td e v e l o p m e n to fi n t e r n e t ,t h ee x i t i n gc d m ab s ss y s t e mn e e d st o u t i l i z et h i so p e nn e t w o r kr e s o u r c et ot r a m i m i ti pp a c k e t s ,a n da ts a m et i m e ,w em u s t m a k es u r et h a tt h ei n f o r m a t i o ni ss a f ea n dr e l i a b l ei nt h en e t w o r kt r a n s m i s s i o nb a s e do n t h es t a n d a r di p s e cp r o t o c 0 1 w h e r e a st h ei n t e li x p 2 3 5 0n e t w o r kp r o c e s s o rh a st h e c a p a b i l 时o f h i 曲一s p e e dt r a n s m i s s i o na n dt h ea d v a n m g eo ft h ei p s e ca p p l i c a t i o n 。t h i s p a p e rw i l li n t r o d u c eh o w t od e s i g na n dr e a l i z ei p s e ep r o t o c o lb a s e do ni x p 2 3 5 0a n d r e s o l v e st h ep r o b l e mo ft h et r a d i t i o n a la p p l i c a t i o no nn e t w o r ks e c u r i t yb a s e do no t h e r p r o c e s s o r s t h i st h e s i sm a i n l yd i s c u s s e sh o wt or e a l i z ei p s e ep r o t o c o lb a s e do ni x p 2 3 5 0a n d r e a l i z et h ee t h e m e ta c c e s sp l a t f o r m f i r s t l y , t h i sp a p e rd e p i c t st h et e c h n o l o g i e so f i p s e cp r o t o c o la n dn e t w o r kp r o c e s s o ra n dr e f e r st h e i rb a c k g r o u n da n da p p l i c a t i o n s , a n dt h e n ,m a k e so u tt h ep r o b l e m sw h i c hn e e dt ob er e s o l v e d s e c o n d l y ,i ti n t r o d u c e st h e f r a m e w o r ko fs o f t w a r ea n dh a r d w a r eo fi x p 2 3 5 0a n dd i s c u s s e st h ep a r a l l e lp r o c e s s i n g p r o b l e mo f n e t w o r kp r o c e s s o r t h i r d l y , i ts h o w st h es y s t e ms t r u c t u r eo fi p s e cp r o t o c o l a n dt h ee s s e n t i a la l g o r i t h m s f o u r t h l y , i te x p l a i n sd e t a i l e d l yh o wt or e a l i z ei p s e cb a s e d o ni x p 2 3 5 0a n dt h ed e s i g nf l o wf o ra l ls o f t w a r em o d u l e s t h i st h e s i sm a i n l yr e s o l v e s h o wt om a k eu s eo ft h eh i g hp e r f o r m a n c ea n db e d d i n gt r u s so fi x p 2 3 5 0t or e a l i z e i p s e c a tl a s t ,i tp u t su pt h ea c a d e m i ca n a l y s i so ft h ed e s i g na n di m p l e m e n t st h et e s ti n t h ea c t u a le t h e m e ta c c e s se n v i r o n m e n t a n da n a l y z e st h er e s u h 1 1 1 er e s u l ts h o w st h e p r e d o m i n a n c eo fi p s e cp r o t o c o lr e a l i z a t i o nb a s e do n1 x p 2 3 5 0c o m p a r e dt oo t h e r n e t w o r kp r o c e s s o r s ,w h i c hh a sa c h i e v e dt h er e s e a r c hg o a l k e y w o r d s :n p s ai p s e ci k e 独创性( 或创新性) 声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:一乏掣堡仁 日期:! 尘! 型 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本人签名; 导师签名: 日期:坐生型 日期: a :! :鉴 第一章绪论 第一章绪论 1 1i p s e c 协议技术背景 因特网技术的兴起,互连技术的成长,使得大家愈来愈依赖i n t e m e t 这个应用 广泛的公众网络。因此如何让使用者通过因特网通信,而不用担心传送的信息封 包被截取、假冒,就显得相当重要。这几年来因特网上的安全标准有很多。例如: r f c l 5 0 8 所规定的g s s a p i ;因特网工程小组i e t f 的p s r g 小组所制定的p e m 标准可以达到e m a i l 的安全性;其它如e i t 的s h t l 甲,n e t s c a p e 的s s l ,m i c r o s o f t 的p c t 以及上面提及的g s s a p i 均可建立h t t p 的安全机制等,但这些不论是会 话层或应用层上的安全机制,使用者必须使用专属的通讯协议,或特定厂商的产 品,给使用者带来不便。 为了确保在任何m 网络上拥有安全的私密通信,也为了整合不同标准及不同 厂商产品,i e t f 着手制定了一套开放标准网络安全协议i p s e e 。i p s e c 将密码技术 应用在网络层,以提供端到端数据的认证、完整性、存取控制以及机密性等安全 服务。它主要的架构是i p 认证头( a h ) 和i p 封装安全装载( e s p ) 。a h 和e s p 可以 分开使用,也可一起使用。完整的i p s e c 还应包括a h 和e s p 中所使用密钥的交 换和管理,即安全关联( s a ) 和密钥管理o k e ) 。i p s e c 技术现在广泛应用于v p n 技 术、防火墙和安全网判“习等领域,它的实现有基于操作系统l i n u x 或w i n d o w s 的, 有基于片上系统s o c 的,近些年也有基于网络处理器开发的 6 - t 2 ,为在不安全的 i n t e m e t 上提供一个安全的通道,对应用层而言又是透明传输。 虽然针对口层的安全机制尚有其它的i pt u n n e l i n g 技术。例如基植于p p p 而 发展的p p t p ,这是由m i c r o s o f t 和a s c e n d 所共同提出,可支持m i p x n e t b e u i , 支持的厂商则有n o r t e l 和3 c o m 。另外l 2 t p 则是融合了p p t p 和c i s c o 的l 2 f , 主要的厂商有n o r t e l 和i b m 。本文主要介绍i e t f 所制定的开放标准i p s e c ,因为 它能整合不同的v p n 系统而达到安全地网络互连目的。 1 2 网络处理器技术背景 n p 技术为下一代网络的核心技术,其特点是:n p 针对数据分组处理,采用 优化体系结构、专用指令集、硬件单元,满足高速数据分组的线速处理要求,因 此它有比c p u 更好的处理性能,能够满足网络高速发展的需求:具有软件编程能 力,能够迅速实现新的标准、应用,满足网络业务复杂多样化需求,灵活性好; 设备具有软件升级能力,满足用户设备硬件投资保护需求;研制周期短,成本低, 市场存活时间长。但依赖于软件的运行,因此,处理性能较a s i c 相对差一些。 2 基于网络处理器i x p 2 3 5 0 的i p s e c 协议实现设计 网络处理器既有a s i c 的处理速度,同时又克服了a s i c 灵活性差的缺点,具 有良好的可编程能力,这两个特点决定了网络处理器具有强大的生命力。从1 9 9 9 年到现在已有a m c c 、i n t e l 、h i f n 和m o t o r o l a 等数家大公司相继推出了自己的网 络处理器产品。其中i n t e l 公司在网络处理器的开发方面走在了同行的前列。i n t e l 网络处理器应用于:宽带接入平台、2 3 层转发、q o s 、防火墙1 2 】1 9 1 、v p n 3 1 、i d a l 6 1 、 i d s 4 1 7 1 、网关 3 1 、2 5 g b i t s 和3 g b i t s 基站控制器、4 7 层转发和高端路由器等嗍。 对于i n t e l 网络处理器的在接入网方面的应用实例也很多,比如i x p 4 2 5 在v p n 方面的应用【3 】、i x p 2 4 0 0 在数据包过滤方面的应用【4 】【9 】【1 0 】及i x p 2 3 5 0 和i x p 2 8 5 0 在 i p s e c 方面的应用1 2 1 1 1 】等等,对于i x p 4 2 5 由于它本身处理性能的局限性,支持的 隧道条目只是2 0 0 - 4 0 0 条,它的v p n 实现上避免不了要出现处理瓶颈的问题,而 且它也只适合在规模比较小的网络应用上,不适合本文即将介绍的b s s 系统以太 网接入环境。对于i x p 2 4 0 0 它有8 个m e ,数据转发效率比较高,然而它没有加密 解密的固件,如果完全用i x p c 来实现加密算法,这很容易耗尽整个m e 资源。对 于i x p 2 8 5 0 有1 6 个m e ,且有n p e 单元【j ,处理性能也很高,但是成本很高,不 适合商用,应用也受到了限制。网络处理器在i p s e c 实现、入网检测技术及防火墙 的应用上,传统上一般都是基于i n t e li x p c 编译器及c 语言来实现的【l 。”,他们都 有一共同的问题就是代码的编译效率不高及资源利用率问题,不能发挥网络处理 器特有的资源优势。 本文的i p s e c 协议的实现是基于网络处理器i x p 2 3 5 0 实现的。i x p 2 3 5 0 是i n t e l 公司结合i x p 2 4 0 0 和i x p 4 2 5 形成的带有丰富接口的网络处理器,具有高集成,低 价格的架构i l ”。相对于i x p l 2 0 0 而言有更强大的功能,更方便的调试环境。而且 i x p 2 3 5 0 中的n p e l 单元支持典型的加密算法比如d e s 、a e s 等,散列算法m d 5 和s h a 1 ,及加密模式c b c 、e c b 和c t r 等 1 5 i ,而这些算法正是实现i p s e c 所需 的,即本文将用n p e i 来实现加密( e n c r y p t ) 处理。 1 3 课题背景及工作安排 本论文课题来源于c d m a b s s 系统以太网安全接入项目的研发,即在基站的 接口板上加入i p s e c 处理功能。研究工作的目的是完成接口板在做i p 数据报转发之 前先做好i p 安全认证和加密解密处理的设计实现,并且在实现基本功能的基础上 能够尽可能的提高处理效率及资源利用率。现有的c d m a b s s 系统的以太网接入 部分在接口板是使用i n t e l 的i x p 2 3 5 0 硬件板来实现i p 数据报文接入转发的功能,但 并没有实现安全认证及信息加密的功能,而是采用外设的防火墙系统来保证信息 的安全传输接入,这无疑浪费了i x p 2 3 5 0 片上集成的支持加密解密及散列算法的 n p e l 单元资源。而且用n p e l 加密解密的流量可以达到5 0 m 胡5 m 之间,这个流量 第一章绪论 可以满足现有的基站系统的百兆流量,基于成本和性能上用i x p 2 3 5 0 实现i p s e e 协 议是比较好的选择,为将来的以太网全i p 接入也提供了安全保证。 自从i n t e l 推出i x p 2 3 5 0 之后,它的高性价比及硬件单元的独特功能让它在网络 安全应用方面得到了广泛的应用,它的高性能特点也得到了广大客户的认可。然 而它们大多都是基于i x p c 语言开发的,它的编译效率跟传统的c 一样不高,占用 的内存也很大,而对于这种嵌入式系统的开发,基于成本的考虑,内存一直都是 很受限,特别是如果要实现本课题的i p s e c 协议的设计需要查找大量的表,而表也 是占用内存一个主要因素,资源利用率将成为影响性能的一个指标。所以基于种 种因素,本设计中的微码开发部分将使用i n t e l 网络处理器特有的比较高效的类汇编 语言来编程和优化内存的算法,可以解决实现复杂协议的效率问题,也可以高效 的利用有限的内存空间,提高资源利用率,这也将在后续的工作中介绍。对于表 的查找,i x p 2 3 5 0 有固件s h a c 单元,通过适当的设置哈希算子可以提高查表速率, 再加上灵活的软件表检索r f c 算法【1 6 1 ,实现证明了它要比文献1 1 1 中的树搜索引擎 效率高的多。 本设计的另一个重要突破点就是能够根据i x p 2 3 5 0 的分层结构特点,将数据流 在微码接收处理中作分流处理,控制面的数据将送往x s e a l e 内核处理,即协议栈, 由于它是基于通用的c p u 处理,将采用高级语言c 来实现,而对于数据面的媒体流 将继续在微引擎m e 中处理,即微码,用汇编语言来实现。这样更能保证处理性能 的高效性,且在最终的实现上也得到了验证。根据本人的工作重点将主要关注微 引擎部分的微码开发。 虽然i n t e l 也推出了i x p 2 8 5 0 ,它和i x p 2 3 5 0 有相同的加密单元n p e 【l ”,比 i x p 2 3 5 0 有更多的并发微引擎,数据转发处理性能上要高于i x p 2 3 5 0 。但是我们没 有采用它:一方面,它的价格比较昂贵,基于它的开发带来的效益并不够理想; 另一方面,i x p 2 3 5 0 在加密解密处理性能上几乎和i x p 2 3 5 0 的性能相同,因为它 们n p e 单元性能基本上是一致的,所以在本文的以太网安全接入平台的设计上我 们将采用性价比更高的i x p 2 3 5 0 。 本文主要工作安排如下: 第一章:介绍课题研究的技术背景、发展状况以及研究内容。 第二章:介绍i x p 2 3 5 0 网络处理器的软硬件结构,并且简单的介绍了资源分 配策略。 第三章:介绍i p s e c 协议体系结构及标准算法。 第四章:详细的介绍使用i x p 2 3 5 0 实现i p s e c 协议的设计方法、流程及解决 问题思路。 第五章:对本设计进行了以太网环境测试,并对性能作了分析。 第六章:对整个设计进行了系统总结。 第二章i x p 2 3 5 0 介绍 第二章i x p 2 3 5 0 介绍 网络处理器n p 是面向网络应用领域的应用特定指令处理器,是面向数据分组 处理的、具有体系结构特征或特定电路的、软件可编程器件。通过灵活的软件体 系提供硬件级的处理性能是n p 的关键特性。在以g p p 和a s i c 瓜s i c 为核心的设 备体系结构阶段,对2 7 层的数据分组采用“存储处理转发”数据分组处 理模式。n p 的出现,标志着设备对数据分组的处理能力从低层处理过渡到高层细 化处理。 i n t e l 网络处理器系列是现在使用比较广泛的网络处理器,主要有i x p 4 2 5 、 i x p l x x x 和i x p 2 x x x 系列。其中i x p l x x x 是第一代网络处理器产品,典型产 品为i x p l 2 0 0 ,主要用于低速的网络应用;i x p 2 x x x 是第二代网络处理器,包括 i x p 2 3 5 0 、i x p 2 4 0 0 、p 2 8 0 0 和i x p 2 8 5 0 ,以适应网络宽带化的趋势。在i x p 2 x x x 中,通过提高m e ( 微引擎) 、x s c a l ec o r e 的时钟频率以提高处理速率,采取 m u l t i m a s t e r ( 多主控设备) 和m u l t i t a r g e t ( 多从属设备) 的分布式处理结构、 m u l t i - p r o c e s s i n g ( 多微引擎) 并行处理结构、m u l t i t h r e a d i n g ( 多线程交换技术) 、 d i s t r i b u t e dc a c h e ( 分布式缓存) 结构以及其他专用的硬件结构和特殊的软件技术 增强并行处理能力,减小了存储器访问时延,有效地解决串行数据流处理问题 ( s s p p , s e r i a ls t r e a mp r o c e s s i n gp r o b l e m ) ,提高串行处理效率,较好的满足了开发者 对于网络处理的要求【s 】。 本文是采用i x p 2 3 5 0 作为开发板,一个原因是它拥有i n t e l 第二代处理器的 高速的处理性能及并行处理结构,再有它的硬件版上集成了n p e l 固件单元,能够 支持标准的加密认证算法,最后一个原因就是它的性价比很高,在单一的芯片中 综合了数据面板和控制面板处理能力,是英特尔首款采用9 0 纳米制造技术构建的 网络处理器,是一款比较实用的板子,广泛的应用于以太网接入平台和边缘应用。 2 1i x p 2 3 5 0 的硬件结构 i x p 2 3 5 0 包括一个x s c a l ec o r e 、4 个m e 和2 个n p e 。目前有4 个版本的产 品,根据x s e a l e 和m e 频率不同,可分为6 0 0 3 0 0 m h z 、9 0 0 6 0 0 m h z 、9 0 0 9 0 0 m h z 和1 2 0 0 6 0 0 m h z 。i x p 2 3 5 0 接口丰富,可以满足各种应用需要,包括2 个g e 、s p i 3 、 u t o p i c 、m s f 、p c i 、1 6 个e 1 以及h d l c 处理等【1 4 】。图2 1 是i x p 2 3 5 0 的硬件 结构图。 6 基于网络处理器1 x p 2 3 5 0 的i p s e c 协议实现设计 圈2 1i x p 2 3 5 0 硬件结构幽 2 1 1i n t e lx s c a l ec o r e i n t e lx s c a l ec o r e 是网络处理器核心处理器,它与a 砌订有类似结构的3 2 位通 用r i s c 处理器,它主要负责控制面的处理任务,执行系统芯片初始化工作、系统 控制管理、运行路由协议栈、更新路由表等。还负责异常数据包的处理。这个核 心处理器和微引擎或其他单元共享内存,这样方便了微引擎或n p e l 单元与x s c a l e c o r e 的通信。本论文设计将使用的频率是9 0 0 m h z ,也将它用来初始化工作,比如 初始化n p e l ,各个索引表的建立。 2 1 2 m e m e ( 微引擎) 是i x p 2 3 5 0 的核心部件,也是i x p 2 3 5 0 取得线速处理性能的关键 所在,负责绝大部分的数据面的数据包处理任务。m e 能访问i x p 2 3 5 0 中的所有共 享资源:s r a mc o n t r o l l e r 、d r a mc o n t r o l l e r 、m s f 、s h a c 以及n n r 。i x p 2 3 5 0 中有4 个微引擎m e ,可以并行工作,每个m e 中有8 个硬件线程t h r e a d ,线程之 间是轮询执行。m e 提供软件可控的多线程运行,线程的交换可以将存储器访问时 延隐藏在指令执行时间的后面,以充分利用m e 的m i p s 性能,这是i x p 2 3 5 0 与 通用处理器一个显著区别,也是在网络处理方面优于通用处理器的关键因素之一。 每个m e 内有2 5 6 个通用寄存器、5 1 2 个传输寄存器、1 2 8 个邻居寄存器、6 4 0 x 3 2 b i t 本地存储器等存储单元,以及e x e c u t i n gd a t a p a t h 、c a m 、c r cu n i t 及b y t e a l i g n e r 等指令执行单元,以及l o c a lc s r 等。它内部有8 k 的c o n t r o ls t o r e 用来存 储代码。本设计中m e 的频率是6 0 0 m h z 。 第二章i x p 2 3 5 0 介绍 2 1 3 n p e n e e ( 网络处理器引擎1 是i x p 2 3 5 0 的另一个高性能,多线程的处理器,可以分 担x s e a l ec o r e 的处理,比如m i i 、c r c 校验、a e s 、d e s 3 d e s 、s h a 1 和m d 5 。 每个n p e 是由一个可编程的状态机内核、存储器和一些协处理器组成。n p e 的内 核的主频是2 0 0 m h z ,有自己并行的指令存储空间和数据存储空间。i x p 2 3 5 0 有两 个n p e ,分别为n p e 0 和n p e l ,这两个n e e 分别用于不同的用途。n p e 0 的硬件 协处理器支持从l ,h d l c 和h d m a ,这些都是软件可控的。n p e l 跟n p e 0 一 样是专用处理器,它的硬件协处理器支持两个1 0 1 0 0 以太网m a c 、d e s 、3 d e s 、 a e s 、s h a 1 和m d 5 等,这些也是软件可控的。他们都有丰富的接口,都可以通 过c p p 协处理器经过总线与m e 和x s c a l ec o r e 通信,也可以通过总线访问s r a m 、 d r a m 、m s g s r a m 、s h a c 、p c i 、b r i d g e 和m s f 等等。本论文的加密解密算 法就要依靠n p e l 这个固件来完成,在使用它做运算前需要通过x s c a l ec o r e 对它 进行初始化操作。 2 1 4d r a mc o n t r o l l e r d r a mc o n t r o l l e r ( d r a m 控制器) 是i x p 2 3 5 0 用于接口d r a m 存储设备,控 制、管理其它功能单元对d r a m 存储设备的访问、操作。它支持一个d r a m 通 道,存储数据带宽为6 4 b i t s ,d r a m 存储设备最大的存储空间为2 g b ,用于存储 数据包、路由表等大型的数据结构,本设计中需要的表大部分都是存储在这里。 它的主要特点就是存储空间大,但访问时延也比较大。d r a m c o n t r o l l e r 使用c m d b u s 接收来自主控单元的存储器访问命令,使用p u s h b u s 将d r a m 中的数据推送 到主控单元中,使用p u l lb u s 将主控单元中的数据拉入d r a m 存储设备中。主控 单元对d r a m 的数据读写是以8 字节( q u a d w o r d ) 为单位的,一条指令可以读写连 续的8 1 2 8 b 数据。 2 1 ,5s r a mc o n t r o l l e r s r a mc o n t r o l l e r ( s r a m 控制器) 是i x p 2 3 5 0 与外部s r a m 存储设备的接口单 元,用于管理和控制m e 、x s c a l 、p c im a s t e r 等主控单元对s r a m 存储设备的读 写操作。s r a m 存储设备采用q d r 存储技术,以提高数据存取速度,它除了支持 一般的读写操作外还支持原子操作、r m w ( 读修改,写) 操作,由于集成了q a r r a y 等功能强大的硬件结构,它还支持对于l i n k e dl i s t ( 链接链表) 、硒n gb u f f e r ( 环缓存) 等复杂数据结构的自动操作。s r a m 存储设备通常用于存储诸如t r a n s m i t q u e u e ( 发 送队列) 、p a c k e td e s c r i p t o r ( 数据包描述符) 、b u f f e rl i s t ( 缓冲区链表) 等数据结构, 本设计中的少部分表的设计也是存储在这里。s r a mc o n t r o l l e r 支持两个存储通道 ( c h a n n e l o 和c h a r m e l l ,分别对应于q d r - s r a m 和m s g s r a m ) 。s r a m 的数据逻 基于网络处理器i x p 2 3 5 0 的i p s e c 协议实现设计 辑宽度为4 字节( l o n g w o r d ) ,物理宽度为2 字节( w j r d ) 。s r a mc o n t r o l l e r 的地址 总线为2 4 b i t s ,最大的地址空间是6 4 m ,最高频率可达2 0 0 m h z 。i x p 2 3 5 0 中主控 单元对于s r a m 的读写操作数以4 字节为单位的,一条微引擎指令可以读写1 1 6 个l o n g w o r d 。 2 1 6s h a c s h a c 单元包括s c r a t c h p a dm e m o r y ( 中间结果缓存) 、h a s hu n i t ( 哈希单元) 和c a p ( 控制状态寄存器访问代理) 三部分。s c r a t c h p a dm e m o r y 为i x p 2 3 5 0 的片内 存储资源,访问速度快,存储容量为1 6 k b ,支持对于r i n gb u f f e r 的快速操作,常 用于存储需要在线程间进行传递的数据,用于线程间的通信。本设计中需要各个 r i n g 都是放到这里的,可存放1 6 个r i n gb u f f e r 。一次可以从s c r a t c h 中读写1 6 个 l o n g w o r d 。h a s hu n i t 支持h a s h 运算,产生哈希结果,用于加速路由表的查找, 本设计中需要的查表运算都是基于这个单元的。它支持4 8 b i t s 、6 4 b i t s 和1 2 8 b i t s 的哈希运算。c a p 控制管理主控单元对i x p 2 3 5 0 中的c s r ( 控制状态寄存器) 的 访问。c a p 支持c s r 的读、写和快速写等操作,可以采集i x p 2 3 5 0 的工作状态及 对工作模式的设置。 2 1 7m s f m s f ( 介质与交换结构接口) 是i x p 2 3 5 0 与外部物理层设备、交换结构的接口 单元,是数据出入i x p 2 3 5 0 的窗口。接口的协议u t o p i a ( a t m 格式1 、 s p i 3 ( p o s o p h y 格式,是本设计支持的协议) 和c s i x 都是标准协议,可以方便的 与其他厂家的产品进行接口。与一般的网口不同,在将数据接收进来之后,m s f 并不是直接将其送入d r a m 的,而是先将数据缓存到接收缓存( r b u f ) 中的,然后 再用相应的指令将其写到d r a m 或是m e 中,这样可以避免m e 从d r a m 读数 据的访问时延。m s f 的接口总线宽度为3 2 b i t s ,支持1 3 2 b i t j l 匝道,2 x1 6 b i t 通道, 4 8 b i t 通道( 本设计支持的通道,s p h y 模式) ,1 1 6 b i t 通道和2 8 b i 们蓖道。它 最多可以支持3 2 个虚拟通道,s p h y 和m p h y 两种模式。 2 1 8p c ic o n t r o l l e r p c ic o n t r o l l e r ( p c i 控制器) ,i x p 2 3 5 0 采用了标准的p c i v 2 2 控制器来接口控 制面处理器。系统管理处理器、其他i x p 网络处理器及p c i 网卡等符合p c i 规范 的设备。支持的总线宽度为3 2 b i t s 和6 4 b i t s ,频率为3 3 m h z 和6 6 m h z 。它包括3 个d m a 通道,每一个都可以将数据从d r a m 移到p c i 或是反过来。p c i 控制器 可以通过软件控制使能字节交换功能,方便数据的字节对齐方式( e n d i a n ) 。 第二章i x p 2 3 5 0 介绍 9 2 2 基于i x p 2 3 5 0 的并行处理 并行处理( p a m l l e l p r o c e s s i n g ) 和多线程( m u l t i - t h r e a d i n g ) 是i x p 2 3 5 0 取得高性 能的关键所在,使得处理器的资源得到了充分的利用,同时克服了存储器访问时 延带来的不利影响,因此i x p 2 3 5 0 非常适合高速的网络处理。 2 2 1 微引擎问的并行处理 m e 之间的并行处理是i x p 2 3 5 0 内部的重要并行方式之一。各个m e 之间有 两种配置方式:串行工作( c o n t e x t p i p e l i n e ) 和并行工作( f u n c t i o n p i p e l i n e ) 。串行工作 是指类似一种管道的处理方式,为了提高数据报的处理速度,将一项复杂的工作 分成几个部分( 模块) ,由多个微引擎分别完成其中的一个部分的工作方式,这样每 个数据包都要经过几个微引擎才能完成一项任务。而并行工作是指多个微引擎互 不相关,并发的执行一项任务,这个每个数据包只经过一个微引擎就可以完成一 项任务。同时,i x p 2 3 5 0 还支持两种方式混合使用的工作机制,这大大增加了系统 的灵活性。各个模块之间的通信可以通过s c r a t c h p a d 或信号量进行通信,这样能 够匹配模块间的处理速度,可以减少模块阃耦合,尽可能降低每个模块之间的依 赖。 本设计中将收发处理部分放在m e 0 中处理,数据包拆分重组部分放在m e l 中处理,i p s e c 处理部分放在m e 2 中处理,流量控制部分放到m e 3 中处理,形成 了流水线的处理过程。就是将整个数据处理分成几个子模块分布在不同的微引擎 中,几个微引擎可以并行的处理几个子模块,而子模块之间需要通过包描述符进 行串行处理,同一微引擎内部可能会处理几个模块,如m e 2 中的封装处理和i p s e c 处理就是两个宏模块,这两个模块是分配到不同的线程上,通过轮询的方式和线 程交织的方式处理。 2 2 2 微引擎内部的并行处理 各个微引擎内部为了提高处理速度,引入了线程机制,每个微引擎有8 个线 程,i x p 2 3 5 0 一共有4 8 个线程,每个微引擎内部的线程从o 7 编号。在正常的 数据处理过程中,为了保证有效的线程切换,每个线程都被分配了独立的寄存器、 计数器等运算单元,当发生线程切换时,无需像常用的c p u 切换所做的将寄存器, p c 进行压栈的操作( 以及激活线程的出栈操作) 。所以避免了线程切换时必需的 现场保护机制,线程切换时的开销极小,就像是在一个线程中的跳转操作,大大 提高了处理能力。此外,在一个线程进行运算处理的同时,允许其他线程进行外 设的i o 访问,这样使由于i o 操作可能引起的处理器利用率低下的问题也得到了 充分的解决。 就线程的运行机制上来说,每个线程都有4 个状态,分别为i n a c t i v e ( 停止) 、 1 0 基于网络处理器i x p 2 3 5 0 的i p s e c 协议实现设计 r e a d y ( 就绪) 、e x e c u t i n g ( 执行) 和s l e e p ( 睡眠) 四个状态。一个微引擎内部的数据处 理过程中,本质上就是各个线程频繁的在这4 个状态间互相切换的具体表现。线 程切换由硬件结构提供支持,由软件指令来控制,线程切换的目的是将存储器访 问时延隐藏在指令执行时间后面,以充分利用微引擎的m i p s 性能。 2 2 3 微引擎与x s c a l e 和n p e 的并行处理 i x p 2 3 5 0 中的x s c a l e 核的执行采用同步方式,在同步方式下,和x s c a l e 是串行工作的,只有从x s c a l ec o r e 得到执行结果,m e 才执行一条指令。因为访 问x s c a l e 需要等待返回的结果,因此可在一个微引擎上同时执行多个线程,一旦 微引擎执行了同步协处理器指令,而x s c a l e 又不能立即返回结果时,m e 可以进 行线程的切换,由另外的就绪线程开始执行,这样可以提高处理器间的并行性。 这样,在同一时刻,m e 和x s c a l e 处理的就是报文的不同阶段的任务。 m e 和n p e 的同步处理方式,与和x s c a l e 的同步处理方式相似。 2 t 3 基于i x p 2 3 5 0 的软件结构 与其他软件一样,i x p 2 3 5 0 的软件也是采用了层次结构来进行组织。图2 2 是 一个典型的i x p 2 3 5 0 软件架构应用示意图。在整个软件流程中,x s c a l ec o r e 都是 作为初始化和管理n p e 和m e ,作为慢通道控制流处理,或其他的统计任务。x s c a l e c o r e 和资源管理器也为n p e 和m e 提供驱动处理i l ”。x s c a l e 内核的开发是基于高 级语言c 的。n p e 和m e 都是基于汇编语言的,只是l m e l 提供了n p e 的算法驱 动代码,不需要用户开发,而m e 上的微码需要用户根据不同的应用需要自己开 发。m e 是负责数据面处理,也称之为快速通道,数据首先被接收进来,然后经过 一系列的前向处理,比如:分片重组,加密解密,数据包过滤等等,最后经过资 源调度被转发出去。n p e l 主要的作用就是为数据提供加密认证服务。 下面简要的介绍一下i x p 2 3 5 0 的有加密解密过程的数据处理流程: ( 1 ) m s f 从m a c 接收m p a c k e t ( 分片或是单片) 。并缓存到r b u f 中; ( 2 ) m s f 创建关于m p a c k e t 的r s w ( 接收状态字) 【1 4 】,并将r s w 传递给某个 空闲线程: ( 3 ) 该线程根据r s w 判断m p a c k e t 是否为s o p ( 第一个分片) ,e o p ( 最后一个 分片) 或是m o p ( 中间分片) ,如果是s o p ,将p a c k e th e a d e r ( i p 报文头) 从r b u f 读 入到g p r s 或是传输寄存器x f e rr e g ; ( 4 ) 该线程通过命令d r a mc o n t r o l l e r 将r b u f 中的m p a c k e t 移入d r a m , 对包头过滤,再重组成完整的p a c k e t ,p a c k e t 在d r a m 中存放的地址是由s i 认m 中的b u f f e rf r e e l i s t ( 存放包描述符) 来指定; ( 5 ) 该线程根据p a c k e t h e a d e r 中的t y p e 字段,p r o t o c o l 字段对包进行分类, 第二章i x p 2 3 5 0 介绍 然后进行查表操作,获取关于p a c k e t 的d e s c r i p t o r ( 包描述符) : ( 6 ) 线程通过p a c k e td e s c r i p t o r 取出数据流信息,据此对数据包进行处理, 比如:口头的处理,i p s e c 头的处理,此时需要m e 和n p e 的同步处理,对数据 加密解密,i p s e c 协议头处理完之后就可以m a c 头封装( 如果是反向处理过程在 m a c 头封装之前还需要做分片的处理) ; ( 7 ) q m ( 队列管理模块) 将p a c k e td e s c r i p t o r 通过e n q u e u e ( 将数据包加入发送 队列操作) 操作加入到相应的发送队列中( 发送队列存放到s r a m 中) : ( 8 ) 1 xs c h e d u l i n g ( 发送调度模块) 执行相应的调度算法( 本设计是按q o s 的优 先级来调度) 进行数据包发送调度操作,向q m 模块发送d e q u e u e 请求; ( 9 ) q m 模块执行d e q u e u e ( 将数据包从发送队列取出操作) ,从发送队列中取 出一个p a c k e t 交给t r a n s m i t 模块发送,发送模块将p a c k e t 从d r a m 移入到t b u f ; ( 1 0 ) m s f 将t b u f 中的p a c k e t 发送到s f ( 交换结构) 。 氍黼器 n pi p s e

温馨提示

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

评论

0/150

提交评论