监控应用程序使用流量的方法、装置及终端制造方法及图纸

技术编号:15286904 阅读:150 留言:0更新日期:2017-05-10 00:32
本发明专利技术公开了一种监控应用程序使用流量的方法、装置及终端。该方法包括:在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID;根据传输层sock数据结构中的UID,确定传输数据对应的应用程序。本发明专利技术解决了在socket数据结构或者对应的文件被销毁时将消耗的流量划分到Android系统的问题,可以将消耗的流量划分到对应的应用程序中,提高了针对流量来源进行流量消耗统计的准确性。

Method, device and terminal for monitoring application use flow

The invention discloses a method, a device and a terminal for monitoring the flow of an application program. The method includes: the transmission on the network is established, creating a transport layer of the sock data structure and socket links, and the corresponding application of network transmission UID added to the UID field of the transport layer of sock data structure; in data transmission, the transmission layer sock data structures to find the corresponding data and obtain the corresponding UID according to the sock transmission layer; the data structure of the UID, determine the application data corresponding to the transmission. The invention solves destroyed in socket data structure or the corresponding file will be divided into consumption flow problem in Android system, the flow can be divided into consumption corresponding to the application, improve the accuracy of traffic consumption statistics for traffic sources.

【技术实现步骤摘要】

本专利技术实施例涉及流量监控技术,尤其涉及一种监控应用程序使用流量的方法、装置及终端
技术介绍
随着信息技术的发展,智能手机等终端中的应用程序越来越多,有些恶意应用程序存在偷跑流量的情况,会将该流量划分到系统中。对于当前的Android手机,流量统计的功能是根据socket链接中的UID来区分的,根据UID来将对应流量划分给具体的应用程序。对于UID小于系统UID(SYSTEM_UID)的socket链接,流量的消耗都被统计到Android系统中,这就导致共享SYSTEM_UID和下行找不到socket的数据类型的流量都划分到了Android系统,最终导致用户看到Android系统消耗流量过大,即现有针对流量来源的统计信息不准确。
技术实现思路
本专利技术实施例提供一种监控应用程序使用流量的方法、装置及终端,可以提高针对流量来源进行流量消耗统计的准确性。第一方面,本专利技术实施例提供了一种监控应用程序使用流量的方法,所述方法包括:在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID;根据传输层sock数据结构中的UID,确定传输数据对应的应用程序。第二方面,本专利技术实施例还提供了一种监控应用程序使用流量的装置,所述装置包括:UID添加模块,用于在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;UID获取模块,用于在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID;应用程序确定模块,用于根据传输层sock数据结构中的UID,确定传输数据对应的应用程序。第三方面,本专利技术实施例还提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID;根据传输层sock数据结构中的UID,确定传输数据对应的应用程序。本专利技术实施例的技术方案,通过在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中,在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID,根据传输层sock数据结构中的UID,确定传输数据对应的应用程序,从而解决了在socket数据结构或者对应的文件被销毁时将消耗的流量划分到Android系统的问题,可以将消耗的流量划分到对应的应用程序中,提高了针对流量来源进行流量消耗统计的准确性。附图说明图1是本专利技术实施例提供的一种监控应用程序使用流量的方法的流程图;图2是现有技术中确定数据对应的应用程序的示意图;图3是本专利技术实施例提供的监控应用程序使用流量的方法中的确定数据对应的应用程序的示意图;图4是本专利技术实施例提供的监控应用程序使用流量的方法中的记录链接信息的红黑树的示意图;图5是本专利技术一个实施例提供的一种监控应用程序使用流量的方法的流程图;图6是本专利技术实施例提供的一种监控应用程序使用流量的装置的结构示意图;图7为本专利技术实施例提供的一种终端的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。图1是本专利技术实施例提供的一种监控应用程序使用流量的方法的流程图,本实施例可适用于监控每个应用程序使用流量的情况,该方法可以由监控应用程序使用流量的装置来执行,该装置可以由硬件和/或软件来实现,一般可集成于手机等终端中。该方法包括如下步骤:步骤110,在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中。计算机每个用户都具有一个UID(UserIdentification,用户标识),程序的UID标识开启该程序的用户。而Android系统中每个应用程序都有一个UID,Android系统也有一个SYSTEM_UID(例如1000是Android系统的UID),默认情况下,Android系统会给每个应用程序分配一个普通级别互不相同的UID,如果互相调用,必须是相同UID,从而使得共享数据具有了一定安全性,每个应用程序之间是不能随意获得数据的。socket即套接字,是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用,以实现应用程序的进程在网络中的通信。建立网络传输即建立服务器socket与客户端socket之间的链接,即socket链接,可以通过三次握手来建立:第一次握手,客户端尝试连接服务器,向服务器发送SYN(SynchronizeSequenceNumbers,同步序列编号)包,syn=j,客户端进入SYN_SENT状态等待服务器确认;第二次握手,服务器接收客户端SYN包并确认(ack=j+1),同时向客户端发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手,客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。其中,SYN_SEND状态、SYN_RECV状态和ESTABLISHED状态均是网络链接状态,表1是网络链接状态与对应说明的表。表1网络连接状态与对应说明sock数据结构是位于内核中协议栈传输层的数据结构,在应用层有对应的socket数据结构,在socket数据结构中有一个指向sock数据结构的指针,在sock数据结构中有一个指向socket数据结构的指针,从而建立了socket数据结构和sock数据结构之间的链接关系。其中,sock数据结构保存与通信关系密切的数据,socket数据结构保存与文件系统关系密切的数据。预先在协议栈传输层sock数据结构中添加UID字段,当创建socket链接时创建对应的sock数据结构,并对该UID字段进行赋值,即将socket链接对应的应用程序的UID赋值给sock数据结构中的UID字段,该sock数据结构的生命周期直到socket链接完全关闭。在网络传输建立时,创建socket链接,同时创建保存相关数据的传输层sock数据结构和应本文档来自技高网...

