Saturday, December 11, 2010

How to Build DPI Products? (Part V - Regular Expression Matching)

 
Continuing my "How to Build a DPI product?" series (see previous parts - I, II, III, IV) this time a paper by Fang Yu, UC Berkeley;  Zhifeng Chen Google Inc.; Yanlei Diao University of Massachusetts, Amherst (picture); T. V. Lakshman Bell Laboratories and Randy H. Katz, UC Berkeley.

See "Fast and Memory-Efficient Regular Expression Matching for Deep Packet Inspection Matching for Deep Packet Inspection" - here.

ABSTRACT

Packet content scanning at high speed has become extremely important due to its applications in network security, network monitoring, HTTP load balancing, etc. In content scanning, the packet payload is compared against a set of patterns specified as regular expressions.

In this paper, we first show that memory requirements using traditional methods are prohibitively high for many patterns used in packet scanning applications. We then propose regular expression rewrite techniques that can effectively reduce memory usage. Further, we develop a grouping scheme that can strategically compile a set of regular expressions into several engines, resulting in remarkable improvement of regular expression matching speed without much increase in memory usage.

We implement a new DFA-based packet scanner using the above techniques. Our experimental results using real-world traffic and patterns show that our implementation achieves a factor of 12 to 42 performance improvement over a commonly used DFAbased scanner. Compared to the state-of-art NFA-based implementation, our DFA-based packet scanner achieves 50 to 700 times speedup.

Blog News: Permanent Link to the PCRF-PCEF Compatibility Matrix


Due to the popularity of the PCRF-PCEF (DPI) Compatibility Matrix, I added a permanent link, just below the header, providing direct access to the most recent revision of the table (see below).
  
See also a recent piece by Ray Le Maistre, International Managing Editor, LightReading - "Who Is Packing a PCRF?" - here (note the comment made by Ray referencing to my table - thanks, Ray).