CN113965492A - 一种数据流统计方法及装置 - Google Patents

一种数据流统计方法及装置 Download PDF

Info

Publication number
CN113965492A
CN113965492A CN202010636270.7A CN202010636270A CN113965492A CN 113965492 A CN113965492 A CN 113965492A CN 202010636270 A CN202010636270 A CN 202010636270A CN 113965492 A CN113965492 A CN 113965492A
Authority
CN
China
Prior art keywords
data
data stream
information
flow
value
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
Application number
CN202010636270.7A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Southwest University of Science and Technology
Original Assignee
Huawei Technologies Co Ltd
Southwest University of Science and Technology
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 Huawei Technologies Co Ltd, Southwest University of Science and Technology filed Critical Huawei Technologies Co Ltd
Priority to CN202010636270.7A priority Critical patent/CN113965492A/zh
Publication of CN113965492A publication Critical patent/CN113965492A/zh
Pending legal-status Critical Current

Links

Images

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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Abstract

本申请提供一种数据流统计方法及装置。该方法包括:当侦测到第一数据报文,且第一数据结构中没有空间记录所述第一数据报文所属的第一数据流的信息时,确定所述第一数据结构中记录的与所述第一数据流具有相同哈希值的数据流中是否有超过一预设时间,信息没有被更新的第二数据流。避免第二数据流长期持续占用第一数据结构的资源,结合时间维度对数据流进行统计,提高了数据流统计的准确性。

Description

一种数据流统计方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据流统计方法及装置。
背景技术
如今,互联网已经成为人们日常生活中不可或缺的一部分,互联网流量增长速度飞快,截至2018年,每年全球的互联网流量已达1.6ZB。随着网络流量的飞速增长,对网络进行有效管理变得愈发困难。因此,网络测量作为监控、认知和掌握网络行为的重要方式,引起了研究人员的广泛关注,使得网络测量成为近几年的研究热点。
在网络测量所包含的众多技术中,大象流检测属于一项关键性技术,在拥塞控制、网络容量规划、网络异常检测、故障排除和流量工程等方面有着广泛的应用。所谓大象流一般是指流大小超过给定阈值的流,或者是在测量间隔中占总网络流量百分比达到特定值的流。例如,DDos攻击之类的大规模网络异常事件往往可被视为大象流,有效的大象流检测方法有助于网络异常的及时发现。
目前,学界为平衡大象流检测过程中,哈希冲突和内存开销的问题,提出了结合哈希表和sketch的数据流统计方法,哈希表和sketch中可以存储数据流的频次信息,将频次较高的数据流的信息存储于哈希表中,将频次较低的数据流的信息存储于sketch中,并基于上述方法得到的统计结果实现大象流检测。
上述数据流统计方法,可以记录数据流在一段时间内的出现频次,但是忽略了数据流本身的时间动态特征,例如,哈希表中可能存在信息很久未更新的数据流。又例如,数据流的传输随着时间变化,可能存在前期为大象流,后期非大象流的数据流。然而,当前的统计方法并不能将这些数据流挑选出来,以至于后续进行的大象流检测的准确性较低。
发明内容
本申请提供一种数据流统计方法及装置,用于提高数据流统计的准确度。
第一方面,本申请提供一种数据流统计方法,该方法可以由网络设备(例如,路由器、交互机、服务器、主机)实现,也可以由网络设备的部件实现,如由终端设备中的处理装置、电路、芯片等部件实现。该方法包括:当侦测到第一数据报文,且第一数据结构中没有空间记录第一数据报文所属的第一数据流的信息时,确定第一数据结构中记录的与第一数据流具有相同哈希值的数据流中是否有超过一预设时间,信息没有被更新的第二数据流;如果有,则用第一数据流的信息替换第二数据流的信息。
通过上述设计,在进行数据流统计时,可以从时间维度对数据流进行筛选,将第一数据结构中与第一数据流具有相同哈希值的数据流中超过预设时间,信息没有被更新的第二数据流筛选出来,使用第一数据流的信息替换第二数据流的信息,避免第二数据流长期持续占用第一数据结构的资源,该统计方式兼顾了数据流的时间动态特性,结合时间维度对数据流进行统计,提高了数据流统计的准确性。
在一种可能的实现方法中,在用第一数据流的信息替换第二数据流的信息之前,还包括:将第二数据流的信息记录至第二数据结构。
通过上述设计,一方面,为了避免漏检或者误检,可以将第一数据结构中筛选出的第二数据流的信息记录至第二数据结构中,保证数据流统计的完整性,平衡第一数据结构的内存消耗与多个具有相同哈希值的数据流的哈希冲突问题。另一方面,将第一数据结构中的第二数据流转移至第二数据结构存储,以此将更新时间间隔较短的数据流存储于第一数据结构中,将更新时间间隔较长的数据流存储于第二数据结构,便于后续的数据流查询操作,能够提高查询效率。
在一种可能的实现方法中,如果没有第二数据流,则将第一数据流的信息记录至第二数据结构。
在一种可能的实现方法中,确定第一数据结构中记录的与第一数据流具有相同哈希值的数据流中是否有超过一预设时间,信息没有被更新的第二数据流,还包括:确定与第一数据结构中记录的与第一数据流具有相同哈希值的数据流中信息更新次数最小的数据流;判断更新次数是否小于第一预设值;如果小于,则判断数据流的更新时间间隔是否超过预设时间,如果有,则确定数据流为第二数据流。
通过上述设计,结合时间和更新次数两个维度结合筛选出第一数据结构中的第二数据流,避免长时间未更新的数据流,例如,更新时间间隔超过预设时间的数据流,或更新频次较低的数据流,例如,更新次数低于第一预设值的数据流,长期持续占用第一数据结构的资源,筛选精度更高,数据流统计的精度也越高。
在一种可能的实现方法中,确定第一数据结构中记录的与第一数据流具有相同哈希值的数据流中是否有超过一预设时间,信息没有被更新的第二数据流,还包括:确定与第一数据结构中记录的与第一数据流具有相同哈希值的数据流中信息更新次数最小的数据流;判断更新次数是否小于第一预设值;如果小于,则确定第二数据结构中记录的第一数据流的更新次数是否大于第二预设值;如果大于,判断数据流的更新时间是否超过预设时间,如果有,则确定数据流为第二数据流。
通过上述设计,在判断第一数据结构中的数据流是否需要被替换时,还可以从第一数据结构中冲突位置(即第一数据结构中记录的与第一数据流具有相同哈希值的数据流的存储空间)的数据流与第一数据流两方面进行结合判断,若第一数据流为一条大流,例如,第二数据结构中记录的第一数据流的更新次数大于第二预设值,则继续判断冲突位置的数据流是否需要被替换,如果第一数据流为小流,则不需要将冲突位置的数据流替换,避免频繁对第一数据结构和第二数据结构进行插入操作和删除操作。
在一种可能的实现方法中,第一数据结构用于存储数据流的信息,该信息包括但不限于:键值、更新次数和序列值;其中,键值,为数据流的标识;更新次数,为属于该数据流的数据报文的出现次数;序列值,为该数据流最新更新的数据报文的编号;该序列值可以是按照传输顺序,为数据报文赋予的编号;或序列值是该最新更新的数据报文的信息输入至第一数据结构的当前时间戳。
通过上述设计,序列值可以表征数据流的最新更新时间,从而可以根据实时侦测到的新的第一数据报文的序列值,检测第一数据结构中的数据流的更新时间间隔,以此筛选出更新时间间隔较长的第二数据流,避免第二数据流长期持续占用第一数据结构的资源,提高了数据流统计的准确性。
在一种可能的实现方法中,第二数据结构为二位数组,二维数组的纵向包括M个哈希函数,横向包括每个哈希函数的N个哈希值;将第一数据流的信息记录至所述第二数据结构,包括:分别计算第一数据流的键值输入M个哈希函数对应的哈希值,将每个哈希值记录的次数加1。
通过上述设计,由于不同的数据流可能具有相同的哈希值,因此,通过多个哈希函数,例如M个,分别对同一数据流的键值进行哈希操作,得到对应的哈希值,再讲每个哈希值记录的次数加1,在查询该数据流的更新次数时,可以返回该M个哈希值对应的计数值中的最小值,以此尽可能减少哈希冲突对数据流的更新次数的统计误差,提高数据流统计的准确性。
在一种可能的实现方法中,将第二数据流的信息记录至所述第二数据结构,包括:获取第一数据结构中记录的第二数据流的更新次数;分别计算第一数据流的键值输入M个哈希函数对应的哈希值,将每个哈希值记录的次数加该第二数据流的更新次数。
第二方面,本申请实施例还提供了一种设备,该设备包括多个功能单元,这些功能单元可以执行第一方面的方法中各个步骤所执行的功能。这些功能单元可以通过硬件实现,也可以通过软件实现。在一个可能的设计中,该设备包括侦测单元以及处理单元。关于该设备实现的有益效果,请参考第一方面的描述,在此不再赘述。
第三方面,本申请实施例还提供了一种设备,该设备包括处理器和存储器,所述存储器中存储有程序指令,所述处理器运行所述存储器中的程序指令以实现第一方面所提供的方法。关于该设备实现的有益效果,请参考第一方面的描述,在此不再赘述。
第四方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所提供的方法。
第五方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行上述第一方面所提供的方法。
附图说明
图1为本申请实施例提供的一种可能的网络系统的架构示意图;
图2为本申请实施例提供的一种数据流统计方法所对应的流程示意图;
图3为一种哈希表的数据结构示意图;
图4为一种sketch的数组结构示意图;
图5为一种sketch的示意图;
图6为另一种sketch的示意图;
图7为本申请实施例提供的一种大象流查询方法所对应的流程示意图;
图8为本申请实施例提供的一种数据流统计设备的结构示意图;
图9为本申请实施例提供的一种数据流统计设备的结构示意图。
具体实施方式
下面将结合附图对本申请的实施方式进行详细描述。
下面将结合附图对本申请的实施方式进行详细描述。
首先对本发明实施例可以应用到的系统架构和一些基本概念进行描述,以便本领域技术人员理解。
请参考图1,为本申请实施例可以应用到的一种网络系统的架构示意图。如图1所示,该网络系统包括数据网络(data network,DN),服务器、网关、交换机、主机设备。
其中,DN为用于提供传输数据的网络,例如,Internet网络等。其中,Internet网络还包括应用服务器,该应用服务器可以是服务提供商的服务器,或者该应用服务器可以是存储服务器或计算服务器等。
应理解,不同的应用服务器可以具有不同的网络地址,不同的服务器可以与同一网关连接。其中,网关是指可以连接两个不同的网络的设备,示例性地,网关可以是路由器或交换机等网络设备。同样的,在用户侧,该网关下还可以连接多个不同网络(段)的设备,例如,交换机1的网络协议(internet protocol,IP)地址为192.168.0.253,网关地址为192.168.0.253;交换机2的IP地址为192.168.1.253,网关地址为192.168.1.254;交换机1和交换机2可以连接至该网关,交换机1和交换机2下可分别连接一个或多个主机设备。在该网络系统中,主机设备101或主机设备102可经由交换机1、网关访问应用服务器1和/或应用服务器2;主机设备103或主机设备104可经由交换机2、网关访问应用服务器1和/或应用服务器2;以主机设备101和应用服务器1为例,主机设备101向应用服务器1发送的数据报文的传输路径为:主机设备101→交换机1→网关→应用服务器1。应用服务器1也可以将反馈的数据报文发送至主机设备101,对应的,反馈的数据报文的传输路径为:应用服务器1→网关→交换机1→主机设备101。
应理解,通过交换机1和交换机2,交换机1和交换机2下的主机设备还可以实现互相访问,本申请对该网络系统下的数据传输过程不作限定。
应理解,图1所示的网络系统仅为举例,该网络系统中还可以包括更多或者更少的网络设备,例如,还可以包括存储服务器、计算服务器,在图1中未画出。本申请对该网络系统中包括的主机设备、交换机、网关和应用服务器等网络设备的数量不做限定。
本申请实施例提供的数据流统计方法,可以部署于图1所示的网络系统中,具体的,可以部署在该网络系统中的任一网络设备中,例如:应用服务器、网关、交换机、主机设备中。
另外,图1所示的网络系统所包含的网络设备可以是独立的设备,也可以是支持实现对应功能的模块(或装置),该模块可以是实体模块,也可以是虚拟模块,例如,在虚拟网络(例如VPC)中,网关为虚拟网关,交换机可以是虚拟交换机,本申请实施例对此不作限定。例如,该数据流统计功能可以部署在虚拟机中。又例如,当部署于实体模块时,该数据流统计功能可以部署在处理器上,或者物理网卡上,例如,主机设备通过物理网卡发送和/或接收数据报文,本申请实施例提供的数据流统计方法还可以部署于该主机的物理网卡上。本申请实施例对此不作具体限定。
示例性地,当部署于网关时,在进行数据流统计时,可以以一个服务器作为对象,对该服务器接收和/或发送的所有数据流进行统计,也可以以该网关为对象,对该网关接收和/或发送的所有数据流进行统计。再示例性地,当部署于交换机时,在进行数据流统计时,可以以该交换机为对象,对该交换机接收和/或发送的所有数据流进行统计,也可以以该交换机所形成的局域网中的任一主机设备作为对象,对该主机设备接收和/或发送的所有数据流进行统计,本申请实施例对此不作限定。
如下对数据流进行具体解释说明。需要说明的是,这些解释是为了便于本领域技术人员理解,并不是对本申请所要求的保护范围构成限定。
数据流,是一种网络流量数据,包括一个或多个数据报文。数据报文的包头部分包含五元组。其中,五元组,通常是指源IP地址、源端口、目的IP地址、目的端口和传输层协议(如传输控制协议(transfer control protocol,TCP))。五元组可以区分不同的数据流。例如,192.168.1.1 10000 TCP 121.14.88.76 80就构成了一个五元组,表示的是:一个源IP地址为192.168.1.1的通信装置通过端口10000,利用TCP协议,和目的IP地址为121.14.88.76,端口为80的通信装置进行连接。
属于同一数据流的数据报文具有相同的键值,键值可以是五元组的部分或全部,还可以包括五元组之外的信息,例如局域网(Media Access Control Address,MAC)地址,本申请实施例对此不作限定。
在传输时,数据流可以以数据报文为粒度进行传输,示例性地,同一数据流所包含的一个或多个数据报文可以在不同时间传输。实际上,为了公平性,不同数据流的数据报文可以是交替传输的。例如,在同一网络系统中,用户A请求优酷业务,用户B请求微信业务,则优酷业务的数据流所包含的数据报文和微信业务的数据流所包含的数据报文可以是穿插传输的。
目前,在网络测量所包含的众多技术中,大象流检测属于一项关键性技术,在拥塞控制、网络容量规划、网络异常检测、故障排除和流量工程等方面有着广泛的应用。所谓大象流一般是指出现频次,即属于同一数据流的数据报文的出现次数,达到特定阈值的数据流。例如,DDos攻击之类的大规模网络异常事件往往可被视为大象流,有效的大象流检测方法便有助于网络异常的及时发现。
在相关技术提供的大象流检测方法中,结合了哈希表和sketch,基于哈希表和sketch对数据流进行统计,基于统计结果实现大象流检测。在传统的数据流统计方法中,核心思想是在哈希表的空间满了之后,通过统计数据流的出现频次,将出现频次相对高的数据流,即可能是大象流的数据流和出现频次相对低的数据流,即小流分开记录。具体的,哈希表用于存储数据流的键值和计数值(即数据流的出现频次值),其中,数据流在哈希表中的位置,由数据流的键值的哈希值确定。sketch则用于存储具有相同哈希值的数据流的出现频次,由于不同数据流可能具有相同的哈希值,即哈希冲突,因此,sketch中记录的出现频次也可以称为冲突次数。
在进行数据流统计时,每当侦测到一个新的数据报文,则对数据报文的键值进行哈希运算,根据运算得到的哈希值确定在哈希表的位置,如果该位置冲突,即该位置已用于存储其他数据流的信息,则继续根据该新的数据报文的哈希值,确定sketch中该哈希值处记录的冲突次数值,若冲突次数值与哈希表中冲突位置记录的计数值的比值达到设定阈值,则说明哈希表中该冲突位置的数据流为小流,侦测到的新的数据报文所属的数据流为大象流,将该大象流的信息替换冲突位置处小流的信息,将被替换的小流的信息记录至sketch中。
相关技术提供的数据流统计方法,在判断哈希表中冲突位置的数据流是否需要替换时,仅根据数据流的计算值来判断该数据流为大象流还是小流,评判标准单一,忽略了数据流本身的时间动态特征,例如,数据流的传输随着时间动态变化,可能存在前期为大象流,后期非大象流的数据流,然而当前的检测方式并不能将这些数据流挑选出来,因此,基于相关技术中的数据流统计方法进行的大象流检测准确性较低。并且这些流将长期占用哈希表资源,当有新的数据流到来时,可能与这些流发生冲突,则可能影响新的数据流的检测,还会增加许多计算开销。
鉴于此,本申请实施例提供了一种数据流统计方法,该统计方法中,结合数据流的时间动态特性,通过时间维度判断第一数据结构中的数据流是否需要被替换,从而提高了数据流统计的准确性。
下面参考图2,为本申请提供的一种数据流统计方法所对应的流程示意图。该方法包括以下步骤:
步骤201:网络流量数据采集。
采集实时或离线的网络流量数据,即采集侦测到的任一第一数据报文。
步骤202:确定第一数据报文的键值和序列值。
如前所述,第一数据报文的键值可以是数据流的五元组,针对侦测到的任一第一数据报文,对该第一数据报文进行解析,获取该第一数据报文的头部信息,该头部信息包含数据流的五元组,该五元组可以作为第一数据报文的键值。
下面对序列值进行详细介绍。
序列值,用于表征该数据流的最新更新时间。
示例性地,序列值可以是按照数据报文的传输顺序赋予的编号,例如,设置一个计数起点,第一个侦测到的数据报文的序列值为该计数起点,接下来侦测到的数据报文的序列值依次加1,例如,计数起点为1,那么依次侦测到的数据报文,其序列值依次为1、2、3…、n,n为正整数。举例来说,假设按顺序侦测到的数据报文分别为报文A、报文B、报文C、报文D,…,其中,报文A和报文C属于流1,报文B属于流2,报文D属于流3。若报文A的序列值为1,则报文B的序列值为2,报文C的序列值为3,报文D的序列值为4,依次类推。
再示例性地,数据报文的序列值还可以是时间信息,例如,将数据报文所属的数据流的信息记录至第一数据结构时,将该数据报文的序列值赋值为数据报文进入哈希表的当前时间戳,该当前时间戳代表数据流的处理时刻。
当然上述序列值的赋值方式仅为举例,本申请实施例对此不作具体限定。
步骤203:对第一数据报文的键值进行哈希运算,根据哈希值确定第一数据报文所属的数据流在第一数据结构中的位置。
本申请实施例可应用的第一数据结构有多种,为方便说明,本申请以第一数据结构、第二数据结构分别为哈希表例进行说明。如下首先对哈希表进行解释说明。
哈希表(Hash table)也称为散列表,是根据关键码值(Key value,简称键值)直接进行访问的数据结构。也就是说,通过把键值映射到表中的一个位置来访问记录,以加快查找的速度。这种映射函数叫做哈希函数(也称为散列函数),存放记录的数组叫做哈希表(也称为散列表)。
请参考图3,为本申请实施例提供的一种哈希表的数据结构,如图3所示,哈希表由B个桶(bucket)组成,每个桶包含D个槽(slot,可简称为槽),其中,B和D均为正整数。
应理解,哈希表中槽的设置关系到测量的精度,一般来说,槽数量越多,则可以有效减少具有相同哈希值的数据流导致的哈希冲突,检测结果也越精确,但是槽数量越多,也意味着需要更多的内存消耗,但是数据流统计一般是依附于交换机、路由器等网络设备,这些网络设备上的内存是极为珍贵的资源,如果采用这种增大内存的方法来提高准确度会导致内存不足,进而影响原网络设备的功能。因此需要设置一个合适的值,以实现内存消耗和准确性的平衡,优选地,本申请实施例提供一种槽的数量值D为4。
本申请实施例中,第一数据结构为哈希表时,第一数据结构中用于记录数据流的信息的空间,即为哈希表中的槽。其中,每个槽可用于存储一个数据流的信息。也就是说,一个桶可以记录D个数据流的信息。具体的,数据流的信息包括但不限于:键值、计数值和序列值。其中,序列值为该数据流最新侦测到的数据报文的序列值,其中,每当侦测到该数据流的一个数据报文,则该数据流的计数值加1,对于数据流的键值在前面已经介绍过,在此不再赘述。
本申请实施例中信息更新次数可以为计数值,下文将以信息更新次数为计数值为例进行说明。
具体的,步骤203,可以是确定第一数据报文在哈希表中的位置,并尝试将第一数据报文所属的数据流的信息更新至哈希表中。下面以一个第一数据报文为例,对该第一数据报文所属的数据流的信息更新至哈希表的过程进行介绍:
给定一个键值为f的第一数据报文,将其哈希到桶H[h(f)%B],其中,h(f)表示哈希函数h(.)对f进行计算得到的哈希值;%表示取余运算;B表示哈希表的桶数量。
步骤204:判断第一数据报文的键值f与桶H中任一槽记录的键值是否匹配;如果是,则执行步骤205,否则,执行步骤206。
步骤205:更新匹配的槽中存储的数据流的信息。
若桶H中有与键值f匹配的槽,即哈希表已记录了键值为f的数据流的信息,那么可以直接更新该数据流的信息。假设,匹配的槽为桶H的slot1,则更新该数据流的过程包括:将slot1中的计数值加1,序列值更新为该第一数据报文的序列值。
步骤206,判断桶H中是否包含空闲的槽,如果是,则执行步骤207,否则,执行步骤208。
步骤207:选择空闲的槽中的一个槽,将第一数据报文所属的数据流的信息记录至该选中的槽中。
其中,空闲的槽即为空白的槽,即还未被使用的槽。若桶H中没有记录键值为f的数据流的信息,则可以将该数据流的信息存储于一个空闲的槽中,即桶H中没有数据流被移除。示例性地,可以随机选择一个空闲的槽,也可以按照顺序选择桶H中已使用的槽之后首个空闲的槽。例如,假设桶H中仅slot4为空闲的,则可以第一数据报文所属的数据流的信息记录至slot4中,示例性地,假设第一数据报文的序列值为100,则可以将(f,1,100)插入该slot4中,即设置该slot4中的键值为f,计数值为1,当前序列值为100。
步骤208:判断该桶H中是否有满足替换条件的槽。如果是,则执行步骤209,否则执行步骤210。
桶H中没有键值与f匹配的槽,且没有空闲的槽,则说明该桶H已满,可以通过本申请实施例的替换条件筛选中桶H中的小流,如果有满足替换条件的数据流,则确定该数据流为小流,应该被第一数据报文所属的数据流替换掉。
下文为了方便描述,将第一数据报文所属的数据流记为第一数据流,将桶H中满足替换条件的数据流记为第二数据流。
本申请实施例提供三种判断是否有满足替换条件的槽的方式,下面将分别介绍:
第一种:
确定桶H各槽中计数值最小的数据流,即同一哈希表中,与第一数据流具有相同哈希值的数据流中信息更新次数最小的数据流;判断该数据流的未被更新的时间是否超过预设时间;如果是,则确定该数据流为第二数据流,该第二数据流所在的槽即为满足替换条件的槽;否则,则确定桶H中不存在满足替换条件的槽。在判断该数据流未被更新的时间是否超过预设时间的方式为将所述第一数据流的序列值与所述第二数据流的序列值相比较,如果两者差值大于预设值,则认为所述第二数据流未被更新的时间间隔超过预设时间。
举例来说,假设槽H中计数值最小的数据流的序列值为80,第一数据报文的序列值为100,则该数据流的更新时间间隔为20。又例如:槽H中计数值最小的数据流的序列值为6h10分30秒,第一数据报文的序列值为6h30分40秒,则该数据流的更新时间间隔为20分10秒。
需要说明的是,上述序列值仅为举例,例如,序列值为时间戳时,该时间戳可以精确到毫秒、微妙等,本申请实施例对序列值不作具体限定。
第二种:
确定桶H各槽中计数值最小的数据流;判断该数据流的计数值是否小于第一预设值;如果小于,则判断该数据流的更新时间间隔是否超过预设时间;如果是,则确定该数据流为第二数据流,该第二数据流所在的槽即为满足替换条件的槽;否则,确定桶H中不存在满足替换条件的槽。
第三种:
确定桶H各槽中计数值最小的数据流;判断该数据流的计数值是否小于第一预设值;如果小于,则确定第一数据流的键值在第二数据结构中的查询值,并判断该查询值是否大于第二预设值;如果大于,则继续判断该数据流的更新时间间隔是否超过预设时间,如果是,则确定该数据流为第二数据流,该第二数据流所在的槽即为满足替换条件的槽;否则,确定桶H中不存在满足替换条件的槽。
本申请实施例可应用的第二数据结构有多种,下面以第二数据结构为sketch例,对本申请的实施方案进行描述,首先,对sketch的数据结构进行说明。
sketch,是一种基于哈希的数据结构,通过设置哈希函数,将具有相同哈希值的数据存入数组中相同的位置。其中,哈希,就是把任意长度的输入(又叫做预映射,pre-image),通过哈希函数,变换成固定长度的输出,该输出就是哈希值。这种转换是一种压缩映射,也就是,哈希值的空间通常远小于输入的空间。另外,不同的输入可能会哈希成相同的输出,而不可能从哈希值来唯一的确定输入值。
示例性地,sketch数组结构一般为二维数组,该二维数组中的每个位置分别为一个计数器,初始化每个位置的计数值为0,对于一个新来的元素,基于各行的哈希函数将该元素哈希到该行的对应位置,该位置的计数值加1,该位置的计数值即为该元素的出现频次。
本申请实施例可以应用的sktetch数组结构有多种,下面以Count-Min Sketch为例,对sketch数组结构进行介绍。请参见图4,为Count-Min Sketch的数组结构示意图,如图4所示,sketch数组结构由M行N列的二维数组组成,该二维数组的纵向包括M个哈希函数,横向包括每个哈希函数的N个哈希值。即sketch中每一行分别对应一种哈希函数,每一行的横向分别包括该行对应的哈希函数的N个哈希值,每个哈希值的位置分别为一个计数器。
本申请实施例中,sketch的应用包括但不限于:通过插入操作将待更新的数据报文记录至sketch,以及给定数据流的键值,通过查询操作确定该数据流的键值在sketch中的查询值。下面分别进行说明:
1)shetch的插入操作
对于待更新的数据报文,该sketch中M个相互独立的哈希函数将该数据流的键值分别映射到该二维数组每一行的相应位置,然后,该相应位置的计数值加1。
举例来说,假设图4中该M个相互独立的哈希函数分别为h1(.)、h2(.)、…hm(.),对于待更新的数据报文,假设其键值为f,将该数据报文的键值f,通过sktech的各行对应的哈希函数分别哈希到行的相应位置,具体的,第一行的位置为N1[h1(f)%N],第二行的位置为N2[h2(f)%N],第三行的位置为N3[h3(f)%N],依次类推,第M行的位置为Nm[hm(f)%N]。其中,其中,h(f)表示哈希函数h(.)对f进行计算得到的哈希值;%表示取余运算;N为每一行包含的哈希值的个数。
假设N1为3,N2为2,N3为1,…,Nm为4,请参见图4,则第一行第3列处的计数值加1,在第二行第2列处的计数值加1,第三行第1列处的计数值加1,同理,第M行第4列的计数值加1。
继续,再给定键值为p的数据报文,将该数据报文更新至sketch中的过程包括:通过h1()、h2()、…hm()分别将键值p哈希到各行的相应位置。具体的,第一行的相应位置为N1'[h1(p)%N];第二行的相应位置为N2'[h2(p)%N];第三行的相应位置为N3'[h3(p)%N];…;第M行的相应位置为Nm'[hm(p)%N]。
假设N1'为2,N2为2,N3为3,…,Nm为5,请参见图5,为将键值p的数据报文更新至sketch的示意图,在图5所示的sketch中,第一行第2列处的计数值加1,在第二行第2列处的计数值加1,第三行第3列处的计数值加1,同理,第M行第4列的计数值加1。
每当侦测到一个数据报文需要记录至sketch中时,则分别通过上述方式更新至sketch中。需要说明的是,上述插入方式,是针对不需要从哈希表中移除的数据流,若对于一个从哈希表中移出的数据流,将该数据流的信息记录至sketch时,仍通过上述方式确定各行对应的哈希值后,不同的是,需要在该哈希值的计数值加上该哈希表中记录的该被移出的数据流的计数值,下文将会进行详细说明。
2)sketch的查询操作
由于不同键值可能会映射到同一位置,即为哈希冲突,因此,通过M个相互独立的哈希函数分别记录该数据流的计数值,在查询该数据流在sketch中的计数值时,可以返回该数据流的键值映射到各行相应位置处的计数值中的最小值,作为该数据流的计数值,以此减少哈希冲突导致的计数误差,提高测量结果的准确度。
举例来说,以图6所示的sketch为例,假设图6中该M个相互独立的哈希函数分别为h1()、h2()、…h4()。
假设第一数据流的键值为t,通过h1()、h2()、…h4()分别将键值t哈希到各行的相应位置,具体的,第一行的相应位置为N1"[h1(t)%4];第二行的相应位置为N2"[h2(t)%4];第三行的相应位置为N3"[h3(t)%4];第4行的相应位置为N4"[hm(t)%4]。
假设N1"为3,N2"为2,N3"为1,N4"为5,请参见图6,第一行的查询值为第一行第3列处的计数值为20,第二行的查询值为第二行第2列处的计数值为18,第三行的查询值为第三行第1列处的计数值为10,第四行的查询值为第四行第5列处的计数值为15。返回该4个计数值中的最小值作为该数据流的计数值,即该数据流的计数值为10。
需要说明的是,上述哈希表中各槽存储的数据流的信息仅为举例,例如,slot中还可以存储数据流发现时间(即第一个数据报文的序列值)、数据流是否被移除过哈希表的标志等,对应的,替换条件也可以针对槽中存储的新的信息来确定,本申请实施例对此不作具体限定。
步骤209:如果有满足替换条件的槽,则使用第一数据流的信息替换哈希表中第二数据流的信息。
具体的,将桶H中第二数据流的信息所在的槽的信息清除,将第一数据流的信息记录至该清空的槽中。前文已介绍了将第一数据流的信息记录至哈希表的槽中的方式,在此不再重复赘述。
可选的,将被替换的第二数据流的信息记录至sketch中。即将哈希表中移出的第二数据流记录至sketch中,即基于第二数据流的信息对sketch作插入操作,下面以图4所示的sketch为例,对被移出的第二数据流在sketch中的插入操作进行介绍:首先,获取哈希表(桶H)中记录的第二数据流的键值和计数值;通过sketch中M个相互独立的哈希函数将第二数据流的键值分别映射到该二维数组每一行的相应位置,然后,该相应位置的计数值加上该第二数据流的计数值。以sketch的一行为例,假设,桶H中记录的该第二数据流的计数值为25,该第二数据流的键值映射到sketch中第一行的第三列,则第一行的第三列的计数值加上该第二数据流的计数值25。
另外,若第一数据流为已在sketch中记录的数据流,则将第一数据流记录至哈希表时,还需要将sketch中的第一数据流移出,即对sketch作删除操作。其中,sketch中移出第一数据流的删除操作进行介绍:首先,确定sketch中记录的第一数据流的计数值,即第一数据流的键值映射到各行的相应位置的计数值中的最小值;各行的相应位置的计数值减去该计数值。
步骤210:如果没有满足替换条件的槽,则将第一数据流的信息记录至sketch。
即,以图4为例,具体的,根据sketch中M个相互独立的哈希函数将该第一数据流的键值分别映射到该二维数组每一行的相应位置,然后,每一行的相应位置的计数值加1。具体执行步骤,请参见上文相关介绍,此处不再赘述。
基于上述方法流程分别对侦测到的任一数据报文进行统计,后续,可以基于该统计结果实现大象流查询。
下面示例性列举几种查询方式,示例1,基于预设周期,对哈希表中存储的各数据流进行查询,确定大象流。示例2,给定待查询的数据流,查询该数据流是否为大象流。
示例性地,在进行大象流查询时,可以给定一个阈值,记为第三预设值,当哈希表中记录的数据流的计数值大于该第三预设值时,确定该数据流为大象流。
接下来以示例2为例,对大象流查询方法进行详细介绍,请参考图7,为大象流查询方法所对应的流程示意图。
步骤701:对于给定数据流(待查询流),基于预设哈希函数对该给定数据流的键值进行哈希运算,根据运算结果确定在哈希表中对应的桶。
步骤702:判断该给定数据流的键值与该确定的桶中的slot记录的键值是否匹配;如果是,则执行步骤703,否则,执行步骤704。
步骤703:判断该匹配的slot中存储的该给定数据流的第一计数值是否大于第三预设值,如果是,则执行步骤707,否则执行步骤706。
步骤704:判断该桶是否已满,如果是,则执行步骤705,否则,执行步骤706。
可以这样理解,若该桶中不存在与该给定数据流的键值相匹配的slot,则说明该哈希表中不存在该给定数据流,一种情况为,该给定数据流存储于sketch中;另一种可能的情况为,哈希表和sketch中均未记录该数据流。因此,若桶中未记录该数据流,且该桶已满,则该给定数据流可能存储于sketch中,若桶中未记录该数据流,且该桶未满,则说明哈希表和sketch中均未记录该数据流,也即为一条新的数据流,则该数据流可认为是小流。
步骤705:查询sketch中该给定数据流的第二计数值,判断该第二计数值是否大于第三预设值,如果是,则执行步骤707,否则执行步骤706。
步骤706:输出查询结果1,指示该给定数据流为小流。
步骤707:输出查询结果2,指示该给定数据流为大象流。
需要说明的是,该第三预设值与上文的第二预设值可以相同,也可以不同,本申请实施例对此不作限定。
基于与方法实施例同一发明构思,本申请实施例还提供了一种设备,用于执行上述方法实施例中执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图8所示,该设备包括侦测单元801以及处理单元802。
侦测单元801,用于侦测第一数据报文;
处理单元802,用于当侦测单元侦测到第一数据报文,且第一数据结构中没有空间记录第一数据报文所属的第一数据流的信息时,处理单元,用于确定第一数据结构中记录的与第一数据流具有相同哈希值的数据流中是否有超过一预设时间,信息没有被更新的第二数据流;如果有,则用第一数据流的信息替换第二数据流的信息。
在一种可能的实施方式中,在用第一数据流的信息替换第二数据流的信息之前,处理单元802具体还用于:将第二数据流的信息记录至第二数据结构。
在一种可能的实施方式中,如果没有第二数据流,处理单元802具体还用于:则将第一数据流的信息记录至第二数据结构。
在一种可能的实施方式中,处理单元802还用于:确定与第一数据结构中记录的与第一数据流具有相同哈希值的数据流中信息更新次数最小的数据流;判断更新次数是否小于第一预设值;如果小于,则判断数据流的更新时间间隔是否超过预设时间,如果有,则确定数据流为第二数据流。
在一种可能的实施方式中,处理单元802还用于:确定与第一数据结构中记录的与第一数据流具有相同哈希值的数据流中信息更新次数最小的数据流;判断更新次数是否小于第一预设值;如果小于,则确定第二数据结构中记录的第一数据流的更新次数是否大于第二预设值;如果大于,判断数据流的更新时间是否超过预设时间,如果有,则确定数据流为第二数据流。
在一种可能的实施方式中,第一数据结构用于存储数据流的信息,该信息包括但不限于:键值、更新次数和序列值;其中,键值,为数据流的标识;更新次数,为属于该数据流的数据报文的出现次数;序列值,为该数据流最新更新的数据报文的编号;该序列值可以是按照传输顺序,为数据报文赋予的编号;或序列值是该最新更新的数据报文的信息输入至第一数据结构的当前时间戳。
在一种可能的实施方式中,第二数据结构为二位数组,二维数组的纵向包括M个哈希函数,横向包括每个哈希函数的N个哈希值;
将第一数据流的信息记录至第二数据结构时,处理单元802具体用于:分别计算第一数据流的键值输入M个哈希函数对应的哈希值,将每个哈希值记录的次数加1。
在一种可能的实施方式中,将第二数据流的信息记录至第二数据结构,处理单元802具体用于:获取第一数据结构中记录的第二数据流的更新次数;分别计算第一数据流的键值输入M个哈希函数对应的哈希值,将每个哈希值记录的次数加该第二数据流的更新次数。
与上述构思相同,如图9所示,本申请提供一种设备900,设备900可应用于上述图1所示场景中的任一网络设备上,执行如图2所示的方法中执行主体执行的步骤。
设备900可包括处理器901和存储器902。进一步的,该装置还可包括通信接口904,该通信接口可为收发器,或者该通信接口可为网卡。进一步的,该设备900还可包括总线系统903。
其中,处理器901、存储器902和通信接口904可通过总线系统903相连,该存储器902可用存储指令,该处理器901可用于执行该存储器902存储的指令,以控制通信接口904接收或发送信号,完成上述图2所示方法中执行主体的步骤。
其中,存储器902可以集成在处理器901中,也可以是与处理器901不同的物理实体。
作为一种实现方式,通信接口904的功能可以考虑通过收发电路或收发的专用芯片实现。处理器901可以考虑通过专用处理芯片、处理电路、处理器或通用芯片实现。
作为另一种实现方式,可以考虑使用计算机的方式,来实现本申请实施例提供的第一计算节点或第一计算节点的功能。即将实现处理器901和通信接口904功能的程序代码存储在存储器902中,通用处理器可通过执行存储器中的代码来实现处理器901和通信接口904的功能。
该设备900所涉及的与本申请提供的技术方案相关的概念、解释和详细说明以及其他步骤,可参见前述方法或其它实施例中关于这些内容的描述,此处不作赘述。
在本申请的一示例中,所述设备900可用于执行上述图2所示流程中,执行主体的步骤。比如,通信接口904可以接收侦测第一数据报文;处理器901可以响应通信接口904侦测到的第一数据报文,且在第一数据结构中没有空间记录所述第一数据报文所属的第一数据流的信息时,确定第一数据结构中记录的与第一数据流具有相同哈希值的数据流中是否有超过一预设时间,信息没有被更新的第二数据流;如果有,则用第一数据流的信息替换第二数据流的信息。
关于处理器901和通信接口904的介绍,可参见上述图2所示流程的介绍,在此不再赘述。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现上述任意一个或多个实施例提供的方法。该计算机存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
基于以上实施例,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品中包括计算机指令,当所述计算机指令被计算机执行时,使得所述计算机执行上述任意一个或多个实施例提供的方法。
基于以上实施例,本申请实施例还提供了一种芯片,该芯片包括处理器,用于实现上述任意一个或多个实施例所涉及的功能,例如获取或处理上述方法中所涉及的信息或者消息。可选地,该芯片还包括存储器,该存储器,用于存储处理器所执行的程序指令和数据。该芯片,也可以包含芯片和其他分立器件。
应理解,在本申请实施例中,处理器可以是中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、分立硬件组件等,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。
该总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
本领域普通技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围,也表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”、“任意一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个、种),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。“多个”是指两个或两个以上,其它量词与之类似。此外,对于单数形式“a”,“an”和“the”出现的元素(element),除非上下文另有明确规定,否则其不意味着“一个或仅一个”,而是意味着“一个或多于一个”。例如,“a device”意味着对一个或多个这样的device。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。

Claims (14)

1.一种数据流统计方法,其特征在于,所述方法包括:
当侦测到第一数据报文,且第一数据结构中没有空间记录所述第一数据报文所属的第一数据流的信息时,确定所述第一数据结构中记录的与所述第一数据流具有相同哈希值的数据流中是否有超过一预设时间信息没有被更新的第二数据流;
如果有,则用所述第一数据流的信息替换所述第二数据流的信息。
2.如权利要求1所述的方法,其特征在于,在所述用所述第一数据流的信息替换所述第二数据流的信息之前,还包括:
将所述第二数据流的信息记录至第二数据结构。
3.如权利要求1或2所述的方法,其特征在于,如果没有,则将所述第一数据流的信息记录至第二数据结构。
4.如权利要求1-3任一项所述的方法,其特征在于,所述确定所述第一数据结构中记录的与所述第一数据流具有相同哈希值的数据流中是否有超过一预设时间,信息没有被更新的第二数据流,还包括:
确定与所述第一数据结构中记录的与所述第一数据流具有相同哈希值的数据流中信息更新次数最小的数据流;
判断所述更新次数是否小于第一预设值;
如果小于,则判断所述数据流的更新时间间隔是否超过所述预设时间,如果有,则确定所述数据流为第二数据流。
5.如权利要求1-3任一项所述的方法,其特征在于,所述确定所述第一数据结构中记录的与所述第一数据流具有相同哈希值的数据流中是否有超过一预设时间,信息没有被更新的第二数据流,还包括:
确定与所述第一数据结构中记录的与所述第一数据流具有相同哈希值的数据流中信息更新次数最小的数据流;
判断所述更新次数是否小于第一预设值;
如果小于,则确定第二数据结构中记录的所述第一数据流的更新次数是否大于第二预设值;
如果大于,判断所述更新次数最小的数据流的更新时间是否超过所述预设时间,如果有,则确定所述更新次数最小的数据流为第二数据流。
6.如权利要求3所述的方法,其特征在于,所述第二数据结构为二位数组,所述二维数组的纵向包括M个哈希函数,横向包括每个哈希函数的N个哈希值,所述将所述第一数据流的信息记录至所述第二数据结构,包括:
分别计算所述第一数据流的键值输入所述M个哈希函数对应的哈希值,将每个哈希值记录的次数加1。
7.一种设备,其特征在于,该设备包括侦测单元、处理单元:
所述侦测单元,用于侦测第一数据报文;
当所述侦测单元侦测到第一数据报文,且第一数据结构中没有空间记录所述第一数据报文所属的第一数据流的信息时,所述处理单元,用于确定所述第一数据结构中记录的与所述第一数据流具有相同哈希值的数据流中是否有超过一预设时间,信息没有被更新的第二数据流;如果有,则用所述第一数据流的信息替换所述第二数据流的信息。
8.如权利要求7所述的设备,其特征在于,在所述用所述第一数据流的信息替换所述第二数据流的信息之前,所述处理单元具体还用于:将所述第二数据流的信息记录至第二数据结构。
9.如权利要求7或8所述的设备,其特征在于,如果没有所述第二数据流,所述处理单元具体还用于:则将所述第一数据流的信息记录至第二数据结构。
10.如权利要求7-9任一项所述的设备,其特征在于,所述处理单元还用于:
确定与所述第一数据结构中记录的与所述第一数据流具有相同哈希值的数据流中信息更新次数最小的数据流;判断所述更新次数是否小于第一预设值;如果小于,则判断所述数据流的更新时间间隔是否超过所述预设时间,如果有,则确定所述数据流为第二数据流。
11.如权利要求7-9任一项所述的设备,其特征在于,所述处理单元还用于:
确定与所述第一数据结构中记录的与所述第一数据流具有相同哈希值的数据流中信息更新次数最小的数据流;判断所述更新次数是否小于第一预设值;如果小于,则确定第二数据结构中记录的所述第一数据流的更新次数是否大于第二预设值;如果大于,判断所述数据流的更新时间是否超过所述预设时间,如果有,则确定所述数据流为第二数据流。
12.如权利要求9所述的设备,其特征在于,所述第二数据结构为二位数组,所述二维数组的纵向包括M个哈希函数,横向包括每个哈希函数的N个哈希值;
将所述第一数据流的信息记录至第二数据结构时,所述处理器具体用于:
分别计算所述第一数据流的键值输入所述M个哈希函数对应的哈希值,将每个哈希值记录的次数加1。
13.一种设备,其特征在于,包括一个或多个处理器和一个或多个存储器;
所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述终端设备执行如权利要求1-6任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在流程编排装置上运行时,使得所述流程编排装置执行如权利要求1-6任一所述的方法。
CN202010636270.7A 2020-07-03 2020-07-03 一种数据流统计方法及装置 Pending CN113965492A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010636270.7A CN113965492A (zh) 2020-07-03 2020-07-03 一种数据流统计方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010636270.7A CN113965492A (zh) 2020-07-03 2020-07-03 一种数据流统计方法及装置