【技术保护点】
一种监控应用程序使用流量的方法,其特征在于,所述方法包括:在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID;根据传输层sock数据结构中的UID,确定传输数据对应的应用程序。

【技术特征摘要】
1.一种监控应用程序使用流量的方法,其特征在于,所述方法包括:在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID;根据传输层sock数据结构中的UID,确定传输数据对应的应用程序。2.根据权利要求1所述的方法,其特征在于,在传输数据时,查找所述数据对应的sock数据结构并获取对应的UID,包括:在传输数据时,查找所述数据对应的sock数据结构;在查找到对应的sock数据结构时,记录传输数据的链接信息及对应的UID,作为第一链接信息,并记录第一链接信息和UID的对应关系;如果没有对应的sock数据结构,则记录传输数据的链接信息,作为第二链接信息,根据所述第二链接信息,在所述对应关系中查找对应的UID。3.根据权利要求2所述的方法,其特征在于,在传输数据时,查找所述数据对应的sock数据结构,包括:在接收到数据时,在记录网络链接状态的第一哈希表中查找所述数据所属的socket链接的状态;如果查找到所述数据所属的socket链接的状态,则查找对应的sock数据结构;如果没有查找到所述数据所属的socket链接的状态,则确定没有对应的sock数据结构。4.根据权利要求2所述的方法,其特征在于,记录传输数据的链接信息及对应的UID,作为第一链接信息,并记录第一链接信息和UID的对应关系,包括:根据所述数据,获取传输数据的链接信息,作为第一链接信息;以第一链接信息为索引,通过第二哈希表记录对应的UID,作为第一链接信息和UID的对应关系;记录传输数据的链接信息,作为第二链接信息包括:根据所述数据,获取传输数据的链接信息,作为第二链接信息;通过第三哈希表记录所述第二链接信息。5.根据权利要求2-4任一所述的方法,其特征在于,所述链接信息包括服务器的IP地址、端口和协议。6.根据权利要求1-4任一所述的方法,其特征在于,还包括:根据所述UID,统计对应的应用程序在第一预设时间内消耗的流量;如果应用程序在第一预设时间内消耗的流量大于预设阈值,则关闭终端的数据流量,并在关闭第二预设时间后再次打开所述数据流量。7.一种监控应用程序使用流量的装置,其特征在于,所述装置包括:UID添加模块,用于在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;UID获取模块,用于在传输数据时,查找所述数据对应的传输层sock数...

【专利技术属性】
技术研发人员:祝杰民
申请(专利权)人:广东欧珀移动通信有限公司
类型:发明
国别省市:广东;44

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

1