ABNF
BNF是计算机领域中定义计算机语言的最常用的工具,包括C语言、Pascal 语言、Java 语言都可以用 BNF或者扩展BNF(EBNF)语言定义。 而ABNF(另一种扩展的BNF)由于其简单而强大,成为互联网领域中最常用的文本描述语言的定义工具。在绝大多数的互联网领域中,文本描述语言的规格化定义都采用了ABNF 。
ABNF 解析器
菊风对 ABNF 语法分析作了比较深入的研究,形成了自己独有的 ABNF 编解码技术。这些技术在协议栈产品中的广泛应用, 使得协议栈的协议分析性能有了很大提高。在我们对 SIP 协议栈进行的对比测试中,在同样的环境和同样的测试用例下, 菊风产品的协议编解码性能是同类型产品的3到9倍(参考 SIP 协议栈性能)。
核心竞争力
字符集处理
协议字符集管理机制只需要做到一次扫描就可以把数据信息解析出来,据测试,使用这种方法的编解码效率提高3-9倍.
一般的协议栈软件在进行协议分析时使用的是特征字符扫描技术,特征字符如空格、分号、逗号等被用作第一次扫描时的协议字段的分隔符,每个字段的详细解码在第二次扫描中完成。这种做法的结果是一次协议解码需要多次扫描。菊风的协议栈软件采用独特的字符集技术,对协议栈的分析可以做到一次扫描完成,可有效的提高协议分析的速度。
 
精确语法错误定位
 
独特的 token管理技术
一般的协议栈软件在判断某个字串是否为预先定义的 token时会采用字串比较的方式。这种方式在协议报文中含有大量 token时会严重影响协议分析的速度。菊风公司的协议栈产品对 token 的管理同时采用两种方式:一种是基于 hash表实现 token 信息的快速查找;一种是基于 token 的首字母、长度和特定字符的多次匹配。这两种技术解决了token匹配在协议分析中常常成为性能瓶颈的问题。
将 Dump Stack 应用到 ABNF Parser,可以精确到字符地定位协议语法错误,并指出错误原因,同时提供协议分析的过程堆栈。 如在示例的sip消息中,错误是没有forward value,Dump Stack 明确地指出了报文的语法错误。 另外,Dump Stack作为一个独立的模块,也可以应用到其它任何模块中,如 dbuf、fsm 等。
 

浙公网安备 33020902000186号 | ICP备案号:浙ICP备15019097号-4

咨询电话
0574-87901227
咨询邮箱:sales@juphoon.com
或留下您的信息,稍后我们会与您联系!