[发明专利]报文匹配方法、状态机编译方法及设备有效
申请号: | 201310698114.3 | 申请日: | 2013-12-18 |
公开(公告)号: | CN103685280A | 公开(公告)日: | 2014-03-26 |
发明(设计)人: | 吴富强;周坤胜;潘扬梅 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 报文 匹配 方法 状态机 编译 设备 | ||
技术领域
本发明实施例涉及通信技术,尤其涉及一种报文匹配方法、状态机编译方法及设备。
背景技术
网络中报文的格式日益复杂,越来越多的协议承载于超文本传输协议(Hypertext Transfer Protocol,简称为HTTP)之上,针对传统HTTP报文的字段识别已经无法满足产品的需求,并且字段解析也越来越重要。
针对传统HTTP报文的匹配过程包括字段解析和字段识别两个独立的过程。具体的,对字段解析规则进行编译,获得用于字段解析过程的状态机,并对字段识别规则进行编译,获得用于字段识别过程的状态机,然后将这两个状态机加载到硬件的存储器(Memory)中,字段解析引擎接收到报文后,按照用于字段解析过程的状态机,对报文进行字段解析并向字段识别引擎输出字段解析结果;字段识别引擎接收字段解析引擎输出的字段解析结果,按照用于字段识别过程的状态机,对报文进行字段识别并最终输出字段识别结果。在现有技术中,字段解析引擎和字段识别引擎不能复用,占用的逻辑资源较多,尤其是集成化时灵活性较差。
发明内容
本发明实施例提供一种报文匹配方法、状态机编译方法及设备,用以通过同一引擎实现对报文的字段解析与识别,减少逻辑资源的占用,提高集成化的灵活性。
第一方面提供一种报文匹配方法,应用于报文匹配设备,所述方法包括:
接收报文,所述报文包括多个协议字段,所述多个协议字段包括至少一个位置敏感字段和至少一个关键字敏感字段;
根据状态机对所述报文的各个协议字段进行匹配,输出与所述协议字段对应的字段解析结果和与所述协议字段对应的字段识别结果中的至少一个匹配结果;
其中,所述状态机包括:关键字子状态机、至少一个位置子状态机、以及至少一个域值子状态机;
所述至少一个位置子状态机与所述至少一个位置敏感字段一一对应,所述至少一个位置子状态机之间按照所述至少一个位置敏感字段相互之间的位置顺序进行跳转,且最后一个所述位置子状态机跳转到所述关键字子状态机;每个位置子状态机用于供所述报文匹配设备对所述位置子状态机对应的位置敏感字段进行字段解析和字段识别中的至少一个,并对应地输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果,或者跳过所述位置子状态机对应的位置敏感字段的匹配,进入下一个位置子状态机;
所述关键字子状态机用于供所述报文匹配设备对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,则跳转到与所述特定的关键字对应的域值子状态机,并输出字段解析结果和字段识别结果作为所述匹配结果;
所述域值子状态机用于供所述报文匹配设备查找所述特定的关键字的域值是否有用户感兴趣的某种模式,如果有,则输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果。
结合第一方面,在第一方面的第一种可能的实现方式中,其中一个或多个位置子状态机包括第一解析结果输出节点和第一识别结果输出节点中的至少一个,以及一个或多个第一匹配节点,所述一个或多个匹配节点用于判断输入的协议字段是否是满足“在报文中的特定位置有第一特定字符串时”条件的协议字段,如果是,则跳转到所述第一解析结果输出节点以及所述第一识别结果输出节点中的至少一个;
或者,
其中一个或多个位置子状态机不包括所述第一解析结果输出节点和所述第一识别结果输出节点,也不包括一个或多个第一匹配节点,直接跳过本位置子状态机。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述关键字子状态机包括第二解析结果输出节点和第二识别结果输出节点,以及一个或多个第二匹配节点,所述一个或多个第二匹配节点用于对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,跳转到所述第二解析结果输出节点和所述第二识别结果输出节点。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述域值子状态机包括第三解析结果输出节点和第三识别结果输出节点中的至少一个,以及一个或多个第三匹配节点,所述一个或多个第三匹配节点用于匹配所述特定的关键字的域值中是否有第二特定字符串,如果有,则跳转至所述第三解析结果输出节点和所述第三识别结果输出节点中的至少一个。
第二方面提供一种状态机编译方法,包括:
接收规则文件,所述规则文件中记载有匹配规则;
获取所述规则文件中的各个匹配规则;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310698114.3/2.html,转载请声明来源钻瓜专利网。