CN101360090B - 应用层协议识别方法 - Google Patents

应用层协议识别方法 Download PDF

Info

Publication number
CN101360090B
CN101360090B CN2007101198522A CN200710119852A CN101360090B CN 101360090 B CN101360090 B CN 101360090B CN 2007101198522 A CN2007101198522 A CN 2007101198522A CN 200710119852 A CN200710119852 A CN 200710119852A CN 101360090 B CN101360090 B CN 101360090B
Authority
CN
China
Prior art keywords
coupling
once
application layer
data structure
layer protocol
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.)
Expired - Fee Related
Application number
CN2007101198522A
Other languages
English (en)
Other versions
CN101360090A (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.)
Institute of Acoustics CAS
Original Assignee
Institute of Acoustics CAS
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 Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN2007101198522A priority Critical patent/CN101360090B/zh
Publication of CN101360090A publication Critical patent/CN101360090A/zh
Application granted granted Critical
Publication of CN101360090B publication Critical patent/CN101360090B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明提出了一种应用层协议识别方法,即基于一次匹配的基础上进行特征码匹配的方法,同时本发明提出了采用一次匹配、被动FTP匹配与上述方法相结合的基于动态策略的应用层协议识别方法,对应用层协议的识别进行了分类优化处理,便于系统维护,有较好的可扩展性,对应用层协议的识别采取了按需动态调整、按需扩展的策略,实现了对应用层协议的按需识别,并且可以用来识别一些多特征码的应用层协议,也能较好的跟踪某些通过知名端口通信的P2P应用。

Description

