CN106817372A - 一种基于多状态机的协议解析系统及方法 - Google Patents
一种基于多状态机的协议解析系统及方法 Download PDFInfo
- Publication number
- CN106817372A CN106817372A CN201710048041.1A CN201710048041A CN106817372A CN 106817372 A CN106817372 A CN 106817372A CN 201710048041 A CN201710048041 A CN 201710048041A CN 106817372 A CN106817372 A CN 106817372A
- Authority
- CN
- China
- Prior art keywords
- machine
- condition code
- multimode
- supervising
- state machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种基于多状态机的协议解析系统,包括:多状态机生成模块,用于定义需要的状态机以及状态机之间的跳转关系;以及,状态机匹配模块,用于待匹配数据的输入、中间匹配结果的保存以及最终匹配结果的输出。本发明还公开一种基于多状态机的协议解析方法,包括如下步骤:步骤1,初始化所有状态机,并定义各状态机之间的跳转关系,形成多状态机;步骤2,将待匹配的数据输入多状态机进行匹配,输出匹配结果。此种方案可提高解析效率,解决特征码被分段传输的问题,并可进行容错处理。
Description
技术领域
本发明涉及一种基于多状态机的协议解析系统及解析方法。
背景技术
现有的协议一般都是以键-值对的形式定义的。键也就是通常所说的特征码,值则是通常所说的有效数据。在实际操作时,通过对特征码的循环匹配,将相应的有效数据进行保存,当识别到的特征码为结束特征码的时候,则输出匹配结果。
现有的解析方法存在着如下几点不足:
(I)解析速度慢;
(II)在网络数据传输中,特征码可能被分段传输,导致特征码匹配不到;
(III)无法定义特征码出现的先后顺序;
(V)所有的特征码都聚集在一个状态机里面,可能造成状态机爆炸;
(IV)没有容错机制和跳转机制。
以下对本案涉及到的几个名词进行解释:
(I)状态:用于匹配的最小单位。比如特征码China包含有C、h、i、n和a五个状态。
(II)状态机:一个有向图形,由一组节点和一组相应的转移函数组成。
(III)前置状态:用于保存上次匹配结束时的最终状态。
发明内容
本发明的目的,在于提供一种基于多状态机的协议解析方法,其可提高解析效率,解决特征码被分段传输的问题,并可进行容错处理。
为了达成上述目的,本发明的解决方案是:
一种基于多状态机的协议解析系统,包括:
多状态机生成模块,用于定义需要的状态机以及状态机之间的跳转关系;以及,
状态机匹配模块,用于待匹配数据的输入、中间匹配结果的保存以及最终匹配结果的输出。
一种基于多状态机的协议解析方法,包括如下步骤:
步骤1,初始化所有状态机,并定义各状态机之间的跳转关系,形成多状态机;
步骤2,将待匹配的数据输入多状态机进行匹配,输出匹配结果。
上述步骤1中,对基于Http协议的多状态机,将特征码“POST”作为根状态机下的特征码,“\r\n\r\n”为“POST”特征码下的结束特征码。
上述步骤1中,对基于Smtp协议的多状态机,将特征码“To:”作为根状态机下的特征码,“\r\n\r\n”为“To:”特征码下的结束特征码。
上述步骤2的具体内容是:
步骤21,将待匹配的数据输入多状态机进行匹配;如果前置状态不为空,则将当前状态恢复为前置状态;否则从根状态机开始匹配;
步骤22,如果匹配到特征码,则执行步骤23,否则执行步骤25;
步骤23,如果特征码为结束特征码,则执行步骤24,否则保存对应的有效数据,并跳转到该特征码对应的状态机,并执行步骤22;
步骤24,将获取到的有效数据进行整合并分析:如果有效数据符合解析的协议特征,则输出解析结果并跳转到该特征码对应的状态机;否则判定匹配结果为脏数据,丢弃获取到的有效数据,并跳转到容错状态机;执行完上述操作后执行步骤22;
步骤25,匹配结束,将最后匹配到的状态保存为前置状态。
上述步骤24中,容错状态机为根状态机。
采用上述方案后,本发明具有以下特点:
(1)本发明采用多状态机间跳转的方式,可以解耦状态之间的关系,可以避免状态机爆炸,提高解析效率;
(2)本发明可以解决特征码被分段传输而导致的匹配失败问题;
(3)本发明具有容错机制,可以对脏数据进行识别和处理;
(4)状态机匹配之后,输出的即是最终数据,而不是一堆无序的状态。
附图说明
图1是本发明的多状态机的拓扑图;
图2是本发明的多状态机匹配流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
本发明提供一种基于多状态机的协议解析系统,包括如下两个模块:
(1)多状态机生成模块,用于定义需要的状态机以及状态机之间的跳转关系;
(2)状态机匹配模块,用于待匹配数据的输入、中间匹配结果的保存以及最终匹配结果的输出。
基于以上系统,本发明还提供一种基于多状态机的协议解析方法,包括如下步骤:
步骤1,生成多状态机
包含:
步骤11,初始化所有状态机;
步骤12,定义各状态机之间的跳转关系,形成多状态机。
以下将以基于Http协议和Smtp协议的多状态机的生成为例,说明步骤1的实现过程。
a.根据Http协议的RFC协议规范,Http在上传数据的时候,具有特征码“POST”;在“POST”特征码下,具有特征码“Host:”、“Content-Length:”和“\r\n\r\n”等;其中“\r\n\r\n”为“POST”特征码下的结束特征码;
b.根据Smtp协议的RFC协议规范,Smtp协议在发送邮件的时候,具有特征码“To:”,在“To:”特征码下,具有特征码“From:”,“Subject:”和“\r\n\r\n”等;其中“\r\n\r\n”为“To:”特征码下的结束特征码;
c.根据Http协议和Smtp的协议特征,将特征码“POST”和“To:”作为根状态机下的特征码;
d.根据以上描述,基于Http协议和Smtp协议的多状态机的拓扑图如图1所示。
步骤2,多状态机匹配
配合图2所示,包含:
步骤21,将待匹配的数据输入多状态机进行匹配;如果前置状态不为空,则将当前状态恢复为前置状态;否则从根状态机开始匹配;
步骤22,如果匹配到特征码,则执行步骤23,否则执行步骤25;
步骤23,如果特征码为结束特征码,则执行步骤24,否则保存对应的有效数据,并跳转到该特征码对应的状态机,并执行步骤22;
步骤24,将获取到的有效数据进行整合并分析:如果有效数据符合我们所解析的协议特征,则输出解析结果并跳转到该特征码对应的状态机;否则判定匹配结果为脏数据,丢弃获取到的有效数据,并跳转到容错状态机(一般为根状态机)。执行完上述操作后执行步骤22;
步骤25,匹配结束,将最后匹配到的状态保存为前置状态。
以下将给出步骤2的实施实例。
实例1:匹配一段正确的Http协议报文
a、输入以下内容到多状态机进行匹配:POST index.jsp\r\nHost:127.0.0.1\r\nContent-;
b、前置状态为空,从根状态机开始匹配;
c、根状态机匹配到特征码“POST”,由于特征码“POST”不是结束特征码,获取有效数据“index.jsp”后跳转到预设好的Http状态机对如下内容进行匹配:\r\nHost:127.0.0.1\r\nContent-;
d、Http状态机匹配到特征码“Host:”,由于特征码“Host:”不是结束特征码,获取有效数据“127.0.0.1”后,跳转到预设好的Http状态机对如下内容进行匹配:\r\nContent-;
e、匹配结束,设置隶属于Http状态机的特征码“Content-Length:”的“-”状态为前置状态;
f、输入以下内容到状态机进行匹配:Length:8\r\n\r\nHttpData;
g、前置状态不为空,恢复隶属于Http状态机的特征码“Content-Length:”的“-”状态为当前状态;
h、Http状态机匹配到特征码“Content-Length:”,由于特征码“Content-Length:”不是结束特征码,获取有效数据“8”后,跳转到预设好的Http状态机对如下内容进行匹配:\r\n\r\nHttpData;
i、Http状态机匹配到特征码“\r\n\r\n”,由于特征码“\r\n\r\n”是结束特征码,获取有效数据“HttpData”后,判定获取到的有效数据符合Http协议特征后输出“index.jsp127.0.0.1 HttpData”,跳转到预设好的根状态机,对如下内容进行匹配:(内容为空);
j、匹配结束,由于当前处于根状态机,并没有处于任何状态,设置前置状态为空。
实例2:匹配一段错误的Smtp协议报文
a、输入以下内容到根状态机进行匹配:Welcome To:\r\n Beijing.\r\n\r\n;
b、前置状态为空,从根状态机开始匹配;
c、根状态机匹配到特征码“To:”,由于特征码“To:”不是结束特征码,获取有效数据“”(空)后预跳转到预设好的Smtp状态机对如下内容进行匹配:\r\nBeijing.\r\n\r\n;
d、Smtp状态机匹配到特征码“\r\n\r\n”,由于特征码“\r\n\r\n”是结束特征码,判定获取到的有效数据不符合Smtp特征,故断定获取到了脏数据。清空数据并跳转到容错状态机(根状态机)对如下内容进行匹配:(内容为空);
5、匹配结束,由于当前处于根状态机,并没有处于任何状态,设置前置状态为空。
综合上述,本发明一种基于多状态机的协议解析系统及方法,通过解耦状态机之间的逻辑关系,定义状态机与状态机之间的跳转关系,从而实现用于解析协议的多状态机模型,避免状态机爆炸的问题,提高解析效率;同时,本发明可以识别脏数据并进行容错处理。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (6)
1.一种基于多状态机的协议解析系统,其特征在于包括:
多状态机生成模块,用于定义需要的状态机以及状态机之间的跳转关系;以及,
状态机匹配模块,用于待匹配数据的输入、中间匹配结果的保存以及最终匹配结果的输出。
2.一种基于多状态机的协议解析方法,其特征在于包括如下步骤:
步骤1,初始化所有状态机,并定义各状态机之间的跳转关系,形成多状态机;
步骤2,将待匹配的数据输入多状态机进行匹配,输出匹配结果。
3.如权利要求2所述的一种基于多状态机的协议解析方法,其特征在于:所述步骤1中,对基于Http协议的多状态机,将特征码“POST”作为根状态机下的特征码,“\r\n\r\n”为“POST”特征码下的结束特征码。
4.如权利要求2所述的一种基于多状态机的协议解析方法,其特征在于:所述步骤1中,对基于Smtp协议的多状态机,将特征码“To:”作为根状态机下的特征码,“\r\n\r\n”为“To:”特征码下的结束特征码。
5.如权利要求2所述的一种基于多状态机的协议解析方法,其特征在于:所述步骤2的具体内容是:
步骤21,将待匹配的数据输入多状态机进行匹配;如果前置状态不为空,则将当前状态恢复为前置状态;否则从根状态机开始匹配;
步骤22,如果匹配到特征码,则执行步骤23,否则执行步骤25;
步骤23,如果特征码为结束特征码,则执行步骤24,否则保存对应的有效数据,并跳转到该特征码对应的状态机,并执行步骤22;
步骤24,将获取到的有效数据进行整合并分析:如果有效数据符合解析的协议特征,则输出解析结果并跳转到该特征码对应的状态机;否则判定匹配结果为脏数据,丢弃获取到的有效数据,并跳转到容错状态机;执行完上述操作后执行步骤22;
步骤25,匹配结束,将最后匹配到的状态保存为前置状态。
6.如权利要求5所述的一种基于多状态机的协议解析方法,其特征在于:所述步骤24中,容错状态机为根状态机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710048041.1A CN106817372A (zh) | 2017-01-21 | 2017-01-21 | 一种基于多状态机的协议解析系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710048041.1A CN106817372A (zh) | 2017-01-21 | 2017-01-21 | 一种基于多状态机的协议解析系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106817372A true CN106817372A (zh) | 2017-06-09 |
Family
ID=59111461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710048041.1A Pending CN106817372A (zh) | 2017-01-21 | 2017-01-21 | 一种基于多状态机的协议解析系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106817372A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111556067A (zh) * | 2020-05-09 | 2020-08-18 | 中国航空无线电电子研究所 | 基于有穷状态机的网络数据协议描述结构及解析方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993687A (zh) * | 2004-08-05 | 2007-07-04 | 罗伯特·博世有限公司 | 用于控制对通信组件的消息存储器的数据访问的消息管理器和方法 |
CN102647414A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 协议解析方法、设备及系统 |
CN102916967A (zh) * | 2012-10-29 | 2013-02-06 | 华为技术有限公司 | 协议解析的方法和装置 |
CN103685280A (zh) * | 2013-12-18 | 2014-03-26 | 华为技术有限公司 | 报文匹配方法、状态机编译方法及设备 |
-
2017
- 2017-01-21 CN CN201710048041.1A patent/CN106817372A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993687A (zh) * | 2004-08-05 | 2007-07-04 | 罗伯特·博世有限公司 | 用于控制对通信组件的消息存储器的数据访问的消息管理器和方法 |
CN102647414A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 协议解析方法、设备及系统 |
CN102916967A (zh) * | 2012-10-29 | 2013-02-06 | 华为技术有限公司 | 协议解析的方法和装置 |
CN103685280A (zh) * | 2013-12-18 | 2014-03-26 | 华为技术有限公司 | 报文匹配方法、状态机编译方法及设备 |
Non-Patent Citations (1)
Title |
---|
刘秀霞等: "《电子系统EDA设计实训》", 30 June 2011, 北京航空航天大学出版社 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111556067A (zh) * | 2020-05-09 | 2020-08-18 | 中国航空无线电电子研究所 | 基于有穷状态机的网络数据协议描述结构及解析方法 |
CN111556067B (zh) * | 2020-05-09 | 2022-05-20 | 中国航空无线电电子研究所 | 基于有穷状态机的网络数据协议描述结构及解析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9870502B2 (en) | Apparatus for, a method of, and a network server for detecting data patterns in a data stream | |
CN102932203B (zh) | 异构平台间的深度报文检测方法及装置 | |
CN104123280B (zh) | 文件比对方法和设备 | |
CN102857493A (zh) | 内容过滤方法和装置 | |
CN104866465A (zh) | 敏感文本检测方法及装置 | |
CN104426909A (zh) | 为具有高级特征的正则表达式图样生成非确定有限自动机(nfa)图形 | |
CN111177491B (zh) | 正则表达式的匹配方法、装置、电子设备及存储介质 | |
CN103873320A (zh) | 加密流量识别方法及装置 | |
CN102148805B (zh) | 特征匹配方法和装置 | |
CN110008385B (zh) | 一种基于字符串的快速匹配识别方法和装置 | |
CN102523219A (zh) | 正则表达式匹配系统及匹配方法 | |
US20150286927A1 (en) | Complex nfa state matching method that matches input symbols against character classes (ccls), and compares sequence ccls in parallel | |
CN103997514A (zh) | 一种文件并行传输的方法及系统 | |
CN102207979A (zh) | 一种敏感词匹配方法和系统 | |
CN106934011A (zh) | 一种json数据的结构化解析方法及装置 | |
US10965600B2 (en) | Metadata extraction | |
CN110232633A (zh) | 一种电子签约方法、装置、存储介质和服务器 | |
CN107450929A (zh) | 页面开发方法及装置 | |
CN107534601B (zh) | 分组过滤装置 | |
CN106817372A (zh) | 一种基于多状态机的协议解析系统及方法 | |
CN105739464B (zh) | 智能家电设备中主控通信方法 | |
CN106850559A (zh) | 一种可扩展的网络协议解析系统及方法 | |
CN105573726B (zh) | 一种规则处理方法及设备 | |
CN107465500B (zh) | 基于fpga的md5暴力破解系统及方法 | |
CN105323236B (zh) | 用于经由多态安全代理来检查在线通信会话的系统、方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170609 |
|
RJ01 | Rejection of invention patent application after publication |