CU-Sketch
提出文章《New Directions in Traffic Measurement and Accounting》的其中某一节
基于Multistage Filter基础上提出的优化算法
Multistage Filter
平行处理parallel
流F通过多个对应法则映射入多个哈希表,若F在这些哈希表中所对应的桶的计数器值都大于某个界限,则计入内存
哈希冲突:
1、小流都集中在一个桶里,桶值大于界限
2、大流对小流的影响大
The serial multistage filter
将一个echo分为d个阶段,每个阶段进行映射(?用同一个映射法则),设置界限为T/d(T是流总量),一个echo中所有阶段中计数器数都大于T/d的流被记录,只会出现第二种哈希冲突
(?要多设置一个数组记录每一个阶段数据量)
缺点:
1、一个echo中,早期的流量大于后期(?)
On one hand the early stages shield later stages from much of the traffic, and this contributes to stronger filtering.
2、界限设置得小(T/d),过滤效果弱
Conservative update of counters
The first change:for parallel filters & packets that don't pass the filter
F在d个哈希表中对应d个计数器,只将F的数据量加入d个计数器中数值最小的计数器,其他的计数器值若小于最小计数器的新值,则更新其值为最小计数器的新值
优点:最后得到的估计值会更精确(一直取最小计数器值,cm取的是一个echo结束后所有计数器中的最小值)
The second change: for both parallel & serial filters
当一个包的所有计数器值都大于界限时,这个包被计入内存,此后这个数据包进入时,其计数器将不再增加
优点:减少哈希碰撞带来的影响(第一种哈希碰撞的情况)
参考文献:
[1] Cristian Estan, George Varghese, New Directions in Traffic Measurement and Accounting
[2] 赵宗义11,《常见sketch简介》,https://blog.csdn.net/nankai0912678/article/details/109529683
[3] void_念,《Sketch调研》,https://blog.csdn.net/u012332103/article/details/79702495