网络测量常见算法之二:虚拟位图法

(按:这个算法的意思没看大懂,先写出来,欢迎各位批评指正!)

    书接前文,虚拟位图法为改进直接位图法内存使用过大的缺陷提出。基本思想是,仅存贮直接位图的一小部分,根据这一小部分的计数值推测总的计数值。

    什么意思呢?我的理解是,假设以源/目的地址作为FLOW_ID,则统计空间为264。采用直接位图算法时,设位图长度为226bit=8M,空间浪费大,但取太小的值可能HASH碰撞会加剧,影响统计结果准确度。此时采用虚拟位图算法,取长度为220bit=128k,大小为直接位图法的1/64在计数时,HASH函数取值空间仍为0~226-1,在虚拟位图空间(0~220)内的值,给相应位置bit置1,不在空间内则不管。最终,统计128k虚拟位图空间bit为1的总数,再乘以64,最终值为推测出的总流数。

    二者相比,直接位图法实质是虚拟位图法的一般形式,它覆盖了整个FLOW_ID空间,而虚拟位图仅覆盖了一部分。

 

    在设计虚拟位图时,必须在预知流数的基础上考虑所谓的“抽样因子”,即上文中的1/64,如果该因子与设计者预计的相差太远,将造成统计结果严重失真。

     如果流太多以致于将位图填满,则虚拟位图的统计结果不再可信;同时,如果流太少,HASH(FLOW_ID)的值无法映射到虚拟位图上,则结果仍不可信。例如,设虚拟位图覆盖了统计空间的1%,而流数为50,如果没有流被映射到虚拟位图上,统计将得出流数为0的结论;如果有1个被映射到虚拟位图上,统计将得出流数为100的结论,显然与实际数目相差太远。

    因此,“抽样因子”要在HASH冲突和推测失误二者间取折衷。

 

参考文献:Bitmap algorithms for counting active flows on high speed links

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值