报文匹配方法、状态机编译方法及设备组成比例

技术编号:9840546 阅读:106 留言:0更新日期:2014-04-02 03:45
本发明专利技术实施例提供一种报文匹配方法、状态机编译方法及设备。匹配方法包括:根据状态机对接收到的报文中各个协议字段进行匹配,输出字段解析结果和字段识别结果中的至少一个;状态机包括关键字子状态机、位置子状态机和域值子状态机;位置子状态机用于对位置敏感字段进行字段解析和字段识别中的至少一个;关键字子状态机用于对关键字敏感字段进行匹配,并在确认有特定的关键字时,跳转到对应的域值子状态机;域值子状态机用于查找特定的关键字的域值是否有用户感兴趣的某种模式,如果有,则输出字段解析结果和字段识别结果中的至少一个。本发明专利技术技术方案能够通过同一引擎实现对报文的字段解析与识别,减少逻辑资源的占用,提高集成化的灵活性。

【技术实现步骤摘要】
报文匹配方法、状态机编译方法及设备
本专利技术实施例涉及通信技术,尤其涉及一种报文匹配方法、状态机编译方法及设备。
技术介绍
网络中报文的格式日益复杂,越来越多的协议承载于超文本传输协议(HypertextTransferProtocol,简称为HTTP)之上,针对传统HTTP报文的字段识别已经无法满足产品的需求,并且字段解析也越来越重要。针对传统HTTP报文的匹配过程包括字段解析和字段识别两个独立的过程。具体的,对字段解析规则进行编译,获得用于字段解析过程的状态机,并对字段识别规则进行编译,获得用于字段识别过程的状态机,然后将这两个状态机加载到硬件的存储器(Memory)中,字段解析引擎接收到报文后,按照用于字段解析过程的状态机,对报文进行字段解析并向字段识别引擎输出字段解析结果;字段识别引擎接收字段解析引擎输出的字段解析结果,按照用于字段识别过程的状态机,对报文进行字段识别并最终输出字段识别结果。在现有技术中,字段解析引擎和字段识别引擎不能复用,占用的逻辑资源较多,尤其是集成化时灵活性较差。
技术实现思路
本专利技术实施例提供一种报文匹配方法、状态机编译方法及设备,用以通过同一引擎实现对报文的字段解析与识别,减少逻辑资源的占用,提高集成化的灵活性。第一方面提供一种报文匹配方法,应用于报文匹配设备,所述方法包括:接收报文,所述报文包括多个协议字段,所述多个协议字段包括至少一个位置敏感字段和至少一个关键字敏感字段;根据状态机对所述报文的各个协议字段进行匹配,输出与所述协议字段对应的字段解析结果和与所述协议字段对应的字段识别结果中的至少一个匹配结果;其中,所述状态机包括:关键字子状态机、至少一个位置子状态机、以及至少一个域值子状态机;所述至少一个位置子状态机与所述至少一个位置敏感字段一一对应,所述至少一个位置子状态机之间按照所述至少一个位置敏感字段相互之间的位置顺序进行跳转,且最后一个所述位置子状态机跳转到所述关键字子状态机;每个位置子状态机用于供所述报文匹配设备对所述位置子状态机对应的位置敏感字段进行字段解析和字段识别中的至少一个,并对应地输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果,或者跳过所述位置子状态机对应的位置敏感字段的匹配,进入下一个位置子状态机;所述关键字子状态机用于供所述报文匹配设备对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,则跳转到与所述特定的关键字对应的域值子状态机,并输出字段解析结果和字段识别结果作为所述匹配结果;所述域值子状态机用于供所述报文匹配设备查找所述特定的关键字的域值是否有用户感兴趣的某种模式,如果有,则输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果。结合第一方面,在第一方面的第一种可能的实现方式中,其中一个或多个位置子状态机包括第一解析结果输出节点和第一识别结果输出节点中的至少一个,以及一个或多个第一匹配节点,所述一个或多个匹配节点用于判断输入的协议字段是否是满足“在报文中的特定位置有第一特定字符串时”条件的协议字段,如果是,则跳转到所述第一解析结果输出节点以及所述第一识别结果输出节点中的至少一个;或者,其中一个或多个位置子状态机不包括所述第一解析结果输出节点和所述第一识别结果输出节点,也不包括一个或多个第一匹配节点,直接跳过本位置子状态机。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述关键字子状态机包括第二解析结果输出节点和第二识别结果输出节点,以及一个或多个第二匹配节点,所述一个或多个第二匹配节点用于对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,跳转到所述第二解析结果输出节点和所述第二识别结果输出节点。结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述域值子状态机包括第三解析结果输出节点和第三识别结果输出节点中的至少一个,以及一个或多个第三匹配节点,所述一个或多个第三匹配节点用于匹配所述特定的关键字的域值中是否有第二特定字符串,如果有,则跳转至所述第三解析结果输出节点和所述第三识别结果输出节点中的至少一个。第二方面提供一种状态机编译方法,包括:接收规则文件,所述规则文件中记载有匹配规则;获取所述规则文件中的各个匹配规则;将各个匹配规则分成至少一个位置敏感规则以及至少一个关键字敏感规则,所述关键字敏感规则中包括关键字到域值特定字符串集合的映射关系;从所述至少一个关键字敏感规则获取与各个关键字分别对应的至少一个特定字符串集合;将每个位置敏感规则编译成一个位置子状态机,并连接各个位置子状态机;将所述至少一个关键字敏感规则编译成一个关键字子状态机;将所述至少一个特定字符串集合分别编译至对应的至少一个域值子状态机;其中,所述至少一个位置子状态机与所述至少一个位置敏感字段一一对应,所述至少一个位置子状态机之间按照所述至少一个位置敏感字段相互之间的位置顺序进行跳转,且最后一个所述位置子状态机跳转到所述关键字子状态机;每个位置子状态机用于供报文匹配设备对所述位置子状态机对应的位置敏感字段进行字段解析和字段识别中的至少一个,并对应地输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果,或者跳过所述位置子状态机对应的位置敏感字段的匹配,进入下一个位置子状态机;所述关键字子状态机用于供所述报文匹配设备对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,则跳转到与所述特定的关键字对应的域值子状态机,并输出字段解析结果和字段识别结果作为所述匹配结果;所述域值子状态机用于供所述报文匹配设备查找所述特定的关键字的域值是否有用户感兴趣的某种模式,如果有,则输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果。结合第二方面,在第二方面的第一种可能的实现方式中,其中一个或多个位置子状态机包括第一解析结果输出节点和第一识别结果输出节点中的至少一个,以及一个或多个第一匹配节点,所述一个或多个匹配节点用于判断输入的协议字段是否是满足“在报文中的特定位置有第一特定字符串时”条件的协议字段,如果是,则跳转到所述第一解析结果输出节点以及所述第一识别结果输出节点中的至少一个;或者,其中一个或多个位置子状态机不包括所述第一解析结果输出节点和所述第一识别结果输出节点,也不包括一个或多个第一匹配节点,直接跳过本位置子状态机。结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述关键字子状态机包括第二解析结果输出节点和第二识别结果输出节点,以及一个或多个第二匹配节点,所述一个或多个第二匹配节点用于对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,跳转到第二解析结果输出节点和第二识别结果输出节点。结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述域值子状态机包括第三解析结果输出节点和第三识别结果输出节点中的至少一个,以及一个或多个第三匹配节点,所述一个或多个第三匹配节点用于匹配所述特定的关键字的域值中是否有第二特定字符串,如果有,则跳转至所述第三解析结果输出节点和所述第三识别结果输出节点中的至少一个。第三方面提供一种报本文档来自技高网...
报文匹配方法、状态机编译方法及设备

