网络测量中基于Sketch方法的调查
LD Sketch
- 应用:网络流中的
- 异常检测
- heavy hitters检测
- heavy changers检测
- 优点:准确度、可扩展性
- 特点:
- 利用基于计数和sketch的技术
- 并行式架构(合并分布的流)
- 分为本地检测和分布检测
- 由两种启发式增强方法
- [1]
SeqHash
- 应用:
- 入侵防御
- 大流检测
- heavy hitters/changers 恢复
- 优点:快速精确,资源开销小(仅略大于理论值)
- [2]
What’s New
在流量之间找到绝对的、相对的和可变的差异。
- 利用sketch来记录流量
- 优点:
- 迅速
- 空间开销小
- [3]
reversible sketch
流量变化检测,异常检测 并不能保存流量的关键信息(IP etc.),难以恢复异常流量的关。推断流的关键信息
- 特点:
- 以很小的内存开销,记录包的信息,
- 确定变化(异常)的流,以及流的关键信息
- [6]
Count-Sketch和Count-min sketch
- 有相似性能
- 应用:高速流的统计
- 优点;
- 空间开销小
- 速度较快
- [7]
Diamond Sketch: Accurate Per-flow Measurement
for Real IP Streams
- 针对skewed IP流,sketch的测量空间效率低,Diamond Sketch为每个流动态分配sketch数。
- 优点:提升了测量的精确度并保持一定的速度。
- [8]
Finding top-k elements in data streams
- 应用:检测数据流中最常见元素
- 优点:
- 空间开销小
- 速度快
- [9]
附录
Bloom filter
- Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合
- 历史:Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。
- 应用:用于检索一个元素是否在一个集合中。
- 特点:Bloom Filter有可能会出现错误判断,但不会漏掉判断。
- 适用场景:Bloom Filter”不适合那些“零错误的应用场合。而在能容忍低错误率的应用场合下,Bloom Filter比其他常见的算法(如hash,折半查找)极大节省了空间。
- 优点:是空间效率和查询时间都远远超过一般的算法,
- 缺点:是有一定的误识别率和删除困难。
- 更多详细信息,可见[10][11]
Quotient Filter and Cascade Filter
- Quitient Filter 和Cascade Filter算法由Bender等人设计,是一个空间效率高的概率性数据结构
- 应用:用于检索一个元素是否在一个集合中。
- 优点:对插入、查询、删除操作由高吞吐量,比Bloom Filter高了两个数量级。
- 更多详情见[12][13]
总结
- 基于sketch的方法以计数/统计为主,常用于大流/异常流量检测,也可以根据测量结果恢复出包的关键信息。
- 主要优点:
- 节省空间资源
- 速度较快
- 主要缺点:
- 不精确
- 计算开销较大
参考文献:
[1] A hybrid local and distributed sketching design for accurate and scalable heavy key detection in network data streams
[2] Sequential hashing: A flexible approach for unveiling significant patterns in high speed networks
[3] What’s New: Finding Significant Differences in Network Data Streams
[6] Reversible Sketches: Enabling Monitoring and Analysis Over High-Speed Data Streams
[7] An improved data stream summary: the count-min sketch and its applications
[8] Diamond Sketch: Accurate Per-flow Measurement
[9] Finding top-k elements in data streams
[10] https://www.cnblogs.com/zhxshseu/p/5289871.html
[11] https://en.wikipedia.org/wiki/Bloom_filter
[12] https://en.wikipedia.org/wiki/Quotient_filter
[13] Don’t Thrash: How to Cache your Hash on Flash