一种基于双网双链路的海量数据传输方法技术

技术编号:34935070 阅读:10 留言:0更新日期:2022-09-15 07:31
本发明专利技术公开了一种基于双网双链路的海量数据传输方法,该方法包括:每个节点按照第一网络和第二网络部署两个通信服务模块,并分别通过第一网络和第二网络与目标节点的通信服务模块建立TCP链接;通信服务模块每次启动,优先读取文件中唯一性标签集合,在内存中新建唯一性标签的HASH,保证标签不随着通信服务模块的初始化而清零,实现唯一性标签持久化,避免数据的重复上传,造成应用模块的处理出错;通信服务模块接收到数据每次放置入数据缓存中,比对前数据包时间戳与本数据包时间戳,按照时间顺序把数据包插入到数据缓存中,保证数据包的存入顺序只与数据包实际发送的先后顺序有关,进而实现数据的有序存储。进而实现数据的有序存储。进而实现数据的有序存储。

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


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

技术介绍

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

技术实现思路

[0005]专利技术目的:为了克服现有技术的不足,本专利技术提供一种基于双网双链路的海量数据传输方法,该方法可以解决上述的技术问题。
[0006]技术方案:本专利技术所述的基于双网双链路的海量数据传输方法,该方法包括以下步骤:S1启动发送线程;S2从当前发送节点中的标签文件中读取唯一性标签及时间戳信息,建立HASH,并根据所述标签文件中的时间给所述HASH置上时标,并对所述标签文件的每次读写操作进行
上锁;S3定期轮询HASH的时标和所述标签文件的时标,如果一致,则忽略;否则,若标签文件中的时间晚于HASH的时标,此时,从所述标签文件中下装数据至HASH中,并刷新HASH的时标;否则,若标签文件中的时间早于HASH的时标,此时重新将HASH的内容写入至标签文件中,并置上时标;S4当前发送节点的应用模块同时发送数据包给第一通信服务模块和第二通信服务模块,第一通信服务模块和第二通信服务模块接收到相关数据包后,分别对其进行处理,得到对应的新数据包,并将第一通信服务模块处理后的新数据包通过第一网络的发送线程发送给目标节点的第三通信模块,将第二通信服务模块处理后的新数据包通过第二网络的发送线程发送给目标节点的第四通信模块;S5第三通信服务模块接收到第一通信服务模块发送的新数据包后,对其进行数据处理后,供应用模块使用,第四通信服务模块接收到第二通信服务模块发送的新数据包后,对其进行同样的处理后,供应用模块使用;其中,第一网络和第二网络分别为需要通信连接的两个节点之间的独立的网络,当前发送节点和目标节点分别为发送信息的节点和接收信息的节点,且当前发送节点包括第一通信服务模块和第二通信服务模块,目标节点包括第三通信服务模块和第四通信服务模块。
[0007]进一步的,包括:所述启动发送线程具体包括:S11第一通信服务模块的主线程读取预定义配置,获取所有需要通信的节点的第一网络地址;S12所述主线程轮询所有的第一网络地址,并按照每个第一网络地址启动一个线程,并在线程内对目标节点的第一网络地址建立TCP链接,记为第一链接,所述第一链接所在的线程称为第一发送线程;S13第二通信服务模块的主线程读取预定义配置,获取所有需要通信的节点的第二网络地址;S14所述主线程轮询所有的第二网络地址,并按照每个第二网络地址启动一个线程,并在线程内对目标节点的第二网络地址建立TCP链接,记为第二链接,所述第二链接所在的线程称为第二发送线程;S15每个发送线程定期检测链接,如果链接中断,重新建立链接。
[0008]进一步的,包括:所述步骤S4中,具体包括:S41使用MD5算法,对数据进行加密运算,计算出128位唯一性标签;S42获取当前时间,转化成16位的时间戳,把所述唯一性标签及时间戳放在原数据包的字段的前面,组成新的数据包;S43所述第一网络的第一发送线程收到新数据包后,通过线程内的TCP链接即第一链接给相应的目标地址发送数据;S44所述第二网络的第二发送线程收到新数据包后,通过线程内的TCP链接即第二链接给相应的目标地址发送数据。
[0009]进一步的,包括:
所述步骤S5,具体包括:S51第一通信服务模块通过第一网络尝试与第三通信服务模块建立第一链接,第三通信服务模块接收线程获取到TCP链接请求,目标节点的接收线程新建一个接收线程,与第一通信服务模块建立第一接收线程;第二通信服务模块通过第二网络尝试与第四通信服务模块建立第二链接,第四通信服务模块接收线程获取到TCP链接请求,目标节点的接收线程新建一个接收线程,与第二通信服务模块建立第二接收线程;S52当前发送节点通过第一发送线程发送的新数据包,就是目标节点的接收线程中的第一链接收到的;S53第一接收线程收到新数据包后,首先从新数据包中取出时间戳和唯一性标签,并通过唯一性标签到HASH中查询,若目标节点已经通过第二接收线程接受过此包数据,HASH中有此唯一性标签,这时丢弃数据;S54当第一接收线程再次收到新数据包后,同样从新数据包中取出时间戳和唯一性标签,再次通过唯一性标签到HASH中查询,若此时未在HASH中检索到此唯一性标签,此时将唯一性标签及时间戳作为一对键值插入HASH,并把相同信息写入文件,同时给HASH和文件置上相同时标。
[0010]进一步的,包括:所述步骤S54中的将唯一性标签及时间戳作为一对键值插入HASH后,还需把包含时间戳和唯一性标签的数据包存入数据缓存。
[0011]进一步的,包括:所述把包含时间戳和唯一性标签的数据包存入数据缓存具体包括:在存入数据缓存时,首先获取数据缓存读写锁,然后,获取数据缓存中最后一个数据的时间戳,比对待存入数据的时间戳和缓存中最后一个数据的时间戳,如果待存入数据的时间戳早于缓存中最后一个数据的时间戳,继续查询缓存中前一个数据,直到找到缓存中的数据的时间戳早于待存入数据的时间戳,此时把待存入数据插入至相应位置后释放读写锁。
[0012]有益效果:(1)综合自动化系统中每个节点按照第一网络和第二网络部署2个通信服务模块,分别通过第一网络与目标节点上的通信服务模块A和第二网络与目标节点上的通信服务模块B建立TCP链接,实现双链接完全独立运行,提升数据传本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于双网双链路的海量数据传输方法,其特征在于,该方法包括以下步骤:S1启动发送线程;S2从当前发送节点中的标签文件中读取唯一性标签及时间戳信息,建立HASH,并根据所述标签文件中的时间给所述HASH置上时标,并对所述标签文件的每次读写操作进行上锁;S3定期轮询HASH的时标和所述标签文件的时标,如果一致,则忽略;否则,若标签文件中的时间晚于HASH的时标,此时,从所述标签文件中下装数据至HASH中,并刷新HASH的时标;否则,若标签文件中的时间早于HASH的时标,此时重新将HASH的内容写入至标签文件中,并置上时标;S4当前发送节点的应用模块同时发送数据包给第一通信服务模块和第二通信服务模块,第一通信服务模块和第二通信服务模块接收到相关数据包后,分别对其进行处理,得到对应的新数据包,并将第一通信服务模块处理后的新数据包通过第一网络的发送线程发送给目标节点的第三通信模块,将第二通信服务模块处理后的新数据包通过第二网络的发送线程发送给目标节点的第四通信模块;S5第三通信服务模块接收到第一通信服务模块发送的新数据包后,对其进行数据处理后,供应用模块使用,第四通信服务模块接收到第二通信服务模块发送的新数据包后,对其进行同样的处理后,供应用模块使用;其中,第一网络和第二网络分别为需要通信连接的两个节点之间的独立的网络,当前发送节点和目标节点分别为发送信息的节点和接收信息的节点,且当前发送节点包括第一通信服务模块和第二通信服务模块,目标节点包括第三通信服务模块和第四通信服务模块。2.根据权利要求1所述的基于双网双链路的海量数据传输方法,其特征在于,所述启动发送线程具体包括:S11第一通信服务模块的主线程读取预定义配置,获取所有需要通信的节点的第一网络地址;S12所述主线程轮询所有的第一网络地址,并按照每个第一网络地址启动一个线程,并在线程内对目标节点的第一网络地址建立TCP链接,记为第一链接,所述第一链接所在的线程称为第一发送线程;S13第二通信服务模块的主线程读取预定义配置,获取所有需要通信的节点的第二网络地址;S14所述主线程轮询所有的第二网络地址,并按照每个第二网络地址启动一个线程,并在线程内对目标节点的第二网络地址建立TCP链接,记为第二链接,所述第二链接所在的线程称为第二发送线程;S15每个发送线程定期检测链接,如果链接中断,重新建立链接。3.根据权利要求2所述的基于双网双链路的海量数据传输方法,其特征在于,所...

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

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

1