CN115037782A - 一种基于双网双链路的实时数据传输方法及系统 - Google Patents
一种基于双网双链路的实时数据传输方法及系统 Download PDFInfo
- Publication number
- CN115037782A CN115037782A CN202210964940.7A CN202210964940A CN115037782A CN 115037782 A CN115037782 A CN 115037782A CN 202210964940 A CN202210964940 A CN 202210964940A CN 115037782 A CN115037782 A CN 115037782A
- Authority
- CN
- China
- Prior art keywords
- thread
- data
- node
- link
- network
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于双网双链路的实时数据传输方法及系统,该方法包括:所有节点部署通信服务模块,通过A网和B网与目标节点上的通信服务模块分别建立TCP链接,当前节点上运行的应用模块对外发送数据,需要通过通信服务模块进行网络传输,通信服务模块接收到本节点应用模块发送的数据,计算出唯一性标签,并组成新数据包,分别通过A网和B网同时发往目标节点的A网地址和B网地址;目标节点通信服务模块接收数据,解析数据中的唯一性标签,与本节点之前保存的标签集合进行比对,分离出时间戳和唯一标签的数据,存入数据缓存中。本发明保证当网络出现故障,需要发生切换时,数据传输不受影响,应用层保证数据不丢失。
Description
技术领域
本发明涉及轨道交通综合自动化系统技术领域,具体涉及一种基于双网双链路的实时数据传输方法及系统。
背景技术
轨道交通综合自动化系统(以下简称ISCS)是一种典型的工业控制分布式系统。它由控制中心及若干车站这种分布在不同地域上的服务器及工作站节点构成,为了提升系统的可靠性,所有的节点都配置2块网卡,并通过独立的网络设备(交换机)进行连接,实现系统中所有节点都是通过独立双路物理网络进行连接。
在此物理冗余双网架构下,综合自动化系统实际传输数据时,本着效率及实现简单,只会选择单网络(即通过A网或者B网)进行数据通信(假设优先通过A网进行数据传输),不会通过A网和B网同时传输相同的数据。在这种情况下,如果系统网络中的A交换机或者服务器/工作站节点A网网卡发生故障,综合自动化系统应用层通过A网传输数据不成功,这时候应用层的服务器才会重新选择B网网络,通过与对端的B网地址重新建立链接,再进行数据传输。
在这种情况下,当网络出现故障,应用层切换网络的时间通常是秒级的,实际测试下来,大概在2秒左右,对于综合自动化系统中的一些对时间特别敏感的数据,此切换时间过长,不能满足系统要求。
另外,由于网络中断,应用层服务没有收到对端接收到报文的回复,不确定中断前发送的数据对端是否接收到,会重新再发送一遍,这样对端同样的数据收到2遍,可能会造成逻辑错误及误判断。
发明内容
发明目的:为了克服现有技术的不足,本发明提供一种基于双网双链路的实时数据传输方法,该方法可以解决上述的技术问题,此外,本申请还提供基于双网双链路的实时数据传输系统。
技术方案:一方面,本发明所述的基于双网双链路的实时数据传输方法,该方法包括以下步骤:
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链接给目标地址发送数据。
进一步的,包括:
所述S1中,主线程通过当前发送节点M的通信服务模块启动,且所述主线程用于启动若干个接收线程、一个监护线程以及若干个发送线程,所述监护线程用于动态监测所有TCP链接的线程,当监测到存在线程僵死,重启相应线程,所述发送线程用于发送当前发送节点的TCP链接请求,并定时检测链接,若链接中断,则重新建立链接,所述接收线程用于接收目标节点N的TCP链接请求,并分配出新的线程与发送端建立链接。
进一步的,包括:
所述加密运算采用的方法为MD5算法,进而计算出128位的唯一性标签。
进一步的,包括:
所述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接收线程继续等待接收数据。
进一步的,包括:
该方法还包括:定时清理所述HASH表中的键值对。
另一方面,本发明还提供基于双网双链路的实时数据传输系统,该系统包括:当前发送节点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链接给目标地址发送数据。
进一步的,包括:
所述当前发送节点M的主线程通过当前发送节点M的通信服务模块启动,且所述主线程用于启动若干个接收线程、一个监护线程以及若干个发送线程,所述监护线程用于动态监测所有TCP链接的线程,当监测到存在线程僵死,重启相应线程,所述发送线程用于发送当前发送节点的TCP链接请求,并定时检测链接,若链接中断,则重新建立链接,所述接收线程用于接收目标节点N的TCP链接请求,并分配出新的线程与发送端建立链接。
进一步的,包括:
所述加密运算采用的方法为MD5算法,进而计算出128位的唯一性标签。
进一步的,包括:
所述通过线程内的TCP链接给目标地址发送数据,具体包括:
当前发送节点M通过A网尝试与目标节点N通信服务模块建立M-Na链接,目标节点N的通信服务模块的接收线程获取到TCP链接请求后,节点N的接收线程新建一个接收线程,放置与节点M的通信服务模块建立好M-Na接收线程;
当前发送节点M通过M-Na线程发送的数据,就是目标节点N通过步骤S51中接收线程中的M-Na链接收到的;
所述M-Na接收线程收到数据后,首先从新数据包中取出时间戳和唯一性标签,通过唯一性标签至当前发送节点M上存储的HASH表中查询,把唯一性标签和时间戳作为一对键值存入HASH表,并把分离出时间戳和唯一性标签后的数据,存入数据缓存中,供应用模块后续处理;
此时,目标节点N上的M-Nb接收线程也收到当前发送节点M通过M-Nb链接发送的同样数据后,到HASH表中进行比对,由于A网接受的数据已经放入HASH表中,即HASH表中已经有此数据的唯一性标签,此时丢弃当前数据包,M-Nb接收线程继续等待接收数据。
进一步的,包括:
该系统还包括定时清理所述HASH表中的键值对。
有益效果: (1)本发明通过同时2条链路传输相同数据,解决了由于网络切换,影响敏感数据的时效性,也解决了网络QoS差的情况下,数据丢失,重复收到,应用层多次处理的问题,因此,可以保证当网络出现故障,需要发生切换时,数据传输不受影响,数据能够实时准确到达对端,数据传输无时延,在单网络质量差,出现丢包的情况下,应用层保证数据不丢失;(2)本发明对系统中时间敏感的数据通过物理双网,同时给对端传送相同的数据,由对端的通信服务模块进行接收及处理,并确保给应用层只传输一份数据,可以保证数据的唯一性,应用层不用关心数据重复的问题,只关注于业务。
附图说明
图1为本发明实施例所述的新数据包的示意图;
图2为本发明实施例所述的节点间双网双链路通信服务模块数据处理流程图;
图3为本发明实施例所述的电子设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开一种双网双链路实时传输数据的方法,目的是为了解决数据可靠性网络传输及发生网络切换,数据保证传输无时延的问题。综合自动化系统中所有节点部署通信服务模块,此服务模块同时通过A网和B网与目标节点上的通信服务模块分别建立TCP链接,当综合自动化系统当前节点上运行的应用模块对外发送数据时,需要通过通信服务模块进行网络传输,通信服务模块接收到本节点应用模块发送的数据,首先进行数据预处理,通过对当前数据内容进行运算,计算出唯一性标签,并在数据包之前加上此唯一性标签,同时获取当前时间,标记为时间戳,放置在唯一性标签之前,这样组成的新数据包,分别通过A网和B网同时发往目标节点的A网地址和B网地址;当目标节点通信服务模块接收到数据时,首先解析出数据中的唯一性标签,通过与本节点之前保存的标签集合进行比对,如果集合中找到的话,丢弃此数据,如果没有,记录下此标签,并且以新的标签和时间戳一并存入到集合中。分离出时间戳和唯一标签的数据,存入数据缓存中,供应用模块后续处理,具体包括以下方面:
1、建立双网双链路
(1)节点通信服务模块启动若干线程,其中包括1个主线程,1个监护线程,1个接收池线程、若干个接收线程和若干个发送线程。通信服务模块,对于通信的每个节点启动2个线程,每个线程负责建立和维持对端节点的A网和B网的TCP链接,其中,线程最大个数为1024个。
(2)主线程负责启动接收线程、监护线程及若干个发送线程。
(3)监护线程动态监测所有TCP链接的线程,当监测到线程僵死,重启相应线程。
(4)接收线程负责接收对方节点TCP链接请求,并分配出新的线程与发送端建立链接及对应关系;
(5)节点(下文以节点M表示当前发送节点)通信服务模块主线程读取预定义配置,获取所有需要通信节点的A,B网的地址;
(6)主线程轮询以上的所有地址,按照每个地址启动一个线程,并在线程内对目标地址建立TCP链接(其中与节点NA/B网地址建立的链接分别记为M-Na链接和M-Nb链接,M-Na链接所在的线程称为M-Na发送线程,M-Nb链接所在的线程称为M-Nb发送线程);
(7)每个发送线程定期检测链接,如果链接中断,重新建立链接。
2、数据发送
(1)通信服务模块收到本节点应用模块发送的数据,首先对数据进行运算处理,本实施例使用MD5算法,对数据进行加密运算,计算出128bit唯一性标签;
(2)获取当前时间,转化成16bit的时间戳,把唯一性标签及时间戳放在原数据字段的前面,组成新的数据包,如图1所示,新数据包的大小为0~256KB。
(3)根据数据包中的目标节点(这里来用上文的节点N表示目标节点),把数据包放入对应目标节点启动的线程,分别是M-Na线程和M-Nb线程;
(4)线程接收到数据包,通过线程内的TCP链接给目标地址发送数据。
3、数据接收
(1)在“建立双网双链路”章节的步骤(6)中节点M通过A网尝试与目标节点(以下简称节点N)通信服务模块建立M-Na链接,节点N通信服务模块接收线程获取到TCP链接请求,N节点接收线程新建出一个接收线程,放置与节点M通信服务模块建立好M-Na链接(以下简称M-Na接收线程);
(2)这时候节点M刚才通过M-Na线程发送的数据,就是节点N通过上面的接收线程中的M-Na链接收到的;
(3)M-Na接收线程收到数据后,首先从数据包中取出时间戳和唯一性标签,并通过唯一性标签去原先节点上存储的HASH中查询,假设本实施例节点N刚刚启动,HASH中没有数据为空,这时候把唯一性标签和时间戳作为一对键值存入HASH,并把分离出时间戳和唯一性标签的数据,存入数据缓存中,供应用模块后续处理,其中键为唯一性标签,值为时间戳。
(4)当这时节点N上的M-Nb接收线程也收到刚才节点M通过M-Nb链接发送的同样数据后,也是按照上述步骤,到HASH中进行比对,由于刚才A网接受的数据已经放入HASH中,这时候HASH中已经有此数据的唯一性标签,这时候把当前数据包丢弃,M-Nb接收线程继续等待接收数据。
4、清理HASH中的超时键值对
随着M-Na接收线程或者M-Nb接收线程接收的数据越来越多,HASH中的唯一性标签和时间戳键值对也越来越多,线程中所占的内存也越来越大,查询HASH的效率也越来越低,这时由于上传至数据缓存的数据已经被应用模块处理了,HASH中的时间戳很早的键值对数据已经没有实际意义了,为了提高效率,定期需要清理键值对。
为了提高HASH检索效率,定期删除HASH中无效的唯一性标签,通过轮询当前时间和每个唯一性标签的时间戳是否超过用户自定义阈值,超过则删除此唯一性标签。
此实施例设置刷新时间位10秒,键值对的超时时间为60秒。这样以每10秒进行1次清理对时间戳60秒之前的键值对进行清理,保证HASH中都是近期的有效的数据。
5、单网故障场景
(1)当某网络发生故障,此实施例仍以上文节点M和节点N为例,当节点M的A网卡故障时,这时候节点M的M-Na发送线程中的M-Na链接不能发送数据,而此时节点N的M-Na接收线程中的M-Na链接不能接收数据;
(2)但是此时节点M和节点N之间的B网络是正常的,这时候节点M的M-Nb发送线程中的M-Nb链接能够正常发送数据,而此时节点N的M-Nb接收线程中的M-Nb链接也能接收数据;
(3)节点M的A网卡的故障,并没有造成节点M和节点N之间数据发送的延时或者丢失,都是通过B网络实时发送的;
(4)如果B网卡故障或者A/B交换机故障跟上述场景一致。
6、单网络丢包场景
(1)当某网络质量差,此实施例仍以上文节点M和节点N为例,当节点M和节点N之间的A网发生丢包,假设丢包率在1%,这时候节点M的A网的M-Na链接和B网的M-Nb链接都能正常发送数据,而此时节点N的A网M-Na链接和B网的M-Nb链接也都能正常接收数据;但是由于A网丢包,同样从节点M发送100包数据,在节点M通过A网的M-Na链接和B网的M-Nb链接都分别发送了100包,而在节点N通过A网的M-Na链接和B网的M-Nb链接都分别接收了99包和100包数据。
(2)由上述工作原理可知,A网丢了1包数据,并不会影响系统,通信服务模块仍然通过B网接收的100包数据上传给应用模块,通过此机制保证了网络层丢包,应用层不丢包的。
7、网络中断数据重传
仍以上文节点M和节点N为例,当节点M正在通过A网的M-Na链接给节点N发送数据和通过B网的M-Nb链接给节点N发送数据,此时突然网络发生中断(如拔掉节点M的A网和B网的网线),此时有以下几种场景:
(1)节点N的A网收到,节点N的B网收到
对于此场景,当A/B网恢复(如插上节点M的A网和B网的网线),节点M的M-Na发送线程会重新与节点N新建M-Na链接,这时候会把上次最后一包数据(此数据是原始数据,需要重新计算唯一性标签和时间戳,由于数据包内容一致,唯一性标签跟中断前发送的是一样的,而时间戳跟之前的不一致)重新再发送一遍,此时通过新的M-Na链接发送给节点N的M-Na接收线程,接收线程接收到新的数据包,通过拆包解析唯一性标签,可以在HASH中找到相应的标签,这时候丢弃此数据包。通过B网传送过程一样。
(2)节点N的A网收到,节点N的B网未收到;
(3)节点N的A网未收到,节点N的B网收到;
对于场景(2)和(3),其处理方法与场景(1)一致。
(4)节点N的A网未收到,节点N的B网未收到
对于此场景,当A/B网恢复(如插上节点M的A网和B网的网线),节点M的M-Na发送线程会重新与节点N新建M-Na链接,这时候会把上次最后一包数据(此数据是原始数据,需要重新计算唯一性标签和时间戳,由于数据包内容一致,唯一性标签跟中断前发送的是一样的,而时间戳跟之前的不一致)重新再发送一遍,此时通过新的M-Na链接发送给节点N的M-Na接收线程,接收线程接收到新的数据包,通过拆包解析唯一性标签,由于中断前节点N未收到数据包,这时候HASH并没有唯一性标签,此时把此标签和时间戳一并存入到HASH中;同时分离出时间戳和唯一性标签的数据,存入数据缓存中,供应用模块后续处理。
另一方面,如图2所示,本发明还提供基于双网双链路的实时数据传输系统,该系统包括:当前发送节点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链接给目标地址发送数据。
当前发送节点M的主线程通过当前发送节点M的通信服务模块启动,且所述主线程用于启动若干个接收线程、一个监护线程以及若干个发送线程,所述监护线程用于动态监测所有TCP链接的线程,当监测到存在线程僵死,重启相应线程,所述发送线程用于发送当前发送节点的TCP链接请求,并定时检测链接,若链接中断,则重新建立链接,所述接收线程用于接收目标节点N的TCP链接请求,并分配出新的线程与发送端建立链接。
进一步的,包括:
加密运算采用的方法为MD5算法,而计算出128位的唯一性标签。
进一步的,包括:
通过线程内的TCP链接给目标地址发送数据,具体包括:
当前发送节点M通过A网尝试与目标节点N通信服务模块建立M-Na链接,目标节点N的通信服务模块的接收线程获取到TCP链接请求后,节点N的接收线程新建一个接收线程,放置与节点M的通信服务模块建立好M-Na接收线程;
当前发送节点M通过M-Na线程发送的数据,就是目标节点N通过步骤S51中接收线程中的M-Na链接收到的;
M-Na接收线程收到数据后,首先从新数据包中取出时间戳和唯一性标签,通过唯一性标签至当前发送节点M上存储的HASH表中查询,把唯一性标签和时间戳作为一对键值存入HASH表,并把分离出时间戳和唯一性标签后的数据,存入数据缓存中,供应用模块后续处理;
此时,目标节点N上的M-Nb接收线程也收到当前发送节点M通过M-Nb链接发送的同样数据后,到HASH表中进行比对,由于A网接受的数据已经放入HASH表中,即HASH表中已经有此数据的唯一性标签,此时丢弃当前数据包,M-Nb接收线程继续等待接收数据。
参阅图3所示,本发明实施例中,一种电子设备结构示意图。
本发明实施例提供了一种电子设备,该电子设备可以包括处理器310(CenterProcessing Unit ,CPU)、存储器320、输入设备330和输出设备340等,输入设备330可以包括键盘、鼠标、触摸屏等,输出设备340可以包括显示设备,如液晶显示器(Liquid CrystalDisplay, LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器320可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器310提供存储器320中存储的程序指令和数据。在本发明实施例中,存储器320可以用于存储上述基于双网双链路的实时数据传输方法的程序。
处理器310通过调用存储器320存储的程序指令,处理器310用于按照获得的程序指令执行上述任一种基于双网双链路的实时数据传输方法的步骤。
基于上述实施例,本发明实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的基于双网双链路的实时数据传输方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
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.一种基于双网双链路的实时数据传输系统,其特征在于,该系统包括:当前发送节点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链接给目标地址发送数据。
7.根据权利要求6所述的基于双网双链路的实时数据传输系统,其特征在于,所述当前发送节点M的主线程通过当前发送节点M的通信服务模块启动,且所述主线程用于启动若干个接收线程、一个监护线程以及若干个发送线程,所述监护线程用于动态监测所有TCP链接的线程,当监测到存在线程僵死,重启相应线程,所述发送线程用于发送当前发送节点的TCP链接请求,并定时检测链接,若链接中断,则重新建立链接,所述接收线程用于接收目标节点N的TCP链接请求,并分配出新的线程与发送端建立链接。
8.根据权利要求6所述的基于双网双链路的实时数据传输系统,其特征在于,所述加密运算采用的方法为MD5算法,进而计算出128位的唯一性标签。
9.根据权利要求6所述的基于双网双链路的实时数据传输系统,其特征在于,所述通过线程内的TCP链接给目标地址发送数据,具体包括:
当前发送节点M通过A网尝试与目标节点N通信服务模块建立M-Na链接,目标节点N的通信服务模块的接收线程获取到TCP链接请求后,节点N的接收线程新建一个接收线程,放置与节点M的通信服务模块建立好M-Na接收线程;
当前发送节点M通过M-Na线程发送的数据,就是目标节点N通过步骤S51中接收线程中的M-Na链接收到的;
所述M-Na接收线程收到数据后,首先从新数据包中取出时间戳和唯一性标签,通过唯一性标签至当前发送节点M上存储的HASH表中查询,把唯一性标签和时间戳作为一对键值存入HASH表,并把分离出时间戳和唯一性标签后的数据,存入数据缓存中,供应用模块后续处理;
此时,目标节点N上的M-Nb接收线程也收到当前发送节点M通过M-Nb链接发送的同样数据后,到HASH表中进行比对,由于A网接受的数据已经放入HASH表中,即HASH表中已经有此数据的唯一性标签,此时丢弃当前数据包,M-Nb接收线程继续等待接收数据。
10.根据权利要求6所述的基于双网双链路的实时数据传输系统,其特征在于,该系统还包括定时清理所述HASH表中的键值对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210964940.7A CN115037782B (zh) | 2022-08-12 | 2022-08-12 | 一种基于双网双链路的实时数据传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210964940.7A CN115037782B (zh) | 2022-08-12 | 2022-08-12 | 一种基于双网双链路的实时数据传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115037782A true CN115037782A (zh) | 2022-09-09 |
CN115037782B CN115037782B (zh) | 2022-11-18 |
Family
ID=83130303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210964940.7A Active CN115037782B (zh) | 2022-08-12 | 2022-08-12 | 一种基于双网双链路的实时数据传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115037782B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1658578A (zh) * | 2005-04-05 | 2005-08-24 | 北京四方继保自动化股份有限公司 | 双网络通信系统的不间断切换方法 |
CN201049642Y (zh) * | 2007-06-15 | 2008-04-23 | 南京恩瑞特实业有限公司 | 列车运营综合监控系统 |
CN101980468A (zh) * | 2010-12-06 | 2011-02-23 | 南京恩瑞特实业有限公司 | 网络热备数据传输方法 |
CN103888300A (zh) * | 2014-04-09 | 2014-06-25 | 中国人民解放军63818部队 | Web服务系统中网络故障分析系统与方法 |
CN104767665A (zh) * | 2014-01-07 | 2015-07-08 | 艾默生网络能源有限公司 | 一种环形通信网络主站冗余的方法、装置及系统 |
US20150242311A1 (en) * | 2011-04-26 | 2015-08-27 | Brian Bulkowski | Hybrid dram-ssd memory system for a distributed database node |
CN105813148A (zh) * | 2016-01-28 | 2016-07-27 | 努比亚技术有限公司 | 网络切换装置和方法 |
CN112749028A (zh) * | 2021-01-11 | 2021-05-04 | 科大讯飞股份有限公司 | 网络流量处理方法、相关设备及可读存储介质 |
CN114584345A (zh) * | 2022-01-26 | 2022-06-03 | 北京邮电大学 | 轨道交通网络安全处理方法、装置及设备 |
-
2022
- 2022-08-12 CN CN202210964940.7A patent/CN115037782B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1658578A (zh) * | 2005-04-05 | 2005-08-24 | 北京四方继保自动化股份有限公司 | 双网络通信系统的不间断切换方法 |
CN201049642Y (zh) * | 2007-06-15 | 2008-04-23 | 南京恩瑞特实业有限公司 | 列车运营综合监控系统 |
CN101980468A (zh) * | 2010-12-06 | 2011-02-23 | 南京恩瑞特实业有限公司 | 网络热备数据传输方法 |
US20150242311A1 (en) * | 2011-04-26 | 2015-08-27 | Brian Bulkowski | Hybrid dram-ssd memory system for a distributed database node |
CN104767665A (zh) * | 2014-01-07 | 2015-07-08 | 艾默生网络能源有限公司 | 一种环形通信网络主站冗余的方法、装置及系统 |
CN103888300A (zh) * | 2014-04-09 | 2014-06-25 | 中国人民解放军63818部队 | Web服务系统中网络故障分析系统与方法 |
CN105813148A (zh) * | 2016-01-28 | 2016-07-27 | 努比亚技术有限公司 | 网络切换装置和方法 |
CN112749028A (zh) * | 2021-01-11 | 2021-05-04 | 科大讯飞股份有限公司 | 网络流量处理方法、相关设备及可读存储介质 |
CN114584345A (zh) * | 2022-01-26 | 2022-06-03 | 北京邮电大学 | 轨道交通网络安全处理方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
阚庭明: ""城市轨道交通乘客信息系统关键技术研究"", 《中国博士学位论文全文数据库 (工程科技Ⅱ辑)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115037782B (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101951345A (zh) | 一种报文的发送方法和设备 | |
CN109245955A (zh) | 一种数据处理方法、装置及服务器 | |
CN110943878A (zh) | 心跳包传输方法、终端及具有存储功能的装置 | |
CN114785874B (zh) | 基于多网络协议提供高可用传输通道的方法 | |
CN113986501A (zh) | 实时数据库api无中断调用方法、系统、存储介质及服务器 | |
CN114868371A (zh) | 数据收集管理装置及数据收集系统 | |
CN115037782B (zh) | 一种基于双网双链路的实时数据传输方法及系统 | |
CN107104892A (zh) | 网络加速的方法和装置 | |
CN110224872B (zh) | 一种通信方法、装置及存储介质 | |
CN115865734B (zh) | 一种故障检测方法、数据生成方法、装置、设备及介质 | |
CN112000544A (zh) | 一种物联网设备大屏实时监控方法 | |
CN110661836B (zh) | 消息路由方法、装置及系统、存储介质 | |
CN116112536A (zh) | 一种tcp-串口通信透传的方法及装置 | |
US12009967B2 (en) | Communications methods and apparatus for minimizing and/or preventing message processing faults | |
CN111130941B (zh) | 一种网络错误检测方法、装置以及计算机可读存储介质 | |
CN112612670B (zh) | 一种会话信息统计方法、装置、交换设备及存储介质 | |
CN114640574A (zh) | 一种主备设备的切换方法及装置 | |
JP2001067291A (ja) | ネットワーク監視方式 | |
CN115052044B (zh) | 一种基于双网双链路的海量数据传输方法 | |
CN110995463B (zh) | Ap自恢复的方法及装置 | |
CN111106977A (zh) | 数据流检测方法、装置及存储介质 | |
CN114598639B (zh) | 一种报文处理方法及装置 | |
CN114189565B (zh) | 一种头域还原系统、方法及相关设备 | |
CN115002020B (zh) | 基于ospf的数据处理方法及装置 | |
JP2961873B2 (ja) | 障害通知方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |