配色: 字号:
高速入侵检测的工业物联网协议驱动
2013-04-19 | 阅:  转:  |  分享 
  
用于高速入侵检测的工业物联网协议驱动季杰,等

用于高速入侵检测的工业物联网协议驱动

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

献花(0)
+1
(本文系文山书院首藏)