CN107547290A - 流量检测方法和装置 - Google Patents
流量检测方法和装置 Download PDFInfo
- Publication number
- CN107547290A CN107547290A CN201610482149.7A CN201610482149A CN107547290A CN 107547290 A CN107547290 A CN 107547290A CN 201610482149 A CN201610482149 A CN 201610482149A CN 107547290 A CN107547290 A CN 107547290A
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- procotol
- protocol
- mac
- 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.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种流量检测方法和装置。其中,该方法包括:获取在终端的网络接口上传输的MAC数据包;从MAC数据包中获取协议标识和端口号,其中,协议标识用于指示传输MAC数据包采用的网络协议,端口号用于指示传输MAC数据包采用的端口;查找与端口号对应的应用标识;根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。本发明解决了相关技术只能检测应用消耗的总体流量,无法区分网络协议精确检测各个网络协议消耗的流量的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种流量检测方法和装置。
背景技术
在移动互联网时代,应用的流量消耗是用户比较关注的问题。例如,现有的Android系统流量检测技术方案主要有以下几种:1、通过Android系统API获取流量信息;2、通过读取Linux内核文件获取流量信息;3、通过tcpdump抓包工具获取流量信息。但是,这些技术方案只能检测应用消耗的总体流量,无法区分网络协议精确检测各个网络协议消耗的流量。然而,区分网络协议检测各个网络协议消耗的流量对检测应用性能非常重要,例如,在手机游戏应用中,为了减少游戏的网络延迟,根据TCP协议、UDP协议的优缺点,有些数据采用UDP协议传输,而有些数据则采用TCP协议传输。在此情况下,如果能够精确检测TCP协议、UDP协议各自所消耗的流量,对于研发人员优化手机游戏网络流量消耗非常重要。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种流量检测方法和装置,以至少解决相关技术只能检测应用消耗的总体流量,无法区分网络协议精确检测各个网络协议消耗的流量的技术问题。
根据本发明实施例的一个方面,提供了一种流量检测方法,包括:获取在终端的网络接口上传输的MAC数据包;从MAC数据包中获取协议标识和端口号;查找与端口号对应的应用标识,其中,协议标识用于指示传输MAC数据包采用的网络协议,端口号用于指示传输MAC数据包采用的端口;根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
根据本发明实施例的另一方面,还提供了一种流量检测装置,包括:第一获取单元,用于获取在终端的网络接口上传输的MAC数据包;第二获取单元,用于从MAC数据包中获取协议标识和端口号,其中,协议标识用于指示传输MAC数据包采用的网络协议,端口号用于指示传输MAC数据包采用的端口;查找单元,用于查找与端口号对应的应用标识;第三获取单元,用于根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
在本发明实施例中,通过获取在终端的网络接口上传输的MAC数据包,从MAC数据包中获取协议标识和端口号,根据获取到的端口号查找与该端口号对应的应用标识,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量,达到了对应用各个网络协议消耗的流量进行检测的目的,从而实现了提高对应用流量检测准确度的技术效果,进而解决了相关技术只能检测应用消耗的总体流量,无法区分网络协议精确检测各个网络协议消耗的流量的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的流量检测方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的流量检测方法的流程图;
图3是根据本发明实施例的第一应用的显示界面的示意图;
图4是根据本发明实施例的应用标识指示的应用的显示界面的示意图;
图5是根据本发明实施例的UV性能采集工具的逻辑架构示意图;
图6是根据本发明实施例的MAC数据包解析过程的示意图;
图7是根据本发明实施例的流量检测方法的使用流程图;
图8是根据本发明实施例的检测指标选择界面的示意图;
图9是根据本发明实施例的一种可选的流量检测装置的示意图;
图10是根据本发明实施例的另一种可选的流量检测装置的示意图;
图11是根据本发明实施例的另一种可选的流量检测装置的示意图;
图12是根据本发明实施例的另一种可选的流量检测装置的示意图;
图13是根据本发明实施例的另一种可选的流量检测装置的示意图;
图14是根据本发明实施例的另一种可选的流量检测装置的示意图;
图15是根据本发明实施例的另一种可选的流量检测装置的示意图;
图16是根据本发明实施例的另一种可选的流量检测装置的示意图;以及
图17是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种流量检测方法的方法实施例。
可选地,在本实施例中,上述流量检测方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的流量检测方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的流量检测方法也可以是由安装在其上的客户端来执行。
图2是根据本发明实施例的一种可选的流量检测方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,获取在终端的网络接口上传输的MAC数据包;
步骤S204,从MAC数据包中获取协议标识和端口号,其中,协议标识用于指示传输MAC数据包采用的网络协议,端口号用于指示传输MAC数据包采用的端口;
步骤S206,查找与端口号对应的应用标识;
步骤S208,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
通过上述步骤S202至步骤S208,通过获取在终端的网络接口上传输的MAC数据包,从MAC数据包中获取协议标识和端口号,根据端口号查找与该端口号对应的应用标识,根据MAC数据包的数据包大小获取该应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量,达到了对应用各个网络协议消耗的流量进行检测的目的,进而解决了相关技术只能检测应用消耗的总体流量,无法区分网络协议精确检测各个网络协议消耗的流量的技术问题,实现了提高对应用流量检测准确度的技术效果。
在步骤S202提供的技术方案中,本发明实施例对终端的类型也不做具体限定,例如,终端可以是手机、电脑等。终端中可以安装有一个或者多个应用,本发明实施例对应用的类型不做具体限定,例如,应用可以是即时通信应用、游戏应用、浏览器应用等。终端可以与服务器通信连接,包括有线通信和无线通信,例如,蓝牙、WiFi等。终端与服务器之间利用通信连接可以进行数据交互,其中,数据交互过程所传输的数据包可以包括终端向服务器发送的MAC数据包和终端从服务器接收的MAC数据包。需要说明的是,终端向服务器发送的MAC数据包和终端从服务器接收的MAC数据包均需要通过终端的网络接口,本发明实施例通过监听终端的网络接口可以获取到在该网络接口上传输的MAC数据包。需要说明的是,终端上可以安装有多种应用,每种应用与服务器之间传输的MAC数据包均可以通过终端的网络接口进行传输。终端的网络接口可以包括多个端口,每一个端口或者几个端口号可以用于传输一种应用的MAC数据包。
在步骤S204提供的技术方案中,步骤S202获取到的在终端的网络接口上传输的MAC数据包是没有任何数据结构的字节快,本发明实施例可以根据网络协议格式对该字节块进行解析,由于MAC数据包以MAC帧形式存在,而MAC帧是数据帧的一种,数据帧就是数据链路层的协议数据单元,可以包括三部分:帧头,数据部分,帧尾,通过对MAC帧进行解析可以得到MAC帧头部,根据MAC帧头部中的协议类型字段,可以确定该MAC帧的上层协议。此处需要说明的是,如果上层协议不是IP协议,也即如果不是IP数据包,则忽略,本发明实施例只保留IP数据包。将MAC数据帧的头部去掉便可以得到IP数据包,根据IP协议格式,可获得IP数据包头部,根据IP数据包头部的协议类型字段可以获取到协议标识,进而确定其上层协议,其中,协议标识可以用于指示传输该MAC数据包所采用的网络协议,例如,如果上层协议为TCP协议,将IP数据包头部去掉便可以得到TCP数据包,根据TCP协议格式,对TCP数据包头部进行解析可以获得TCP数据包端口号。再例如,如果上层协议为UDP协议,将IP数据包头部去掉便可以得到UDP数据包,根据UDP协议格式,对UDP数据包头部进行解析可以获得UDP数据包端口号。需要说明的是,从MAC数据包中获取到的协议标识可以是字符串,还可以是用于标识不同网络协议的标识,此处不再一一举例。从MAC数据包中获取到的可以用于指示传输MAC数据包所采用的端口。还需要说明的是,当MAC数据包为其他类型协议对应的数据包时,协议标识和端口号的获取方式可以与上述例子相同,此处不再一一举例说明。
在步骤S206提供的技术方案中,应用标识可以是应用名称、应用版本号等,本发明实施例对其不做具体限定。应用的应用标识可以与系统为应用分配的端口号存在对应关系,在从MAC数据包中获取到端口号之后,可以根据应用标识与端口号之间的对应关系查找与该端口号对应的应用标识。本发明实施例通过查找与端口号对应的应用标识,可以达到利用应用标识快速准确地确定该MAC数据包为哪个应用所传输的数据包的目的。
系统为应用分配的端口号可以是一个,也可以是多个,此处只考虑系统为应用分配多个端口号的情形。这多个端口号对应的端口均可以用于传输该应用与服务器之间传输的MAC数据包,其中,每个端口号可以对应一种网络协议,即每个端口可以用于传输一种网络协议下的数据包。例如,假设系统为应用分配的端口号如表1所示,其中,系统为应用标识为“王者荣耀”的游戏应用分配的端口号分别为20001和20002,其中,20001对应TCP协议,也即端口20001用于传输该游戏应用的TCP数据包,20002对应UDP协议,也即端口20002用于传输该游戏应用的UDP数据包;系统为应用标识为“穿越火线:枪战王者”的游戏应用分配的端口号分别为20003和20004,其中,20003对应TCP协议,也即端口20003用于传输该游戏应用的TCP数据包,20004对应UDP协议,也即端口20004用于传输该游戏应用的UDP数据包。假设从MAC数据包中获取到的端口号为20001,则依据表1中的对应关系可以查找到与该端口号20001对应的应用标识为“王者荣耀”,且该待检测应用传输MAC数据包采用的网络协议为TCP协议。假设从MAC数据包中获取到的端口号为20004,则依据表1中的对应关系可以查找到与该端口号20004对应的应用标识为“穿越火线:枪战王者”,且该待检测应用传输MAC数据包采用的网络协议为UDP协议。
表1
在步骤S208提供的技术方案中,在查找到与从MAC数据包中获取到的端口号对应的应用标识之后,可以根据该MAC数据包的大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量,其中,MAC数据包的大小可以通过对MAC数据包进行解析获取,此处不做详细说明。本发明实施例通过获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量可以解决相关技术只能检测应用消耗的总体流量,无法区分网络协议精确检测各个网络协议消耗的流量的技术问题,进而使得对应用的流量检测变得更加详细、更加准确。
作为一种可选的实施例,步骤S208可以包括:
步骤S2082,查找应用标识指示的应用在协议标识指示的网络协议下传输的已累计数据包流量;
步骤S2084,将MAC数据包的数据包大小增加到已累计数据包流量,得到更新后的已累计数据包流量。
需要说明的是,本发明实施例中的步骤S202至步骤S208只是针对一个MAC数据包的处理过程,在对获取到的MAC数据包执行上述步骤确定协议标识和端口号以及查找到与该端口号对应的应用标识之后,可以通过将该MAC数据包的大小增加到该应用标识指示的应用在该协议标识指示的网络协议下传输的已累计数据包流量,以实现获取该应用标识指示的应用在该协议标识指示的网络协议下传输的数据包流量,其中,已累计数据包流量的初始值可以为0。
该应用标识指示的应用在终端的网络接口上传输的MAC数据包不止一个,针对多个MAC数据包中的每个MAC数据包的处理过程均与上述步骤S202至步骤S208相同。本发明实施例可以通过对多个MAC数据包执行上述步骤S202至步骤S208后得到的同一网络协议下传输的数据包大小进行累加,可以得到该应用标识指示的应用在该协议标识指示的网络协议下传输的数据包流量,以达到区分网络协议检测应用的不同网络协议所消耗的流量的目的,进而实现提高对应用流量检测的准确度的效果。
例如,如表2所示,假设MAC数据包均为应用标识为“王者荣耀”的游戏应用在终端的网络接口上传输的MAC数据包,其中,从MAC数据包1中获取的端口号为20001,传输该MAC数据包1采用的网络协议为TCP协议,该MAC数据包的大小为10B;从MAC数据包2中获取的端口号为20002,传输该MAC数据包2采用的网络协议为UDP协议,该MAC数据包的大小为30B;从MAC数据包3中获取的端口号为20001,传输该MAC数据包3采用的网络协议为TCP协议,该MAC数据包的大小为15B;从MAC数据包4中获取的端口号为20001,传输该MAC数据包4采用的网络协议为TCP协议,该MAC数据包的大小为40B;从MAC数据包5中获取的端口号为20002,传输该MAC数据包5采用的网络协议为UDP协议,该MAC数据包的大小为50B。通过累加计算可以得到应用标识为“王者荣耀”的游戏应用在TCP协议下传输的数据包流量为65B,在UDP协议下传输的数据包流量为80B。
表2
MAC数据包 | 应用标识 | 端口号 | 网络协议 | 数据包大小 |
MAC数据包1 | 王者荣耀 | 20001 | TCP | 10B |
MAC数据包2 | 王者荣耀 | 20002 | UDP | 30B |
MAC数据包3 | 王者荣耀 | 20001 | TCP | 15B |
MAC数据包4 | 王者荣耀 | 20001 | TCP | 40B |
MAC数据包5 | 王者荣耀 | 20002 | UDP | 50B |
作为一种可选的实施例,步骤S208根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量可以包括:步骤S2081,根据MAC数据包的数据包大小、MAC数据包的地址获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量。
需要说明的是,应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量可以包括应用标识指示的应用在该协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量。其中,MAC数据包的地址包括源地址和目的地址,通过对MAC数据包进行解析可以获取MAC数据包中的源地址和目的地址。当MAC数据包的源地址为终端的地址时,该MAC数据包为上行发送的MAC数据包,终端向服务器上行发送该MAC数据包所消耗的流量为应用标识指示的应用在该协议标识指示的网络协议下上行发送的数据包流量;当MAC数据包的目的地址为终端的地址时,该MAC数据包为下行接收的MAC数据包,终端从服务器中下行接收该MAC数据包所消耗的流量为应用标识指示的应用在该协议标识指示的网络协议下下行接收的数据包流量。
本发明实施例根据MAC数据包的数据包大小、MAC数据包的地址获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量,能够在区分网络协议检测应用在不同网络协议下传输的数据包流量的基础上,进一步地检测该应用在该网络协议下上行发送的数据包流量和下行接收的数据包流量,进而能够达到提高应用流量检测的细致度和准确度的效果。
作为一种可选的实施例,步骤S2081根据MAC数据包的数据包大小、MAC数据包的地址获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量可以包括:
步骤S20812,在MAC数据包的源地址为终端的地址时,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量,具体可以包括:
步骤S208122,查找应用标识指示的应用在协议标识指示的网络协议下上行发送的已累计数据包流量;
步骤S208124,将MAC数据包的数据包大小增加到上行发送的已累计数据包流量,得到更新后的上行发送的已累计数据包流量。
需要说明的是,在MAC数据包的源地址为终端的地址时,该MAC数据包为终端向服务器上行发送的MAC数据包,获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量可以通过将该上行发送的MAC数据包的数据包大小增加到上行发送的已累计数据包流量,其中,上行发送的已累计数据包流量可以为从该MAC数据包中获取到的端口号相对应的应用标识指示的应用在从该MAC数据包中获取到的协议标识指示的网络协议下上行发送的已累计数据包流量,上行发送的已累计数据包流量的初始值可以为0。
步骤S20814,在MAC数据包的目的地址为终端的地址时,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下下行接收的数据包流量,具体可以包括:
步骤S208142,查找应用标识指示的应用在协议标识指示的网络协议下下行接收的已累计数据包流量;
步骤S208144,将MAC数据包的数据包大小增加到下行接收的已累计数据包流量,得到更新后的下行接收的已累计数据包流量。
需要说明的是,在MAC数据包的目的地址为终端的地址时,该MAC数据包为终端向服务器下行接收的MAC数据包,获取应用标识指示的应用在协议标识指示的网络协议下下行接收的数据包流量可以通过将该下行接收的MAC数据包的数据包大小增加到下行接收的已累计数据包流量,其中,下行接收的已累计数据包流量可以为从该MAC数据包中获取到的端口号相对应的应用标识指示的应用在从该MAC数据包中获取到的协议标识指示的网络协议下下行接收的已累计数据包流量,下行接收的已累计数据包流量的初始值可以为0。
本发明实施例通过分别计算应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量,能够进一步地对应用的流量消耗进行检测,以达到提高应用的流量检测准确度的效果。
可选地,本发明实施例在通过累加方式获取应用在网络协议下上行发送的数据包流量和下行接收的数据包流量的同时,还可以通过累加方式获取应用在网络协议下上行发送的MAC数据包的数量和下行接收的MAC数据包的数量,以达到进一步地对应用在不同网络协议下传输的数据包的数量进行检测的目的。
作为一种可选的实施例,在步骤S202获取在终端的网络接口上传输的MAC数据包之前,该实施例还可以包括:步骤S2011,为终端上安装的每个应用分配至少一个端口号,其中,每个端口号对应一种网络协议,网络协议包括以下至少之一:TCP和UDP。
需要说明的是,系统为终端上安装的每个应用可以分配至少一个端口号,每一个端口号可以对应一种网络协议,其中,网络协议可以包括但并不限于TCP协议、UDP协议等。系统为终端上安装的每个应用分配至少一个端口号,每个端口号对应的端口可以用于传输该端口号对应的网络协议下的数据包,例如,假设系统为终端上安装的每个应用某个应用分配的端口号分别为20001和20002,其中,20001对应TCP协议,也即端口2000用于传输该应用的TCP数据包,20002对应UDP协议,也即端口20002用于传输该应用的UDP数据包。
本发明实施例通过预先为终端上安装的每个应用分配至少一个端口号,且每个应用对应一个应用标识。在从MAC数据包中获取端口号之后,可以采用查找方式确定该端口号为哪个应用的端口号,并快速地应用的应用标识,进而达到提高查找传输该MAC数据包的应用的效率的效果。
作为一种可选的实施例,在步骤S202获取在终端的网络接口上传输的MAC数据包之前,该实施例还可以包括:步骤S2012,在第一应用上接收触发指令,其中,触发指令用于指示获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。相应地,步骤S202获取在终端的网络接口上传输的MAC数据包可以包括:步骤S2022,在接收到触发指令时获取在终端的网络接口上传输的MAC数据包。
需要说明的是,本发明实施例对第一应用的类型不做具体限定,例如,第一应用可以是即时通信应用、检测工具应用等。第一应用与应用标识指示的应用可以安装在同一个终端上,在第一应用上接收的触发指令可以是用户的触发操作触发生成的指令,该触发指令可以用于指示获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。其中,用户在第一应用上执行的触发操作可以包括但并不限于点击、长按、手势、滑动等操作。在第一应用上接收到触发指令之后,可以拉起应用标识指示的应用的进程,在应用标识指示的应用的进程中实时获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。还需要说明的是,在第一应用中还可以接收其他用于指示获取其他应用在不同网络协议下传输的数据包流量的触发指令,可选地,如图3所示,第一应用的界面中可以提供有多个可供选择的应用,例如图3中所示的时间变速齿轮、星际火线、显卡天梯图攻略、烧饼修改器、王者荣耀,用户在第一应用的界面中可以任意选择一个应用作为待检测的应用,例如王者荣耀,并通过点击“Start Test”按钮来实现获取该应用在不同网络协议下传输的数据包流量。
本发明实施例通过在第一应用中检测到触发指令时对应用进行流量检测,用户可以在第一应用中选择待检测的应用,并通过在第一应用上执行触发操作实现对该应用进行流量检测,能够极大地简化用户操作,进而提高了用户的使用体验。
作为一种可选的实施例,在步骤S208根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量之后,该实施例还可以包括:步骤S210,在应用标识指示的应用的界面中显示获取到的应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
需要说明的是,在应用标识指示的应用的界面中可以显示以下至少之一:该应用在不同网络协议下传输的数据包流量、该应用在不同网络协议下上行发送的数据包流量、该应用在不同网络协议下下行接收的数据包流量、该应用在不同网络协议下上行发送的数据包数量、该应用在不同网络协议下下行接收的数据包数量等。例如,如图4所示的应用标识指示的应用的界面中:TCP代表TCP协议下的下行及上行流量和,UDP代表UDP协议下的下行及上行流量和,TCP RT代表TCP协议下的下行流量,TCP ST代表TCP协议下的上行流量,TCP RP代表TCP协议下的下行数据包数量,TCP SP代表TCP协议下的上行数据包数量,UDPRT代表UDP协议下的下行流量,UDP ST代表UDP协议下的上行流量,UDP RP代表UDP协议下的下行数据包数量,UDP SP代表UDP协议下的上行数据包数量。
本发明实施例通过在应用标识指示的应用的界面中显示获取到的该应用标识指示的应用在不同网络协议下传输的数据包流量,包括上行发送的数据包流量和下行接收的数据包流量,上行发送的数据包数量和下行接收的数据包数量,比较清楚直观,在应用标识指示的应用运行过程中便于用户查看,极大地提高了用户使用体验。
本发明还提供了一种优选实施例,该优选实施例以Android系统为例对Android系统应用程序在TCP协议和UDP协议下的流量进行精确检测,需要说明的是,本发明实施例的流量检测方法不仅适用于Android系统,也可以适用于IOS、Windows系统等,且本发明实施例的流量检测方法不仅能对应用程序在TCP协议和UDP协议下的流量进行精确检测,也能够实现对应用程序在其他协议下的流量进行精确检测。
在对该优选实施例进行详细介绍之前,首先定义以下名词并给出具体释义:
UnityVerify:简称UV,是一个Android客户端性能采集工具,采集的性能数据包括FPS,CPU使用率,内存占用,流量消耗等,其中流量信息采集使用了本发明实施例中的技术方案。
TCP包:使用TCP网络协议传输的网络数据包。
UDP包:使用UDP网络协议传输的网络数据包。
TCP流量:使用TCP网络协议消耗的流量。
UDP流量:使用UDP网络协议消耗的流量。
上行流量:指终端(例如手机)APP发送到远程服务器的数据量大小。
下行流量:指终端(例如手机)APP接收到从远程服务器发送过来的数据量大小。
libpcap:Unix/Linux平台下的网络数据包捕获函数库。
pcap:基于libpcap在Android系统上实现的一个网络数据流量统计模块。
MAC帧:MAC帧是数据帧的一种。而所谓数据帧,就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。
协议格式:网络各层协议的规范结构。
APP:此处指Android应用程序。
该优选实施例将本发明实施例中的技术方案集成到一UV性能采集工具中,该UV性能采集工具可以采用ARM架构处理器,还可以采用其他处理器。此处以ARM架构处理器为例进行说明,UV性能采集工具的逻辑架构如图5所示,UV性能采集工具可以包括Android层和Native层,Android层可以实现CPU信息采集、内存信息采集以及电量信息采集,并可以将采集得到的信息进行缓存以及将缓存数据进行悬浮窗刷新显示和实时写入文件。本发明实施例中的技术方案已经集成到UV性能采集工具中的流量模块,该流量模块处于Native层,能够精准获取Android层应用程序的流量信息,并将获取到的流量信息通过socket通信发送给Android层进行缓存以及悬浮窗刷新显示和实时写入文件。
流量模块所执行的流程可以包括两部分:
第一部分为实时获取特定Android应用APP的网络端口号,具体地:通过AndroidAPI获取到APP的应用包名(packagename),然后根据应用包名通过programe.getUid()获取APP的用户ID(UserID,简称为UID),再每秒扫描Android系统下/proc/net/tcp,/proc/net/tcp6,/proc/net/udp,/proc/net/udp6文件,通过UID匹配过滤,分别获取该APP的TCP、UDP端口号。
第二部分为获取并解析网络数据包,统计流量信息。如图6所示,第二部分具体可以包括以下内容:
1、libpcap监听网络接口
libpcap监听终端(例如手机)上的数据链路层网络接口,获取并返回每一个MAC数据包,该MAC数据包并无任何数据结构,只是字节块。
2、解析MAC数据包
由于libpcap获取的数据链路层MAC数据包是无任何数据结构的字节块,因此可以根据网络协议格式对字节块进行解析,由于是MAC数据帧,可以解析出MAC帧头部,根据MAC帧头部中的协议类型字段,可以确定该MAC帧的上层协议,如果不是IP数据包则忽略,只保留IP数据包。
3、解析IP数据包
MAC数据帧去掉其头部,便是IP数据包,根据IP协议格式,可获得IP数据包头部,根据其协议类型字段,可以确定其上层协议,从而获取TCP数据包和/或UDP数据包,此处其他协议数据包都需要过滤掉。
4、解析TCP数据包
协议类型为TCP的IP数据包去掉IP头部后,就是TCP数据包,根据TCP协议格式,解析TCP数据包头部,从而获得TCP数据包端口号,TCP PORT。
5、解析UDP数据包
协议类型为UDP的IP数据包去掉IP头部后,就是UDP数据包,根据UDP协议格式,解析UDP数据包头部,从而获得UDP数据包端口号,UDP PORT。
6、根据APP端口号过滤
UV性能采集工具在Android层获取所测试APP的本地端口号,APP PORTS,即不断实时扫描Android系统上的网络相关文件,获得该APP占用的TCP、UDP网络端口号,然后用socket连接发送给Native层的流量模块,pcap模块。Pcap模块采用单独线程不断接收来自Android层的动态端口,根据这些端口号,过滤掉其他无关的TCP、UDP数据包,只留下该APP收发的数据包,如图6所示,经过PORT Filter后得到特定端口TCP数据包和特定端口UDP数据包。
7、区分上下行网络数据包
在MAC帧头部,包含有目的主机地址,源主机地址字段,如果目的主机地址和本机MAC地址相同,则为下行数据包,如果源主机地址和本机MAC地址相同,则为上行数据包。如图6所示,经过MAC地址匹配MAC Address Matcher之后,可以确定TCP上行数据包、TCP下行数据包、UDP上行数据包、UDP下行数据包。
8、计算流量
libpcap提供了一个有关数据包整体信息的数据结构,其中就包含有数据包大小信息,MAC数据帧长度减去各协议层协议首部长度,就是各协议数据包长度,通过计算各协议层数据包大小,可以统计各协议层数据流量。同时区分不同协议,可以分别统计TCP、UDP协议流量,并且根据上下行数据包,可以计算出TCP、UDP协议的上下行流量以及上下行数据包数量。在获取到上述流量信息之后可以通过socket连接发送给Android层进行缓存以及悬浮窗刷新显示和实时写入文件。
该优选实施例通过将libpcap移植到Android系统,监听并获取手机链路层所有网络数据包,解析并分析数据包大小,协议类型,TCP/UDP端口号等信息,再结合实时动态获取的APP占用的本地端口号,可以精确计算出特定APP流量消耗的详细信息,包括TCP上下行流量,UDP上下行流量,TCP上下行数据包数量,UDP上下行数据包数量,解决了现有技术方案无法准确获取特定APP流量信息,且流量信息不全面的缺点,一方面给普通用户提供精准的特定Android应用消耗流量信息,另一方面给程序开发人员提供详细的流量消耗信息,对于优化网络流量消耗提供很大帮助。
需要说明的是,本发明实施中的技术方案尤其适合手机游戏的流量监控,通过精准获取特定协议(例如TCP协议、UDP协议)的上下行流量消耗,游戏开发人员可针对游戏中使用该协议的场景进行针对性网络流量优化。需要说明的是,本发明实施例中的技术方案还可以适用于对其他应用进行流量监控,此处以手机游戏为例进行说明。
在实际应用场景中,本发明实施例的技术方案的输入量为游戏应用程序、UV性能采集工具;处理过程为自动精准获取游戏应用程序的流量消耗信息,包括TCP上下行流量,UDP上下行流量,TCP上下行数据包数量,UDP上下行数据包数量;输出量为在手机UV性能采集工具悬浮窗界面实时显示流量信息,包括TCP上下行流量,UDP上下行流量,TCP上下行数据包数量,UDP上下行数据包数量。
本发明实施例的技术方案的使用流程可以如图7所示,可以包括以下步骤:
步骤S701,启动UV性能采集工具。UV性能采集工具启动后的界面如图3所示,在该界面中可以显示有多个待检测的应用程序,用户可以在该界面中任意选择一个进行流量检测,例如选择“王者荣耀”后点击“Start Test”开始进行流量检测。
步骤S702,拉起游戏应用进程。在如图3所示的界面中选择待检测应用,例如“王者荣耀”,点击“Start Test”之后可以拉起所选择的应用进程,此处为“王者荣耀”。在游戏应用进程拉起之后,可以在游戏应用界面中显示勾选流量相关选项,如图8所示,UV性能采集工具集成了包括流量信息采集在内的多种客户端性能指标,例如内存、CPU、FPS、TCP流量、UDP流量、TCP数据包、UDP数据包等,可以根据用户自定义选择在游戏应用界面中显示相应数据信息,例如如图4所示。
步骤S703,UV性能采集工具监控游戏应用的网络端口。
步骤S704,获取游戏应用的网络端口上传输的数据包。
步骤S705,区分网络协议统计流量信息。区分网络协议统计流量信息的方法已经在本发明上述实施例中进行了详细介绍,此处不再赘述。
步骤S706,UV性能采集工具实时显示流量信息,例如如图4所示。
本发明能够实现以下功能:
1、精准获取流量信息
通过实时监控特定应用程序的网络端口,获取通过该端口的所有网络数据包,解析数据包,计算流量大小及数据包数量,能够确保统计的流量信息精准到每个数据包。
2、区分网络协议(例如TCP协议、UDP协议)
能够区分不同的网络协议(例如TCP协议、UDP协议),分别统计该网络协议下的流量消耗及数据包数量。
3、区分上下行流量
不仅能够实时计算显示上下行流量消耗,还能显示上下行数据包数量。
4、悬浮窗实时显示流量信息
通过UV性能采集工具的悬浮窗,在应用程序的界面上实时显示详细的流量信息,方便使用者查看。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述流量检测方法的流量检测装置。图9是根据本发明实施例的一种可选的流量检测装置的示意图,如图9所示,该装置可以包括:
第一获取单元22,用于获取在终端的网络接口上传输的MAC数据包;第二获取单元24,用于从MAC数据包中获取协议标识和端口号,其中,协议标识用于指示传输MAC数据包采用的网络协议,端口号用于指示传输MAC数据包采用的端口;查找单元26,用于查找与端口号对应的应用标识;第三获取单元28,用于根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
需要说明的是,该实施例中的第一获取单元22可以用于执行本申请实施例1中的步骤S202,该实施例中的第二获取单元24可以用于执行本申请实施例1中的步骤S204,该实施例中的查找单元26可以用于执行本申请实施例1中的步骤S206,该实施例中的第三获取单元28可以用于执行本申请实施例1中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,可以解决了相关技术只能检测应用消耗的总体流量,无法区分网络协议精确检测各个网络协议消耗的流量的技术问题,进而达到提高对应用流量检测准确度的技术效果。
作为一种可选的实施例,图10是根据本发明实施例的另一种可选的流量检测装置的示意图,如图10所示,第三获取单元28可以包括:获取子单元281,用于根据MAC数据包的数据包大小、MAC数据包的地址获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量。
需要说明的是,该实施例中的获取子单元281可以用于执行本申请实施例1中的步骤S2081。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,图11是根据本发明实施例的另一种可选的流量检测装置的示意图,如图11所示,获取子单元281可以包括:第一获取模块2812,用于在MAC数据包的源地址为终端的地址时,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量;第二获取模块2814,用于在MAC数据包的目的地址为终端的地址时,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下下行接收的数据包流量。
需要说明的是,该实施例中的第一获取模块2812可以用于执行本申请实施例1中的步骤S20812,该实施例中的第二获取模块2814可以用于执行本申请实施例1中的步骤S20814。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,图12是根据本发明实施例的另一种可选的流量检测装置的示意图,如图12所示,第一获取模块2812可以包括:第一查找模块28122,用于查找应用标识指示的应用在协议标识指示的网络协议下上行发送的已累计数据包流量;第一增加模块28124,用于将MAC数据包的数据包大小增加到上行发送的已累计数据包流量,得到更新后的上行发送的已累计数据包流量。第二获取模块2814可以包括:第二查找模块28142,用于查找应用标识指示的应用在协议标识指示的网络协议下下行接收的已累计数据包流量;第二增加模块28144,用于将MAC数据包的数据包大小增加到下行接收的已累计数据包流量,得到更新后的下行接收的已累计数据包流量。
需要说明的是,该实施例中的第一查找模块28122可以用于执行本申请实施例1中的步骤S208122,该实施例中的第一增加模块28124可以用于执行本申请实施例1中的步骤S208124,该实施例中的第二查找模块28142可以用于执行本申请实施例1中的步骤S208142,该实施例中的第二增加模块28144可以用于执行本申请实施例1中的步骤S208144。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,图13是根据本发明实施例的另一种可选的流量检测装置的示意图,如图13所示,第三获取单元28可以包括:第三查找模块282,用于查找应用标识指示的应用在协议标识指示的网络协议下传输的已累计数据包流量;第三增加模块284,用于将MAC数据包的数据包大小增加到已累计数据包流量,得到更新后的已累计数据包流量。
需要说明的是,该实施例中的第三查找模块282可以用于执行本申请实施例1中的步骤S2082,该实施例中的第三增加模块284可以用于执行本申请实施例1中的步骤S2084。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,图14是根据本发明实施例的另一种可选的流量检测装置的示意图,如图14所示,该实施例的装置还可以包括:分配单元211,用于在获取在终端的网络接口上传输的MAC数据包之前,为终端上安装的每个应用分配至少一个端口号,其中,每个端口号对应一种网络协议,网络协议包括以下至少之一:TCP和UDP。
需要说明的是,该实施例中的分配单元211可以用于执行本申请实施例1中的步骤S2011。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,图15是根据本发明实施例的另一种可选的流量检测装置的示意图,如图15所示,该实施例的装置还可以包括:接收单元212,用于在获取在终端的网络接口上传输的MAC数据包之前,在第一应用上接收触发指令,其中,触发指令用于指示获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量;第一获取单元22可以包括:第三获取模块222,用于在接收到触发指令时获取在终端的网络接口上传输的MAC数据包。
需要说明的是,该实施例中的接收单元212可以用于执行本申请实施例1中的步骤S2012,该实施例中的第三获取模块222可以用于执行本申请实施例1中的步骤S2022。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,图16是根据本发明实施例的另一种可选的流量检测装置的示意图,如图16所示,该实施例的装置还可以包括:显示单元210,用于在根据网络协议、应用标识和MAC数据包的数据包大小获取在网络协议下传输的数据包流量之后,在应用标识指示的应用的界面中显示获取到的应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
需要说明的是,该实施例中的显示单元210可以用于执行本申请实施例1中的步骤S210。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
实施例3
根据本发明实施例,还提供了一种用于实施上述流量检测方法的服务器或终端。
图17是根据本发明实施例的一种终端的结构框图,如图17所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图17所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的流量检测方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的流量检测方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:获取在终端的网络接口上传输的MAC数据包;从MAC数据包中获取协议标识和端口号,其中,协议标识用于指示传输MAC数据包采用的网络协议,端口号用于指示传输MAC数据包采用的端口;查找与端口号对应的应用标识;根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
处理器201还用于执行下述步骤:根据MAC数据包的数据包大小、MAC数据包的地址获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量。
处理器201还用于执行下述步骤:在MAC数据包的源地址为终端的地址时,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量;在MAC数据包的目的地址为终端的地址时,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下下行接收的数据包流量。
处理器201还用于执行下述步骤:查找应用标识指示的应用在协议标识指示的网络协议下传输的已累计数据包流量;将MAC数据包的数据包大小增加到已累计数据包流量,得到更新后的已累计数据包流量。
处理器201还用于执行下述步骤:查找应用标识指示的应用在协议标识指示的网络协议下上行发送的已累计数据包流量;将MAC数据包的数据包大小增加到上行发送的已累计数据包流量,得到更新后的上行发送的已累计数据包流量;查找应用标识指示的应用在协议标识指示的网络协议下下行接收的已累计数据包流量;将MAC数据包的数据包大小增加到下行接收的已累计数据包流量,得到更新后的下行接收的已累计数据包流量。
处理器201还用于执行下述步骤:在获取在终端的网络接口上传输的MAC数据包之前,为终端上安装的每个应用分配至少一个端口号,其中,每个端口号对应一种网络协议,网络协议包括以下至少之一:TCP和UDP。
处理器201还用于执行下述步骤:在获取在终端的网络接口上传输的MAC数据包之前,在第一应用上接收触发指令,其中,触发指令用于指示获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量;在接收到触发指令时获取在终端的网络接口上传输的MAC数据包。
处理器201还用于执行下述步骤:在根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量之后,在应用标识指示的应用的界面中显示获取到的应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
采用本发明实施例,提供了一种应用流量检测的方案。通过获取在终端的网络接口上传输的MAC数据包,从MAC数据包中获取到的协议标识和端口号,查找与该端口号对应的应用标识,根据该MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量,达到了对应用标识指示的应用的各个网络协议消耗的流量进行检测的目的,进而解决了相关技术只能检测应用消耗的总体流量,无法区分网络协议精确检测各个网络协议消耗的流量的技术问题,实现了提高对应用流量检测准确度的技术效果。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图17所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图17其并不对上述电子装置的结构造成限定。例如,终端还可包括比图17中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图17所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行流量检测方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取在终端的网络接口上传输的MAC数据包;
S2,从MAC数据包中获取协议标识和端口号;
S3,查找与端口号对应的应用标识,其中,协议标识用于指示传输MAC数据包采用的网络协议,端口号用于指示传输MAC数据包采用的端口;
S4,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据MAC数据包的数据包大小、MAC数据包的地址获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在MAC数据包的源地址为终端的地址时,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下上行发送的数据包流量;在MAC数据包的目的地址为终端的地址时,根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下下行接收的数据包流量。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:查找应用标识指示的应用在协议标识指示的网络协议下传输的已累计数据包流量;将MAC数据包的数据包大小增加到已累计数据包流量,得到更新后的已累计数据包流量。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:查找应用标识指示的应用在协议标识指示的网络协议下上行发送的已累计数据包流量;将MAC数据包的数据包大小增加到上行发送的已累计数据包流量,得到更新后的上行发送的已累计数据包流量;查找应用标识指示的应用在协议标识指示的网络协议下下行接收的已累计数据包流量;将MAC数据包的数据包大小增加到下行接收的已累计数据包流量,得到更新后的下行接收的已累计数据包流量。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取在终端的网络接口上传输的MAC数据包之前,为终端上安装的每个应用分配至少一个端口号,其中,每个端口号对应一种网络协议,网络协议包括以下至少之一:TCP和UDP。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取在终端的网络接口上传输的MAC数据包之前,在第一应用上接收触发指令,其中,触发指令用于指示获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量;在接收到触发指令时获取应用标识指示的应用在协议标识指示的终端的网络接口上传输的MAC数据包。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在根据MAC数据包的数据包大小获取应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量之后,在应用标识指示的应用的界面中显示获取到的应用标识指示的应用在协议标识指示的网络协议下传输的数据包流量。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (16)
1.一种流量检测方法,其特征在于,包括:
获取在终端的网络接口上传输的MAC数据包;
从所述MAC数据包中获取协议标识和端口号,其中,所述协议标识用于指示传输所述MAC数据包采用的网络协议,所述端口号用于指示传输所述MAC数据包采用的端口;
查找与所述端口号对应的应用标识;
根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量。
2.根据权利要求1所述的方法,其特征在于,根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量包括:
根据所述MAC数据包的数据包大小、所述MAC数据包的地址获取所述应用标识指示的应用在所述协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量。
3.根据权利要求2所述的方法,其特征在于,根据所述MAC数据包的数据包大小、所述MAC数据包的地址获取所述应用标识指示的应用在所述协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量包括:
在所述MAC数据包的源地址为所述终端的地址时,根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下上行发送的数据包流量;
在所述MAC数据包的目的地址为所述终端的地址时,根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下下行接收的数据包流量。
4.根据权利要求3所述的方法,其特征在于,
根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下上行发送的数据包流量包括:查找所述应用标识指示的应用在所述协议标识指示的网络协议下上行发送的已累计数据包流量;将所述MAC数据包的数据包大小增加到所述上行发送的已累计数据包流量,得到更新后的上行发送的已累计数据包流量;
根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下下行接收的数据包流量包括:查找所述应用标识指示的应用在所述协议标识指示的网络协议下下行接收的已累计数据包流量;将所述MAC数据包的数据包大小增加到所述下行接收的已累计数据包流量,得到更新后的下行接收的已累计数据包流量。
5.根据权利要求1所述的方法,其特征在于,根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量包括:
查找所述应用标识指示的应用在所述协议标识指示的网络协议下传输的已累计数据包流量;
将所述MAC数据包的数据包大小增加到所述已累计数据包流量,得到更新后的已累计数据包流量。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在获取在终端的网络接口上传输的MAC数据包之前,所述方法还包括:
为所述终端上安装的每个应用分配至少一个端口号,其中,每个端口号对应一种网络协议,所述网络协议包括以下至少之一:TCP和UDP。
7.根据权利要求1至5中任一项所述的方法,其特征在于,
在获取在终端的网络接口上传输的MAC数据包之前,所述方法还包括:在第一应用上接收触发指令,其中,所述触发指令用于指示获取所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量;
获取在终端的网络接口上传输的MAC数据包包括:在接收到所述触发指令时获取在终端的网络接口上传输的MAC数据包。
8.根据权利要求1至5中任一项所述的方法,其特征在于,在根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量之后,所述方法还包括:
在所述应用标识指示的应用的界面中显示获取到的所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量。
9.一种流量检测装置,其特征在于,包括:
第一获取单元,用于获取在终端的网络接口上传输的MAC数据包;
第二获取单元,用于从所述MAC数据包中获取协议标识和端口号,其中,所述协议标识用于指示传输所述MAC数据包采用的网络协议,所述端口号用于指示传输所述MAC数据包采用的端口;
查找单元,用于查找与所述端口号对应的应用标识;
第三获取单元,用于根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量。
10.根据权利要求9所述的装置,其特征在于,所述第三获取单元包括:
获取子单元,用于根据所述MAC数据包的数据包大小、所述MAC数据包的地址获取所述应用标识指示的应用在所述协议标识指示的网络协议下上行发送的数据包流量和下行接收的数据包流量。
11.根据权利要求10所述的装置,其特征在于,所述获取子单元包括:
第一获取模块,用于在所述MAC数据包的源地址为所述终端的地址时,根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下上行发送的数据包流量;
第二获取模块,用于在所述MAC数据包的目的地址为所述终端的地址时,根据所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下下行接收的数据包流量。
12.根据权利要求11所述的装置,其特征在于,
所述第一获取模块包括:第一查找模块,用于查找所述应用标识指示的应用在所述协议标识指示的网络协议下上行发送的已累计数据包流量;第一增加模块,用于将所述MAC数据包的数据包大小增加到所述上行发送的已累计数据包流量,得到更新后的上行发送的已累计数据包流量;
所述第二获取模块包括:第二查找模块,用于查找所述应用标识指示的应用在所述协议标识指示的网络协议下下行接收的已累计数据包流量;第二增加模块,用于将所述MAC数据包的数据包大小增加到所述下行接收的已累计数据包流量,得到更新后的下行接收的已累计数据包流量。
13.根据权利要求9所述的装置,其特征在于,所述第三获取单元包括:
第三查找模块,用于查找所述应用标识指示的应用在协议标识指示的所述网络协议下传输的已累计数据包流量;
第三增加模块,用于将所述MAC数据包的数据包大小增加到所述已累计数据包流量,得到更新后的已累计数据包流量。
14.根据权利要求9至13中任一项所述的装置,其特征在于,所述装置还包括:
分配单元,用于在获取在终端的网络接口上传输的MAC数据包之前,为所述终端上安装的每个应用分配至少一个端口号,其中,每个端口号对应一种网络协议,所述网络协议包括以下至少之一:TCP和UDP。
15.根据权利要求9至13中任一项所述的装置,其特征在于,
所述装置还包括:接收单元,用于在获取在终端的网络接口上传输的MAC数据包之前,在第一应用上接收触发指令,其中,所述触发指令用于指示获取所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量;
所述第一获取单元包括:第三获取模块,用于在接收到所述触发指令时获取在终端的网络接口上传输的MAC数据包。
16.根据权利要求9至13中任一项所述的装置,其特征在于,所述装置还包括:
显示单元,用于在所述MAC数据包的数据包大小获取所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量之后,在所述应用标识指示的应用的界面中显示获取到的所述应用标识指示的应用在所述协议标识指示的网络协议下传输的数据包流量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610482149.7A CN107547290A (zh) | 2016-06-27 | 2016-06-27 | 流量检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610482149.7A CN107547290A (zh) | 2016-06-27 | 2016-06-27 | 流量检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107547290A true CN107547290A (zh) | 2018-01-05 |
Family
ID=60961507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610482149.7A Pending CN107547290A (zh) | 2016-06-27 | 2016-06-27 | 流量检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107547290A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108400909A (zh) * | 2018-02-12 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种流量统计方法、装置、终端设备和存储介质 |
CN109842629A (zh) * | 2019-03-03 | 2019-06-04 | 北京立思辰安科技术有限公司 | 基于协议解析框架的自定义协议的实现方法 |
CN109847342A (zh) * | 2019-03-19 | 2019-06-07 | Oppo广东移动通信有限公司 | 网络检测方法及相关装置 |
CN109905486A (zh) * | 2019-03-18 | 2019-06-18 | 杭州迪普科技股份有限公司 | 一种应用程序识别展示方法和装置 |
CN110493081A (zh) * | 2019-08-20 | 2019-11-22 | 网易(杭州)网络有限公司 | 游戏客户端的网络流量确定方法、装置、设备及存储介质 |
CN110662244A (zh) * | 2019-10-08 | 2020-01-07 | 北京城市网邻信息技术有限公司 | 数据包展示方法及移动终端 |
CN110943873A (zh) * | 2018-09-21 | 2020-03-31 | 中移(杭州)信息技术有限公司 | 一种报文流的处理方法、装置和可读介质 |
CN111245975A (zh) * | 2020-03-15 | 2020-06-05 | 上海商米科技集团股份有限公司 | 确定流量信息归属的方法和装置 |
CN115277502A (zh) * | 2022-06-17 | 2022-11-01 | 广州根链国际网络研究院有限公司 | 一种针对APP应用的自动化测量IPv6流量的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101640666A (zh) * | 2008-08-01 | 2010-02-03 | 北京启明星辰信息技术股份有限公司 | 一种面向目标网络的流量控制装置及方法 |
CN104468273A (zh) * | 2014-12-12 | 2015-03-25 | 北京百度网讯科技有限公司 | 识别流量数据的应用类型的方法及系统 |
CN104486161A (zh) * | 2014-12-22 | 2015-04-01 | 成都科来软件有限公司 | 一种网络流量的识别方法及装置 |
-
2016
- 2016-06-27 CN CN201610482149.7A patent/CN107547290A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101640666A (zh) * | 2008-08-01 | 2010-02-03 | 北京启明星辰信息技术股份有限公司 | 一种面向目标网络的流量控制装置及方法 |
CN104468273A (zh) * | 2014-12-12 | 2015-03-25 | 北京百度网讯科技有限公司 | 识别流量数据的应用类型的方法及系统 |
CN104486161A (zh) * | 2014-12-22 | 2015-04-01 | 成都科来软件有限公司 | 一种网络流量的识别方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108400909A (zh) * | 2018-02-12 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种流量统计方法、装置、终端设备和存储介质 |
CN110943873A (zh) * | 2018-09-21 | 2020-03-31 | 中移(杭州)信息技术有限公司 | 一种报文流的处理方法、装置和可读介质 |
CN110943873B (zh) * | 2018-09-21 | 2021-08-17 | 中移(杭州)信息技术有限公司 | 一种报文流的处理方法、装置和可读介质 |
CN109842629A (zh) * | 2019-03-03 | 2019-06-04 | 北京立思辰安科技术有限公司 | 基于协议解析框架的自定义协议的实现方法 |
CN109905486A (zh) * | 2019-03-18 | 2019-06-18 | 杭州迪普科技股份有限公司 | 一种应用程序识别展示方法和装置 |
CN109905486B (zh) * | 2019-03-18 | 2021-09-21 | 杭州迪普科技股份有限公司 | 一种应用程序识别展示方法和装置 |
CN109847342A (zh) * | 2019-03-19 | 2019-06-07 | Oppo广东移动通信有限公司 | 网络检测方法及相关装置 |
CN110493081A (zh) * | 2019-08-20 | 2019-11-22 | 网易(杭州)网络有限公司 | 游戏客户端的网络流量确定方法、装置、设备及存储介质 |
CN110493081B (zh) * | 2019-08-20 | 2021-04-20 | 网易(杭州)网络有限公司 | 游戏客户端的网络流量确定方法、装置、设备及存储介质 |
CN110662244A (zh) * | 2019-10-08 | 2020-01-07 | 北京城市网邻信息技术有限公司 | 数据包展示方法及移动终端 |
CN110662244B (zh) * | 2019-10-08 | 2021-04-13 | 北京城市网邻信息技术有限公司 | 数据包展示方法、装置及可读存储介质 |
CN111245975A (zh) * | 2020-03-15 | 2020-06-05 | 上海商米科技集团股份有限公司 | 确定流量信息归属的方法和装置 |
CN115277502A (zh) * | 2022-06-17 | 2022-11-01 | 广州根链国际网络研究院有限公司 | 一种针对APP应用的自动化测量IPv6流量的方法 |
CN115277502B (zh) * | 2022-06-17 | 2023-10-10 | 广州根链国际网络研究院有限公司 | 一种针对APP应用的自动化测量IPv6流量的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107547290A (zh) | 流量检测方法和装置 | |
USRE49126E1 (en) | Real-time adaptive processing of network data packets for analysis | |
CN103763154B (zh) | 一种网络流量检测方法 | |
CN109309605B (zh) | 带内网络遥测系统及方法 | |
CN106921637A (zh) | 网络流量中的应用信息的识别方法和装置 | |
CN103905447B (zh) | 业务链路选择控制方法以及设备 | |
CN101562534B (zh) | 一种网络行为分析系统 | |
KR100523486B1 (ko) | 트래픽 측정 시스템 및 그의 트래픽 분석 방법 | |
CN102307123B (zh) | 基于传输层流量特征的nat流量识别方法 | |
CN110233769A (zh) | 一种流量检测方法和流量检测设备 | |
CN110460488B (zh) | 业务流识别方法和装置、模型生成方法和装置 | |
CN108400909A (zh) | 一种流量统计方法、装置、终端设备和存储介质 | |
CN109525587A (zh) | 一种数据包的识别方法及装置 | |
CN109271793A (zh) | 物联网云平台设备类别识别方法及系统 | |
CN110048962A (zh) | 一种网络流量分类的方法、系统及设备 | |
CN106789242A (zh) | 一种基于手机客户端软件动态特征库的识别应用智能分析引擎 | |
CN104283699A (zh) | 业务类型确定方法和装置 | |
CN104333483A (zh) | 互联网应用流量识别方法、系统及识别装置 | |
CN106789728A (zh) | 一种基于NetFPGA的VoIP流量实时识别方法 | |
CN104333461A (zh) | 互联网应用流量识别方法、系统及识别装置 | |
CN108462590A (zh) | 网络流量的监控方法及装置、计算机终端 | |
CN104615528B (zh) | 一种智能手机传感器数据在线采集与实时处理方法 | |
KR101264951B1 (ko) | 단말기를 위한 정보량을 인터셉트하고 분석하는 장치 | |
CN105553792A (zh) | 一种家庭网关识别接入设备类型的系统及方法 | |
CN104768176A (zh) | 无线网络中sFlow采样的方法、装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180105 |