CN117896323B - 基于优先级的数据流基数在线测量方法和系统 - Google Patents
基于优先级的数据流基数在线测量方法和系统 Download PDFInfo
- Publication number
- CN117896323B CN117896323B CN202410295086.9A CN202410295086A CN117896323B CN 117896323 B CN117896323 B CN 117896323B CN 202410295086 A CN202410295086 A CN 202410295086A CN 117896323 B CN117896323 B CN 117896323B
- Authority
- CN
- China
- Prior art keywords
- priority
- stream
- value
- label
- updated
- 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
Links
- 238000000691 measurement method Methods 0.000 title claims abstract description 10
- 238000005070 sampling Methods 0.000 claims abstract description 145
- 238000001914 filtration Methods 0.000 claims abstract description 94
- 238000005259 measurement Methods 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000009826 distribution Methods 0.000 claims description 26
- 238000013507 mapping Methods 0.000 claims description 19
- 238000007667 floating Methods 0.000 claims description 13
- 238000009827 uniform distribution Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 41
- 238000004422 calculation algorithm Methods 0.000 description 27
- 238000003860 storage Methods 0.000 description 22
- 238000002474 experimental method Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 241000135164 Timea Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2458—Modification of priorities while in transit
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
技术领域
本发明涉及高速数据流基数测量技术领域,尤其是指一种基于优先级的数据流基数在线测量方法和系统。
背景技术
随着互联网技术的快速发展和移动终端的不断增长,高速网络中的数据流规模呈现指数级增长。在线实时抓取高速网络数据流中所携带的流基数信息、即组成每条流的所有数据包中包含了多少个不同的元素,在网络安全、资源调度等领域具有非常广泛的应用。流和元素均可以根据应用需求自定义,但是网络流速的逐年攀升使得海量数据流的在线基数测量变得异常困难,若采用离线测量分析技术需要占用大量的存储资源且实时性差,而在线测量分析则需要保证每个数据包仅进行极其少量的操作以匹配线速。因此,如何采用紧凑数据结构,以尽可能低的计算复杂度和存储复杂度来实现快速、高精度的流基数估计成为近年研究的一个热点。
目前,已有基于紧凑数据结构的高速数据流在线测量分析研究,但是这些研究只有部分能够实现细粒度的每流基数测量,细粒度的每流基数测量即对监测到的海量数据流进行区分处理并在线测量其中每条流的基数大小。每流测量的难度要远大于对所监测到的整体流量的测量,但是目前的每流基数测量技术存在中小规模流基数估计精度不高、未考虑流间优先级差异的问题。真实场景中,来自不同应用程序的数据流往往具有不同的优先级。例如,来自音视频软件的流量(Voice over Internet Protocol,VoIP,基于IP的语音传输)需要分配更多的带宽资源以保证更低的丢包率和延迟,因此需要更高的优先级。显然,优先级更高的数据流应该在基数测量时分配更多的计算和存储资源,得到更高的估计精度保障,以满足业务的实际需求。
但是,在现有高速网络流基数测量方法中,为压缩存储空间,不同流的信息往往采用资源共享方式混杂存储,难以通过简单修改来差异化处理不同优先级的流;同时,在对不同优先级流进行差异化处理时,需要测量每条流中数据包的数量,而每流基数测量需要去除每条数据流所携带的重复元素,较每流大小测量问题更为复杂。因此,现有的在线流基数测量技术并未考虑不同数据流间的优先级差异,也无法直接将现有的差异化每流大小测量技术直接应用到带有优先级的流基数测量任务中,无差异化处理会导致不同优先级的流具有相同的期望估计误差,降低流基数估计精度。
发明内容
为此,本发明所要解决的技术问题在于克服现有技术中的不足,提供一种基于优先级的数据流基数在线测量方法和系统,可以为不同优先级流提供不同精度的基数估计,提高高优先级流基数估计精度。
为解决上述技术问题,本发明提供了一种基于优先级的数据流基数在线测量方法,包括:
设置测量周期,在测量周期内构建优先级过滤结构,所述优先级过滤结构根据当前流元素的标签和优先级进行更新,用于保证所述优先级过滤结构更偏好于高优先级流;
当所述优先级过滤结构发生更新时,根据当前流元素的标签和优先级计算后采样函数值,当计算得到的后采样函数值小于当前流元素的后采样频率时,结合更新后的优先级过滤结构构建并更新优先级哈希表、更新后采样频率;
获取任意流标签,使用包含任意流标签的优先级哈希表和对应的采样频率计算任意流的基数估计值。
进一步地,所述优先级过滤结构,包括:
寄存器数组,包括m个寄存器,每个寄存器大小为比特,n表示当前数据流所支持的最大优先级,表示向上取整操作;
计数器数组,包括n个计数器,所述计数器数组用于记录值为的寄存器的个数,;
浮点数数组,包括n个浮点数,所述浮点数数组用于存储不同优先级数据流的后采样频率。
进一步地,所述优先级过滤结构根据当前流元素的标签和优先级进行更新,包括:
根据网络可用带宽资源配置采样频率向量和预采样频率,所述采样频率向量的长度为所支持的最大优先级;
从流到达的数据包中提取出流标签、元素标签和优先级,组建三元组作为流元素,其中为当前到达流元素的流标签、为当前到达流元素的元素标签、为当前到达流元素的优先级;
构建预采样函数,将到达优先级过滤结构的流元素中的流标签和元素标签的异或值通过预采样函数映射到区间内:
,
其中,表示预采样函数,为值域在之间的均匀分布的独立哈希函数,X为函数能够表示的最大数值,表示异或操作;若,r为预采样频率,则计算此时到达优先级过滤结构的流元素关联到的所述寄存器数组中的寄存器下标j;否则,将此时到达优先级过滤结构的流元素直接丢弃,返回执行从流到达的数据包中提取出流标签、元素标签和优先级的步骤;
判断此时到达优先级过滤结构的流元素的优先级是否大于下标为j的寄存器的值,若大于,则使用此时到达优先级过滤结构的流元素的优先级对下标为j的寄存器的值进行更新;否则返回执行从流到达的数据包中提取出流标签、元素标签和优先级的步骤;
在所述使用此时到达优先级过滤结构的流元素的优先级对下标为j的寄存器的值进行更新前,判断下标为j的寄存器原来的值是否为0;若下标为j的寄存器原来的值不为0,则将第个计数器的值更新为,表示第个计数器原来的值,表示下标为j的寄存器原来的值,再将下标为j的寄存器的值更新为,更新第个计数器的值为,为第个计数器原来的值;若下标为j的寄存器原来的值为0,则直接将下标为j的寄存器的值更新为,更新第个计数器的值为。
进一步地,所述计算此时到达优先级过滤结构的流元素关联到的所述寄存器数组中的寄存器下标j,包括:
构建元素-寄存器下标映射函数,将此时到达优先级过滤结构的流元素通过元素-寄存器下标映射函数映射到整数j:
,
其中,表示元素-寄存器下标映射函数,为独立且均匀的哈希函数,表示取余运算,m为寄存器数组的长度。
进一步地,所述根据当前流元素的标签和优先级计算后采样函数值,具体为:
,
其中,为计算得到的后采样函数值,为优先级过滤结构发生更新时的对应的流元素的流标签,为优先级过滤结构发生更新时的对应的流元素的元素标签,表示异或操作,是值域范围在之间的均匀分布的独立哈希函数,为函数能够表示的最大数值。
进一步地,所述结合更新后的优先级过滤结构构建并更新优先级哈希表、更新后采样频率,具体为:
判断计算得到的后采样函数值是否小于等于,表示优先级为的流元素的后采样频率;若满足,则将此时的流元素存储到优先级哈希表中,再结合更新后的优先级过滤结构更新后采样频率;若不满足则直接结合更新后的优先级过滤结构更新后采样频率;
所述将此时的流元素存储到优先级哈希表中,包括:
构建优先级哈希表、记为,表示第i个优先级哈希表,n为当前数据流所支持的最大优先级;所述优先级哈希表包括键值对,所述键值对包括键和值;
若第个优先级哈希表中没有存储以流元素的流标签作为键的键值对,则添加键值对到第个优先级哈希表中;否则,将第个优先级哈希表中的键为的键值对的值更新为,为更新前的第个优先级哈希表中键为的键值对的值。
进一步地,所述结合更新后的优先级过滤结构更新后采样频率,具体为:
,
其中,为更新后的优先级为的流元素的后采样频率,m为寄存器数组的长度,表示优先级为的流元素的采样频率,n为当前数据流所支持的最大优先级,r为预采样频率,为第i个计数器的值。
进一步地,所述获取任意流标签,使用包含任意流标签的优先级哈希表和对应的采样频率计算任意流的基数估计值,包括:
获取任意流标签f,查找每个优先级哈希表;
若找到了包含任意流标签f的优先级哈希表、记为,,则获取包含任意流标签f的优先级哈希表中的键为f的键值对的值,结合对应的采样频率和伯努利分布计算任意流f的基数估计值;
若没有找到包含任意流标签f的优先级哈希表,则令任意流f的基数估计值为0。
进一步地,所述结合对应的采样频率和伯努利分布计算任意流f的基数估计值,包括:
建立真实数据流基数到第k个优先级哈希表中的键为f的键值对的值的伯努利分布:
,
其中,表示参数为和的伯努利分布,为优先级为k的流元素的采样频率;
获取包含任意流标签f的优先级哈希表中的键为f的键值对的值,计算任意流f的基数估计值为:
,
其中,为任意流f的基数估计值。
本发明还提供了一种基于优先级的数据流基数在线测量系统,包括:
优先级更新模块,用于设置测量周期,在测量周期内构建优先级过滤结构,所述优先级过滤结构根据当前流元素的标签和优先级进行更新,用于保证所述优先级过滤结构更偏好于高优先级流;
优先级采样模块,用于当所述优先级过滤结构发生更新时,根据当前流元素的标签和优先级计算后采样函数值,当计算得到的后采样函数值小于当前流元素的后采样频率时,结合更新后的优先级过滤结构构建并更新优先级哈希表、更新后采样频率;
无损估计模块,用于获取任意流标签,使用包含任意流标签的优先级哈希表和对应的采样频率计算任意流的基数估计值。
本发明的上述技术方案相比现有技术具有以下有益效果:
本发明通过在当前的测量周期内根据流元素的优先级构建和更新优先级过滤结构,可以保证优先级过滤结构更偏好于高优先级流;通过实时更新流元素的后采样频率保证每个不重复的流元素整体被保存到优先级哈希表的概率是固定的;在此基础上,结合优先级哈希表和对应的采样频率计算当前数据流的基数估计值,保证流基数的估计是无偏的。从而在存储资源和计算资源受限的情况下,为不同优先级流提供不同精度的基数估计,提高高优先级流基数估计精度;同时,能够适用于不同的优先级流分布,具有良好的可扩展性。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中:
图1为本发明方法的流程图。
图2为本发明中优先级更新的流程图。
图3为本发明中优先级采样的流程图。
图4为本发明中无损估计的流程图。
图5为本发明实施例中使用均匀分布生成三个优先级的场景中分别使用无重采样算法、虚拟HLL算法和本发明方法在不同存储空间下执行差异性流基数测量实验的高优先级流基数估计结果对比图。
图6为本发明实施例中使用均匀分布生成七个优先级的场景中分别使用无重采样算法、虚拟HLL算法和本发明方法在不同存储空间下执行差异性流基数测量实验的高优先级流基数估计结果对比图。
图7为本发明实施例中使用偏度为6.0的齐普夫分布生成三个优先级的场景中分别使用无重采样算法、虚拟HLL算法和本发明方法在不同存储空间下执行差异性流基数测量实验的高优先级流基数估计结果对比图。
图8为本发明实施例中使用偏度为6.0的齐普夫分布生成七个优先级的场景中分别使用无重采样算法、虚拟HLL算法和本发明方法在不同存储空间下执行差异性流基数测量实验的高优先级流基数估计结果对比图。
图9为本发明实施例中使用偏度为8.0的齐普夫分布生成三个优先级的场景中分别使用无重采样算法、虚拟HLL算法和本发明方法在不同存储空间下执行差异性流基数测量实验的高优先级流基数估计结果对比图。
图10为本发明实施例中使用偏度为8.0的齐普夫分布生成七个优先级的场景中分别使用无重采样算法、虚拟HLL算法和本发明方法在不同存储空间下执行差异性流基数测量实验的高优先级流基数估计结果对比图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例一
参照图1-图4所示,本发明公开了一种基于优先级的数据流基数在线测量方法,包括优先级更新、优先级采样和无损估计三部分,具体包括以下步骤:
S1:设置测量周期,在测量周期内构建优先级过滤结构,所述优先级过滤结构根据当前流元素的标签和优先级进行更新,优先级更新用于实现高优先级流抢占寄存器和不重复流元素的过滤功能、保证所述优先级过滤结构更偏好于高优先级流。
首先进行优先级更新,包括:
S1-1:设置测量周期,在测量开始前,根据网络可用带宽资源配置采样频率向量(记为V)和预采样频率(记为r),所述采样频率向量V的长度为所支持的最大优先级n;
S1-2:在测量周期内构建优先级过滤结构为:
一个寄存器数组(记为R),包括m个寄存器,每个寄存器大小为比特,n表示当前数据流所支持的最大优先级,表示向上取整操作;
一个计数器数组(记为C),包括n个计数器,所述计数器数组用于记录值为的寄存器的个数,,每个计数器大小为4字节;所有寄存器、计数器初始化为0。
一个浮点数数组(记为Pr),包括n个浮点数,所述浮点数数组是后采样频率向量、用于存储不同优先级数据流的动态采样频率,所述浮点数数组Pr初始化为采样频率向量V。
S1-3:在测量周期内监控是否有数据包到达,当到达一个数据包时,根据需求从流到达的数据包中提取出流标签(记为)、元素标签(记为)和优先级(记为),组建三元组作为流元素,其中为当前到达流元素的流标签、为当前到达流元素的元素标签、为当前到达流元素所携带的优先级,进入S1-4;流标签和元素标签可以是源地址、目的地址或者其他字段的组合,具有相同流标签的流元素属于同一条数据流,本发明假设属于同一条数据流的元素具有相同的优先级。
S1-4:构建预采样函数,将到达优先级过滤结构的流元素中的流标签和元素标签的异或值通过预采样函数映射到区间内:
,
其中,表示预采样函数,为值域在之间的均匀分布的独立哈希函数,X为函数能够表示的最大数值,表示异或操作;
若(公式1),则认为此时到达优先级过滤结构的流元素通过预采样过程,执行S1-5计算此时到达优先级过滤结构的流元素关联到的所述寄存器数组R中的寄存器下标j;否则,认为此时到达优先级过滤结构的流元素未通过预采样过程,将此时到达优先级过滤结构的流元素直接丢弃,返回执行S1-3。
S1-5:构建元素-寄存器下标映射函数,将此时到达优先级过滤结构的流元素通过元素-寄存器下标映射函数映射到整数j,:
(公式2),
其中,表示元素-寄存器下标映射函数,为独立且均匀的哈希函数,表示取余运算,m为寄存器数组的长度。
S1-6:判断此时到达优先级过滤结构的流元素携带的优先级是否大于下标为j的寄存器的值,若流元素携带的优先级大于下标为j的寄存器的值则进入S1-7使用此时到达优先级过滤结构的流元素携带的优先级对下标为j的寄存器的值进行更新;否则返回执行S1-3。
S1-7:在所述使用此时到达优先级过滤结构的流元素携带的优先级对下标为j的寄存器的值进行更新前,判断下标为j的寄存器原来的值是否为0;
若下标为j的寄存器原来的值不为0,则将第个计数器的值更新为,表示第个计数器原来的值,表示下标为j的寄存器原来的值,再将下标为j的寄存器的值更新为,再更新第个计数器的值为,为第个计数器原来的值;
若下标为j的寄存器原来的值为0,则直接将下标为j的寄存器的值更新为,更新第个计数器的值为。
S2:当所述优先级过滤结构发生更新时、即只有当流元素成功将下标为j的寄存器的值更新为优先级时,执行S3进行优先级采样;否则,跳转执行S1。
S3:优先级采样。根据当前流元素的标签和优先级计算后采样函数值,当计算得到的后采样函数值小于当前流元素的后采样频率时,结合更新后的优先级过滤结构构建并更新优先级哈希表、更新后采样频率。
S3-1:根据当前流元素的标签和优先级计算后采样函数值为:
,
其中,为计算得到的后采样函数值,为优先级过滤结构发生更新时的对应的流元素的流标签(流标签是一个存储了原地址的变量),为优先级过滤结构发生更新时的对应的流元素的元素标签,表示异或操作,是值域范围在之间的均匀分布的独立哈希函数,为函数能够表示的最大数值。
S3-2:通过计算后采样函数值来决定是否将该流元素存储到优先级哈希表中,判断根据元素计算得到的后采样函数值是否满足(公式3),其中表示优先级为的流元素的后采样频率;
若满足,即计算得到的后采样函数值小于当前流元素的后采样频率时,则执行S3-3将此时的流元素存储到优先级哈希表中,再执行S3-4结合更新后的优先级过滤结构更新后采样频率;若不满足则丢弃该流元素,直接执行S3-4。
S3-3:所述将此时的流元素存储到优先级哈希表中,包括:
构建优先级哈希表、记为,表示第i个优先级哈希表,n为当前数据流所支持的最大优先级;优先级哈希表包括多个键值对(y,z),其中y表示键值对(y,z)的键、具体为任意流元素的流标签,z表示键值对(y,z)的值、具体为一个初始值为0的计数器。
若第个优先级哈希表中没有存储以流元素的流标签作为键的键值对,则添加键值对到第个优先级哈希表中,为键值对的键、1为键值对的值;否则,将第个优先级哈希表中的键为的键值对的值更新为、即将键值对更新为,为更新前的第个优先级哈希表中的键为的键值对的值。
S3-4:结合更新后的优先级过滤结构更新后采样频率为:
(公式4),
其中,为更新后的优先级的流元素的后采样频率,m为寄存器数组R的长度,表示优先级为的流元素的采样频率,n为当前数据流所支持的最大优先级,r为预采样频率,为第i个计数器的值。
优先级采样能够实时更新元素的后采样频率数组,用于实时调节每个不重复元素的后采样频率,保证每个不重复元素按照预先配置的采样频率向量存储到优先级哈希表中。
S4:无损估计。获取任意流标签,使用包含任意流标签的优先级哈希表和对应的采样频率计算任意流的基数估计值。
S4-1:获取任意流标签f,查找每个优先级哈希表;
S4-2:若找到了包含任意流标签f的优先级哈希表、记为,则执行S4-3结合对应的采样频率和伯努利分布计算任意流f的基数估计值;若没有找到包含任意流标签f的优先级哈希表,则执行S4-4;
S4-3:建立真实数据流基数到第k个优先级哈希表中的键为f的键值对的值的伯努利分布:
,
其中,表示参数为和的伯努利分布,为优先级为k的流元素的采样频率;
获取包含任意流标签f的优先级哈希表中的键为f的键值对的值,计算任意流f的基数估计值为:
(公式5),
其中,为任意流f的基数估计值;
S4-4: 令,并代入公式5求解得到流f的基数估计值为0。
无损估计用于在测量周期结束后返回待查询流标签的基数估计值,同时保证流基数的估计是无偏的。
S5:判断当前测量周期是否结束,如果测量周期结束,则进入S6,否则跳转执行S1。
S6:测量周期结束,响应流基数的查询请求,返回任意流的基数估计值。
实施例二
本发明还公开了一种基于优先级的数据流基数在线测量系统,包括:
优先级更新模块,用于设置测量周期,在测量周期内构建优先级过滤结构,所述优先级过滤结构根据当前流元素的标签和优先级进行更新,用于保证所述优先级过滤结构更偏好于高优先级流;
优先级采样模块,用于当所述优先级过滤结构发生更新时,根据当前流元素的标签和优先级计算后采样函数值,当计算得到的后采样函数值小于当前流元素的后采样频率时,结合更新后的优先级过滤结构构建并更新优先级哈希表、更新后采样频率;
无损估计模块,用于根据更新后的优先级过滤结构计算待查询流标签,使用包含待查询流标签的优先级哈希表和对应的采样频率计算当前数据流的基数估计值。
实施例三
本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现实施例一中的基于优先级的数据流基数在线测量方法。
实施例四
本发明还公开了一种设备,包括存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一中的基于优先级的数据流基数在线测量方法。
本发明通过在当前的测量周期内根据流元素的优先级构建和更新优先级过滤结构,可以保证优先级过滤结构更偏好于高优先级流;通过实时更新流元素的后采样频率保证每个不重复的流元素整体被保存到优先级哈希表的概率是固定的;在此基础上,结合优先级哈希表和对应的采样频率计算当前数据流的基数估计值,保证流基数的估计是无偏的。从而在存储资源和计算资源受限的情况下,为不同优先级流提供不同精度的基数估计,提高高优先级流基数估计精度;同时,能够适用于不同的优先级流分布,具有良好的可扩展性。
为了进一步证明本发明的有益效果,本实施例在Intel(R) Core(TM) i7-8750HQ@ 2.20GHz CPU运行内存为8GB的环境下分别使用现有的无重采样算法(简称NDS,详见论文“H. Huang, Y. Sun, C. Ma, et al., "Spread Estimation With Non-DuplicateSampling in High-Speed Networks," in IEEE/ACM Transactions on Networking,vol. 29, no. 5, pp. 2073-2086, Oct. 2021, doi: 10.1109/TNET.2021.3078725.”)、虚拟HLL算法(简称vHLL,详见论文“Q. Xiao, S. Chen, Y. Zhou, et al., "CardinalityEstimation for Elephant Flows: A Compact Solution Based on Virtual RegisterSharing," in IEEE/ACM Transactions on Networking, vol. 25, no. 6, pp. 3738-3752, Dec. 2017, doi: 10.1109/TNET.2017.2753842.”)和本发明方法(简称PAS)执行差异性流基数测量实验。
实验使用CAIDA 2019第一分钟数据作为实验数据集,分别在设置三个优先级和七个优先级的场景下进行。实验数据集中网络流被划分为“高优先级流”和“低优先级流”两类。实验控制测量结构的存储空间大小从100KB变化到500KB,并使用平均相对误差指标(ARE)评估两种算法的测量性能。平均相对误差指标的计算公式如下所示:
,
其中,表示待查询的流标签集合,表示流标签为f的流的真实流基数,表示估计得到的流f的流基数。值越小,表示估计精度越高。
实验中分别使用均匀分布生成优先级、使用齐普夫分布生成优先级两种策略生成不同优先级的流量,以验证本发明的效果。具体实验结果如图5~图10所示。从图5~图10可以看出,本发明可以为不同优先级的流提供不同精度的基数估计。具体的,如图5所示,在使用均匀分布生成3种优先级的流基数测量实验中,本发明在300KB的存储空间内ARE较vHLL算法降低了95.59%,较NDS算法降低了28.81%;如图6所示,在使用均匀分布生成7种优先级的流基数测量实验中,本发明在300KB的存储空间内ARE较vHLL算法降低了93.31%,较NDS算法降低了41%。
在使用设置了不同偏度的齐普夫分布生成优先级的实验中,如图7所示,当齐普夫分布偏度设置为6.0、生成3种优先级时,本发明在100KB的存储空间内ARE较NDS算法降低了27.52%,较vHLL算法降低了75.62%;如图8所示,当齐普夫分布偏度设置为6.0、生成7种优先级时,本发明在100KB的存储空间内ARE较NDS算法降低了33.33%,较vHLL算法降低了87.8%;如图9所示,当齐普夫分布偏度设置为8.0、生成3种优先级时,本发明在100KB的存储空间内ARE较NDS算法降低了33.33%,较vHLL算法降低了88.83%;如图10所示,当齐普夫分布偏度设置为8.0、生成7种优先级时,本发明在100KB的存储空间内ARE较NDS算法降低了40%,较vHLL算法降低了98.44%。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (2)
1.一种基于优先级的数据流基数在线测量方法,其特征在于,包括:
设置测量周期,在测量周期内构建优先级过滤结构,所述优先级过滤结构根据当前流元素的标签和优先级进行更新,用于保证所述优先级过滤结构更偏好于高优先级流;
当所述优先级过滤结构发生更新时,根据当前流元素的标签和优先级计算后采样函数值,当计算得到的后采样函数值小于当前流元素的后采样频率时,结合更新后的优先级过滤结构构建并更新优先级哈希表、更新后采样频率;
获取任意流标签,使用包含任意流标签的优先级哈希表和对应的采样频率计算任意流的基数估计值;
所述优先级过滤结构,包括:
寄存器数组,包括m个寄存器,每个寄存器大小为比特,n表示当前数据流所支持的最大优先级,表示向上取整操作;
计数器数组,包括n个计数器,所述计数器数组用于记录值为y的寄存器的个数,1≤y≤n;
浮点数数组,包括n个浮点数,所述浮点数数组用于存储不同优先级数据流的后采样频率;
所述优先级过滤结构根据当前流元素的标签和优先级进行更新,包括:
根据网络可用带宽资源配置采样频率向量和预采样频率,所述采样频率向量的长度为所支持的最大优先级;
从流到达的数据包中提取出流标签、元素标签和优先级,组建三元组(fi,ei,pi)作为流元素,其中fi为当前到达流元素的流标签、ei为当前到达流元素的元素标签、pi为当前到达流元素的优先级;
构建预采样函数,将到达优先级过滤结构的流元素(fi,ei,pi)中的流标签和元素标签的异或值通过预采样函数映射到[0,1)区间内:
其中,F(·)表示预采样函数,H(·)为值域在[0,X)之间的均匀分布的独立哈希函数,X为H(·)能够表示的最大数值,表示异或操作;若 r为预采样频率,则计算此时到达优先级过滤结构的流元素(fi,ei,pi)关联到的所述寄存器数组中的寄存器下标j;否则,将此时到达优先级过滤结构的流元素(fi,ei,pi)直接丢弃,返回执行从流到达的数据包中提取出流标签、元素标签和优先级的步骤;
判断此时到达优先级过滤结构的流元素(fi,ei,pi)的优先级pi是否大于下标为j的寄存器的值,若大于,则使用此时到达优先级过滤结构的流元素(fi,ei,pi)的优先级pi对下标为j的寄存器的值进行更新;否则返回执行从流到达的数据包中提取出流标签、元素标签和优先级的步骤;
在所述使用此时到达优先级过滤结构的流元素(fi,ei,pi)的优先级pi对下标为j的寄存器的值进行更新前,判断下标为j的寄存器原来的值是否为0;若下标为j的寄存器原来的值不为0,则将第R[j]个计数器的值更新为C[R[j]]-1,C[R[j]]表示第R[j]个计数器原来的值,R[j]表示下标为j的寄存器原来的值,再将下标为j的寄存器的值更新为pi,更新第pi个计数器的值为C[pi]+1,C[pi]为第pi个计数器原来的值;若下标为j的寄存器原来的值为0,则直接将下标为j的寄存器的值更新为pi,更新第pi个计数器的值为C[pi]+1;
所述计算此时到达优先级过滤结构的流元素(fi,ei,pi)关联到的所述寄存器数组中的寄存器下标j,包括:
构建元素-寄存器下标映射函数,将此时到达优先级过滤结构的流元素(fi,ei,pi)通过元素-寄存器下标映射函数映射到整数j:
其中,h′(·)表示元素-寄存器下标映射函数,h(·)为独立且均匀的哈希函数,mod表示取余运算,m为寄存器数组的长度;
所述根据当前流元素的标签和优先级计算后采样函数值,具体为:
其中,F′(fi⊕ei)为计算得到的后采样函数值,fi为优先级过滤结构发生更新时的对应的流元素的流标签,ei为优先级过滤结构发生更新时的对应的流元素的元素标签,表示异或操作,H′(·)是值域范围在[0,X′)之间的均匀分布的独立哈希函数,X′为函数H′(·)能够表示的最大数值;
所述结合更新后的优先级过滤结构构建并更新优先级哈希表、更新后采样频率,具体为:
判断计算得到的后采样函数值是否小于等于Pr[pi],Pr[pi]表示优先级为pi的流元素的后采样频率;若满足,则将此时的流元素存储到优先级哈希表中,再结合更新后的优先级过滤结构更新后采样频率;若不满足则直接结合更新后的优先级过滤结构更新后采样频率;
所述将此时的流元素存储到优先级哈希表中,包括:
构建优先级哈希表、记为T[i]表示第i个优先级哈希表,n为当前数据流所支持的最大优先级;所述优先级哈希表包括键值对,所述键值对包括键和值;
若第pi个优先级哈希表T[pi]中没有存储以流元素的流标签fi作为键的键值对,则添加键值对(fi,1)到第pi个优先级哈希表T[pi]中;否则,将第pi个优先级哈希表T[pi]中的键为fi的键值对的值T[pi][fi]更新为T[pi][fi]+1,T[pi][fi]为更新前的第pi个优先级哈希表T[pi]中键为fi的键值对的值;
所述结合更新后的优先级过滤结构更新后采样频率,具体为:
其中,Pr[pi]′为更新后的优先级为pi的流元素的后采样频率,m为寄存器数组的长度,V[pi]表示优先级为pi的流元素的采样频率,n为当前数据流所支持的最大优先级,r为预采样频率,C[i]为第i个计数器的值;
所述获取任意流标签,使用包含任意流标签的优先级哈希表和对应的采样频率计算任意流的基数估计值,包括:
获取任意流标签f,查找每个优先级哈希表
若找到了包含任意流标签f的优先级哈希表、记为T[k],1≤k≤n,则获取包含任意流标签f的优先级哈希表T[k]中的键为f的键值对的值T[k][f],结合对应的采样频率和伯努利分布计算任意流f的基数估计值;
若没有找到包含任意流标签f的优先级哈希表,则令任意流f的基数估计值为0;
所述结合对应的采样频率和伯努利分布计算任意流f的基数估计值,包括:
建立真实数据流基数nf到第k个优先级哈希表中的键为f的键值对的值T[k][f]的伯努利分布:
T[k][f]~Bino(nf,V[k]),
其中,Bino(nf,V[k])表示参数为nf和V[k]的伯努利分布,V[k]为优先级为k的流元素的采样频率;
获取包含任意流标签f的优先级哈希表T[k]中的键为f的键值对的值T[k][f],计算任意流f的基数估计值为:
其中,n′f为任意流f的基数估计值。
2.一种基于优先级的数据流基数在线测量系统,其特征在于,包括:
优先级更新模块,用于设置测量周期,在测量周期内构建优先级过滤结构,所述优先级过滤结构根据当前流元素的标签和优先级进行更新,用于保证所述优先级过滤结构更偏好于高优先级流;
优先级采样模块,用于当所述优先级过滤结构发生更新时,根据当前流元素的标签和优先级计算后采样函数值,当计算得到的后采样函数值小于当前流元素的后采样频率时,结合更新后的优先级过滤结构构建并更新优先级哈希表、更新后采样频率;
无损估计模块,用于获取任意流标签,使用包含任意流标签的优先级哈希表和对应的采样频率计算任意流的基数估计值;
所述优先级过滤结构,包括:
寄存器数组,包括m个寄存器,每个寄存器大小为比特,n表示当前数据流所支持的最大优先级,表示向上取整操作;
计数器数组,包括n个计数器,所述计数器数组用于记录值为y的寄存器的个数,1≤y≤n;
浮点数数组,包括n个浮点数,所述浮点数数组用于存储不同优先级数据流的后采样频率;
所述优先级过滤结构根据当前流元素的标签和优先级进行更新,包括:
根据网络可用带宽资源配置采样频率向量和预采样频率,所述采样频率向量的长度为所支持的最大优先级;
从流到达的数据包中提取出流标签、元素标签和优先级,组建三元组(fi,ei,pi)作为流元素,其中fi为当前到达流元素的流标签、ei为当前到达流元素的元素标签、pi为当前到达流元素的优先级;
构建预采样函数,将到达优先级过滤结构的流元素(fi,ei,pi)中的流标签和元素标签的异或值通过预采样函数映射到[0,1)区间内:
其中,F(·)表示预采样函数,H(·)为值域在[0,X)之间的均匀分布的独立哈希函数,X为H(·)能够表示的最大数值,表示异或操作;若 r为预采样频率,则计算此时到达优先级过滤结构的流元素(fi,ei,pi)关联到的所述寄存器数组中的寄存器下标j;否则,将此时到达优先级过滤结构的流元素(fi,ei,pi)直接丢弃,返回执行从流到达的数据包中提取出流标签、元素标签和优先级的步骤;
判断此时到达优先级过滤结构的流元素(fi,ei,pi)的优先级pi是否大于下标为j的寄存器的值,若大于,则使用此时到达优先级过滤结构的流元素(fi,ei,pi)的优先级pi对下标为j的寄存器的值进行更新;否则返回执行从流到达的数据包中提取出流标签、元素标签和优先级的步骤;
在所述使用此时到达优先级过滤结构的流元素(fii,ei,pi)的优先级pi对下标为j的寄存器的值进行更新前,判断下标为j的寄存器原来的值是否为0;若下标为j的寄存器原来的值不为0,则将第R[j]个计数器的值更新为C[R[j]]-1,C[R[j]]表示第R[j]个计数器原来的值,R[j]表示下标为j的寄存器原来的值,再将下标为j的寄存器的值更新为pi,更新第pi个计数器的值为C[pi]+1,C[pi]为第pi个计数器原来的值;若下标为j的寄存器原来的值为0,则直接将下标为j的寄存器的值更新为pi,更新第pi个计数器的值为C[pi]+1;
所述计算此时到达优先级过滤结构的流元素(fi,ei,pi)关联到的所述寄存器数组中的寄存器下标j,包括:
构建元素-寄存器下标映射函数,将此时到达优先级过滤结构的流元素(fi,ei,pi)通过元素-寄存器下标映射函数映射到整数j:
其中,h′(·)表示元素-寄存器下标映射函数,h(·)为独立且均匀的哈希函数,mod表示取余运算,m为寄存器数组的长度;
所述根据当前流元素的标签和优先级计算后采样函数值,具体为:
其中,为计算得到的后采样函数值,fi为优先级过滤结构发生更新时的对应的流元素的流标签,ei为优先级过滤结构发生更新时的对应的流元素的元素标签,表示异或操作,H′(·)是值域范围在[0,X′)之间的均匀分布的独立哈希函数,X′为函数H′(·)能够表示的最大数值;
所述结合更新后的优先级过滤结构构建并更新优先级哈希表、更新后采样频率,具体为:
判断计算得到的后采样函数值是否小于等于Pr[pi],Pr[pi]表示优先级为pi的流元素的后采样频率;若满足,则将此时的流元素存储到优先级哈希表中,再结合更新后的优先级过滤结构更新后采样频率;若不满足则直接结合更新后的优先级过滤结构更新后采样频率;
所述将此时的流元素存储到优先级哈希表中,包括:
构建优先级哈希表、记为T[i]表示第i个优先级哈希表,n为当前数据流所支持的最大优先级;所述优先级哈希表包括键值对,所述键值对包括键和值;
若第pi个优先级哈希表T[pi]中没有存储以流元素的流标签fi作为键的键值对,则添加键值对(fi,1)到第pi个优先级哈希表T[pi]中;否则,将第pi个优先级哈希表T[pi]中的键为fi的键值对的值T[pi][fi]更新为T[pi][fi]+1,T[pi][fi]为更新前的第pi个优先级哈希表T[pi]中键为fi的键值对的值;
所述结合更新后的优先级过滤结构更新后采样频率,具体为:
其中,Pr[pi]′为更新后的优先级为pi的流元素的后采样频率,m为寄存器数组的长度,V[pi]表示优先级为pi的流元素的采样频率,n为当前数据流所支持的最大优先级,r为预采样频率,C[i]为第i个计数器的值;
所述获取任意流标签,使用包含任意流标签的优先级哈希表和对应的采样频率计算任意流的基数估计值,包括:
获取任意流标签f,查找每个优先级哈希表
若找到了包含任意流标签f的优先级哈希表、记为T[k],1≤k≤n,则获取包含任意流标签f的优先级哈希表T[k]中的键为f的键值对的值T[k][f],结合对应的采样频率和伯努利分布计算任意流f的基数估计值;
若没有找到包含任意流标签f的优先级哈希表,则令任意流f的基数估计值为0;
所述结合对应的采样频率和伯努利分布计算任意流f的基数估计值,包括:
建立真实数据流基数nF到第k个优先级哈希表中的键为f的键值对的值T[k][f]的伯努利分布:
T[k][f]~Bino(nf,V[k]),
其中,Bino(nf,V[k])表示参数为nf和V[k]的伯努利分布,V[k]为优先级为k的流元素的采样频率;
获取包含任意流标签f的优先级哈希表T[k]中的键为f的键值对的值T[k][f],计算任意流f的基数估计值为:
其中,n′f为任意流f的基数估计值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410295086.9A CN117896323B (zh) | 2024-03-15 | 2024-03-15 | 基于优先级的数据流基数在线测量方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410295086.9A CN117896323B (zh) | 2024-03-15 | 2024-03-15 | 基于优先级的数据流基数在线测量方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117896323A CN117896323A (zh) | 2024-04-16 |
CN117896323B true CN117896323B (zh) | 2024-05-31 |
Family
ID=90650870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410295086.9A Active CN117896323B (zh) | 2024-03-15 | 2024-03-15 | 基于优先级的数据流基数在线测量方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117896323B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502625A (zh) * | 2016-10-27 | 2017-03-15 | 成都知道创宇信息技术有限公司 | 一种高速数据流中top‑n基数数据的估算方法 |
CN117201368A (zh) * | 2023-08-25 | 2023-12-08 | 苏州大学 | 一种基于前置采样的网络流基数估计方法及系统 |
CN117596158A (zh) * | 2023-10-17 | 2024-02-23 | 广西大学 | 一种基于pmoa算法的列车通信网络流量调度优化方法 |
CN117667173A (zh) * | 2023-11-30 | 2024-03-08 | 北京天融信网络安全技术有限公司 | 一种安全增量升级方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10757161B2 (en) * | 2017-01-09 | 2020-08-25 | Citrix Systems, Inc. | Learning technique for QoS based classification and prioritization of SAAS applications |
-
2024
- 2024-03-15 CN CN202410295086.9A patent/CN117896323B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502625A (zh) * | 2016-10-27 | 2017-03-15 | 成都知道创宇信息技术有限公司 | 一种高速数据流中top‑n基数数据的估算方法 |
CN117201368A (zh) * | 2023-08-25 | 2023-12-08 | 苏州大学 | 一种基于前置采样的网络流基数估计方法及系统 |
CN117596158A (zh) * | 2023-10-17 | 2024-02-23 | 广西大学 | 一种基于pmoa算法的列车通信网络流量调度优化方法 |
CN117667173A (zh) * | 2023-11-30 | 2024-03-08 | 北京天融信网络安全技术有限公司 | 一种安全增量升级方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于OSEK的任务调度算法改进及实现;毛成勇;高慧敏;;计算机工程;20100220(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117896323A (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Traffic-aware geo-distributed big data analytics with predictable job completion time | |
Chen et al. | Reinforcement learning–based QoS/QoE‐aware service function chaining in software‐driven 5G slices | |
WO2019024623A1 (zh) | 一种流量测量方法、设备及系统 | |
CN105975433B (zh) | 一种报文处理方法及装置 | |
EP3282643B1 (en) | Method and apparatus of estimating conversation in a distributed netflow environment | |
CN110324260B (zh) | 一种基于流量识别的网络功能虚拟化智能调度方法 | |
CN107276916B (zh) | 基于协议无感知转发技术的交换机流表管理方法 | |
Hu et al. | Discount counting for fast flow statistics on flow size and flow volume | |
US20100157809A1 (en) | System and method for spatially consistent sampling of flow records at constrained, content-dependent rates | |
CN111159002A (zh) | 一种基于分组的数据边缘采集方法、边缘采集设备及系统 | |
CN114039918A (zh) | 一种信息年龄优化方法、装置、计算机设备及存储介质 | |
Fang et al. | GRID: Gradient routing with in-network aggregation for distributed training | |
CN106487769B (zh) | 一种访问控制列表acl的实现方法及装置 | |
CN101127690A (zh) | 一种下一代网络业务流量识别方法 | |
US10616116B1 (en) | Network traffic load balancing using rotating hash | |
CN117896323B (zh) | 基于优先级的数据流基数在线测量方法和系统 | |
Ma et al. | Performance analysis of P2p network content delivery based on queueing model | |
CN107528794B (zh) | 一种数据处理方法和装置 | |
CN111200542B (zh) | 一种基于确定性替换策略的网络流量管理方法及系统 | |
CN111209263A (zh) | 数据存储方法、装置、设备及存储介质 | |
Chen et al. | Optimal transport on supply-demand networks | |
CN109714273A (zh) | 一种多核网络设备的报文处理方法及装置 | |
CN114884893A (zh) | 一种转发和控制可定义的协同流量调度方法与系统 | |
Liu | Parallel simulation of hybrid network traffic models | |
CN113934767A (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 |