【技术保护点】
一种报文匹配方法,其特征在于,应用于报文匹配设备,所述方法包括:接收报文,所述报文包括多个协议字段,所述多个协议字段包括至少一个位置敏感字段和至少一个关键字敏感字段;根据状态机对所述报文的各个协议字段进行匹配,输出与所述协议字段对应的字段解析结果和与所述协议字段对应的字段识别结果中的至少一个匹配结果;其中,所述状态机包括:关键字子状态机、至少一个位置子状态机、以及至少一个域值子状态机;所述至少一个位置子状态机与所述至少一个位置敏感字段一一对应,所述至少一个位置子状态机之间按照所述至少一个位置敏感字段相互之间的位置顺序进行跳转,且最后一个所述位置子状态机跳转到所述关键字子状态机;每个位置子状态机用于供所述报文匹配设备对所述位置子状态机对应的位置敏感字段进行字段解析和字段识别中的至少一个,并对应地输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果,或者跳过所述位置子状态机对应的位置敏感字段的匹配,进入下一个位置子状态机;所述关键字子状态机用于供所述报文匹配设备对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,则跳转到与所述特定的关键字对应的域值子状态机,并输出字段解析结果和字段识别结果作为所述匹配结果;所述域值子状态机用于供所述报文匹配设备查找所述特定的关键字的域值是否有用户感兴趣的某种模式,如果有,则输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果。...

【技术特征摘要】
1.一种报文匹配方法,其特征在于,应用于报文匹配设备,所述方法包括:接收报文,所述报文包括多个协议字段,所述多个协议字段包括至少一个位置敏感字段和至少一个关键字敏感字段;根据状态机对所述报文的各个协议字段进行匹配,输出与所述协议字段对应的字段解析结果和与所述协议字段对应的字段识别结果中的至少一个匹配结果;其中,所述状态机包括:关键字子状态机、至少一个位置子状态机、以及至少一个域值子状态机;所述至少一个位置子状态机与所述至少一个位置敏感字段一一对应,所述至少一个位置子状态机之间按照所述至少一个位置敏感字段相互之间的位置顺序进行跳转,且最后一个所述位置子状态机跳转到所述关键字子状态机;每个位置子状态机用于供所述报文匹配设备对所述位置子状态机对应的位置敏感字段进行字段解析和字段识别中的至少一个,并对应地输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果,或者跳过所述位置子状态机对应的位置敏感字段的匹配,进入下一个位置子状态机;所述关键字子状态机用于供所述报文匹配设备对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,则跳转到与所述特定的关键字对应的域值子状态机,并输出字段解析结果和字段识别结果作为所述匹配结果;所述域值子状态机用于供所述报文匹配设备查找所述特定的关键字的域值是否有用户感兴趣的某种模式,如果有,则输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果。2.如权利要求1所述的方法,其特征在于:其中一个或多个位置子状态机包括第一解析结果输出节点和第一识别结果输出节点中的至少一个,以及一个或多个第一匹配节点,所述一个或多个匹配节点用于判断输入的协议字段是否是满足“在报文中的特定位置有第一特定字符串时”条件的协议字段,如果是,则跳转到所述第一解析结果输出节点以及所述第一识别结果输出节点中的至少一个;或者,其中一个或多个位置子状态机不包括所述第一解析结果输出节点和所述第一识别结果输出节点,也不包括一个或多个第一匹配节点,直接跳过本位置子状态机。3.如权利要求1-2任一所述的方法,其特征在于:所述关键字子状态机包括第二解析结果输出节点和第二识别结果输出节点,以及一个或多个第二匹配节点,所述一个或多个第二匹配节点用于对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,跳转到所述第二解析结果输出节点和所述第二识别结果输出节点。4.如权利要求1所述的方法,其特征在于:所述域值子状态机包括第三解析结果输出节点和第三识别结果输出节点中的至少一个,以及一个或多个第三匹配节点,所述一个或多个第三匹配节点用于匹配所述特定的关键字的域值中是否有第二特定字符串,如果有,则跳转至所述第三解析结果输出节点和所述第三识别结果输出节点中的至少一个。5.一种状态机编译方法,其特征在于,包括:接收规则文件,所述规则文件中记载有匹配规则;获取所述规则文件中的各个匹配规则;将各个匹配规则分成至少一个位置敏感规则以及至少一个关键字敏感规则,所述关键字敏感规则中包括关键字到域值特定字符串集合的映射关系;从所述至少一个关键字敏感规则获取与各个关键字分别对应的至少一个特定字符串集合;将每个位置敏感规则编译成一个位置子状态机,并连接各个位置子状态机;将所述至少一个关键字敏感规则编译成一个关键字子状态机;将所述至少一个特定字符串集合分别编译至对应的至少一个域值子状态机;其中,所述至少一个位置子状态机与所述至少一个位置敏感字段一一对应,所述至少一个位置子状态机之间按照所述至少一个位置敏感字段相互之间的位置顺序进行跳转,且最后一个所述位置子状态机跳转到所述关键字子状态机;每个位置子状态机用于供报文匹配设备对所述位置子状态机对应的位置敏感字段进行字段解析和字段识别中的至少一个,并对应地输出字段解析结果和字段识别结果中的至少一个作为匹配结果,或者跳过所述位置子状态机对应的位置敏感字段的匹配,进入下一个位置子状态机;所述关键字子状态机用于供所述报文匹配设备对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,则跳转到与所述特定的关键字对应的域值子状态机,并输出字段解析结果和字段识别结果作为所述匹配结果;所述域值子状态机用于供所述报文匹配设备查找所述特定的关键字的域值是否有用户感兴趣的某种模式,如果有,则输出字段解析结果和字段识别结果中的至少一个作为所述匹配结果。6.如权利要求5所述的方法,其特征在于:其中一个或多个位置子状态机包括第一解析结果输出节点和第一识别结果输出节点中的至少一个,以及一个或多个第一匹配节点,所述一个或多个匹配节点用于判断输入的协议字段是否是满足“在报文中的特定位置有第一特定字符串时”条件的协议字段,如果是,则跳转到所述第一解析结果输出节点以及所述第一识别结果输出节点中的至少一个;或者,其中一个或多个位置子状态机不包括所述第一解析结果输出节点和所述第一识别结果输出节点,也不包括一个或多个第一匹配节点,直接跳过本位置子状态机。7.如权利要求5-6任一所述的方法,其特征在于:所述关键字子状态机包括第二解析结果输出节点和第二识别结果输出节点,以及一个或多个第二匹配节点,所述一个或多个第二匹配节点用于对所述关键字敏感字段进行匹配,以确认是否有特定的关键字,如果有,跳转到第二解析结果输出节点和第二识别结果输出节点。8.如权利要求5所述的方法,其特征在于:所述域值子状态机包括第三解析结果输出节点和第三识别结果输出节点中的至少一个,以及一个或多个第三匹配节点,所述一个或多个第三匹配节点用于匹配所述特定的关键字的域值中是否有第二特定字符串,如果有,则跳转至所述第三解析结果输出节点和所述第三识别结果输出节点中的至少一个。9.一种报文匹配设备,其特征在于,包括:接收模块,用于接收报文,所述报文包括多个协议字...

【专利技术属性】
技术研发人员:吴富强周坤胜潘扬梅
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1