Publications (1)

Publication Number Publication Date
CN113965492A true CN113965492A (zh) 2022-01-21

Family

ID=79459154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010636270.7A Pending CN113965492A (zh) 2020-07-03 2020-07-03 一种数据流统计方法及装置

Country Status (1)

Country Link
CN (1) CN113965492A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115378850A (zh) * 2022-08-31 2022-11-22 济南大学 一种基于Sketch的加密流量在线分析方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115378850A (zh) * 2022-08-31 2022-11-22 济南大学 一种基于Sketch的加密流量在线分析方法及系统
CN115378850B (zh) * 2022-08-31 2023-10-31 济南大学 一种基于Sketch的加密流量在线分析方法及系统

Similar Documents

Publication Publication Date Title
JP7039685B2 (ja) トラフィック測定方法、デバイス、およびシステム
JP4341413B2 (ja) 統計収集装置を備えたパケット転送装置および統計収集方法
US7787442B2 (en) Communication statistic information collection apparatus
US8005012B1 (en) Traffic analysis of data flows
US8654655B2 (en) Detecting and classifying anomalies in communication networks
CN111131084B (zh) 一种QoS感知的OpenFlow流表查找方法
EP3905622A1 (en) Botnet detection method and system, and storage medium
US11637787B2 (en) Preventing duplication of packets in a network
US20200366626A1 (en) Forwarding Entry Update Method and Apparatus
US20210152454A1 (en) Network Flow Measurement Method, Network Measurement Device, and Control Plane Device
US7602789B2 (en) Low overhead method to detect new connection rate for network traffic
EP4075749A1 (en) Detection method and detection device for heavy flow data stream
EP2530873B1 (en) Method and apparatus for streaming netflow data analysis
CN112119613A (zh) 具有流大小检测器的转发元件数据平面
CN112468365A (zh) 用于网络镜像流量的数据质量检测方法、系统及介质
CN114205253A (zh) 一种基于小流过滤的活跃大流精确检测架构及方法
CN112688837A (zh) 基于时间滑动窗口的网络测量方法与装置
CN113965492A (zh) 一种数据流统计方法及装置
CN111200542B (zh) 一种基于确定性替换策略的网络流量管理方法及系统
CN114710444B (zh) 基于塔型摘要和可驱逐流表的数据中心流量统计方法和系统
Turkovic et al. Detecting heavy hitters in the data-plane
CN115580543A (zh) 一种基于哈希计数的网络系统活跃度评估方法
CN109361658A (zh) 基于工控行业的异常流量信息存储方法、装置及电子设备
CN113472670B (zh) 用于计算机网络的方法、网络装置及存储介质
US20150036688A1 (en) Packet relay device and packet relay method

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