应用层协议识别方法
技术领域
本发明涉及计算机网络流量监控领域,更具体地,本发明涉及一种计算机网络的应用层协议识别方法,优选地,本发明还涉及一种采用一次匹配、被动FTP(PASV_FTP)匹配与上述方法相结合的应用层协议识别方法。
背景技术
为了控制网络应用对带宽的占用,必须首先对数据流量进行有效分析和监控,它涉及到流量采集、流量识别和流量控制等三个问题。其中,流量的采集与现有网络监测方式采用的技术完全一致,流量控制则取决不同的网络管理策略,由网络管理人员进行相应的设置,因此,对网络流量分析与监控的关键部分是流量识别技术。
对TCP或者UDP协议网络的流量识别主要是在应用层下进行,称为应用层协议识别。传统的应用层协议识别技术主要有2种,基于端口的识别技术和基于应用层协议特征码的识别技术。
基于端口的识别技术,是对端口号进行匹配的一种协议识别技术。这种技术一般针对知名端口进行识别,该识别方法最大的优点就是简单易行,它不需要进行复杂的分组处理即可得出结论,目前有相当部分流控产品及防火墙都是基于这种技术实现的。下面对需要识别的端口按照其性质进行分类说明:
(1)、知名端口(Well Known Ports),也常称为“常用端口”,这类端口的端口号从0到1024,固定分配给一些特定的服务,明确表明了某种服务的协议,不可再重新定义它的作用对象。例如:80端口实际上总是HTTP通信所使用的,而23号端口则是Telnet服务专用的。
(2)、注册端口(Registered Ports):端口号从1025到49151,此类端口一般不固定分配给某个服务,而是松散地绑定一些服务,也就是说许多服务都可以使用这些端口。这些端口多数没有明确的定义服务对象,不同程序可根据需要自己定义。比如1024端口就是分配给第一个向系统发出申请的程序,在关闭程序进程后,就会释放所占用的端口号。
(3)、动态和/或私有端口(Dynamic and/or Private Ports):端口号从49152到65535,此类端口不被引起注意,容易隐蔽,有些较为特殊的程序,特别是一些木马程序就非常喜欢使用这些端口。
基于应用层协议特征码的识别技术,是对接收的每一个数据包进行特征码的匹配,分析数据包的应用层(Layer7 of OSI)信息,对TCP或UDP的有效载荷(payload)进行检查,精确匹配协议数据包中出现的特征码。
现有的协议识别技术方案中,一种是基于端口的识别,一种是基于端口和基于应用层协议特征码两者识别的简单组合(即部分应用层协议通过基于知名端口进行识别,部分应用层协议通过基于应用层协议特征码进行识别)。目前,基于端口的识别技术仅应用于知名端口的识别,优点是实现简单、消耗系统资源少,但识别范围窄,前景不容乐观,由于大多数P2P应用都使用动态端口进行传输,所以简单地通过基于端口的识别技术对它们进行识别通常会失效。
而基于应用层协议特征码的识别技术,在识别一些应用层协议时,由于单一特征码对于协议而言携带信息不完全,则难以通过其会话中的某一个数据包所携带的特征码进行识别;或者对于某些协议,例如要求识别统计80端口的某类P2P协议(如KaZaA),由于协议特征码的相似性,利用简单的基于应用层协议特征码的识别技术不能精确识别。
发明内容
为了克服传统识别方法误识别率高、扩展性差的缺陷,本发明提出了一种应用层协议识别方法,本发明还提出一种采用一次匹配、被动FTP(PASV_FTP)匹配与上述一种应用层协议识别方法相结合的应用层协议识别方法。
一种应用层协议识别方法,包括以下步骤:
步骤110)对连接进行一次基于端口的匹配或者一次基于特征码的匹配,一次匹配成功后,对该连接进行标记或者统计;
步骤120)对连接进行第二次匹配,此时第二次匹配为基于特征码的匹配;
步骤130)根据第一次匹配的标记或统计结果和第二次匹配成功的特征码,识别出该连接的对应协议。
其中步骤120)中对连接进行第二次匹配是指对一次匹配成功的连接通过遍历之前存储的已知协议的特征码进行特征码匹配。
一种采用一次匹配、被动FTP(PASV_FTP)匹配与上述一种应用层协议识别方法相结合的应用层协议识别方法,包括以下步骤:
步骤210)、根据数据结构信息,若需要对连接进行两次匹配,同时若需要提取被动FTP信息,则提取被动FTP的IP地址和端口号信息,更新被动FTP的数据结构;
步骤220)、根据数据结构信息,若需要对连接进行两次匹配,同时若不需要提取被动FTP信息,则按照权利要求1的所述方法执行;
步骤230)、根据动态数据结构信息,若不需要进行两次匹配,则只进行一次匹配;
步骤240)、如果以上匹配识别没有成功进行,则遍历被动FTP动态数据结构,进行被动FTP匹配;
步骤250)、更新数据结构信息;
步骤260)若该连接所进行的一次匹配或被动FTP匹配超过了所设定的数据包个数(如8或16等),但该连接所属的应用层协议还未被识别,则不再对该连接进行匹配识别,而进行统计、阻断或放行操作。
在使用两方法的后者进行识别之前,分别建立一次匹配、两次匹配和被动FTP匹配对应的数据结构,数据中的字段包括应用层协议名、识别该应用层协议的端口号、统计该应用层协议或其分组的流量计数器、应用层协议的特征码、应用层协议分组名、对应用层协议流量进行限速的阈值,数据结构包括但不限于链表结构、树结构。
两方法中所述的一次匹配包括基于端口的一次匹配和基于特征码的一次匹配两者。
使用两方法的后者进行识别中,通过配置文件操作、调用相应的API操作或者通过用户终端命令操作,实现一次匹配数据结构、两次匹配数据结构、被动FTP匹配数据结构的建立或者更新。其中配置文件中包括所需识别协议的特征码与所述连接是否需要进行一次匹配、两次匹配或被动FTP匹配的需求。
其中,步骤250)中更新数据结构信息,优选地,一次匹配后识别成功,更新一次匹配数据结构;第二次匹配后识别成功,更新一次匹配数据结构和两次匹配数据结构;被动FTP匹配进行后,更新被动FTP匹配数据结构。
其中,步骤260)还包括步骤若所述应用层协议没有被识别,则不再对该连接进行识别,而进行统计将其视为未识别应用层协议,并且若是TCP协议,则进行阻断处理,若是UDP协议,则进行放行操作。
本发明对应用层协议的识别进行了分类优化处理,便于系统维护,有较好的可扩展性,对应用层协议的识别采取了按需动态调整、按需扩展的策略,实现了对应用层协议的按需识别,并且可以用来识别多特征码的应用层协议,也能较好的跟踪某些通过知名端口通信的P2P应用。
附图说明
图1是系统内建一次匹配、二次匹配及PASV_FTP链表关系图;
图2是链表的初始化及节点信息读取与节点信息写入图;
图3是应用层协议匹配分析总体结构图;
图4是应用层协议匹配分析方法实现流程图。
具体实施方式
当前的应用层协议纷繁复杂,尤其是快速增长的P2P应用协议。有些P2P应用层协议使用动态端口号,而有些P2P应用层协议为了规避封堵,使用知名端口号。另外由于某些P2P协议特征码的相似性,使得其中部分应用层协议难以用基于特征码的一次匹配对其进行准确识别。另外由于应用层协议本身的特征码信息有多个,而每单个特征码不足以识别该应用层协议,或不足以达到识别该应用层协议所要求的精度,此时必须通过提取该应用层协议通信连接中的两个或两个以上的数据包所携带的特征码来对其进行识别(目前可由两个数据包所携带的特征码信息达到准确识别某一应用层协议,暂时不需进行多个数据包的特征码识别)。
基于以上考虑,本发明提出一种应用层协议识别方法,称为二次匹配方法,也就是二次匹配技术。二次匹配方法,是指在一次端口匹配或一次特征码匹配的基础上,对应用层协议再次进行特征码匹配的方法。具体步骤为:(1)对连接进行一次基于端口的匹配或者一次基于特征码的匹配,一次匹配成功后,对该连接进行标记或者统计;(2)对连接进行第二次匹配,此时第二次匹配为基于特征码的匹配;(3)根据第一次匹配的标记和第二次匹配成功的特征码,识别出该连接的对应协议。
一次匹配成功之后,可能识别出部分协议,但是未识别出的连接,可以通过一次匹配限定其协议范围,增加在二次匹配时的一个匹配对象。
在二次匹配时,可根据具体需求处理其第一次的匹配结果:第一次匹配识别结果作为一个大的范畴进行统计,第二次匹配的结果可作为第一次匹配结果中的一个子集进行识别统计;或者只对第一次匹配成功的连接进行标记,第二次匹配仅仅针对有此标记的连接进行识别,再次识别成功才确认应用层协议。二次匹配方法分为两种:基于一次端口识别的二次特征码匹配方法和基于一次特征码识别的二次特征码匹配方法,二者在进行二次识别过程中没有差别。
而部分应用层协议可以通过现有技术中的一次匹配技术和被动FTP匹配技术识别。
一次匹配技术包括基于端口的一次匹配技术和基于特征码的一次匹配技术两者,基于端口的一次匹配技术为基于知名端口对于传统的应用层协议(如active FTP、HTTP、SMTP、POP3等)的识别技术;基于特征码的一次匹配技术为基于应用层(Layer7 of OSI)协议特征码信息对于P2P应用协议的识别技术。
FTP服务器使用2个端口,一个数据端口和一个命令端口(也称为控制端口),通常数据端口的端口号是20,命令端口的端口号是21。由于FTP工作方式的不同,被动FTP(PASV_FTP)不同于主动FTP,其数据端口一般并不总是20。使用被动FTP时,命令连接和数据连接都由客户端发起,当开启一个FTP连接时,客户端打开任意两个非特权本地端口(N>1024和N+1),第一个端口连接服务器的21端口,但与主动FTP不同,客户端不提交PORT命令,而是提交PASV命令,并允许FTP服务器回连客户端的数据端口。这样做的结果是FTP服务器会开启任意一个非特权端口(P>1024),并发送PORT命令给客户端,然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。被动FTP匹配技术就是经过提取FTP服务器21端口通信时的应用层信息,知道被动FTP的数据传输端口,然后根据此端口号对被动FTP传输进行端口匹配。
另外,传统识别技术的实现都是将应用层协议的端口号或者特征码固化到模块或者代码中,没有良好的可扩展性、实时性,如果添加新的应用层协议,则需要重新编写、添加新的模块或重写代码。本发明在实现时,采用框架模式,建立数据结构框架,在本实施例中以链表为例,一次匹配链表、二次匹配链表、被动FTP匹配链表,如需要添加、删除或修改识别应用层协议的策略,可通过配置文件操作、调用相应的API操作或者通过用户终端命令操作来实现,此即应用层协议识别的动态策略技术。
本发明提出的结合一次匹配技术、二次匹配技术、被动FTP匹配技术的应用层协议识别方法,包括以下步骤:
步骤10)、为一次匹配、二次匹配和被动FTP匹配分别建立诸如链表、树的数据结构,通过各自的配置文件进行初始化、更新数据结构,将配置文件的信息写入各自的数据结构,数据中的字段包括应用层协议名、识别该应用层协议的端口号、统计该应用层协议或其分组的流量计数器、应用层协议的特征码、应用层协议分组名、对应用层协议流量进行限速的阈值,数据结构包括但不限于链表结构、树结构,其中配置文件中包括所需识别协议的特征码与所述连接是否需要进行一次匹配、两次匹配或被动FTP匹配的需求;
步骤20)、根据数据结构信息,若需要对连接进行两次匹配,同时若需要提取被动FTP信息,则提取被动FTP的IP地址和端口号信息,更新被动FTP的数据结构;
步骤30)、根据数据结构信息,若需要对连接进行两次匹配,同时若不需要提取被动FTP信息,则按照权利要求1的所述方法执行;
步骤40)、根据动态数据结构信息,若不需要进行两次匹配,则只进行一次匹配;
步骤50)、如果以上匹配识别没有成功进行,则遍历被动FTP动态数据结构,进行被动FTP匹配;
步骤60)、更新数据结构信息,优选地,一次匹配后识别成功,更新一次匹配数据结构;第二次匹配后识别成功,更新一次匹配数据结构和二次匹配数据结构;被动FTP匹配进行后,更新被动FTP匹配数据结构。;
步骤70)若该连接所进行的一次匹配或被动FTP匹配超过了所设定的数据包个数(如8或16等),但该连接所属的应用层协议还未被识别,则不再对该连接进行匹配识别,而进行统计、阻断或放行操作,优选地,若所述应用层协议没有被识别,则不再对该连接进行识别,而进行统计将其视为未识别应用层协议,并且若是TCP协议,则进行阻断处理,若是UDP协议,则进行放行操作。。
其中,一次匹配包括基于端口的一次匹配和基于特征码的一次匹配两者。
本发明对应用层协议的识别使用内建的一次匹配、二次匹配和PASV_FTP匹配链表(也可用其他动态数据结构代替链表结构,如树结构等),用来支撑应用层协议识别的动态策略框架模式,如附图1所示。其中字段包括应用层协议名(protocol)、识别该应用层协议的端口号(port[])(可有5个)、统计该应用层协议或其分组的流量计数器(counter)、应用层协议的特征码(string)、指向应用层协议分组(如P2P、IM等)的指针(group_point)、应用层协议分组名(Group_protocol)如P2P,IM等、对应用层协议流量进行限速的阈值(tc_speed)、应用层协议的索引号(idx),还包括一次匹配的info[]:info[0]取值n或y,其中n表示只进行一次匹配,y表示需要进行二次匹配,info[1]取值n或y,其中n表示不更新应用层协议流量计数器(counter),y表示需更新应用层协议流量计数器(counter),info[2]取值0、n或y,其中0为初始化值,表示只进行一次匹配,n表示进行二次匹配,y表示提取被动FTP信息(源IP和端口号);还包括字段指向应用层协议流量计数器的指针(protocol_point_c)、指向应用层协议分组流量计数器的指针(group_point_c)、二次匹配的info[0]取值为n或者y,其中,n表示进行二次匹配,y表示提取被动FTP信息(源IP和端口号);还包括被动FTP连接的服务器IP地址(src_ip)、被动FTP连接的服务器端口(port)、被动FTP信息(src_ip,port)插入链表的时间(creationTime)。
一次匹配、二次匹配以及PASV_FTP链表通过协议配置文件进行初始化。
表1
Figure S071B9852220070827D000101
表1为一次端口匹配初始化配置文件,其中,protocol是指应用层协议名;port是指将其流量归结到该协议的端口;tc_speed是对该协议的流量控制指标(负值表示对该协议不进行流量限制;零值表示完全阻止该协议;正值表示对该协议流量的限制,其最大值不超过该正值);Group_protocol是对该应用层协议的分组标记名,用于对应用层协议进行分组统计。管理员把protocol域对应的协议放到此字段对应的类中,以便更新协议分组图,Group_protocol与用于识别应用层协议的特征码配置文件下的相同的值进行合并,以便统计应用层协议的类流量(如P2P、IM等)。
表2
表2为一次特征码匹配初始化配置文件,其中,string是指识别该协议的特征值;protocol、tc_speed、Group_protocol与字段在表1中定义相同。
系统初始化时要读取该配置文件信息,然后建立或者更新一次匹配结构链表,并将该列表调入内存,对TCP连接和UDP数据传输进行基于端口或特征码的应用层协议识别。
二次匹配,首先要匹配一个端口或者是特征码;被动FTP的端口号是FTP信令数据包中的一部分,因此,需找到携带被动FTP信息的信令数据包,然后提取相应的IP地址和被动端口号,根据提取到的信息对后来新建连接进行识别,类似于二次匹配,但与二次匹配却有本质区别:二次匹配是对同一应用的同一连接而言,被动FTP是对同一应用的两个不同连接而言,本发明将被动FTP和二次匹配设计到了同一个配置文件,利用一个标记符(y或n)即可进行区分。
表3
Figure S071B9852220070827D000121
表3为被动FTP和二次匹配初始化配置文件,其中,string是指识别该协议的特征值,字段information下符号‘y’表示被动FTP识别,符号‘n’表示二次匹配,当二次匹配成功才可标记此连接为对应的应用层协议,然后更新相应的应用层协议流量计数器。
如图1所示,一次匹配节点的info[]数组初始化值为:info[0]=‘n’,info[1]=‘y’,info[2]=‘0’;info[0]=‘n’表示只进行一次匹配,info[1]=‘y’表示需更新应用层协议流量计数器(counter),info[2]=‘0’为初始化值。如果基于端口及特征码一次匹配节点对应的应用层协议需要分组(如P2P、IM等),则根据节点的字段值Group_protocol对应到相应的分组(通过一次匹配节点的group_point指针指向具有同样Group_protocol字段值的分组节点),见图1中的[1]和[2]。
如果二次匹配节点的protocol字段值与基于端口及特征码一次匹配节点的protocol字段值相等,则说明需要对该应用层协议进行第二次匹配,此时二次匹配节点的protocol_point_c指针指向该应用层协议的流量计数器counter,即一次匹配节点的counter,如果对该应用层协议进行了分组(如P2P、IM等),则二次匹配的group_point_c指针指向对应的分组节点的counter,同时将一次匹配节点对应的应用层协议索引号idx赋值给二次匹配节点的idx字段,最后更新一次匹配的info[]数组:一次匹配节点的info[0]赋值为‘y’,info[1]和info[2]赋值为二次匹配的info[0](对应于二次匹配配置文件中的#infomation字段的值,‘n’或‘y’),见图1中的(1)-(5)。
如果二次匹配节点info[0]的值为‘y’,则构建被动FTP链表,初始化时该链表为一空链表。
即如果一次端口匹配配置文件、一次特征码匹配配置文件和被动FTP及二次匹配配置文件中有protocol相同的,则要进行合并处理;如多个端口、一个特征码,对应一个应用层协议protocol,或对FTP进行被动FTP处理标记,或对协议进行二次识别标记,然后更新一次匹配链表及二次匹配链表。
系统启动后,通过读取一次端口匹配配置文件、一次特征码匹配配置文件和被动FTP及二次匹配配置文件,系统提取配置文件信息建立或更新一次匹配链表、二次匹配链表与被动PASV_FTP链表,同时将不同应用层协议按照识别技术进行了分类。
同时,系统启动后,可以通过系统提供的安全API或者终端用户命令,添加、修改或删除被支持的应用层协议及其相应的协议信息。
链表的初始化及节点信息读取与节点信息写入如图2所示,可以用来说明应用层协议识别的动态策略。
(1)系统初始化时从配置文件读取所需识别的应用层(L7)协议信息,或者系统处于运行状态时从终端读取L7协议配置信息;
(2)系统针对当前网络流量读取一次匹配信息(端口port或模式pattern);
(3)对于需要进行二次匹配的L7协议或者需处理的被动FTP,则读取二次匹配所需信息(pattern);
(4)对于被动FTP,需提取当前报文数据头部相应信息,插入PASV_FTP链表尾部;
对本发明方法的一个具体实现流程步骤描述如下(总体结构图见图3,具体实现流程图见图4):
步骤1、将捕获的数据包对应到某个连接,判断该连接是否已被识别,如果已被识别,则更新该连接对应的参数(如连接的状态、对应的应用层协议流量计数器等信息),结束流程;如果该连接没有被识别,进入步骤2;
步骤2、判断该数据包是否为该连接的前16(可预设为其他数量)个数据包,如果超过了16个数据包,结束流程,如果没有超过,进入步骤3;
步骤3、判断是否需要对该数据包所属连接进行二次匹配,(1)如果需要,则遍历二次匹配链表进行匹配,①若匹配成功,则更新该连接对应的参数(如连接的状态、对应的应用层协议流量计数器等信息),结束流程;②如果匹配失败,结束流程;(2)如果不需要进行二次匹配,进入步骤4;
步骤4、判断是否需要提取被动FTP的IP地址和端口号信息(IP,PORT),如果需要,则提取(IP,PORT)信息,同时将信息插入到被动FTP链表尾部;如果不需要提取被动FTP信息,则进入步骤5;
步骤5、遍历一次匹配链表,进行端口匹配和特征码匹配,只要有端口匹配成功或者特征码匹配成功,则更新该连接对应的参数(如连接的状态、对应的应用层协议流量计数器等信息),结束流程;如果端口匹配和特征码匹配都失败,则进入步骤6;
步骤6、判断被动FTP链表是否为空,即是否有(IP,PORT)信息,若为空,结束流程;若不为空,则进行被动FTP的匹配,(1)如果匹配成功,则更新该连接对应的参数(如连接的状态、对应的应用层协议流量计数器等信息),更新被动FTP链表,结束流程;(2)如果匹配不成功,更新被动FTP链表,结束流程。
本发明主要是基于动态策略的优化组合的应用层协议识别方法。主要功能及特点包括:
(1)本发明提出的二次匹配识别技术,不仅可以用来识别应用层协议,也能较好的跟踪某些通过知名端口通信的P2P应用。
(2)对应用层协议的识别采取了按需动态调整、按需扩展的策略,实现了对应用层协议的按需识别,及时跟踪吞噬大量网络带宽资源的应用,有较好的灵活性。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非对其限制,并且在应用上可以延伸到其他的修改、变化、应用和实施例,同时认为所有这样的修改、变化、应用、实施例都在本发明的精神和范围内。

Claims (10)

1.一种应用层协议识别方法,包括以下步骤:
步骤110)对连接进行一次基于端口的匹配或者一次基于特征码的匹配,一次匹配成功后,对该连接进行标记或者统计;
步骤120)对连接进行第二次匹配,此时第二次匹配为基于特征码的匹配;
步骤130)根据第一次匹配的标记或者统计结果和第二次匹配成功的特征码,识别出该连接的对应协议。
2.权利要求1所述的方法,其中步骤120)中对连接进行第二次匹配是指对一次匹配成功的连接通过遍历之前存储的已知协议的特征码进行特征码匹配。
3.权利要求1所述的方法,其中,一次匹配包括基于端口的一次匹配和基于特征码的一次匹配两者。
4.一种应用层协议识别方法,包括以下步骤:
步骤210)、根据数据结构信息,若需要对连接进行两次匹配,同时若需要提取被动FTP信息,则提取被动FTP的IP地址和端口号信息,更新被动FTP的数据结构,其中数据结构的字段包括应用层协议名、识别该应用层协议的端口号、统计该应用层协议或其分组的流量计数器、应用层协议的特征码、应用层协议分组名、对应用层协议流量进行限速的阈值,所述数据结构为一次匹配、二次匹配或被动FTP匹配建立的数据结构;
步骤220)、根据数据结构信息,若需要对连接进行两次匹配,同时若不需要提取被动FTP信息,则按照权利要求1的所述方法执行;
步骤230)、根据数据结构信息,若不需要进行两次匹配,则只进行一次匹配;
步骤240)、如果以上匹配识别没有成功进行,则遍历被动FTP的数据结构,进行被动FTP匹配;
步骤250)、更新数据结构信息;
步骤260)若该连接所进行的一次匹配或被动FTP匹配超过了所设定的数据包个数,但该连接所属的应用层协议还未被识别,则不再对该连接进行匹配识别,而进行统计、阻断或放行操作。
5.权利要求4的方法,其中,识别进行之前,分别建立一次匹配、二次匹配和被动FTP匹配对应的数据结构。
6.权利要求4的方法,其中,一次匹配包括基于端口的一次匹配和基于特征码的一次匹配两者。
7.权利要求4或权利要求5的方法,其中,通过配置文件操作、调用相应的API操作或者通过用户终端命令操作,实现一次匹配建立的数据结构、二次匹配建立的数据结构、被动FTP匹配建立的数据结构的建立或者更新。
8.权利要求7的方法,其中配置文件中包括所需识别协议的特征码与所述连接是否需要进行一次匹配、两次匹配或被动FTP匹配的需求。
9.权利要求4的方法,其中步骤250)中更新数据结构信息,一次匹配后识别成功,更新一次匹配建立的数据结构;第二次匹配后识别成功,更新一次匹配建立的数据结构和二次匹配建立的数据结构;被动FTP匹配进行后,更新被动FTP匹配建立的数据结构。
10.权利要求4的方法,其中步骤260)还包括步骤若所述应用层协议没有被识别,则不再对该连接进行识别,而进行统计将其视为未识别应用层协议,并且若是TCP协议,则进行阻断处理,若是UDP协议,则进行放行操作。
CN2007101198522A 2007-08-01 2007-08-01 应用层协议识别方法 Expired - Fee Related CN101360090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101198522A CN101360090B (zh) 2007-08-01 2007-08-01 应用层协议识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101198522A CN101360090B (zh) 2007-08-01 2007-08-01 应用层协议识别方法

