CN106385402B - 应用识别方法及设备、发送应用会话表的方法及服务器 - Google Patents
应用识别方法及设备、发送应用会话表的方法及服务器 Download PDFInfo
- Publication number
- CN106385402B CN106385402B CN201610785121.0A CN201610785121A CN106385402B CN 106385402 B CN106385402 B CN 106385402B CN 201610785121 A CN201610785121 A CN 201610785121A CN 106385402 B CN106385402 B CN 106385402B
- Authority
- CN
- China
- Prior art keywords
- application
- current
- tag group
- data stream
- session information
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供了应用识别方法及设备、发送应用会话表的方法及服务器,其中应用识别方法应用于应用识别设备上,应用识别设备包括:初始应用会话表和应用规则库;初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,该方法包括:响应于接收当前数据流,获取所述当前数据流的当前会话信息;在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组,如果能查找到,则按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流属于哪一个应用。采用本申请实施例可以提高应用识别的效率。
Description
技术领域
本申请涉及互联网数据处理技术领域,特别涉及一种应用识别方法及应用识别设备,以及,一种发送应用会话表的方法及云端服务器。
背景技术
随着网络技术的不断发展,出现了越来越多的为用户提供网络服务的应用,例如,百度,搜狐等。用户利用网络流量与这些应用进行信息交互,进而可以获取到最新的知识或消息,为用户的工作与生活提供了巨大的便利。但是,由于网络应用的种类繁多,对网络的管理也带来一定的困难,并且,应用的质量良莠不齐,也对网络的安全带来了新的威胁。
现有技术中,为了更方便的管理网络上的应用,提供给用户更为安全的网络体验,通常会在用户使用各个应用提供的网络服务时,对各类型的应用进行准确的识别,进而可以对应用发送的数据流进行有效的拦截或者限速等操作。
发明内容
但是发明人在研究过程中发现,现有技术在进行应用识别时,通常采用的是基于流特征识别的方式,而基于流特征识别应用的方法仅仅能识别具有某类特征的应用,而无法准确识别到某一个应用,所以识别的粒度比较粗糙,这就会导致后续无法对网络中的数据流进行有效的控制。而如果需要准确识别,就需要对数据流中的各个数据包都逐包解析,而数据流中的数据包的个数是海量的,这就又会导致识别的效率很低,无法满足网络实时性的要求。因此,如何既能准确识别各个应用又能提高应用识别的效率,就成为现有技术中的一种亟待解决的问题。
基于此,本申请提供了一种应用识别的方法,用以在提高应用识别效率的同时,还能保证对各个应用识别的准确率,保证网络实时性要求的同时提高用户的网络服务体验。
本申请还提供了一种应用识别设备、云端服务器和应用识别***,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种应用识别方法,该方法应用于应用识别设备上,所述应用识别设备包括:初始应用会话表和应用规则库;所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性;所述应用规则库包括:多个应用标识和对应的应用规则;该方法包括:
响应于接收当前数据流,获取所述当前数据流的当前会话信息;
在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组,如果能查找到,则按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流属于哪一个应用。
可选的,所述数据流的会话信息包括:数据流的服务端IP、服务端端口和传输层协议;在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组,包括:
在所述初始应用会话表中分别查找当前会话信息中包括的当前服务器IP、当前服务端端口和当前传输层协议;
将查找到的会话信息对应的应用标签组确定为当前应用标签组。
可选的,所述按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流归属于哪一个应用,包括:
将所述当前应用标签组中置信度最大的应用,确定为待确认的当前应用;
从所述应用规则库中获取所述当前应用对应的当前应用规则;
判断所述当前数据流的内容是否满足所述当前应用规则,如果是,则确认所述当前数据流归属于所述当前应用,如果否,则按照置信度从大到小的顺序,将所述当前应用标签组中的下一个应用标识确定为所述待确认的当前应用,直至所述当前应用标签组中的所有应用标识都查找完毕。
可选的,所述应用标签组还包括:与应用对应的计数器,所述计数器用于表示应用被确认的次数;则在确认所述当前数据流归属于所述当前应用之后,还包括:
在当前应用标签组中将当前应用对应的计数器的值加一。
可选的,如果所述初始应用会话表中不存在所述当前会话信息,则所述方法还包括:
按照默认识别顺序,分别依据所述应用规则库中对应的各个应用规则,识别所述当前数据流归属于哪一个应用。
可选的,该方法还包括:
将当前数据流的会话信息和对应的当前应用标签组添加至所述应用会话表中,其中,所述当前应用标签组中的置信度为预设的初始值,所述计数器的值加一。
可选的,该方法还包括:
判断是否到达预设的更新时间周期,如果是,则将所述初始应用会话表中添加的数据流的会话信息及对应的应用标签组发送至云端服务器。
可选的,该方法还包括:
接收云端服务器返回的、所述添加的数据流的会话信息及更新的置信度,并依据所述更新的置信度更新所述初始应用会话表中的置信度;
将更新的置信度对应的计数器的值更新为预设的初始值。
本申请实施例还公开了一种发送应用会话表的方法,该方法应用于与多个应用识别设备相连的云端服务器上,该方法包括:
为所述多个应用识别设备分别生成多个初始应用会话表,所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性;
将所述多个初始应用会话表分别对应发送至所述多个应用识别设备。
可选的,该方法还包括:
在预设的更新时间周期到来时,接收所述多个应用识别设备发送的、添加的数据流的会话信息及添加的应用标签组;
依据所述添加的应用标签组包括的置信度和计数器,计算目标数据流对应的目标应用标签组中各个应用对应的置信度;其中,所述目标数据流为:初始应用会话表中的初始数据流,和,所述添加的数据流;
将更新的置信度及对应的数据流的会话信息,发送至对应的应用识别设备。
本申请实施例还公开了一种应用识别设备,所述应用识别设备包括:初始应用会话表和应用规则库;所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性;所述应用规则库包括:多个应用标识和对应的应用规则;所述设备包括:
获取单元,用于响应于接收当前数据流,获取所述当前数据流的当前会话信息;
查找单元,用于在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组;
第一识别单元,用于按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流属于哪一个应用。
可选的,所述数据流的会话信息包括:数据流的服务端IP、服务端端口和传输层协议;所述查找单元包括:
查找子单元,用于在所述初始应用会话表中分别查找当前会话信息中包括的当前服务器IP、当前服务端端口和当前传输层协议;
第一确定子单元,用于将查找到的会话信息对应的应用标签组确定为当前应用标签组。
可选的,所述第一识别单元包括:
第二确定子单元,用于将所述当前应用标签组中置信度最大的应用,确定为待确认的当前应用;
获取子单元,用于从所述应用规则库中获取所述当前应用对应的当前应用规则;
判断子单元,用于判断所述当前数据流的内容是否满足所述当前应用规则;
确认子单元,用于在所述判断子单元的结果为是的情况下,确认所述当前数据流归属于所述当前应用;
处理子单元,用于在所述判断子单元的结果为否的情况下,按照置信度从大到小的顺序,将所述当前应用标签组中的下一个应用标识确定为所述待确认的当前应用,直至所述当前应用标签组中的所有应用标识都查找完毕。
可选的,所述应用标签组还包括:与应用对应的计数器,所述计数器用于表示应用被确认的次数;则在确认所述当前数据流归属于所述当前应用之后,所述识别单元还包括:
计数子单元,用于在当前应用标签组中将当前应用对应的计数器的值加一。
可选的,还包括:
第二识别单元,用于按照默认识别顺序,分别依据所述应用规则库中对应的各个应用规则,识别所述当前数据流归属于哪一个应用。
可选的,还包括:
添加单元,用于将当前数据流的会话信息和对应的当前应用标签组添加至所述应用会话表中,其中,所述当前应用标签组中的置信度为预设的初始值,所述计数器的值加一。
可选的,还包括:
判断单元,用于判断是否到达预设的更新时间周期;
第一发送单元,用于在所述判断单元的结果为是的情况下,将所述初始应用会话表中添加的数据流的会话信息及对应的应用标签组发送至云端服务器。
可选的,还包括:
第一接收单元,用于接收云端服务器返回的、所述添加的数据流的会话信息及更新的置信度,并依据所述更新的置信度更新所述初始应用会话表中的置信度;
更新单元,用于将更新的置信度对应的计数器的值更新为预设的初始值。
本申请实施例还公开了一种云端服务器,所述云端服务器与多个应用识别设备相连,该服务器包括:
生成单元,用于为所述多个应用识别设备分别生成多个初始应用会话表,所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性;
第二发送单元,用于将所述多个初始应用会话表分别对应发送至所述多个应用识别设备。
可选的,还包括:
第二接收单元,用于在预设的更新时间周期到来时,接收所述多个应用识别设备发送的、添加的数据流的会话信息及添加的应用标签组;
计算单元,用于依据所述添加的应用标签组包括的置信度和计数器,计算目标数据流对应的目标应用标签组中各个应用对应的置信度;其中,所述目标数据流为:初始应用会话表中的初始数据流,和,所述添加的数据流;
第三发送单元,用于将更新的置信度及对应的数据流的会话信息,发送至对应的应用识别设备。
本申请实施例还公开了一种应用识别***,包括:前述的任意一项应用识别设备,和,前述的任意一项云端服务器。
与现有技术相比,本申请包括以下优点:
在本申请实施例中,应用识别设备上保存有初始应用会话表,其中记录了每条数据流可能归属于多个应用的置信度,置信度大的应用可能性就高,因此,按照置信度从大到小的顺序来在应用规则库中依次匹配对应的应用规则,可以使得置信度较高的应用优先匹配,一旦匹配到某个应用即可结束应用识别流程,从而提高了应用识别的效率。并且,进行应用识别时,还可以采用全数据包检测方式,也保证了应用识别的准确率。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的应用场景架构图;
图2是本申请的应用会话表的结构示意图;
图3是本申请的应用规则的结构示意图;
图4是本申请的应用识别方法实施例的流程图;
图5是本申请的云端服务器保存的应用会话记录的示意图;
图6是本申请的发送应用会话表的方法实施例的流程图;
图7是本申请的应用识别设备实施例的结构框图;
图8是本申请的云端服务器实施例的结构框图;
图9是本申请的应用识别***实施例的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1所示,为本申请实施例在实际应用中的场景架构图。在图1中,应用识别设备102可以单独部署在一个独立的网络内,或者,通常存在于各个网络的边界网关之中。例如,某公司共设置了3个局域网,则可以分别为这3个局域网设置3个应用识别设备,并为这3个应用识别设备设置一个云端服务器101,该云端服务器101可以和这3个应用识别设备分别相连,可以向这3个应用识别设备发送数据,也可以接收这3个应用识别设备上传的数据。
在应用识别设备102中,可以包括:初始应用会话表和应用规则库。其中,应用会话表的具体结构详见图2。初始应用会话表中可以包括数据流的会话信息和与会话信息一一对应的应用标签组。其中,图2左侧为数据流的会话信息,可以包括:服务端IP(IP)、服务端端口(Port)和传输层协议(Protocol),数据流的会话信息用来唯一表示一条数据流的特征,可以标识各个数据流。而图2右侧的应用标签组与会话信息一一对应,应用标签组可以包括:多个应用(Appid[i])和每一个应用对应的置信度(Confidence[i]),置信度为相同服务端IP、相同服务端端口且相同的传输层协议下,一条数据流属于该应用(Appid[i])的概率,表示对应的数据流归属于一个应用的可能性。此外,应用标签组还可以包括计数器(Count[i]),计数器与应用(Appid[i])一一对应,用于表示一段时间内数据流被识别为该应用的次数。其中,图2中的各个应用的置信度总和为1,即Confidence[0]+Confidence[1]+…+Confidence[i]=1,i为大于零的整数。
其中,应用规则库可以包括:多个应用标识和对应的应用规则。其中,一个应用对应至少一条应用规则,参考图3所示,为应用规则库中应用会话表的数据结构示意图,一个应用(Appid)对应i条规则(Rule),即,一条数据流的内容需要同时这i条规则才会被确认为属于该应用。其中,应用规则可以采用正则表达式实现。
参考图4,示出了本申请一种应用于应用识别设备上的应用识别方法实施例的流程图,其中,本实施例中的应用识别设备为图1所示的任意一个应用识别设备,本实施例可以包括以下步骤:
步骤401:响应于接收当前数据流,获取所述当前数据流的当前会话信息。
在实际应用中,如果应用识别设备部署在局域网上,则应用识别可以获取接入该局域网的所有用户设备向外发送的数据包,以及应用给用户设备发送的数据包,进而,获取到每一条数据流的会话信息,例如,当前数据流的服务端IP、服务端端口和传输层协议。当然,本实施例中的会话信息也可以是其他任意能够唯一标识数据流的内容。在本实施例中,以任意一个应用向任意一个用户设备发送的任意一条数据流为例进行说明。其中,本实施例中的应用指的是,有网络流量产生的网络服务器,例如,百度,搜狐视频,或者爱奇艺等。
步骤402:在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组,如果能查找到,则进入步骤203。
因为应用识别设备存储有初始应用会话表,因此,可以在获取到当前数据库的当前会话信息之后,在所述初始应用会话表中分别查找当前会话信息中包括的当前服务器IP、当前服务端端口和当前传输层协议,如果都能查找到,说明当前数据流的会话已经保存在初始应用会话表中,则查找到的会话信息对应的应用标签组确定为当前应用标签组。假设确定的当前应用标签组中有5个应用,以及这5个应用分别对应的5个置信度。进一步的,还可以包括这5个应用分别对应的计数器的数值。
步骤403:按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流属于哪一个应用。
在确定到当前应用标签组之后,该当前应用标签组中5个应用分别对应的5个置信度存在大小顺序,例如,大小分别为:(百度)0.43、(搜狐)0.26、(爱奇艺)0.18、(优酷)0.11和(QQ)0.02。则在本步骤中,将按照置信度从大到小的顺序,分别依据百度、搜狐、爱奇艺、优酷和QQ在应用规则库中对应的应用规则,来识别当前数据流属于这5个应用中的哪一个。数据流通过查找应用会话表,找到相应的应用标签组(Appid[0],Appid[1],…Appid[i]),再通过每个应用标签查找应用识别引擎中的对应的应用规则集,来确认应用识别标签的正确性。而不需要每次都查找所有应用的规则。根据查找的结果来更新应用识别节点中的应用会话表中的计数器信息。
具体的,本步骤可以包括步骤A1~步骤A5:
步骤A1:将所述当前应用标签组中置信度最大的应用,确定为待确认的当前应用。
首先,将置信度最大的应用,例如,百度,确定为待确认的当前应用。
步骤A2:从所述应用规则库中获取所述当前应用对应的当前应用规则。
从应用规则库中查找到百度对应的应用规则,即数据流归属于百度时需要满足的正则表达式。
步骤A3:判断所述当前数据流的内容是否满足所述当前应用规则,如果是,则进入步骤A4,如果否,则进入步骤A5。
进而,判断当前数据流的内容是否满足步骤A2中查找到的正则表达式,如果满足,则可以确认当前数据流就是百度发送的数据流。
步骤A4:确认所述当前数据流归属于所述当前应用。
步骤A5:按照置信度从大到小的顺序,将所述当前应用标签组中的下一个应用标识确定为所述待确认的当前应用,直至所述当前应用标签组中的所有应用标识都查找完毕。
而如果不满足,则说明当前数据流不是百度发送的数据流,在这种情况下,就再次按照置信度从大到小的顺序,将“搜狐”确定为待确认的当前应用并执行步骤A2进行确认,直至确认当前数据流属于某一个应用,或者,当前应用标签组中的所有应用标识都查找完毕。可以理解的是,在当前应用标签组中的所有应用标识都查找完毕还未确认当前数据流属于哪一个应用时,则需要将应用规则库中还未进行匹配的剩余的所有应用规则,按照默认识别顺序,都一一与当前数据流都进行匹配。
具体的,本步骤可以此案有DPI(深度包检测,Deep Packet Inspection)的方法进行数据表匹配。DPI是目前各种网络产品中的基础的应用识别技术,其通过一定的规范的规则语法,将应用的签名特征进行描述,并在数据包的负载数据与规则签名进行逐包解析并匹配,从而达到签名特征识别的功能。当然,在本步骤中也可以采用将当前数据流的部分数据包进行解析并匹配的方式,不管采用哪种方式,都能使识别结果较为准确。
在应用标签组包括与应用对应的计数器的情况下,在步骤A4之后,还可以包括步骤A6:
步骤A6:在当前应用标签组中将当前应用对应的计数器的值加一。
如果确认当前数据流属于当前应用标签组中的当前应用,例如百度,则将百度对应的计数器的值加一,该计数器的值就表示了百度在一段时间内(例如,预先设置的时间更新周期内)被识别出的次数。例如,计数器的值为3,则表示在预先设置的时间更新周期内,百度一共被识别出了3次,也可以理解为,一共有3条数据流被识别出是百度发送的。
如果在步骤402中在初始应用会话表中不存在当前会话信息,则在步骤402之后,所述方法还可以包括:
步骤404:按照默认识别顺序,分别依据所述应用规则库中对应的各个应用规则,识别所述当前数据流归属于哪一个应用。
在本实施例中,如果应用识别设备保存的初始应用会话表中保存在当前数据流的会话信息,则需要将应用规则库中各个应用对应的应用规则都进行匹配,从而识别出当前数据流属于哪一个应用。当然,在识别时,可以按照预先设置的默认识别顺序来一一匹配应用规则库中的各条应用规则。默认识别顺序可以按照英文字母顺序来一一识别,例如先识别首字母为“A”的应用对应的应用规则,接着识别首字母为“B”的应用对应的应用规则,以此类推。当然,还可以按照任意其他本领域技术人员设置的顺序来识别。
假设在步骤404中识别出了当前数据流的内容与应用“芒果TV”的应用规则完全匹配,则当前数据流属于应用“芒果TV”,则还可以包括:
步骤405:将当前数据流的会话信息和对应的当前应用标签组添加至所述初始应用会话表中,其中,所述当前应用标签组中的置信度为预设的初始值,所述计数器的值加一。
将当前数据流的会话信息,和对应的应用标签组分别添加至初始应用会话表中。对应的当前应用标签组中的置信度可以为初始值,初始值可以设置为零,而计数器的值可以设置为一。
对于应用识别设备来讲,在执行步骤401~步骤405的同时,还可以包括:
步骤B:判断是否到达预设的更新时间周期,如果是,则将所述初始应用会话表中添加的数据流的会话信息及对应的应用标签组,发送至云端服务器。
在预设的更新时间周期T到来时,T可以设置为5秒等,应用识别设备可以将在T时段内,初始应用会话表中新添加的会话信息及对应的应用标签组发送至云端服务器,由云端服务器根据应用标签组中各个应用对应的计数器的数值,和置信度的值,来重新计算各个应用的置信度。进而,云端服务器还可以将更新的置信度再分发给各个应用识别设备。其中,云端的应用识别会话表格式如图5所示。在图5中,假设一共有i个应用,i为大于零的整数,则对于应用Appid[0],计数器记录的其更新前识别总数为A0,更新前置信度为A0/(A0+A1+…+Ai),假设计数器记录的新增识别数为N0,则云端服务器重新计算的置信度为:(A0+N0)/(A0+A1+…+Ai+N0+N1…+Ni),以此类推,在图5中给出了第i个应用Appid[i]的更新后置信度的计算方式。
需要说明的是,在实际应用中,为了保证应用识别识别的识别效率,各个应用识别设备可以根据选择接收云端服务器的部分应用会话表,例如比如,接收计数器记录的识别总数(更新前识别总数和新增识别数之和)的前若干条(例如1000条)条应用会话记录,或者,只接收置信度大于预设值(例如0.8)的应用会话记录,等等。
在本步骤中,如果未到预设的时间周期T,则可以继续实时执行本步骤进行判断。
在执行步骤B应用识别设备将初始应用会话表发送给云端服务器之后,还可以包括:
步骤C:接收云端服务器返回的、所述添加的数据流的会话信息及更新的置信度,并依据所述更新的置信度更新所述初始应用会话表中的置信度,以及,将更新的置信度对应的计数器的值更新为预设的初始值。
应用识别设备再接收云端服务器返回的、添加的数据流的会话信息及更新的置信度,并根据云端服务器重新计算的置信度来更新自己保存的、初始应用会话表中的置信度,并将置信度有更新的应用对应的计数器的值,也更新为预设的初始值,例如零。
可见,在本申请实施例中,应用识别设备上保存有初始应用会话表,其中记录了每条数据流可能归属于多个应用的置信度,置信度大的应用可能性就高,因此,按照置信度从大到小的顺序来在应用规则库中依次匹配对应的应用规则,可以使得置信度较高的应用优先匹配,一旦匹配到某个应用即可结束应用识别流程,从而提高了应用识别的效率。并且,进行应用识别时,还可以采用全数据包检测方式,也保证了应用识别的准确率。
参考图6,示出了本申请一种发送应用会话表的方法实施例的流程图,本实施例可以应用于与多个应用识别设备相连的云端服务器上,本实施例可以包括以下步骤:
步骤601:为所述多个应用识别设备分别生成多个初始应用会话表。
在本实施例中,应用识别设备上的初始应用会话表由云端服务器生成。该初始应用会话表可以包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,其中,应用标签组可以包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性。具体的应用会话表的介绍可以参考图4所示的实施例,在此不再赘述。
另外,在一种可能的实现方式中,初始应用会话表中各个应用对应的置信度和计数器的初始值可以设置为零。则在这种情况下,在预设的时间更新周期T到来时,云端服务器可以根据接收到的、更新的计数器的数值,来重新计算置信度。或者,在另一种可能的实现方式中,初始应用会话表中的各个应用对应的计数器的初始值可以设置为零,而置信度的初始值可以根据历史识别数据计算得到。例如,云端服务器可以根据过去的一个星期内各个应用被识别出的次数,按照图5所示的方式计算得到各个应用对应的置信度的初始值。当然,采用何种实现方式,都可以实现本申请。
步骤602:将所述多个初始应用会话表分别对应发送至所述多个应用识别设备。
云端服务器再将生成的多个初始应用会话表分别发送至相连的多个应用识别设备。
在步骤602之后,还可以包括:
步骤603:在预设的更新时间周期到来时,接收所述多个应用识别设备发送的、添加的数据流的会话信息及添加的应用标签组。
云端服务器和多个应用识别设备之间,可以共同维护一个更新时间周期T,在T时刻到来时,云端服务器会接收到在该T时刻内,各个应用识别设备新添加的应用会话表中的数据流的会话信息,以及对应的添加的应用标签组,例如计数器的数值。
步骤604:依据所述添加的应用标签组包括的置信度和计数器,计算目标数据流对应的目标应用标签组中各个应用对应的置信度。
以此,云端服务器可以依据图5的方式重新计算初始应用会话表中的初始数据流对于的各个应用的置信度,以及,计算在T时刻内新添加的数据流对于的各个应用的置信度。
步骤605:将更新的置信度及对应的数据流的会话信息,发送至对应的应用识别设备。
云端服务器再将重新计算得到的更新的置信度,以及对应的数据流的会话信息,发送至各个应用识别设备,以便各个应用识别设备更新初始应用会话表中的各个应用的置信度的初始值。
在本实施例中,云端服务器生成初始应用会话表再发送给应用识别设备进行保存,其中记录了每条数据流可能归属于多个应用的置信度,置信度大的应用可能性就高,因此,按照置信度从大到小的顺序来在应用规则库中依次匹配对应的应用规则,可以使得置信度较高的应用优先匹配,一旦匹配到某个应用即可结束应用识别流程,从而提高了应用识别的效率。并且,进行应用识别时,还可以采用全数据包检测方式,也保证了应用识别的准确率。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述本申请一种应用识别方法实施例所提供的方法相对应,参见图7,本申请还提供了一种应用识别设备实施例,在本实施例中,该应用识别可以包括:初始应用会话表和应用规则库;所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性;所述应用规则库包括:多个应用标识和对应的应用规则;所述应用识别设备可以包括:
获取单元701,用于响应于接收当前数据流,获取所述当前数据流的当前会话信息。
查找单元702,用于在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组。
其中,所述数据流的会话信息包括:数据流的服务端IP、服务端端口和传输层协议;所述查找单元702可以包括:查找子单元,用于在所述初始应用会话表中分别查找当前会话信息中包括的当前服务器IP、当前服务端端口和当前传输层协议;和,第一确定子单元,用于将查找到的会话信息对应的应用标签组确定为当前应用标签组。
第一识别单元703,用于按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流属于哪一个应用。
其中,所述第一识别单元703可以包括:
第二确定子单元,用于将所述当前应用标签组中置信度最大的应用,确定为待确认的当前应用;获取子单元,用于从所述应用规则库中获取所述当前应用对应的当前应用规则;判断子单元,用于判断所述当前数据流的内容是否满足所述当前应用规则;确认子单元,用于在所述判断子单元的结果为是的情况下,确认所述当前数据流归属于所述当前应用;和,处理子单元,用于在所述判断子单元的结果为否的情况下,按照置信度从大到小的顺序,将所述当前应用标签组中的下一个应用标识确定为所述待确认的当前应用,直至所述当前应用标签组中的所有应用标识都查找完毕。
其中,应用标签组还可以包括:与应用对应的计数器,所述计数器用于表示应用被确认的次数;则在确认所述当前数据流归属于所述当前应用之后,所述识别单元还可以包括:计数子单元,用于在当前应用标签组中将当前应用对应的计数器的值加一。
在实际应用中,所述应用识别设备还可以包括:
第二识别单元704,用于按照默认识别顺序,分别依据所述应用规则库中对应的各个应用规则,识别所述当前数据流归属于哪一个应用。
和,添加单元705,用于将当前数据流的会话信息和对应的当前应用标签组添加至所述应用会话表中,其中,所述当前应用标签组中的置信度为预设的初始值,所述计数器的值加一。
在实际应用中,所述应用识别设备还可以包括:
判断单元,用于判断是否到达预设的更新时间周期;和,第一发送单元,用于在所述判断单元的结果为是的情况下,将所述初始应用会话表中添加的数据流的会话信息及对应的应用标签组发送至云端服务器。
或者,在实际应用中,所述应用识别设备还可以包括:
第一接收单元,用于接收云端服务器返回的、所述添加的数据流的会话信息及更新的置信度,并依据所述更新的置信度更新所述初始应用会话表中的置信度;和,更新单元,用于将更新的置信度对应的计数器的值更新为预设的初始值。
本实施例的应用识别设备上保存有初始应用会话表,其中记录了每条数据流可能归属于多个应用的置信度,置信度大的应用可能性就高,因此,按照置信度从大到小的顺序来在应用规则库中依次匹配对应的应用规则,可以使得置信度较高的应用优先匹配,一旦匹配到某个应用即可结束应用识别流程,从而提高了应用识别的效率。并且,进行应用识别时,还可以采用全数据包检测方式,也保证了应用识别的准确率。
参考图8所示,本申请还提供了一种云端服务器实施例,在本实施例中,所述云端服务器与多个应用识别设备相连,该服务器包括:
生成单元801,用于为所述多个应用识别设备分别生成多个初始应用会话表,所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性。
第二发送单元802,用于将所述多个初始应用会话表分别对应发送至所述多个应用识别设备。
其中,在实际应用中,该云端服务器还可以包括:
第二接收单元803,用于在预设的更新时间周期到来时,接收所述多个应用识别设备发送的、添加的数据流的会话信息及添加的应用标签组。
计算单元804,用于依据所述添加的应用标签组包括的置信度和计数器,计算目标数据流对应的目标应用标签组中各个应用对应的置信度;其中,所述目标数据流为:初始应用会话表中的初始数据流,和,所述添加的数据流。
第三发送单元805,用于将更新的置信度及对应的数据流的会话信息,发送至对应的应用识别设备。
本实施例中的云端服务器可以将初始应用会话表发送给各个应用识别设备进行保存、,其中记录了每条数据流可能归属于多个应用的置信度,置信度大的应用可能性就高,因此,按照置信度从大到小的顺序来在应用规则库中依次匹配对应的应用规则,可以使得置信度较高的应用优先匹配,一旦匹配到某个应用即可结束应用识别流程,从而提高了应用识别的效率。并且,进行应用识别时,还可以采用全数据包检测方式,也保证了应用识别的准确率。
参见图9,本申请还提供了一种应用识别***实施例,在本实施例中,该***可以包括图7所示的、多个应用识别设备90,和,与该多个应用识别设备连接的云端服务器91。本实施例采用了云端服务器91对多个应用识别设备91进行管理,并为多个应用识别设备91提供初始应用会话表,并在接收到多个应用识别设备91返回的、添加的应用会话记录后,重新计算各个应用的置信度并同步给该多个应用识别设备91,以此保证各个应用识别设备进行应用识别时,准确率更高。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的应用识别方法及设备、发送应用会话表的方法及服务器进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (20)
1.一种应用识别方法,其特征在于,该方法应用于应用识别设备上,所述应用识别设备包括:初始应用会话表和应用规则库;所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性;所述应用规则库包括:多个应用标识和对应的应用规则;该方法包括:
响应于接收当前数据流,获取所述当前数据流的当前会话信息;
在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组,如果能查找到,则按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流属于哪一个应用。
2.根据权利要求1所述的方法,其特征在于,所述数据流的会话信息包括:数据流的服务端IP、服务端端口和传输层协议;在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组,包括:
在所述初始应用会话表中分别查找当前会话信息中包括的当前服务器IP、当前服务端端口和当前传输层协议;
将查找到的会话信息对应的应用标签组确定为当前应用标签组。
3.根据权利要求2所述的方法,其特征在于,所述按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流归属于哪一个应用,包括:
将所述当前应用标签组中置信度最大的应用,确定为待确认的当前应用;
从所述应用规则库中获取所述当前应用对应的当前应用规则;
判断所述当前数据流的内容是否满足所述当前应用规则,如果是,则确认所述当前数据流归属于所述当前应用,如果否,则按照置信度从大到小的顺序,将所述当前应用标签组中的下一个应用标识确定为所述待确认的当前应用,直至所述当前应用标签组中的所有应用标识都查找完毕。
4.根据权利要求3所述的方法,其特征在于,所述应用标签组还包括:与应用对应的计数器,所述计数器用于表示应用被确认的次数;则在确认所述当前数据流归属于所述当前应用之后,还包括:
在当前应用标签组中将当前应用对应的计数器的值加一。
5.根据权利要求1~4任一项所述的方法,其特征在于,如果所述初始应用会话表中不存在所述当前会话信息,则所述方法还包括:
按照默认识别顺序,分别依据所述应用规则库中对应的各个应用规则,识别所述当前数据流归属于哪一个应用。
6.根据权利要求5所述的方法,其特征在于,所述应用标签组还包括:与应用对应的计数器,所述计数器用于表示应用被确认的次数;
还包括:
将当前数据流的会话信息和对应的当前应用标签组添加至所述应用会话表中,其中,所述当前应用标签组中的置信度为预设的初始值,所述当前应用标签组中与所述当前数据流归属的应用对应的计数器的值设置为一。
7.根据权利要求6所述的方法,其特征在于,还包括:
判断是否到达预设的更新时间周期,如果是,则将所述初始应用会话表中添加的数据流的会话信息及对应的应用标签组发送至云端服务器。
8.根据权利要求7所述的方法,其特征在于,还包括:
接收云端服务器返回的、所述添加的数据流的会话信息及更新的置信度,并依据所述更新的置信度更新所述初始应用会话表中的置信度;
将更新的置信度对应的计数器的值更新为预设的初始值。
9.一种发送应用会话表的方法,其特征在于,该方法应用于与多个应用识别设备相连的云端服务器上,该方法包括:
为所述多个应用识别设备分别生成多个初始应用会话表,所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性;
将所述多个初始应用会话表分别对应发送至所述多个应用识别设备;其中,所述应用识别设备还包括应用规则库;所述应用规则库包括:多个应用标识和对应的应用规则;所述应用识别设备用于响应于接收当前数据流,获取所述当前数据流的当前会话信息;在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组,如果能查找到,则按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流属于哪一个应用。
10.根据权利要求9所述的方法,其特征在于,该方法还包括:
在预设的更新时间周期到来时,接收所述多个应用识别设备发送的、添加的数据流的会话信息及添加的应用标签组;
依据所述添加的应用标签组包括的置信度和计数器,计算目标数据流对应的目标应用标签组中各个应用对应的置信度;其中,所述目标数据流为:初始应用会话表中的初始数据流,和,所述添加的数据流;
将更新的置信度及对应的数据流的会话信息,发送至对应的应用识别设备。
11.一种应用识别设备,其特征在于,所述应用识别设备包括:初始应用会话表和应用规则库;所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性;所述应用规则库包括:多个应用标识和对应的应用规则;所述设备包括:
获取单元,用于响应于接收当前数据流,获取所述当前数据流的当前会话信息;
查找单元,用于在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组;
第一识别单元,用于按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流属于哪一个应用。
12.根据权利要求11所述的设备,其特征在于,所述数据流的会话信息包括:数据流的服务端IP、服务端端口和传输层协议;所述查找单元包括:
查找子单元,用于在所述初始应用会话表中分别查找当前会话信息中包括的当前服务器IP、当前服务端端口和当前传输层协议;
第一确定子单元,用于将查找到的会话信息对应的应用标签组确定为当前应用标签组。
13.根据权利要求12所述的设备,其特征在于,所述第一识别单元包括:
第二确定子单元,用于将所述当前应用标签组中置信度最大的应用,确定为待确认的当前应用;
获取子单元,用于从所述应用规则库中获取所述当前应用对应的当前应用规则;
判断子单元,用于判断所述当前数据流的内容是否满足所述当前应用规则;
确认子单元,用于在所述判断子单元的结果为是的情况下,确认所述当前数据流归属于所述当前应用;
处理子单元,用于在所述判断子单元的结果为否的情况下,按照置信度从大到小的顺序,将所述当前应用标签组中的下一个应用标识确定为所述待确认的当前应用,直至所述当前应用标签组中的所有应用标识都查找完毕。
14.根据权利要求13所述的设备,其特征在于,所述应用标签组还包括:与应用对应的计数器,所述计数器用于表示应用被确认的次数;则在确认所述当前数据流归属于所述当前应用之后,所述识别单元还包括:
计数子单元,用于在当前应用标签组中将当前应用对应的计数器的值加一。
15.根据权利要求11~14任意一项所述的设备,其特征在于,还包括:
第二识别单元,用于按照默认识别顺序,分别依据所述应用规则库中对应的各个应用规则,识别所述当前数据流归属于哪一个应用。
16.根据权利要求15所述的设备,其特征在于,所述应用标签组还包括:与应用对应的计数器,所述计数器用于表示应用被确认的次数;
还包括:
添加单元,用于将当前数据流的会话信息和对应的当前应用标签组添加至所述应用会话表中,其中,所述当前应用标签组中的置信度为预设的初始值,所述当前应用标签组中与所述当前数据流归属的应用对应的计数器的值设置为一。
17.根据权利要求16所述的设备,其特征在于,还包括:
判断单元,用于判断是否到达预设的更新时间周期;
第一发送单元,用于在所述判断单元的结果为是的情况下,将所述初始应用会话表中添加的数据流的会话信息及对应的应用标签组发送至云端服务器。
18.根据权利要求17所述的设备,其特征在于,还包括:
第一接收单元,用于接收云端服务器返回的、所述添加的数据流的会话信息及更新的置信度,并依据所述更新的置信度更新所述初始应用会话表中的置信度;
更新单元,用于将更新的置信度对应的计数器的值更新为预设的初始值。
19.一种云端服务器,其特征在于,所述云端服务器与多个应用识别设备相连,该服务器包括:
生成单元,用于为所述多个应用识别设备分别生成多个初始应用会话表,所述初始应用会话表包括:数据流的会话信息和与所述会话信息一一对应的应用标签组,所述应用标签组包括:多个应用和对应的置信度,所述置信度用于表示对应的数据流归属于一个应用的可能性;
第二发送单元,用于将所述多个初始应用会话表分别对应发送至所述多个应用识别设备;其中,所述应用识别设备还包括应用规则库;所述应用规则库包括:多个应用标识和对应的应用规则;所述应用识别设备用于响应于接收当前数据流,获取所述当前数据流的当前会话信息;在所述初始应用会话表中查找所述当前会话信息及对应的当前应用标签组,如果能查找到,则按照所述当前应用标签组中置信度从大到小的顺序,分别依据所述应用规则库中对应的应用规则识别所述当前数据流属于哪一个应用。
20.根据权利要求19所述的服务器,其特征在于,还包括:
第二接收单元,用于在预设的更新时间周期到来时,接收所述多个应用识别设备发送的、添加的数据流的会话信息及添加的应用标签组;
计算单元,用于依据所述添加的应用标签组包括的置信度和计数器,计算目标数据流对应的目标应用标签组中各个应用对应的置信度;其中,所述目标数据流为:初始应用会话表中的初始数据流,和,所述添加的数据流;
第三发送单元,用于将更新的置信度及对应的数据流的会话信息,发送至对应的应用识别设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610785121.0A CN106385402B (zh) | 2016-08-31 | 2016-08-31 | 应用识别方法及设备、发送应用会话表的方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610785121.0A CN106385402B (zh) | 2016-08-31 | 2016-08-31 | 应用识别方法及设备、发送应用会话表的方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106385402A CN106385402A (zh) | 2017-02-08 |
CN106385402B true CN106385402B (zh) | 2021-07-30 |
Family
ID=57939385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610785121.0A Active CN106385402B (zh) | 2016-08-31 | 2016-08-31 | 应用识别方法及设备、发送应用会话表的方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106385402B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580256B (zh) | 2018-05-22 | 2022-06-10 | 华为技术有限公司 | 一种识别应用标识的方法、设备及*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645892B (zh) * | 2009-08-26 | 2012-09-05 | 成都市华为赛门铁克科技有限公司 | 流量检测方法和设备 |
CN102222199B (zh) * | 2011-06-03 | 2013-05-08 | 奇智软件(北京)有限公司 | 应用程序身份识别方法及*** |
US9407751B2 (en) * | 2012-09-13 | 2016-08-02 | Intel Corporation | Methods and apparatus for improving user experience |
GB2508174B (en) * | 2012-11-22 | 2015-04-08 | F Secure Corp | Detecting application behavior |
CN104796406B (zh) * | 2015-03-20 | 2018-06-12 | 新华三技术有限公司 | 一种应用识别方法及装置 |
CN105591973B (zh) * | 2015-12-31 | 2019-12-20 | 杭州数梦工场科技有限公司 | 应用识别方法及装置 |
-
2016
- 2016-08-31 CN CN201610785121.0A patent/CN106385402B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106385402A (zh) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108092979B (zh) | 一种防火墙策略处理方法及装置 | |
CN106878262B (zh) | 报文检测方法及装置、建立本地威胁情报库的方法及装置 | |
US10027739B1 (en) | Performance-based content delivery | |
CN105591973B (zh) | 应用识别方法及装置 | |
CN110708215B (zh) | 深度包检测规则库生成方法、装置、网络设备及存储介质 | |
CN107404408B (zh) | 一种虚拟身份关联识别方法及装置 | |
CN109729183B (zh) | 请求处理方法、装置、设备及存储介质 | |
CN108282414B (zh) | 一种数据流的引导方法、服务器和*** | |
CN111953552B (zh) | 数据流的分类方法和报文转发设备 | |
CN110324327B (zh) | 基于特定企业域名数据的用户及服务器ip地址标定装置及方法 | |
US20150188879A1 (en) | Apparatus for grouping servers, a method for grouping servers and a recording medium | |
CN111563560B (zh) | 基于时序特征学习的数据流分类方法及装置 | |
CN112463772B (zh) | 日志处理方法、装置、日志服务器及存储介质 | |
CN110674362A (zh) | 搜索推荐方法、装置、电子设备及可读存储介质 | |
Shim et al. | Application traffic classification using payload size sequence signature | |
CN108322495A (zh) | 资源访问请求的处理方法、装置和*** | |
CN106385402B (zh) | 应用识别方法及设备、发送应用会话表的方法及服务器 | |
CN108063814B (zh) | 一种负载均衡方法及装置 | |
US20210158217A1 (en) | Method and Apparatus for Generating Application Identification Model | |
CN111565124B (zh) | 拓扑分析方法及装置 | |
US20150058466A1 (en) | Device for server grouping | |
CN104811340A (zh) | 一种核查方法 | |
CN108900566B (zh) | 一种网络中ip设备的位置确定方法及装置 | |
CN109492655B (zh) | 一种特征提取方法、装置及终端 | |
CN117793095A (zh) | 数据转发方法、装置、***、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |