Joumal of Computer Applications
计算机应用,
2012
,
32( 3) : 609 - 613
ISSN 1001-9081
CODEN JYIIDU
2012-03-01
http://wv
刊.
joca. cn
文章编号:
1001 - 9081
(2012
)03
- 0609 - 05
doi:l0.
3724/SP.
J.
1087.2012.00609
基于多核处理器的
L7-Filter
规则匹配改进算法
余涛\吴卫东
(武汉科技大学计算机科学与技术学院,武汉
430065)
(
*通信作者电子邮箱
yutao_2006@
126.
com)
摘
要:针对多核处理器的体系结构和网络数据流在时间上的局部性特点,提出了一种基于多核处理器的分链
动态适应算法。该算法通过对网络数据流进行类型分类并根据网络数据流的时间局部性对规则链进行动态优化,从
而有效减少了多核处理器下
L7-Filter
对网络数据流的匹配次数,显著提升了规则匹配效率。仿真实验结采表明:在网
络数据包个数相同条件下,所提算法在性能上约有
7%
的提高。随着网络数据包个数的增加,性能优越性更加明显。
关键词:多核处理器;网络数据流
;L7-Filter;
时间局部性;数据包分类;动态优化
中图分类号
:T
凹
0
1.
6;T
凹
93.02
文献标志码
:A
Improved
L 7 -
F
iI
t
町、
pattern
matching algorithm based
on
multi-core processors
YU
Tao
-,
WU
Wei-dong
( College 01 Computer 5cience
and
Techrwlogy, Wuhan University
015c
町
nce
α
nd
Technology, Wuhan
Hz
ι
bei
430065
, China)
Abstract:
According
to
the 'architecture of multi-core processors and the temporal local characteristics of network data
flow
, a division and dynamic adaptation algorithm
was
proposed based on multi-core processors. Classifying network data
flow
by
the type and optimizing chain of rules dynamically
by
the temporallocality of network
flow
, the count of the multi-core's L7-
Filter matching network data
flow
were reduced effectively and the processing efficiency
was
improved dramatically. The
simulation result shows that given the number of packets in the same conditions
, the algorithm has about 7 percent
improvement of the multi-core processing performance. With the increasing number of network packets
, the performance
superiority becomes more obvious.
Key
words:
multi-core processor; network data
flow;
L7-Filter; temporal locality; packet classification; dynamic
op
tJ
mzzat
lO
n
0
引言
随着网络爆炸式的增长以及高速以太网的出现(如
10
GbE)
,网络流量也随之高速增长,这就对网络服务质量
( Quality of Service , QoS) [ 1
J
提出了更高的要求。传统的数据
包分类技术主要是基于数据包头部信息做出分类决策。然
而,当前的许多网络应用会有意或无意利用头部信息隐藏真
实的行为,如对等网(
Peer-to-Peer
,凹
P)
和超文本传输协议
(HyperText Transfer Protocol ,
HπP)
,它们会在连接建立的过
程中通过动态分配端口号等方式来调整
IP
头部信息。
L7-Filter
是
Linux
上
QoS
框架的一个重要组件。它区别
于传统的基于数据包头部信息的分类方法,采用了深度数据
包检测
J
(Deep
Packet Inspection, DP
I)
[2J
技术,是基于应用层
数据来对数据包分类从而提高网络服务质量。单核心处理器
下的
L7-Filter
无论是在处理性能还是硬件资源利用率上效果
都很理想。
然而随着网络服务器中多核处理器的大规模部署
[3J
多
核处理器下的
L7-Filter
并没有表现出应有的性能提升。针对
这些问题,文献[
4
]提出基于接收端调节
(Receive
Side
Scaling
, RSS) [
5
J
技术的核心绑定技术,很好地解决了多核处
理器上因多核心计算迁移所产生的
Cache
一致性问题
[6J
提
高了多核处理器下的
L7-Filter
数据包分类处理性能。但是,
这种方法在具体到每一个匹配核心上采用的仍然是传统的线
性搜索查找算法,时间复杂度为
O(n)
,
最坏情况下要匹配
Nxd
次计算才可以得出分类结果(其中
N
为规则条数
,
d
为
规则维数)
,这种方法在时间效率方面存在固有的缺陷。文
献
[7]
提出的对规则集动态优化只对规则集本身进行探讨,
但却没有充分考虑网络数据流本身的特性。文献
[8J
虽然介
绍了一系列规则集优化算法来提高核心的处理性能,但存在
实现复杂度较高等问题。
本文利用网络数据流在时间上的局部性特点,并结合多
核处理器的特性,对网络数据包分类算法进行改进,提出了一
种基于多核处理器的分链动态适应算法(简称
DDA
算法)。
1 L7-Filter
L7-Filter
是基于网络应用层数据对数据包分类的方法。
核心思想是利用正则表达式搜索的方法
[9J
对目标数据包的
应用层数据进行搜索并分类,然后将分类的结果交给系统上
层为服务质量作进一步处理,如带宽分配等。多核处理器下
的原始口
-Filter
体系结构如图
1
所示。
文献
[4J
提出的核心绑定技术中采用了
RSS
技术。利用
这种技术,在一个
CPU
核心上绑定预处理线程,如图
1
中的
①。诙线程主要做包括数据包在多处理器核心上的调度等工
作。预处理核心在把数据包向匹配核心调度时的单位是以单
个连接为单位的。系统其余的每个处理核心上都绑定一个数
据包分类线程,如图
1
中的②。
这种利用
RSS
技术的方法很好地解决了由操作系统对
负载强制调度及负载均衡调度带来的
CPU
核心间
Cache
拷
收稿日期
:2011-08-30;
修回日期
:2011-11-16
0
基金项目:湖北省教育厅科技项目
(D20101105
)。
作者简介:余涛(1
985-)
,男,湖北那县人,硕士研究生,主要研究方向:多核处理器应用算法、计算机网络、嵌入式系统;
吴卫东(1
964
…)
,男,
湖北武汉人,副教授,博士,主要研究方向:多核处理器应用算法、计算机网络。