一种基于双网双链路的实时数据传输方法及系统技术方案

技术编号:34904221 阅读:58 留言:0更新日期:2022-09-10 14:16
本发明专利技术公开了一种基于双网双链路的实时数据传输方法及系统,该方法包括:所有节点部署通信服务模块,通过A网和B网与目标节点上的通信服务模块分别建立TCP链接,当前节点上运行的应用模块对外发送数据,需要通过通信服务模块进行网络传输,通信服务模块接收到本节点应用模块发送的数据,计算出唯一性标签,并组成新数据包,分别通过A网和B网同时发往目标节点的A网地址和B网地址;目标节点通信服务模块接收数据,解析数据中的唯一性标签,与本节点之前保存的标签集合进行比对,分离出时间戳和唯一标签的数据,存入数据缓存中。本发明专利技术保证当网络出现故障,需要发生切换时,数据传输不受影响,应用层保证数据不丢失。应用层保证数据不丢失。应用层保证数据不丢失。

【技术实现步骤摘要】
一种基于双网双链路的实时数据传输方法及系统


[0001]本专利技术涉及轨道交通综合自动化系统
,具体涉及一种基于双网双链路的实时数据传输方法及系统。

技术介绍

[0002]轨道交通综合自动化系统(以下简称ISCS)是一种典型的工业控制分布式系统。它由控制中心及若干车站这种分布在不同地域上的服务器及工作站节点构成,为了提升系统的可靠性,所有的节点都配置2块网卡,并通过独立的网络设备(交换机)进行连接,实现系统中所有节点都是通过独立双路物理网络进行连接。
[0003]在此物理冗余双网架构下,综合自动化系统实际传输数据时,本着效率及实现简单,只会选择单网络(即通过A网或者B网)进行数据通信(假设优先通过A网进行数据传输),不会通过A网和B网同时传输相同的数据。在这种情况下,如果系统网络中的A交换机或者服务器/工作站节点A网网卡发生故障,综合自动化系统应用层通过A网传输数据不成功,这时候应用层的服务器才会重新选择B网网络,通过与对端的B网地址重新建立链接,再进行数据传输。
[0004]在这种情况下,当网络出现故障,应用层切换网络的时间通常是秒级的,实际测试下来,大概在2秒左右,对于综合自动化系统中的一些对时间特别敏感的数据,此切换时间过长,不能满足系统要求。
[0005]另外,由于网络中断,应用层服务没有收到对端接收到报文的回复,不确定中断前发送的数据对端是否接收到,会重新再发送一遍,这样对端同样的数据收到2遍,可能会造成逻辑错误及误判断。

技术实现思路

[0006]专利技术目的:为了克服现有技术的不足,本专利技术提供一种基于双网双链路的实时数据传输方法,该方法可以解决上述的技术问题,此外,本申请还提供基于双网双链路的实时数据传输系统。
[0007]技术方案:一方面,本专利技术所述的基于双网双链路的实时数据传输方法,该方法包括以下步骤:S1当前发送节点M的主线程读取预定义配置,从而获取所有需要通信节点的A网和B网的地址;S2所述主线程轮询以上的所有地址,按照每个地址启动一个线程,并在线程内对目标地址建立TCP链接,与对应目标节点N在A网和B网的地址建立的TCP链接分别记为M

Na链接和M

Nb链接,M

Na链接所在的线程称为M

Na发送线程,M

Nb链接所在的线程称为M

Nb发送线程;S3当前发送节点M的应用模块发送原数据至当前发送节点M的通信服务模块,所述通信服务模块对所述数据进行加密运算,得到一个唯一性标签;
S4获取当前时间,进而得到时间戳,将所述时间戳置于所述唯一性标签前,并将所述时间戳和唯一性标签放在原数据字段的前面,组成新数据包;S5所述新数据包存入所述目标节点N启动的M

Na发送线程和M

Nb发送线程中,接收到新数据包后,通过线程内的TCP链接给目标地址发送数据。
[0008]进一步的,包括:所述S1中,主线程通过当前发送节点M的通信服务模块启动,且所述主线程用于启动若干个接收线程、一个监护线程以及若干个发送线程,所述监护线程用于动态监测所有TCP链接的线程,当监测到存在线程僵死,重启相应线程,所述发送线程用于发送当前发送节点的TCP链接请求,并定时检测链接,若链接中断,则重新建立链接,所述接收线程用于接收目标节点N的TCP链接请求,并分配出新的线程与发送端建立链接。
[0009]进一步的,包括:所述加密运算采用的方法为MD5算法,进而计算出128位的唯一性标签。
[0010]进一步的,包括:所述S5中通过线程内的TCP链接给目标地址发送数据,具体包括:S51当前发送节点M通过A网尝试与目标节点N通信服务模块建立M

Na链接,目标节点N的通信服务模块的接收线程获取到TCP链接请求后,节点N的接收线程新建一个接收线程,放置与节点M的通信服务模块建立好M

Na接收线程;S52当前发送节点M通过M

Na线程发送的数据,就是目标节点N通过步骤S51中接收线程中的M

Na链接收到的;S53所述M

Na接收线程收到数据后,首先从新数据包中取出时间戳和唯一性标签,通过唯一性标签至当前发送节点M上存储的HASH表中查询,把唯一性标签和时间戳作为一对键值存入HASH表,并把分离出时间戳和唯一性标签后的数据,存入数据缓存中,供应用模块后续处理;S54此时,目标节点N上的M

Nb接收线程也收到当前发送节点M通过M

Nb链接发送的同样数据后,到HASH表中进行比对,由于A网接受的数据已经放入HASH表中,即HASH表中已经有此数据的唯一性标签,此时丢弃当前数据包,M

Nb接收线程继续等待接收数据。
[0011]进一步的,包括:该方法还包括:定时清理所述HASH表中的键值对。
[0012]另一方面,本专利技术还提供基于双网双链路的实时数据传输系统,该系统包括:当前发送节点M和目标节点N,所述当前发送节点M与目标节点之间设置有双网络,记为A网和B网;所述当前发送节点M的主线程读取预定义配置,从而获取所有需要通信节点的A网和B网的地址;当前发送节点M的主线程轮询以上的所有地址,按照每个地址启动一个线程,并在线程内对目标地址建立TCP链接,与对应目标节点N在A网和B网的地址建立的TCP链接分别记为M

Na链接和M

Nb链接,M

Na链接所在的线程称为M

Na发送线程,M

Nb链接所在的线程称为M

Nb发送线程;当前发送节点M的应用模块发送原数据至当前发送节点M的通信服务模块,所述通信服务模块对所述数据进行加密运算,得到一个唯一性标签;
获取当前时间,进而得到时间戳,将所述时间戳置于所述唯一性标签前,并将所述时间戳和唯一性标签放在原数据字段的前面,组成新数据包;所述新数据包存入所述目标节点N启动的M

Na发送线程和M

Nb发送线程中,接收到新数据包后,通过线程内的TCP链接给目标地址发送数据。
[0013]进一步的,包括:所述当前发送节点M的主线程通过当前发送节点M的通信服务模块启动,且所述主线程用于启动若干个接收线程、一个监护线程以及若干个发送线程,所述监护线程用于动态监测所有TCP链接的线程,当监测到存在线程僵死,重启相应线程,所述发送线程用于发送当前发送节点的TCP链接请求,并定时检测链接,若链接中断,则重新建立链接,所述接收线程用于接收目标节点N的TCP链接请求,并分配出新的线程与发送端建立链接。
[0014]进一步的,包括:所述加密运算采用的方法为MD5算法,进而计算出128位的唯一性标签。
[0015]进一步的,包括:所述通过线程内的TCP链接给目标地址发送数据,具体包括:当前发送本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于双网双链路的实时数据传输方法,其特征在于,该方法包括以下步骤:S1当前发送节点M的主线程读取预定义配置,从而获取所有需要通信节点的A网和B网的地址;S2所述主线程轮询以上的所有地址,按照每个地址启动一个线程,并在线程内对目标地址建立TCP链接,与对应目标节点N在A网和B网的地址建立的TCP链接分别记为M

Na链接和M

Nb链接,M

Na链接所在的线程称为M

Na发送线程,M

Nb链接所在的线程称为M

Nb发送线程;S3当前发送节点M的应用模块发送原数据至当前发送节点M的通信服务模块,所述通信服务模块对所述数据进行加密运算,得到一个唯一性标签;S4获取当前时间,进而得到时间戳,将所述时间戳置于所述唯一性标签前,并将所述时间戳和唯一性标签放在原数据字段的前面,组成新数据包;S5所述新数据包存入所述目标节点N启动的M

Na发送线程和M

Nb发送线程中,接收到新数据包后,通过线程内的TCP链接给目标地址发送数据。2.根据权利要求1所述的基于双网双链路的实时数据传输方法,其特征在于,所述S1中,主线程通过当前发送节点M的通信服务模块启动,且所述主线程用于启动若干个接收线程、一个监护线程以及若干个发送线程,所述监护线程用于动态监测所有TCP链接的线程,当监测到存在线程僵死,重启相应线程,所述发送线程用于发送当前发送节点的TCP链接请求,并定时检测链接,若链接中断,则重新建立链接,所述接收线程用于接收目标节点N的TCP链接请求,并分配出新的线程与发送端建立链接。3.根据权利要求1所述的基于双网双链路的实时数据传输方法,其特征在于,所述S3中,所述加密运算采用的方法为MD5算法,进而计算出128位的唯一性标签。4.根据权利要求1所述的基于双网双链路的实时数据传输方法,其特征在于,所述S5中通过线程内的TCP链接给目标地址发送数据,具体包括:S51当前发送节点M通过A网尝试与目标节点N通信服务模块建立M

Na链接,目标节点N的通信服务模块的接收线程获取到TCP链接请求后,节点N的接收线程新建一个接收线程,放置与节点M的通信服务模块建立好M

Na接收线程;S52当前发送节点M通过M

Na线程发送的数据,就是目标节点N通过步骤S51中接收线程中的M

Na链接收到的;S53所述M

Na接收线程收到数据后,首先从新数据包中取出时间戳和唯一性标签,通过唯一性标签至当前发送节点M上存储的HASH表中查询,把唯一性标签和时间戳作为一对键值存入HASH表,并把分离出时间戳和唯一性标签后的数据,存入数据缓存中,供应用模块后续处理;S54此时,目标节点N上的M

Nb接收线程也收到当前发送节点M通过M

Nb链接发送的同样数据后,到HASH表中进行比对,由于A网接受的数据已经放入HASH表中,即HASH表中已经有此数据的唯一性标签,此时丢弃当前数据包,M

Nb接收线程继续等待接收数据。5.根据权利要求1所述的基于双网双链路的实时数据传输方法,其特征在于,该方法还包括:定时清理所述HASH表中的键值对。6.一种基于双网双链路的实时数据传输...

【专利技术属性】
技术研发人员:李冰胡波石琦孟凡辉张浩
申请(专利权)人:南瑞轨道交通技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1