CN107465570A - 基于环形队列的数据包关键字检测方法 - Google Patents

基于环形队列的数据包关键字检测方法 Download PDF

Info

Publication number
CN107465570A
CN107465570A CN201710564088.3A CN201710564088A CN107465570A CN 107465570 A CN107465570 A CN 107465570A CN 201710564088 A CN201710564088 A CN 201710564088A CN 107465570 A CN107465570 A CN 107465570A
Authority
CN
China
Prior art keywords
packet
array
detection
length
current data
Prior art date
Application number
CN201710564088.3A
Other languages
English (en)
Other versions
CN107465570B (zh
Inventor
许锰
何建锋
陈宏伟
刘彦伯
白肖
Original Assignee
西安交大捷普网络科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 西安交大捷普网络科技有限公司 filed Critical 西安交大捷普网络科技有限公司
Priority to CN201710564088.3A priority Critical patent/CN107465570B/zh
Publication of CN107465570A publication Critical patent/CN107465570A/zh
Application granted granted Critical
Publication of CN107465570B publication Critical patent/CN107465570B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing packet switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Abstract

本发明公开了一种基于环形队列的数据包关键字检测方法,生成一个能够存储s个数据包的数组,将接收到的第i个数据包作为当前数据包依次存入所述的数组中,其中i≥1,最后根据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关键字检测。本发明将接收到的数据包存入一个合适长度的数组中,且采用环形队列的存储方式,减少了储存空间,提高了检测效率;在检测数据包中关键字时,取连续储存的两个数据包进行关键字检测,和现有的单包检测技术相比,避免了关键字存在于两个连续数据包而漏检的情况,使得数据包中关键字的检测更加全面、准确。

Description

基于环形队列的数据包关键字检测方法

技术领域

[0001] 本发明属于信息安全技术领域,具体涉及一种基于环形队列的数据包关键字检测 方法。

背景技术

[0002] 随着互联网技术的发展和社会信息化程度的不断提高,网络逐渐成为人们生产、 生活中不可或缺的一部分,现有技术中在数据包检测过程中多采用特征匹配技术。

[0003] 现有技术中对关键字检测主要包括,基于单个数据包的检测算法,对数据流中的 每一个数据包进行单包特征检测;这种检测算法的优势在于简单,并且检测效率高,占用存 储空间少,不足的地方是对于特征的前半部分和后半部分存在于两个数据包边缘的情况, 该特征就不能被检测出来;比如特征test_feature,test_存在与第一个数据包中,feature 存在于第二个数据包中,若采用单包检测方式,则无法检测出该特征或者检测结果的准确 性很低。

[0004] 现有技术还包括基于数组的检测算法,这种算法的实现方式为先定义数组a,用于 存储上一个数据包,再定义数组b,用于存储上一个数据包和当前数据包,对于第一个数据 包,先将其保存到数组a中,然后进行特征检测;对于第二个数据包,先将数组a中的第一个 数据包取出,然后将其保存到数组b的起始部分,再将第二个数据包保存到数组b中紧邻第 一个数据包的后面部分,然后清空数组a,再将第二个数据包保存到数组a中,最后对数组b 中的两个数据包进行特征检测;后面数据包的检测以此类推。这种检测算法的优势在于检 测准确率高,比如特征test_feature,test_存在与第一个数据包中,feature存在于第二个 数据包中,若采用基于数组的检测方式,就可以检测出该特征,不足在于每一次的检测要进 行多次拷贝操作,所以检测效率相对较低。

发明内容

[0005] 有鉴于此,本发明的主要目的在于提供一种基于环形队列的数据包关键字检测方 法。

[0006] 为达到上述目的,本发明的技术方案是这样实现的:

[0007] 本发明实施例提供一种基于环形队列的数据包关键字检测方法,该方法为:生成 一个能够存储s个数据包的数组,将接收到的第i个数据包作为当前数据包依次存入所述的 数组中,其中i多1,最后根据所述第i个数据包的位置关系从所述数组对应位置取出数据包 进tx关键字检测。

[0008] 上述方案中,所述将接收到的第i个数据包作为当前数据包依次存入所述的数组 中之后,该方法还包括:同时确定数组中数据包的总长度为L1、数组中存储的数据包的总个 数a、以及上一个数据包的长度L2、当前数据包的长度L3。

[0009] 上述方案中,所述根据所述第i个数据包的位置关系从所述数组对应位置取出数 据包进行关键字检测,具体为:当i = 1时,将当前数据包存入所述数组的起始位置,并取出 第一个数据包单独进行关键字检测。

[0010] 上述方案中,所述根据所述第i个数据包的位置关系从所述数组对应位置取出数 据包进行关键字检测,具体为:当KiSs时,根据LhLhL3得到上一个数据包的起始偏移, 根据该起始偏移、上一个数据包的长度及当前数据包的长度,取出上一个数据包和当前数 据包进行关键字检测。

[0011] 上述方案中,所述根据所述第i个数据包的位置关系从所述数组对应位置取出数 据包进行关键字检测,具体为:当i= (ns+Ι)时,(其中η多1)将当前数据包存入所述数组的 起始位置,将此时数组中数据包的总长度L1置为第(ns+Ι)个数据包的长度,将此时数组中 存储的数据包的总个数a置为1;先取出第ns个数据包存入一个临时数组中,再取出第(ns+ 1)个数据包与第ns个数据包进行拼接后,对拼接后的两个数据包进行特征检测。

[0012] 上述方案中,所述根据所述第i个数据包的位置关系从所述数组对应位置取出数 据包进行关键字检测,具体为:当(ns+1) <i< (n+1) s时,根据LlI^L3得到上一个数据包的 起始偏移(偏移地址),根据该起始偏移、上一个数据包的长度及当前数据包的长度,取出上 一个数据包和当前数据包进行特征检测。

[0013] 上述方案中,所述的s的取值为:5<s<10。

[0014] 与现有技术相比,本发明的有益效果:

[0015] 本发明将接收到的数据包存入一个合适长度的数组中,且采用环形队列的存储方 式,减少了储存空间,提高了检测效率;在检测数据包中关键字时,取连续储存的两个数据 包进行关键字检测,和现有的单包检测技术相比,避免了关键字存在于两个连续数据包而 漏检的情况,使得数据包中关键字的检测更加全面、准确。

具体实施方式

[0016] 下面结合本发明具体实施例,对发明的技术方案进行清楚、完整的描述,以下实施 例只是本发明的优选实施例,而不是全部实施例。基于本发明中的实施例,本领域技术人员 在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

[0017] 本发明实施例提供一种基于环形队列的数据包关键字检测方法,该方法为:生成 一个能够存储s个数据包的数组,将接收到的第i个数据包作为当前数据包依次存入所述的 数组中,其中i多1,最后根据所述第i个数据包的位置关系从所述数组对应位置取出数据包 进行关键字检测。

[0018] 进一步地,所述将接收到的第i个数据包作为当前数据包依次存入所述的数组中 之后,该方法还包括:同时确定数组中数据包的总长度为L1、数组中存储的数据包的总个数 a、以及上一个数据包的长度L2、当前数据包的长度L3。

[0019] 所述根据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关键 字检测,具体为:当i = l时,将当前数据包存入所述数组的起始位置,并取出第一个数据包 单独进行关键字检测。

[0020] 所述根据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关键 字检测,具体为:当KiSs时,根据LhI^L3得到上一个数据包的起始偏移,根据该起始偏 移、上一个数据包的长度及当前数据包的长度,取出上一个数据包和当前数据包进行关键 字检测。

[0021] 所述根据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关键 字检测,具体为:当i = (ns+1)时,(其中η多1)将当前数据包存入所述数组的起始位置,将此 时数组中数据包的总长度L1置为第(ns+Ι)个数据包的长度,将此时数组中存储的数据包的 总个数a置为1;先取出第ns个数据包存入一个临时数组中,再取出第(ns+Ι)个数据包与第 ns个数据包进行拼接后,对拼接后的两个数据包进行特征检测。

[0022] 所述根据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关键 字检测,具体为:当(ns+1) <i< (n+1) s时,根据LlI^L3得到上一个数据包的起始偏移(偏 移地址),根据该起始偏移、上一个数据包的长度及当前数据包的长度,取出上一个数据包 和当前数据包进行特征检测。

[0023] 所述s为生成的数组可存放数据包的个数,用于限定数组的长度;s的取值为:s <10〇

[0024] 实施例

[0025] 本发明实施例提供一种基于环形队列的数据包关键字检测方法,具体通过以下步 骤实现:

[0026] 步骤一:生成一个可以存储5个数据包的数组,可存储8000个字节,一般的数据包 占用1500个字节左右,在生成数组时,也要考虑占用内存的大小,选用的数组越长,

[0027] 占用的内存相对较高,但在取出数据包进行检测时,数据包的零拷贝操作会更多, 则检测性能相对更高;反之,选用的数组长度小的话,则会出现现更多的拼接操作,这样相 对于零拷贝操作,检测性能较低。

[0028] 步骤二:将接收到的第i个数据包作为当前数据包依次存入所述的数组中,其中i 多1;分别记录此时数据包的总长度为L1、此时数组中存储的数据包的总个数a、以及上一个 数据包的长度L2、当前数据包的长度L3,具体分以下情况:

[0029] (1)当接收到第一个数据包时,将该数据包存入生成的数组的起始位置,检测时可 以直接将第一个数据取出进行特征检测;

[0030] (2)当对第2至第5个数据包进行检测时,根据记录的数据包的总长度为L1、此时数 组中存储的数据包的总个数a、以及上一个数据包的长度L2、当前数据包的长度L3,可以求得 上一个数据包的起始偏移,然后根据该起始偏移、上一个数据包的长度及当前数据包的长 度,取出上一个数据包和当前数据包进行特征检测,当待检测的特征存在于两个数据包时, 通过检测连续的两个数据包就会检测到该特征,且在该检测过程时,采用零拷贝技术,即取 出两个数据包时候只需要调用指针即可,检测的性能较高。

[0031] (3)当接收到第6个数据包时,此时将该数据包存入数组的起始位置,同时需要将 数组中数据包的总长度1^则为第6个数据包的长度,此时将数组中存储的数据包总个数a置 为1;检测时,先取出第五个数据包放入一个临时数组中,再取出第六个数据包与第五个数 据包进行拼接后,再对拼接后的两个数据包进行特征检测,此时检测时就不是零拷贝,相比 较步骤⑵的情况,检测性能偏低。

[0032] 对后续的数据包特征检测,方法同步骤(2)和步骤(3)相同,本领域技术人员根据 上述方法即可实现,此处不再累赘说明。

[0033] 本发明能更加全面、准确的对数据包中的特征进行检测,本实施例中以检测特征 test_feature为例,test_#在与第5个数据包中,feature存在于第6个数据包中,若采用单 包检测方式,则无法检测出该特征,但采用本发明提供的方法,则可以检测出此特征,避免 了特征的漏检,同时在数据包存储时,采用环形队列的存储方式,减少了内存的占用空间, 特征检测性能高。

[0034] 检测效果分析

[0035] 数据包中关键字的检测性能通常通过数据吞吐和检测的准确率来衡量,数据吞吐 越大说明检测的数率越高,同时准确率越高说明检测的结果越可靠。本实施例基于IP S (Iinux四核平台),分别采用基于单包的检测方法、基于数组的检测方法和基于本发明的环 形队列的检测方法,用BPS测试仪对数据包中的关键字进行检测,检测结果如表1、表2、表3 所示。

Figure CN107465570AD00061

Figure CN107465570AD00071

[0043] 通过表1、表2、表3的对比可知,在相同的时间段内,基于单包的检测方法的数据吞 吐量略微大于本发明,但单包的检测方法的准确率只有90%,而本发明的检测准确性却为 100%,而检测结果的准确率对关键字检测来说是至关重要的。同时在相同时间内基于数组 的检测方法虽然准确率和本发明的方法相同,但是在数据吞吐量上,本发明要高于数组的 检测方法的。

Claims (7)

1. 一种基于环形队列的数据包关键字检测方法,其特征在于,该方法为:生成一个能够 存储S个数据包的数组,将接收到的第i个数据包作为当前数据包依次存入所述的数组中, 其中i多1,最后根据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关 键字检测。
2. 根据权利要求1所述的基于环形队列的数据包关键字检测方法,其特征在于,所述将 接收到的第i个数据包作为当前数据包依次存入所述的数组中之后,该方法还包括:同时确 定数组中数据包的总长度为L1、数组中存储的数据包的总个数a、以及上一个数据包的长度 L2、当前数据包的长度L3。
3. 根据权利要求2所述的基于环形队列的数据包关键字检测方法,其特征在于,所述根 据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关键字检测,具体为: 当i = 1时,将当前数据包存入所述数组的起始位置,并取出第一个数据包单独进行关键字 检测。
4. 根据权利要求2所述的基于环形队列的数据包关键字检测方法,其特征在于,所述根 据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关键字检测,具体为: 当l<i$s时,根据LhI^L3得到上一个数据包的起始偏移,根据该起始偏移、上一个数据包 的长度及当前数据包的长度,取出上一个数据包和当前数据包进行关键字检测。
5. 根据权利要求2所述的基于环形队列的数据包关键字检测方法,其特征在于,所述根 据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关键字检测,具体为: 当i= (ns+1)时,(其中η多1)将当前数据包存入所述数组的起始位置,将此时数组中数据包 的总长度1^置为第(ns+Ι)个数据包的长度,将此时数组中存储的数据包的总个数a置为1; 先取出第ns个数据包存入一个临时数组中,再取出第(ns+Ι)个数据包与第ns个数据包进行 拼接后,对拼接后的两个数据包进行特征检测。
6. 根据权利要求2所述的基于环形队列的数据包关键字检测方法,其特征在于,所述根 据所述第i个数据包的位置关系从所述数组对应位置取出数据包进行关键字检测,具体为: 当(ns+1) <i< (n+1) s时,根据L1U3得到上一个数据包的起始偏移(偏移地址),根据该 起始偏移、上一个数据包的长度及当前数据包的长度,取出上一个数据包和当前数据包进 行特征检测。
7. 根据权利要求3-6任一项所述的基于环形队列的数据包关键字检测方法,其特征在 于,所述s的取值为:5<s<10。
CN201710564088.3A 2017-07-12 2017-07-12 基于环形队列的数据包关键字检测方法 CN107465570B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710564088.3A CN107465570B (zh) 2017-07-12 2017-07-12 基于环形队列的数据包关键字检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710564088.3A CN107465570B (zh) 2017-07-12 2017-07-12 基于环形队列的数据包关键字检测方法

Publications (2)

Publication Number Publication Date
CN107465570A true CN107465570A (zh) 2017-12-12
CN107465570B CN107465570B (zh) 2020-12-15

Family

ID=60546237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710564088.3A CN107465570B (zh) 2017-07-12 2017-07-12 基于环形队列的数据包关键字检测方法

Country Status (1)

Country Link
CN (1) CN107465570B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964322A (zh) * 2006-11-24 2007-05-16 南京大学 一种基于np和bs的千兆nids并行处理的方法
CN101026576A (zh) * 2007-01-19 2007-08-29 杭州华为三康技术有限公司 兼顾匹配策略的处理分段报文串模式匹配的方法及装置
CN101252444A (zh) * 2008-04-03 2008-08-27 华为技术有限公司 报文特征的检测方法及装置
CN101710898A (zh) * 2009-11-06 2010-05-19 北京理工大学 一种应用软件通信协议特征的描述方法
CN102404169A (zh) * 2011-11-15 2012-04-04 北京天融信科技有限公司 一种利用内容加速卡实现内容检测的装置和方法
CN103309882A (zh) * 2012-03-13 2013-09-18 北京启明星辰信息技术股份有限公司 一种多模式下匹配字符串的方法及系统
CN103533450A (zh) * 2013-06-09 2014-01-22 浙江宇视科技有限公司 一种媒体流可靠传输和接收的方法以及装置
CN105471548A (zh) * 2015-11-04 2016-04-06 中国直升机设计研究所 一种网络数据包解析及分发方法
US9578141B2 (en) * 2013-11-03 2017-02-21 Ixia Packet flow modification
US20170094527A1 (en) * 2015-09-28 2017-03-30 Department 13, LLC Unmanned Aerial Vehicle Intrusion Detection and Countermeasures

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964322A (zh) * 2006-11-24 2007-05-16 南京大学 一种基于np和bs的千兆nids并行处理的方法
CN101026576A (zh) * 2007-01-19 2007-08-29 杭州华为三康技术有限公司 兼顾匹配策略的处理分段报文串模式匹配的方法及装置
CN101252444A (zh) * 2008-04-03 2008-08-27 华为技术有限公司 报文特征的检测方法及装置
CN101710898A (zh) * 2009-11-06 2010-05-19 北京理工大学 一种应用软件通信协议特征的描述方法
CN102404169A (zh) * 2011-11-15 2012-04-04 北京天融信科技有限公司 一种利用内容加速卡实现内容检测的装置和方法
CN103309882A (zh) * 2012-03-13 2013-09-18 北京启明星辰信息技术股份有限公司 一种多模式下匹配字符串的方法及系统
CN103533450A (zh) * 2013-06-09 2014-01-22 浙江宇视科技有限公司 一种媒体流可靠传输和接收的方法以及装置
US9578141B2 (en) * 2013-11-03 2017-02-21 Ixia Packet flow modification
US20170094527A1 (en) * 2015-09-28 2017-03-30 Department 13, LLC Unmanned Aerial Vehicle Intrusion Detection and Countermeasures
CN105471548A (zh) * 2015-11-04 2016-04-06 中国直升机设计研究所 一种网络数据包解析及分发方法

Also Published As

Publication number Publication date
CN107465570B (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
US8880554B2 (en) Method and apparatus for high performance, updatable, and deterministic hash table for network equipment
Cui et al. Parallel distributed processing of constrained skyline queries by filtering
US9223829B2 (en) Interdistinct operator
Becchetti et al. Efficient semi-streaming algorithms for local triangle counting in massive graphs
CN101795229B (zh) 用于转发具有层次结构化可变长度标识符的分组的系统
Quisquater et al. How easy is collision search? Application to DES
US7930547B2 (en) High accuracy bloom filter using partitioned hashing
Azam et al. Common fixed points of two maps in cone metric spaces
KR101153033B1 (ko) 사본 탐지 및 삭제 방법
Comer et al. Complexity of trie index construction
EP3519989A1 (en) Query optimized distributed ledger system
US8266506B2 (en) Method and apparatus for multiset membership testing using combinatorial bloom filters
US8843502B2 (en) Sorting a dataset of incrementally received data
US9270698B2 (en) Filter for network intrusion and virus detection
CN107040582A (zh) 一种数据处理方法及装置
CN107729471A (zh) 一种区块链及其生成方法与设备
EP2490393B1 (de) Verfahren und Vorrichtung zur Analyse von Datenpaketen
US7499941B2 (en) Pipeline regular expression matching
CN102648468B (zh) 表检索装置、表检索方法以及表检索系统
Kirsch et al. Hash-based techniques for high-speed packet processing
KR20190111124A (ko) KVS Tree
US20140379677A1 (en) Test sandbox in production systems during productive use
CN102915347B (zh) 一种分布式数据流聚类方法及系统
CN107040585A (zh) 一种业务校验的方法及装置
CN103714013B (zh) 一种文件系统的存储空间的配置方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant