CN103023909A - 一种网络数据包协议识别方法及系统 - Google Patents

一种网络数据包协议识别方法及系统 Download PDF

Info

Publication number
CN103023909A
CN103023909A CN2012105673704A CN201210567370A CN103023909A CN 103023909 A CN103023909 A CN 103023909A CN 2012105673704 A CN2012105673704 A CN 2012105673704A CN 201210567370 A CN201210567370 A CN 201210567370A CN 103023909 A CN103023909 A CN 103023909A
Authority
CN
China
Prior art keywords
protocol
agreement
packet
keyword
list
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
CN2012105673704A
Other languages
English (en)
Other versions
CN103023909B (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.)
Kelai Network Technology Co.,Ltd.
Original Assignee
CHENGDU COLASOFT 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 CHENGDU COLASOFT Co Ltd filed Critical CHENGDU COLASOFT Co Ltd
Priority to CN201210567370.4A priority Critical patent/CN103023909B/zh
Publication of CN103023909A publication Critical patent/CN103023909A/zh
Application granted granted Critical
Publication of CN103023909B publication Critical patent/CN103023909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种网络数据包协议识别方法,包括协议配置步骤和数据包协议识别步骤,协议配置步骤包括:存储协议的协议特征信息;建立协议树;建立特征值表和判断逻辑;所述数据包协议识别步骤包括:获取待识别的数据包;选取识别数据包协议的协议树;将从数据包中读取到的关键字的数值与特征值表和判断逻辑进行比对,识别出数据包协议。本发明还提供了一种网络数据包协议识别系统。本发明方法及系统,根据所有协议特征信息建立特征值表和判断逻辑,通过一次查表即可以快速的找出数据包所使用的协议,识别效率高,且增加新协议时只需要添加新协议的协议识别信息,扩展性强。

Description

一种网络数据包协议识别方法及系统
技术领域
本发明涉及网络技术领域,特别涉及一种网络数据包协议识别方法及系统。
背景技术
数据包(Packet)是在封包交换网络(例如,因特网)中的最小传输数据单元。网络传输协议(简称协议)是为计算机网络中进行数据交换而建立的规则、标准或约定的集合,是数据包中信息格式的规定。网络设备在收到网络数据包后,需要解析出数据包的内容才能完成相应的处理功能,首先需要识别数据包使用的网络协议才能正确解析出数据包的内容。随着网络技术的不断发展,新的网络协议不断涌现,要求数据包协议识别需要具有较好的扩展性。目前通常采用的数据包协议识别方法是:针对所有协议配置一套通用的识别模块,提取每种协议的特征编写为一个插件,加入到通用识别模块中以完成识别,添加新协议时只需要将新协议的特征编写为一个插件添加到通用识别模块即可,扩展性好。但是通用识别模块适用于所有协议,输入待识别的数据包后,需要加载每一种协议的插件,然后将数据包中的关键字与通用识别模块中的每一种协议插件中协议的特征值进行比较。一种协议有一个插件,与每一个插件进行比较都需要提取一次数据包中的关键字,运行效率低,每秒只能处理数万个数据包。而且,协议越多,识别时需要进行比较的操作就越多,消耗的时间也就越长。随着网络容量的不断扩大,在网络流量分析等应用场合,需要对大量的数据包进行分析和处理,因此目前的数据包协议识别方法不能同时满足扩展性和处理效率的要求。
发明内容
本发明的目的在于克服现有技术中所存在的扩展性和处理效率不能兼顾的不足,提供一种网络数据包协议识别方法,该方法不但具有较好的扩展性,还具有较高的处理效率。本发明的另一目的是提供一种网络数据包协议识别系统。
为了实现上述发明目的,本发明提供了以下技术方案:
一种网络数据包协议识别方法,包括协议配置步骤和数据包协议识别步骤,其中,所述协议配置步骤包括:
A.输入协议的协议特征信息,并存储;
B.根据协议特征信息建立协议树;
C.根据协议特征信息建立特征值表和判断逻辑;
所述数据包协议识别步骤包括:
a.获取待识别的数据包;
b.根据获取数据包的物理介质,选取用于识别数据包协议的协议树;
c.从数据包中读取用于识别数据包协议的关键字的数值,并将读取到的关键字的数值与特征值表和判断逻辑进行比对,识别数据包协议。
根据本发明实施例,步骤A中所述协议特征信息包括:所述协议的名称、所述协议的下级协议名称、所述协议的关键字、特征值、关键字定义和比较方式,所述比较方式包括大于、等于、小于。
根据本发明实施例,所述步骤B中建立协议树的方法是:根据协议特征信息,将一个协议作为一个协议节点,所有具有相同下级协议的协议组成一个节点层,再按照协议的上、下级关系,连接所有协议节点组成协议树,组成同一个节点层的协议节点位于协议树的同一个节点层,所述协议树的入口为物理介质。
根据本发明实施例,步骤C中所述建立特征值表的方法是:遍历存储的所有协议的协议特征信息,选取所有比较方式为等于的协议,一个关键字建立一张特征值表,特征值表中记录该关键字的所有特征值及各特征值对应的协议名称;所述判断逻辑由所有比较方式为大于或小于的协议的名称及该协议的判断条件构成。
根据本发明实施例,所述协议配置步骤中还包括步骤D.将所有特征值表和判断逻辑组织成执行代码,然后对执行代码进编译,生成识别引擎。
根据本发明实施例,所述步骤c从数据包中读取用于识别数据包协议的关键字的数值,并将读取到的关键字的数值与特征值表和判断逻辑进行比对,识别数据包协议包括:
c1.进入协议树的根节点;
c2.从数据包中读取当前节点层中所有的协议节点的关键字在数据包中的数值;
c3.查询当前节点层中所有的协议节点的关键字的特征值表,如果从数据包中读取到的关键字的数值与特征值表中的某个特征值相同,则得出当前协议节点的协议为特征值表中该特征值对应的协议,并进入步骤c5,如果与特征值表中的所有特征值均不同则进入步骤c4;
c4.执行判断逻辑,如果读取的关键字的数值满足判断逻辑中的某判断条件,则得出当前节点协议为该判断条件对应的协议,并进入步骤b5,如果不满足判断逻辑中的任何判断条件,则输出识别结果;
c5.进入协议树中当前节点层的下一个节点层,循环步骤c2~c4。
本发明还提供了一种网络数据包协议识别系统,包括协议配置装置和数据包协议识别装置,其中,所述协议配置装置包括:
协议特征存储单元,用于存储协议的协议特征信息;
协议树生成单元,用于根据协议特征信息生成协议树;
特征值表和判断逻辑生成单元,用于根据协议特征信息,生成识别数据包协议的特征值表和判断逻辑;
所述数据包协议识别装置包括:
数据包采集单元,用于采集待识别的数据包;
协议树选择单元,用于根据获取数据包的物理介质,选取识别数据包协议的协议树;
数据包协议识别单元,用于从待识别数据包中读取关键字的数值,并将读取到的关键字的数值与特征值表和判断逻辑进行比对,识别数据包协议。
根据本发明实施例,所述协议特征信息包括:所述协议的名称、所述协议的下级协议名称、所述协议的关键字、特征值、关键字定义和比较方式,所述比较方式包括大于、等于、小于。
根据本发明实施例,所述协议树生成单元将将一个协议作为一个协议节点,所有具有相同下级协议的协议组成一个节点层,再按照协议的上、下级关系,连接所有协议节点组成协议树,组成同一个节点层的协议节点位于协议树的同一个节点层,所述协议树的入口为物理介质。
根据本发明实施例,所述特征值表由比较方式为等于的协议的名称和该协议的特征值构成;所述判断逻辑由比较方式为大于或小于的协议的名称及该协议的判断条件构成。
根据本发明实施例,所述数据包协议识别单元包括:关键字采集模块,用于从数据包中读取协议树中各协议节点的关键字在数据包中的数值;协议识别模块,用于通过查询特征值表和执行判断逻辑,识别数据包协议:查询特征值表,如果从数据包中读取的关键字的数值与特征值表中某个特征值相同,则得出协议节点的协议为特征值表中该特征值对应的协议,如果读取的关键字的数值与特征值表中任何特征值都不同则执行判断逻辑,如果从数据包中读取的关键字的数值满足判断逻辑中的某个判断条件,则得出协议节点的协议为该判断条件对应的协议,如果不满足判断逻辑中的任何判断条件,则输出识别结果。
与现有技术相比,本发明的有益效果:
1、本发明网络数据包协议识别系统及方法,根据所有协议的协议特征信息建立特征值表和判断逻辑,通过查询特征值表和执行判断逻辑,识别数据包所使用的协议。通过一次查表即可以快速的找出所使用的协议,代替了传统数据包协议识别方法中每个协议的比对操作,将识别效率从O(n)提高到了O(0),提高了网络数据包协议识别性能,系统在支持包括常用的以太网,广域网,无线网在内的800多种协议的情况下,识别效率超过100万个数据包每秒。
2、本发明网络数据包协议识别系统及方法,根据所有协议的协议特征信息建立特征值表或判断逻辑,添加新协议时只需要添加新协议的协议特征信息,再将新协议的协议特征信息添加至相应的特征值表中或者判断逻辑中即可,新协议添加方便,系统的扩展性强。
3、本发明网络数据包协议识别系统及方法还可以识别使用私有协议的数据包,制定或了解私有协议的人员输入并存储该私有协议的协议特征信息,再将私有协议的协议特征信息添加至相应的特征值表中或者判断逻辑中即可,增强了本系统的应用性。
附图说明:
图1为协议配置的流程图。
图2是数据包协议识别流程图。
图3为本发明网络数据包协议识别系统结构框图。
具体实施方式
下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
本发明公开了一种网络数据包协议识别方法,包括协议配置步骤和数据包协议识别步骤。
如图1所示,所述协议配置步骤包括:
S101:输入所有协议的协议特征信息,并存储。
本步骤中,如果是添加新协议,则输入新协议的协议特征信息,并存储。
本步骤中,所述协议特征信息(或者称为协议识别信息)包括:所述协议的下级协议(下级协议可以有多个,例如TCP协议的下级协议有IP、IPv6等);所述协议的关键字,关键字指明关键字在数据包中的位置和长度,即在数据包中的指定位置读取指定长度的数值即为关键字在数据包中的数值;特征值;比较方式(比较方式包括大于、等于和小于);关键字定义。每个协议都具有其独特的协议特征信息,且各个协议的协议特征信息由颁布该协议标准的组织规定并公布,例如通用的协议(比如IP,TCP)是由标准组织(IEEE,IANA)规定并公布的。
本发明方法还可用于识别私有协议。如果是私有协议,则私有协议的协议特征信息由制定或了解该私有协议的人员输入并存储。
需要说明的是,一个数据包具有多种协议,这些协议分层布置,一层套在一层上面。例如,EthernetII\IP\TCP\HTTP表述方式的含义是,数据包开始的部分使用的是EthernetII协议,其上一级是IP协议,再上一级使用TCP协议,再上是HTTP协议。例如,在PC机上访问网页,数据包一般使用的协议形式为:EthernetII\IP\TCP\HTTP,要识别这样的数据包,需要知道EthernetII,IP,TCP,HTTP这4个协议的协议特征信息。如果使用了IPv6,则数据包使用的协议形式是EthernetII\IPv6\TCP\HTTP,要识别这样的数据包,则还需要输入IPv6的协议特征信息,如表1所示:
表1
协议 下级协议 关键字 比较方式 特征值 定义
EthernetII D16[12] 1500 EType=D16[12]
IP EthernetII EType 0x0800 Pro=D8[9]
IPv6 EthernetII EType 0x86dd Pro=D8[6]
TCP IP,IPv6 Pro 6 DP=D16[2],SP=D 16[0]
HTTP TCP DP,SP 80
需要说明的是,EthernetII协议是以太网的初始协议,没有下级协议,只需要指定物理介质即可。物理介质由捕获数据包的硬件决定,如果使用的是以太网卡则物理介质是以太网,如果使用的是无线网卡则物理介质是无线网。
需要说明的是,每个协议都具有关键字,关键字表明了这个关键字在数据包中的位置和长度。有的协议的关键字可以直接读出其在数据包中的位置和长度,如EthernetII,关键字为D16[12],表示该关键字为从数据包第12字节开始的连续两个字节(16个bit),而有的协议的关键字不能直接体现其在数据包中的位置和长度,而是在该协议的下级协议中体现,即从下级协议的关键字定义中可读出该协议关键字在数据包中的位置和长度。例如TCP协议,关键字是协议号Pro,不能直接读出关键字在数据包中的位置和长度,但是在下级协议IP和IPv6的关键字定义中定义了关键字在数据包中的位置和长度,IP协议中Pro=D8[9],关键字在数据包中的位置是第9个字节(8个bit),IPv6协议中Pro=D8[6],关键字在数据包中的位置是第6个字节(8个bit)。在数据包协议识别时,至于选取Pro=D8[9]还是Pro=D8[6],则根据下级协议来选择,如果下级协议是IP协议则选择Pro=D8[9],如果下级协议是IPv6协议则选择Pro=D8[6]。
S102:对所有协议(包括已有的协议和新添加的协议)的协议特征信息进行整合,一个协议作为一个协议节点,所有具有相同下级协议的协议节点组成一个节点层。
S103:根据协议的上、下级协议关系,连接所有协议节点组建成协议树,组成同一个节点层的所有协议节点位于协议树的同一层,协议树的入口为物理介质。
例如,物理介质为以太网的协议树的形式为:
以太网
Figure BDA00002639438400091
需要说明的是,上述列举的协议树不是一个完整的协议树,仅是展示了表1中记录的所有协议在完整的协议树中的组成部分。EthernetII作为协议树的根节点;具有相同下级协议EthernetII的协议IP和IPv6组成一个节点层,即IP和IPv6位于协议树的同一个节点层,且在协议树中均位于根节点的下一个节点层;IP的上级协议为TCP,TCP作为一个协议节点在协议树中位于IP的下一个节点层;TCP的上级协议为HTTP,HTTP作为一个协议节点在协议树中位于TCP的下一个节点层;IPv6的上级协议为TCP,TCP作为一个协议节点在协议树中位于IPv6的下一个节点层;TCP的上级协议为HTTP,HTTP作为一个协议节点在协议树中位于TCP的下一个节点层。
S104:遍历所有协议的协议特征信息,收集所有比较方式为等于的协议,根据协议的关键字和特征值,一个关键字建立一张特征值表,特征值表中记录该关键字的所有特征值及各特征值对应的协议名称。例如,关键字为EType的特征值表的形式如表2(表2只展示了EType的特征值表的部分结构,并没有将特征值表中记录的所有特征值及相应的协议进行全部展示)所示:
表2
特征值 协议
0x0800 IP
0x0806 ARP
0x8137 IPX
0x814C SNMP
0x880B PPP
0x880C GSMP
0x88CC LLDP
0x86DD IPv6
0xFFFF
特征值表中特征值对应的协议为“无”的情况表示还没有一种协议的特征值为0xFFFF,可以定义一种特征值为0xFFFF的新协议。即如果一种新协议的特征值为0xFFFF,则将该新协议添加至EType的特征值表中。
S105:收集所有比较形式为大于或小于的协议的判断条件,建立判断逻辑,所述判断逻辑由各协议的名称及该协议的判断条件构成。
S106:将所有特征值表和判断逻辑存储,生成识别引擎。识别引擎是包括所有特征值表、判断逻辑的执行代码,作为一个动态链接库(DLL),可以被加载并调用运行。
参考图2,所述数据包协议识别步骤包括:
S201:输入待识别的数据包。
S202:根据捕获数据包的物理设备确定物理介质,进而选取识别数据包协议的协议树,然后进入协议树的根节点。
S203:从数据包中读取当前节点层中所有协议节点的关键字在数据包中的数值。
S204:查询当前节点层中的所有协议节点的关键字的特征值表,判断读取的所有的数值中是否有一个数值在特征值表中,即判断读取的所有的数值中是否有一个数值与特征值表中的某个特征值相等,如果有一个数值与特征值表中的某个数值相等,则表示有一个数值在特征值表中,如果在特征值表中,则得出当前协议节点的协议为特征值表中该特征值对应的协议,并进入步骤S206,如果不在则进入步骤S205。
S205:执行判断逻辑,将当前节点所有关键字的数值依次与判断逻辑中的判断条件进行比对,如果满足判断逻辑中的某判断条件,则得出当前节点的协议为该判断条件对应的协议,如果得出当前节点的协议,则进入步骤S206,如果关键字的数值不满足判断逻辑中的所有判断条件,则输出识别结果。
S206:进入协议树中当前节点层的下一个节点层,并返回步骤S203,循环执行步骤S203至S205。
下面以一个例子说明数据包协议识别步骤的过程。例如,捕获待识别的数据包的物理介质为以太网,则选取协议树入口为以太网的协议树来识别数据包协议,协议树的形式为:
以太网
Figure BDA00002639438400111
Figure BDA00002639438400121
需要说明,该协议树不是一个完整的协议树,仅截取了该协议树的一部分用于辅助本举例阐述数据包协议识别步骤的过程。从该协议树的根节点开始,根节点的关键字为D16[12],从数据包中第12个字节开始读取两个字节长度的数值为34525,该数值34525即为关键字D16[12]在数据包中的数值,查询关键字D16[12的特征值表,在特征值标中没有找到34525,则再执行判断逻辑,其中34525满足判断条件>1500,则得出根节点的协议为EthernetII。然后进入根节点的下一个节点层,当前节点层中所有协议节点的关键字均为EType,通过EthernetII协议中关键字定义可知EType=D16[12],则在数据包中读取关键字EType的数值为34525,查询EType的特征值表,找到34525与特征值表中的特征值0x86DD相等,则得出当前协议节点的协议为IPv6。再进入下一个节点层,当前节点层中的协议节点的关键字为Pro,由于下层协议为IPv6,所以从IPv6协议的关键字定义中读取Pro=D8[6],从数据包中第6个字节开始读取一个字节长度的数值为6,通过查询关键字Pro的特征值表可知当前协议节点的协议为TCP。再进入下一个节点层,读取当前节点层中所有协议节点的关键字为DP和SP,从TCP协议的关键字定义可知DP=D16[2],SP=D16[0],从数据包中读取关键字的数值分别为80和150,查询关键字DP和SP的特征值表,在关键字DP的特征值表中查到80,则得出协议为HTTP。输出识别结果,待识别数据包所使用的协议为EthernetII\IPv6\TCP\HTTP。
而传统的数据包协议识别方法是按照顺序依次调用协议插件,每调用一个识别插件,从数据包读取一次中关键字的数值,再将读取的数值与插件中的数值进行比较,如果相等,则找到协议,否则继续调用其他协议插件,直到找到协议为止。例如此例中确定IPv6协议的过程,首先调用IP协议插件,取得关键字在数据包中的数值为34525,比较:34525=0x0800?不成立,判断不是协议IP。再调用ARP插件,取得关键字在数据包中的数值为34525,比较:34525=0x0806?不成立,判断不是协议ARP。再调用IPX插件,调用SNMP插件等,直到调用IPv6插件,取得关键字在数据包中的数值为34525,比较:34525=0x86DD?成立,判断是协议IPv6,则本层查找结束,进入后续层次查找。
本发明方法通过建立特征值表和判断逻辑,通过查找特征值表和判断逻辑,识别数据包所使用的协议。通过一次查寻特征值表即可以快速的找出所使用的协议,代替了传统的通用识别方法中每个协议的比对操作,将识别效率从O(n)提高到了O(0),提高了网络数据包协议识别处理性能。经过大量研究证明,本系统在支持包括常用的以太网,广域网,无线网在内的800多种协议的情况下,识别效率超过100万个数据包每秒。O(n)和O(0)是执行效率的表示方法。详细的定义可以参考《数据结构》。O(n)表示效率和因素成正比,即例如可以识别的协议有n个,识别时间是s,那么可识别的协议有2n个时,识别时间就是2s,可识别的协议有100n个时,识别时间就是100s。O(0)则表示效率是常量,如果系统可识别的协议有n个协议,识别时间是s,那么协议增加到2n、10n、100n,识别时间仍然是s。
同时本发明方法具有很好的扩展性,需要添加新协议时,只需输入并存储新协议的协议特征信息,再根据该新协议的比较方式,将该新协议的特征值添加至相应的特征值表中,或将该新协议的判断条件添加至判断逻辑中即可。
参考图3,本发明还提供了一种网络数据包协议识别系统,包括协议配置装置和数据包协议识别装置,其中,所述协议配置装置包括协议特征存储单元,协议树生成单元,特征值表和判断逻辑生成单元,所述数据包协议识别装置包括:数据包采集单元,协议树选择单元,数据包协议识别单元。
协议特征存储单元用于存储协议的协议特征信息,所述协议特征信息包括:所述协议的名称、所述协议的下级协议名称、所述协议的关键字、特征值、关键字定义和比较方式,所述比较方式包括大于、等于、小于。
协议树生成单元用于根据协议特征信息生成协议树。协议树生成单元将将一个协议作为一个协议节点,所有具有相同下级协议的协议组成一个节点层,再按照协议的上、下级关系,连接所有协议节点组成协议树,组成同一个节点层的协议节点位于协议树的同一个节点层,所述协议树的入口为物理介质。
特征值表和判断逻辑生成单元用于根据协议特征信息,生成识别数据包协议的特征值表和判断逻辑。所述特征值表由比较方式为等于的协议的名称和该协议的特征值构成;所述判断逻辑由比较方式为大于或小于的协议的名称及该协议的判断条件构成。
数据包采集单元用于采集待识别的数据包;
协议树选择单元用于根据获取数据包的物理介质,选取识别数据包协议的协议树;
数据包协议识别单元用于读取待识别数据包中的关键字,并将读取到的关键字与特征值表和判断逻辑进行比对,识别数据包协议。所述数据包协议识别单元包括:关键字采集模块,用于从数据包中读取协议树中各协议节点的关键字在数据包中的数值;协议识别模块,用于通过查询特征值表和执行判断逻辑,识别数据包协议。查询特征值表,如果从数据包中读取的关键字的数值与特征值表中某个特征值相同,则得出协议节点的协议为特征值表中该特征值对应的协议,如果从数据包中读取的关键字的数值与特征值表中任何特征值都不同则执行判断逻辑,如果从数据包中读取的关键字的数值满足判断逻辑中的某个判断条件,则得出协议节点的协议为该判断条件对应的协议,如果不满足判断逻辑中的任何判断条件,则输出识别结果。

Claims (10)

1.一种网络数据包协议识别方法,包括协议配置步骤和数据包协议识别步骤,其特征在于,其中,
所述协议配置步骤包括:
A.输入协议的协议特征信息,并存储;
B.根据协议特征信息建立协议树;
C.根据协议特征信息建立特征值表和判断逻辑;
所述数据包协议识别步骤包括:
a.获取待识别的数据包;
b.根据获取数据包的物理介质,选取用于识别数据包协议的协议树;
c.从数据包中读取用于识别数据包协议的关键字的数值,并将读取到的关键字的数值与特征值表和判断逻辑进行比对,识别出数据包协议。
2.根据权利要求1所述的网络数据包协议识别方法,其特征在于,步骤A中所述协议特征信息包括:所述协议的名称、所述协议的下级协议名称、所述协议的关键字、特征值、关键字定义和比较方式,所述比较方式包括大于、等于、小于。
3.根据权利要求2所述的网络数据包协议识别方法,其特征在于,所述步骤B中建立协议树的方法是:根据协议特征信息,将一个协议作为一个协议节点,所有具有相同下级协议的协议组成一个节点层,再按照协议的上、下级关系,连接所有协议节点组成协议树,组成同一个节点层的协议节点位于协议树的同一个节点层,所述协议树的入口为物理介质。
4.根据权利要求3所述的网络数据包协议识别方法,其特征在于,步骤C中所述建立特征值表的方法是:遍历存储的所有协议的协议特征信息,选取所有比较方式为等于的协议,一个关键字建立一张特征值表,特征值表中记录该关键字的所有特征值及各特征值对应的协议名称;所述判断逻辑由所有比较方式为大于或小于的协议的名称及该协议的判断条件构成。
5.根据权利要求4所述的网络数据包协议识别方法,其特征在于,所述步骤c从数据包中读取用于识别数据包协议的关键字的数值,并将读取到的关键字的数值与特征值表和判断逻辑进行比对,识别数据包协议包括:
c1.进入协议树的根节点;
c2.从数据包中读取当前节点层中所有的协议节点的关键字在数据包中的数值;
c3.查询当前节点层中所有的协议节点的关键字的特征值表,如果从数据包中读取到的关键字的数值与特征值表中的某个特征值相同,则得出当前协议节点的协议为特征值表中该特征值对应的协议,并进入步骤c5,如果与特征值表中的所有特征值均不同则进入步骤c4;
c4.执行判断逻辑,如果读取的关键字的数值满足判断逻辑中的某判断条件,则得出当前节点协议为该判断条件对应的协议,并进入步骤b5,如果不满足判断逻辑中的任何判断条件,则输出识别结果;
c5. 进入协议树中当前节点层的下一个节点层,循环步骤c2~c4。
6.一种网络数据包协议识别系统,其特征在于,包括协议配置装置和数据包协议识别装置,其中,
所述协议配置装置包括:
协议特征存储单元,用于存储协议的协议特征信息;
协议树生成单元,用于根据协议特征信息生成协议树;
特征值表和判断逻辑生成单元,用于根据协议特征信息,生成识别数据包协议的特征值表和判断逻辑;
所述数据包协议识别装置包括:
数据包采集单元,用于采集待识别的数据包;
协议树选择单元,用于根据获取数据包的物理介质,选取识别数据包协议的协议树;
数据包协议识别单元,用于从待识别数据包中读取关键字的数值,并将读取到的关键字的数值与特征值表和判断逻辑进行比对,识别数据包协议。
7.根据权利要求6所述的网络数据包协议识别系统,其特征在于,所述协议特征信息包括:所述协议的名称、所述协议的下级协议名称、所述协议的关键字、特征值、关键字定义和比较方式,所述比较方式包括大于、等于、小于。
8.根据权利要求7所述的网络数据包协议识别系统,其特征在于,所述协议树生成单元将将一个协议作为一个协议节点,所有具有相同下级协议的协议组成一个节点层,再按照协议的上、下级关系,连接所有协议节点组成协议树,组成同一个节点层的协议节点位于协议树的同一个节点层,所述协议树的入口为物理介质。
9.根据权利要求8所述的网络数据包协议识别系统,其特征在于,所述特征值表由比较方式为等于的协议的名称和该协议的特征值构成;所述判断逻辑由比较方式为大于或小于的协议的名称及该协议的判断条件构成。
10.根据权利要求9所述的网络数据包协议识别系统,其特征在于,所述数据包协议识别单元包括:
关键字采集模块,用于从数据包中读取协议树中各协议节点的关键字在数据包中的数值;
协议识别模块,用于通过查询特征值表和执行判断逻辑,识别数据包协议:查询特征值表,如果从数据包中读取的关键字的数值与特征值表中某个特征值相同,则得出协议节点的协议为特征值表中该特征值对应的协议,如果读取的关键字的数值与特征值表中任何特征值都不同则执行判断逻辑,如果从数据包中读取的关键字的数值满足判断逻辑中的某个判断条件,则得出协议节点的协议为该判断条件对应的协议,如果不满足判断逻辑中的任何判断条件,则输出识别结果。
CN201210567370.4A 2012-12-24 2012-12-24 一种网络数据包协议识别方法及系统 Active CN103023909B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210567370.4A CN103023909B (zh) 2012-12-24 2012-12-24 一种网络数据包协议识别方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210567370.4A CN103023909B (zh) 2012-12-24 2012-12-24 一种网络数据包协议识别方法及系统

Publications (2)

Publication Number Publication Date
CN103023909A true CN103023909A (zh) 2013-04-03
CN103023909B CN103023909B (zh) 2016-05-04

Family

ID=47972040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210567370.4A Active CN103023909B (zh) 2012-12-24 2012-12-24 一种网络数据包协议识别方法及系统

Country Status (1)

Country Link
CN (1) CN103023909B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038389A (zh) * 2014-06-19 2014-09-10 高长喜 多重应用协议识别方法和装置
CN105282123A (zh) * 2014-07-24 2016-01-27 亿阳安全技术有限公司 一种网络协议识别方法和装置
CN105357082A (zh) * 2014-12-22 2016-02-24 成都科来软件有限公司 一种网络流量的识别方法及装置
CN105939304A (zh) * 2015-06-11 2016-09-14 杭州迪普科技有限公司 一种隧道报文解析方法及装置
CN108667839A (zh) * 2018-05-11 2018-10-16 南京天控信息技术有限公司 一种基于闭合序列模式挖掘的协议格式推断方法
CN109951430A (zh) * 2017-12-21 2019-06-28 中移(杭州)信息技术有限公司 一种数据处理方法及装置
CN110839022A (zh) * 2019-10-31 2020-02-25 四川航天系统工程研究所 一种基于xml语言的车载控制软件通信协议解析方法
CN111835591A (zh) * 2020-07-10 2020-10-27 芯河半导体科技(无锡)有限公司 一种以太网报文快速协议识别的方法
CN114338439A (zh) * 2021-12-27 2022-04-12 上海观安信息技术股份有限公司 一种通用的网络流量解析装置和方法
CN115190056A (zh) * 2022-09-08 2022-10-14 杭州海康威视数字技术股份有限公司 一种可编排的流量协议识别与解析方法、装置及设备
CN116599780A (zh) * 2023-07-19 2023-08-15 国家计算机网络与信息安全管理中心江西分中心 一种IPv6网络数据流监测技术的分析与测试方法
CN117978706A (zh) * 2024-03-29 2024-05-03 中国电子技术标准化研究院 流量协议识别方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
CN102215206A (zh) * 2010-04-01 2011-10-12 上海凌屹信息科技有限公司 一种基于npta技术的网络协议识别方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
CN102215206A (zh) * 2010-04-01 2011-10-12 上海凌屹信息科技有限公司 一种基于npta技术的网络协议识别方法及装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038389A (zh) * 2014-06-19 2014-09-10 高长喜 多重应用协议识别方法和装置
CN105282123A (zh) * 2014-07-24 2016-01-27 亿阳安全技术有限公司 一种网络协议识别方法和装置
CN105282123B (zh) * 2014-07-24 2018-11-16 亿阳安全技术有限公司 一种网络协议识别方法和装置
CN105357082A (zh) * 2014-12-22 2016-02-24 成都科来软件有限公司 一种网络流量的识别方法及装置
CN105357082B (zh) * 2014-12-22 2019-01-29 成都科来软件有限公司 一种网络流量的识别方法及装置
CN105939304A (zh) * 2015-06-11 2016-09-14 杭州迪普科技有限公司 一种隧道报文解析方法及装置
CN109951430B (zh) * 2017-12-21 2021-04-30 中移(杭州)信息技术有限公司 一种数据处理方法及装置
CN109951430A (zh) * 2017-12-21 2019-06-28 中移(杭州)信息技术有限公司 一种数据处理方法及装置
CN108667839A (zh) * 2018-05-11 2018-10-16 南京天控信息技术有限公司 一种基于闭合序列模式挖掘的协议格式推断方法
CN110839022A (zh) * 2019-10-31 2020-02-25 四川航天系统工程研究所 一种基于xml语言的车载控制软件通信协议解析方法
CN111835591A (zh) * 2020-07-10 2020-10-27 芯河半导体科技(无锡)有限公司 一种以太网报文快速协议识别的方法
CN111835591B (zh) * 2020-07-10 2022-05-03 芯河半导体科技(无锡)有限公司 一种以太网报文快速协议识别的方法
CN114338439A (zh) * 2021-12-27 2022-04-12 上海观安信息技术股份有限公司 一种通用的网络流量解析装置和方法
CN114338439B (zh) * 2021-12-27 2023-08-08 上海观安信息技术股份有限公司 一种通用的网络流量解析装置和方法
CN115190056A (zh) * 2022-09-08 2022-10-14 杭州海康威视数字技术股份有限公司 一种可编排的流量协议识别与解析方法、装置及设备
CN116599780A (zh) * 2023-07-19 2023-08-15 国家计算机网络与信息安全管理中心江西分中心 一种IPv6网络数据流监测技术的分析与测试方法
CN116599780B (zh) * 2023-07-19 2023-10-27 国家计算机网络与信息安全管理中心江西分中心 一种IPv6网络数据流监测技术的分析与测试方法
CN117978706A (zh) * 2024-03-29 2024-05-03 中国电子技术标准化研究院 流量协议识别方法、装置、电子设备及存储介质
CN117978706B (zh) * 2024-03-29 2024-06-28 中国电子技术标准化研究院 流量协议识别方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN103023909B (zh) 2016-05-04

Similar Documents

Publication Publication Date Title
CN103023909A (zh) 一种网络数据包协议识别方法及系统
Kumar et al. Advanced algorithms for fast and scalable deep packet inspection
Mehlhorn et al. External-memory breadth-first search with sublinear I/O
Meiners et al. Split: Optimizing space, power, and throughput for TCAM-based classification
US20090185568A1 (en) Method and system for packet classification with reduced memory space and enhanced access speed
CN108011823B (zh) 多域流表的多级化方法及装置、多级流表查找方法及装置
CN106452868A (zh) 一种支持多维度聚合分类的网络流量统计实现方法
CN105122745A (zh) 用于网络设备的高效最长前缀匹配技术
CN102301342A (zh) 正则表达式匹配方法和系统及查找装置
CN104580027A (zh) 一种OpenFlow报文转发方法及设备
TW200415878A (en) A method and apparatus for deep packet processing
CN102694801B (zh) 病毒检测方法、装置以及防火墙设备
CN105224636A (zh) 一种数据访问方法和装置
CN111680489A (zh) 目标文本的匹配方法和装置、存储介质及电子设备
CN103020123A (zh) 一种搜索不良视频网站的方法
JP4059388B2 (ja) プロトコルデータ単位内のプロトコルパターンの識別装置及び方法
CN112416452B (zh) 一种iec61850协议库快速启动的方法
CN105681199B (zh) 一种车载总线中报文数据的处理方法及装置
CN101770367B (zh) .net文件压缩方法和装置
CN100401723C (zh) 一种快速索引方法
CN104636368A (zh) 数据检索方法、装置及服务器
CN102143151B (zh) 一种基于深度包检测的协议跨包检测方法和装置
CN106789727A (zh) 报文分类方法和装置
CN104424316A (zh) 一种数据存储方法、数据查询方法、相关装置和系统
CN105450789A (zh) 无线传感器网络中互联网协议版本6地址的压缩

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210111

Address after: 610000 Sichuan Chengdu China (Sichuan) Free Trade Experimental Zone Chengdu High-tech Zone Tianfu Road North 966 Building 1 Unit 14 Building 41401-41406

Patentee after: Chengdu Kelai Network Technology Co., Ltd

Address before: B6-7 / F, Tianfu Software Park, 801 Tianfu Avenue, high tech Zone, Chengdu, Sichuan 610000

Patentee before: COLASOFT Co.,Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 610041 12th, 13th and 14th floors, unit 1, building 4, No. 966, north section of Tianfu Avenue, high tech Zone, Chengdu, Sichuan

Patentee after: Kelai Network Technology Co.,Ltd.

Address before: 610000 Sichuan Chengdu China (Sichuan) Free Trade Experimental Zone Chengdu High-tech Zone Tianfu Road North 966 Building 1 Unit 14 Building 41401-41406

Patentee before: Chengdu Kelai Network Technology Co.,Ltd.