CN115766528B - 一种Top-K大象流的检测方法 - Google Patents

一种Top-K大象流的检测方法 Download PDF

Info

Publication number
CN115766528B
CN115766528B CN202211422576.8A CN202211422576A CN115766528B CN 115766528 B CN115766528 B CN 115766528B CN 202211422576 A CN202211422576 A CN 202211422576A CN 115766528 B CN115766528 B CN 115766528B
Authority
CN
China
Prior art keywords
stream data
minimum
new
mapped
root node
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
CN202211422576.8A
Other languages
English (en)
Other versions
CN115766528A (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.)
Southwest University of Science and Technology
Original Assignee
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 Southwest University of Science and Technology filed Critical Southwest University of Science and Technology
Priority to CN202211422576.8A priority Critical patent/CN115766528B/zh
Publication of CN115766528A publication Critical patent/CN115766528A/zh
Application granted granted Critical
Publication of CN115766528B publication Critical patent/CN115766528B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种Top‑K大象流的检测方法,所述Top‑K大象流的检测方法包括:S1:获取网络流数据;S2:对所述网络流数据进行解析,得到解析后的网络流数据;S3:利用NewKeeper检测所述解析后的网络流数据中的Top‑K大象流。本发明能够在有限内存情况下提高检测数据的吞吐量,同时提高效率。

Description

一种Top-K大象流的检测方法
技术领域
本发明涉及大象流识别技术领域,具体涉及一种Top-K大象流的检测方法。
背景技术
网络流量测量在网络邻域发挥着重要作用,是许多网络应用的重要基石,例如拥塞控制、异常检测和流量工程。众所周知,在真实的高速网络中,流大小分布服从重尾分布,即大部分流非常小,称为鼠标流,少部分流非常大,称为大象流。例如,在从MAWI下载的5分钟流量跟踪数据中,前0.05%的大象流量占网络流量的60%以上。有效地发现大象流可以帮助解决许多网络问题,例如网络拥塞和负载不平衡。因此,寻找top-k大象流(或简称top-k流)是网络流量测量中的关键测量任务。
发明内容
本发明的目的在于提供一种Top-K大象流的检测方法,以能够在有限内存情况下提高检测数据的吞吐量,同时提高效率。
本发明解决上述技术问题的技术方案如下:
本发明提供一种Top-K大象流的检测方法,所述Top-K大象流的检测方法包括:
S1:获取网络流数据;
S2:对所述网络流数据进行解析,得到解析后的网络流数据;
S3:利用NewKeeper检测所述解析后的网络流数据中的Top-K大象流。
可选择地,所述步骤S3中,所述NewKeeper构造为带有哈希函数的哈希表,所述哈希表包括多个存储模块,各所述存储单元包括重部分和新部分,所述重部分具有d1个用于存储所述Top-K大象流的第一单元格,所述新部分具有d2个用于接受新流并驱逐旧流的第二单元格。
可选择地,各所述第一单元格和各所述第二单元格均存储有一个键值对<ID,count>,所述键值对<ID,count>的密钥为流ID,,值为存储在单元中的流数据的估计大小。
可选择地,所述步骤S3包括:
S31:利用哈希函数将所述解析后的网络流数据映射到存储空间,得到映射后的流数据;
S32:将所述映射后的流数据插入到所述重部分;
S33:判断当前插入是否成功,若是,进入步骤S35,否则,进入步骤S34;
S34:将所述映射后的流数据插入至所述新部分,并将该映射后的流数据提升至重部分后进入步骤S35;
S35:利用最小堆跟踪前k个流数据,得到跟踪结果;
S36:利用所述跟踪结果实现所述Top-K大象流的检测。
可选择地,所述步骤S32包括:
所述映射后的流数据已经记录在重部分的一个单元格中,将该单元的count值加1;
重部分有空单元格,将键值对<fi,1>插入所述空单元格。
可选择地,所述步骤S34中,所述将该映射后的流数据提升至重部分包括:
判断新部分顶流数据的大小是否大于所述重部分中的最小计数值,若是,丢弃所述重部分中计数值最小的流数据,并将所述映射后的流数据替换丢弃掉的所述重部分中计数值最小的流数据。
可选择地,所述步骤S35包括:
S351:利用标志位判断所述映射后的流数据是否在最小堆中,若在,进入步骤S355,否则,进入步骤S352;
S352:判断所述映射后的流数据的大小是否大于最小堆根节点处流数据的大小,若是,进入步骤S353;否则,进入步骤S355;
S353:更新最小堆中所有节点的值字段并立即堆化,得到新的最小堆;
S354:重新判断所述映射后的流数据的大小是否大于新的最小堆根节点处流数据的大小,若是,将所述根节点从所述新的最小堆中移除,并修改与所述新的最小根节点处流数据关联的重部分的单元格的标志,同时将所述新的最小根节点处流数据插入最小堆并更改标志与所述新的最小根节点处流数据标志修改前后相关联的重部分中的单元格的数量后进入步骤S355;否则,直接进入步骤S355;
S355:遍历最小堆并将其估计大小的k个流数据报告为前k个流,以得到跟踪结果。
本发明具有以下有益效果:
本发明一方面能够显著提高检测的数据吞吐量;另一方面能够有效驱逐老鼠流,同时保留大象流,实现高精度、高吞吐、高效率的检测top-k流。
附图说明
图1为本发明Top-K大象流的检测方法的流程图;
图2为本发明NewKeeper的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
Top-k流检测是大流检测的变种,旨在识别出网络中大小处于前k位的数据流。这种关键的测量任务常用于拥塞控制、异常检测以及流量工程。
本发明提供一种Top-K大象流的检测方法,参考图1所示,所述Top-K大象流的检测方法包括:
S1:获取网络流数据;
S2:对所述网络流数据进行解析,得到解析后的网络流数据;
S3:利用NewKeeper检测所述解析后的网络流数据中的Top-K大象流。
参考图2所示,本发明所提供的NewKeeper构造为带有哈希函数的哈希表,所述哈希表包括多个存储模块,各所述存储单元包括重部分和新部分,所述重部分具有d1个用于存储所述Top-K大象流的第一单元格,所述新部分具有d2个用于接受新流并驱逐旧流的第二单元格。各所述第一单元格和各所述第二单元格均存储有一个键值对<ID,count>,所述键值对<ID,count>的键为流ID,值为存储在单元中的流数据的估计大小。为方便起见,本发明使用A[i][j]h表示第i个存储空间的Heavy Part的第j个存储单元,用A[i][j]n表示第i个存储空间的New Part的第j个存储单元,A[i][j].ID和A[i][j].C分别表示对应单元格的键和值。
可选择地,所述步骤S3包括:
S31:利用哈希函数将所述解析后的网络流数据映射到存储空间,得到映射后的流数据;
最初,哈希表中的所有字段都设置为0,之后,利用哈希函数将所述解析后的网络流数据映射到存储空间A[h(fi)],得到映射后的流数据fi
S32:将所述映射后的流数据fi插入到所述重部分;
在此部分插入流数据有三种情况:
1、映射后的流数据fi已经记录在Heavypart的一个单元格中,NewKeeper只是将对应单元的count值加1;
重部分(New Part)有空单元格,将键值对<fi,1>插入所述空单元格。
S33:判断当前插入是否成功,若是,进入步骤S35,否则,进入步骤S34;
映射后的流数据fi不在存储空间A[i]h中任何单元中,也没有空余单元格,此时当前插入不成功,则将其视为一个新的流,并将其插入到Newpart部分中,它的操作就像一个堆栈,新的流程存储在堆栈的顶部,旧的流程存储在底部。具体来说,如果流fi已经记录在栈上的一个单元格中,将单元格的计数值加1,并将单元格移动到栈顶;否则,将最旧的流放在堆栈底部并插入<fi,1>进入堆栈顶部的单元格。即:
S34:将所述映射后的流数据插入至所述新部分,并将该映射后的流数据提升至重部分后进入步骤S35;
这里,将该映射后的流数据提升至重部分的目的是为了达到更高的精度,为新流的到来腾出空间。提升操作仅发生在New part的插入操作之后。每次插入后,判断新部分(New part)顶流数据ftop的大小是否大于所述重部分(Heavy part)中的最小计数值,若是,丢弃所述重部分(Heavy part)中计数值最小的流数据fmin,并将所述映射后的流数据替换丢弃掉的所述重部分(Heavy part)中计数值最小的流数据fmin
S35:利用最小堆跟踪前k个流数据,得到跟踪结果;
所述步骤S35包括:
S351:利用标志位判断所述映射后的流数据是否在最小堆中,若在,进入步骤S355,否则,进入步骤S352;
S352:判断所述映射后的流数据的大小是否大于最小堆根节点处流数据的大小,若是,进入步骤S353;否则,进入步骤S355;
S353:更新最小堆中所有节点的值字段并立即堆化,得到新的最小堆;
S354:重新判断所述映射后的流数据的大小是否大于新的最小堆根节点处流数据的大小,若是,将所述根节点从所述新的最小堆中移除,并修改与所述新的最小根节点处流数据关联的重部分的单元格的标志,同时将所述新的最小根节点处流数据插入最小堆并更改标志与所述新的最小根节点处流数据标志修改前后相关联的重部分中的单元格的数量后进入步骤S355;否则,直接进入步骤S355;
S355:遍历最小堆并将其估计大小的k个流数据报告为前k个流,以得到跟踪结果。
即,本发明使用最小堆来跟踪前k个流,其中每个节点存储一个键值对,分别对应流的ID和流的大小。现有算法一般每次插入后都需要遍历最小堆的所有节点,以保证记录的准确性,大大减慢了插入速度。为了解决这个问题,本发明在Heavy part的桶中使用一个标志位来标记流是否已经存储在最小堆中。每次更新heavy part的桶中记录的映射后的流数据fi的信息,有两种情况:
情况1:flag=1,表示映射后的流数据fi已经在最小堆中。
情况2:flag=0,表示映射后的流数据fi不在最小堆中。如果映射后的流数据的大小n大于最小堆根节点处流fr的最小大小nmin,更新最小堆中所有节点的值字段并立即堆化。然后再次比较尺寸。如果n仍然大于nmin,我们将根节点从最小堆中移除,并将与fr关联的重部分中的单元格的标志从1更改为0,同时将fr插入最小堆并更改标志与fr从0到1相关联的较重部分中的单元格的数量。要查询前k个流,只需遍历最小堆并将其估计大小的k个流报告为前k个流。
S36:利用所述跟踪结果实现所述Top-K大象流的检测。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种Top-K大象流的检测方法,其特征在于,所述Top-K大象流的检测方法包括:
S1:获取网络流数据;
S2:对所述网络流数据进行解析,得到解析后的网络流数据;
S3:利用NewKeeper检测所述解析后的网络流数据中的Top-K大象流;
所述步骤S3中,所述NewKeeper构造为带有哈希函数的哈希表,所述哈希表包括多个存储模块,各所述存储模块包括重部分和新部分,所述重部分具有d 1个用于存储所述Top-K大象流的第一单元格,所述新部分具有d 2个用于接受新流并驱逐旧流的第二单元格;
所述步骤S3包括:
S31:利用哈希函数将所述解析后的网络流数据映射到存储空间,得到映射后的流数据;
S32:将所述映射后的流数据插入到所述重部分;
S33:判断当前插入是否成功,若是,进入步骤S35,否则,进入步骤S34;
S34:将所述映射后的流数据插入至所述新部分,并将该映射后的流数据提升至重部分后进入步骤S35;
S35:利用最小堆跟踪前k个流数据,得到跟踪结果;
S36:利用所述跟踪结果实现所述Top-K大象流的检测;
所述步骤S35包括:
S351:利用标志位判断所述映射后的流数据是否在最小堆中,若在,进入步骤S355,否则,进入步骤S352;
S352:判断所述映射后的流数据的大小是否大于最小堆根节点处流数据的大小,若是,进入步骤S353;否则,进入步骤S355;
S353:更新最小堆中所有节点的值字段并立即堆化,得到新的最小堆;
S354:重新判断所述映射后的流数据的大小是否大于新的最小堆根节点处流数据的大小,若是,将所述根节点从所述新的最小堆中移除,并修改与所述新的最小根节点处流数据关联的重部分的单元格的标志,同时将所述新的最小根节点处流数据插入最小堆并更改标志与所述新的最小根节点处流数据标志修改前后相关联的重部分中的单元格的数量后进入步骤S355;否则,直接进入步骤S355;
S355:遍历最小堆并将其估计大小的k个流数据报告为前k个流,以得到跟踪结果。
2.根据权利要求1所述的Top-K大象流的检测方法,其特征在于,各所述第一单元格和各所述第二单元格均存储有一个键值对<ID,count>,所述键值对<ID,count>的密钥为流ID,值为存储在单元中的流数据的估计大小。
3.根据权利要求1所述的Top-K大象流的检测方法,其特征在于,所述步骤S32包括:
所述映射后的流数据已经记录在重部分的一个单元格中,将该单元的count值加1;
重部分有空单元格,将键值对<f i,1>插入所述空单元格。
4.根据权利要求1所述的Top-K大象流的检测方法,其特征在于,所述步骤S34中,所述将该映射后的流数据提升至重部分包括:
判断新部分顶流数据的大小是否大于所述重部分中的最小计数值,若是,丢弃所述重部分中计数值最小的流数据,并将所述映射后的流数据替换丢弃掉的所述重部分中计数值最小的流数据。
CN202211422576.8A 2022-11-14 2022-11-14 一种Top-K大象流的检测方法 Active CN115766528B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211422576.8A CN115766528B (zh) 2022-11-14 2022-11-14 一种Top-K大象流的检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211422576.8A CN115766528B (zh) 2022-11-14 2022-11-14 一种Top-K大象流的检测方法

Publications (2)

Publication Number Publication Date
CN115766528A CN115766528A (zh) 2023-03-07
CN115766528B true CN115766528B (zh) 2024-03-26

Family

ID=85370612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211422576.8A Active CN115766528B (zh) 2022-11-14 2022-11-14 一种Top-K大象流的检测方法

Country Status (1)

Country Link
CN (1) CN115766528B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102150394A (zh) * 2008-09-30 2011-08-10 香港中文大学 确定发出最多数据流的主机的系统与方法
CN108733803A (zh) * 2018-05-18 2018-11-02 电子科技大学 一种道路网络下多用户空间关键词查询方法
CN109861881A (zh) * 2019-01-24 2019-06-07 大连理工大学 一种基于三层Sketch架构的大象流检测方法
WO2019171126A1 (en) * 2018-03-06 2019-09-12 Pratik Sharma Document ranking service based on search terms
US10924418B1 (en) * 2018-02-07 2021-02-16 Reservoir Labs, Inc. Systems and methods for fast detection of elephant flows in network traffic
CN112671611A (zh) * 2020-12-23 2021-04-16 清华大学 基于sketch的大流检测方法和装置
CN113872883A (zh) * 2021-09-27 2021-12-31 长沙理工大学 一种基于小流过滤的高精度大象流识别架构
CN114020471A (zh) * 2021-11-11 2022-02-08 浙江大学 一种基于草图的轻量级大象流检测方法及平台
CN114884834A (zh) * 2021-12-15 2022-08-09 长沙理工大学 一种低开销的Top-k网络流高精度提取架构及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9118567B2 (en) * 2013-07-15 2015-08-25 Telefonaktiebolaget L M Ericsson (Publ) Removing lead filter from serial multiple-stage filter used to detect large flows in order to purge flows for prolonged operation
US11677643B2 (en) * 2020-11-23 2023-06-13 At&T Intellectual Property I, L.P. Traffic classification of elephant and mice data flows in managing data networks
US11899634B2 (en) * 2021-03-17 2024-02-13 Accenture Global Solutions Limited Performance-centric cloud database virtual core sizing stack

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102150394A (zh) * 2008-09-30 2011-08-10 香港中文大学 确定发出最多数据流的主机的系统与方法
US10924418B1 (en) * 2018-02-07 2021-02-16 Reservoir Labs, Inc. Systems and methods for fast detection of elephant flows in network traffic
WO2019171126A1 (en) * 2018-03-06 2019-09-12 Pratik Sharma Document ranking service based on search terms
CN108733803A (zh) * 2018-05-18 2018-11-02 电子科技大学 一种道路网络下多用户空间关键词查询方法
CN109861881A (zh) * 2019-01-24 2019-06-07 大连理工大学 一种基于三层Sketch架构的大象流检测方法
CN112671611A (zh) * 2020-12-23 2021-04-16 清华大学 基于sketch的大流检测方法和装置
CN113872883A (zh) * 2021-09-27 2021-12-31 长沙理工大学 一种基于小流过滤的高精度大象流识别架构
CN114020471A (zh) * 2021-11-11 2022-02-08 浙江大学 一种基于草图的轻量级大象流检测方法及平台
CN114884834A (zh) * 2021-12-15 2022-08-09 长沙理工大学 一种低开销的Top-k网络流高精度提取架构及方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ActiveKeeper: An Accurate and Efficient Algorithm for Finding Top-k Elephant Flows;M. Wu, H. Huang, Y. -E. Sun, Y. Du, S. Chen and G. Gao;《IEEE Communications Letters》;20210506;全文 *
SDN环境下网络流量测量技术研究;廖梓钧;《中国优秀硕士论文电子期刊网》;20230915;全文 *
T. Yang et al..HeavyKeeper: An Accurate Algorithm for Finding Top- k Elephant Flows.《IEEE/ACM Transactions on Networking,》.2019,全文. *
基于Sketch的网络流量测量算法研究;刘斌;《基于Sketch的网络流量测量算法研究》;20201215;全文 *
基于sketch结构的网络流量测量方法研究;冯辉;《中国优秀硕士论文电子期刊网》;20211215;全文 *

Also Published As

Publication number Publication date
CN115766528A (zh) 2023-03-07

Similar Documents

Publication Publication Date Title
Witt Runtime analysis of the (μ+ 1) EA on simple pseudo-Boolean functions
KR102337092B1 (ko) 트래픽 측정 방법, 장치, 및 시스템
CN111262756B (zh) 一种高速网络大象流精确测量方法及装置
CN100459574C (zh) 对网络流进行分类、状态跟踪和报文处理的装置和方法
EP2750053B1 (en) Data storage program, data retrieval program, data retrieval apparatus, data storage method and data retrieval method
CN102405622B (zh) 二叉树建立、压缩和查找的方法和装置
CN109861881A (zh) 一种基于三层Sketch架构的大象流检测方法
US8667113B2 (en) Bitmap network management object change detection approach
CN101650730B (zh) 数据流中带权值频繁项挖掘方法和系统
CN112486914B (zh) 一种数据包存储与快查方法与系统
CN109274593A (zh) 一种信息存储方法及装置
CN101834763B (zh) 高速网络环境下多类型大流并行测量方法
CN115766528B (zh) 一种Top-K大象流的检测方法
CN115967673A (zh) 一种基于p4可编程交换机的大流五元组的查询方法
CN100493001C (zh) G比特流率下多粒度的网络自动聚类方法
CN113660237B (zh) 一种基于动态滑动窗口的工业互联网数据流异常检测方法、存储器和处理器
CN100397816C (zh) 在网络设备中对接收数据包进行分类的方法
CN114124918A (zh) 报文解析方法及装置
CN113872883A (zh) 一种基于小流过滤的高精度大象流识别架构
CN110995876B (zh) 一种ip存储与查找的方法及装置
CN111200542A (zh) 一种基于确定性替换策略的网络流量管理方法及系统
CN105022689A (zh) 一种发现大型面向对象软件系统关键测试函数的方法
CN111835599B (zh) 一种基于SketchLearn的混合网络测量方法、装置及介质
CN109783274A (zh) 一种磁盘快照的管理方法、装置以及可读存储介质
CN114884834A (zh) 一种低开销的Top-k网络流高精度提取架构及方法

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