当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于云计算的移动应用实时识别方法技术

技术编号:21205030 阅读:16 留言:0更新日期:2019-05-25 02:47
本发明专利技术公开了一种基于云计算的移动应用实时识别方法,该方法构建一个多计算机组成的集群,扩展计算资源,多个分类器并行识别,且不会因集群中的一个节点崩溃而造成整个系统崩溃,提高系统的稳定性;以数据包而不是数据流为单位对捕获的数据转发,减少因等待接收数据造成的系统资源浪费,并且达到实时识别的效果;对需要添加新的待识别应用类型的情况,无需重新训练模型,原来的识别模型照常使用,只需要收集新应用相关数据,训练新的识别模型,与旧模型并行运行,即可获得新应用识别效果。

A Real-time Recognition Method for Mobile Applications Based on Cloud Computing

The invention discloses a real-time identification method for mobile applications based on cloud computing. The method constructs a cluster composed of multiple computers, expands computing resources, recognizes multiple classifiers in parallel, and does not cause the whole system to collapse due to the collapse of one node in the cluster, thus improving the stability of the system; forwards captured data in the unit of data packets rather than data streams, and reduces the number of data streams. The waste of system resources caused by waiting for receiving data and reaching the effect of real-time recognition. For the case of adding new application types to be identified, there is no need to re-train the model. The original recognition model is used as usual, only need to collect the relevant data of new application, train the new recognition model, and run in parallel with the old model, the recognition effect of new application can be obtained.

【技术实现步骤摘要】
一种基于云计算的移动应用实时识别方法
本专利技术涉及一种基于云计算的移动应用实时识别方法。
技术介绍
传统的应用识别技术主要通过分析数据包的载荷信息与流量统计特性,使用深度包检测与深度流检测技术进行应用识别。随着网络环境的日益复杂,这些流量识别技术逐渐失效。机器学习方法近年来被用于网络流量分类,其性能较传统方法有所提升,但仍因其浅层网络结构特性,无法实现细粒度应用识别,同时机器学习十分依赖于流量数据的特征,需要耗费大量人力和时间用于特征提取。因此基于深度学习的移动应用识别算法被提出。该算法综合考虑了数据包于数据流各自的特性,通过对单个数据包进行提取与分类,对整个数据流进行加权统计的方式来时限对移动应用进行识别,具有识别准确率高,粒度细,效率高的特点。系统对常见的5大类共15中应用的平均识别准确率接近80%。上述现有技术在算法层面上解决了传统应用识别技术无法应对复杂网络环境的问题以及机器学习需要手动提取流量特征的问题。但在具体实施时有两个问题:第一,该算法在识别阶段在本地对所捕获的数据包按所在TCP连接分组将TCP流缓存,在TCP流结束之后再集中发送到数据处理模块进行分类,分类过程如图1所示。在当前所有TCP连接都没有结束的时候,没有任何数据流被提交到数据处理模块,从而分类器模块进程被挂起,造成系统计算资源、尤其是GPU资源的浪费。第二,一个无线网络可能会有数百个终端连入,每个终端可能会使用产生大量瞬时流量的应用,此时流经路由器的流量或达到最大带宽,瞬间产生的数据流的数量大,在分类器模块当前存在识别任务时,后续接收的数据流必须等待。当等待队列较长时,轻则实时性得不到保证,重则造成计算机内存耗尽而导致分类器模块崩溃。现有的技术只能够识别指定范围内的应用,如果需要添加新的应用类型,则必须重新训练模型,造成不必要的时间浪费。
技术实现思路
本专利技术的首要目的是提供一种基于云计算的移动应用实时识别方法。为实现上述目的,本专利技术具体采用如下技术方案:基于云计算的移动应用实时识别方法,包括以下步骤:(1)路由器抓包模块开启时,云端参数初始化结束后,默认启动若干节点用于接收转发的数据包,并根据路由器实时流量情况,自动调整启动节点数目以及选择使用的深度模型;(2)移动终端通过Wi-Fi与路由器建立通信,产生数据流量时,路由器实现负载均衡算法,将捕获的数据包发送到云端的合适接收节点处;(3)云端各活动节点执行深度学习网络并将网络驻留在进程中,接收数据包后,通过自身运行的深度学习网络对其进行分类,得到分类结果,返回到路由器;(4)路由器接收关于一个数据包的识别结果后,统计到对应数据流的识别参数中,当数据流的所有数据包都已返回识别结果时,计算得到整个数据流的最终识别结果,写到数据库中;(5)当出现新的待识别应用时,收集新的若干应用的数据构成训练数据集,训练出新的深度模型,与旧识别模型分布在不同的云端节点上,共同作业,扩大识别范围;(6)若在步骤(4)中数据流被识别为未知应用,这个数据流被保存到本地,作为新应用类型的一个特征样本,将被用来训练新的识别模型。本专利技术提供的基于云计算的移动应用实时识别方法具有以下优点:(1)路由器节点不等待整个数据流结束才转发,而是接收数据包之后直接转发,解决长时间没有数据提交到数据处理模块从而造成计算资源浪费的问题。(2)路由器节点转发时将流量按算力差异转发到云端全部的计算机中,避免单个节点由于识别速度慢导致数据包丢失的问题,即使在巨大流量压力下系统依旧正常运行。(3)本专利技术在进行应用识别的同时还统计了通过路由器的流量大小,因此可以同时进行流量监控,如对特定移动终端进行网络限速等。(4)一个应用识别系统通常只对一定范围内的应用类型有效。本专利技术在云计算平台上实行增量式识别,能很好地解决原应用识别方法只能识别一定范围内应用的问题,保持系统的可扩展性。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,并不构成对本专利技术的不当限定,在附图中:图1为
技术介绍
中识别TCP流所属应用的流程图;图2为本专利技术中基于云计算的单模型并行识别流程图;图3为本专利技术中基于云计算的多模型增量式识别示意图。具体实施方式下面将结合附图以及具体实施例来详细说明本专利技术,在此本专利技术的示意性实施例以及说明用来解释本专利技术,但并不作为对本专利技术的限定。一种基于云计算的移动应用实时识别方法,该方法的特点有:(1)构建一个多计算机组成的集群,扩展计算资源,多个分类器并行识别,且不会因集群中的一个节点崩溃而造成整个系统崩溃,提高系统的稳定性。(2)本专利技术以数据包而不是数据流为单位对捕获的数据转发,减少因等待接收数据造成的系统资源浪费,并且达到实时识别的效果。(3)对需要添加新的待识别应用类型的情况,无需重新训练模型,原来的识别模型照常使用,只需要收集新应用相关数据,训练新的识别模型,与旧模型并行运行,即可获得新应用识别效果。其中,关于负载均衡,步骤如下:步骤1:路由器节点开启抓包模块,根据应用识别模型的数量,启动云端服务器节点,加载模型并等待数据传输,此时路由器等待终端连接。抓包模块的编写使用libpcap+LinuxSocket结合,所侦听的无线网络使用Linux系统启动的无线热点。抓包模块的编写也可以采用OpenWRT智能路由器,编译属于OpenWRT的libpcap抓包转发程序的方式,同样可以完成步骤1的全部功能。步骤2:每抓到一个数据包,路由器端记录数据包编号,以及所属数据流的编号,将该数据包的内容以及数据包编号等一起通过socket转发到适合的节点,并接收属于该数据包的识别结果。步骤3:云端的节点服务器接收了一个数据包,包含数据包编号、终端的MAC地址、数据包的信息内容等。节点服务器将数据信息通过神经网络输出识别结果,返回给路由器节点。然后等待下一个数据包。流程图如图2所示。识别系统通过加载一个深度学习神经网络展开工作。一个深度学习神经网络占用的系统资源与神经网络的参数成正比。因此在一定硬件设备条件下,一台计算机或可以同时负载2个或以上的神经网络运行,此时每个识别模块可以通过共用计算机自身的IP地址,使用不同的端口,可以各自接收数据包并给路由器返回识别结果。因此,一个计算机节点运行多个识别模块的情况,可等同于多节点同时运行。步骤4:当路由器节点检测到通过自身的流量较大,当前的活动节点的识别速度不能支撑流量的产生速度时,将会启动云端的空闲节点,对其部署一个最近的识别结果中出现频率最高的应用识别模型。对上述步骤2的转发操作,流程如下:步骤2.1:路由器抓取数据包。数据包计数增加1,用来记录每秒间的瞬时流量。计时器到期,计数被重置至0,重置前的计数将用来决定是否增加或减少活动节点,以合理控制系统资源使用。步骤2.2:路由器将抓取的数据包编号,数据流缓存中寻找该数据包归属(若为SYN建立连接包,则直接新建数据流),加入该编号,然后从活动节点表中,选取目标的发包节点。可采用顺序轮转方式决定下一个目标节点。假设云端活动节点有5个,编号0,1,2,3,4,如果上一个数据包发送到了节点0,下一个数据包就被发送到节点1,下下个被发送到节点2,以此类推,发送到最后节点时,下一个目标回到节点0。根据各节点运算能力的差异,每一轮或有部分节点本文档来自技高网
...

【技术保护点】
1.一种基于云计算的移动应用实时识别方法,其特征在于包括以下步骤:(1)路由器抓包模块开启时,云端参数初始化结束后,默认启动若干节点用于接收转发的数据包,并根据路由器实时流量情况,自动调整启动节点数目以及选择使用的深度模型;(2)移动终端通过Wi‑Fi与路由器建立通信,产生数据流量时,路由器实现负载均衡算法,将捕获的数据包发送到云端的合适接收节点处;(3)云端各活动节点执行深度学习网络并将网络驻留在进程中,接收数据包后,通过自身运行的深度学习网络对其进行分类,得到分类结果,返回到路由器;(4)路由器接收关于一个数据包的识别结果后,统计到对应数据流的识别参数中,当数据流的所有数据包都已返回识别结果时,计算得到整个数据流的最终识别结果,写到数据库中;(5)当出现新的待识别应用时,收集新的若干应用的数据构成训练数据集,训练出新的深度模型,与旧识别模型分布在不同的云端节点上,共同作业,扩大识别范围;(6)若在步骤(4)中数据流被识别为未知应用,这个数据流被保存到本地,作为新应用类型的一个特征样本,将被用来训练新的识别模型。

【技术特征摘要】
1.一种基于云计算的移动应用实时识别方法,其特征在于包括以下步骤:(1)路由器抓包模块开启时,云端参数初始化结束后,默认启动若干节点用于接收转发的数据包,并根据路由器实时流量情况,自动调整启动节点数目以及选择使用的深度模型;(2)移动终端通过Wi-Fi与路由器建立通信,产生数据流量时,路由器实现负载均衡算法,将捕获的数据包发送到云端的合适接收节点处;(3)云端各活动节点执行深度学习网络并将网络驻留在进程中,接收数据包后,通过自身运行的深度学习网络对其进行分类,得到分类结果,返回到路由器;(4)路由器接收关于一个数据包的识别结果后,统计到对应数据流的识别参数中,当数据流的所有数据包都已返回识别结果时,计算得到整个数据流的最终识别结果,写到数据库中;(5)当出现新的待识别应用时,收集新的若干应用的数据构成训练数据集,训练出新的深度模型,与旧识别模型分布在不同的云端节点上,共同作业,扩大识别范围;(6)若在步骤(4)中数据流被识别为未知应用,这个数据流被保存到本地,作为新应用类型的一个特征样本,将被用来训练新的识别模型。2.如权利要求1所述的一种基于云计算的移动应用实时识别方法,其特征在于步骤(1)中根据路由器实时流量情况,自动调整启动节点数目的具体过程为:定义一个计数器,统计一段时间内流经路由器的数据包数量,以该数量为参考,调整参与运算的云端节点数目,并维护活动节点表;为保存活动节点数稳定,活动节点数从x增加到x+1,以及从x+1减少到x的临界流量值需要保持较大的距离。3.如权利要求1所述的一种基于云计算的移动应用实时识别方法,其特征在于步骤(2)中路由器负载均衡算法如下:路由器节点对收到的所有数据包,根据各云端节点的硬件条件和算力,按一定速率转发到各云端活动节点处,每个云端节点在一定时间段内,计算能力不一样,可接收...

【专利技术属性】
技术研发人员:刘宁李大燊
申请(专利权)人:中山大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1