CN103780624A - 一种面向复杂系统的通用应用层网络通信协议应用方法 - Google Patents
一种面向复杂系统的通用应用层网络通信协议应用方法 Download PDFInfo
- Publication number
- CN103780624A CN103780624A CN201410037542.6A CN201410037542A CN103780624A CN 103780624 A CN103780624 A CN 103780624A CN 201410037542 A CN201410037542 A CN 201410037542A CN 103780624 A CN103780624 A CN 103780624A
- Authority
- CN
- China
- Prior art keywords
- protocol
- message
- network communication
- layer network
- description file
- 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.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种面向复杂系统的通用应用层网络通信协议应用方法。该应用方法包括如下步骤:1)构建实现该方法的系统;2)读取协议描述文件;3)协议描述文件预处理;4)协议基本信息解析;5)通信信息解析;6)报文定义解析;7)报文匹配;8)报文解析。应用本方法,可以很好地解决网络通信协议描述与软件程序设计分离的问题,能够有效提高软件的通用性,实现应用层网络通信协议设计与软件程序设计独立工作,从而有效地提高工作效率和节约成本,甚至缩短研制周期。
Description
技术领域
本发明涉及一种通信协议应用方法,特别是一种面向复杂系统的通用应用层网络通信协议应用方法。
背景技术
应用层网络通信协议应用方法可以分为两大类,一类是程序内嵌报文结构,另一类是采用配置文件来说明报文结构。程序内嵌报文结构是指对报文结构的描述信息内嵌在程序代码中,在程序编译之后报文结构固化,常见方式有直接软件编码、基于结构的应用方法和基于类的应用方法;采用配置文件来说明报文结构是指报文结构不在程序内直接说明,而是采用配置文件进行说明,在程序运行的时候需要预先读取该配置文件才能确定如何解析报文,在程序运行前允许用户对配置进行更改,常见方式是基于简单配置文件的应用方法。
a)直接软件编码
直接软件编码方式一般将报文加载在一个数据缓存之中,然后通过游标变量来访问具体的数据。
b)基于结构的应用方法
基于结构的应用方法比直接软件编码方式稍微复杂一点,一般先定义一个结构变量,然后再应用直接软件编码方式将报文分解到结构体里面,以后使用数据的时候就直接使用该结构体了。
c)基于类的应用方法
基于类的应用方法与机遇结构的方法类似,不同之处是先定义一个类,然后实例化,再应用直接软件编码方式将报文分解到类实例里面,以后使用数据的时候就直接使用该类实例了。
d)基于简单配置文件的应用方法
基于简单配置文件的应用方法需要在程序之外创建一个配置文件,在程序运行到需要提取报文数据的时候,首先从配置文件中获取提取。
程序内嵌报文结构的应用层网络通信协议应用方法由于报文结构的描述信息内嵌在程序代码中,每次修改报文结构都会导致程序的修改,需要重新编译程序。对于复杂系统的研制过程来说,协议的变更是经常发生的事件,采用这种方法来描述应用层网络通信协议必然导致程序的经常性变更,不仅增加大量的编码和测试工作,而且经常引发系统设计方与软件开发方各种矛盾,导致成本增加和进度拖延。
采用配置文件来说明报文结构的情况要好一些,程序完成之后允许用户通过修改配置文件来适应报文结构的变化。但是常见的基于简单配置文件的应用方法也有其局限性:首先是专用性太强,配置文件都是针对某个软件或应用专门开发的,配置文件只适用于本软件;其次是缺少开发和校验工具,对于报文结构的描述一般由程序人员手工修改,一旦配置出现问题,如果程序不报错的话很难检验错误所在;三是配置文件的语法难于标准化,通常只掌握在少数人手里,如程序人员,导致在复杂系统的试验过程中,软件开发方需要派人伴随保障。
发明内容
本发明的目的在于提供一种面向复杂系统的通用应用层网络通信协议应用方法。本发基于一种面向复杂系统的通用应用层网络通信协议解决了协议描述文件预处理、采集解析、数据采集、报文头解析、报文匹配和报文分解等技术问题。在软件(或程序)中应用本方法,可以很好地解决网络通信协议描述与软件程序设计分离的问题,能够有效提高软件的通用性,实现应用层网络通信协议设计与软件程序设计独立工作,从而有效地提高工作效率和节约成本,甚至缩短研制周期。
本发明的目的通过以下技术方案来实现:
一种面向复杂系统的通用应用层网络通信协议应用方法包括如下步骤:
1)构建实现该方法的系统;
2)读取协议描述文件模块;
3)协议描述文件预处理模块;
4)协议基本信息解析模块;
5)通信信息解析模块;
6)报文定义解析模块;
7)报文匹配模块;
8)报文解析模块。
本发明的优点在于:
本发明公开了一种面向复杂系统的通用应用层网络通信协议应用方法,解决了应用层网络通信协议描述与软件程序设计分离的问题。
应用本方法,应用软件的开发和通信协议的设计两项工作能够分别独立进行,不再互相干扰,从而适应复杂系统研制过程中网络协议经常变更的状况,同时也不再需要程序员伴随到试验现场进行软件保驾,从而节省了成本。
应用本方法开发的软件,其通用性得到极大提高,往往能够在多个型号中应用,不仅节约开发成本,加快应用进度,通过反复应用和改进,还能有效提高软件质量。
应用本方法可以开发通用的应用层网络通信协议编辑和检验工具,使得协议描述文件的正确性得到保障。
本方法提供了快速描述报文的机制,对于一些大报文来说,这种机制还能够防止描述出错,从而提高了协议描述文件的质量。
附图说明
图1:一种面向复杂系统的通用应用层网络通信协议应用方法的组成示意图。
具体实施方式
第一步:构建实现该方法的系统
一种面向复杂系统的通用应用层网络通信协议应用方法的实现系统包括读取协议描述文件模块、协议描述文件预处理模块、协议基本信息解析模块、通信信息解析模块、报文定义解析模块、报文匹配模块和报文解析模块。其中,报文解析模块与报文匹配模块通信,报文匹配模块通信与报文定义解析模块通信。
构建系统可以采用各种程序设计语言,如C++、Pascal或JAVA等。
第二步:读取协议描述文件模块
将协议描述文件从文件系统中读入到内存中。
该协议描述文件必须符合面向复杂系统的通用应用层网络通信协议,内容一般包括协议基本信息、通信信息、报文头格式、报文尾格式、报文集、字段、字段数值、结构嵌套和循环体等。
第三步:协议描述文件预处理模块
协议描述文件预处理主要是对读入协议描述文件中的循环体进行解析,使得循环体全部展开,得到等效的协议描述文件。
该文件将用于后续的所有处理模块。
第四步:协议基本信息解析模块
协议基本信息解析模块从协议描述文件中获取协议标识、协议名称、适用型号、用途说明、版本和字段定位策略等信息。
这些信息可用于协议的管理,如构建型号协议结构树和协议版本选择等。
第五步:通信信息解析模块
通信信息解析模块从协议描述文件中获取传输层协议、通信方式、字节序、信源地址和信宿地址等。
这些信息可用于数据通信会话的建立,以及确定数据解析时的字节序处理。
第六步:报文定义解析模块
报文定义解析模块将协议中对报文的所有描述信息(如报文头格式、报文尾格式、字段数值、报文属性和字段)进行重新组织,使得这些信息方便程序使用。信息重组完成之后,同时形成两类结构——扁平结构和树状结构。
重组的时候,首先形成树状结构,将所有字段按层次关系进行组织,并通过计算路径形成字段的唯一标识。
基于树状结构,再快速生成扁平结构,将所有字段按先后顺序线性组织,并计算每一字段的起始位置。计算方法与报文定义时所采用的字段定位策略有关。
协议描述文件应当统一约定字段定位策略。常见的有两种:一种是按顺序填满,这种方法只需定义每个字段的长度,但是要定义一种特殊字段——“未定义”字段——来填充协议中未明确定义通途的数据域;另一种是只定义有效字段,这种方法需要定义每个字段的起始位和长度。
如果协议中存在报文头格式或报文尾格式的定义,则将它们分别与报文集中的每一个报文定义合并,形成完整的报文体。
如果协议中存在字段数值,则将该字段数值与报文体中的字段进行关联。
第七步:报文匹配模块
报文匹配模块用于确定数据在协议中所对应的报文,完成数据与协议描述之间的关系匹配。一般情况下,协议中应当定义一个报文标识字段,将该字段与报文属性中的类型进行比较,以判定是否为某一类报文;更复杂的情况可以通过字段数值来判定,当所有数值字段都一致时,判定为对应报文。
第八步:报文解析模块
报文解析模块用于从原始数据中分解出各个字段的值。报文分解可以有两种策略:一是将报文完全分解,再从中提取数据;另一种是根据起始位和长度直接从原始数据中提取数据。
应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种面向复杂系统的通用应用层网络通信协议应用方法,其特征在于,该描述方法包括如下步骤:
1)构建实现该方法的系统;
2)读取协议描述文件;
3)协议描述文件预处理;
4)协议基本信息解析;
5)通信信息解析;
6)报文定义解析;
7)报文匹配;
8)报文解析。
2.根据权利要求1所述的一种面向复杂系统的通用应用层网络通信协议应用方法,其特征在于,所述通信协议应用系统包括读取协议描述文件模块、协议描述文件预处理模块、协议基本信息解析模块、通信信息解析模块、报文定义解析模块、报文匹配模块和报文解析模块。
3.根据权利要求1所述的一种面向复杂系统的通用应用层网络通信协议应用方法,其特征在于,所述步骤3对协议描述文件中的循环体进行解析,使得循环体全部展开,得到等效的协议描述文件。
4.根据权利要求1所述的一种面向复杂系统的通用应用层网络通信协议应用方法,其特征在于,所述步骤4从协议描述文件中获取协议标识、协议名称、适用型号、用途说明、版本和字段定位策略等信息。
5.根据权利要求1所述的一种面向复杂系统的通用应用层网络通信协议应用方法,其特征在于,所述步骤5从协议描述文件中获取传输层协议、通信方式、字节序、信源地址和信宿地址等。
6.根据权利要求1所述的一种面向复杂系统的通用应用层网络通信协议应用方法,其特征在于,所述步骤6将协议中对报文的所有描述信息进行重新组织,形成两类结构——扁平结构和树状结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410037542.6A CN103780624B (zh) | 2014-01-26 | 2014-01-26 | 一种面向复杂系统的通用应用层网络通信协议应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410037542.6A CN103780624B (zh) | 2014-01-26 | 2014-01-26 | 一种面向复杂系统的通用应用层网络通信协议应用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103780624A true CN103780624A (zh) | 2014-05-07 |
CN103780624B CN103780624B (zh) | 2017-10-17 |
Family
ID=50572454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410037542.6A Active CN103780624B (zh) | 2014-01-26 | 2014-01-26 | 一种面向复杂系统的通用应用层网络通信协议应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780624B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702600A (zh) * | 2015-03-02 | 2015-06-10 | 国家计算机网络与信息安全管理中心 | 网络数据报文解析方法及装置 |
CN109783080A (zh) * | 2018-12-25 | 2019-05-21 | 国电南瑞科技股份有限公司 | 一种前置接口通信协议开发方法及系统 |
CN110011968A (zh) * | 2019-02-28 | 2019-07-12 | 郑州轨道交通信息技术研究院 | 一种基于工控协议通用框架的策略访问控制方法 |
CN111404641A (zh) * | 2020-06-04 | 2020-07-10 | 湖南中车时代通信信号有限公司 | 数据重组方法、系统、装置及计算机可读存储介质 |
CN111813395A (zh) * | 2020-07-06 | 2020-10-23 | 广东海洋大学 | 基于xml格式的通讯协议信息描述通用模型及其设计方法 |
CN114915548A (zh) * | 2022-05-09 | 2022-08-16 | 中国船舶重工集团公司第七0七研究所九江分部 | 一种基于单片机can协议可视化配置和自动解析方法 |
CN116600022A (zh) * | 2023-07-17 | 2023-08-15 | 成都数维通信技术有限公司 | 一种通用式工控网络通信协议构建方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101577704A (zh) * | 2008-05-08 | 2009-11-11 | 北京东华合创数码科技股份有限公司 | 一种网络应用层协议识别方法和系统 |
CN102647414A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 协议解析方法、设备及系统 |
US20120300257A1 (en) * | 2007-09-28 | 2012-11-29 | Kouki Nakajima | Image Forming Apparatus And Image Forming System |
CN103139058A (zh) * | 2013-01-28 | 2013-06-05 | 公安部第一研究所 | 一种物联网安全接入网关 |
-
2014
- 2014-01-26 CN CN201410037542.6A patent/CN103780624B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120300257A1 (en) * | 2007-09-28 | 2012-11-29 | Kouki Nakajima | Image Forming Apparatus And Image Forming System |
CN101577704A (zh) * | 2008-05-08 | 2009-11-11 | 北京东华合创数码科技股份有限公司 | 一种网络应用层协议识别方法和系统 |
CN102647414A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 协议解析方法、设备及系统 |
CN103139058A (zh) * | 2013-01-28 | 2013-06-05 | 公安部第一研究所 | 一种物联网安全接入网关 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702600A (zh) * | 2015-03-02 | 2015-06-10 | 国家计算机网络与信息安全管理中心 | 网络数据报文解析方法及装置 |
CN104702600B (zh) * | 2015-03-02 | 2017-11-24 | 国家计算机网络与信息安全管理中心 | 一种可配置的逐层报文解析方法和装置 |
CN109783080A (zh) * | 2018-12-25 | 2019-05-21 | 国电南瑞科技股份有限公司 | 一种前置接口通信协议开发方法及系统 |
CN109783080B (zh) * | 2018-12-25 | 2022-07-01 | 国电南瑞科技股份有限公司 | 一种前置接口通信协议开发方法及系统 |
CN110011968A (zh) * | 2019-02-28 | 2019-07-12 | 郑州轨道交通信息技术研究院 | 一种基于工控协议通用框架的策略访问控制方法 |
CN111404641A (zh) * | 2020-06-04 | 2020-07-10 | 湖南中车时代通信信号有限公司 | 数据重组方法、系统、装置及计算机可读存储介质 |
CN111404641B (zh) * | 2020-06-04 | 2020-09-29 | 湖南中车时代通信信号有限公司 | 数据重组方法、系统、装置及计算机可读存储介质 |
CN111813395A (zh) * | 2020-07-06 | 2020-10-23 | 广东海洋大学 | 基于xml格式的通讯协议信息描述通用模型及其设计方法 |
CN111813395B (zh) * | 2020-07-06 | 2024-01-30 | 广东海洋大学 | 基于xml格式的通讯协议信息描述通用模型及其设计方法 |
CN114915548A (zh) * | 2022-05-09 | 2022-08-16 | 中国船舶重工集团公司第七0七研究所九江分部 | 一种基于单片机can协议可视化配置和自动解析方法 |
CN114915548B (zh) * | 2022-05-09 | 2023-10-31 | 中国船舶重工集团公司第七0七研究所九江分部 | 一种基于单片机can协议可视化配置和自动解析方法 |
CN116600022A (zh) * | 2023-07-17 | 2023-08-15 | 成都数维通信技术有限公司 | 一种通用式工控网络通信协议构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103780624B (zh) | 2017-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103780624A (zh) | 一种面向复杂系统的通用应用层网络通信协议应用方法 | |
CN106777101B (zh) | 数据处理引擎 | |
CN102880468B (zh) | 一种用于ecu程序开发的代码智能提示方法及其系统 | |
CN102541730A (zh) | 一种航天器测试脚本语义识别与自动生成方法 | |
CN111078555B (zh) | 一种测试文件的生成方法、系统、服务器和存储介质 | |
CN105072130A (zh) | 一种asn.1解码器代码自动生成方法 | |
CN113504900A (zh) | 一种编程语言转换方法和装置 | |
CN101441629A (zh) | 一种非结构化网页信息的自动采集方法 | |
CN104199667B (zh) | 一种新建mtk工程和提交代码的方法及系统 | |
CN107015841A (zh) | 一种程序编译的预处理方法及程序编译设备 | |
WO2021259290A1 (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN104020992B (zh) | 由C/C++生成Java Web服务的方法及装置 | |
CN103235757B (zh) | 基于自动化造数对输入域测试对象进行测试的装置和方法 | |
CN101202736A (zh) | 一种在通讯网络中实现编解码的方法 | |
CN104283947A (zh) | Java script动态合并服务器及其工作过程 | |
CN104298671B (zh) | 数据统计分析方法及装置 | |
CN104572102A (zh) | Java中的中文乱码解决方法 | |
CN105022667A (zh) | 一种基于嵌入式浏览器css引擎并行化方法 | |
CN106383734A (zh) | 一种从代码中提取详细设计的方法 | |
CN109508204B (zh) | 一种前端代码质量检测方法及装置 | |
CN110502478B (zh) | 一种离线系统之间的数据交互方法及系统 | |
CN202143092U (zh) | 报文处理系统 | |
CN107122359A (zh) | 数据实时跟踪可视化处理方法及装置 | |
CN107306256A (zh) | 一种基于字符串类型数据的通讯协议解析方法 | |
CN115203482A (zh) | 应用程序数据解析的方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |