适用于多流正则表达式匹配的数据流交换复用系统及方法技术方案

技术编号:8657577 阅读:287 留言:0更新日期:2013-05-02 01:30
本发明专利技术公开了一种适用于多流正则表达式匹配的数据流交换复用系统及方法;所述系统包括用于对输入的数据流进行特性判断并赋予相应的数据流优先级和数据流序号信息的优先级添加模块;连接信息交换模块,用于存储数据流以及相应的数据流优先级、数据流序号和数据流等待时间信息的可编程存储模块;分别连接优先级添加模块、可编程存储模块和交换调度模块的信息交换模块;连接信息交换模块,用于动态选择待处理的数据流和调整数据流的交换长度的交换调度模块;连接信息交换模块,用于对信息交换模块传输过来的数据流进行正则表达式匹配的单流REM模块;本发明专利技术能够支持多条数据流同时处理、灵活性好、资源利用率高。

【技术实现步骤摘要】

本专利技术涉及一种。
技术介绍
正则表达式匹配(REM)是网络入侵检测系统(NIDS)的重要组成部分,主要完成针对潜在威胁的深度检测;随着网络带宽以及网络流量的不断增加,REM需要扫描的网络内容迅速增长,REM的性能成为网络安全系统的瓶颈。REM结构可以通过在FPGA中构建不确定性有限自动机(NFA)实现,该方法可以利用FPGA高效的并行处理机制以及大量的可编程逻辑资源;为提高正则表达式匹配的速率,达到更高的系统吞吐率,以往的研究者提出了很多技术来优化NFA到FPGA的映射方法;传统的基于FPGA的REM解决方案大多针对单条高速数据流下,大规模正则表达式的匹配;然而,现实网络数据大多由多条数据流混合组成,如何将传统的基于单流的REM模块通过复用的方式支持多流同时匹配具有重要的意义,通过复用可以减少深度包检测系统所需的缓存资源以及相应的系统延时。几种传统的将单流REM扩展到多流REM的方法中最简单的方法是对每一条数据流都构建一个独立的REM系统,这种方法简单易于实现但可扩展性差,当数据流的数量较多的时候,对内存要求很大;另一种方法是通过时分复用的方式将一个REM系统应用于多条流的处理;该方法可扩展性强,资源利用率高;基于时分复用的实现方式有竞赛处理和加权交换两种;竞赛处理是一种先到先得的处理方式,先到达的数据流优先处理,该数据流全部处理完之后,再选择下一条数据流;该方法在处理一条数据流时,需要对其它数据流进行临时存储来用于后续处理,会消耗极大的缓存资源,当数据流数目较多时,系统负担较大,实现较为复杂;加权交换为每一条数据流定义优先级,根据优先级高低选择需要处理的数据流。通过该方式,可以更加灵活的选择待处理的数据流,灵活性更高,同时减少了内存需求;加权交换包括定长交换和变长交换;定长交换在处理完一个数据流的固定长度(例如1024Byte)后会切换到另一个数据流;变长交换可处理不定长度的数据(例如一个数据包)后切换到另一个数据流;定长交换使得交换频率较高,增加了交换过程的开销,增加了缓存需求,限制了系统吞吐率;变长交换允许动态调整交换长度,灵活性较好,更加适合于FPGA实现。
技术实现思路
本专利技术针对以上问题的提出,而研制一种能够支持多条数据流同时处理、灵活性好、资源利用率高的。本专利技术的技术手段如下:—种适用于多流正则表达式匹配的数据流交换复用系统,包括:用于对输入的数据流进行特性判断并赋予相应的数据流优先级和数据流序号信息的优先级添加模块;连接信息交换模块,用于存储数据流以及相应的数据流优先级、数据流序号和数据流等待时间信息的可编程存储模块;分别连接优先级添加模块、可编程存储模块和交换调度模块,用于将优先级添加模块传输过来的数据流以及相应的数据流优先级、数据流序号和实时更新的数据流等待时间信息存储至可编程存储模块,从可编程存储模块中读取数据流优先级、数据流序号和数据流等待时间信息给交换调度模块以及根据选中的数据流序号信息和设定的交换长度信息从可编程存储模块中读取相应的数据流给单流REM模块,根据设定的交换长度信息进行计数,并当计数值达到交换长度时或者当前进行正则表达式匹配的数据流结束时产生交换指示信号传输给交换调度模块,同时将计数值清零的信息交换模块;连接信息交换模块,用于根据信息交换模块传输过来的数据流优先级、数据流序号和数据流等待时间信息动态选择待处理的数据流和调整数据流的交换长度并根据信息交换模块传输过来的交换指示信号将选中数据流的数据流序号和设定的交换长度信息传输给信息交换模块的交换调度模块;连接信息交换模块,用于对信息交换模块传输过来的数据流进行正则表达式匹配的单流REM模块。一种适用于多流正则表达式匹配的数据流交换复用方法,包括如下步骤:A:优先级添加模块对输入的数据流进行特性判断并赋予相应的数据流优先级和数据流序号信息;Al:优先级添加模块对数据流赋予相应的数据流优先级信息:定义数据流优先级分为普通、中、高三个级别,根据每一数据流的数据流类型、QoS要求和数据流持续时间的特性完成数据流优先级设定;A2:优先级添加模块对数据流赋予相应的数据流序号:针对任一数据流,提取16位数据流指示信息,对该信息进行hash处理,按照hash处理结果对各个数据流进行编号,若当前数据流的hash处理结果与已完成编号的数据流的hash处理结果相同时,则沿编号顺序查找下一个未被占用的编号赋给当前数据流;B:优先级添加模块将数据流优先级和数据流序号信息置于对应的数据流之前并传输给信息交换模块;C:信息交换模块将优先级添加模块传输过来的数据流以及相应的数据流优先级、数据流序号和实时更新的数据流等待时间信息存储至可编程存储模块:若可编程存储模块中没有当前需存储的数据流的信息,则在可编程存储模块中新建一条对应信息的数据流表项并将数据流等待时间置为零;若可编程存储模块中已存有当前需存储的数据流的信息,则按照当前的数据流信息更新可编程存储模块中的该数据流相应的数据流优先级和数据流等待时间;D:信息交换模块从可编程存储模块中读取数据流的数据流优先级、数据流序号和数据流等待时间信息给交换调度模块,交换调度模块根据数据流的数据流优先级、数据流序号和数据流等待时间信息动态选择待处理的数据流和调整数据流的交换长度;Dl:交换调度模块根据数据流的数据流优先级、数据流序号和数据流等待时间信息动态选择待处理的数据流;Dll:交换调度模块首先根据数据流优先级的级别选中数据流优先级为高的数据流作为待处理的数据流;D12:当数据流优先级相同时,交换调度模块选择数据流等待时间最长的数据流作为待处理的数据流;D13:当数据流优先级和数据流等待时间均相同时,交换调度模块选择数据流序号最小的数据流作为待处理的数据流;D2:交换调度模块根据数据流的数据流优先级、数据流序号和数据流等待时间信息动态调整数据流的交换长度:D21:交换调度模块设定交换长度初始值为一个数据包;D22:交换调度模块对新选择的数据流将其交换长度设为初始值即一个数据包;D23:交换调度模块对连续第k次选择的数据流,将其交换长度设为2k个数据包,当k > 6时,将其交换长度设为无穷大,其中k为数据流被交换调度模块连续选择的次数;D3:交换调度模块根据信息交换模块的交换指示信号将选中数据流的数据流序号、设定的交换长度信息传输给信息交换模块;E:信息交换模块根据选中的数据流序号信息和设定的交换长度信息从可编程存储模块中读取相应的数据流给单流REM模块,同时根据设定的交换长度信息进行计数,并当计数值达到交换长度时或者当前进行正则表达式匹配的数据流结束时产生交换指示信号传输给交换调度模块;F:单流REM模块对信息交换模块传输过来的数据流进行正则表达式匹配;Fl:单流REM模块首先对输入的正则表达式库进行编译映射转换为FPGA中RTL级实现,从而得到能够处理一条数据流的正则表达式匹配模块;F2:单流REM模块利用正则表达式匹配模块得到包括满足的规则和匹配的位置两部分内容的匹配结果。由于采用了上述技术方案,本专利技术提供的,通过结合优先级添加模块、可编程存储模块、信息交换模块和交换调度模块,根据数据流特性合理进行优先级和交换长度设定,再统筹选择进行正则表达式匹配处理的数据流,实现了应用单流RE本文档来自技高网
...

【技术保护点】
一种适用于多流正则表达式匹配的数据流交换复用系统,其特征在于包括:用于对输入的数据流进行特性判断并赋予相应的数据流优先级和数据流序号信息的优先级添加模块;连接信息交换模块,用于存储数据流以及相应的数据流优先级、数据流序号和数据流等待时间信息的可编程存储模块;分别连接优先级添加模块、可编程存储模块和交换调度模块,用于将优先级添加模块传输过来的数据流以及相应的数据流优先级、数据流序号和实时更新的数据流等待时间信息存储至可编程存储模块,从可编程存储模块中读取数据流优先级、数据流序号和数据流等待时间信息给交换调度模块以及根据选中的数据流序号信息和设定的交换长度信息从可编程存储模块中读取相应的数据流给单流REM模块,根据设定的交换长度信息进行计数,并当计数值达到交换长度时或者当前进行正则表达式匹配的数据流结束时产生交换指示信号传输给交换调度模块,同时将计数值清零的信息交换模块;连接信息交换模块,用于根据信息交换模块传输过来的数据流优先级、数据流序号和数据流等待时间信息动态选择待处理的数据流和调整数据流的交换长度并根据信息交换模块传输过来的交换指示信号将选中数据流的数据流序号和设定的交换长度信息传输给信息交换模块的交换调度模块;连接信息交换模块,用于对信息交换模块传输过来的数据流进行正则表达式匹配的单流REM模块。...

【技术特征摘要】
1.一种适用于多流正则表达式匹配的数据流交换复用系统,其特征在于包括: 用于对输入的数据流进行特性判断并赋予相应的数据流优先级和数据流序号信息的优先级添加模块; 连接信息交换模块,用于存储数据流以及相应的数据流优先级、数据流序号和数据流等待时间信息的可编程存储模块; 分别连接优先级添加模块、可编程存储模块和交换调度模块,用于将优先级添加模块传输过来的数据流以及相应的数据流优先级、数据流序号和实时更新的数据流等待时间信息存储至可编程存储模块,从可编程存储模块中读取数据流优先级、数据流序号和数据流等待时间信息给交换调度模块以及根据选中的数据流序号信息和设定的交换长度信息从可编程存储模块中读取相应的数据流给单流REM模块,根据设定的交换长度信息进行计数,并当计数值达到交换长度时或者当前进行正则表达式匹配的数据流结束时产生交换指示信号传输给交换调度模块,同时将计数值清零的信息交换模块; 连接信息交换模块,用于根据信息交换模块传输过来的数据流优先级、数据流序号和数据流等待时间信息动态选择待处理的数据流和调整数据流的交换长度并根据信息交换模块传输过来的交换指示信号将选中数据流的数据流序号和设定的交换长度信息传输给信息交换模块的交换调度模块; 连接信息交换模块,用于对信息交换模块传输过来的数据流进行正则表达式匹配的单流REM模块。2.一种适用于多流正则表达式匹配的数据流交换复用方法,其特征在于包括如下步骤: A:优先级添加模块 对输入的数据流进行特性判断并赋予相应的数据流优先级和数据流序号信息; Al:优先级添加模块对数据流赋予相应的数据流优先级信息:定义数据流优先级分为普通、中、高三个级别,根据每一数据流的数据流类型、QoS要求和数据流持续时间的特性完成数据流优先级设定; A2:优先级添加模块对数据流赋予相应的数据流序号:针对任一数据流,提取16位数据流指示信息,对该信息进行hash处理,按照hash处理结果对各个数据流进行编号,若当前数据流的hash处理结果与已完成编号的数据流的hash处理结果相同时,则沿编号顺序查找下一个未被占用的编号赋给当前数据流; B:优先级添加模块将数据流优先级和数据流序号信息置于对应的数据流之前并传输给信息交换模块; C:信息交换模块将优先级添加模块传输过来的数据流以及相应的数据流优先级、数据流序号和实时更新的数据流等待...

【专利技术属性】
技术研发人员:卜佑军贺炜申涓赵靓黄万伟官福山
申请(专利权)人:大连环宇移动科技有限公司中国人民解放军信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1