CN116389322B - 流量数据处理方法、装置、计算机设备和存储介质 - Google Patents

流量数据处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116389322B
CN116389322B CN202310646708.3A CN202310646708A CN116389322B CN 116389322 B CN116389322 B CN 116389322B CN 202310646708 A CN202310646708 A CN 202310646708A CN 116389322 B CN116389322 B CN 116389322B
Authority
CN
China
Prior art keywords
flow
data
flow table
information
attribute 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
Application number
CN202310646708.3A
Other languages
English (en)
Other versions
CN116389322A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310646708.3A priority Critical patent/CN116389322B/zh
Publication of CN116389322A publication Critical patent/CN116389322A/zh
Application granted granted Critical
Publication of CN116389322B publication Critical patent/CN116389322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种流量数据处理方法、装置、计算机设备、存储介质和计算机程序产品。本申请涉及数据传输过程中流量数据的处理,所述方法包括:获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息;基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量;通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息;在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成用于描述数据流在统计时段内的流量统计结果的流日志记录。采用本方法能够提高流量数据处理效率。

Description

流量数据处理方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种流量数据处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,出现了云技术,在云技术中,公有云是指第三方提供商为用户提供的能够使用的云,公有云的核心属性是共享资源服务。云上用户为了进行资源优化,通常需要了解云上网关节点的流量情况。
目前,一般通过商用流量分析系统进行流量数据检测,在网络流量大小及网络流规模都非常庞大的情况下,商业流量收集系统的性能很难满足高性能需求,流量处理的效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高流量数据处理效率的流量数据处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种流量数据处理方法,所述方法包括:
获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息;
基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量;
通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息;
在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录;流日志记录用于描述数据流在统计时段内的流量统计结果。
第二方面,本申请还提供了一种流量数据处理装置,所述装置包括:
信息提取模块,用于获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息;
增量信息确定模块,用于基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量;
数据更新模块,用于通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息;
流日志生成模块,用于在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录;流日志记录用于描述数据流在统计时段内的流量统计结果。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息;
基于流属性信息和包属性信息,确定网络节点的传输数据包所属数据流中产生的数据增量;
通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息;
在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录;流日志记录用于描述数据流在统计时段内的流量统计结果。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息;
基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量;
通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息;
在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录;流日志记录用于描述数据流在统计时段内的流量统计结果。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息;
基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量;
通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息;
在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录;流日志记录用于描述数据流在统计时段内的流量统计结果。
上述流量数据处理方法、装置、计算机设备、存储介质和计算机程序产品,获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息,基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量,通过数据增量对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息,在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段,生成用于描述数据流在统计时段内的流量统计结果的流日志记录。在流量数据处理过程中,通过获取流量报文,并从流量报文中提取流属性信息和包属性信息,根据流属性信息和包属性信息确定数据增量,进一步通过数据增量对数据流统计数据进行更新,在满足数据流的流日志生成条件的情况下,结合流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录,通过网络节点发送的流量报文所携带的流属性信息和包属性信息,针对数据流的流量增量信息进行统计,以获得用于描述数据流在统计时段内的流量统计结果流日志记录,可以利用流量报文对数据流的流量进行高效统计处理,能够提高流量数据的处理效率。
附图说明
图1为一个实施例中流量数据处理方法的应用环境图;
图2为一个实施例中流量数据处理方法的流程示意图;
图3为另一个实施例中流量数据处理方法的流程示意图;
图4为一个实施例中环形缓存队列选取的流程框图;
图5为另一个实施例中环形缓存队列选取的流程框图;
图6为一个实施例中流量数据处理方法的流程框图;
图7为一个实施例中流量收集上报系统的结构框图;
图8为一个实施例中流表项的存储示意图;
图9为一个实施例中流量数据处理装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的流量数据处理方法,可以应用于如图1所示的应用环境中。其中,图1所示的应用环境包括流量收集上报系统102、网络节点104、云上区域106以及云下机房108。网络节点104可以是指网关节点,网络节点104可以是指在不同设备之间创建通信连接的节点,网络节点104上承载了多个虚拟网关实例,各虚拟网关实例可以分别针对云上区域之间、云上区域和云下机房之间以及云下机房之间建立通信连接。云上区域106可以是指可以为云上用户提供相应业务服务的区域,业务服务可以为安全服务、应用服务以及存储服务等多种类型的服务,云上区域106可以包括区域1…区域N等多个不同的云上区域,每个不同的云上区域相应的提供对应的业务服务。云下机房108是指面向用户的互联网数据中心,云下机房108也可以包括机房1…机房N等多个不同的云下机房。其中,云上区域106和云下机房108之间可以通过网络节点104进行信息交互、传递,云上的不同区域,如区域1和区域N之间也可以通过网络节点104进行信息交互、传递,云下的不同机房之间,如机房1和机房N之间也可以通过网络节点104进行信息交互、传递。具体地,当云上区域106需要和云下机房108之间进行信息交互、传递时,会产生相应的数据流,数据流可以通过网络节点104以数据包的形式实现从云上区域106,如区域1转发至云下机房108,如机房1;相应的,针对云下机房108,当机房1和机房N之间需要进行信息交互、传递时,也会产生数据流,数据流可以通过网关节点104,以数据包的形式实现从机房1转发至机房N。
在一个实施例中,当云上用户需要更新其业务部署架构及带宽分配方案时,如更新云上不同区域、云上区域与云下机房之间的资源分配时,需要了解一段时间内云上至云下机房、云上不同区域之间的流量互通情况。例如,当云上用户需要了解一段时间内区域1和机房1之间的流量互通情况时,可以要求网络节点104提供在某段时间内该客户流量1:1采样的完整流量数据。对于网络节点104而言,网络节点104可以针对区域1和机房1之间的数据流,生成流量报文,并将流量报文发送至流量收集上报系统102,流量收集上报系统102在具体实现流量数据处理时,获取由网络节点104发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息,基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量,通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息,在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录,流日志记录用于描述数据流在统计时段内的流量统计结果。
其中,流量收集上报系统102、云上区域106以及云下机房108可以包括各种类型的计算机设备,如具体可以是终端或者服务器。终端可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接。
其中涉及的云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
具体来说,云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing )、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统 (以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity) 等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array ofIndependent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
公有云(Public Cloud)通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过 Internet 使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务。这种云有许多实例,可在当今整个开放的公有网络中提供服务。
在一个实施例中,如图2所示,提供了一种流量数据处理方法,该方法可以由如图1所示的流量收集上报系统102执行,在本申请实施例中,以该方法应用于流量收集上报系统102所对应的计算机设备为例进行说明,包括以下步骤:
步骤202,获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息。
其中,网络节点可以是指在不同设备之间创建通信连接的节点,具体可以是在不同设备之间创建通信连接的计算机设备,网络节点可以将具有不同传输协议的两个网络连接在一起,当一个网络要与另一个网络通信时,可以将数据包传输到网络节点,由网络节点进行数据包的转发与传递,从而通过网络节点可以在数据传输端和数据接收端建立数据流,通过数据流进行数据传输。网络节点具体可以包括网关节点,网关节点在网络层以上实现网络互连,是复杂的网络互连设备,用于两个高层协议不同的网络互连。网关节点既可以用于广域网互连,也可以用于局域网互连,其是一种充当转换重任的计算机系统或设备,可以作为一个翻译器,在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间进行使用。
流量用于描述在网络通信过程中传输的数据量,如流量可以描述网络节点通过数据流在不同通信端进行数据传输的数据量。流量报文可以是在网络中交换与传输的数据单元,流量报文中可以包括将要发送的完整数据包的数据信息。网络节点可以通过解析待传输的数据包,得到数据包的数据包信息,并基于数据包信息组装得到流量报文,每个数据包可以对应于一个数据包信息。当待传输的数据包只有一个时,流量报文中只包括一个数据包的数据包信息;而当待传输的数据包存在多个时,流量报文中可以包括每一个数据包的数据包信息。网络节点在发送流量报文时,可以按照预先配置的网络协议,生成流量报文进行发送,即流量报文是根据预先配置的网络协议生成的。当不同的设备之间存在有信息或者数据需要进行信息交互、信息传递的情况下,则会在数据流中产生流量数据,具体可以包括传输的数据包。
数据包在数据流中进行传输,数据流可以根据数据发送方和数据接收方进行区分,不同的数据发送方,或者不同的数据接收方,可以建立不同的数据流进行通信,即通过不同的数据流进行数据包传输,以实现不同端的独立通信。在数据流中可以持续传输数据包,数据包即为通过数据流具体传输的信息。例如,在云场景下,公有云用户的云上区域与云下IDC(Internet Data Center,互联网数据中心)机房之间在进行信息交互时,会通过数据流产生流量数据;又如,公有云上的云上不同区域之间需要进行信息传递时,同样也会通过数据流产生流量数据。在具体应用中,不同的数据流可以通过相同的网络节点实现数据传输,即同一网络节点可以针对不同的数据流进行数据包传输。
流属性信息可以包括对数据包所属的数据流的特征进行描述的信息,从而可以将流属性信息作为标识信息区分不同的数据流,流属性信息具体可以包括数据流的源网络地址、目的网络地址、源端口、目的端口以及传输协议等信息。流属性信息的数量可以与数据包的个数相对应,具体流属性信息可以与数据包一一对应,每个数据包对应于一个流属性信息,即有多少个数据包,流量报文中则可以包含多少个流属性信息。包属性信息可以是指对数据包的特征进行描述的信息,通过包属性信息可以确定数据包的信息,如可以确定数据包的数据大小,包属性信息具体可以包括数据包的数据字节长度等。
具体的,计算机设备可以获取由网络节点发送的流量报文,并进一步对流量报文进行解析处理,以提取出流量报文中的流属性信息以及包属性信息,流属性信息可以用于标识网络节点传输的数据包所属数据流,包属性可以用于描述网络节点传输的数据包的信息,如可以描述数据包的数据量大小。流量报文由网络节点向计算机设备发送,具体网络节点可以针对传输的数据包进行解析处理,提取得到数据包的包属性信息,并确定该数据包所属数据流的流属性信息,网络节点可以将包属性信息和流属性信息封装到标准的协议报文中,获得流量报文,并将流量报文转发至计算机设备。
在具体实现中,网络节点可以基于一条数据流或者至少两条数据流中的数据包,生成流量报文,以支持计算机设备通过流量报文可以同时对一条或多条数据流的流量进行统计。例如,网络节点针对多个数据流进行数据传输时,对于每个数据流中传输的数据包,网络节点可以针对每个数据流分别生成流量报文,即属于同一个数据流的数据包,网络节点可以集中生成流量报文,从而使每个流量报文中仅包括一条数据流中数据包的流属性信息和包属性信息。例如,网络节点针对数据流1、数据流2和数据流3持续进行数据传输,网络节点可以周期性基于传输的数据包生成流量报文以发送到计算机设备进行流量统计处理,在某个周期P内,网络节点可以针对数据流1中传输的5个数据包生成流量报文1,针对数据流2中传输的6个数据包生成流量报文2,针对数据流3中传输的4个数据包生成流量报文3,即每个流量报文是基于不同数据流中所传输的数据包生成的,网络节点可以将流量报文1、流量报文2和流量报文3分别发送到计算机设备,以由计算机设备可以利用流量报文1、流量报文2和流量报文3针对周期P内,在数据流1、数据流2和数据流3中分别传输的数据流量进行统计。
又如,网络节点可以按照传输时间先后顺序,从数据流1、数据流2和数据流3中确定所传输的数据包包括数据包1至数据包12;其中,数据包1、数据包7和数据包12是在数据流1中传输的;数据包2、数据包3、数据包9和数据包10是在数据流2中传输的;数据包4、数据包5、数据包6、数据包8和数据包11是在数据流3中传输的。网络节点可以按照传输时间先后顺序,每隔4个数据包生成相应的流量报文,具体网络节点可以针对数据包1至数据包4,生成流量报文1;针对数据包5至数据包8生成流量报文2;针对数据包9至数据包12生成流量报文3。即每个流量报文可以基于不同数据流中传输的数据包生成。流量报文1、流量报文2和流量报文3是按照先后生成的,网络节点可以将流量报文1、流量报文2和流量报文3分别发送到计算机设备,以由计算机设备可以利用流量报文1、流量报文2和流量报文3,对网络节点在3个不同数据流中传输的数据包1至数据包12的数据流量分别进行统计。
计算机设备可以通过确定流量报文中流属性信息的数量,确定网络节点生成流量报文所针对的数据包数量,即在流量报文中有多少个流属性信息,计算机设备可以确定网络节点传输的数据包的数目,计算机设备还可以结合每个数据包各自的包属性信息,确定出每个数据包各自的数据包字节长度。
在一个具体应用中,计算机设备获取由网络节点发送的流量报文,通过对流量报文进行解析,从流量报文中提取得到三个流属性信息,从而可以确定网络节点传输的数据包的数量为3个,如具体包括数据包1、数据包2以及数据包3,针对每一个数据包,计算机设备均可以通过每一个数据包各自的包属性信息,确定每个数据包的数据量大小,如可以分别确定数据包1对应的数据包字节长度、数据包2对应的数据包字节长度以及数据包3对应的数据包字节长度。
步骤204,基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量。
其中,数据增量可以是指针对网络节点发送的流量报文确定的,网络节点对应传输数据的增量,网络节点可以针对每传输的一个或多个数据包,生成对应的流量报文并发送给计算机设备,以由计算机设备基于流量报文针对数据流中的流量进行统计。例如,在时段1,网络节点通过数据流1传输了3个数据包,则网络节点可以针对该3个数据包生成对应的流量报文A,流量报文A中可以包括数据流1的流属性信息,以及该3个数据包各自的包属性信息,则对于流量报文A,对应的数据增量为3个数据包的数据量。在时段2,网络节点通过数据流1先传输了2个数据包,再通过数据流2传输了2个数据包,最后通过数据流3传输了2个数据包,则网络节点可以针对该6个数据包生成对应的流量报文B,流量报文B中可以包括2个数据流1的流属性信息、2个数据流2的流属性信息以及2个数据流3的流属性信息,还包括该6个数据包各自的包属性信息,则对于流量报文B,对应的整体数据增量为6个数据包的数据量,具体包括在数据流1、数据流2和数据流3中分别各自增加的2个数据包。在网络节点于数据流中不断传输数据包的过程中,网络节点可以针对传输的数据包持续生成流量报文,以由计算机设备基于流量报文针对数据流的流量进行统计。数据增量具体可以为网络节点所传输的数据包的增量信息,数据包的增量信息可以包括数据包的个数、各数据包的数据包字节长度等。
具体地,计算机设备可以根据流属性信息确定网络节点生成流量报文时所对应传输的数据包的个数,从而可以基于流属性信息针对数据流中传输的数据包的数量进行统计。计算机设备可以根据数据包的包属性信息,确定数据包的数据包字节长度。计算机设备可以结合数据包的个数以及数据包字节长度,确定数据增量。在具体实现中,流量报文中提取的流属性信息可以对应于不同的数据流,即网络节点针对不同数据流中传输的数据包,可以根据每个数据包各自所属数据流的流属性信息和每个数据包各自的包属性信息生成流量报文,计算机设备可以针对流属性信息确定不同的数据流,并基于流属性信息针对不同的数据流分别进行流量统计,如计算机设备可以利用流属性信息的信息内容区分不同的数据流,利用流属性信息的数量确定不同数据流中传输的数据包的数量。即对于每一种数据流,计算机设备可以分别针对进行流量统计处理。
步骤206,通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息。
其中,数据流统计数据可以是指在历史时间段对数据流的数据增量进行统计后得到的数据,数据流统计数据具体可以是根据当前的流量报文之前的流量报文进行数据增量统计得到的统计数据。每一种数据流可以对应有相应的流属性信息,因此,针对每一类数据流,其流属性信息是与数据流统计数据关联的,对流属性信息关联的数据流统计数据进行更新,可以是指在已记录的数据流统计数据的基础上,进一步记录当前的流量报文所对应的数据增量。流量增量信息是指针对同一个数据流,基于该数据流的数据增量,在该数据流的数据流统计数据进行进一步更新后得到的信息。
具体地,计算机设备可以根据流属性信息确定相应数据流的数据流统计数据,并根据确定出的数据增量,对当前的数据流统计数据进行更新,如直接对数据流统计数据进行更改,以获得数据流的流量增量信息。也可以只是将数据增量记录在数据流统计数据中,以获得数据流的流量增量信息。
步骤208,在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录;流日志记录用于描述数据流在统计时段内的流量统计结果。
其中,流日志生成条件可以是指设定的生成流日志记录的条件,具体可以包括流日志生成周期,即达到流日志生成周期时,可以认为满足流日志生成条件,即需要生成数据流对应的流日志记录。统计时段是指针对数据流的流量进行统计的时间段,流日志记录描述了数据流在设定的统计时段内的流量统计结果,流量统计结果可以是指统计得到的某条数据流在一个时间段内的流量变化情况。在具体设置流日志生成条件时,可以根据用户对流量统计结果的分析需求、数据流的实际增长情况以及上报时间信息等进行设定。流量增量信息的统计时段可以是由统计数据流的流量增量信息的起始时间和结束时间构成的统计时段。
具体地,流日志生成条件可以是指根据上报时间信息设定的条件,例如,流日志生成条件可以为当前时间是否达到某一个时间点,若当达到该时间点时,确定满足流日志生成条件,计算机设备可以根据结合流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录;又如,流日志生成条件还可以为是否达到设定的时间间隔,当每一次达到设定的时间间隔时,确定满足流日志生成条件,计算机设备可以根据结合流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录。在具体实现时,流日志生成条件为是否达到设定的时间间隔,时间间隔具体可以为3小时,则当每一次时间达到3小时,计算机设备确定满足数据流的流日志生成条件,从而生成流日志记录。
在一个具体应用中,若计算机设备确定不满足流日志生成条件,如当前未达到生成周期时,则计算机设备可以继续从网络节点获取下一个流量报文,并基于下一个流量报文重新确定数据流的流量增量信息,从而对数据流的流量进行持续统计,直至满足流日志生成条件时,可以利用数据流的流量增量信息生成描述数据流在统计时段内流量统计结果的流日志记录,通过对数据流的流量增量信息的迭代更新处理,可以完整准确的记录下数据流在统计时段内的流量增长情况。
在一个实施例中,除了对统计时间段内的同一数据流的流量增长情况进行记录,计算机设备还可以对统计时间段内全部的数据流的流量增长情况进行记录。例如,统计时间段可以为上午9点至下午两点,在上午9点至下午两点之间,云上区域与云下机房之间会通过网络节点进行信息交互,会产生数据流1,云上不同的区域之间也会通过网络节点进行信息传递,产生数据流2,则网络节点会针对数据流1的数据包,组装得到流量报文1,以及针对数据流2的数据包,组装得到流量报文2。计算机设备在接收到流量报文1和流量报文2之后,可以分别针对流量报文1、流量报文2进行流属性信息以及包属性信息的提取,确定网络节点传输的数据流1的数据包产生的数据增量1,确定网络节点传输的数据流2的数据包产生的数据增量2,根据数据增量1对数据流1的流属性信息关联的数据流统计数据进行更新,得到数据流1的流量增量信息,根据数据增量2对数据流2的流属性信息关联的数据流统计数据进行更新,得到数据流2的流量增量信息。计算机设备结合数据流1的流量增量信息和数据流2的流量增量信息,可以确定出在统计时间段内所产生的所有数据流的流量增量情况,从而可以从整体上对网络中数据传输的流量情况展开分析处理。
此外,对于不同的数据流,网络节点可以针对不同数据流中传输的数据包,集中生成流量报文,通过流量报文中的流属性信息可以对各个数据流进行区分,以便计算机设备可以利用流量报文同时对多个数据流分别进行流量统计处理。具体地,计算机设备在从流量报文中提取到多种流属性信息时,表明流量报文针对传输的数据包是在不同数据流中传输的,则针对每种流属性信息确定相应的数据流,计算机设备可以利用该种流量报文中每种流属性信息以及与该种流属性信息匹配的数据包的包属性信息,即属于该种流属性信息标识的数据流中传输的数据包的包属性信息,确定每个数据流各自的数据增量,并确定每个数据流各自的流量增量信息,从而生成每个数据流各自的流日志记录。
上述流量数据处理方法中,获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息,基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量,通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息,在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段,生成用于描述数据流在统计时段内的流量统计结果的流日志记录。在流量数据处理过程中,通过获取流量报文,并从流量报文中提取流属性信息和包属性信息,根据流属性信息和包属性信息确定数据增量,进一步通过数据增量对数据流统计数据进行更新,在满足数据流的流日志生成条件的情况下,结合流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录,通过网络节点发送的流量报文所携带的流属性信息和包属性信息,针对数据流的流量增量信息进行统计,以获得用于描述数据流在统计时段内的流量统计结果流日志记录,可以利用流量报文对数据流的流量进行高效统计处理,能够提高流量数据的处理效率。
在一个实施例中,如图3所示,通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息,包括以下步骤:
步骤302,确定流属性信息关联的流表。
其中,流表可以是记录数据流的流量统计结果的数据集合。同一时间,经过同一网络中具有某种共同特征或属性的数据可以抽象为一个数据流,简称流。比如,可以将访问同一目的地址的数据视为一个流,流可以由网络管理员定义的,可以根据不同的流执行不同的策略。数据可以以流为单位进行处理,流表可以是针对特定流的策略表项的集合,负责数据包的查找和转发。流表具体可以为哈希流表等任意可以实现数据存储、信息映射的表,哈希流表可以采用函数映射的思想,将记录的存储位置与记录的关键字关联起来,从而可以快速定位到想要查找的记录。流表与数据流的流属性信息关联,针对每一个数据流,可以对应唯一的一个流表,因此,每一个数据流可以只占用同一份流表项资源,通过可扩展的流表管理,从而能够承载更多的流条目数。
步骤304,在流表中确定流属性信息对应的流表项。
其中,流表项是指流表中的最小数据单元,流表中可以包括一系列的流表项,流表项可以包头域、计数器以及动作表;包头域由多个匹配项组成,涵盖了链路层、网络层和传输层的标识;计数器用于统计数据流量相关信息,可以针对交换机中的每张流表、每个数据流、设备端口、转发队列进行维护,用于统计数据流量的相关信息;动作表用于指示交换机在收到匹配的数据包后,如何对其进行处理,每个流表项可以对应零到多个动作,如果没有定义转发动作,那么与流表项包头域匹配的数据包可以默认丢弃,同一流表项中的多个动作,可以具有不同的优先级。在流表中的每一条流表项均可以对应网络中的一条数据流。例如,针对某一条数据流,与其流属性信息关联的流表为流表1,则计算机设备可以通过流表1,从流表1中确定其对应的流表项为流表项A;针对流属性信息2,可以对应流表中的流表项B。在一个具体应用中,与流属性信息关联的流表为哈希流表,哈希流表可以包括key(关键字),以及与key对应的data(存储数据)两项,哈希流表的key可以是计算机设备根据流属性信息确定的,相应的,流表项则可以认为是流表中的data,每一个data 均可以对应有唯一的key与之匹配,因此,计算机设备可以结合根据流属性信息,在流表中确定流属性信息对应的流表项。
步骤306,通过数据增量对流表项中的数据流统计数据进行更新,并根据更新后的数据流统计数据得到数据流的流量增量信息。
具体地,计算机设备在流表中确定出流表项,从而对流表项中的数据流统计数据进行更新,以得到流量增量信息。在对流表项中的数据流统计数据进行更新时,计算机设备可以直接在数据流统计数据上的基础上进行更新,如将流表项中当前已记录的数据流统计数据与确定出的数据增量进行求和运算,获得求和后的数据流统计数据,并将求和后得到的数据流统计数据,作为数据流的流量增量信息。计算机设备也可以不在数据流统计数据的基础上进行更新,而只是添加数据增量至流表项中,数据流统计数据和数据增量在流表项中是独立的,以此根据独立的数据流统计数据和数量增量得到流量增量信息,后续在生成流日志记录时,或者是达到设定的求和条件时,再统一对记录的数据增量和数据流统计数据进行求和运算。计算机设备在选择相应的流量增量信息计算方式时,可以结合本身的存储资源、计算资源等进行适应性的选择。
本实施例中,计算机设备通过确定流属性信息关联的流表,进一步确定流表中流属性信息对应的流表项,针对每一个数据流,只对应唯一的一个流表,因此,每一个数据流只占用同一份流表项资源,通过可扩展的流表管理,从而提升流量数据处理效率。
在一个实施例中,流属性信息包括根据数据流的流标识信息和用户标识信息得到的元组信息;确定流属性信息关联的流表,包括:基于元组信息进行映射,得到映射数据;从多个候选缓存队列中确定与映射数据相匹配的目标缓存队列;将目标缓存队列关联的流表确定为与流属性信息关联的流表。
其中,流标识信息可以是指用于对数据流进行标识的信息,通过流标识信息,可以区分出不同的数据流,流标识信息可以为数据包的五元组信息,五元组信息具体可以为数据包的源IP(Internet Protocol,网络层协议)地址、目的IP地址、源端口、目标端口以及传输层协议,流标识信息也可以为数字、字母、特征码等任意可以用于标识的字符,只要可以区分出不同的数据流即可。用户标识信息是指可以用于区分不同云上用户的信息,用户标识信息可以包括VRF(Virtual Routing Forwarding,虚拟路由转发)信息,也可以为数字、字母、特征码等任意可以用于标识的字符,只要可以区分出不同的云上用户即可。例如,若用户标识信息为VRF信息时,由于不同的云上用户可以设置有不同的虚拟路由,因此,计算机设备可以根据虚拟路由信息区分出不同的用户,后续在生成流日志记录时,可以针对不同的用户生成对应的流量统计结果,从而可以记录到每一个要户对应的流量情况。
元组信息可以是指通过对流标识信息和用户标识信息进行组合得到的流关键信息,也可以是指结合实际的信息交互场景,从流标识信息和用户标识信息中选取一个信息作为流关键信息。映射可以是指建立一个数据与另一个数据之间的映射关系的机制,映射数据可以是指通过对元组信息进行映射处理得到的数据,映射数据可以和另一类数据之间存在映射关系,如映射数据与候选缓存队列存在映射关系。候选缓存队列可以是指数据交互的缓冲区,候选缓存队列的个数至少有两个,映射数据与候选缓存队列之间存在映射关系,候选缓存队列可以为环形缓存队列、分布式缓存队列以及有界缓存队列等任意缓存队列,基于映射关系,可以从各候选缓存队列中选取任意一个候选缓存队列作为目标缓存队列。
具体地,计算机设备可以基于流属性信息包括的元组信息进行映射,具体可以根据元组信息进行hash(哈希)计算,获得hash值,hash值可以作为元组信息的映射数据。计算机设备可以根据映射数据从候选缓存队列中确定出相匹配的目标缓存队列,具体可以根据映射数据的数据特征,如可以根据映射数据的数值范围,确定相匹配的目标缓存队列。例如,映射数据为通过哈希映射算法得到的hash值,在候选缓存队列为环形缓存队列,且环形缓存队列的个数为3个的情况下,计算机设备可以根据计算得到的hash值,从3个环形缓存队列中选取其中一个作为目标缓存队列。目标缓存队列关联有相应的流表,计算机设备可以将与目标缓存队列关联的流表确定为流属性信息关联的流表。例如,若环形缓存队列1被确定为目标缓存队列,其关联的流表为流表1,则流表1被确定为与流属性信息关联的流表;又如,若环形缓存队列2被确定为目标缓存队列,其关联的流表为流表2,则流表2被确定为与流属性信息关联的流表。
在一个具体实现中,计算机设备在根据计算得到的hash值,从3个环形缓存队列中选取其中一个作为目标缓存队列时,可以通过hash值对无锁环形队列的个数取余,通过余数选择一个无锁环形队列。例如,如图4所示,计算机设备计算得到的hash值为7,环形缓存队列的个数为3,余数为1,则选择第一个环形缓存队列为目标缓存队列,与环形缓存队列1关联的流表为流表1。又如,如图5所示,计算机设备计算得到的hash值为5,环形缓存队列的个数为3,余数为2,则选择第二个环形缓存队列为目标缓存队列,与环形缓存队列2关联的流表为流表2。
本实施例中,计算机设备结合元组信息,得到映射数据,从多个候选缓存队列中确定目标缓存队列,以将目标缓存队列关联的流表确定为与流属性信息关联的流表,不同的候选缓存队列只负责管理一张单独的流表,这样同一个流信息就只会占用同一份流表项资源,避免了资源的浪费,提升了流量数据处理性能。
在一个实施例中,流量数据处理方法还包括:将元组信息写入到目标缓存队列中;在流表中确定流属性信息对应的流表项,包括:从目标缓存队列中获取待处理的元组信息;在流表中查询与元组信息相对应的流表项。
具体地,计算机设备可以从目标缓存队列中获取元组信息,如当目标缓存队列为环形缓存队列1时,计算机设备可以将元组信息写入在环形缓存队列1中,计算机设备可以从环形缓存队列1中获取待处理的元组信息,并进一步在与环形缓存队列1关联的流表1中,查询与元组信息相对应的流表项。当目标缓存队列为环形缓存队列2时,计算机设备可以将元组信息写入在环形缓存队列2中,计算机设备可以从环形缓存队列2中获取待处理的元组信息,并进一步在与环形缓存队列2关联的流表2中,查询与元组信息相对应的流表项。在具体实现时,计算机设备通过定位到流表,然后基于从目标缓存队列中获取的元组信息,将元组信息作为key,进行流表项的查找。
本实施例中,目标缓存队列中关联有对应的流表,计算机设备将元组信息先写入到目标缓存队列中进行暂存,再从目标缓存队列中取出元组信息,并在与目标缓存队列关联的流表中查询元组信息对应的流表项,由于元组信息、目标缓存队列以及流表之间存在关联关系,可以提升流表项的查找效率,从而提升了流量数据处理效率。
在一个实施例中,流量数据处理方法还包括:当流表中不存在流属性信息对应的流表项,在流表中新建流属性信息对应的流表项;将数据增量作为流属性信息对应的流表项中的数据流统计数据;根据流属性信息对应的流表项中的数据流统计数据,得到数据流的流量增量信息。
具体地,流表中不存在流属性信息对应的流表项可以是指还未针对该数据流进行流量统计,在流表中还不存在该数据流的数据流统计数据,当流表中不存在流属性信息对应的流表项时,计算机设备可以基于元组信息新建流表项,并基于数据增量确定流表项的数据流统计数据,流表项中的数据流统计数据,则为流量增量信息。在具体实现中,计算机设备可以采用元组信息为key,在流表中查找流表项,在确定不存在元组信息对应的流表项时,则可以以元组信息为key新建流表项,并将数据增量作为新建的流表项的数据流统计数据,例如,针对数据流1,数据增量为数据包的个数为10个,10个数据包的数据包字节长度为1024byte(字节),则数据流统计数据为10个数据包,数据包字节长度为1024byte。
本实施例中,计算机设备在确定流表中不存在流属性信息对应的流表项时,会在流表中新建流属性信息对应的流表项,并将数据增量作为流属性信息对应的流表项中的数据流统计数据,得到数据流的流量增量信息,从而可以对数据流的流量情况进行统计。
在一个实施例中,流量数据处理方法还包括:确定流表的流表项状态;当流表项状态确定满足流表项清除判定条件,从流表中确定待清除的流表项;将待清除的流表项从流表中进行清除。
其中,流表项状态可以是指用于表征流表中的流表项的特征的信息,流表项状态可以包括流表项的数目、流表项中的数据流统计数据的更新时间等。流表项清除判定条件可以是指设定的对流表项进行清除的条件,在设定流表项清除条件时,可以结合计算机设备支持的流规模、流表性能等进行设定。流表项状态可以和流表项清除判定条件对应,流表项状态是什么,则可以获取与流表项状态对应的流表项清除判定条件,从而确定是否需要清除流表项。
具体地,计算机设备在确定流表的流表项状态后,可以根据确定出的流表项状态,查询得到流表项状态所对应的流表项清除判定条件,并在满足流表项清除判定条件时,将待清除的流表项从流表中进行清除。例如,计算机设备可以预先针对各类流表项状态以及各类流表项状态各自对应的流表项清除判定条件,预先构建相应的条件特征库,计算机设备在获取流表项清除判定条件时,可以根据实际需要从条件特征库中查询得到。具体计算机设备可以确定流表项状态,根据流表项状态从预先构建的条件特征库中查询得到与流表项状态对应的流表项清除判定条件。在具体实现时,计算机设备确定的流表项状态为流表项的数目,则计算机设备可以根据流表项的数目,查询得到与流表项的数目对应的流表项清除判定条件,以确定是否需要对流表中的流表项进行删除。
本实施例中,计算机设备通过设定与流表项状态对应的流表项清除判定条件,在流表项状态确定满足流表项清除判定条件时,对流表项进行删除,可以释放流表资源,减小存储压力,在存储压力减少时,可以优化计算机设备的性能,从而可以提升流量数据处理效率。
在一个实施例中,流表项状态包括流表中包括的各个流表项各自的更新信息;当流表项状态确定满足流表项清除判定条件,从流表中确定待清除的流表项,包括:基于各个流表项各自的更新信息,确定流表中各个流表项各自未更新的持续时长;将流表中未更新的持续时长达到时长阈值的流表项,确定为流表中待清除的流表项。
其中,更新信息可以是指流表项中的数据流统计数据的更新情况,具体可以为在预设时间内,流表项中的数据流统计数据是否有进行更新,或者为流表项中的数据流统计数据上一次更新的时间与当前时间之间的时长,流表中每一个流表项均对应有相应的更新信息。更新信息与流表项的更新时间相关,相应的,流表项清除判定条件也可以是基于时间信息设定的条件,如可以为设置一个时长阈值,通过时长阈值来确定流表项是否需要被清除。
具体地,计算机设备可以确定流表项上一次进行数据流统计数据的更新时间,将上一次的更新时间与本次时间进行作差,确定流表项未更新的持续时长,在未更新的持续时长内,无新的数据包到达,且数据包字节长度为0,流表项数清除条件为时长阈值条件,计算机设备通过将未更新的持续时长与设定的时长阈值进行比较,若达到设定的时长阈值,则确定可以对该流表项进行清除。在一个实施例中,流表项1未更新的持续时长为2小时,流表项2未更新的持续时长为3小时,流表项数清除条件为时长阈值条件,时长阈值具体可以为2.5小时,计算机设备将流表项1未更新的持续时长和流表项2未更新的持续时长分别与设定的时长阈值进行比较,流表项2未更新的持续时长达到且超过了2.5小时,流表项1未更新的持续时长未达到2.5小时,因此,计算机设备可以将流表项2进行删除。
本实施例中,计算机设备基于流表项的更新信息,确定是否对流表项进行删除,流表项更新越频繁,表示其越活跃,相应的,其未更新的持续时长越短,从而可以删除掉长时间不更新的流表项,释放流表项资源,使得新来的数据流才能够有资源创建流表项。
在一个实施例中,流表项状态包括流表中各个流表项的流表项总数目;当流表项状态确定满足流表项清除判定条件,从流表中确定待清除的流表项,包括:当流表项总数目达到清除数目阈值,根据流表中各个流表项各自更新时间的先后顺序,从流表中确定待清除的流表项。
其中,流表项总数目可以是指流表中流表项的个数,相应的,流表项清除判定条件也可以是基于流表项数目设定的条件,如可以为设置一个数目阈值,通过数目阈值来确定流表项是否需要被清除。
具体地,计算机设备确定出流表中流表项的个数,并获取流表项数清除条件,流表项数清除条件为数目阈值条件,通过将流表项的个数与设定的数目阈值进行比较,若达到设定的数目阈值,则确定可以对流表项进行清除,在删除时,可以选择对超出数目阈值的流表项全部删除,也可以选择部分删除,在选择部分删除时,可以结合流表项各自更新时间的先后顺序,将更新时间在前,即相对来说不活跃的流表项删除。在一个具体应用中,数目阈值条件中的数目阈值设定为450万,当计算机设备确定出流表中流表项的个数超过450万时,就触发进行删除,以维持流表中流表项的个数保持在450万以内。
本实施例中,计算机设备基于流表项的流表项总数目,确定是否对流表项进行删除,在流表项总数目超过设定的数目阈值时,结合流表中各个流表项各自更新时间的先后顺序对超出的流表项进行删除,从而可以及时的释放流表项资源,使得新来的数据流才能够有资源创建流表项。优化了计算机设备的性能,可以提升流量数据处理效率。
在一个实施例中,在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录,包括:在达到数据流的流日志生成周期的情况下,确定流量增量信息的统计时段;按照流日志格式化条件,根据流属性信息、流量增量信息以及统计时段生成格式化的流日志记录。
具体地,流日志生成周期是指设定的生成流日志记录的周期,在具体设定流日志生成周期时,可以根据用户对流量统计结果的分析需求、数据流的实际增长情况等进行设定,统计时段是指上次上报时间直至当前时刻的时段,若未上报过,则上次上报时间为0。流表项流日志格式化条件是指设定的用于如何生成格式化流日志的条件。例如,流日志生成周期可以以小时为单位进行设定,如每5个小时上报一次,每达到5小时,计算机设备确定出统计时段,即上次上报时间和当前时刻,根据流属性信息、流量增量信息以及统计时段生成格式化的流日志记录。
本实施例中,计算机设备在确定满足流日志生成周期的情况下,按照流日志格式化条件,结合流属性信息、流量增量信息以及统计时段生成格式化的流日志记录,高效的实现了数据流的流量情况统计。
在一个实施例中,基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量,包括:根据流属性信息的数量,确定网络节点传输的数据包所属数据流中传输的数据包数量;根据包属性信息确定网络节点传输的数据包的数据量大小;基于数据包数量和数据量大小,确定网络节点传输的数据包所属数据流中产生的数据增量。
具体地,对于每种流属性信息标识的数据流,数据量大小可以是指在该种数据流中传输的各个数据包的字节长度,流属性信息的数量与数据包的个数对应,存在有多少个流属性信息,则对应传输了多少个数据包,每一个数据包的包属性信息均记录有该数据包的数据包字节长度,因此,计算机设备可以统计流属性信息的个数,将流属性信息的个数确定为数据包的个数,以及统计每一个数据包的数据包字节长度,将每一个数据包的数据包字节长度的和,作为最终确定的数据量大小。计算机设备基于数据包的个数以及数据量大小,确定出数据增量。
本实施例中,计算机设备通过流属性信息和包属性信息,即可准确快速的确定出网络节点传输数据包产生的数据增量,提升了流量数据处理效率。
在一个实施例中,获取由网络节点发送的流量报文,包括:向网络节点发送业务流量获取请求;业务流量获取请求,用于指示网络节点确定传输的数据包所属数据流的流属性信息以及传输的数据包的包属性信息,并反馈根据流属性信息和包属性信息生成的流量报文;接收由网络节点反馈的流量报文。
其中,业务流量获取请求可以是指用于指示网络节点反馈流量报文的请求,业务流量获取请求可以是由计算机设备主动触发,例如,可以预先设定有触发时间点,每达到设定的触发时间点,计算机设备则可以向网络节点发送业务流量获取请求;又如,还可以设定触发时间间隔,在每一次达到设定的触发时间间隔时,计算机设备则可以向网络节点发送业务流量获取请求。当然,业务流量获取请求也可以为云上用户需要了解流量情况时,通过终端等电子设备向计算机设备发送业务流量获取指令,计算机设备基于业务流量获取指令,向网络节点发送业务流量获取请求。
具体地,计算机设备在达到设定的时间点时,如下午三点,向网络节点发送业务流量获取请求,网络节点收到业务流量获取请求时,可以解析待传输的数据包,得到数据包信息,并将数据包信息封装到标准的网络协议中,得到流量报文。网络节点在发送流量报文时,可以采用多种网络协议进行发送,网络协议具体可以包括TCP(Transmission ControlProtocol,传输控制协议)、SFlow(SampleFlow,基于报文采样的网络流量监测)等,即流量报文具体可以包括SFlow协议流量报文。
在具体实现时,网络节点针对待传输的数据包进行解析处理,提取得到数据包的五元组信息,并将五元组信息封装到标准的SFlow技术标准的协议流量报文当中,得到SFlow协议流量报文。计算机设备可以获取网络节点发送的SFlow协议流量报文,并进一步对SFlow协议流量报文进行解析。
本实施例中,计算机设备向网络节点发送业务流量获取请求,网络节点接收业务流量获取请求,并基于业务流量获取请求将数据包信息封装到标准的网络协议中,得到流量报文,发送至计算机设备。通过将协议流量报文直接发送到计算机设备处理解析,实现了高性能的收发报文工作,提升了流量数据处理效率。
在一个实施例中,传输的数据包所属数据流包括至少两条;流量数据处理方法还包括:根据至少两条数据流中各数据流在统计时段内各自的流日志记录,获得网络节点的节点流量记录;节点流量记录,用于描述网络节点在统计时段内通过至少两条数据流进行数据传输的流量统计结果。
其中,网络节点传输的数据包可以属于至少两条不同数据流,针对每条数据流可以分别针对生成流日志记录,根据各个数据流各自的流日志记录,可以得到网络节点的节点流量记录。节点流量记录可以记录有网络节点在统计时段内,通过各个数据流进行数据传输的流量统计结果,如可以记录有网络节点通过各个数据流传输的数据包数量、数据量大小等。
具体地,网络节点传输的数据包可以属于至少两条数据流,网络节点可以同时针对两条数据流发送流量报文,即计算机设备可以同时针对至少两条数据流进行流量统计,获得至少两条数据流对应的流日志记录。节点流量记录可以是对网络节点在统计时段内通过至少两条数据流进行数据传输的流量统计结果,计算机设备可以分别获取每一条数据流在统计时间段生成的流日志记录,并根据每一条数据流在统计时间段生成的流日志记录,确定节点流量记录。在具体实现时,在统计时段内,网络节点传输的数据包可以属于数据流1和数据流2,数据流1可以至少包括数据包1和数据包2,数据流2可以至少包括数据包3、数据包4以及数据包5;网络节点可以基于数据流1中的数据包1、数据包2以及数据流2中的数据包3、数据包4、数据包5生成流量报文并发送至计算机设备。计算机设备可以根据接收的流量报文中数据流1和数据流2各自的流属性信息,以及数据包1至数据包5各个数据包各自的包属性信息,针对数据流1,生成数据流1的流日志记录;针对数据流2,生成数据流2的流日志记录。进一步地,计算机设备可以根据数据流1的流日志记录以及数据流2的流日志记录,得到网络节点的节点流量记录,节点流量记录可以描述网络节点在统计时段内通过至少两条数据流进行数据传输的流量统计结果。
本实施例中,传输的数据包所属数据流包括至少两条,即通过同一个流量报文,计算机设备可同时针对多个数据流进行流量统计,得到每一个数据流的流日志记录,根据每一个数据流的流日志记录可以得到网络节点整体的节点流量记录,实现了对数据流的流量进行批量化的统计,提升了流量数据的处理效率。
在一个实施例中,流量数据处理方法还包括:将流日志记录写入到流日志缓存中;在满足上报触发条件的情况下,从流日志缓存中获取流日志记录;将获得的流日志记录发送到流日志存储器中。
其中,流日志缓存可以是指用于对流日志记录进行交换的缓冲区,共享内存缓存,流日志缓存可以为单体缓存、集群缓存、分布式缓存以及共享内存缓存等任意一种缓存,只要可以对生成的流日志记录进行交换即可。上报触发条件可以是指设定的对流日志进行上报的条件,上报触发条件可以是依据时间设定的条件,如当达到设定的时间点时,确定满足上报触发条件;也可以是当达到设定的时间间隔时,确定满足上报触发条件;上报触发条件还可以是根据流日志缓存的缓存容量设定的条件,如当流日志缓冲中存储的流日志记录的容量达到设定的容量阈值时,确定满足上报触发条件,具体在设置上报触发条件时,可以结合用户的实际需求等进行适应性设定。流日志存储器可以是指用于对流日志记录进行存储的存储实例,云上用户可以获取流日志存储器中的流日志记录,从而基于流日志记录,优化其业务部署架构及带宽分配方案。
具体地,计算机设备可以将生成的流日志记录写入到流日志缓存中,再将流日志记录写入到流日志缓存中时,计算机设备可以采用压缩算法对流日志记录进行压缩,得到压缩后的流日志记录。压缩算法可以为Lz4(Extremely Fast Compression algorithm,快速压缩算法)无损压缩算法,流日志缓存可以是指共享内存缓存,共享内存缓存具有快速读取的特点,因此,当计算机设备在确定满足上报触发条件的情况下,可以快速的从流日志缓存中获取流日志记录,并将获得的流日志记录发送到流日志存储器中。其中,上报触发条件为每天的上午九点以及下午三点完成一次流日志上报,因此,计算机设备在时间处于上午九点或者处于下午三点的时候,确定满足上报触发条件。
本实施例中,计算机设备对于生成的流日志记录,在确定满足上报触发条件的情况下,将获得的流日志记录发送到流日志存储器中,云上用户可以基于流日志存储器的流日志记录,了解到网络节点的流量具体情况,从而基于网络节点的流量具体情况,进行资源分配。
本申请还提供一种应用场景,该应用场景应用上述的流量数据处理方法。具体地,该流量数据处理方法在该应用场景的应用如下:
公有云上用户为了优化其业务部署架构及带宽分配方案,通常要求能够完整复现诸如其云上至云下IDC机房,云上不同区域之间的流量互通情况。此时,用户会要求公有云网关产品提供对应虚拟网关节点某段时间内,该客户流量1:1采样的完整流量数据。
对于云上网关而言,通常其上承载了多个虚拟网关实例,做1:1采样时会致使流量数据在网络流量大小及网络流规模都非常庞大,当前做流量获取上报的系统多为商用流量分析系统的一部分存在,类似系统包括Solarwind(网络安全管理软件产品)工具的NetFlowCollector(网络流量监测软件)、NETSCOUT(网络性能分析平台)的nGenius Collector(探针类型网络监测软件)以及Flowmon(流量指示器)的Flowmon Collector(基于流的网络监测工具)等。
上述类似商业流量收集系统,基于Linux(GNU/Linux,操作系统)内核传统协议栈实现流量收集方案性能无法满足要求。本申请中提供的流量数据处理方法,主要针对公有云场景,基于DPDK(Data Plan Development Kit,网络数据转发平面开发套件)开发实现,能够对接公有云数据存储,满足高性能、大规格要求的流量收集、处理、上报系统。
如图6所示,为本实施例中提供的具体使用场景如图6所示,当云上客户需要了解某云上网关节点的流量具体情况,获取详细流量数据时,可以通过网关节点将其转发业务流量的五元组信息封装到标准的SFlow技术标准的协议流量报文当中,得到SFlow协议流量报文,并将SFlow协议流量报文转发给高性能的流量收集上报系统做处理,流量收集上报系统基于接收到的SFlow协议流量报文记进行处理,收集到用户需要的流量统计数据,并将流量统计数据上报至用户的云端的存储实例进行存储,对于存储在云端中的流量统计数据,客户可以自行消费做分析等其他使用。其中,网关节点即为网络节点,流量统计数据又可以称为流日志记录,一条流日志记录是指在一段时间内,某条流的五元组、数据包的增量信息的组合,即流日志记录了某条流在一个时间段内的流量增量,通过收集某一段时间内的所有流日志记录,即可完整还原某一段时间内的流量情况。其中,五元组是指数据包的源IP地址、目的IP地址、源端口、目标端口以及传输层协议。另外为了存储流日志记录,开启此功能之前,云上用户可以预先在流量收集上报系统上配置存储实例,具体的,存储实例可以为CKAFKA(Cloud Kafka,云上的消息队列系统)存储实例,其为开源的消息队列系统,即可以在流量收集上报系统上配置CKAFKA存储实例。
其中,如图7所示,为流量收集上报系统的系统框架图,流量收集上报系统可以基于网络数据转发平台开发套件(DPDK)实现,可以由驱动系统softdog提供驱动服务,整个解决方案主体可以分为两大核心部分,第一部分完成SFlow协议流量报文处理、流量收集统计及流日志格式化等工作,由流量收集上报系统的核心模块NFC(Network Flow Collector,网络流量收集器模块)实现;第二部分完成格式化流日志数据的上报工作,由日志上报客户端(REPORT AGENT)完成。NFC与REPORT AGENT之间通过共享内存方式交互格式化流日志数据,做到功能解耦。
其中,流量收集上报系统可以包括远程过程配置单元、交互单元、流表释放单元、格式单元、共享内存、日志上报客户端、云端存储以及多个信息提取单元、多个环形缓冲队列、多个流量统计单元、多个流表。其中,远程过程配置单元是指grpc_conf,grpc_conf负责向外提供GRPC(Google Remote Process Call,远程过程调用)配置接口,可以从外接收配置信息confs,以完成相关流日志实例配置下发、监测设备状态数据获取等功能;交互单元是指nflocal,nflocal负责通过DPDK kni(Kernel NIC Interface,为用户态和内核(kernel)协议栈交互提供的一种机制)与操作系统内核交互,处理网络路由相关的协议报文。在接收方向上,nflocal可以获取内核处理器产生的待发送报文,并将待发送报文进行转发。nflocal通过设置硬件网卡队列规则,当接收到不属于流量报文所属指定协议的待处理报文时,将待处理报文导入到硬件网卡队列中,即将非SFlow的协议流量报文,图7中的其他数据包导入到指定的特殊队列,nflocal负责从特殊队列中接收这些协议报文,并将协议报文通过DPDK kni重新转发给内核处理器,给内核处理器处理。而对于发出方向,nflocal会负责从DPDK kni接收内核想要发往外界的协议报文,并从实际物理网卡转发出去。
进一步地,信息提取单元为nfrecv,流量收集上报系统中可以包括多个nfrecv模块,从而可以实现对SFlow协议流量报文的批量化处理,提高SFlow协议流量报文的处理效率。流量统计单元为nfstatistics,nfstatistics负责hash流表,即flow table(流表)的管理,同时还负责流表项新建,以及流统计数据更新,流表项可以认为是hash流表的值,其包含此条流的统计信息。流表释放单元是指nfevict,nfevict负责hash流表周期性迭代,清除不活跃流表项,即可以删除超时流(timeout flow evict),并在需要时根据设定算法淘汰部分流表项,释放回收流表项资源。格式化单元为nfreport,nfreport负责流日志的格式化工作,nfreport周期性迭代nfstatistics管理的hash流表中的流表项;日志上报客户端是指REPORT AGENT负责从共享内存缓存当中读取格式化的流日志记录,并执行上报。
在具体进行流量统计的过程中,nfrecv负责从网卡接收、解析SFlow数据包组装得到的SFlow协议流量报文(SFlow pkts),并从SFlow协议流量报文提取流关键信息(flowtuple),nfrecv在提取流关键信息时,可以通过对SFlow协议流量报文的收包、解析,以提取流五元组信息、VRF信息等作为流关键信息。其中,五元组信息可以用来标识流,VRF信息可以用来标识云上用户。nfrecv会将提取到的流关键信息交由后续的流量统计单元处理,即交由nfstatistcis模块处理,nfstatistics负责hash流表,即flow table(流表)的管理,同时还负责流表项新建,以及流统计数据更新,流表项可以认为是hash流表的值,其包含此条流的统计信息。
其中,nfrecv在提取流关键信息之后,可以通过无锁环形缓冲队列(ring buffer)将流关键信息交付下一级nfstatistics模块处理,流关键信息包含五元组信息、VRF信息等,又可以称为tuple_info(元组信息)。其中,nfrecv在从多个无锁环形队列中选取无锁环形队列时,可以根据元组信息,使用CRC32(Cyclic Redundancy Check,循环冗余验证)算法计算一个hash(哈希)值,通过hash值对无锁环形队列的个数取余,从多个无锁环形队列中选择一个无锁环形队列将tuple_info入队到选定的无锁环形队列中。
其次,流量信息的统计处理由nfstatistics负责,每个nfstatistics负责处理一个无锁环形队列并管理一张hash流表,nfstatistics会不断从无锁环形缓冲队列当中取出待处理的tuple_info,并从hash流表当中查询tuple_info对应的流表项是否存在。如未找到对应流表项,则将tuple_info作为key,流表项作为data,在增加流表项的报文数与字节数后插入到hash流表当中;如找到对应流表项,则直接更新此流表项对应数据统计单元的统计结果,更新统计数据的操作是指增加对应流在此轮上报周期内的报文个数及报文字节数,其中,此处的报文个数可以是指数据包的个数,报文字节数可以是指数据包的数据包字节长度。
进一步的,格式化单元nfreport负责流日志的格式化工作,nfreport周期性迭代nfstatistics管理的hash流表中的流表项,根据上次上报时间检测到当前时刻为止流表项是否已经达到设定生成流日志记录的期限,若未上报过,则上次上报时间为0,如达到生成期限,则将当前流表项对应流的五元组信息,VRF信息,流量增量信息,起始、结束时间信息等生成一条格式化流日志记录,写入到共享内存当中,由后续部件处理。
最后,日志上报客户端,即REPORT AGENT负责上报流日志记录,REPORT AGENT读取共享内存中的格式化流日志记录,批量执行Lz4无损压缩,调取CKAFKA API(应用程序接口)上报接口上报云端存储,即上传到CKAFKA中。
另外为了满足高规格的目标,设计了流表项资源的回收机制,通过流表释放单元nfevict实现,只有及时的清除流表中的流表项,释放流表项资源,新来流才能够有资源创建流表项。nfevict负责从nfstatistics管理的hash流表中删除并销毁流表项。nfevict会通过两种方式从流表中删除流表项,释放流表项资源。一方面,对于设定时间内时间都没有增量,如对应数据流无新的数据包到达,数据包的个数及数据包字节增量为0,说明这条数据流在一段时间内都无增量的流表项会被认为是不活跃且超时流表项,需要从流表中删除销毁;另一方面,当流表项条目数达到设定淘汰水位线时,会触发主动的LRU(LeastRecently Used,最近最少使用)淘汰销毁机制,从流表中淘汰掉部分流表项,即将部分流表项从流表中删除并销毁以释放流表项空间。具体操作如图8所示,某一张流表中所有流表项会前后相连组成双向链表,链表尾部至链表头部的元素按最新访问到最久访问顺序排列,当链表中某一条流表项得到更新时,系统会将其移动至链表尾部,代表其为最新访问的流表项。当执行淘汰销毁时,则从双向链表的链表头至链表尾部方向顺序遍历执行淘汰,优先淘汰那些长时间未得到更新的流量就达到了LRU原则淘汰流表项的目标。
本申请中涉及到的流量数据处理方法涉及到的流表管理模式能够管理大规模的流信息,实现高规格的目标。实现高规格的方法主要有两部分来完成。首先是可扩展的流表管理模式,nfrecv会基于解析提取得到tuple_info,使用CRC32算法计算得到一个hash值,并根据hash值对无锁环形缓冲队列个数取余,为tuple_info选择一个无锁环形缓冲队列,插入其中,等待后续环节处理。不同的无锁环形缓冲队列由不同的nfstatistics负责处理,并且每个nfstatistics只需要负责管理一张单独的流表,这样同一个流信息就只会交给同一个下级nfstatistics处理,只占用同一份流表项资源。通过这种方式就实现了可扩展的流表管理,流表越多,能够承载的流条目数也越多。
本申请中涉及到的流量数据处理方法,可以实现流量信息收集统计高性能的第二点在于基于DPDK的高性能SFlow协议流量报文收包、解析工作。nfrecv通过DPDK开发套件,直接接管高性能网卡进行收发报文工作。其将SFlow协议流量报文从网卡直接接收到用户空间处理解析,达到了bypass kernel(内核旁路)的目标,从而去除了系统调用、内存拷贝、中断处理等带来的处理开销,实现了兆级别的高性能报文收包、解析能力。
本申请中提供的流量数据处理方法,之所以能够达到高性能、大规格的目标,主要做了几部分工作,分别是流水线式的流收集、统计、上报工作模式。其中,通过收集、统计处理、格式化、压缩上报的流水线化处理模式,可以实现高性能的流量信息收集统计。每一级完成特定的功能,每一级单一功能部分做批量化处理,各级工作互不干扰,提升了整体的处理性能。
在一个具体应用中,使用本申请中提供的流量数据处理方法,在云上场景中,实现了多租户虚拟网关实例的流量数据高性能收集上报的目标,单台设备支持的流规模可达2亿条。如表1所示,在单流表新建流表项性能的场景下,本申请中提供的流量数据处理方法的流量统计速率可达1.87M/s,而传统的流量收集方案只在300K/s左右;针对单流表更新流表项性能的场景,本申请中提供的流量数据处理方法的流量统计速率可达3.02M/s,单张流表更新流表项统计数据极限性能。
表1
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的流量数据处理方法的流量数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个流量数据处理装置实施例中的具体限定可以参见上文中对于流量数据处理方法的限定,在此不再赘述。
在一个实施例中,如图9所示,提供了一种流量数据处理装置900,包括:信息提取模块902、增量信息确定模块904、数据更新模块906和流日志生成模块908,其中:
信息提取模块902,用于获取由网络节点发送的流量报文,并从流量报文中提取通过网络节点传输的数据包所属数据流的流属性信息以及数据包的包属性信息。
增量信息确定模块904,用于基于流属性信息和包属性信息,确定网络节点传输的数据包所属数据流中产生的数据增量。
数据更新模块906,用于通过数据增量,对流属性信息关联的数据流统计数据进行更新,得到数据流的流量增量信息。
流日志生成模块908,用于在满足数据流的流日志生成条件的情况下,根据流属性信息、流量增量信息以及流量增量信息的统计时段生成流日志记录;流日志记录用于描述数据流在统计时段内的流量统计结果。
在一个实施例中,数据更新模块906,还用于确定流属性信息关联的流表;在流表中确定流属性信息对应的流表项;通过数据增量对流表项中的数据流统计数据进行更新,并根据更新后的数据流统计数据得到数据流的流量增量信息。
在一个实施例中,流属性信息包括根据数据流的流标识信息和用户标识信息得到的元组信息;流量数据处理装置还包括流表确定模块;流表确定模块,用于基于流标识信息和元组信息进行映射,得到映射数据;从多个候选缓存队列中确定与映射数据相匹配的目标缓存队列;将目标缓存队列关联的流表确定为与流属性信息关联的流表。
在一个实施例中,流量数据处理装置还包括信息写入模块;信息写入模块,用于将元组信息写入到目标缓存队列中;流表确定模块,还用于从目标缓存队列中获取待处理的元组信息;在流表中查询与元组信息相对应的流表项。
在一个实施例中,数据更新模块906,还用于当流表中不存在流属性信息对应的流表项,在流表中新建流属性信息对应的流表项;将数据增量作为流属性信息对应的流表项中的数据流统计数据;根据流属性信息对应的流表项中的数据流统计数据,得到数据流的流量增量信息。
在一个实施例中,流量数据处理装置还包括流表项清除模块;流表项清除模块,用于确定流表的流表项状态;当流表项状态确定满足流表项清除判定条件,从流表中确定待清除的流表项;将待清除的流表项从流表中进行清除。
在一个实施例中,流表项状态包括流表中包括的各个流表项各自的更新信息;流表项清除模块,还用于基于各个流表项各自的更新信息,确定流表中各个流表项各自未更新的持续时长;将流表中未更新的持续时长达到时长阈值的流表项,确定为流表中待清除的流表项。
在一个实施例中,流表项状态包括流表中各个流表项的流表项总数目;流表项清除模块,还用于当流表项总数目达到清除数目阈值,根据流表中各个流表项各自更新时间的先后顺序,从流表中确定待清除的流表项。
在一个实施例中,流日志生成模块908,用于在达到数据流的流日志生成周期的情况下,确定流量增量信息的统计时段;按照流日志格式化条件,根据流属性信息、流量增量信息以及统计时段生成格式化的流日志记录。
在一个实施例中,增量信息确定模块904,还用于根据流属性信息的数量,确定网络节点传输的数据包所属数据流中的数据包数量;根据包属性信息确定网络节点传输的数据包的数据量大小;基于数据包数量和数据量大小,确定网络节点传输的数据包所属数据流中产生的数据增量。
在一个实施例中,信息提取模块902包括流量报文获取模块;流量报文获取模块,用于向网络节点发送业务流量获取请求;业务流量获取请求,用于指示网络节点确定传输的数据包所属数据流的流属性信息以及传输的数据包的包属性信息,并反馈根据流属性信息和包属性信息生成的流量报文;接收由网络节点反馈的流量报文。
在一个实施例中,流量数据处理装置还包括日志存储模块;日志存储模块,用于将流日志记录写入到流日志缓存中;在满足上报触发条件的情况下,从流日志缓存中获取流日志记录;将获得的流日志记录发送到流日志存储器中。
上述流量数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器或终端,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储流量数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种流量数据处理方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (27)

1.一种流量数据处理方法,其特征在于,所述方法包括:
向网络节点发送业务流量获取请求;所述业务流量获取请求,用于指示所述网络节点确定传输的数据包所属数据流的流属性信息以及传输的数据包的包属性信息,并反馈根据所述流属性信息和所述包属性信息生成的流量报文;
接收由所述网络节点反馈的所述流量报文,并从所述流量报文中提取通过所述网络节点传输的数据包所属数据流的流属性信息以及所述数据包的包属性信息;
基于所述流属性信息和所述包属性信息,确定所述网络节点传输的数据包所属数据流中产生的数据增量;
通过所述数据增量,对所述流属性信息关联的数据流统计数据进行更新,得到所述数据流的流量增量信息;
在满足所述数据流的流日志生成条件的情况下,根据所述流属性信息、所述流量增量信息以及所述流量增量信息的统计时段生成流日志记录;所述流日志记录用于描述所述数据流在所述统计时段内的流量统计结果。
2.根据权利要求1所述的方法,其特征在于,所述通过所述数据增量,对所述流属性信息关联的数据流统计数据进行更新,得到所述数据流的流量增量信息,包括:
确定所述流属性信息关联的流表;
在所述流表中确定所述流属性信息对应的流表项;
通过所述数据增量对所述流表项中的数据流统计数据进行更新,并根据更新后的数据流统计数据得到所述数据流的流量增量信息。
3.根据权利要求2所述的方法,其特征在于,所述流属性信息包括根据所述数据流的流标识信息和用户标识信息得到的元组信息;所述确定所述流属性信息关联的流表,包括:
基于所述元组信息进行映射,得到映射数据;
从多个候选缓存队列中确定与所述映射数据相匹配的目标缓存队列;
将所述目标缓存队列关联的流表确定为与所述流属性信息关联的流表。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述元组信息写入到所述目标缓存队列中;
所述在所述流表中确定所述流属性信息对应的流表项,包括:
从所述目标缓存队列中获取待处理的所述元组信息;
在所述流表中查询与所述元组信息相对应的流表项。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述流表中不存在所述流属性信息对应的流表项,在所述流表中新建所述流属性信息对应的流表项;
将所述数据增量作为所述流属性信息对应的流表项中的数据流统计数据;
根据所述流属性信息对应的流表项中的数据流统计数据,得到所述数据流的流量增量信息。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
确定所述流表的流表项状态;
当所述流表项状态确定满足流表项清除判定条件,从所述流表中确定待清除的流表项;
将所述待清除的流表项从所述流表中进行清除。
7.根据权利要求6所述的方法,其特征在于,所述流表项状态包括所述流表中包括的各个流表项各自的更新信息;所述当所述流表项状态确定满足流表项清除判定条件,从所述流表中确定待清除的流表项,包括:
基于所述各个流表项各自的更新信息,确定所述流表中各个流表项各自未更新的持续时长;
将所述流表中未更新的持续时长达到时长阈值的流表项,确定为所述流表中待清除的流表项。
8.根据权利要求6所述的方法,其特征在于,所述流表项状态包括所述流表中各个流表项的流表项总数目;所述当所述流表项状态确定满足流表项清除判定条件,从所述流表中确定待清除的流表项,包括:
当所述流表项总数目达到清除数目阈值,根据所述流表中各个流表项各自更新时间的先后顺序,从所述流表中确定待清除的流表项。
9.根据权利要求1所述的方法,其特征在于,所述在满足所述数据流的流日志生成条件的情况下,根据所述流属性信息、所述流量增量信息以及所述流量增量信息的统计时段生成流日志记录,包括:
在达到所述数据流的流日志生成周期的情况下,确定所述流量增量信息的统计时段;
按照流日志格式化条件,根据所述流属性信息、所述流量增量信息以及所述统计时段生成格式化的流日志记录。
10.根据权利要求1所述的方法,其特征在于,所述基于所述流属性信息和所述包属性信息,确定所述网络节点传输的数据包所属数据流中产生的数据增量,包括:
根据所述流属性信息的数量,确定所述网络节点传输的数据包所属数据流中传输的数据包数量;
根据所述包属性信息确定所述网络节点传输的数据包的数据量大小;
基于所述数据包数量和所述数据量大小,确定所述网络节点传输的数据包所属数据流中产生的数据增量。
11.根据权利要求1至10任意一项所述的方法,其特征在于,所述流量报文是由所述网络节点将所述流属性信息和所述包属性信息封装至预先配置的网络协议中生成的。
12.根据权利要求1至10任意一项所述的方法,其特征在于,所述传输的数据包所属数据流包括至少两条;所述方法还包括:
根据至少两条数据流中各数据流在所述统计时段内各自的流日志记录,获得所述网络节点的节点流量记录;
所述节点流量记录,用于描述所述网络节点在所述统计时段内通过所述至少两条数据流进行数据传输的流量统计结果。
13.根据权利要求1至10任意一项所述的方法,其特征在于,所述方法还包括:
将所述流日志记录写入到流日志缓存中;
在满足上报触发条件的情况下,从所述流日志缓存中获取所述流日志记录;
将获得的所述流日志记录发送到流日志存储器中。
14.一种流量数据处理装置,其特征在于,所述装置包括:
信息提取模块,用于向网络节点发送业务流量获取请求;所述业务流量获取请求,用于指示所述网络节点确定传输的数据包所属数据流的流属性信息以及传输的数据包的包属性信息,并反馈根据所述流属性信息和所述包属性信息生成的流量报文,接收由所述网络节点反馈的所述流量报文,并从所述流量报文中提取通过所述网络节点传输的数据包所属数据流的流属性信息以及所述数据包的包属性信息;
增量信息确定模块,用于基于所述流属性信息和所述包属性信息,确定所述网络节点传输的数据包所属数据流中产生的数据增量;
数据更新模块,用于通过所述数据增量,对所述流属性信息关联的数据流统计数据进行更新,得到所述数据流的流量增量信息;
流日志生成模块,用于在满足所述数据流的流日志生成条件的情况下,根据所述流属性信息、所述流量增量信息以及所述流量增量信息的统计时段生成流日志记录;所述流日志记录用于描述所述数据流在所述统计时段内的流量统计结果。
15.根据权利要求14所述的装置,其特征在于,
所述数据更新模块,还用于确定所述流属性信息关联的流表;在所述流表中确定所述流属性信息对应的流表项;通过所述数据增量对所述流表项中的数据流统计数据进行更新,并根据更新后的数据流统计数据得到所述数据流的流量增量信息。
16.根据权利要求15所述的装置,其特征在于,所述流属性信息包括根据所述数据流的流标识信息和用户标识信息得到的元组信息;所述装置还包括流表确定模块;
所述流表确定模块,用于基于流标识信息和元组信息进行映射,得到映射数据;从多个候选缓存队列中确定与映射数据相匹配的目标缓存队列;将目标缓存队列关联的流表确定为与流属性信息关联的流表。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括信息写入模块;
所述信息写入模块,用于将所述元组信息写入到所述目标缓存队列中;
所述数据更新模块,还用于从所述目标缓存队列中获取待处理的所述元组信息;在所述流表中查询与所述元组信息相对应的流表项。
18.根据权利要求14所述的装置,其特征在于,
所述数据更新模块,还用于当所述流表中不存在所述流属性信息对应的流表项,在所述流表中新建所述流属性信息对应的流表项;将所述数据增量作为所述流属性信息对应的流表项中的数据流统计数据;根据所述流属性信息对应的流表项中的数据流统计数据,得到所述数据流的流量增量信息。
19.根据权利要求14所述的装置,其特征在于,所述装置还包括流表项清除模块;
所述流表项清除模块,用于确定所述流表的流表项状态;当所述流表项状态确定满足流表项清除判定条件,从所述流表中确定待清除的流表项;将所述待清除的流表项从所述流表中进行清除。
20.根据权利要求19所述的装置,其特征在于,所述流表项状态包括所述流表中包括的各个流表项各自的更新信息;
所述流表项清除模块,还用于基于所述各个流表项各自的更新信息,确定所述流表中各个流表项各自未更新的持续时长;将所述流表中未更新的持续时长达到时长阈值的流表项,确定为所述流表中待清除的流表项。
21.根据权利要求19所述的装置,其特征在于,所述流表项状态包括所述流表中各个流表项的流表项总数目;
所述流表项清除模块,还用于当所述流表项总数目达到清除数目阈值,根据所述流表中各个流表项各自更新时间的先后顺序,从所述流表中确定待清除的流表项。
22.根据权利要求14所述的装置,其特征在于,
所述流日志生成模块,还用于在达到所述数据流的流日志生成周期的情况下,确定所述流量增量信息的统计时段;按照流日志格式化条件,根据所述流属性信息、所述流量增量信息以及所述统计时段生成格式化的流日志记录。
23.根据权利要求14所述的装置,其特征在于,
所述增量信息确定模块,还用于根据所述流属性信息的数量,确定所述网络节点传输的数据包所属数据流中传输的数据包数量;根据所述包属性信息确定所述网络节点传输的数据包的数据量大小;基于所述数据包数量和所述数据量大小,确定所述网络节点传输的数据包所属数据流中产生的数据增量。
24.根据权利要求14-23任意一项所述的装置,其特征在于,所述传输的数据包所属数据流包括至少两条;
所述流日志生成模块,还用于根据至少两条数据流中各数据流在所述统计时段内各自的流日志记录,获得所述网络节点的节点流量记录;所述节点流量记录,用于描述所述网络节点在所述统计时段内通过所述至少两条数据流进行数据传输的流量统计结果。
25.根据权利要求14-23任意一项所述的装置,其特征在于,所述流量数据处理装置还包括日志存储模块;
所述日志存储模块,用于将所述流日志记录写入到流日志缓存中;在满足上报触发条件的情况下,从所述流日志缓存中获取所述流日志记录;将获得的所述流日志记录发送到流日志存储器中。
26.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述的方法的步骤。
27.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
CN202310646708.3A 2023-06-02 2023-06-02 流量数据处理方法、装置、计算机设备和存储介质 Active CN116389322B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310646708.3A CN116389322B (zh) 2023-06-02 2023-06-02 流量数据处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310646708.3A CN116389322B (zh) 2023-06-02 2023-06-02 流量数据处理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN116389322A CN116389322A (zh) 2023-07-04
CN116389322B true CN116389322B (zh) 2023-08-15

Family

ID=86971433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310646708.3A Active CN116389322B (zh) 2023-06-02 2023-06-02 流量数据处理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116389322B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321088A (zh) * 2008-07-18 2008-12-10 北京星网锐捷网络技术有限公司 一种统计ip数据流信息的方法及装置
CN101335686A (zh) * 2007-06-27 2008-12-31 上海博达数据通信有限公司 一种在网络设备上进行数据流量分析管理的方法
CN108400909A (zh) * 2018-02-12 2018-08-14 腾讯科技(深圳)有限公司 一种流量统计方法、装置、终端设备和存储介质
CN108512720A (zh) * 2018-03-02 2018-09-07 杭州迪普科技股份有限公司 一种网站流量的统计方法及装置
CN109361573A (zh) * 2018-12-13 2019-02-19 武汉市硅丰科技发展有限责任公司 流量日志分析方法、系统及计算机可读存储介质
CN109714266A (zh) * 2018-12-25 2019-05-03 迈普通信技术股份有限公司 一种数据处理方法及网络设备
CN112822077A (zh) * 2021-02-23 2021-05-18 西安交通大学 数据中心网络中全网流量测量方法、系统及丢包检测方法
CN113595822A (zh) * 2021-07-26 2021-11-02 北京恒光信息技术股份有限公司 一种数据包管理方法、系统和装置
CN114679265A (zh) * 2022-03-22 2022-06-28 奇安信科技集团股份有限公司 流量获取方法、装置、电子设备和存储介质
CN115396345A (zh) * 2021-05-25 2022-11-25 华为云计算技术有限公司 流量测量方法、装置及相关设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10164846B2 (en) * 2014-03-28 2018-12-25 Fortinet, Inc. Network flow analysis

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101335686A (zh) * 2007-06-27 2008-12-31 上海博达数据通信有限公司 一种在网络设备上进行数据流量分析管理的方法
CN101321088A (zh) * 2008-07-18 2008-12-10 北京星网锐捷网络技术有限公司 一种统计ip数据流信息的方法及装置
CN108400909A (zh) * 2018-02-12 2018-08-14 腾讯科技(深圳)有限公司 一种流量统计方法、装置、终端设备和存储介质
CN108512720A (zh) * 2018-03-02 2018-09-07 杭州迪普科技股份有限公司 一种网站流量的统计方法及装置
CN109361573A (zh) * 2018-12-13 2019-02-19 武汉市硅丰科技发展有限责任公司 流量日志分析方法、系统及计算机可读存储介质
CN109714266A (zh) * 2018-12-25 2019-05-03 迈普通信技术股份有限公司 一种数据处理方法及网络设备
CN112822077A (zh) * 2021-02-23 2021-05-18 西安交通大学 数据中心网络中全网流量测量方法、系统及丢包检测方法
CN115396345A (zh) * 2021-05-25 2022-11-25 华为云计算技术有限公司 流量测量方法、装置及相关设备
CN113595822A (zh) * 2021-07-26 2021-11-02 北京恒光信息技术股份有限公司 一种数据包管理方法、系统和装置
CN114679265A (zh) * 2022-03-22 2022-06-28 奇安信科技集团股份有限公司 流量获取方法、装置、电子设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向大规模网络流量数据的实时汇聚查询关键技术研究;郭庆;朱一凡;谢莹莹;张榆;陈小兵;;小型微型计算机系统(06);全文 *

Also Published As

Publication number Publication date
CN116389322A (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
US11392416B2 (en) Automated reconfiguration of real time data stream processing
US11681678B2 (en) Fast circular database
US10122788B2 (en) Managed function execution for processing data streams in real time
US9009139B2 (en) Query pipeline
US9717011B2 (en) Event management in telecommunications networks
JP2020529171A (ja) トラフィック測定方法、デバイス、およびシステム
US11429566B2 (en) Approach for a controllable trade-off between cost and availability of indexed data in a cloud log aggregation solution such as splunk or sumo
CN110235098A (zh) 存储系统访问方法及装置
US20210224144A1 (en) Implicit push data transfer
CN108228322B (zh) 一种分布式链路跟踪、分析方法及服务器、全局调度器
CN110808854B (zh) 报文调度方法、装置及交换机
US20180248977A1 (en) Selective distribution of messages in a publish-subscribe system
CN113672629A (zh) 一种分布式网络流量检索方法和装置
Sourlas et al. Caching in content-based publish/subscribe systems
CN116389322B (zh) 流量数据处理方法、装置、计算机设备和存储介质
US9398434B2 (en) Method and system for zone analysis in a charging system
US10027754B2 (en) Large data set updating for network usage records
WO2023160276A1 (zh) 一种数据处理方法、装置、计算机设备以及可读存储介质
WO2012167657A1 (zh) 一种实现事件转发的方法及通用信息模型cim服务器
WO2022152230A1 (zh) 信息流识别方法、网络芯片及网络设备
Langlet et al. Direct Telemetry Access
CN112181929A (zh) 云管平台日志处理方法、装置、电子装置和存储介质
CN115988574B (zh) 基于流表的数据处理方法、系统、设备和存储介质
US11874749B1 (en) Streaming slices out of order for efficient backup
Huang et al. Ceds: Center-edge collaborative data service for mobile iot data management

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