[发明专利]一种基于DFA的协议解析方法有效
申请号: | 201310102083.0 | 申请日: | 2013-03-27 |
公开(公告)号: | CN103188267A | 公开(公告)日: | 2013-07-03 |
发明(设计)人: | 倪宏;李军;陈君;李明哲 | 申请(专利权)人: | 中国科学院声学研究所;北京中科华影传媒技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京亿腾知识产权代理事务所 11309 | 代理人: | 陈霁 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 dfa 协议 解析 方法 | ||
技术领域
本发明涉及协议解析,尤其涉及一种基于DFA的协议解析方法。
背景技术
协议是各种计算机应用中及应用间通信的方式,而协议解析成为一种特别是在网络应用中不可或缺的技术。通讯双方将通信内容封装在协议中,再将协议字符串传递给对方。进一步,从协议字符串中解析出协议内容的速度,直接影响系统的性能。
协议解析,其本质为字符串中协议字段的查找。目前主要的方法有纯软件的协议解析、基于字符串匹配算法的协议解析和基于硬件的协议解析等。纯软件的解析方法使用操作系统中的字符串查找和比较函数,其性能非常有限。基于字符串匹配算法的协议解析虽然比使用操作系统的字符串函数快很多,但还是受服务器芯片性能限制而越来越无法满足高并发、大数据量的网络应用需求。随着网络应用的快速发展,出现了基于硬件的协议解析方法,这种解析方法的性能较高。然而,基于硬件的协议解析方法存在扩展性差的缺陷,只能适用于一些预设的固定场景。
发明内容
本发明的目的是提供一种能够克服上述缺陷的基于DFA引擎的协议解析方法。
本发明提供了一种基于DFA的协议解析方法,包括:获取待解析协议内容中的字段名称和字段分割符;将所述字段名称和所述字段分割符作为模式串,根据所述模式串构建模式查找树;将所述模式查找树和待解析协议内容作为有限状态自动机的输入,利用所述DFA在待解析协议内容中对所述模式串进行匹配;以及根据匹配结果将待解析协议中的协议字段值提取出来。
优选地,所述模式查找树的根节点不包含字符,除根节点之外的其他节点至少包含一个字符,每个节点的所有子节点包含的字符都不相同。
优选地,根据所述模式串构建模式查找树的步骤包括:对所述模式查找树进行优化压缩,在优化压缩后的模式查找树中,除根节点之外的其他节点包含一个或多个字符。
优选地,所述模式串在所述查找树中是从根节点到其他任一节点的路径上的所有节点中包含的字符的顺序组合。
优选地,所述模式查找树的各个节点对应于所述DFA的各个状态,当所述匹配中出现失配时,所述DFA状态从所述模式查找树中对应DFA当前状态的节点跳转到下一节点。
优选地,所述利用所述DFA在待解析协议内容中对所述模式串进行匹配的步骤包括:通过利用DFA在待解析协议内容中匹配所述字段名称,得到所述字段名称在待解析协议内容中的字段名称位置;通过利用DFA在待解析协议内容中所述字段名称位置开始匹配所述字段分割符,得到与所述字段名称对应的字段分割符的位置;以及根据所述字段名称位置及其对应的字段分割符的位置,提取出与所述字段名称对应的协议字段值。
优选地,所述字段名称和所述字段分割符的获取是通过待解析协议的扩展巴克斯范式ABNF实现的。
优选地,所述模式串中包含一个或多个字段名称和一个字段分割符。
本发明一方面使用字符串多模式匹配构建模式查找树,另一方面使用DFA引擎,构建的模式查找树中的各个节点作为DFA中的各个状态,通过DFA引擎实现了字符串的快速匹配,大大提高了协议解析速度。
附图说明
图1是根据本发明实施例的基于DFA的协议解析方法的流程图;
图2是根据本发明实施例的模式查找树的示意图;
图3是根据本发明实施例的模式查找树在压缩后的示意图;
图4是根据本发明实施例的基于DFA的匹配示意图;以及
图5是根据本发明实施例的根据匹配位置获取字段值的示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明提出了一种使用DFA引擎的协议快速解析方法,首先根据待解析协格式中的模式串构建模式匹配查找树,将查找树的各个节点作为DFA状态机的不同状态,使用DFA引擎对原始文本进行快速匹配查找,找到协议中相应的模式串后给出协议内容的定位信息,进一步可解析得到相应的协议内容。本发明通过将多模式匹配与DFA引擎相结合,大大提高了协议解析速度。
图1是根据本发明实施例的基于DFA的协议解析方法的流程图。
在步骤101,获取待解析协议中的字段名称和字段分割符。
在接收到待解析协议内容后,可根据待解析协议的扩展巴克斯范式(Angmented Backus Naur Form,ABNF)等格式得到待解析协议中的各个字段名称和字段分割符。
在步骤102,形成待查找模式串。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所;北京中科华影传媒技术有限公司,未经中国科学院声学研究所;北京中科华影传媒技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310102083.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:散热方法和计算机
- 下一篇:一种轨道式巡检机器人的精确定位方法