CN102685128B - 一种基于状态机的协议构造方法 - Google Patents
一种基于状态机的协议构造方法 Download PDFInfo
- Publication number
- CN102685128B CN102685128B CN201210141631.6A CN201210141631A CN102685128B CN 102685128 B CN102685128 B CN 102685128B CN 201210141631 A CN201210141631 A CN 201210141631A CN 102685128 B CN102685128 B CN 102685128B
- Authority
- CN
- China
- Prior art keywords
- state
- service
- agreement
- protocol
- 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.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
一种基于状态机的协议构造方法,通过分析协议的语法、语义和时序,将协议抽象为一组服务和状态,每一种服务对应一个基本的网络功能单元,每一种状态对应协议逻辑运行所处的阶段,通过状态机模型对协议的逻辑过程进行描述,生成状态转移表,根据生成的状态转移表,控制各个服务的运行,由此动态地构造协议实例并控制其运行。相对于传统的协议构成方法,可以降低协议部署、维护的复杂性和成本,提高其灵活性和扩展性,使协议发展可以动态地适应应用需求的变化。
Description
技术领域
本发明属于计算机网络技术领域,为动态地生成网络通信协议提供方法,为一种基于状态机的协议构造方法。
背景技术
网络协议定义为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议的构造是基于具体应用的需求和网络的条件。目前广泛应用的协议是TCP/IP协议族,其中协议的构造方法主要是根据需求手工设计并实现协议,采用静态部署方式。这种方法针对某种特定的网络和应用,可以设计出高性能的协议,但是开发周期长、费用高、部署复杂,而且维护的费用也很昂贵。当应用需求发生变化时,协议无法动态地调整以适应需求的扩展。
发明内容
为了克服传统协议构造方法开发周期长、维护难度大的不足,本发明提供一种基于状态机的协议构造方法,该方法不仅简化协议的构造过程,而且提供一种通用的协议构造及动态部署方法,可以让协议动态地适应应用需求的变化。
本发明的技术方案为:一种基于状态机的协议构造方法,分析协议的语法、语义和时序,所述语法指数据与控制信息的结构或格式,语义指需要发出何种控制信息,完成何种动作以及做出何种响应,时序指事件实现顺序的详细说明;将协议抽象为一组服务和状态,每一种服务对应一个基本的网络功能单元,每一种状态对应一个协议逻辑运行所处的阶段,抽象出服务和状态后,对协议的状态变迁情况进行分析,得到状态变迁条件,并将状态变迁条件抽象为信号,运用状态机模型对协议进行形式化描述,对于无状态变迁的协议,使用一个统一的状态机描述;对于存在状态变化的协议,根据其规范标准进行描述;对于构造的新协议,根据其需求分析并构建该协议所使用的基本数据和信息的结构,定义各个信息所需要完成的动作、做出的响应,以及各个状态间的基本时序,从而对该协议进行形式化描述;最后,根据描述的状态机模型动态地构造协议实例并控制其运行:
将协议的状态机模型转换为状态转移表。状态转移表包含四个属性,分别为当前状态、输入信号、跳转状态和执行的服务,每一个状态转移对应一组四个属性,所述属性的内容为上述抽象得到的服务、状态和信号,属性的对应关系根据逻辑过程和状态变迁条件确定;构造协议过程中,当协议处于状态转移表中的当前状态并收到对应的输入信号,则改变自己的当前状态为对应的跳转状态,同时调用对应执行的服务,即协议的下一状态和所调用的服务取决于当前状态和输入信号,由此动态构造协议实例,并控制其运行。
状态机模型的形式化描述如下,其中Q代表抽象出来的状态的有限集合、S代表抽象出来的服务的有限集合、Σ代表抽象出的信号的有限集合、T代表状态转移的对应函数、S代表服务执行的对应函数:
Q={q0,q1,q2,...qn}是有限状态集合;
Σ={σ1,σ2,σ3,…,σm}是有限输入信号集合;
S={s1,s2,s3,...,sr}是有限服务集合;
T:Q×Σ->2Q是状态转移函数;
F:Q×Σ->S是执行服务函数;
q0∈Q是初始状态;
T(q,σ)=a表示当进入状态q,并得到输入信号为σ时则进入下一状态a;F(q,σ)=s表示当进入状态q,并得到输入信号为σ时则执行服务s;当输入串为{σ1,σ2,σ3,...,σm}时,设T(q0,σ1)=q1,T(q1,σ2)=q2,…,T(qi-1,σi)=qi,…,T(qn-1,σn)=qn,这时的执行服务序列为F(q0,σ1),F(q1,σ2),...,F(qi-1,σi),...,F(qn-1,σn)。
对于状态变迁需要执行多个服务的情况,将抽象出的服务保存于一个服务队列中,对服务队列中的每个服务设置其优先等级,当状态变迁时根据优先级依次执行服务,具有最高优先级的服务最先执行。
本发明的有益效果是,简化协议的构造过程,降低协议部署、维护的复杂性,可以让协议动态地适应应用需求的变化。
传统的协议构造方法建立在层次型网络的基础上,是针对某种特定的网络或应用,经过专门的标准化组织讨论制定标准,再通过编码实现,最后部署到实际网络环境中。传统的协议构造方法开发周期比较长,费用比较高。随着新增技术和网络需求层出不穷,新增的功能不能安装在特定的层次上,需要不同层次通过复杂机制协调完成,甚至需要增加层次,这就给新协议的部署带来了很大的困难,而且很难避免功能上的冗余。当对协议进行维护时,需要对相关联的协议同步维护,复杂性较高。
本发明基于状态机的构造方法,首先将网络中的基本功能抽象成服务,避免以后功能上的冗余,并且隐藏了实现的技术细节。再根据协议的语法、语义、时序,建立相应的状态机模型,构造协议的过程即建立状态机模型的过程,开发周期短,费用低。网络环境中协议总是根据状态机模型动态地运行。当应用需求发生变化时,只需要对相应的状态机模型进行修改,而不需要对网络环境中的具体实现部分进行修改,降低了协议部署、维护的复杂性。
附图说明
图1是本发明无状态变迁协议的状态机模型示意图。
图2是本发明建立连接的状态机模型示意图。
图3是本发明协议构造的流程图。
具体实施方式
如图3所示,本发明方法首先将协议的逻辑过程进行抽象,生成不同的服务和状态,抽象协议逻辑过程是指分析协议的语法、语义和时序,所述语法指数据与控制信息的结构或格式,语义指需要发出何种控制信息,完成何种动作以及做出何种响应,时序指事件实现顺序的详细说明。将协议抽象为一组服务和状态,每一种服务对应一个基本的网络功能单元,例如分片、加密、流量控制等;每一种状态对应协议逻辑运行所处的阶段。抽象出服务和状态后,对协议的状态变迁情况进行分析,得到状态变迁条件并进一步抽象为信号。根据这些抽象出的元素,运用状态机模型,对协议的逻辑过程进行描述。状态机模型的形式化描述如下:
Q={q0,q1,q2,...qn}是有限状态集合;
Σ={σ1,σ2,σ3,…,σm}是有限输入状态集合;
S={s1,s2,s3,...,sr}是有限服务集合;
T:Q×Σ->2Q是状态转移函数;
F:Q×Σ->S是执行服务函数;
q0∈Q是初始状态。
其中Q代表抽象出来的状态的有限集合、S代表抽象出来的服务的有限集合、Σ代表抽象出的信号的有限集合、T代表状态转移的对应函数、S代表服务执行的对应函数,T(q,σ)=a表示当进入状态q,并得到输入信号为σ时则进入下一状态a。F(q,σ)=s表示当进入状态q,并得到输入信号为σ时则执行服务s。当输入串为{σ1,σ2,σ3,...,σm}时,设T(q0,σ1)=q1,T(q1,σ2)=q2,…,T(qi-1,σi)=qi,…,T(qn-1,σn)=qn。这时的执行服务序列为F(q0,σ1),F(q1,σ2),...,F(qi-1,σi),...,F(qn-1,σn)。
在形式化描述的基础上,生成状态转移表。状态转移表包含四个属性,分别为当前状态、输入信号、跳转状态、所执行的服务。运行过程中当协议处于状态转移表中的当前状态并收到对应的输入信号,便改变自己的当前状态为跳转状态,同时调用对应服务。协议的下一状态和所调用的服务取决于当前状态和输入信号。对于某个状态需要执行多个服务的情况,使用一个服务列表保存需要执行的服务。状态发生改变时依次执行每个服务。根据生成的状态转移表,控制各个服务的运行,由此动态构造协议实例,并控制其运行。
下面通过具体实例来说明本发明的实施。对于简单的无状态变迁的协议,可以是传统协议也可以是新构造的协议,我们采用图1所示的状态机模型。实线箭头表示客户端的状态变迁,虚线箭头表示服务端的状态变迁。对于Server服务端,初始处在CLOSE关闭状态,在收到SERVER_START启动信号后便变迁到LISTEN监听状态,并执行服务s1;处在LISTEN监听状态时如果收到DONE完成信号,就变迁到CLOSE关闭状态,此时执行的服务为NULL,表示不执行任何服务。对于Client客户端,初始处在CLOSE关闭状态,在收到CLIENT_START启动信号后便变迁到SENT发送状态,并执行服务s2和s3;处在SENT发送状态时如果收到DONE完成信号,就变迁到CLOSE关闭状态。状态机模型的形式化描述为:
1)有限状态集合Q={CLOSE,LISTEN,SENT};
2)输入状态集合Σ={SERVER_START,CLIENT_START,DONE};
3)有限服务集合S={s1,s2,s3};//这里的s1、s2、s3并不特指某个具体的服务,是根据实际需求产生的。它可以代表传统协议的一个功能,也可以代表根据需求生成的新协议的某个功能。
4)状态转移函数T:
T(CLOSE,SERVER_START)=LISTEN,
T(CLOSE,CLIENT_START)=SENT,
T(LISTEN,DONE)=CLOSE,
T(SENT,DONE)=CLOSE,
5)执行服务函数F:
F(CLOSE,SERVER_START)=s1,
F(CLOSE,CLIENT_START)=s2+s3,
6)CLOSE为初始状态
根据状态机模型,进一步生成状态转移表,如表1所示。
表1
当前状态 | 输入信号 | 跳转状态 | 所执行的服务 |
CLOSE | SERVER_START | LISTEN | s1 |
CLOSE | CLIENT_START | SENT | s2+s3 |
LISTEN | DONE | CLOSE | NULL |
SENT | DONE | CLOSE | NULL |
协议实例根据表1所示的状态转移表动态地运行。
对于存在状态变化的协议,例如TCP协议,根据其规范标准进行描述.图2所示为一个常见的TCP协议三次握手建立连接的状态机模型,首先将建立连接的过程抽象,生成各个状态、服务和信号。形式化描述为:
1)有限状态集合Q={CLOSE,SYN_RECEIVE,SYN_SENT,ESTABLISH}
2)输入状态集合Σ={σ1,σ2,σ3,σ4,σ5,σ6}
3)有限服务集合S={s1,s2,s3,s4}
4)状态转移函数T:
T(CLOSE,σ1)=SYN_SENT //σ1表示发送SYN
T(SYN_SENT,σ2)=ESTABLISH //σ2表示收SYN,ACK,发ACK
T(CLOSE,σ3)=LISTEN; //σ3表示服务端开启
T(CLOSE,σ4)=SYN_RECEIVE, //σ4表示收SYN,发SYN,ACK
T(SYN_RECEIVE,σ5)=ESTABLISH, //σ5表示收ACK
T(SYN_RECEIVE,σ6)=LISTEN, //σ6表示收RST
5)执行服务函数F:
F(CLOSE,σ1)=s1 //s1表示定时器服务
F(SYN_SENT,σ2)=s2+s3+s4
//s2表示分片服务,s3表示滑动窗口,s4表示拥塞控制
6)CLOSE为初始状态
根据状态机模型,进一步生成状态转移表,如表2所示。
表2
当前状态 | 输入信号 | 跳转状态 | 所执行服务 |
CLOSE | σ1 | SYN_SENT | s1 |
CLOSE | σ3 | LISTEN | s1 |
CLOSE | σ4 | SYN_RECEIVE | s1 |
SYN_SENT | σ2 | ESTABLISH | s2+s3+s4 |
SYN_RECEIVE | σ5 | ESTABLISH | s2+s3+s4 |
SYN_RECEIVE | σ6 | LISTEN | s1 |
TCP建立连接实例根据表2所示的状态转移表动态地运行。
Claims (3)
1.一种基于状态机的协议构造方法,其特征是分析协议的语法、语义和时序,所述语法指数据与控制信息的结构或格式,语义指需要发出何种控制信息,完成何种动作以及做出何种响应,时序指事件实现顺序的详细说明;将协议抽象为一组服务和状态,每一种服务对应一个基本的网络功能单元,每一种状态对应一个协议逻辑运行所处的阶段,抽象出服务和状态后,对协议的状态变迁情况进行分析,得到状态变迁条件,并将状态变迁条件抽象为信号,运用状态机模型对协议进行形式化描述,对于无状态变迁的协议,使用一个统一的状态机描述;对于存在状态变化的协议,根据其规范标准进行描述;对于构造的新协议,根据其需求分析并构建该协议所使用的基本数据和信息的结构,定义各个信息所需要完成的动作、做出的响应,以及各个状态间的基本时序,从而对该协议进行形式化描述;最后,根据描述的状态机模型动态地构造协议实例并控制其运行:
将协议的状态机模型转换为状态转移表,状态转移表包含四个属性,分别为当前状态、输入信号、跳转状态和执行的服务,每一个状态转移对应一组四个属性,所述属性的内容为上述抽象得到的服务、状态和信号,属性的对应关系根据逻辑过程和状态变迁条件确定;构造协议过程中,当协议处于状态转移表中的当前状态并收到对应的输入信号,则改变自己的当前状态为对应的跳转状态,同时调用对应执行的服务,即协议的下一状态和所调用的服务取决于当前状态和输入信号,由此动态构造协议实例,并控制其运行。
2.根据权利要求1所述的一种基于状态机的协议构造方法,其特征是状态机模型的形式化描述如下,其中Q代表抽象出来的状态的有限集合、S代表抽象出来的服务的有限集合、Σ代表抽象出的信号的有限集合、T代表状态转移的对应函数、F代表服务执行的对应函数:
Q={q0,q1,q2,…qn}是有限状态集合,n表示有限状态集合的元素个数;
Σ={σ1,σ2,σ3,…,σm}是有限输入信号集合,m表示有限输入信号集合的元素个数;
S={s1,s2,s3,…,sr}是有限服务集合,r表示有限服务集合的元素个数;
T:Q×Σ->2Q,T是状态转移函数;
F:Q×Σ->S,F是执行服务函数;
q0∈Q是初始状态;
T(q,σ)=a表示当进入状态q,并得到输入信号为σ时则进入下一状态a;F(q,σ)=s表示当进入状态q,并得到输入信号为σ时则执行服务s;当输入串为{σ1,σ2,σ3,…,σm}时,设T(q0,σ1)=q1,T(q1,σ2)=q2,…,T(qi-1,σi)=qi,…,T(qn-1,σm)=qn,这时的执行服务序列为F(q0,σ1),F(q1,σ2),…,F(qi-1,σi),…,F(qn-1,σm)。
3.根据权利要求1或2所述的一种基于状态机的协议构造方法,其特征是对于状态变迁需要执行多个服务的情况,将抽象出的服务保存于一个服务队列中,对服务队列中的每个服务设置其优先等级,当状态变迁时根据优先级依次执行服务,具有最高优先级的服务最先执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210141631.6A CN102685128B (zh) | 2012-05-09 | 2012-05-09 | 一种基于状态机的协议构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210141631.6A CN102685128B (zh) | 2012-05-09 | 2012-05-09 | 一种基于状态机的协议构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685128A CN102685128A (zh) | 2012-09-19 |
CN102685128B true CN102685128B (zh) | 2015-09-30 |
Family
ID=46816491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210141631.6A Expired - Fee Related CN102685128B (zh) | 2012-05-09 | 2012-05-09 | 一种基于状态机的协议构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102685128B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112013004105T5 (de) * | 2012-10-22 | 2015-04-30 | Intel Corp. | Kohärenzprotokolltabellen |
CN103986655A (zh) * | 2014-05-20 | 2014-08-13 | 东南大学 | 一种网络路由服务构造方法 |
CN109117130B (zh) * | 2018-07-28 | 2022-02-11 | 武汉光庭信息技术股份有限公司 | 一种基于mdd的时序图自动生成状态迁移矩阵的方法、系统及存储器 |
CN111443898A (zh) * | 2019-11-14 | 2020-07-24 | 天津津航计算技术研究所 | 基于优先级队列与有限状态机的流程式控制软件设计方法 |
CN117273834B (zh) * | 2023-01-04 | 2024-06-04 | 深圳市速达非科技有限公司 | 一种基于物流场景可配置账单的计费引擎及其方法 |
CN116346711B (zh) * | 2023-03-31 | 2024-04-05 | 西安电子科技大学 | 基于行为树的路由协议表征方法、介质及通信方法 |
CN117893638B (zh) * | 2024-03-18 | 2024-06-11 | 上海朋熙半导体有限公司 | 融合状态机的时序图生成方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101674205A (zh) * | 2009-08-27 | 2010-03-17 | 福建星网锐捷网络有限公司 | 基于有限状态机的网络通信协议测试序列生成方法及装置 |
CN102103497A (zh) * | 2009-12-18 | 2011-06-22 | 阿尔卡特朗讯 | 有限状态机执行装置和方法、在应用中的建立和使用方法 |
CN102291436A (zh) * | 2011-07-22 | 2011-12-21 | 北京航空航天大学 | 一种分布式事务通信有限状态机模型及其验证方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009151750A1 (en) * | 2008-04-03 | 2009-12-17 | Telcordia Technologies, Inc. | A formal language for multicast communication |
-
2012
- 2012-05-09 CN CN201210141631.6A patent/CN102685128B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101674205A (zh) * | 2009-08-27 | 2010-03-17 | 福建星网锐捷网络有限公司 | 基于有限状态机的网络通信协议测试序列生成方法及装置 |
CN102103497A (zh) * | 2009-12-18 | 2011-06-22 | 阿尔卡特朗讯 | 有限状态机执行装置和方法、在应用中的建立和使用方法 |
CN102291436A (zh) * | 2011-07-22 | 2011-12-21 | 北京航空航天大学 | 一种分布式事务通信有限状态机模型及其验证方法 |
Non-Patent Citations (2)
Title |
---|
从Petri网到形式描述技术和协议工程;罗军舟等;《软件学报》;20001130;全文 * |
扩展有限状态机的依赖图构造及切片算法;韩喆等;《小型微型计算机系统》;20110430(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN102685128A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102685128B (zh) | 一种基于状态机的协议构造方法 | |
CN102857566B (zh) | 一种可软件定制的物联网智能网关 | |
CN105282207B (zh) | 一种基于可拼装通信协议栈的通信方法及系统 | |
CN103179133B (zh) | 基于实体类的客户端与服务器通信的方法 | |
CN102137126B (zh) | 网页数据更新系统及方法 | |
CN105025056A (zh) | 一种物联网信息采集及监控系统的设计方法 | |
CN102970376A (zh) | 集群配置方法和装置 | |
CN109787873A (zh) | 一种多对多入网通信的方法和装置 | |
US9654590B2 (en) | Method and arrangement in a communication network | |
CN107135112A (zh) | 一种数字家庭私有云服务可视化控制系统及方法 | |
CN104866404B (zh) | 一种通用的数据监视方法 | |
Bai | Modeling analysis of Intelligent Manufacturing System based on SDN | |
CN110808982A (zh) | 一种基于注册机制的通信规约的建立方法及系统 | |
CN109120651A (zh) | 一种改善教学网络文件传输流畅度的实现方法及系统 | |
Song et al. | Towards a framework to support novice users in understanding and monitoring of Home Area Networks | |
CN104518928A (zh) | 实现远程镜像报文透过rpr环网的方法及系统 | |
CN109194731A (zh) | 一种基于组态软件的并发实时数据传输接口实现方法 | |
CN104158903B (zh) | Oam协议栈编码方法及系统 | |
CN107154942A (zh) | 一种通过第三方服务器提供自动化服务的方法 | |
CN107563075A (zh) | 一种实现CosiMate网络和DDS网络互联的模块及其设计方法 | |
CN108881965B (zh) | 一种服务器进程操作方法和装置 | |
CN102693595A (zh) | 一种基于csoi技术的云网开终端在线发票开具方法 | |
Corici et al. | An OpenMTC platform-based interconnected European–South African M2M Testbed for Smart City Services | |
Cai et al. | Network simulation based on opnte and application | |
CN103365655A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150930 Termination date: 20180509 |