Publications (2)

Publication Number Publication Date
CN101360090A CN101360090A (zh) 2009-02-04
CN101360090B true CN101360090B (zh) 2012-05-23

Family

ID=40332430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101198522A Expired - Fee Related CN101360090B (zh) 2007-08-01 2007-08-01 应用层协议识别方法

Country Status (1)

Country Link
CN (1) CN101360090B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582897A (zh) * 2009-06-02 2009-11-18 中兴通讯股份有限公司 一种深度报文检测方法和装置
CN102082762A (zh) * 2009-11-30 2011-06-01 华为技术有限公司 一种协议识别方法、设备及系统
CN102195945A (zh) * 2010-03-11 2011-09-21 凹凸电子(武汉)有限公司 协议识别方法、装置及系统
CN104105124A (zh) * 2013-04-08 2014-10-15 南京理工大学常熟研究院有限公司 基于Android智能移动终端的流量监测系统
CN105610763A (zh) * 2014-10-31 2016-05-25 杭州迪普科技有限公司 协议识别方法及装置
CN104579795B (zh) * 2015-01-28 2017-12-26 武汉虹信技术服务有限责任公司 一种用于网络数据流识别的协议特征库维护使用方法
CN108173781B (zh) * 2017-12-20 2019-08-16 宜通世纪科技股份有限公司 Https流量识别方法、装置、终端设备及存储介质
CN112751812A (zh) * 2019-10-31 2021-05-04 北京京东振世信息技术有限公司 应用协议自适配的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925085B1 (en) * 2000-06-07 2005-08-02 Advanced Micro Devices, Inc. Packet classification using hash key signatures generated from interrupted hash function
CN1909489A (zh) * 2006-08-30 2007-02-07 中国科学院计算技术研究所 一种识别rtp/rtcp流量的方法
CN1941716A (zh) * 2005-09-30 2007-04-04 杭州华为三康技术有限公司 应用流量统计方法及装置和应用流量统计系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925085B1 (en) * 2000-06-07 2005-08-02 Advanced Micro Devices, Inc. Packet classification using hash key signatures generated from interrupted hash function
CN1941716A (zh) * 2005-09-30 2007-04-04 杭州华为三康技术有限公司 应用流量统计方法及装置和应用流量统计系统
CN1909489A (zh) * 2006-08-30 2007-02-07 中国科学院计算技术研究所 一种识别rtp/rtcp流量的方法

Also Published As

Publication number Publication date
CN101360090A (zh) 2009-02-04

Similar Documents

Publication Publication Date Title
CN101360090B (zh) 应用层协议识别方法
CN105763426B (zh) 一种基于多协议即时通信系统的物联网业务处理系统
CN104320304A (zh) 一种易扩展的多方式融合的核心网用户流量应用识别方法
CN102821009A (zh) 基于链路层发现协议监控环形网络的方法和装置
CN102468987B (zh) 网络流特征向量提取方法
CN101577671A (zh) 一种对等联网业务自动流量控制方法及系统
CN104468315A (zh) 基于智能网关实现vpn加速的方法
CN100481812C (zh) 基于应用的流量控制方法及进行应用流量控制的网络设备
CN101635720B (zh) 一种未知流量过滤方法和一种带宽管理设备
CN102148854A (zh) 对等节点共享流量识别方法和装置
CN106301921A (zh) 基于隧道的大象流量传输调度方法及系统
CN105337958A (zh) 一种基于OpenFlow流的网络安全审计、接入系统和方法
SG184120A1 (en) Method of identifying a protocol giving rise to a data flow
CN101741745B (zh) 识别对等网络应用流量的方法及其系统
CN108881221A (zh) 一种基于数据包过滤的物联网设备通信安全芯片
CN101184089A (zh) 一种基于端口与内容混杂检测的协议识别方法
CN103442029B (zh) 异构实时历史数据库同步方法和系统
CN101442519B (zh) 一种p2p软件监测方法及系统
CN108055166A (zh) 一种嵌套的应用层协议的状态机提取系统及其提取方法
CN107451092A (zh) 一种基于ib网络的数据传输系统
CN108011870B (zh) 一种软件远程在线升级信息自动识别管理方法
CN101599865A (zh) 一种基于唯一公网ip地址的集群网络的管理方法
CN103001966A (zh) 一种私网ip的处理、识别方法及装置
CN112073326B (zh) 一种智能变电站过程层网络数据流控制方法
CN101753456B (zh) 一种对等网络流量检测方法及其系统

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523

Termination date: 20140801

EXPY Termination of patent right or utility model