共1条
1/1 1 跳转至页
数据包处理方法和解决方案
数据包处理是指对通过数字通信和网络设备的数据包进行处理。它是我们今天经常听到的网络处理的关键功能。有几种类型的半导体器件可以用于数据包处理。数据包处理即存在于网络核心,也存在于接入/边缘网络(图1)。设备在网络中的位置以及服务供应商的需求决定了所需要的数据包处理的类型和数量、线路速率和功能。这又决定了数据包处理的正确方法,以及半导体器件的选择。
[IMG]http://www.eedesign-cn.com/article/design/images/021127.1.jpg[/IMG]
图 1 网络概观
数据包处理
对于网络处理,业界已经有大量的行动试图(重新)定义网络处理的含义。考虑到这一点,为了在我们的数据包处理方法讨论过程中避免混淆,让我们首先定义本文中将用到的术语。网络处理(数据包处理)由下列典型线路卡所包含的五项基本功能(参见图2)组成:
[IMG]http://www.eedesign-cn.com/article/design/images/021127.2.jpg[/IMG]
图2:线路卡上的数据包处理功能
·数据包拆卸和成帧
·数据包分类
·数据包修改
·业务/流量管理
·队列和策略管理
还有两项额外的功能也做为网络处理的一部分考虑:
·安全性处理
·控制和管理
一些设计人员经常仅将前五项功能称为数据包处理,而把所有七项功能做为网络正理。我们不按这种方式区分,并在本文中同时使用网络处理和数据包处理来指称所有七项功能。然而,我们将把网络处理与网络处理器(NP)区别开来。网络处理是指上面提供的功能,而网络处理器是完成网络处理的特殊半导体器件。
数据平面和控制平面处理
数据包处理由数据平面处理和控制平面处理组成。数据平面处理是指对正常数据数据包的处理,而控制平面处理包括异常处理,以及管理路由算法、进行监视统计、提供策略规则和完成网络管理功能。
有多种方法可以实现数据平面处理,也有多种半导体器件可以采用,我们将在下面进行详细的探讨。目前,大多数数据平面处理半导体器件都包括一个或多个可用于控制处理和管理的嵌入式处理器。
相当通用的RISC架构,如PowerPC或MIPS处理器,在控制平面处理方面具有软件工具熟悉的优势,可以利用用户多年的使用经验。然而,没有多处理器方案或硬件加速方案的支持,这些处理器在面对太多异常数据包或复杂的管理功能时会很快过载。
数据包处理的多种方法
在由新技术和商业创新驱动的动态网络市场上,变化是唯一不变的东西。因此,这一市场中的厂商需要以较低的成本适应快速的变化才可以保持赢利能力。这推动了数据包处理这一网络设备的基本功能从固定解决方案向可编程解决方案的转变(参见图3)。有多种半导体器件解决方案可用于网络处理,但这些器件可大致分成ASIC和可编程器件两类。固定和可编程器件在数据包处理方面的主要优势与它们对任何其它应用一样。图4显示出比较流程的每种类型固定功能/可编程器件在性能/上市时间参考平面中的优点。成品可编程解决方案主要有两种类型—网络处理器(NP)和FPGA。NP和FPGA都是可编程的。NP提供的是以处理器为中心(软件为中心)的可编程能力,而FPGA提供的是以硬件为中心的可编程能力。我们将详细考察这三种方法。
[IMG]http://www.eedesign-cn.com/article/design/images/021127.3.jpg[/IMG]
图 3 从固定功能IC向可编程数据包处理解决方案的转变
[img]http://www.eedesign-cn.com/article/design/images/021127.4.jpg[/img]
图 4 不同类型半导体器件的优点
·ASIC 方法:高性能固定功能,高成本
·RISC 方法:具有优化处理器引擎的可编程成品器件,可提供灵活性和性能。软件为中心的用户可编程能力。网络处理器(NP)即属此类。
·FPGA 方法:具有高度并行逻辑结构的可编程成品器件,可提供用户定义的性能和灵活性组合。他们还可提供防止黑客入侵所需要的代码安全性。
除了这三类主要的器件外,还有用作支持器件的专用存储器(SDRAM、SRAM、CAM和FCRAM)和ASSP(专用标准产品)。市面上几种成品ASSP提供系列协处理功能,以提高数据包处理的性能和克服处理瓶颈。网络处理ASSP市场的存在是由于某些功能用上面3种方法的任何一种都不能高效率地实现。如果您在系统中增加协处理和支持器件的数量,灵活性会受到很大影响。然而,如果希望您的产品尽快上市的话,就不可能完全避免协处理器。关键是在不牺牲上市时间的情况下延长产品在市场生存时间,并尽量减少使用的协处理器的数量。
ASIC
ASIC可为任何固定功能提供高性能,但却几乎没有灵活性和可扩展性。ASIC需要很高NRE成本和较长的设计时间,从而使产品上市时间延长并对营收产生负面影响。然而,ASIC对于大批量应用来说成本上比较经济,如果确信产品市场变化相对较小,那么选择ASIC就很理想。不幸的是,变化是这一市场上唯一不变的东西。考虑控制处理,对于数据包异常处理来说,ASIC逻辑成本很高(也有非常例外的情况)。ASIC正被逐渐替代,网络行业现在普遍采用可编程方法。
RISC (网络处理器)
在这种方法中,利用RISC处理器结构进行数据包处理。支持这一方法的器件称为网络处理器,并且是软件可编程的。网络处理器做为设计网络设备的现成商用器件而发展起来,其目标是提供网络处理所需要的灵活性和可扩展能力以及足够的性能。几家大型和小型半导体供应商加入了这一竞争行列,为市场提供了具有终极灵活性和较短上市时间的线速度网络处理器。多数NP包括多个优化的嵌入式RISC CPU(图5)以提供可编程能力和用于通用数据包处理功能的类似ASIC的硬件电路。其设计理念是利用硬件电路处理通用第2层和第3层功能,而利用RISC引擎进行主处理。
[img]http://www.eedesign-cn.com/article/design/images/021127.5.jpg[/img]
图 5 典型网络处理器架构
根据供应商不同,NP中的多处理器引擎配置成不同的架构以优化关键的路径延迟。请参见图6。
· 流水线结构:多个优化处理器以串行方式连接,每个处理器处理一个子任务
· 超级标量结构:多个优化的处理器以并行方式连接,每一个处理一个完整的任务
· 混合结构:流水线和超级标量结构的结合
[img]http://www.eedesign-cn.com/article/design/images/021127.6.jpg[/img]
图 6 NP中的处理器配置
在这些配置中,每个RISC引擎针对特定的数据包处理功能而优化。然而,这些优化使得专用的RISC引擎不能再以高级语言编程,从而迫使用户使用微代码/汇编语言。这一方法非常麻烦,并且削弱了提供灵活性和上市时间优势这一网络处理器存在的根本基础。NP供应商已经意识到这一问题,并试图通过提供预封装的可以由最终用户根据需要容易地进行定制的软件来改善可用性。几家网络处理软件公司的出现就完全是为了解决NP的这一问题。
FPGA
FPGA对任何高速并行数据处理都非常理想,而且具有非常的灵活性和可扩展能力。现已成为可编程设计事实选择的FPGA器件现在又悄然增加了许多网络设备友好的特性以进入这一市场。通过在平台PFGA中基本功能中增加网络系统所要求的特性,这些器件对NP形成了强烈的竞争。例如,Xilinx Virtex-II Pro FPGA包含高性能可编程结构、嵌入式PowerPC处理器和3.125 Gbps收发器。通过网络友好的功能(图7),平台FPGA可提供高性能数据和网络控制处理功能。这使他们成为WAN/MAN/LAN网络中专用网络处理的理想候选器件,并将在灵活性/性能间进行折衷的控制权交到用户手中。对于在第2层/第3层桥接不同类型的业务和实施高速功能(如安全性处理)来说,FPGA成为OEM厂商的首选。然而,与NP不同,PFGA没有内置的网络处理功能,因此,为了实现实现数据通道和控制通道功能,必须由用户利用硬件描述语言(HDL)、智力产权核心(IP)和C语言对其进行硬件编程。
[img]http://www.eedesign-cn.com/article/design/images/021127.7.jpg[/img]
图 7 Xilinx Virtex-II Pro FPGA
现在,已经有用于平台FPGA的网络处理核心和数据包处理参考设计。此外,Virtex-II Pro FPGA支持所有流行的并行(单端和差分)和串行系统接口标准,从而使其可容易地实现与所有协议的接口,可连接线路卡上的任何器件。
因此,您如何为您的系统选择正确的器件或器件组合?为此,您需要确定系统要求并对其进行优先排序。我们下面讨论您应当考虑到的一些通用参数。
选择正确的解决方案
对于任何数据包处理解决方案,为了选择正确的解决方案都需要考虑几个因素。尽管有些因素依赖于具体应用,但也有一些需要考虑的共同因素。
网络位置
根据数据包处理设备在网络中的位置,处理速度和线速度要求都有不同。核心设备线路卡工作在非常高的线速度(40 Gbps,有时为 10 Gbps),因此除了数据转发外几乎没有为数据包处理留下多少时间。另一方面,边缘设备工作在相对较低的线速率(约 1 Gbps),这儿的处理任务比较密集,主要完成内容相关的处理和深度数据包处理。此外,边缘设备经常还需要处理TCP/IP端接。总的来说,设备离消费者越近,处理任务就越密集。
事实证明,包括NP和FPGA在内的可编程解决方案对核心设备和边缘设备都是很理想的。在网络核心,他们在连接不同协议提供所需要的性能方面具有优势。FPGA支持边缘设备和存储网络,为它们提供多种协议支持,以及进行内容相关(content-aware)的处理的能力。
上市时间(Time-to-Market),在市场生存时间(Time-in-Market)
由于存在众多不同的竞争厂商,产品第一个进入市场意味着获得更好的营收。图8显示出上市时间和营收间的典型关系。然而,灵活性不应该有代价 —— 如果灵活性需要更长的设计时间和次于最优的性能,那么它就反而违背了其最初保证更短的上市时间的承诺。
产品在市场生存时间是另一个重要的参数。可编程解决方案的可扩展能力支持随着时间对产品进行升级,从而可延长产品在市场生存的寿命。这可使供应商在更长的时间内从其产品中获得营收,同时通过向其客户提供新的服务甚至有可能创造一种新的营收产生机制。
虽然FPGA和NP提供了类似的灵活性,但FPGA提供可扩展能力的同时并没有牺牲性能。这是由于其硬件为中心的可编程能力。例如,Xilinx Virtex-II Pro FPGA基于标准的平台架构,并以其逻辑结构为基础集成了嵌入式收发器和处理器等部件。客户可以快速从1 G 以太网扩展为 10 G 以太网,以及未来的40 Gbps (OC-768)标准。
深度数据包处理
虽然第2层和第3层处理可利用ASIC容易地完成,但更深的第4层或第5层的数据包处理则需要区分相似业务类型的数据包优先级别。例如,如果您需要根据业务类型决定提供的服务级别,那么深度数据包处理就非常关键。服务供应商不仅需要区分一个视频数据包流和一个数据数据包流的优先级,还需要区分两个不同视频数据包流的优先组—其中‘A’公司付费较低,而‘B’公司付费较高。
可编程逻辑解决方案可以对此类数据包进行深度处理。ASIC不能很好地完成深度数据包处理是因为他们不能很好地处理变化的参数。例如,如果有新型业务需要处理,ASIC不能适应这些新的要求。在NP和FPGA之间,NP可以很好地以低成本处理非经常的深度处理,而FPGA则特别适合直到更高层的高性能数据处理。此外,如果采用NP进行深度数据包处理则需要多个NP,但单块FPGA即可完成这一工作。NP是将需要深度处理的特殊数据包做为异常来处理的,这一过程通常需要大量处理器资源。异常处理的速度只能通过采用多个NP来改善。这主要是因为NP处理是基于RISC的,而FPGA则采用硬件并行处理。多个NP带来硬件和软件划分的挑战,并增加了软件复杂性,更不用说系统延迟和功耗了。
接口标准
在网络行业,新的协议和接口标准每天都在涌现。看一下过去5年,我们可以发现为了提高带宽和性能,接口标准从共享总线接口向源同步并行接口,再向基于时钟数据恢复的串行接口的转变(图 #)。此外,电子和光学系统接口和协议也在变化。事实上,每几个月都有一种新标准出现。这些变化极大影响了设备的寿命。
基于ASIC的解决方案不能适应接口和协议的任何变化。尽管NP可处理较小的协议变化,但它们却不能随着接口标准的变化而扩展。另一方面,平台FPGA支持众多并行和串行标准,如RapidIO、HyperTransport、 XSBI、 SFI-4、 XAUI、 Serial RapidIO、Infiniband等。如此大的灵活性使系统供应商可桥接现有标准和新兴标准,提供更长的产品寿命和可扩展能力。
[img]http://www.eedesign-cn.com/article/design/images/021127.8.jpg[/img]
图 8 上市时间对营收的影响
软件
软件是网络设备的一个整体部分,主要完成数据平面和控制平面处理功能。针对网络设备而设计的ASIC器件通常由嵌入式PowerPC或MIPS处理器组成。采用以处理器为中心的设计其主要优点在软件方面点。控制平面软件是许多OEM的主要增值点所在,它可帮助OEM与竞争厂商区别开来。因此,代码重利用能力对于上市时间和老产品支持是必须的。C代码相对更容易开发,并可更容易地扩展/移植到新的处理器。DSP(数字信号处理)设计人员和系统设计师非常理解这一点,并在代码重利用而不是性能更为关键的时候优先采用DSP处理器。
不幸的是,由于NP的代码大多数是不可移植的,要么是专用的汇编代码或者是太简化的不适合移植的定制C。汇编代码是面对特定的处理器的,并需要较长的开发时间,而且还带来被锁定在某一供应商的风险。事实上,针对某一供应商的NP设计的代码可能甚至都无法移植到来自同一供应商的未来NP产品中。NP行业已充分意识到这一点,并正在致力地通过标准化工作重新赢得设计人员的信任。另一方面,利用FPGA时您获得了软件可扩展能力,但却面临用HDL或C编写数据平面处理处理,和利用C代码进行控制平面处理的挑战。采用专用的汇编代码来实现功能是危险的,这比利用业界标准的HDL和C进行设计更为困难。通过在象Virtex-II Pro器件这样的平台FPGA器件中集成业界标准的嵌入式IBM PowerPC处理器,保证代码移植性变得更容易。一些FPGA供应商(如Xilinx)提供基于一个平台、一级工具集的设计方法,从而支持软件在所有FPGA器件间的无缝移植。
功耗
根据设备在网络中的位置,功耗可能会成为一个很大的问题。线路器上器件(包括NP、FPGA、协处理器ASSP、高性能存储器等)数量的增加都会导致总体功耗的累积增加效应。就系统可扩展性和性能来说,这可能会变成真正的梦魇。对于给定的要求来说,ASIC可提供更好的功耗表现,可编程解决方案无法与之相比。然而,考虑到ASIC在所有其它方面的限制,可变的可谐和解决方案是必须的。基于NP的系统需要多个协处理器ASSP和超快速存储器来解决处理器为中心的模式所带来的内在限制,这大大增加了功耗。基于FPGA的解决方案需要极小的协处理器并采用低功耗的SDRAM存储器,因此可以满足大多数系统的要求,并保证系统功耗比较低。
数据安全性
加密是安全数据网络的关键,而在日益强调安全性的今天更上如此。IPSec在VPN中用于网络安全性,它同时需要控制通道和数据通道支持。控制平面和关键的交换可以利用运行在RISC引擎(如PowerPC处理)上的软件来实现。但数据通道需要以Gbps线速度进行处理的AES和三次DES加密/解密方案,而这是软件所不可能达到的。
虽然数据安全性可在ASIC中实现,但关键的问题是跟上不断改进的密钥方案和新算法的变化。NP可以处理安全性问题,但速度难以忍受地慢。因为NP无法进行高性能网络安全性处理,市面上出现了几款安全性协处理器(ASSP),但却只是增加了器件数量而无法提供所需要的性能或灵活性。平台PFGA器件为线速度数据处理和针对网络安全性的灵活控制处理提供了一个单芯片解决方案。嵌入的PowerPC处理器和FPGA中数学功能友好的可编程阵列结构是实现高性能安全性处理的关键要素。来自FPGA和IP供应商的AES和三次DES算法智力产权(IP)核心可使设计任何更为简单。
保护设备免受恐怖主义分子和黑客的攻击
ASIC解决方案相当可靠,而可编程解决方案却比较容易受黑客攻击。想象一下如何整个NP功能都可被恐怖主义者和黑客以软件方式编程的话,其破坏性会有多大啊!如果恐怖主义者可随意修改软件,他们就会对经济造成严重的破坏。平台PFGA,如Virtex-II Pro器件为编程位流提供了内置的三次DES安全性。这使得编程后的FPGA可免受毁灭性的攻击。
支持VPN和策略的2.5Gbps线路卡设计实例
为了设计一个支持VPN和策略的2.5 Gbps线路卡解决方案,主要的考虑因素包括查找和分类、加密/解密以及队列/业务管理。设计的目标是尽量减小功耗和器件数量,同时使灵活性和性能尽可能高。为达到这些目标,需要仔细考虑数据包流和所需要的处理级。线路卡入口-出口通道上的基本决策流程示于下表。根据这一流程,线路卡的主要单元示于图9中。
[img]http://www.eedesign-cn.com/article/design/images/021127.9.jpg[/img]
[img]http://www.eedesign-cn.com/article/design/images/021127.10.jpg[/img]
最终的OC-48解决方案仅需要三块FPGA和三个VLIW处理器,以及SDRAM器件,而性能和灵活性都达到了一个新的水平。
结论
选择合适的数据包处理方法时,整个解决方案必须考虑到上面所讨论的问题以及系统特殊的需求。最后,正确的器件组合依赖于设备和最终客户的要求。基于前面所定义的参数和提供的例子,基于FPGA的解决方案提供了高性能的数据包处理解决方案,以及最大的灵活性、可扩展能力和低系统功耗。
作者简历
文Anil Telikepalli,Xilinx公司芯片解决方案营销经理
Anil Telikepalli获得了美国肯塔基大学的电子工程(VLSI设计)硕士学位,以及印度Osmania大学的电子工程学士学位。他曾工作于不同的设计和开发职位,并持有高级乘法器结构方面的一项专利。最近他在Xilinx公司从事IP解决方案的技术营销工作。
关键词: 数据 包处理 处理 方法 解决方案 进行 网络 功
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |