Grammar-based SIP parser implementation with performance optimizations

In the paper we present a parser for the Session Initiation Protocol (SIP), a protocol that is a part of the 3GPP's IP Multimedia System (IMS) framework. The parser is generated by a specially designed parser generator that as an input takes an Augmented Backus Naur Form (ABNF) grammar. This type of grammar is commonly used for formal protocol syntax definitions and is used in the SIP standard. We describe in detail issues and solutions for creating parser generator that can handle ambiguous, nondeterministic grammars as the one of SIP. We show that the generated parser has performance levels comparable to widely available hand-written open-source parsers and is superior when it comes to compliance to formal SIP syntax definitions.

[1]  A. Brajdic,et al.  Measurement of SIP signaling performance for advanced multimedia services , 2009, 2009 10th International Conference on Telecommunications.

[2]  Yang Bo,et al.  SIP Offload Engine for Accelerating J2EE Based SIP Application Server , 2009, 2009 International Conference on Communication Software and Networks.

[3]  Henning Schulzrinne,et al.  Session Initiation Protocol (SIP) Torture Test Messages , 2006, RFC.

[4]  Erich M. Nahum,et al.  Evaluating SIP Proxy Server Performance , 2007 .

[5]  Margo I. Seltzer,et al.  A New Hashing Package for UNIX , 1991, USENIX Winter.

[6]  Mark Handley,et al.  SIP: Session Initiation Protocol , 1999, RFC.

[7]  Ling Shao,et al.  SIP Parsing Offload: Design and Performance , 2007, IEEE GLOBECOM 2007 - IEEE Global Telecommunications Conference.

[8]  Julia L. Lawall,et al.  A Language-Based Approach for Improving the Robustness of Network Application Protocol Implementations , 2007, 2007 26th IEEE International Symposium on Reliable Distributed Systems (SRDS 2007).

[9]  Michael Sipser,et al.  Introduction to the Theory of Computation , 1996, SIGA.

[10]  Chris Boulton,et al.  Session Initiation Protocol (SIP) Torture Test Messages for Internet Protocol Version 6 (IPv6) , 2008, RFC.

[11]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools (2nd Edition) , 2006 .

[12]  Paul V. Mockapetris,et al.  Domain names - implementation and specification , 1987, RFC.

[13]  Antti Vaha-Sipila,et al.  URLs for Telephone Calls , 2000, RFC.

[14]  Michael Scharf,et al.  Measurement of the SIP Parsing Performance in the SIP Express Router , 2007, EUNICE.

[15]  Dave Crocker,et al.  Augmented BNF for Syntax Specifications: ABNF , 1997, RFC.

[16]  Mauricio Cortes,et al.  On SIP performance , 2004, Bell Labs Technical Journal.