CN111556067B - 基于有穷状态机的网络数据协议描述结构及解析方法 - Google Patents
基于有穷状态机的网络数据协议描述结构及解析方法 Download PDFInfo
- Publication number
- CN111556067B CN111556067B CN202010386884.4A CN202010386884A CN111556067B CN 111556067 B CN111556067 B CN 111556067B CN 202010386884 A CN202010386884 A CN 202010386884A CN 111556067 B CN111556067 B CN 111556067B
- Authority
- CN
- China
- Prior art keywords
- data
- protocol
- state
- analyzed
- network data
- 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.)
- Active
Links
Images
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/08—Protocols for interworking; Protocol conversion
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于计算机网络数据分析技术领域,公开了一种基于有穷状态机的网络数据协议描述结构及解析方法,通过预先定义网络数据协议,在收到网络数据后,根据协议中描述的数据格式进行匹配,从无意义的网络数据流中解析为有意义的数据,但网络数据协议的表达和解析都仅能够支持连续的块状网络数据。以一种更好的网络数据协议表示方法,及基于该网络数据协议表示方法的网络数据解析方法,不仅能够支持连续的块状网络数据的表达和解析,也能够满足包含迭代数据块的网络数据的表达和解析,实现了通用的数据解析,效果良好。
Description
技术领域
本发明属于计算机网络数据分析技术领域,尤其涉及一种基于有穷状态机的网络数据协议描述结构及解析方法。
背景技术
计算机网络数据分析过程中,通常需要根据预先约定的数据格式(称之为协议),从无意义的网络数据流中解析出有意义的数据。数据解析包含数据表达与数据解析过程,现有的数据解析主要解析面向简单的连续数据协议。
发明内容
针对现有技术的不足,本发明提供一种基于有穷状态机的网络数据协议描述结构及解析方法,实现对各类数据协议的通用化表达,以及对数据流的通用化解析,满足各种场景下的数据解析需求。
为实现上述目的,本发明提供如下技术方案:
技术方案一:
基于有穷状态机的网络数据协议描述结构,其特征在于,所述结构包括:协议描述信息和协议状态信息;
所述协议描述信息至少包含:协议名称、协议数据对齐格式、协议数据的大小端格式;
所述协议状态信息为多个协议状态,每个协议状态至少包括:协议状态的名称、该协议状态下的数据输出信息和该协议状态下的可接受数据输入信息。
本发明技术方案一的特点和进一步的改进为:
(1)所述当前协议状态下的数据输出信息,表示在当前协议状态下,从待解析数据中解析出的有效数据;
所述当前协议状态下的数据输出信息至少包含一个第一结点元素,所述第一结点元素至少具有元素名称、元素类型以及元素数据长度三种属性。
(2)所述当前协议状态下的可接受数据输入信息至少包含一个第二结点元素,所述第二结点元素至少具有元素名称、元素值、元素数据长度以及转至下一协议状态的指示信息四种属性。
(3)所述协议状态信息至少有开始状态和结束状态。
技术方案二:
基于有穷状态机的网络数据协议解析方法,所述方法应用于如技术方案一所述的基于有穷状态机的网络数据协议描述结构,所述方法包括:
S1,获取待解析数据;
S2,根据所述待解析数据确定基于有穷状态机的网络数据协议描述结构的当前协议状态,遍历当前协议状态下的数据输出信息中的第一结点元素;
S3,根据所述第一结点元素的属性对所述待解析数据进行解析;
S4,遍历当前协议状态下的可接受数据输入信息中的第二结点元素;
S5,根据所述第二结点元素的属性将基于有穷状态机的网络数据协议描述结构从当前协议状态转至下一协议状态;
S6,重复步骤S2-S5,直到下一协议状态为结束状态。
本发明技术方案二的特点和进一步的改进为:
(1)S3具体为:
根据所述第一结点元素的元素数据长度的值,从所述待解析数据中读取指定长度的数据;
若待解析数据的读取位置越界,则待解析数据与该网络数据协议不匹配,解析失败;
若待解析数据的读取位置不越界,则根据所述第一结点元素的元素类型,对读取到的数据进行类型转换,并存储转换后得到的有效数据结果。
(2)S4具体为:
若当前协议状态下的可接受数据输入信息中无第二结点元素,则当前协议状态为结束状态;
如果当前待解析数据的读取位置未达到待解析数据尾部,则待解析数据与该网络数据协议不匹配,解析失败;
如果当前待解析数据的读取位置达到待解析数据尾部,则待解析数据与该网络数据协议匹配,输出解析后的有效数据结果。
(3)S5具体为:
根据所述第二结点元素的元素数据长度的值,从所述待解析数据中读取指定长度的数据;
若待解析数据的读取位置越界,则待解析数据与该网络数据协议不匹配,解析失败;
若待解析数据的读取位置不越界,且所述读取的指定长度的数据与所述第二结点元素的元素值相匹配,则当前协议状态按照第二结点元素中转至下一协议状态的指示信息转至下一协议状态;
若待解析数据的读取位置不越界,且所述读取的指定长度的数据与所述第二结点元素的元素值不匹配,则待解析数据的读取位置回到从所述待解析数据中读取指定长度的数据之前的位置。
(4)在S4中,若未找到匹配的可接受数据输入信息中的第二结点元素,则待解析数据与该网络数据协议不匹配,解析失败。
本发明技术方案通过预先定义网络数据协议,在收到网络数据后,根据协议中描述的数据格式进行匹配,从无意义的网络数据流中解析为有意义的数据,但网络数据协议的表达和解析都仅能够支持连续的块状网络数据。以一种更好的网络数据协议表示方法,及基于该网络数据协议表示方法的网络数据解析方法,不仅能够支持连续的块状网络数据的表达和解析,也能够满足包含迭代数据块的网络数据的表达和解析,实现了通用的数据解析,效果良好。
附图说明
图1为本发明实施例提供的基于有穷状态机的网络数据协议描述结构示意图;
图2为本发明实施例提供的网络协议及协议状态的组织结构示意图;
图3为本发明实施例提供的基于有穷状态机的网络数据协议解析方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
1)网络数据协议描述文件结构
根据网络协议有穷状态机的形式化描述,每一个网络协议都对应一个有穷状态机模型,而任何符合某一协议的数据即是该协议有穷状态机所接受的语言。因此,协议数据的解析过程,即是将数据按照相应的有穷状态机模型进行分析的过程。
网络协议的有穷状态机包含了状态集、字母表、状态转移函数、初始状态及终止状态五部分信息。为了提高协议解析的效率,本文将网络协议有穷状态机的所有信息进行综合,压缩到一张协议状态表中,并以XML文件的形式对协议状态表进行存储,形成网络协议的描述文件。典型的网络协议描述文件结构如图1所示。
网络协议描述文件主要包括两部分内容:协议基本描述信息以及协议所有状态的状态信息。
协议描述信息(ProtocolDescription)包含了协议的基本信息以及协议特征信息,如协议名称、协议数据对齐格式、协议数据的大小端格式等。
协议状态信息(Status)是协议描述文件的主体,协议状态信息主要包括状态名称,当前状态下的数据输出和当前状态下的可接受输入三部分:
(a)状态名称作为状态的标识,主要用于进行状态转移时的识别依据;
(b)当前状态下的数据输出,即当前状态下,可从输入数据块中解析出的有效数据,在协议描述文件中体现为DataForward字段;
(c)当前状态下的可接受输入,即当前状态所有可能的状态转移信息,包含了当前状态下可接受的所有输入,以及在该输入条件下,状态转移的下一个目标状态,在协议描述文件中体现为AcceptableInput字段。
2)协议及协议状态组织
协议解析的可配置性是实现协议解析通用化的基础。为了实现协议解析的可配置,本文引入协议库的概念:协议库中包含了通用协议解析引擎当前支持的所有协议的相关信息,是进行数据解析的依据。用户可以通过调用解析引擎对外提供的协议注册接口,将所需要支持的协议描述文件注册给解析引擎,并由解析引擎对协议描述文件进行解析,将其所表达的协议描述信息加载到协议库中,即可实现动态地向协议库中添加协议,实现协议解析的可配置。
在对协议库中的协议及协议状态进行组织时,需要考虑到解析过程中的数据访问需求。由于协议注册的动态性以及协议访问的顺序性,协议与协议之间采用链表结构进行组织;同时,在读取协议描述信息时,可以获知协议状态的数量,加之解析过程当中,协议状态的转移不可预知,使得对协议状态的访问具有很高的随机性,因此,采用动态数组的形式对协议状态进行组织,并为每个协议建立协议状态索引表,以提高存储效率和对协议状态的访问速度。
3)数据解析过程
根据有穷状态机理论,每个系统均拥有一个开始状态和若干结束状态,网络协议数据的正确解析过程,即系统从开始状态经过若干次的状态转移,最终到达某个结束状态的过程。协议数据解析初始时,将当前状态设置为开始状态(ORIGINAL_STATUS),此后,对输入的待解析数据块,根据当前协议状态信息,在逐步的状态转移中解析出数据块中各个数据段的含义,并保存相应的数据值和其它数据信息,直到当前状态转移到结束状态(END_STATUS),整个协议分析过程结束,分析结果保存在解析结果数据结构中。图3显示了通用网络协议解析过程。
根据网络协议描述结构以及网络协议解析流程,在达到每个协议状态时(包括开始状态),解析工作包含两个部分:提取并解析出当前状态的DataForward节点中所描述的所有数据输出,以及根据输入数据查找下一个匹配状态,进行状态转移。
对于每一个协议状态,解析过程如下:
(1)遍历当前状态DataForward结点的每一个子结点:
(a)根据当前结点size属性的值,从输入数据中读取指定长度的数据
(b)若输入数据读指针越界,则输入数据与当前协议不匹配,当前解析失败,退出;
(c)若不越界,则根据当前结点的type属性,对读取到的数据进行转换,并存储数据值与其它描述性信息,加入解析结果链表;
(2)若当前状态AcceptableInput节点无子结点,则当前状态为结束状态:
(a)若输入数据读指针到达数据尾部,则解析成功,输出解析结果链表;
(b)若输入数据读指针未到达数据尾部,则输入数据与当前协议不匹配,当前解析失败,退出;
(3)遍历当前状态AcceptableInput结点的每一个子结点:
(a)根据当前结点size属性的值,从输入数据中读取指定长度的数据;
(b)若输入数据读指针越界,则输入数据与当前协议不匹配,当前解析失败,退出;
(c)若不越界,且读取到的数据与当前结点的value属性的值匹配,则当前状态转移至StatusTransitionTo属性所标识的状态,执行对一下个协议状态的处理;
(d)若不越界且读到的数据值与当前结点value属性的值不匹配,则输入数据读指针回滚;
(4)若未找到匹配的AcceptableInput子结点,则输入数据与当前协议不匹配,当前解析失败,退出;
在每次的若当前解析失败,则输入数据与当前协议不匹配,需要尝试使用协议库中的下一个备选协议对输入数据进行解析,直到解析成功,或当前协议链表中已无备选协议,解析失败。
本发明技术方案通过预先定义网络数据协议,在收到网络数据后,根据协议中描述的数据格式进行匹配,从无意义的网络数据流中解析为有意义的数据,但网络数据协议的表达和解析都仅能够支持连续的块状网络数据。以一种更好的网络数据协议表示方法,及基于该网络数据协议表示方法的网络数据解析方法,不仅能够支持连续的块状网络数据的表达和解析,也能够满足包含迭代数据块的网络数据的表达和解析,实现了通用的数据解析,效果良好。
Claims (3)
1.基于有穷状态机的网络数据协议解析方法,所述方法基于有穷状态机的网络数据协议描述结构,其特征在于,
所述有穷状态机的网络数据协议描述结构包括:协议描述信息和协议状态信息;
所述协议描述信息至少包含:协议名称、协议数据对齐格式、协议数据的大小端格式;
所述协议状态信息为多个协议状态,每个协议状态至少包括:协议状态的名称、该协议状态下的数据输出信息和该协议状态下的可接受数据输入信息;
协议状态下的数据输出信息,表示在该协议状态下,从待解析数据中解析出的有效数据;
所述协议状态下的数据输出信息至少包含一个第一结点元素,所述第一结点元素至少具有元素名称、元素类型以及元素数据长度三种属性;
协议状态下的可接受数据输入信息至少包含一个第二结点元素,所述第二结点元素至少具有元素名称、元素值、元素数据长度以及转至下一协议状态的指示信息四种属性;
所述协议状态信息至少有开始状态和结束状态;
所述方法包括:
S1,获取待解析数据;
S2,根据所述待解析数据确定基于有穷状态机的网络数据协议描述结构的当前协议状态,遍历当前协议状态下的数据输出信息中的第一结点元素;
S3,根据所述第一结点元素的属性对所述待解析数据进行解析;
S3具体为:
根据所述第一结点元素的元素数据长度的值,从所述待解析数据中读取指定长度的数据;
若待解析数据的读取位置越界,则待解析数据与该网络数据协议不匹配,解析失败;
若待解析数据的读取位置不越界,则根据所述第一结点元素的元素类型,对读取到的数据进行类型转换,并存储转换后得到的有效数据结果;
S4,遍历当前协议状态下的可接受数据输入信息中的第二结点元素;
S5,根据所述第二结点元素的属性将基于有穷状态机的网络数据协议描述结构从当前协议状态转至下一协议状态;
S5具体为:
根据所述第二结点元素的元素数据长度的值,从所述待解析数据中读取指定长度的数据;
若待解析数据的读取位置越界,则待解析数据与该网络数据协议不匹配,解析失败;
若待解析数据的读取位置不越界,且所述读取的指定长度的数据与所述第二结点元素的元素值相匹配,则当前协议状态按照第二结点元素中转至下一协议状态的指示信息转至下一协议状态;
若待解析数据的读取位置不越界,且所述读取的指定长度的数据与所述第二结点元素的元素值不匹配,则待解析数据的读取位置回到从所述待解析数据中读取指定长度的数据之前的位置;
S6,重复步骤S2- S5,直到下一协议状态为结束状态。
2.根据权利要求1所述的基于有穷状态机的网络数据协议解析方法,其特征在于,S4具体为:
若当前协议状态下的可接受数据输入信息中无第二结点元素,则当前协议状态为结束状态;
如果当前待解析数据的读取位置未达到待解析数据尾部,则待解析数据与该网络数据协议不匹配,解析失败;
如果当前待解析数据的读取位置达到待解析数据尾部,则待解析数据与该网络数据协议匹配,输出解析后的有效数据结果。
3.根据权利要求1所述的基于有穷状态机的网络数据协议解析方法,其特征在于,在S4中,若未找到匹配的可接受数据输入信息中的第二结点元素,则待解析数据与该网络数据协议不匹配,解析失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010386884.4A CN111556067B (zh) | 2020-05-09 | 2020-05-09 | 基于有穷状态机的网络数据协议描述结构及解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010386884.4A CN111556067B (zh) | 2020-05-09 | 2020-05-09 | 基于有穷状态机的网络数据协议描述结构及解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111556067A CN111556067A (zh) | 2020-08-18 |
CN111556067B true CN111556067B (zh) | 2022-05-20 |
Family
ID=72003469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010386884.4A Active CN111556067B (zh) | 2020-05-09 | 2020-05-09 | 基于有穷状态机的网络数据协议描述结构及解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111556067B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659555A (en) * | 1993-08-19 | 1997-08-19 | Lucent Technologies Inc. | Method and apparatus for testing protocols |
CN102647414A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 协议解析方法、设备及系统 |
CN103475653A (zh) * | 2013-09-05 | 2013-12-25 | 北京科能腾达信息技术股份有限公司 | 网络数据包的检测方法 |
CN103685222A (zh) * | 2013-09-05 | 2014-03-26 | 北京科能腾达信息技术股份有限公司 | 基于确定性有穷状态自动机的数据匹配检测方法 |
CN104363131A (zh) * | 2014-10-14 | 2015-02-18 | 国家电网公司 | 基于有限状态机动态可扩展的电力通信协议异常检测方法 |
CN106790108A (zh) * | 2016-12-26 | 2017-05-31 | 东软集团股份有限公司 | 协议数据解析方法、装置和系统 |
CN106817372A (zh) * | 2017-01-21 | 2017-06-09 | 厦门天锐科技股份有限公司 | 一种基于多状态机的协议解析系统及方法 |
CN106850559A (zh) * | 2016-12-26 | 2017-06-13 | 中国科学院计算技术研究所 | 一种可扩展的网络协议解析系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060036755A1 (en) * | 2004-05-07 | 2006-02-16 | Abdullah Ibrahim S | Meta-protocol |
-
2020
- 2020-05-09 CN CN202010386884.4A patent/CN111556067B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659555A (en) * | 1993-08-19 | 1997-08-19 | Lucent Technologies Inc. | Method and apparatus for testing protocols |
CN102647414A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 协议解析方法、设备及系统 |
CN103475653A (zh) * | 2013-09-05 | 2013-12-25 | 北京科能腾达信息技术股份有限公司 | 网络数据包的检测方法 |
CN103685222A (zh) * | 2013-09-05 | 2014-03-26 | 北京科能腾达信息技术股份有限公司 | 基于确定性有穷状态自动机的数据匹配检测方法 |
CN104363131A (zh) * | 2014-10-14 | 2015-02-18 | 国家电网公司 | 基于有限状态机动态可扩展的电力通信协议异常检测方法 |
CN106790108A (zh) * | 2016-12-26 | 2017-05-31 | 东软集团股份有限公司 | 协议数据解析方法、装置和系统 |
CN106850559A (zh) * | 2016-12-26 | 2017-06-13 | 中国科学院计算技术研究所 | 一种可扩展的网络协议解析系统及方法 |
CN106817372A (zh) * | 2017-01-21 | 2017-06-09 | 厦门天锐科技股份有限公司 | 一种基于多状态机的协议解析系统及方法 |
Non-Patent Citations (3)
Title |
---|
TCP有限状态机和协议解析在伪警报去除中的应用;帅春燕等;《计算机应用》;20110501(第05期);全文 * |
基于协议分析状态机的入侵检测系统;蔡罡等;《重庆邮电学院学报(自然科学版)》;20050228(第01期);全文 * |
基于有限状态机协议分析模型的入侵检测系统;邓文达;《自动化技术与应用》;20060628(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111556067A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9064032B2 (en) | Blended match mode DFA scanning | |
CN108446313B (zh) | 一种数据格式转换方法和装置 | |
CN112650529B (zh) | 可配置生成移动端app代码的系统及方法 | |
CN111090417A (zh) | 二进制文件解析方法、装置、设备及介质 | |
CN103188267B (zh) | 一种基于dfa的协议解析方法 | |
CN108664546B (zh) | Xml数据结构转换方法和装置 | |
CN114490889A (zh) | 配置信息处理方法、装置、设备、介质及程序产品 | |
CN111611788B (zh) | 一种数据处理的方法及装置、电子设备、存储介质 | |
CN114970475A (zh) | excel表格解析方法、系统、设备及存储介质 | |
CN111556067B (zh) | 基于有穷状态机的网络数据协议描述结构及解析方法 | |
CN117763077A (zh) | 数据查询方法及装置 | |
CN102063416B (zh) | 向pdf文件内嵌双字节字体的方法及其系统 | |
CN109918391B (zh) | 一种流式事务处理方法及系统 | |
CN108073709B (zh) | 一种数据记录的操作方法、装置、设备和存储介质 | |
CN114567688B (zh) | 一种基于fpga的协同网络协议解析方法和装置 | |
CN115809294A (zh) | 一种基于Spark SQL临时视图的快速ETL方法 | |
CN115687399A (zh) | 一种sql语句的语法解析方法及装置 | |
CN113918566A (zh) | 一种基于列存储的NetFlow数据保存方法与装置 | |
CN107612919B (zh) | 协议配置方法及装置 | |
CN112217896A (zh) | 一种json报文转换方法以及相关装置 | |
CN106933826B (zh) | 数据预处理方法及装置 | |
US8788483B2 (en) | Method and apparatus for searching in a memory-efficient manner for at least one query data element | |
CN117688025B (zh) | 基于jdbc协议的sql动态组装方法及装置 | |
CN116302178B (zh) | 一种列存数据的加速处理方法和装置 | |
CN112291312B (zh) | Etl数据同步方法及装置、电子设备、存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |