CN111353018A - 基于深度包检测的数据处理方法、装置和网络设备 - Google Patents

基于深度包检测的数据处理方法、装置和网络设备 Download PDF

Info

Publication number
CN111353018A
CN111353018A CN202010114129.0A CN202010114129A CN111353018A CN 111353018 A CN111353018 A CN 111353018A CN 202010114129 A CN202010114129 A CN 202010114129A CN 111353018 A CN111353018 A CN 111353018A
Authority
CN
China
Prior art keywords
rule
sub
rules
determining
packet inspection
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN202010114129.0A
Other languages
English (en)
Other versions
CN111353018B (zh
Inventor
张宁
张伟
邹昕
王晖
李高超
李政
陈训逊
云晓春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPtech Information Technology Co Ltd
Original Assignee
Hangzhou DPtech Information Technology Co Ltd
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 Hangzhou DPtech Information Technology Co Ltd filed Critical Hangzhou DPtech Information Technology Co Ltd
Priority to CN202010114129.0A priority Critical patent/CN111353018B/zh
Publication of CN111353018A publication Critical patent/CN111353018A/zh
Application granted granted Critical
Publication of CN111353018B publication Critical patent/CN111353018B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于深度包检测的数据处理方法、装置和网络设备。涉及通信技术领域,该方法包括:通过基于所述第一部分在预先确定的第一部分的多个基于深度包检测检的子规则中进行匹配,确定匹配成功的第一子规则的位置;以及基于所述第一子规则的位置和所述第二部分在预先确定的第二部分的多个基于深度包检测的子规则中进行匹配,确定匹配成功的第二子规则,并将所述第一子规则和所述第二子规则对应的基于深度包检测检的第一规则作为所述待检测报文的命中结果,以此将较长的关键字规则分为两部分分别进行匹配,并在第二次匹配的时候,结合前一部分的位置,可以解决由于TCAM特性导致的前一部分字节相同的关键字规则可能不命中的问题。

Description

基于深度包检测的数据处理方法、装置和网络设备
技术领域
本发明涉及通信技术领域,尤其是涉及一种基于深度包检测的数据处理方法、装置和网络设备。
背景技术
使用深度包检测可以发现、识别、分类、重新路由或阻止具有特殊数据或代码有效载荷的数据包,而传统的包过滤只能检测数据包包头,不能发现这些数据包。
深度检测技术简单来说就是用预定义的字符串和网络报文进行匹配,在某设备中定义了一种关键字规则:
关键字规则包含两部分,报文关键字和掩码字段(为方便介绍,本文中关键字掩码字段为全掩),关键字和掩码为十六进制形式。该规则是为了匹配网络报文。关键字和掩码长度最大为128字节,该规则可以设定起始偏移位置,起始位置可以是MAC头、二层报文头、IP头。
关键字规则使用TCAM实现规则匹配,由于TCAM的特性,可以实现规则的快速匹配。规则在TCAM的存放方式和顺序,规则在TCAM里连续存放,例如TCAM中总空间数量为100,每个空间长度为144,规则加载时,按顺序从第一空间开始寻找可用的空间,直到查询到100并且总数量小于100时,从第一空间重新开始查找可用空间。
但TCAM匹配存在以下特性:一次匹配过程只能输出一个匹配结果,优先输出第一个位置较小的匹配结果,即位置越小优先级越高;匹配长度存在限制,一次最多可以匹配72字节的长度,所以针对关键字规则需要进行2次匹配过程才可以得到匹配结果,第一次匹配所有规则的前72字节,第二次匹配第一次匹配结果对应的后56字节。
发明内容
本发明的目的在于提供一种基于深度包检测的数据处理方法、装置和网络设备,以缓解了前一部分字节相同的关键字规则可能不命中的问题。
第一方面,实施例提供一种基于深度包检测的数据处理方法,应用于网络设备,所述方法包括:
确定待检测报文,所述待检测报文包括第一部分和第二部分;
基于所述第一部分在预先确定的第一部分的多个基于深度包检测检的子规则中进行匹配,确定匹配成功的第一子规则的位置;
基于所述第一子规则的位置和所述第二部分在预先确定的第二部分的多个基于深度包检测的子规则中进行匹配,确定匹配成功的第二子规则,并将所述第一子规则和所述第二子规则对应的基于深度包检测检的第一规则作为所述待检测报文的命中结果。
在可选的实施方式中,每个规则包括第一部分的子规则和第二部分的子规则;每个规则对应有规则标记和规则位置;所述规则标记用于指示该规则的第一部分的子规则是否为空。
在可选的实施方式中,还包括:
确定第二规则的规则标记,所述第二规则为待删除的规则;
如果所述第二规则的规则标记指示所述第二规则的第一部分的子规则不为空,则确定所述第二规则的第一部分的子规则的位置是否存在于其他第二部分的子规则中;
如果所述第二规则的第一部分的子规则的位置存在于第三规则的第二部分的子规则中,则将所述第三规则的第一部分的子规则更新为所述第二规则的第一部分的子规则,并基于所述第三规则更新的第一部分的子规则的位置,更新所述第三规则的第二部分的子规则中第一部分的子规则的位置,更新所述第三规则的规则标记为指示所述第三规则的第一部分的子规则不为空;
删除所述第二规则。
在可选的实施方式中,所述第三规则包括多个;
将所述第三规则的第一部分的子规则更新为所述第二规则的第一部分的子规则,并基于所述第三规则更新的第一部分的子规则的位置,更新所述第三规则的第二部分的子规则中第一部分的子规则的位置,更新所述第三规则的规则标记为指示所述第三规则的第一部分的子规则不为空的步骤,包括:
在多个第三规则中选择一个;
将选定的第三规则的第一部分的子规则更新为所述第二规则的第一部分的子规则,并基于所述选定的第三规则更新的第一部分的子规则的位置,更新所述多个第三规则的第二部分的子规则中第一部分的子规则的位置,更新所述选定的第三规则的规则标记为指示所述选定的第三规则的第一部分的子规则不为空。
在可选的实施方式中,还包括:
确定新的第四规则,以及所述新的第四规则的存储空间,所述第四规则的存储空间包括第一子空间和第二子空间;
基于本地的规则确定是否存在与所述第四规则的第一部分的子规则相同的规则;
如果本地的规则中存在与所述第四规则的第一部的子规则相同的第五规则,且所述第五规则的第一部分的子规则不为空,则确定所述第五规则的第一部分的子规则的位置;
将所述第四规则的第一部分的子规则对应的第一子空间设置为空,以及将所述第五规则的第一部分的子规则的位置和所述第四规则的第二部分的子规则存储在第二子空间中;
将所述第四规则的规则标记设置为指示所述第四规则的第一部分的子规则为空。
在可选的实施方式中,所述第一部分的长度为72字节,所述第二部分的长度为56字节。
在可选的实施方式中,规则通过两个长度为72字节的空间存储。
第二方面,实施例提供一种基于深度包检测的数据处理装置,应用于网络设备,所述装置包括:
确定模块,用于确定待检测报文,所述待检测报文包括第一部分和第二部分;
第一匹配模块,用于基于所述第一部分在预先确定的第一部分的多个基于深度包检测检的子规则中进行匹配,确定匹配成功的第一子规则的位置;
第二匹配模块,用于基于所述第一子规则的位置和所述第二部分在预先确定的第二部分的多个基于深度包检测的子规则中进行匹配,确定匹配成功的第二子规则,并将所述第一子规则和所述第二子规则对应的基于深度包检测检的第一规则作为所述待检测报文的命中结果。
第三方面,实施例提供一种网络设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式任一项所述的方法的步骤。
第四方面,实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述前述实施方式任一项所述的方法。
本发明提供的一种基于深度包检测的数据处理方法、装置和网络设备。通过基于所述第一部分在预先确定的第一部分的多个基于深度包检测检的子规则中进行匹配,确定匹配成功的第一子规则的位置;以及基于所述第一子规则的位置和所述第二部分在预先确定的第二部分的多个基于深度包检测的子规则中进行匹配,确定匹配成功的第二子规则,并将所述第一子规则和所述第二子规则对应的基于深度包检测检的第一规则作为所述待检测报文的命中结果,以此将较长的关键字规则分为两部分分别进行匹配,并在第二次匹配的时候,结合前一部分的位置,可以解决由于TCAM特性导致的前一部分字节相同的关键字规则可能不命中的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一个规则与报文示例;
图2为本发明实施例提供的一种基于深度包检测的数据处理方法流程示意图;
图3为本发明实施例提供的一个规则对应的存储结构示例;
图4为本发明实施例提供的一个规则与报文示例;
图5为本发明实施例提供的一个规则与报文示例;
图6为本发明实施例提供的一种基于深度包检测的数据处理装置结构示意图;
图7为本发明实施例提供的一种网络设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,深度包检测(deep packet inspection,DPI)是一种先进的包过滤方法,它在开放系统互连(OSI)参考模型的应用层中起作用。是一种计算机网络数据包过滤技术,用来检查通过检测点之数据包的数据部分(亦可能包含其标头),以搜索不匹配规范之协议、病毒、垃圾邮件、入侵,或以预定之准则来决定数据包是否可通过或需被路由至其他不同目的地,亦或是为了收集统计数据之目的。
三态内容寻址存储器(ternary content addressable memory,TCAM),主要用于快速查找ACL、路由等表项。它是从CAM的基础上发展而来的。一般的CAM存储器中每个bit位的状态只有两个,“0”或“1”,而TCAM中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’t care”状态,所以称为“三态”,它是通过掩码来实现的,正是TCAM的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找,而CAM没有第三种状态,所以只能进行精确匹配查找。
由于TCAM的特性,当匹配的关键字长度超过72字节时,会存在一个问题:当存在多条前72字节相同的规则时,只能命中第一条规则。例如:如图1所示,三条规则RULE1(规则1)、RULE2、RULE3,三条规则的关键字长度为128字节,掩码为全掩,他们的前72字节相同,全部为字符A,后面56字节不同,分别为字符B、C、D。如果存在一个报文M,该报文为72字节A和56字节D,通过图示,该报文应该和RULE3进行匹配。
但如果RULE1、RULE2、RULE3三条规则按照顺序下发,在TCAM中的存储位置分别为第一空间、第二空间、第三空间。关键字规则进行两次规则匹配,提取报文M的128字节报文内容,报文M在第一次匹配时,因为第一次匹配的前72字节相同,会命中RULE1,第二次匹配过程,报文和RULE1的后56字节进行匹配,但是报文M的后56字节和RULE1的后56字节不同,得到的结果是该报文M没有匹配任何规则。
为了解决上述问题,本发明实施例提供了一种基于深度包检测的数据处理方法、装置和网络设备。以缓解了前一部分字节相同的关键字规则可能不命中的问题。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图2为本发明实施例提供的一种基于深度包检测的数据处理方法流程示意图。如图2所示,应用于网络设备,该方法包括:
S210,确定待检测报文,该待检测报文包括第一部分和第二部分;
其中待检测报文可以为原报文中的一部分内容。例如。可以从原报文中提取到128字节的内容,该128字节包括前72字节的第一部分和后56字节的第二部分。
S220,基于第一部分在预先确定的第一部分的多个基于深度包检测检的子规则中进行匹配,确定匹配成功的第一子规则的位置;
每个规则包括第一部分的子规则和第二部分的子规则;每个规则对应有规则标记和规则位置;规则标记用于指示该规则的第一部分的子规则是否为空。
作为一个示例,如图3所示,关键字规则的关键字内容分为PART1、PART2、规则标记、RULEINDEX(规则位置),他们TCAM中占用一个空间。其中,PART1为前72字节;PART2为前72字节的位置(还可以称为INDEX或者索引)+后56字节。
另外,该规则可以通过两个长度为72字节的空间存储。该规则标记和RULEINDEX可以通过对应的属性空间存储。
S230,基于第一子规则的位置和第二部分在预先确定的第二部分的多个基于深度包检测的子规则中进行匹配,确定匹配成功的第二子规则,并将第一子规则和第二子规则对应的基于深度包检测检的第一规则作为待检测报文的命中结果。
作为一个示例,如图4所示,当不存在前72字节相同规则的情况时,以图4的规则和报文为例,存在三条规则:RULE1:存储位置为INDEX1,规则标记为空,第一部分的子规则为前72字节,也即“AAAAAAAAAA....AAAAA”,第二部分的子规则为后56字节,也即“BBBBBB....BBBBB”,该第二部分的子规则与INDEX1对应;RULE2:存储位置为INDEX2规则标记为空,第一部分的子规则为前72字节,也即“EEEEEEEEE....EEEEEE”,第二部分的子规则为后56字节,也即“CCCCCC....CCCCC”,该第二部分的子规则与INDEX2对应;RULE3:存储位置为INDEX3,规则标记为空,第一部分的子规则为前72字节,也即“FFFFFFFFFF....FFFFF”,第二部分的子规则为后56字节,也即“DDDDDD....DDDDD”,该第二部分的子规则与INDEX3对应。
关键字规则匹配过程还是进行两次查找,报文M中提取到128字节的原始报文内容(72字节A+56字节B),第一次查找得到RULE1,得到该规则对应的INDEX1,第二次查找INDEX1加56字节“B”,匹配到RULE1,则命中结果为RULE1。
作为另一个示例,如图5所示,存在三条规则:RULE1:存储位置为INDEX1,规则标记为空,第一部分的子规则为前72字节,也即“AAAAAAAAAA....AAAAA”,第二部分的子规则为后56字节,也即“BBBBBB....BBBBB”,该第二部分的子规则与INDEX1对应;RULE2:存储位置为INDEX2规则标记为R-NO-FIRST,第一部分的子规则为前72字节,也即“AAAAAAAAAA....AAAAA”,下发到TCAM后第一部分为空,第二部分的子规则为后56字节,也即“CCCCCC....CCCCC”,该第二部分的子规则与INDEX2对应;RULE3:存储位置为INDEX3,规则标记为R-NO-FIRST,第一部分的子规则为前72字节,也即“AAAAAAAAAA....AAAAA”,下发到TCAM后第一部分为空,第二部分的子规则为后56字节,也即“DDDDDD....DDDDD”,该第二部分的子规则与INDEX3对应;
关键字规则匹配过程还是进行两次查找,报文M中提取到128字节的原始报文内容(72字节A+56字节D),第一次查找得到RULE1,得到该规则对应的INDEX1,第二次查找INDEX1加56字节“D”,匹配到RULE3,则命中结果为RULE3。
本发明实施例通过将较长的关键字规则分为两部分分别进行匹配,并在第二次匹配的时候,结合前一部分的位置,以此可以解决由于TCAM特性导致的前一部分字节相同的关键字规则可能不命中的问题。
在一些实施例中,还可以对规则进行增删。也可以称为添加或删除。
作为一个示例,可以通过如下步骤来实现对规则的删除:
步骤1.1),确定第二规则的规则标记,第二规则为待删除的规则。
如果第二规则的规则标记指示第二规则的第一部分的子规则为空,则执行步骤步骤1.5)。
步骤1.2),如果第二规则的规则标记指示第二规则的第一部分的子规则不为空,则确定第二规则的第一部分的子规则的位置是否存在于其他第二部分的子规则中。
如果第二规则的第一部分的子规则的位置未存在于第三规则的第二部分的子规则中,则执行步骤步骤1.5)。
步骤1.4),如果第二规则的第一部分的子规则的位置存在于第三规则的第二部分的子规则中,则将第三规则的第一部分的子规则更新为第二规则的第一部分的子规则,并基于第三规则更新的第一部分的子规则的位置,更新第三规则的第二部分的子规则中第一部分的子规则的位置,更新第三规则的规则标记为指示第三规则的第一部分的子规则不为空;
步骤1.5),删除第二规则。
另外,在一些实施例中,第三规则可以包括多个;步骤1.4)具体可以包括:
步骤2.1),在多个第三规则中选择一个;
步骤2.2),将选定的第三规则的第一部分的子规则更新为第二规则的第一部分的子规则,并基于选定的第三规则更新的第一部分的子规则的位置,更新多个第三规则的第二部分的子规则中第一部分的子规则的位置,更新选定的第三规则的规则标记为指示选定的第三规则的第一部分的子规则不为空。
例如,存在多条前72字节相同的规则时,规则添加和删除过程中,这多条规则中需要有一条规则的前72字节要下发。对于关键字删除时的过程:当确定要删除一条规则R-D时,该规则的位置为R-D-INDEX,可以查询此规则的规则标记是否为R-NO-FIRST,其中,R-NO-FIRST用于指示第一部分的子规则为空;如果不是,需要查找是否有规则的第二部分的子规则对应的INDEX是R-D-INDEX。如果有,例如,子规则分别为R-S1、R-S2,需要选取一条规则R-S1作为下发前72字节的规则,并更新R-S2规则的第二部分中的INDEX为R-S1的INDEX;如果没有,从TCAM空间中删除R-D规则;如果是,从TCAM空间中删除R-D规则。
在一些实施例中,可以通过如下步骤来实现对规则的增加。
步骤3.1),确定新的第四规则,以及新的第四规则的存储空间,第四规则的存储空间包括第一子空间和第二子空间;
步骤3.2),基于本地的规则确定是否存在与第四规则的第一部分的子规则相同的规则;
如果本地的规则中不存在与第四规则的第一部的子规则相同的规则,则将将第四规则的第一部分的子规则存储在第一子空间中,将第一子空间的位置和第四规则的第二部分的子规则存储在第二子空间中。并将第四规则的规则标记设置为指示第四规则的第一部分的子规则为非空。
步骤3.3),如果本地的规则中存在与第四规则的第一部的子规则相同的第五规则,且第五规则的第一部分的子规则不为空,则确定第五规则的第一部分的子规则的位置;
步骤3.4),将第四规则的第一部分的子规则对应的第一子空间设置为空,以及将第五规则的第一部分的子规则的位置和第四规则的第二部分的子规则存储在第二子空间中;
步骤3.5),将第四规则的规则标记设置为指示第四规则的第一部分的子规则为空。
例如,关键字规则添加时的过程:当确定需要添加一条规则R-N时,在TCAM表项中找到一个空间R-N-INDEX;查询是设备中是否存在一条和本规则前72字节相同的并且规则标记为R-FIRST的规则R-S,并获取R-S的存储位置R-S-INDEX;如果不存在,规则差分为两部分进行下发,其中第一部分R-N-1前72字节下发位置为R-N-INDEX,第二部分R-N-2为R-N-INDEX加后56字节;如果存在,新规则R-N-1第一部分下发内容为空,下发第二部分R-N-2为R-S-INDEX加R-N的后56字节;并将R-N规则的规则标记标记为R-NO-FIRST。
图6为本发明实施例提供的一种基于深度包检测的数据处理装置结构示意图,如图6所示,应用于网络设备,该装置包括:
确定模块601,用于确定待检测报文,待检测报文包括第一部分和第二部分;
第一匹配模块602,用于基于第一部分在预先确定的第一部分的多个基于深度包检测检的子规则中进行匹配,确定匹配成功的第一子规则的位置;
第二匹配模块603,用于基于第一子规则的位置和第二部分在预先确定的第二部分的多个基于深度包检测的子规则中进行匹配,确定匹配成功的第二子规则,并将第一子规则和第二子规则对应的基于深度包检测检的第一规则作为待检测报文的命中结果。
在一些实施例中,每个规则包括第一部分的子规则和第二部分的子规则;每个规则对应有规则标记和规则位置;规则标记用于指示该规则的第一部分的子规则是否为空。
在一些实施例中,还包括删除模块,用于:
确定第二规则的规则标记,第二规则为待删除的规则;
如果第二规则的规则标记指示第二规则的第一部分的子规则不为空,则确定第二规则的第一部分的子规则的位置是否存在于其他第二部分的子规则中;
如果第二规则的第一部分的子规则的位置存在于第三规则的第二部分的子规则中,则将第三规则的第一部分的子规则更新为第二规则的第一部分的子规则,并基于第三规则更新的第一部分的子规则的位置,更新第三规则的第二部分的子规则中第一部分的子规则的位置,更新第三规则的规则标记为指示第三规则的第一部分的子规则不为空;
删除第二规则。
在一些实施例中,第三规则包括多个;删除模块具体用于:
在多个第三规则中选择一个;
将选定的第三规则的第一部分的子规则更新为第二规则的第一部分的子规则,并基于选定的第三规则更新的第一部分的子规则的位置,更新多个第三规则的第二部分的子规则中第一部分的子规则的位置,更新选定的第三规则的规则标记为指示选定的第三规则的第一部分的子规则不为空。
在一些实施例中,还包括添加模块,用于:
确定新的第四规则,以及新的第四规则的存储空间,第四规则的存储空间包括第一子空间和第二子空间;
基于本地的规则确定是否存在与第四规则的第一部分的子规则相同的规则;
如果本地的规则中存在与第四规则的第一部的子规则相同的第五规则,且第五规则的第一部分的子规则不为空,则确定第五规则的第一部分的子规则的位置;
将第四规则的第一部分的子规则对应的第一子空间设置为空,以及将第五规则的第一部分的子规则的位置和第四规则的第二部分的子规则存储在第二子空间中;
将第四规则的规则标记设置为指示第四规则的第一部分的子规则为空。
在一些实施例中,第一部分的长度为72字节,第二部分的长度为56字节。
在一些实施例中,规则通过两个长度为72字节的空间存储。
本申请实施例提供的基于深度包检测的数据处理装置,与上述实施例提供的基于深度包检测的数据处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
如图7所示,本申请实施例提供的一种网络设备700,包括:处理器701、存储器702和总线,所述存储器702存储有所述处理器701可执行的机器可读指令,当网络设备运行时,所述处理器701与所述存储器702之间通过总线通信,所述处理器701执行所述机器可读指令,以执行如上述基于深度包检测的数据处理方法的步骤。
具体地,上述存储器702和处理器701能够为通用的存储器和处理器,这里不做具体限定,当处理器701运行存储器702存储的计算机程序时,能够执行上述基于深度包检测的数据处理方法。
对应于上述基于深度包检测的数据处理方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述基于深度包检测的数据处理方法的步骤。
本申请实施例所提供的基于深度包检测的数据处理装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台分流设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述移动控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。

Claims (10)

1.一种基于深度包检测的数据处理方法,其特征在于,应用于网络设备,所述方法包括:
确定待检测报文,所述待检测报文包括第一部分和第二部分;
基于所述第一部分在预先确定的第一部分的多个基于深度包检测检的子规则中进行匹配,确定匹配成功的第一子规则的位置;
基于所述第一子规则的位置和所述第二部分在预先确定的第二部分的多个基于深度包检测的子规则中进行匹配,确定匹配成功的第二子规则,并将所述第一子规则和所述第二子规则对应的基于深度包检测检的第一规则作为所述待检测报文的命中结果。
2.根据权利要求1所述的方法,其特征在于,每个规则包括第一部分的子规则和第二部分的子规则;每个规则对应有规则标记和规则位置;所述规则标记用于指示该规则的第一部分的子规则是否为空。
3.根据权利要求2所述的方法,其特征在于,还包括:
确定第二规则的规则标记,所述第二规则为待删除的规则;
如果所述第二规则的规则标记指示所述第二规则的第一部分的子规则不为空,则确定所述第二规则的第一部分的子规则的位置是否存在于其他第二部分的子规则中;
如果所述第二规则的第一部分的子规则的位置存在于第三规则的第二部分的子规则中,则将所述第三规则的第一部分的子规则更新为所述第二规则的第一部分的子规则,并基于所述第三规则更新的第一部分的子规则的位置,更新所述第三规则的第二部分的子规则中第一部分的子规则的位置,更新所述第三规则的规则标记为指示所述第三规则的第一部分的子规则不为空;
删除所述第二规则。
4.根据权利要求3所述的方法,其特征在于,所述第三规则包括多个;
将所述第三规则的第一部分的子规则更新为所述第二规则的第一部分的子规则,并基于所述第三规则更新的第一部分的子规则的位置,更新所述第三规则的第二部分的子规则中第一部分的子规则的位置,更新所述第三规则的规则标记为指示所述第三规则的第一部分的子规则不为空的步骤,包括:
在多个第三规则中选择一个;
将选定的第三规则的第一部分的子规则更新为所述第二规则的第一部分的子规则,并基于所述选定的第三规则更新的第一部分的子规则的位置,更新所述多个第三规则的第二部分的子规则中第一部分的子规则的位置,更新所述选定的第三规则的规则标记为指示所述选定的第三规则的第一部分的子规则不为空。
5.根据权利要求2所述的方法,其特征在于,还包括:
确定新的第四规则,以及所述新的第四规则的存储空间,所述第四规则的存储空间包括第一子空间和第二子空间;
基于本地的规则确定是否存在与所述第四规则的第一部分的子规则相同的规则;
如果本地的规则中存在与所述第四规则的第一部的子规则相同的第五规则,且所述第五规则的第一部分的子规则不为空,则确定所述第五规则的第一部分的子规则的位置;
将所述第四规则的第一部分的子规则对应的第一子空间设置为空,以及将所述第五规则的第一部分的子规则的位置和所述第四规则的第二部分的子规则存储在第二子空间中;
将所述第四规则的规则标记设置为指示所述第四规则的第一部分的子规则为空。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述第一部分的长度为72字节,所述第二部分的长度为56字节。
7.根据权利要求6所述的方法,其特征在于,规则通过两个长度为72字节的空间存储。
8.一种基于深度包检测的数据处理装置,其特征在于,应用于网络设备,所述装置包括:
确定模块,用于确定待检测报文,所述待检测报文包括第一部分和第二部分;
第一匹配模块,用于基于所述第一部分在预先确定的第一部分的多个基于深度包检测检的子规则中进行匹配,确定匹配成功的第一子规则的位置;
第二匹配模块,用于基于所述第一子规则的位置和所述第二部分在预先确定的第二部分的多个基于深度包检测的子规则中进行匹配,确定匹配成功的第二子规则,并将所述第一子规则和所述第二子规则对应的基于深度包检测检的第一规则作为所述待检测报文的命中结果。
9.一种网络设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至7任一项所述的方法。
CN202010114129.0A 2020-02-24 2020-02-24 基于深度包检测的数据处理方法、装置和网络设备 Active CN111353018B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010114129.0A CN111353018B (zh) 2020-02-24 2020-02-24 基于深度包检测的数据处理方法、装置和网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010114129.0A CN111353018B (zh) 2020-02-24 2020-02-24 基于深度包检测的数据处理方法、装置和网络设备

Publications (2)

Publication Number Publication Date
CN111353018A true CN111353018A (zh) 2020-06-30
CN111353018B CN111353018B (zh) 2023-11-10

Family

ID=71194221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010114129.0A Active CN111353018B (zh) 2020-02-24 2020-02-24 基于深度包检测的数据处理方法、装置和网络设备

Country Status (1)

Country Link
CN (1) CN111353018B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131356A (zh) * 2020-08-03 2020-12-25 国家计算机网络与信息安全管理中心 一种基于tcam的报文关键字匹配方法和装置

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040044868A1 (en) * 2002-08-30 2004-03-04 Intel Corporation Method and apparatus for high-speed longest prefix match of keys in a memory
CN101364947A (zh) * 2008-09-08 2009-02-11 中兴通讯股份有限公司 一种访问控制列表规则匹配方法及系统
CN101447940A (zh) * 2008-12-23 2009-06-03 杭州华三通信技术有限公司 访问控制列表规则的更新方法和装置
CN101478482A (zh) * 2009-01-08 2009-07-08 中国人民解放军信息工程大学 报文分类中的非规则匹配方法、装置和系统
CN103973684A (zh) * 2014-05-07 2014-08-06 北京神州绿盟信息安全科技股份有限公司 规则编译匹配方法及装置
US8856203B1 (en) * 2011-02-08 2014-10-07 Pmc-Sierra Us, Inc. System and method for algorithmic TCAM packet classification
CN104145451A (zh) * 2012-08-23 2014-11-12 华为技术有限公司 报文处理方法、深度包检测请求网元和深度包检测设备
CN104348716A (zh) * 2013-07-23 2015-02-11 杭州华三通信技术有限公司 一种报文处理方法及设备
CN106487803A (zh) * 2016-11-10 2017-03-08 深圳市任子行科技开发有限公司 用于大流量网络入侵检测系统的模式匹配算法和系统
CN106878074A (zh) * 2017-02-17 2017-06-20 杭州迪普科技股份有限公司 流量过滤方法及装置
CN108881145A (zh) * 2017-12-26 2018-11-23 北京安天网络安全技术有限公司 入侵检测规则优化方法、装置、电子设备及存储介质
CN109067585A (zh) * 2018-08-15 2018-12-21 杭州迪普科技股份有限公司 一种查询acl表项下发方法及装置
WO2019165883A1 (zh) * 2018-03-01 2019-09-06 中兴通讯股份有限公司 数据的处理方法及装置

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040044868A1 (en) * 2002-08-30 2004-03-04 Intel Corporation Method and apparatus for high-speed longest prefix match of keys in a memory
CN101364947A (zh) * 2008-09-08 2009-02-11 中兴通讯股份有限公司 一种访问控制列表规则匹配方法及系统
CN101447940A (zh) * 2008-12-23 2009-06-03 杭州华三通信技术有限公司 访问控制列表规则的更新方法和装置
CN101478482A (zh) * 2009-01-08 2009-07-08 中国人民解放军信息工程大学 报文分类中的非规则匹配方法、装置和系统
US8856203B1 (en) * 2011-02-08 2014-10-07 Pmc-Sierra Us, Inc. System and method for algorithmic TCAM packet classification
CN104145451A (zh) * 2012-08-23 2014-11-12 华为技术有限公司 报文处理方法、深度包检测请求网元和深度包检测设备
CN104348716A (zh) * 2013-07-23 2015-02-11 杭州华三通信技术有限公司 一种报文处理方法及设备
CN103973684A (zh) * 2014-05-07 2014-08-06 北京神州绿盟信息安全科技股份有限公司 规则编译匹配方法及装置
CN106487803A (zh) * 2016-11-10 2017-03-08 深圳市任子行科技开发有限公司 用于大流量网络入侵检测系统的模式匹配算法和系统
CN106878074A (zh) * 2017-02-17 2017-06-20 杭州迪普科技股份有限公司 流量过滤方法及装置
CN108881145A (zh) * 2017-12-26 2018-11-23 北京安天网络安全技术有限公司 入侵检测规则优化方法、装置、电子设备及存储介质
WO2019165883A1 (zh) * 2018-03-01 2019-09-06 中兴通讯股份有限公司 数据的处理方法及装置
CN109067585A (zh) * 2018-08-15 2018-12-21 杭州迪普科技股份有限公司 一种查询acl表项下发方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
夏军波: "基于硬件支持的高速DPI算法研究", no. 2 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131356A (zh) * 2020-08-03 2020-12-25 国家计算机网络与信息安全管理中心 一种基于tcam的报文关键字匹配方法和装置
CN112131356B (zh) * 2020-08-03 2022-06-07 国家计算机网络与信息安全管理中心 一种基于tcam的报文关键字匹配方法和装置

Also Published As

Publication number Publication date
CN111353018B (zh) 2023-11-10

Similar Documents

Publication Publication Date Title
CN109617927B (zh) 一种匹配安全策略的方法及装置
US10389633B2 (en) Hash-based address matching
CN107122221B (zh) 用于正则表达式的编译器
EP1358739B1 (en) Method and apparatus for routing table management
US7349382B2 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
JP4452183B2 (ja) プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置)
CN110290117B (zh) 一种匹配ip地址的方法及装置
US9984144B2 (en) Efficient lookup of TCAM-like rules in RAM
CN101421991B (zh) 针对拒绝服务攻击的硬件过滤支持
US20160048585A1 (en) Bloom filter with memory element
US9363234B2 (en) Fast update filter
KR20140061359A (ko) 앵커링된 패턴들
WO2009067915A1 (fr) Procede d'identification d'un type de service correspondant a un message et dispositif associe
CN111988231B (zh) 一种掩码五元组规则匹配的方法及装置
US6687715B2 (en) Parallel lookups that keep order
CN111353018A (zh) 基于深度包检测的数据处理方法、装置和网络设备
KR100456671B1 (ko) 네트워크 라우터의 고속 패킷 전달을 위한 병렬 룩업 엔진및 그 방법
CN116232894A (zh) 一种报文处理方法、报文处理装置及存储介质
CN115834478A (zh) 一种利用tcam实现pbr高速转发的方法
US11520884B2 (en) Dummy information insertion device, dummy information insertion method, and storage medium
CN113114574A (zh) 一种报文转发方法及装置
CN113660165A (zh) 一种基于tcam的掩码规则匹配方法、电子设备和存储介质
CN112437096A (zh) 加速策略查找方法及系统
JP3443356B2 (ja) パケット分類装置
CN115941314A (zh) 一种基于snort的规则分类方法

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
GR01 Patent grant