(国防科学技能大学 机电工程与自动化学院,湖南 长沙 410073)
:网络流量分类技能为网络做事供应有力保障,在网络行为剖析和网络监管方面发挥主要浸染。设计并实现了一种基于FPGA+TCAM架构的网络分流系统,接入高速网络旗子暗记,规复数据流信息,并对其进行分流管理。办理了传统网络分流系统接入速率不高,分流效果差的问题。末了对系统平台进行了测试,测试结果表明,该系统具备在高速网络环境下数据流实时分流处理的能力。
:网络流量;分流;三态内容可寻址寄存器;现场可编程门阵列
网络流量分类技能是指将稠浊有各种运用的流量,按其干系特性进行分类的技能。网络流量分类一贯是学术界和家当界关注的重点之一。对学术界来说,网络流量分类是高性能网络协议和运用设计的根本;对运营商来说,网络流量分类是网络运营管理、网络发展方案、网络流量调度和高效能业务前瞻的依据[1] 。因此,进行网络流量分类干系领域的研究具有主要的理论和现实意义。但是,传统分流设备由于不能适应高速网络环境,导致处理效率和准确率不高。传统设备的缺陷一贯制约着网络流量分类技能研究的发展。因此,设计并实现高接入速率、高处理效率的分流系统迫不及待。
网络流量分类技能分为软件和硬件两种紧张实现办法。已有的软件算法包括:(1)键树构造的分类算法:包括分层树和扩展树两种构造。分层树构造查找时的回查操作导致其查找速率变慢;扩展树构造又由于重复复制大量路径致使算法的空间占用量很大。(2)打算几何学点定位算法:利用这种思想演化而来的各种软件算法也是目前相对较好的算法,如BV、HiCuts、RFC以及改进型BV算法(如ABV、AFBV等)等。其利用不同的技能提高了网络流量的处理速率,但是存在占用大量存储空间的缺陷[2]。
硬件算法紧张以基于三态内容可寻址寄存器(Ternary Content Addressable Memory,TCAM)的硬件算法为主。TCAM具有并行全相联结构,一个时钟周期就可以得到匹配结果[3]。TCAM是由内容可寻址寄存器(Content Addressable Memory,CAM)发展而来。TCAM比较CAM来说,每一个匹配位不仅可以存储“0”或“1”,还可以存储“X”来进行模糊匹配,匹配范围更加广泛,匹配效率也更高。只管TCAM也存在功耗高、存储量小等缺陷,但是通过分页TCAM可以降落TCAM的功耗[4],对TCAM匹配的规则集进行语义等价变换可减少TCAM所需的资源[5],这些研究都填补了TCAM器件的不敷。
根据软硬件算法的优缺陷比拟,本体裁系平台采取TCAM作为数据匹配部分的关键器件。现场可编程门阵列(Field Programmable Gate Array,FPGA)具有并行处理的上风,且算法是在底层硬件上实现,比较多核等处理器减少了程序在操作系统上的运行韶光,加快了处理速率。基于以上优点,本文采取FPGA作为整体架构的核心处理器件。终极,设计并实现了基于FPGA+TCAM架构的网络分流系统,办理了传统技能接入速率低、匹配准确性差的缺陷,实现了高速网络旗子暗记快速准确的分流过滤。
1系统硬件平台设计
网络流量分类系统的设计关键在于如何适应高速网络旗子暗记接入的高速率。其次,网络中的旗子暗记是通过数据报文的形式进行传输的,对网络旗子暗记进行分类紧张是在流的根本上进行,而流指的是在超时约束下,具有相同五元组(源IP,目的IP,源端口号,目的端口号,IP层协议号)信息的一组报文的凑集。如何进行数据报文的流规复和管理也是系统设计的关键之一。再次,互联网新技能、新运用层出不穷,网络协议格式繁芜,如何快速地实时更新匹配表项也是系统设计的难点之一。基于以上几个难点将网络分流系统详细分为以下几个模块:高速网络接入模块、数据预处理单元、流管理模块、匹配模块、在线管理和深度剖析模块。图1是系统平台的整体功能模块划分。
系统平台通过高速旗子暗记接入模块将骨干网的高速光纤旗子暗记接入系统平台,首先在预处理单元中对接入的数据进行数据洗濯、数据集成、数据变换等预处理操作[1] ,然后在流管理单元将分片的数据进行流规复,得到完全的流信息。之后将流送入匹配模块进行匹配条款标比拟命中操作,末了将命中的结果送到后端做事器进行更深层次的数据剖析和处理。
1.1网络旗子暗记接入模块
当前骨干网的传输速率普遍为10 Gb/s,设计的系统平台要兼容10 Gb/s及以下的网络旗子暗记速率。因此,该模块采取集成化接口,将10 Gb/s的网络数据接入平台。系统设计有4路接入端口,接入速率高达40 Gb/s,可应对包括10G POS(IP over SDH)、10GE、10G WAN平分歧的网络旗子暗记格式的收发处理。
1.2预处理单元
互联网的数据规模非常弘大,单单一条10 Gb/s的链路,按全天均匀30%的传输负荷,每秒产生的流量数据为375 MB,一天的流量就要超过32 TB。如此海量的数据对获取、存储、查询和实时剖析都增加了很大的难度。通过数据预处理可降落后续的剖析规模,提高效率。
系统选用FPGA来完成预处理操作,其高速并行处理的特性非常适宜系统预处理性能的需求。FPGA还要完成对其他模块的配置和管理事情。系统设计包括高速缓存、管理网口、交互接口等多种不同格式的接口模块,因此,系统选用Altera Stratix V系列FPGA芯片。该芯片拥有专用接口可以知足PCIExpress总线和4路高速接口的接入能力,并且拥有足足数目标管脚进行其他模块的管理操作。
通过编写程序实现数据报文的预处理以及对其他模块的管理操作。个中包括数据报文规复、提取五元组信息、剔除无关报文;对TCAM表项的更新、寄存器动态配置以及对相应操作的仲裁管理[6];对高速缓存的掌握和输入输出调度;通过PCI Express接口与做事器通信完成数据流后续分发处理;通过管理网口对匹配规则进行在线管理和更新。
1.3流管理模块
数据流的完全性对付匹配操作的准确性十分主要,在高速网络中,数据因此分组形式传输,每个IP包内储存部分数据。系统为了还原完全的数据内容就须要进行流管理,包括对数据的分片重组和报文乱序重组。流管理模块缓存处理好的数据流,并建立流表。如果有新报文接入,就提取该报文的五元组信息,用该五元组信息对现有流表进行HASH运算,判断该报文是否属于原缓存中的数据流。如果找到对应的流则将该报文添加到该流内;否则添加新流并更新流表。这些操作都要对数据进行缓存处理。
从系统硬件设计的稳定性方面考虑,接入速率最高为40 Gb/s,高速缓存的容量要知足40 Gb/8=5 GB的存储空间,而且带宽也要超过40 Gb/s。一样平常情形下缓存芯片位宽为64 bit,双倍速率读写,可得到模块的最低频率为40 Gb/s/(64×2)=480 MHz。因此,从存储容量和最低带宽来考虑,系统设计有两组缓存模块,频率可达533 MHz,其位宽为64 bit,知足最低频率哀求。单片缓存模块的容量为4 GB,在内存总量上,两组缓存模块的容量为8 GB,也远大于5 GB的内存容量。根据理论剖析,该设计完备知足40 Gb/s速率网络旗子暗记的缓存哀求。
1.4匹配模块
在完成数据流规复以及预处理操作之后,将数据流送入匹配模块根据表项进行匹配操作。TCAM内部可存储匹配表项,因此系统只要向TCAM输入搜索的内容,就会将此内容与匹配的表项进行比较,返回所须要的最优项,得到要实行的动作命令地址,反馈到FPGA中。随后FPGA就会根据得到的命令对匹配到的数据流进行转发分类操作,终极实现匹配模块的功能。
在系统硬件的开拓中,TCAM的匹配规则将掉电丢失,如果将其存储在FPGA内部,又会占用大量FPGA的内存资源。因此,本文设计了存储匹配规则的Flash模块,实施系统开机自动更新匹配规则,减少配置匹配规则的麻烦。
1.5在线管理和深度处理模块
深度处理功能是将初次匹配成功的数据包转发至后台做事器进行更深层次的数据分类,该功能紧张由PCI Express接口完成[7]。为降落PCI Express总线的开拓难度,调用FPGA内部专用的资源进行开拓,可配置成PCI Express2.0和PCI Express3.0。
PCI Express 2.0利用8b/10b编码,单通道速率达到5 Gb/s,x8模式下,总线速率可以达到5 Gb×8b/10b×8=32 Gb/s。PCI Express 3.0利用128b/130b编码,单通道速率达到8 Gb/s,x8模式下,总线速率可以达到8 Gb×128b/130b×8=63.02 Gb/s,撤除数据包的开销等冗余字节,可以完成4路万兆数据的线速传输。
在线管理功能通过一个通信网口实现。平台的配置和管理命令信息通过网口接入到系统平台中,实现分流系统的在线配置和管理。
2基于TCAM+FPGA的字符串匹配模块设计
数据流的匹配功能是系统设计的关键,本节进行更为深入的剖析和研究。
2.1硬件匹配事理
基于TCAM的流分类技能的基本处理流程如图2所示。可大略地理解为将流的标志信息运送进匹配转发引擎,将其与不同匹配规则进行逐条匹配比拟,如果命中规则,则返回相对应的实行动作,分类掌握器根据返回的动为难刁难该数据流进行转发或者实行其他操作。匹配操作一样平常所涉及的方面为数据包头信息,即五元组信息(源地址、目的地址、源端口、目的端口、协议类型)。
2.2字符串匹配模块设计
全体系统的匹配部分由FPGA与TCAM共同合营完成,过滤的规则包括五元组信息以及指定位置的运用层载荷信息等。硬件采取Broadcom公司生产的Netlogic系列芯片以及Altera公司的Stratix V系列芯片完成整体系统的构架设计。
根据TCAM和FPGA的构造以及各总线完成的功能可以得到如图3所示的硬件连接基本框图。个中数据总线卖力匹配数据和表项的传输以及干系寄存器的配置;指令总线卖力输入指令编码;结果总线卖力输出匹配结果,包括设备ID、最高优先级匹配索引等一系列信息。这些总线的管脚都连接到FPGA的通用I/O管脚上并进行等长布线。
由于系统接入的速率较高,以是系统设计中要采取有效的方法提高网络数据流的匹配过滤效率。因此,在算法中将匹配规则分为两个部分进行匹配,即协议描述部分和报文描述部分(协议描述部分完成数据流五元组信息匹配事情,报文描述部分完成数据流运用层载荷信息匹配事情),这两部分的匹配表项分块存储在TCAM中,以匹配表项的第一个比特位进行区分,“0”代表数据流将进行协议描述表项的匹配,“1”表示数据流将进行报文描述表项的匹配。
详细操作流程如下:首先由TCAM进行协议描述部分的信息匹配,将数据流的五元组信息传送至TCAM芯片进行匹配操作,如果命中TCAM中的规则,表明已经确定数据流的协议特色,然后将代表协议特色的协议动作地址(Protocol Action ID,PActID)结果返回至FPGA中,如果关心该数据流中的运用载荷信息,则添加报文描述标志位进行二次匹配,否则直接根据PActID的处理命令进行处理。在进行报文描述的二次匹配时,将对分外报文的运用层关键信息进行检测,以得到更为准确的数据流信息,从而将该主要数据流分配至专用后端处理设备进行精准的分类剖析。
3硬件平台测试
根据上文的设计和剖析,实现了基于FPGA+TCAM架构的网络分流系统。个中包括40 Gb/s高速网络旗子暗记接口、一个管理系统的通信网口、8 GB缓存、TCAM匹配模块、PCI Express转发处理接口以及必要的时钟芯片、管理接口和电源模块。
关于该系统的测试和评价指标紧张包括两个方面,即硬件的捕获效率和软件的处理剖析速率。其评价成分包括以下几项[8]:
(1)系统的吞吐率:分流系统在不丢包的情形下,所能实时处理的网络数据最大带宽,即系统的吞吐率。
(2)系统的漏报率(False Negative,FN):系统在一定韶光内线速处理捕获的数据,但由于系统繁忙而丢失数据,即系统会产生漏报。若流A在系统繁忙时,没有被系统识别为流A,那么就存在漏报。漏报率的定义便是没有被识别出的流A占全体流量的百分比,即:
(3)系统的更新性能:在数据流分类过程中,规则的定义和更新是系统分类处理的主要环节,过滤规则的定义要准确,更新过程要迅速。
根据以上测试评价成分,设计了如图4所示的硬件测试方案。系统平台吸收来自VePAL TX300e测试仪发出的10G SDH旗子暗记,通过吸收模块吸收测试仪发出的网络数据,之后进行一系列的匹配分类操作,通过PCI Express接口将匹配的数据流转发至做事器进行更为深入的剖析。系统测试紧张对吞吐率、漏报率、误报率(表示匹配规则的设置合理性)进行测试,通过测试得到系统平台的处理性能[6]。
硬件测试结果表明,网络分流系统知足总带宽40 Gb/s的吞吐量,漏报率和误报率在系统可承受范围之内,总体性能达到设计哀求。
4结论
本文设计并实现了一种基于FPGA+TCAM架构的网络分流系统,该分流设备通过测试可以知足吞吐率等性能评价指标。该平台的研制填补了传统分流过滤系统接入带宽低、处理效率低等缺陷。下一步的研究方向是通过对分类规则的统计剖析,得到匹配规则的最优设置,实现匹配条款标压缩、分割,以及通过对多报文快速并行处理来提升系统平台的整体性能。
参考文献
[1] 汪立东,钱丽萍.网络流量分类方法与实践[M].北京:公民邮电出版社,2013.
[2] 王勇,周晴伦,林宁,等.IP流分类器的设计与实现[J].电子科技大学学报,2007,36(6): 13621365.