基于多重过滤草图的网络超点测量算法
Network superspreader measurement algorithm based on multiple filter sketch
收稿日期: 2023-12-3
基金资助: |
|
Received: 2023-12-3
Fund supported: | 国家重点研发计划资助项目(2022YFB2901100). |
作者简介 About authors
李卓(1984—),男,副教授,博士,从事网络流量工程的研究.orcid.org/0000-0002-5535-5920.E-mail:
针对典型草图无法直接应用到超点测量的问题,提出新型的多重过滤草图 (MFS),给出理论误差分析. MFS以前置分流过滤器来去除重复数据包,在兼顾流频率测量任务的同时完成超点测量. 后级统计过滤器划分为3级子结构,分别用来捕捉不同大小的流,以适应现实中偏态的网络流量分布特征,提升草图的内存利用率及测量精度. 提出非对称的插入和查询算法 (AIQ),该算法利用流量的偏态分布特征,快速完成插入和查询操作,满足链路转发的速度要求. 实验结果表明,与当下的先进方案相比,所提的多重过滤草图的流频率测量精度提升了2~48倍,大象流测量精度提升了3~53倍,超点测量精度提升了2.0~3.0倍,测量吞吐量与经典草图相当.
关键词:
A novel multiple filter sketch (MFS) was proposed and analyzed for theoretical errors to address the problem that the classic sketches cannot be directly applied to superspreader measurement. The MFS removed repetitive packets by a front-end streaming filter, so that the superspreader measurement can be finished while considering the flow size estimation. The post-stage statistical filter was divided into three levels of substructures to capture flows with different sizes so as to adapt to the skewed network traffic distribution characteristics in reality. The memory utilization and the measurement accuracy of the sketch were improved. An asymmetric insertion and query algorithm (AIQ) was proposed to quickly finish the insertion and query operations by using the skewed distribution characteristics of the traffic, which can meet the requirement of link forwarding speed. The experimental results show that the proposed multiple filter sketch improves the measurement accuracy of flow size by approximately 2 to 48 times, the measurement accuracy of heavy hitters by approximately 3 to 53 times, and the measurement accuracy of superspreader by about 2.0 to 3.0 times, compared with the current state-of-the-art schemes. The measurement throughput of MFS can be comparable to that of the classical sketch.
Keywords:
本文引用格式
李卓, 孟晋虎, 林盛彦, 高源, 谷大伟, 尤辰至, 刘开华.
LI Zhuo, MENG Jinhu, LIN Shengyan, GAO Yuan, GU Dawei, YOU Chenzhi, LIU Kaihua.
经典的草图有Count-Min (CM)[15]、Conservati-ve Update(CU)[16]和Count Sketch (CS)[17]等. 经典草图的内存浪费大,精确度不高,且测量任务单一,不支持大象流测量和超点测量的任务. 学术界提出一些混合结构. 它们含有分别统计大象流和小流的2个部分,比如Elastic[3]、Diamond[18]、TowerCU[4]、WavingSketch[19]、C-MH和CUH等(由CM和CU添加堆后形成). 其中Elastic记录了大象流的流标识,具备了测量大象流的能力,但是不能过滤同一个流的重复数据包,因此无法完成超点测量. Diamond、CMH及CUH等因算法复杂度高,导致插入吞吐量满足不了链路速度的要求. TowerCU没有记录大象流的流标识,无法完成大象流测量. 其他一些草图,比如spread[12],它们虽然能够完成超点测量任务,但是去除重复数据包的实现是通过多分辨率位图[20](multiresolution bitmap)完成的. 该位图对重复数据包无法计数,因此无法兼顾基本的流频率测量和大象流测量任务.
综上,现有的草图方案无法兼顾测量精度、吞吐量和多种测量任务的需求. 为此,本文提出面向超点测量的多重过滤草图,它包含前置分流过滤器和统计过滤器2级. 分流过滤器可选择性地去除重复的包,以支持流频率测量、大象流测量和超点测量等多种测量任务. 统计过滤器分为3级子结构,分别用来捕捉不同大小的流, 以适应偏态的流量分布,提升测量精度. 此外,本文提出非对称的插入查询算法AIQ并应用全局哈希,提升吞吐量.
1. 方案结构
1.1. 统计过滤器
统计过滤器是混合型草图,它包含一个大象流部分L和一个小流部分S. 如图1所示,大象流部分被分为L1和L2 2个哈希表,每个哈希表都是由若干个桶构成. 其中L1被用来记录大象流和大象流候选者,L2仅用来记录大象流.L2的每个桶包含流标识
图 1
S部分是一个
1.2. 非对称插入查询算法
为了兼顾算法的插入吞吐量和查询吞吐量,提出非对称的插入查询算法AIQ. 如图1所示,插入与查询的所有可能路径分别用实线和虚线箭头标注. 假设插入流标识为
L1首先被访问,根据在L1中流标识
1.2.1. 插入过程
在测量开始时,L部分和S部分的计数器被清空,流标识字段置为空. 所有输入的数据包首先通过哈希
算法 1 AIQ插入算法 |
Input: 流标识为 |
1: Procedure INSERT( 2: for i=1 to 3: 4: if L1[ 5: if L1[ 6: L1[ 7: else if L1[ 8: L1[ 9: 将 10: else //此时为插入前计数器溢出 11: 将 12: if 13: 将 14: function INSERT_L2( 15: if 16: 利用 17: if L2中存在空桶 18: 19: else 20: 放弃在L2中的插入 21: else 22: 利用 23: if L2中存在匹配 24: 25: else 26: 放弃在L2中的插入 27: function INSERT_CU( 28: 29: if 30: CU[j] 31: else if 32: CU[j] 33: 将 34: else //插入前溢出,因此确定 35: 将 36: function INSERT_L1( 37: if 38: if L1[ 39: L1[ 40: else 41: L1[ 42: else 43: 44: 45: L1[ 46: 47: 48: if 49: 桶 50: |
1) L1中流标识匹配成功,且对应的计数器
2) L1中流标识匹配成功,但是对应的计数器
3) L1中流标识匹配成功,但是对应的计数器
4) L1中没有与
5) L1中没有与
6) L1中没有匹配的流标识,且CU中对应的计数器在插入之后发生溢出. 流
1.2.2. 查询过程
给定流标识
算法2 AIQ查询算法 |
Input: 流标识 Output: |
1: Procedure QUERY ( 2: 3: if 4: return 5: else 6: 7: if 8: return 9: else 10: return L2查询值 11: function QUERY_CU( 12: for 13: 14: return min (CU [ 15: function QUERY_L1( 16: for 17: if L1[ 18: return L1[ 19: return min (L1[ 20: function QUERY_L2( 21: if L2中存在匹配 22: return L2[ 23: else 24: return |
进行
1.2.3. 误差上界
假设CU的计数器大小
CU在插入一个流之后任一行的任一计数器
L1所有桶的
式中:
根据分层计数草图理论(layered counting sketch, LCS)[22]可知, CU和MI-SBF的理论数据结构是分层计数草图. 具体来说,当流标识为
式中:
令
令
基于(6)、(7),根据流最终记录在统计过滤器上的3个子结构的位置,可以分3种情况来讨论估计误差上界.
1) 记录在CU中的流. 此时,流频率估计误差为CU的误差,由式(6)可得
式中:
2) 记录在L1中的流. 此时,流
式中:
式中:
由于CU部分的记录和L1部分的记录是相互独立的,结合式(9)~(11)可得
3) 记录在L2部分的流. 根据实验,选取的百万流的数据集中,记录在L2中的流不超过100个,且L2会以遍历的方式来寻找合适位置插入,几乎不会发生流丢失的问题,因此认为L2部分的记录不会产生误差. 最终记录在L2部分的误差与式(12)相同.
1.3. 分流过滤器
如图2所示,左半边是分流过滤器,它的核心模块为布隆过滤器,主要用于根据所测量的任务,选出指定字段传递给统计过滤器进行计数. 布隆过滤器部分采用哈希函数,并均分为4份哈希值,产生4次哈希映射.
图 2
假设数据包
2. 数据集与实验设置
为了评价多重过滤草图在流频率测量和大象流测量中的性能,选取一段真实网络流量Web page[23]. 该数据集中包含100万个流(以五元组作为流标识来定义流)、
对于超点探测任务,选取2018年真实网络场景的CAIDA流量[24],将其均分为若干份1 min的子集进行测量. CAIDA数据集含有84.55万个流.
实验平台是具有十二核 3.2 GHz i5-10505 处理器和 16 GB RAM 的服务器,运行Ubuntu20.0-4,所有方案均使用C++实现.
为了方便部署实现,MFS中计数器大小设置为2的整数次幂. 经过实验测试,将MFS的
图 3
图 3
Web数据集下
Fig.3
Parameter experiment of
此外,在流频率测量和大象流测量任务下,MFS的全局哈希函数的数量设置为3,L1内存为115 kB,L2内存为1 kB,使用与对比方案相同的BOBHash. 在超点测量中,MFS使用与对比方案相同的MurmurHash,统计过滤器的L1设置为8 kB,L2设置为1 kB,CU设置为12 kB,以使用位与代替取余,求解哈希值对应的索引. 大象流的门限为0.02%,超点的门限为0.1%,其他对比方案的参数设置与原文保持一致.
评价指标如下. 1) 平均相对误差:全部流频率的真实值与测量值之差的绝对值与真实值的比值取平均. 2) 精准度:召回的大象流中真实大象流的占比. 3) 召回率:所有真实大象流中被召回的大象流的占比. 4)调和平均数:2×精准度×召回率/(精准度+召回率).5) 吞吐量(Mp/s, million packets per second):每秒处理的百万包数.
3. 实验结果与分析
3.1. 流频率测量
在Web page数据集下流频率的测量结果如图4 (a)所示,详细信息如表1所示. 图中,M为存储消耗. MFS的平均相对误差类似于TowerCU,在所有内存条件下优于其他方案. 与CM、CU、CS、Diamond和Elastic相比,当内存为400 kB时,MFS的平均相对误差分别减小了7.71、5.26、10.5、2.86和4.56倍. MFS的统计过滤器利用CU、L1和L2 3级子结构,逐级过滤分离大象流和小流,减少了彼此的干扰,提升了准确性. 此外,3个子结构分别使用不同尺寸的计数器对不同大小的流进行统计,有效减少了因使用统一尺寸的大计数器比如32 bit的计数器带来的内存浪费,提升了草图的内存利用率,进而提升了准确性.
图 4
表 1 Web数据集下流频率测量的平均相对误差
Tab.1
方案 | e | |||||
M=400 kB | M=500 kB | M=600 kB | M=700 kB | M=800 kB | M=900 kB | |
MFS | 10.61 | 6.54 | 4.47 | 3.25 | 2.48 | 1.95 |
Elastic | 48.40 | 22.95 | 15.33 | 11.64 | 9.46 | 8.09 |
Diamond | 30.31 | 23.73 | 18.47 | 14.85 | 12.28 | 10.42 |
TowerCU | 13.08 | 6.61 | 3.95 | 2.57 | 1.75 | 1.29 |
CM | 81.87 | 57.92 | 43.77 | 34.51 | 27.9 | 23.36 |
CU | 55.86 | 39.39 | 29.60 | 23.30 | 18.82 | 15.56 |
CS | 111.37 | 81.31 | 62.91 | 49.96 | 40.67 | 34.06 |
表 2 偏度数据集下流频率测量的平均相对误差
Tab.2
方案 | e | ||||||||||
s=0 | s=0.1 | s=0.2 | s=0.3 | s=0.4 | s=0.5 | s=0.6 | s=0.7 | s=0.8 | s=0.9 | s=1.0 | |
MFS | 0.21 | 0.22 | 0.24 | 0.26 | 0.27 | 0.29 | 0.31 | 0.33 | 0.34 | 0.35 | 0.35 |
Elastic | 0.77 | 0.77 | 0.78 | 0.80 | 0.83 | 0.87 | 0.93 | 0.99 | 1.07 | 1.21 | 1.43 |
Diamond | 9.73 | 6.33 | 5.79 | 5.70 | 5.54 | 5.44 | 5.11 | 4.51 | 3.88 | 3.24 | 2.93 |
TowerCU | 0.40 | 0.42 | 0.41 | 0.42 | 0.43 | 0.44 | 0.42 | 0.40 | 0.36 | 0.28 | 0.25 |
CM | 3.08 | 3.09 | 3.15 | 3.23 | 3.34 | 3.47 | 3.64 | 3.84 | 4.04 | 4.41 | 5.01 |
CU | 1.58 | 1.61 | 1.69 | 1.80 | 1.93 | 2.08 | 2.23 | 2.43 | 2.60 | 2.93 | 3.39 |
CS | 1.12 | 1.16 | 1.22 | 1.33 | 1.48 | 1.67 | 1.92 | 2.25 | 2.66 | 3.30 | 4.34 |
此外,因为Web数据集的1百万个流明显多于偏度数据集中的25万个流. 根据式(8)、(12)可知,流的数目越多,取得相同误差上界的概率越小;反之,在相同概率的保证下,流数目越多,误差上界越大. Web数据集下流频率的平均相对误差更大.
3.2. 大象流测量
使用Web page探测大象流的实验结果如图5所示. 图中,P为精准度,R为召回率,F1为调和平均数. 从精准度来看,随着内存的变化,MFS和Elastic均接近100%,高于CMH、WavingSketch和MVS-ketch[25]. 即使在200 kB内存下,MFS召回的流全部是大象流,没有出现假阳性. 从召回率来看,MFS、CMH和MVSketch均为100%,优于Elastic和WavingSketch. Elastic召回率较低的原因是采用了非确定性的大象流替换策略,有一定概率将大象流误判为小流. MFS采用阈值的确定性替换,保证被替换掉的流是更小的流,提升了召回率. 从综合评价指标的调和平均数来看,MFS接近100%,即无丢失,无误报地召回了每一个大象流,明显优于其他对比方案.
图 5
表 3 Web数据集下大象流测量的平均相对误差
Tab.3
方案 | e/10−3 | |||||
M=200 kB | M=300 kB | M=400 kB | M=500 kB | M=600 kB | M=700 kB | |
Elastic | 38.5 | 36.9 | 36.7 | 36.6 | 36.3 | 36.2 |
CMH | 17.0 | 6.90 | 4.29 | 2.75 | 1.87 | 1.53 |
MVSketch | 43.8 | 22.2 | 13.9 | 9.87 | 7.23 | 5.57 |
WavingSketch | 168 | 102 | 72.1 | 63.0 | 48.6 | 41.7 |
MFS | 2.97 | 1.32 | 1.04 | 0.822 | 0.725 | 0.689 |
3.3. 超点测量
CAIDA的超点测量结果如图6所示. 从精准度来看,MFS、WavingSketch和CUH在不同内存限制下均为1, 即召回的流全部为真实的超点,优于CMH和Spread. 从召回率来看,MFS和CMH类似,当内存大于700 kB时,召回了全部的超点,优于其他方案. MFS召回率会随着内存的提升而提升,这是因为分流过滤器部分内存增大后能够更加精准地去重,减小假阳性,提升了召回率. 从调和平均数来看,MFS在所有内存下优于CMH、CUH、Spread和WavingSketch,达到综合最优. 此外,从超点的不同连接数测量的平均相对误差来看,如图6(d)和表4所示. 当内存为500 kB时,与Spread、CMH、 CUH和WavingSketch相比,MFS的超点测量平均相对误差分别降低了2.95、1.28、1.25和1.11倍.
图 6
表 4 CAIDA数据集下超点测量的平均相对误差
Tab.4
方案 | e/10−3 | |||||
M=500 kB | M=600 kB | M=700 kB | M=800 kB | M=900 kB | M= | |
CMH | 37.3 | 23.6 | 16.1 | 12.0 | 9.45 | 7.82 |
CUH | 36.1 | 22.5 | 14.9 | 10.8 | 8.26 | 6.59 |
Spread | 85.5 | 86.7 | 83.2 | 83.8 | 86.0 | 82.8 |
WavingSketch | 32.2 | 23.3 | 14.7 | 11.9 | 7.87 | 5.04 |
MFS | 29.0 | 19.0 | 11.7 | 7.73 | 6.37 | 4.82 |
随着内存的变大,MFS的测量误差逐渐减小并始终低于其他方案. MFS误差的降低,得益于内存变大后分流过滤器精度的提升,进而提升了统计过滤器的精度.
3.4. 吞吐量
图 7
图 8
超点测量任务中的插入吞吐量如图9所示. 插入吞吐量超过14.88 Mp/s的方案为MFS、Spread和WavingSketch. MFS高的超点插入吞吐量来源于分流过滤器的一次哈希多次映射以及统计过滤器的非对称插入查询算法.
图 9
4. 结 语
本文提出新型的多重过滤草图MFS,借助前置分流过滤器有选择地去除重复数据包,满足了流频率测量、大象流测量与超点测量任务的需要. MFS的统计过滤器部分进一步被划分为3级,以契合偏态分布的流量特征,从而提高了方案的内存利用率,减小了大象流和小流之间的相互干扰,提升了测量精度. 在统计过滤器部分,设计非对称的插入查询算法,利用流分布特征来提高算法的插入和查询吞吐量.
实验结果表明,本文算法不仅兼顾了流频率测量和大象流测量,而且能够完成超点测量任务. 从测量误差来看,所提的MFS在每一项测量任务上的误差均低于其他方案,且算法在不同任务下的吞吐量均高于14.88 Mp/s,即满足10 Gb/s的链路速度要求. 此外,FPGA部署能够明显提升算法的吞吐量,但是为了避免算法中出现的回路,提升硬件的执行效率,还须对算法进一步调整. 笔者将其作为下一步的研究工作.
参考文献
DAP-sketch: an accurate and effective network measurement sketch with deterministic admission policy
[J].DOI:10.1016/j.comnet.2021.108155 [本文引用: 1]
Adaptive measurements using one elastic sketch
[J].DOI:10.1109/TNET.2019.2943939 [本文引用: 2]
OrderSketch: an unbiased and fast sketch for frequency estimation of data streams
[J].DOI:10.1016/j.comnet.2021.108563 [本文引用: 1]
Elastically augmenting the control-path throughput in SDN to deal with internet DDoS attacks
[J].
Tree sketch: an accurate and memory efficient sketch for network-wide measurement
[J].DOI:10.1016/j.comcom.2022.07.009 [本文引用: 1]
A high-performance invertible sketch for network-wide superspreader detection
[J].DOI:10.1109/TNET.2022.3198738 [本文引用: 2]
Pyramid family: generic frameworks for accurate and fast flow size measurement
[J].
An improved data stream summary: the count-min sketch and its applications
[J].DOI:10.1016/j.jalgor.2003.12.001 [本文引用: 1]
New directions in traffic measurement and accounting: focusing on the elephants, ignoring the mice
[J].
Finding frequent items in data streams
[J].DOI:10.1016/S0304-3975(03)00400-6 [本文引用: 1]
Diamond sketch: accurate per-flow measurement for big streaming data
[J].DOI:10.1109/TPDS.2019.2923772 [本文引用: 1]
A fast and compact invertible sketch for network-wide heavy flow detection
[J].DOI:10.1109/TNET.2020.3011798 [本文引用: 1]
/
〈 |
|
〉 |
