CN103780624B - 一种面向复杂系统的通用应用层网络通信协议应用方法 - Google Patents

一种面向复杂系统的通用应用层网络通信协议应用方法 Download PDF

Info

Publication number
CN103780624B
CN103780624B CN201410037542.6A CN201410037542A CN103780624B CN 103780624 B CN103780624 B CN 103780624B CN 201410037542 A CN201410037542 A CN 201410037542A CN 103780624 B CN103780624 B CN 103780624B
Authority
CN
China
Prior art keywords
agreement
message
field
file
communication protocol
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
Application number
CN201410037542.6A
Other languages
English (en)
Other versions
CN103780624A (zh
Inventor
廖中华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Simulation Center
Original Assignee
Beijing Simulation Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Simulation Center filed Critical Beijing Simulation Center
Priority to CN201410037542.6A priority Critical patent/CN103780624B/zh
Publication of CN103780624A publication Critical patent/CN103780624A/zh
Application granted granted Critical
Publication of CN103780624B publication Critical patent/CN103780624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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 (1)

1.一种面向复杂系统的通用应用层网络通信协议应用方法,其特征在于,所述方法包括如下步骤:
1)构建实现该方法的通信协议应用系统;所述通信协议应用系统包括读取协议描述文件模块、协议描述文件预处理模块、协议基本信息解析模块、通信信息解析模块、报文定义解析模块、报文匹配模块和报文解析模块;
2)读取协议描述文件;将协议描述文件从文件系统中读入到内存中;
该协议描述文件必须符合面向复杂系统的通用应用层网络通信协议,内容包括协议基本信息、通信信息、报文头格式、报文尾格式、报文集、字段、字段数值、结构嵌套和循环体;
3)协议描述文件预处理;协议描述文件预处理主要是对读入协议描述文件中的循环体进行解析,使得循环体全部展开,得到等效的协议描述文件;
4)协议基本信息解析;协议基本信息解析模块从协议描述文件中获取协议标识、协议名称、适用型号、用途说明、版本和字段定位策略信息;
5)通信信息解析;通信信息解析模块从协议描述文件中获取传输层协议、通信方式、字节序、信源地址和信宿地址;
6)报文定义解析;报文定义解析模块将协议中对报文的所有描述信息进行重新组织,并形成两类结构——扁平结构和树状结构;其中,重组的时候,首先形成树状结构,将所有字段按层次关系进行组织,并通过计算路径形成字段的唯一标识;基于树状结构,再快速生成扁平结构,将所有字段按先后顺序线性组织,并计算每一字段的起始位置,计算方法与报文定义时所采用的字段定位策略有关;协议描述文件应当统一约定字段定位策略;
如果协议中存在报文头格式或报文尾格式的定义,则将它们分别与报文集中的每一个报文定义合并,形成完整的报文体;
如果协议中存在字段数值,则将该字段数值与报文体中的字段进行关联;
7)报文匹配;报文匹配模块用于确定数据在协议中所对应的报文,完成数据与协议描述之间的关系匹配;即,协议中应当定义一个报文标识字段,将该字段与报文属性中的类型进行比较,以判定是否为某一类报文;更复杂的情况可以通过字段数值来判定,当所有字段数值都一致时,判定为对应报文;
8)报文解析;报文解析模块用于从原始数据中分解出各个字段的值,其中,报文分解可以有两种策略:一是将报文完全分解,再从中提取数据;另一种是根据起始位和长度直接从原始数据中提取数据。
CN201410037542.6A 2014-01-26 2014-01-26 一种面向复杂系统的通用应用层网络通信协议应用方法 Active CN103780624B (zh)

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 CN103780624A (zh) 2014-05-07
CN103780624B true 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)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702600B (zh) * 2015-03-02 2017-11-24 国家计算机网络与信息安全管理中心 一种可配置的逐层报文解析方法和装置
CN109783080B (zh) * 2018-12-25 2022-07-01 国电南瑞科技股份有限公司 一种前置接口通信协议开发方法及系统
CN110011968A (zh) * 2019-02-28 2019-07-12 郑州轨道交通信息技术研究院 一种基于工控协议通用框架的策略访问控制方法
CN111404641B (zh) * 2020-06-04 2020-09-29 湖南中车时代通信信号有限公司 数据重组方法、系统、装置及计算机可读存储介质
CN111813395B (zh) * 2020-07-06 2024-01-30 广东海洋大学 基于xml格式的通讯协议信息描述通用模型及其设计方法
CN114915548B (zh) * 2022-05-09 2023-10-31 中国船舶重工集团公司第七0七研究所九江分部 一种基于单片机can协议可视化配置和自动解析方法
CN116600022A (zh) * 2023-07-17 2023-08-15 成都数维通信技术有限公司 一种通用式工控网络通信协议构建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101577704A (zh) * 2008-05-08 2009-11-11 北京东华合创数码科技股份有限公司 一种网络应用层协议识别方法和系统
CN102647414A (zh) * 2012-03-30 2012-08-22 华为技术有限公司 协议解析方法、设备及系统
CN103139058A (zh) * 2013-01-28 2013-06-05 公安部第一研究所 一种物联网安全接入网关

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090086269A1 (en) * 2007-09-28 2009-04-02 Kyocera Mita Corporation Image Forming Apparatus and Image Forming System

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101577704A (zh) * 2008-05-08 2009-11-11 北京东华合创数码科技股份有限公司 一种网络应用层协议识别方法和系统
CN102647414A (zh) * 2012-03-30 2012-08-22 华为技术有限公司 协议解析方法、设备及系统
CN103139058A (zh) * 2013-01-28 2013-06-05 公安部第一研究所 一种物联网安全接入网关

Also Published As

Publication number Publication date
CN103780624A (zh) 2014-05-07

Similar Documents

Publication Publication Date Title
CN103780624B (zh) 一种面向复杂系统的通用应用层网络通信协议应用方法
CN103530223B (zh) 一种自动生成单元测试用例的方法及装置
CN103312551B (zh) 通用网关接口的测试方法及测试装置
KR100750962B1 (ko) 구조적 데이터 구문 분석
CN104063401B (zh) 一种网页样式地址合并的方法和装置
ATE527605T1 (de) Intelligentes automatisches ausfüllen von formularen
CN108933784B (zh) 一种工控协议解码规则的表述及优化解码方法
CN103544213A (zh) 网站内容更新检测评价方法及系统
CN107943691A (zh) 一种自动产生智能合约的功能测试页面的方法及装置
CN102023869A (zh) 一种控件输入值校验方法及系统
CN106941501A (zh) 一种数据通信方法及装置
CN107015841A (zh) 一种程序编译的预处理方法及程序编译设备
CN107102877A (zh) 一种跨浏览器插件的自适应方法
CN115878681B (zh) 自动驾驶数据的获取方法及装置、存储介质及电子装置
CN103902539B (zh) 可扩展标记语言数据解析方法及装置
CN116346961B (zh) 金融报文处理方法、装置、电子设备及存储介质
CN109359055B (zh) 一种数据测试的方法和设备
CN104298657A (zh) 基于表达式的评价指标解析系统
CN103559296A (zh) 一种基于xml的scpi命令解析方法
CN107436929A (zh) 可扩展标记语言xml文件解析方法及装置
WO2016086640A1 (zh) 巡检报告生成的方法及装置
US8484554B2 (en) Producing a chart
CN107766384A (zh) 一种确定页面发布时间的方法和装置
CN111882419B (zh) 质检文件的方法、装置及服务器
Llorens et al. Incremental software reuse

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