BNF is the most common tool for defining computer languages in computer science. BNF or Extended BNF (EBNF) can define languages including the C language, Pascal and Java. Augmented BNF (ABNF – another kind of BNF), due to its simple but powerful features, has become the most commonly used definition tool for textual descriptive language on the Internet. ABNF is adopted as the standardized definition for textual descriptive language in most areas of the Internet. In the RFC documents collection of IETF (The Internet Engineering Task Force), RFC2234 is a special instruction describing ABNF specification and its core rules.
Our ABNF Parser
ANBF syntax is adopted to define SDP, MGCP, SIP and other protocols. This process requires reusable analytical techniques for specialized processing which resulted in the Juphoon ABNF parser. Juphoon has created its unique ABNF codec techniques based on in-depth research about ABNF parsing. The extensive application of these techniques in the protocol stack products has greatly improved the parser performance of the protocol stack. In our comparison test on SIP stack, the protocol codec performance of Juphoon products is 3-9 times higher than other products of the same type under the same test conditions.(see performance of SIP protocol stack.) These ABNF codec techniques have become Juphoon’s core competencies in stack development.
Handling of character set
Ordinary protocol stacks use the technique of scanning special characters in protocol analysis, namely, characters such as spaces, semicolons, commas and the like are used as separators of protocol field during the first scanning; the detailed decoding of each string field is completed in the second scanning. In this way Protocol decoding needs repeated scanning. However, Juphoon’s protocol stack adopts a unique character set that can analyze stacks by scanning once, which effectively increases the speed of stack analysis.
Character set
Location of syntax error
Applying Dump Stack to theABNF Parser, enables protocol syntax errors to be located as precisely as the character, and provides stacks for the process of protocol analysis. Thus in the example of the sip message, the error is missing “forward value”, Dump Stack can clearly point out the syntax error in the message. Besides, Dump Stack, as an independent module, can be applied to other modules such as dbuf, fsm, etc.
Ordinary protocol stacks use string comparison to judge whether a word string is a predefined token, which delays the analyzing speed for containing large numbers of tokens in protocol messages. Juphoon‘s protocol stack products apply two measures simultaneously to manage tokens: one is a quick search for token information based on a hash table, the other is multiple matching based on the initial char, length and special char of the token. These two techniques solve the common problem of token matching becoming a performance bottleneck in protocol analysis.
Advisory telephone
Advisory mailbox:sales@juphoon.com
Or leave your message, we will contact you later!