一种基于UDP通信的RSSP‑II通信方法与流程

文档序号:13808231阅读:490来源:国知局
一种基于UDP通信的RSSP‑II通信方法与流程

本发明涉及通信技术领域,特别涉及一种基于udp通信的rssp-ii通信方法。



背景技术:

rssp-ii安全通信协议是一种铁路信号设备间通信采用的协议,其安全完整性等级可达sil4。目前,已有的rssp-ii协议都是基于tcp通信,但是某些铁路信号设备间是采用upd方式进行通信的,基于tcp方式的rssp-ii协议无法应用于这些设备之间。



技术实现要素:

本发明的目的在于提供一种基于udp通信的rssp-ii通信方法,以提高rssp-ii协议的通用性。

为实现以上目的,本发明采用的技术方案为:提供一种基于udp通信的rssp-ii通信方法,包括:

对udp通信过程中的事件进行编号,并通过对编号识别模拟udp通信过程中的事件;

利用所述模拟的事件触发udp状态机的转换,得到udp状态机当前的转换状态;

rssp-ii协议栈通过调用网络适配层提供的相应接口函数获取udp状态机的转换状态,并对udp状态机进行管理。

其中,udp状态机的转换状态包括:连接断开、等待连接建立、连接已建立以及发送fin报文。

其中,模拟udp通信过程中的事件包括:发起连接、连接建立成功、断开连接、收到数据、收到fin报文、收到fin-ack报文以及发送fin报文超时。

其中,所述的利用所述模拟的事件触发udp状态机的转换,得到udp状态机当前的转换状态,具体包括:

在识别出udp通信过程中模拟事件为发起连接时,触发udp状态机的转换状态从连接断开状态转换为等待连接状态;

在识别出udp通信过程中模拟事件为连接建立成功时,触发udp状态机的转换状态从等待连接建立状态转换为连接已建立状态;

在识别出udp通信过程中模拟事件为断开连接时,触发udp状态机的转换状态从连接已建立状态转换为发送fin报文状态;

在识别出udp通信过程中模拟事件为收到fin报文或者收到fin-ack报文或者发送fin报文超时时,触发udp状态机的转换状态从发送fin报文状态转换为连接断开状态;

在识别出udp通信过程中模拟事件为断开连接时,触发udp状态机的状态从等待连接建立状态转换为连接断开状态。

与现有技术相比,本发明存在以下技术效果:本发明中通过模拟udp通信过程中的事件,通过事件触发udp状态转换机的状态转换,实现对udp的连接状态进行管理的目的。与传统的基于tcp的rssp-ii协议相比,本发明rssp-ii协议栈将udp视为与tcp等同的连接,使rssp-ii协议既适用于采用tcp方式通信的设备,也适用于采用udp方式通信的设备,极大的提高了rssp-ii协议的通用性。

附图说明

下面结合附图,对本发明的具体实施方式进行详细描述:

图1是本发明中一种基于udp通信的rssp-ii通信方法的流程示意图;

图2是本发明中udp状态机的状态转换示意图。

具体实施方式

为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。

如图1所示,本实施例公开了一种基于udp通信的rssp-ii通信方法,包括如下步骤:

s1、对udp通信过程中的事件进行编号,并通过对编号识别模拟udp通信过程中的事件;

s2、利用所述模拟的事件触发udp状态机的转换,得到udp状态机当前的转换状态;

s3、rssp-ii协议栈通过调用网络适配层提供的相应接口函数获取udp状态机的转换状态,并对udp状态机进行管理。

需要说明的是,本实施例中的网络适配层函数的作用是将udp的状态返回至rssp-ii协议栈。

进一步地,udp状态机的转换状态包括:连接断开、等待连接建立、连接已建立以及发送fin报文。

进一步地,所述模拟udp通信过程中的事件包括:发起连接、连接建立成功、断开连接、收到数据、收到fin报文、收到fin-ack报文以及发送fin报文超时。

具体地,在实际应用中,由于udp的通信方式实际上并不建立连接,因此本实施例通过对每个模拟事件进行编号,在状态管理过程中,在识别出事件编号时,即可触发udp相应状态的转换。

需要说明的是,发起连接时间指的是:rssp-ii协议栈调用网络适配层函数,想对方发送申请建立连接的数据。

连接建立成功事件指的是:调用rssp-ii协议栈提供的接口函数,告知协议栈连接已建立。

断开连接事件指的是:定义名为fin的报文,需要断开连接时,发送fin报文,通知对方连接断开。fin报文的作用是,在通信双方的某一方需要断开连接时,向对方发送fin报文以通知对方连接断开。

收到数据事件指的是:向rssp-ii协议栈报告接收到的数据。

收到fin报文事件指的是:接收到对方的fin报文,将本方连接状态设为断开。同时,定义名为fin-ack的报文,向对方回复fin-ack报文。

收到fin-ack报文事件指的是:将本方连接状态设为断开。

发送fin报文超时事件指的是:发送fin报文后,未在规定时间内收到fin-ack报文。

需要说明的是,在每次发送udp数据时,应记录发送时间并将数据保存到缓存区。协议栈检查规定时间内是否有数据发送,如超时仍无数据发送,则从缓存区中取出数据并重新发送。

需要说明的是,本实施例中设置一个计数器,发送fin报文后计数器开始计时,收到fin-ack报文时停止计时。如果检查到计数器超过规定时间,则说明未在规定时间内收到fin-ack报文。

进一步地,如图2所示,步骤s2,具体包括:

在识别出udp通信过程中模拟事件为发起连接时,触发udp状态机的转换状态从连接断开状态转换为等待连接状态;

在识别出udp通信过程中模拟事件为连接建立成功时,触发udp状态机的转换状态从等待连接建立状态转换为连接已建立状态;

在识别出udp通信过程中模拟事件为断开连接时,触发udp状态机的转换状态从连接已建立状态转换为发送fin报文状态;

在识别出udp通信过程中模拟事件为收到fin报文或者收到fin-ack报文或者发送fin报文超时时,触发udp状态机的转换状态从发送fin报文状态转换为连接断开状态;

在识别出udp通信过程中模拟事件为断开连接时,触发udp状态机的状态从等待连接建立状态转换为连接断开状态。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。



技术特征:

技术总结
本发明公开了一种基于UDP通信的RSSP‑II通信方法,属于通信技术领域,包括对UDP通信过程中的事件进行编号,并通过对编号识别模拟UDP通信过程中的事件;利用所述模拟的事件触发UDP状态机的转换,得到UDP状态机当前的转换状态;RSSP‑II协议栈通过调用网络适配层提供的相应接口函数获取UDP状态机的转换状态,并对UDP状态机进行管理。本发明中RSSP‑II协议栈将UDP视为与TCP等同的连接,使RSSP‑II协议既适用于采用TCP方式通信的设备,也适用于采用UDP方式通信的设备,极大的提高了RSSP‑II协议的通用性。

技术研发人员:左林;刘贞;王一民;郭薇薇;黄雅倩
受保护的技术使用者:北京全路通信信号研究设计院集团有限公司
技术研发日:2017.10.24
技术公布日:2018.02.23
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1