摘要

针对现有布鲁姆过滤器在流识别应用中对每个IP包进行相同的处理,未考虑IP包识别失效代价和硬件开销的问题,提出一种面向IP包识别的算法——CPBF(Classified and Pipelined Bloom Filter).该算法通过引入IP头中服务类型作为识别失效代价的判断依据对IP包进行分类,根据分类结果采取不同数目的 Hash函数进行映射,降低高失效代价IP包的识别失效率;同时在Hash计算中采用流水机制加速识别速率;基于概率论、微分方程等相关知识对CPBF算法进行了描述和理论分析,最后在FPGA上对算法进行实现和实验.结果表明,与标准布鲁姆过滤器、多维布鲁姆过滤器相比,CPBF在具有较低的识别失效率和硬件开销的同时,也能保持较高的识别速率.