|
高速入侵检测的工业物联网协议驱动 |
|
|
用于高速入侵检测的工业物联网协议驱动季杰,等
用于高速入侵检测的工业物联网协议驱动
ndustriatlotProtocolDriverforHighSpeedIntrusionDetection
季衣1,2勿踣林1’2防太哮1,2
(江南大学轻工过程先进控制教育部重点实验室1,江苏无锡214122;江南大学智能控制研究所2,江苏无锡214122)
摘要:为了解决工业物联网协议栈所面临的高速入侵检测的吞吐量问题,提出了一种针对Windows平台的协议栈优化方法。分别
指出了使用指令时间比分析协议栈高吞吐量的瓶颈所在,以及使用DMA技术解决协议栈内存操作速度的问题。针对协议栈计算效
率问题,给出了基于SSE指令的哈希计算方法,并采用基于多核CPU的多线程协议栈解决协议栈运行效率问题。测试表明,在CPU
配置为E5200、3GB内存的系统中,该协议栈对系统资源损耗小,并使检测速度提高30%以上,能够满足工业对数据流速率的需求。
关键词:物联网协议栈多核处理过滤驱动网关入侵检测
中图分类号:TP393文献标志码:A
Abstract:TosolvethethroughputissueofintrusiondetectioninindustrialInternetofthings(IIoT)protocolstack,theoptimizationmethodof
protocolstackforWindowsplatformisproposed.Thebottleneckofhighthroughputisdeterminedrespectivelybyusingtimeandcycleper
instruction(CPI)-theoperationspeedofmemoryissolvedbyusingDMAtechnology.Aimingatthecomputationalefficiencyforprotocol
stack,theHashalgorithmbasedonSSEinstructionisgiven;inaddition,theoperationalefficiencyoftheprotocolstackisresolvedbyadopting
muhithreadprotocolstackofmulti—coreCPU.ThetestshowsthatinthesystemcomposedofE5200CPUand3GBmemory.,systemresource
lossissmallwiththisprotocolstack,andthedetectionspeedenhances30%,theindustrialdemandfordataflowrateismet.
Keywords:Interuetofthings(IoT)ProtocolstackMulti—coreprocessingFilteringdriverGatewayIntrusiondetection
0引言
由于传统工业控制系统的计算资源(包括CPU和
存储器)有限,在设计时只考虑到效率与实时相关的
特性,未将控制系统网络安全作为一个主要的指标进
行考虑。1。1。网络入侵检测系统(networkintrusion
detectionsystem,NIDS)作为网络安全检测的重要工
具,对网络设备的安全管理意义重大。
目前,网络入侵检测的研究主要集中在OSI网络
架构的第7层(L7,应用层)。OSI采用字符串和正则
表达式作为”内容的特征描述和检测方法"。1,吞吐
率高达16Gbit/s,但系统整体的吞吐率不到1Gbit/s,
这说明TCP/IP协议栈已经严重制约了系统的整体性
能。使用优化TCP/IP协议栈的方法。51,可以使吞吐率
提高到2.7~9.5Gbit/s;而由于其并没有充分利用现
有PC的硬件特性来充分优化协议栈,因此吞吐率还
有提高的可能性。
本文在工业物联网协议栈的基础上,实现了一种
国家自然科学基金资助项目(编号:60804013);
产学研合作基金资助项目(编号:叭1002)。
修改稿收到日期:2011—12—21。
第一作者季杰(1987一),男,现为江南大学模式识别与智能系统专
业在读硕士研究生;主要从事工业物联网络安全技术的研究。
运行在多核通用计算机平台上的高速并行工业物联网
协议栈。该协议栈满足了高速入侵检测的需求。
1工业物联网协议栈
工业物联网是指在传统工业网络的基础上,融合
互联网、WSN和现场总线网络等异构网络,将具有环
境感知能力的各类终端、云计算模式、移动通信和实时
通信等不断融入到各个工业环节的网络。
工业物联网协议栈框架如表1所示。
表1工业物联网协议栈框架
Tab.1FrameworkofHoTprotocolstack
网络层次协议功能令牌网以太网
在工业物联网协议栈的感知层中,基站利用网络拓
扑发现协议从配置服务器获取网络地址配置池,感知设
备利用网络拓扑发现协议从基站获得网络地址。在获
得网路配置之后,数据采集子层负责采集PLC设备所获
取的环境数据,令牌网和实时以太网负责工业总线的实
时数据传输问题。对于网络层,应着重解决其异构网络
42PROCESSAUTOMATIoNINSTRUMENTATIONVoL33No.12December2012
万方数据
用于高速入侵检测的工业物联网协议驱动季杰,等
问的数据融合传输。网关协议结合泛在计算模式,着重
解决网络传输和计算的负担问题;用户协议是解决访问
资源权限和访问资源负担的协议。应用层支持多协议,
包括传统的互联网协议和自定义工业总线协议。
2协议栈驱动和优化
2.1协议栈驱动的分析
鉴于Windows系统中已经实现了TCP/IP协议栈,
在实现工业物联网络协议栈驱动时,可直接调用
Windows的TCP/IP协议栈方式实现以太网的部分功
能。物联网协议栈的内部模块调用关系如图1所示。
ApplicationLayer·sys
0
NetW。rl【Layer.sysHTCP,IP.sys
J、3
ndis.Sys
、,0
SenseLayer.sys
图1驱动调用关系示意图
Fig.1Relationshipofdrivercalling
图1中,TCP/IP.sys和ndis.sys驱动是Windows
自带的驱动;ApplicationLayer.sys、NetWorkLayer.sys和
SenseLayer.sys分别为应用层驱动、网络层驱动和感知
层驱动。
利用内核定时器对内核调用进行时问测量,再运
用计数器对内核调用进行计数,可分析得出协议栈的
瓶颈所在。
CPI是函数所执行的指令总数与函数执行这些指
令所消耗时间的比值,CPI的值越大,意味着函数执行
效率越低。函数执行效率测量如表2所示。
表2函数执行效率测量
Tab.2Measurementofthefunctionexecutionefficiency
由CPI数值可以分析出系统的资源消耗。协议栈
《自动化仪表》第33卷第12期2012年12月
处于内核空间,协议栈在内存拷贝函数RtlCopyMemory
(Windows的运行函数)、哈希计算函数KeHashCalc和
搜索数据流函数find—stream_data上所耗费的时间占用
了总时间的44.1%,尤其是哈希计算,所花费的时间占
整个协议栈处理时间的16.8%。
函数KeHashCalc利用源网络地址、远程网络地址
和端口号计算出哈希值。函数采用的计算方法是查表
和取模(mod)运算。虽然查表极大地简化了计算量,
但却是一种利用空间换时间的办法。
函数find—stream—data利用计算所得的哈希值来
查询数据流表,数据流表包含了2“个条目,每个条目
均指向一个动态分配的数据流结构。因此,该函数也
相当耗费时间。
函数RtlCopyMemory是微软提供的一个内核API,
用于在内核空问拷贝内存。如从网卡中读取的网络流
量,网卡驱动会使用直接内存访问(directmemory
access,DMA)将流量数据写入内核空间,用户空间的
程序调用系统调用内核空间拷贝数据。优化内核空间
和用户空间之间的内存拷贝,可以极大地提高协议栈
的处理速度。
2.2协议栈优化
根据上述分析结果,协议栈的优化可以分为内存
操作优化、计算优化和并行处理3个方面。
2.2.1内存操作优化
数据之间的依赖关系可能会导致大量的访问延
迟。例如,处理器初始化内存读取立即数的请求,而这
个立即数被下一条指令使用,此时处理器必须挂起,直
到立即数从内存中返回。
为了减小内存访问延迟、提高处理器效率,处理器
可以发起连续几个读请求,并分别使用返回的数据。
此时,即使处理器处于延迟状态,仍然可以保持在运行
状态,从而提高了性能。
分散.聚合直接内存访问(scatter—gatherDMA,
SGDMA)¨o使用链表描述物理不连续的存储器。
SGDMA首先把链表首地址发送给DMAMaster,DMA
Master在传输完一块连续地址的内存数据后,再根据
链表传输下一块连续地址的内存数据,最后进行一次
中断,通知CPU传输结束。这为DMA提供了传输时
间,尤其适合网卡与操作系统之间的数据传输。
2.2.2计算效率优化
在工业物联网协议栈中,报文校验码的长度为32
位。由于报文的校验码包含在报文头部,因此在发送
大量报文时,累计的报文校验码运算量非常大。为了
提高计算效率,结合X86架构的特性,使用汇编实现
43
万方数据
用于高速入侵检测的工业物联网协议驱动季杰。等
校验码算法。各个校验码计算操作之间没有相关性,
4个32位数可以组成一个128位数,然后利用单指令
多数据流(singleinstructionmultipledata,SIMD)指令扩
展指令集(streamingSIMDextensions,SSE)计算校验
码。相比较使用32位指令,使用SSE指令"“o可将计
算速度提高4倍。使用SSE指令的哈希算法如图2
所示。
开始
打包4个整数,溯始化为0
是
A1641、B[641、CL041和
D[641为4组哈希值
(堕塞)
图2哈希算法
Fig.2Hashalgorithm
在哈希算法的预处理阶段,首先将4个整数打包
成一个128位数,放人XMMO寄存器。形数组存放左
移计算的临时结果,W[i]的值依赖于W[i一3]、W[i一
7]、W[i一11]和W[i一15]相互异或的结果;A、日、C、
D数组适用于存放每组哈希计算的临时结果。循环结
束,4[64]、曰[64]、C[64]和D[64]就是保存的哈希计
算结果。这样就可以一次计算4个哈希值。
2.2.3并行处理
为了进一步提高协议栈的处理能力,可以在多核
CPU上实现并行线程一。,但将单进程的协议栈改成多
进程协议栈,将不可避免地遇到共享资源访问的问题。
因此,本文提出一种多核CPU下的多进程划分方式。
协议栈线程分配如图3所示。
Intel的E5200有2个CPU核,由于网关进程的运
算负载相对较重,而且网关进程是与TCP/IP进程有关
联的唯一进程,因此将网关进程与TCP/IP进程分别运
行在2个处理核心上。
为了实现动态的负载均衡、减少进程间的通信开
销,网关进程的负载会随着网络数据流量的变化而变
化,因此需要创建多个处理线程,以达到负载均衡。网
关进程创建的子线程之间通过共享缓存传递数据,减
少了实际传输的数据量。
图3协议栈线程分配
Fig.3Threadallocationoftheprotocolstack
3测试
评估系统带有3GB内存和1个IntelE5200处理
器。CPU有2个运行在2.5GHz的处理核心,这2个核
心共享2MBCache,操作系统是WindowsXP。为了测试
协议栈的有效吞吐率,本文采用Darpa一1和Darpa一2。103作
为人侵检测的数据集,具体如表3所示。
表3数据集
Tab.3Dataset
首先使用表3中的数据集Darpa一1和Darpa-2测
试优化前的协议栈,依次为协议栈添加内存优化、SSE
指令计算和多进程功能;再对CPU进行多线程压力测
试。优化前,Darpa一1的吞吐率与Darpa-2的吞吐率略
高,大约为1.2Gbit/s。采用内存优化方法之后,两
者的吞吐率分别达到1.7Gbit/s和1.8Gbit/s;进一步
采用SSE指令加速计算的优化方法后,两者的吞吐率
分别达到3.1Gbit/s和3.5Gbit/s;最后采用双进程的
优化方案,两者的吞吐率可分别达到4.9Gbit/s和
5.6Gbit/s。优化后的协议栈对每一个流量的吞吐率
都在原始系统的4倍以上。
操作系统调度的最小单位是线程。线程压力测试
结果如图4所示。由图4可知,网关进程创建线程数
量达到一定值之后,协议栈的吞吐率反而下降,这是因
为线程之间的切换会带来额外的开销。对于大量的数
据流量,并不能通过创建无限多的线程来提高协议栈
的吞吐率,这样做将使收益小于开销,导致吞吐率下
44PROCESSAUTOMATIoNINSTRUMENTATIoNV01.33No.12December2012
一一~一一一~~一M
万方数据
用于高速入侵检测的工业物联网协议驱动季杰,等
降。由于优化的主要目标是提高工业物联网协议栈的
吞吐率,因此选择一个最大线程数是非常有必要的。
由图4可知,当线程数量为4时,吞吐率最高。此外,
整个数据集的数据包平均长度越大,其吞吐率也越
大。这是因为每发送或者接收一个数据包都会带来校
验码计算、查找等操作的系统开销。
,
。紫
皇
o
¥
删
爝
轷
甘_
创建线程数
图4线程压力测试
Fig.4Stresstestsofthethreads
利用特定资源协议栈函数进行优化之后,协议栈
在内存操作、哈希计算和查找操作的耗费时间明显下
降,达到了预期目标。函数优化前后耗时比如表4
所示。
表4函数优化前后耗时比
Tab.4Time-consumptionofthefunction
beforeandafteroptimization
4结束语
工业物联网的数据流量越来越大,对高速入侵检
测是一个严峻的挑战。本文提出了适用于工业物联网
的协议栈优化方案。在Pc机现有资源的情况下,该
方案利用内存DMA解决了数据的高速流量问题,并利
用CPU并行指令解决了协议栈的计算负载问题。测
试表明,在工业物联网络架构上,优化后的协议栈完全
能够满足工业物联网络高速入侵检测的需求。
参考文献
[1]干开峰.嵌入式EPA安全网关开发——安全功能模块的设计与
实现[D].重庆:重庆邮电大学,2007.
[2]杨云,宓佳,党宏社.嵌入式入侵检测系统的设计与实现[J].计
算机工程与设计,2011,20(1):21—23.
[3]VasiliadisG,PolychronakisM,AntonatosS,eta1.Regularexpression
nkatchingongraphicshardwareforintrusiondetection[C]//Proceed峥
0fthe12thIntemationalSymposiumonRecentAdvancesinIntrusion
Detection.Saint-Malo,France:SpringerVerlag,2009:265—283.
[4]徐乾,鄂跃鹏,葛敬国,等.深度包检测中一种高效的正则表达
式压缩算法[J].软件学报,2009,20(8):2214—2226.
[5]XiaGao,LiuyBin.AcceleratingnetworkapplicationsonX86—64
platforms[C]//ProceedingsofIEEESymposiumonComputersand
Communications.Riceione,Italy:IEEE,ComputerandCorranunieations
Societies,2010:906—912.
[6]陈卓,杨爱良,王骥,等.基于PLB总线的多通道SGDMA设计[J].
航空电子技术,2009,40(1):12—15.
[7]陈虎,欧彦麟,陈海波,等.面向多核处理器平台的并行Hash
JOIN算法设计与实现[J].计算机研究与发展,2010,47(z1):
171—175.
[8]张顺利,张定华,李明君,等.基于SIMD技术的锥束ART算法
快速并行图像重建[J].仪器仪表学报,2010,31(3):630—634.
[9]杨春阳,段勃勃,袁淮,等.多核平台上基于可声明并行性的程序优
化框架[J].东北大学学报:自然科学版,2011,32(1):22—26.
[10]MITLincolnLaboratory.MITDARPAintrusiondetectiondatasets
[Z/OL].[2010—09—25].http://www.11.mit.edu/mission/
communications/ist/corpora/ideval/data/index.html.
(上接第41页)
准,势必会在我国经济、国防等领域埋下重大隐患。
3结束语
物联网的推广将成为下一个经济发展的助力器,
但同时也带来了诸多安全、隐私、资源保护、访问控制
等问题。物联网的发展与应用是一个庞大的工程,既
需要技术支持,又需要相应的法律、制度配套。只有技
术成熟、法律完善、行业自律完善,才能为物联网的快
速发展和应用提供一个健康的环境,物联网安全的研
究任重而道远。
参考文献
[1]物联网的未来之路:物联网图强软件先行[EB/OL].E20LO一07一
《自动化仪表》第33卷第12期2012年12月
02].http://www.sdetn.gov.cn/dzxxe/jsdt/webinfo/2010/04/
1270687339252615.htm.
[2]李德毅.云计算一物联网的基石[EB!OL].[2011—03—02].
http://www.huawei.com/cn/about-huawei/publicatiolrs/communicate.
[3]ChenDanwei,HuangXiuli,RenXunyi.Acesscontrolofcloud
servicesbasedonUCON[C]∥Proceedingsofthe1stInternational
ConferenceonCloudComputing,2009:559—564.
[4]李向军.物联网安全及解决措施[J].农业网络信息,2010(12):
5—7.
[5]李瑞轩,赵战西,文坤梅,等.基于本体的多域访问控制策略集
成研究[J].小型微型计算机系统,2007(9):1710—1714.
[6]聂学武,张永胜.物联网安全问题及对策研究[J].计算机安全,
2010(4):4—6.
[7]刘泽喜.物联网伦理问题探析[D].武汉:武汉科技大学,2010.
45
万方数据
用于高速入侵检测的工业物联网协议驱动
作者:季杰,白瑞林,陈大峰
作者单位:江南大学轻工过程先进控制教育部重点实验室,江苏无锡214122;江南大学智能控制研究所,江苏无锡
214122
刊名:自动化仪表
英文刊名:ProcessAutomationInstrumentation
年,卷(期):2012,33(12)
本文链接:http://d.g.wanfangdata.com.cn/Periodical_zdhyb201212012.aspx
|
|
|
|
|
|
|
|
|
|
|