网络测量中基于Sketch方法的简单介绍

Sketch是一种节省存储空间的网络流测量方法,通过哈希函数减少计数器的使用。Count-min Sketch是其典型实现,利用多个哈希函数降低误差。尽管在处理少量出现的元素时准确度较低,但因其简单、低空间开销和亚线性更新时间,被广泛应用。SketchVisor等工具可应对不同问题,优化流量处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sketch介绍

为什么要用Sketch

  • 网络流主要根据五元组、主机地址、包的大小来分类。在网络中存在各种各样的包,如果按照上述分类方法,对每一种包都分配一个计数器来储存,虽然测量准确,那么存放计数器的空间开销会非常大。所以使用哈希的方法,根据哈希值的范围来确定的所需的存储空间,各种包根据哈希值再次归类,可以大大减少存储空间。这样使用哈希来估计流的方法称为Sketch-based方法。

Count-min sketch

如何处理包

  • 使用哈希的方法会产生冲突,多个种类的包哈希到同一个桶内,那么这个桶的计数值就会偏大,为了减少误差,设计了count-min sketch
  • 设置多个哈希函数,开辟一个二维地址空间,包经过不同哈希函数的处理,得到对应的哈希值,而这个哈希值就是sketch(概要)。这些哈希值可能产生冲突,多个种类的包可能有相同的哈希值,则根据哈希值来确定包出现的次数则会偏大,所以设立多个哈希函数,取最小的哈希值,则最接近实际包数据。

1092889-20180810171738721-123331582.png

count-min sketch 某种实现


class CountMinSketch {
    long estimators[][] = new long[d][w]    // d and w are design parameters
    long a[] = new l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值