CN110851334B - 流量统计方法、电子设备、***及介质 - Google Patents

流量统计方法、电子设备、***及介质 Download PDF

Info

Publication number
CN110851334B
CN110851334B CN201911135814.5A CN201911135814A CN110851334B CN 110851334 B CN110851334 B CN 110851334B CN 201911135814 A CN201911135814 A CN 201911135814A CN 110851334 B CN110851334 B CN 110851334B
Authority
CN
China
Prior art keywords
control group
connection
flow
marked
record
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
Application number
CN201911135814.5A
Other languages
English (en)
Other versions
CN110851334A (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.)
Shenzhen Onething Technology Co Ltd
Original Assignee
Shenzhen Onething Technology Co Ltd
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 Shenzhen Onething Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN201911135814.5A priority Critical patent/CN110851334B/zh
Publication of CN110851334A publication Critical patent/CN110851334A/zh
Application granted granted Critical
Publication of CN110851334B publication Critical patent/CN110851334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种流量统计方法,包括:当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组;获取所述控制组的控制组标识,以及获取连接跟踪文件;通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录;根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计。本发明还公开了一种电子设备、流量统计***及计算机可读存储介质。本发明可以提高数据流量的统计效率。

Description

流量统计方法、电子设备、***及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种流量统计方法、电子设备、***及介质。
背景技术
随机计算机技术的发展,用户可以通过计算机基础设施服务(IaaS服务)来运行进程。目前,IaaS服务的提供方可以使用网络流量监控工具(nethogs)来统计各个用户的进程的流量,但在实践中发现,nethogs是通过抓取数据包的方式来统计流量的,即数据包在发送出去或接收进来之前需要被nethogs抓取以进行流量统计,这种通过抓取数据包的流量统计方式效率不高。
因此,如何提高数据流量的统计效率是一个亟需解决的技术问题。
发明内容
本发明的主要目的在于提供一种流量统计方法、电子设备、***及介质,旨在解决如何提高数据流量的统计效率的技术问题。
为实现上述目的,本发明提供一种流量统计方法,所述方法包括:
当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组;
获取所述控制组的控制组标识,以及获取连接跟踪文件;
通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录;
根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计。
优选地,所述根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计包括:
从所述连接跟踪文件中查询所述被标记的连接记录在第一时间记录的第一发送流量,以及从所述连接跟踪文件中查询所述被标记的连接记录在第二时间记录的第二发送流量;
根据所述第一发送流量以及所述第二发送流量,确定所述控制组的发送流量。
优选地,所述根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计包括:
从所述连接跟踪文件中查询所述被标记的连接记录在第三时间记录的第一接收流量,以及从所述连接跟踪文件中查询所述被标记的连接记录在第四时间记录的第二接收流量;
根据所述第一接收流量以及所述第二接收流量,确定所述控制组的接收流量。
优选地,所述通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录包括:
当通过属于所述控制组的进程创建套接字时,将所述控制组标识存储至所述套接字中;
当通过所述套接字发送数据包时,将所述套接字存储的所述控制组标识存储至所述数据包中;
当所述数据包被传输至内核框架时,确定所述数据包对应的连接记录;
根据所述控制组标识,判断所述连接记录是否已被标记;
若所述连接记录未被标记,使用所述控制组标识标记所述连接记录。
优选地,所述当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组之前,所述方法还包括:
当所述目标业务的进程启动时,将所述目标业务的进程划分至与所述目标业务对应的控制组中。
优选地,所述当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组之后,以及所述获取所述控制组的控制组标识之前,所述方法还包括:
获取所述控制组的位置信息;
根据所述位置信息,生成所述控制组对应的控制组标识。
为实现上述目的,本发明进一步提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述流量统计方法。
为实现上述目的,本发明进一步提供一种流量统计***,所述***包括:
确定单元,用于当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组;
获取单元,用于获取所述控制组的控制组标识,以及获取连接跟踪文件;
标记单元,用于通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录;
统计单元,用于根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序可被一个或者多个处理器执行,以实现所述流量统计方法。
为实现上述目的,本发明进一步提供一种计算机程序产品,其特征在于,包括计算机指令,当其在计算机上运行时,使得计算机可以执行所述流量统计方法。
由以上技术方案,本发明中,通过利用数据包在内核的发送流程对连接记录做标记(即通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录),无需进行抓取数据包等额外的操作,从而可以提高数据流量的统计效率,而且占用的资源低,同时,通过内核框架对连接记录做标记,是应用于***的内核层,从而安全性高,不容易被非法修改,从而也提高了该流量统计方式的安全性。
附图说明
图1为本发明一实施例的流程示意图;
图2为本发明一实施例揭露的电子设备的内部结构示意图;
图3为本发明流量统计***的功能模块示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明提供一种流量统计方法。
参照图1,图1为本发明一实施例的流程示意图。根据不同的需求,该流程示意图中步骤的顺序可以改变,某些步骤可以省略。
S10,当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组。
其中,所述目标业务的进程可以为同一种业务类型的进程,可以为一个进程,也可以为多个进程;
其中,所述控制组(cgroup,Control Groups)是Linux内核提供的一种可以限制单个进程或者多个进程所使用资源的机制,可以对cpu,内存等资源实现精细化的控制,可以对进程进行分类。
作为一种可选的实施方式,所述步骤S10之前,所述方法还包括:
当所述目标业务的进程启动时,将所述目标业务的进程划分至与所述目标业务对应的控制组中。
在该可选的实施方式中,启动进程的时候,可以通过控制组机制,将进程加入指定的控制组中,可以设置每个控制组对应的业务类型,将进程加入与进程对应的业务类型一致的控制组中。
S20,获取所述控制组的控制组标识,以及获取连接跟踪文件。
其中,所述控制组标识是指可以用于从所有控制组中识别指定控制组的信息,比如:控制组所处的位置具有唯一性,表示控制组的位置信息(即路径)对应的字符串是具有唯一性的,不同的位置信息对应的字符串可以用来表示不同的控制组。可以将所述控制组的位置信息作为控制组标识。
其中,所述连接跟踪文件(/proc/net/nf_conntrack)中存储有网络连接的详细信息,由多条连接记录组成。
作为一种可选的实施方式,所述步骤S10之后,以及所述步骤S20之前,所述方法还包括:
获取所述控制组的位置信息;
根据所述位置信息,生成所述控制组对应的控制组标识。
在该可选的实施方式中,通过内核可以查询并获取进程所属的控制组的位置信息,可以将所述位置信息转换为字符串,将所述字符串确定为所述控制组对应的控制组标识。
S30,通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录。
其中,所述内核框架可以是netfilter,netfilter是Linux***的一个子***,是一个通用的、抽象的框架,提供一整套的钩子(hook)函数的管理机制,可以对数据包进行过滤,以及可以跟踪网络地址转换(NAT,Network Address Translation)和基于协议类型的连接等。
具体的,所述通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录包括:
当通过属于所述控制组的进程创建套接字时,将所述控制组标识存储至所述套接字中;
当通过所述套接字发送数据包时,将所述套接字存储的所述控制组标识存储至所述数据包中;
当所述数据包被传输至内核框架时,确定所述数据包对应的连接记录;
根据所述控制组标识,判断所述连接记录是否已被标记;
若所述连接记录未被标记,使用所述控制组标识标记所述连接记录。
其中,所述套接字(socket)可以是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序与网络中的其他应用程序进行通信,网络套接字是IP地址与端口的组合。
在该可选的实施方式中,当所述控制组中的进程创建一个套接字时,可以将所述控制组标识存储至所述套接字中,数据包需要通过套接字才可以发送出去,当数据包被所述套接字发送时,可以将存储在所述套接字的所述控制组标识赋予数据包,即将所述控制组标识存储至数据包中;当数据包被传输至内核框架时,可以确定所述数据包对应的连接记录,然后,检测所述连接记录中是否存储有所述数据包存储的所述控制组标识,若所述连接记录中存储有所述数据包存储的所述控制组标识,确定所述连接记录已被标记,若所述连接记录中未存储有所述数据包存储的所述控制组标识,确定所述连接记录未被标记,需要将所述控制组标识存储至所述连接记录中,使得所述连接记录被标识。
S40,根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计。
本发明实施例中,可以从连接跟踪文件中找出被标记的连接记录,根据这些被找出的连接记录所记录的流量信息,确定所述控制组中所有进程的总流量。
具体的,所述根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计包括:
从所述连接跟踪文件中查询所述被标记的连接记录在第一时间记录的第一发送流量,以及从所述连接跟踪文件中查询所述被标记的连接记录在第二时间记录的第二发送流量;
根据所述第一发送流量以及所述第二发送流量,确定所述控制组的发送流量。
其中,可以预先设置一段时间长度比如:10分钟,每隔10分钟统计一次进程的发送的流量,根据前后两次统计结果,可以获得进程在这10分钟内发送的流量大小,前后两次进行统计的时间点分别为所述第一预设时间、所述第二预设时间。
其中,所述第二预设时间大于所述第一预设时间。
在该可选的实施方式中,可以在所述第一预设时间,导出连接跟踪文件,这时候的连接跟踪文件保存的连接记录保存在所述第一预设时间之前的数据记录,可以从所有的连接记录中找到存储有所述控制组标识的连接记录(即被标记的连接记录),再读取每个连接记录中保存的发送流量的值,将读取出来的所有的发送流量的值求和,获得所述第一发送流量。以及在所述第二预设时间,导出连接跟踪文件,这时候的连接跟踪文件保存的连接记录保存在所述第二预设时间之前的数据记录,可以从所有的连接记录中找到存储有所述控制组标识的连接记录(即被标记的连接记录),再读取每个连接记录中保存的发送流量的值,将读取出来的所有的发送流量的值求和,获得所述第二发送流量。最后,算出所述第二发送流量与所述第一发送流量的差值,该差值就是所述控制组中所有进程在所述第一预设时间至所述第二预设时间的这段时间的发送流量。
具体的,所述根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计包括:
从所述连接跟踪文件中查询所述被标记的连接记录在第三时间记录的第一接收流量,以及从所述连接跟踪文件中查询所述被标记的连接记录在第四时间记录的第二接收流量;
根据所述第一接收流量以及所述第二接收流量,确定所述控制组的接收流量。
其中,可以预先设置一段时间长度比如:10分钟,每隔10分钟统计一次进程的接收的流量,根据前后两次统计结果,可以获得进程在这10分钟内接收的流量大小,前后两次进行统计的时间点分别为所述第三预设时间、所述第四预设时间。
其中,所述第四预设时间大于所述第三预设时间。
在该可选的实施方式中,可以在所述第三预设时间,导出连接跟踪文件,这时候的连接跟踪文件保存的连接记录保存在所述第三预设时间之前的数据记录,可以从所有的连接记录中找到存储有所述控制组标识的连接记录(即被标记的连接记录),再读取每个连接记录中保存的接收流量的值,将读取出来的所有的接收流量的值求和,获得所述第一接收流量。以及在所述第四预设时间,导出连接跟踪文件,这时候的连接跟踪文件保存的连接记录保存在所述第四预设时间之前的数据记录,可以从所有的连接记录中找到存储有所述控制组标识的连接记录(即被标记的连接记录),再读取每个连接记录中保存的接收流量的值,将读取出来的所有的接收流量的值求和,获得所述第二接收流量。最后,算出所述第二接收流量与所述第一接收流量的差值,该差值就是所述控制组中所有进程在所述第三预设时间至所述第四预设时间的这段时间的接收流量。
由以上技术方案,本发明中,通过利用数据包在内核的发送流程对连接记录做标记(即通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录),无需进行抓取数据包等额外的操作,从而可以提高数据流量的统计效率,而且占用的资源低,同时,通过内核框架对连接记录做标记,是应用于***的内核层,从而安全性高,不容易被非法修改,从而也提高了该流量统计方式的安全性。
参照图2,图2为图2为本发明一实施例揭露的电子设备的内部结构示意图。
在本实施例中,电子设备1可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、基于linux内核的电子设备等终端设备。
该电子设备1可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的硬盘。存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如计算机程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,电子设备还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11-13电子设备1,本领域技术人员可以理解的是,图2示出的结构并不构成对电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
参照图3,为本发明流量统计***的功能模块示意图。所述流量统计***包括确定单元110、获取单元111、标记单元112及统计单元113。本发明所称的单元是指一种能够被处理器12所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器11中。在本实施例中,关于各单元的功能将在后续的实施例中详述。
确定单元110,用于当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组。
其中,所述目标业务的进程可以为同一种业务类型的进程,可以为一个进程,也可以为多个进程;
其中,所述控制组(cgroup,Control Groups)是Linux内核提供的一种可以限制单个进程或者多个进程所使用资源的机制,可以对cpu,内存等资源实现精细化的控制,可以对进程进行分类。
获取单元111,用于获取所述控制组的控制组标识,以及获取连接跟踪文件。
其中,所述控制组标识是指可以用于从所有控制组中识别指定控制组的信息,比如:控制组所处的位置具有唯一性,表示控制组的位置信息(即路径)对应的字符串是具有唯一性的,不同的位置信息对应的字符串可以用来表示不同的控制组。可以将所述控制组的位置信息作为控制组标识。
其中,所述连接跟踪文件(/proc/net/nf_conntrack)中存储有网络连接的详细信息,由多条连接记录组成。
标记单元112,用于通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录。
其中,所述内核框架可以是netfilter,netfilter是Linux***的一个子***,是一个通用的、抽象的框架,提供一整套的钩子(hook)函数的管理机制,可以对数据包进行过滤,以及可以跟踪网络地址转换(NAT,Network Address Translation)和基于协议类型的连接等。
统计单元113,用于根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计。
本发明实施例中,可以从连接跟踪文件中找出被标记的连接记录,根据这些被找出的连接记录所记录的流量信息,确定所述控制组中所有进程的总流量。
作为一种可选的实施方式,所述统计单元113根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计方式具体为:
从所述连接跟踪文件中查询所述被标记的连接记录在第一时间记录的第一发送流量,以及从所述连接跟踪文件中查询所述被标记的连接记录在第二时间记录的第二发送流量;
根据所述第一发送流量以及所述第二发送流量,确定所述控制组的发送流量。
其中,可以预先设置一段时间长度比如:10分钟,每隔10分钟统计一次进程的发送的流量,根据前后两次统计结果,可以获得进程在这10分钟内发送的流量大小,前后两次进行统计的时间点分别为所述第一预设时间、所述第二预设时间。
其中,所述第二预设时间大于所述第一预设时间。
在该可选的实施方式中,可以在所述第一预设时间,导出连接跟踪文件,这时候的连接跟踪文件保存的连接记录保存在所述第一预设时间之前的数据记录,可以从所有的连接记录中找到存储有所述控制组标识的连接记录(即被标记的连接记录),再读取每个连接记录中保存的发送流量的值,将读取出来的所有的发送流量的值求和,获得所述第一发送流量。以及在所述第二预设时间,导出连接跟踪文件,这时候的连接跟踪文件保存的连接记录保存在所述第二预设时间之前的数据记录,可以从所有的连接记录中找到存储有所述控制组标识的连接记录(即被标记的连接记录),再读取每个连接记录中保存的发送流量的值,将读取出来的所有的发送流量的值求和,获得所述第二发送流量。最后,算出所述第二发送流量与所述第一发送流量的差值,该差值就是所述控制组中所有进程在所述第一预设时间至所述第二预设时间的这段时间的发送流量。
作为一种可选的实施方式,所述统计单元113根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计方式具体为:
从所述连接跟踪文件中查询所述被标记的连接记录在第三时间记录的第一接收流量,以及从所述连接跟踪文件中查询所述被标记的连接记录在第四时间记录的第二接收流量;
根据所述第一接收流量以及所述第二接收流量,确定所述控制组的接收流量。
其中,可以预先设置一段时间长度比如:10分钟,每隔10分钟统计一次进程的接收的流量,根据前后两次统计结果,可以获得进程在这10分钟内接收的流量大小,前后两次进行统计的时间点分别为所述第三预设时间、所述第四预设时间。
其中,所述第四预设时间大于所述第三预设时间。
在该可选的实施方式中,可以在所述第三预设时间,导出连接跟踪文件,这时候的连接跟踪文件保存的连接记录保存在所述第三预设时间之前的数据记录,可以从所有的连接记录中找到存储有所述控制组标识的连接记录(即被标记的连接记录),再读取每个连接记录中保存的接收流量的值,将读取出来的所有的接收流量的值求和,获得所述第一接收流量。以及在所述第四预设时间,导出连接跟踪文件,这时候的连接跟踪文件保存的连接记录保存在所述第四预设时间之前的数据记录,可以从所有的连接记录中找到存储有所述控制组标识的连接记录(即被标记的连接记录),再读取每个连接记录中保存的接收流量的值,将读取出来的所有的接收流量的值求和,获得所述第二接收流量。最后,算出所述第二接收流量与所述第一接收流量的差值,该差值就是所述控制组中所有进程在所述第三预设时间至所述第四预设时间的这段时间的接收流量。
作为一种可选的实施方式,所述标记单元112通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录的方式具体为:
当通过属于所述控制组的进程创建套接字时,将所述控制组标识存储至所述套接字中;
当通过所述套接字发送数据包时,将所述套接字存储的所述控制组标识存储至所述数据包中;
当所述数据包被传输至内核框架时,确定所述数据包对应的连接记录;
根据所述控制组标识,判断所述连接记录是否已被标记;
若所述连接记录未被标记,使用所述控制组标识标记所述连接记录。
其中,所述套接字(socket)可以是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序与网络中的其他应用程序进行通信,网络套接字是IP地址与端口的组合。
在该可选的实施方式中,当所述控制组中的进程创建一个套接字时,可以将所述控制组标识存储至所述套接字中,数据包需要通过套接字才可以发送出去,当数据包被所述套接字发送时,可以将存储在所述套接字的所述控制组标识赋予数据包,即将所述控制组标识存储至数据包中;当数据包被传输至内核框架时,可以确定所述数据包对应的连接记录,然后,检测所述连接记录中是否存储有所述数据包存储的所述控制组标识,若所述连接记录中存储有所述数据包存储的所述控制组标识,确定所述连接记录已被标记,若所述连接记录中未存储有所述数据包存储的所述控制组标识,确定所述连接记录未被标记,需要将所述控制组标识存储至所述连接记录中,使得所述连接记录被标识。
作为一种可选的实施方式,所述流量统计***还可以包括:
划分单元,用于所述确定单元110确定所述目标业务对应的控制组之前,当所述目标业务的进程启动时,将所述目标业务的进程划分至与所述目标业务对应的控制组中。
在该可选的实施方式中,启动进程的时候,可以通过控制组机制,将进程加入指定的控制组中,可以设置每个控制组对应的业务类型,将进程加入与进程对应的业务类型一致的控制组中。
作为一种可选的实施方式,所述获取单元111,还用于所述确定单元110确定所述目标业务对应的控制组之后,获取所述控制组的位置信息;
所述流量统计***还可以包括:
生成单元,用于根据所述位置信息,生成所述控制组对应的控制组标识。
在该可选的实施方式中,通过内核可以查询并获取进程所属的控制组的位置信息,可以将所述位置信息转换为字符串,将所述字符串确定为所述控制组对应的控制组标识。
综上所述,本发明中,通过利用数据包在内核的发送流程对连接记录做标记(即通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录),无需进行抓取数据包等额外的操作,从而可以提高数据流量的统计效率,而且占用的资源低,同时,通过内核框架对连接记录做标记,是应用于***的内核层,从而安全性高,不容易被非法修改,从而也提高了该流量统计方式的安全性。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种流量统计方法,其特征在于,所述方法包括:
当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组;
获取所述控制组的控制组标识,所述控制组标识通过所述控制组的位置信息生成,以及获取连接跟踪文件,所述连接跟踪文件由网络的多条连接记录组成,所述控制组标识是指用于从所有控制组中识别指定控制组的信息,所述控制组标识包括所述控制组的位置信息,所述控制组所处的位置具有唯一性,则表示所述控制组的位置信息对应的字符串也是具有唯一性的,不同的位置信息对应的字符串用于表示不同的控制组;
通过内核框架,使用所述控制组标识,在所述连接跟踪文件中标记所述控制组中所有进程对应的连接记录,包括:当通过属于所述控制组的进程创建套接字时,将所述控制组标识存储至所述套接字中,当通过所述套接字发送数据包时,将所述套接字存储的所述控制组标识存储至所述数据包中,当所述数据包被传输至所述内核框架时,在所述连接跟踪文件中确定所述数据包对应的连接记录,根据所述控制组标识,判断所述连接记录是否已被标记,若所述连接记录未被标记,使用所述控制组标识标记所述连接记录,包括:将所述控制组标识存储至所述连接记录中,完成所述连接记录的标记;
根据所述被标记的连接记录在所述连接跟踪文件中记录的流量信息,对所述控制组的流量进行统计。
2.如权利要求1所述的方法,其特征在于,所述根据所述被标记的连接记录在所述连接跟踪文件中记录的流量信息,对所述控制组的流量进行统计包括:
从所述连接跟踪文件中查询所述被标记的连接记录在第一预设时间记录的第一发送流量,以及从所述连接跟踪文件中查询所述被标记的连接记录在第二预设时间记录的第二发送流量;
根据所述第一发送流量以及所述第二发送流量,确定所述控制组的发送流量。
3.如权利要求1所述的方法,其特征在于,所述根据所述被标记的连接记录在所述连接跟踪文件中记录的流量信息,对所述控制组的流量进行统计包括:
从所述连接跟踪文件中查询所述被标记的连接记录在第三预设时间记录的第一接收流量,以及从所述连接跟踪文件中查询所述被标记的连接记录在第四预设时间记录的第二接收流量;
根据所述第一接收流量以及所述第二接收流量,确定所述控制组的接收流量。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组之前,所述方法还包括:
当所述目标业务的进程启动时,将所述目标业务的进程划分至与所述目标业务对应的控制组中。
5.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的流量统计方法。
6.一种流量统计***,所述***用于实现如权利要求1至4中任一项所述的流量统计方法,其特征在于,所述***包括:
确定单元,用于当接收到对目标业务的进程进行流量统计的请求时,确定所述目标业务对应的控制组;
获取单元,用于获取所述控制组的控制组标识,以及获取连接跟踪文件;
标记单元,用于通过内核框架,使用所述控制组标识,标记所述控制组中所有进程对应的连接记录;
统计单元,用于根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计。
7.如权利要求6所述的流量统计***,其特征在于,所述统计单元根据所述连接跟踪文件以及所述被标记的连接记录,对所述控制组的流量进行统计的方式具体为:
从所述连接跟踪文件中查询所述被标记的连接记录在第一预设时间记录的第一发送流量,以及从所述连接跟踪文件中查询所述被标记的连接记录在第二预设时间记录的第二发送流量;
根据所述第一发送流量以及所述第二发送流量,确定所述控制组的发送流量。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序可被一个或者多个处理器执行,以实现如权利要求1至4中任一项所述的流量统计方法。
CN201911135814.5A 2019-11-19 2019-11-19 流量统计方法、电子设备、***及介质 Active CN110851334B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911135814.5A CN110851334B (zh) 2019-11-19 2019-11-19 流量统计方法、电子设备、***及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911135814.5A CN110851334B (zh) 2019-11-19 2019-11-19 流量统计方法、电子设备、***及介质

Publications (2)

Publication Number Publication Date
CN110851334A CN110851334A (zh) 2020-02-28
CN110851334B true CN110851334B (zh) 2024-06-14

Family

ID=69602347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911135814.5A Active CN110851334B (zh) 2019-11-19 2019-11-19 流量统计方法、电子设备、***及介质

Country Status (1)

Country Link
CN (1) CN110851334B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966491B (zh) * 2020-08-04 2023-07-21 Oppo广东移动通信有限公司 统计占用内存的方法及终端设备
CN113596019B (zh) * 2021-07-27 2023-03-24 中国南方电网有限责任公司 高性能网络流量数据表示和提取方法和***
CN115037516B (zh) * 2022-04-28 2024-06-14 统信软件技术有限公司 一种应用使用流量的统计方法、计算设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629909A (zh) * 2012-03-30 2012-08-08 奇智软件(北京)有限公司 基于进程的流量统计方法及***
CN108696452A (zh) * 2018-05-16 2018-10-23 腾讯科技(深圳)有限公司 一种容器级网络流量采集、网络质量标识方法、装置、***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100459574C (zh) * 2005-09-19 2009-02-04 北京大学 对网络流进行分类、状态跟踪和报文处理的装置和方法
US10404730B1 (en) * 2016-02-22 2019-09-03 Vectra Networks, Inc. High-volume network threat trace engine
CN109889401B (zh) * 2019-01-22 2021-03-16 金蝶软件(中国)有限公司 流量统计方法、装置、计算机设备和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629909A (zh) * 2012-03-30 2012-08-08 奇智软件(北京)有限公司 基于进程的流量统计方法及***
CN108696452A (zh) * 2018-05-16 2018-10-23 腾讯科技(深圳)有限公司 一种容器级网络流量采集、网络质量标识方法、装置、***

Also Published As

Publication number Publication date
CN110851334A (zh) 2020-02-28

Similar Documents

Publication Publication Date Title
CN108881294B (zh) 基于网络攻击行为的攻击源ip画像生成方法以及装置
CN110851334B (zh) 流量统计方法、电子设备、***及介质
CN108737325B (zh) 一种多租户数据隔离方法、装置及***
CN109600441B (zh) 联盟链信息发布控制方法及终端设备
CN113489713B (zh) 网络攻击的检测方法、装置、设备及存储介质
CN112491602B (zh) 行为数据的监控方法、装置、计算机设备及介质
CN105357204B (zh) 生成终端识别信息的方法及装置
CN113364753B (zh) 反爬虫方法、装置、电子设备及计算机可读存储介质
CN111131221B (zh) 接口校验的装置、方法及存储介质
CN112702228B (zh) 服务限流响应方法、装置、电子设备及可读存储介质
WO2013152729A1 (zh) 用于向终端设备提供软件的方法及装置
CN109688094B (zh) 基于网络安全的可疑ip配置方法、装置、设备及存储介质
CN104219230A (zh) 识别恶意网站的方法及装置
WO2017107679A1 (zh) 一种历史信息展示方法及装置
CN110855525A (zh) 流量统计方法、电子设备、***及介质
CN111026613B (zh) 日志处理方法及装置
CN112181794A (zh) 页面监听方法、装置、计算机设备及存储介质
CN110868360B (zh) 流量统计方法、电子设备、***及介质
WO2023125435A1 (zh) 基于tf-idf算法的定向网络检测方法、装置、设备及介质
CN114157662B (zh) 一种云平台参数适配方法、装置、终端设备及储存介质
CN108268545B (zh) 一种分级的用户标签库的创建的方法和装置
CN115544558A (zh) 敏感信息检测方法、装置、计算机设备及存储介质
CN110020166A (zh) 一种数据分析方法及相关设备
CN109936528A (zh) 监测方法、装置、设备及***
CN110245016B (zh) 数据处理方法、***、装置及终端设备

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
GR01 Patent grant
GR01 Patent grant