An enhanced bloom filter for longest prefix matching

A Bloom filter is a succinct data structure for membership queries. While the filter enables a compact storage, it allows false positives when queried and exhibits an inherent tradeoff between the false positive rate and space complexity. Among many applications, IP address lookup shows promise for improvement using on-chip Bloom filters; however, high false positive rates may cause more off-chip memory access and degrade the performance significantly. We introduce a new Bloom filter called the length-aware Bloom filter (LABF) for multiple pattern matching problems. The primary idea is to explore the discrepancy in length distribution between the set of patterns and the set of prefixes of input text that are examined against the patterns. While maintaining the simplicity, LABFs outperform the standard Bloom filter when the pattern lengths are nonuniformly distributed in a wide range. Such pattern length distributions frequently occur in multiple pattern matching, e.g., longest prefix matching in IP address lookup. We derive a simple formula to configure parameters for the construction of an LABF and provide a provable guarantee for the average number of false positives. Our experimental results show that LABFs reduce the average false positive rates by a factor of 4 and 16, for IPv4 and IPv6, respectively.

[1]  Andrei Broder,et al.  Network Applications of Bloom Filters: A Survey , 2004, Internet Math..

[2]  Fang Hao,et al.  IPv6 Lookups using Distributed and Load Balanced Bloom Filters for 100Gbps Core Router Line Cards , 2009, IEEE INFOCOM 2009.

[3]  Burton H. Bloom,et al.  Space/time trade-offs in hash coding with allowable errors , 1970, CACM.

[4]  David E. Taylor,et al.  Longest prefix matching using bloom filters , 2006, TNET.

[5]  George Varghese,et al.  Hash-Based Techniques for High-Speed Packet Processing , 2010, Algorithms for Next Generation Networks.

[6]  Ming Zhong,et al.  Optimizing data popularity conscious bloom filters , 2008, PODC '08.

[7]  Jie Gao,et al.  Weighted Bloom filter , 2006, 2006 IEEE International Symposium on Information Theory.

[8]  John W. Lockwood,et al.  Deep packet inspection using parallel bloom filters , 2004, IEEE Micro.

[9]  Steven S. Lumetta,et al.  Using the Power of Two Choices to Improve Bloom Filters , 2007, Internet Math..

[10]  John W. Lockwood,et al.  Fast and Scalable Pattern Matching for Network Intrusion Detection Systems , 2006, IEEE Journal on Selected Areas in Communications.

[11]  David G. Andersen,et al.  Exact pattern matching with feed-forward bloom filters , 2012, JEAL.

[12]  Stephen E. Deering,et al.  IP Version 6 Addressing Architecture , 1995, RFC.

[13]  Fang Hao,et al.  Building high accuracy bloom filters using partitioned hashing , 2007, SIGMETRICS '07.

[14]  Li Fan,et al.  Summary cache: a scalable wide-area web cache sharing protocol , 2000, TNET.