CN111600836A - 一种保证冗余执行体tcp连接归一化的装置及方法 - Google Patents
一种保证冗余执行体tcp连接归一化的装置及方法 Download PDFInfo
- Publication number
- CN111600836A CN111600836A CN202010255325.XA CN202010255325A CN111600836A CN 111600836 A CN111600836 A CN 111600836A CN 202010255325 A CN202010255325 A CN 202010255325A CN 111600836 A CN111600836 A CN 111600836A
- Authority
- CN
- China
- Prior art keywords
- redundancy
- input
- ack
- message
- equivalent
- 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
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开一种保证冗余执行体TCP连接归一化的装置及方法,该装置包括同步运行的若干个冗余等价执行体,以及冗余控制器、输入/输出代理;冗余等价执行体,用于运行各类应用程序,并将各类应用程序的运算结果输出至输入/输出代理;输入/输出代理,用于拆分TCP报文,并根据冗余控制器的处理结果重组TCP报文,包括将相应的外部输入重组后转发至对应的冗余等价执行体,或将对应冗余等价执行体的输出重组后作为装置的最终输出;冗余控制器,用于对冗余等价执行体的输出和外部输入的数据进行运算、处理,并将处理结果输出至输入/输出代理。本发明有效提升了系统的安全性和可靠性。
Description
技术领域
本发明涉及TCP通信领域,尤其涉及一种保证冗余执行体TCP连接归一化的装置及方法。
背景技术
TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,为了保证通信的可靠性,两个使用TCP的应用(通常是一个客户端和一个服务器)在彼此交换数据包之前必须先建立TCP连接,并且为每个传输数据报文编制相应的序号,以保证数据可以在接收端按序接收。TCP连接建立过程需要经过三次握手如附图1所示,由客户端发起连接并发送SYN报文(seq=x)到服务器,服务器收到SYN报文后必须返回一个确认ACK(ack=x+1,seq=y),客户端收到服务器的ACK后再向服务器返回一个确认ACK(ack=y+1),随后客户端与服务器根据各自的产生的序号进行数据交互,每个数据报文的序号根据所传输数据的长度依次递增。数据交互结束时同样需要四次挥手结束TCP连接如附图2所示,由客户端(或服务器)发出连接释放报文FIN(seq=u),服务器收到FIN后回复ACK(ack=u+1,seq=v),同时发送FIN(seq=w,ack=u+1),客户端接收到服务器返回信息后再回复ACK(seq=u+1,ack=w+1),至此结束TCP连接。
为了提高系统的安全性和可靠性,许多系统采用两套或两套以上独立配置的软硬件等构成冗余设计,包括同构冗余设计和异构冗余设计。同构冗余设计是使冗余空间内的所有软硬件具有完全相同的功能以及相同或非常相似的性能,从而可以根据物理性随机故障的时空性质,在软硬件设计缺陷引发的随机性故障条件下解决容错、异常感知等问题,保证系统的可靠性。异构冗余设计则凭借同一问题通常有多种解决方法的思想,通过解决同一问题在实现功能思想、方法、工具、条件等的相异性,使得同一时间、同一条件、各冗余执行体发生共模故障的情况下,依靠执行体间的对比裁决或交叉研判等机制来发现或感知故障,从而保证系统的安全性。
在冗余系统中采用面向连接的TCP通信连接存在以下难点:在建立TCP连接时,冗余系统中的每个冗余等价执行体都需要建立TCP连接,此过程会导致远端设备同时感知到多个(与等价冗余执行体的数量相等)来自同一设备的TCP连接请求或响应,从而导致TCP连接失败;此外不同冗余等价执行体在TCP三次握手、数据传输和四次挥手过程所产生的随机序号各不相同,因此需要采用归一化的方法使得所有冗余等价执行体能够共用同一条TCP连接,从而保证TCP协议的正常运行。
发明内容
针对现有技术的不足,本发明提出一种保证冗余执行体TCP连接归一化的装置及方法,能够有效解决冗余系统建立TCP连接时的归一化问题,同时提高通信系统的可靠性和安全性。
本发明的目的通过如下的技术方案来实现:
一种保证冗余执行体TCP连接归一化的装置,该装置包括同步运行的若干个冗余等价执行体,以及冗余控制器、输入/输出代理;
冗余等价执行体,用于运行各类应用程序,并将各类应用程序的运算结果输出至输入/输出代理;
输入/输出代理,用于拆分TCP报文,并根据冗余控制器的处理结果重组TCP报文,包括将相应的外部输入重组后转发至对应的冗余等价执行体,或将对应冗余等价执行体的输出重组后作为装置的最终输出;
冗余控制器,用于对冗余等价执行体的输出和外部输入的数据进行运算、处理,并将处理结果输出至输入/输出代理。
进一步地,所述的冗余控制器包括裁决处理模块、参数存储模块和可逆运算模块,其中,
裁决处理模块,用于对所有冗余等价执行体产生的传输数据进行对比、研判、裁决,并将处理结果发送至输入/输出代理,控制输入/输出代理,使其选择对应冗余等价执行体的传输数据进行重组后,作为对外输出;对来自输入/输出代理的外部数据进行分析、处理,并将处理结果返回输入/输出代理,控制输入/输出代理将相应数据进行重组后,发送至对应的冗余等价执行体;
参数存储模块,用于在TCP三次握手、数据传输和四次挥手过程中存储对应冗余等价执行体发送或接收报文的序号、确认号,以及所有冗余等价执行体经过裁决处理模块产生的裁决参数;
可逆运算模块,用于对所有冗余等价执行体的输入与输出数据进行归一化运算。
进一步地,所述的输入/输出代理包括数据包拆分模块和数据包重组模块,其中,
数据包拆分模块,用于对TCP报文进行拆分,并发送给冗余控制器;
数据包重组模块,用于根据冗余控制器的处理结果对拆分后的报文进行重组形成新的TCP报文。
进一步地,所述的数据包拆分模块对TCP报文拆分后提取报文中的序号和确认号,所述的数据包重组模块对拆分后的报文进行重组形成新的TCP报文时添加序号、确认号和检验和。
一种保证冗余执行体TCP连接归一化的方法,该方法基于上述的保证冗余执行体TCP连接归一化的装置来实现,该装置作为客户端时,冗余执行体TCP连接归一化的过程包括三次握手、数据传输和四次挥手三个阶段;
其中,该装置与远端服务器的三次握手的归一化过程如下:
A1:若干个冗余等价执行体同步发起建立TCP连接请求至输入/输出代理,输入/输出代理将TCP连接请求报文进行拆分并获得各冗余执行体对应的报文序号seq,随后将所有序号发送至冗余控制器;
A2:冗余控制器通过可逆运算模块计算出归一化的报文序号seq_unif,并将其返回给输入/输出代理,同时保存所有冗余等价执行体对应的报文序号seq;
A3:输入/输出代理利用归一化后的报文序号seq_unif重组新的TCP报文,并发送给远端服务器;
A4:输入/输出代理接收到远端设备返回的TCP确认报文后先对报文进行拆包,随后将拆分获得的确认号ack发送至冗余控制器;
A5:冗余控制器利用ack和存储的所有冗余等价执行体的序号seq,计算出所有冗余等价执行体对应的确认号ack_new,随后将所有ack_new发送至输入/输出代理,并保存ack记为ack_unif;
A6:输入/输出代理利用对应的ack_new为所有冗余等价执行体重组TCP确认报文,随后将重组后的新确认报文发送至对应的冗余等价执行体;
A7:冗余等价执行体同步返回确认报文至输入/输出代理,输入/输出代理将所有确认报文进行拆包并获得各冗余等价执行体对应的seq、ack及其他数据,随后将对应数据发送至冗余控制器;
A8:冗余控制器判断各冗余等价执行体seq、ack及其他数据是否正确,若至少存在一个冗余等价执行体对应参数正确,则产生归一化的seq_unif,即seq_unif=ack_unif,并将seq_unif、ack和裁决结果一起发送至输入/输出代理,输入/输出代理根据seq_unif、ack和裁决结果重组TCP确认报文并发送给远端TCP连接设备,随后向错误冗余等价执行体发送错误信息;若所有执行体对应参数都错误,则TCP连接建立过程失败。
所述的数据传输过程在成功完成三次握手的基础上进行,其归一化传输包括如下步骤:
B1:冗余等价执行体同步发送数据长度为L字节的报文至输入/输出代理,输入/输出代理将TCP数据报文进行拆分并获得各冗余等价执行体此时对应的报文序号seq,随后将所有序号发送至冗余控制器;
B2:冗余控制器判断各冗余等价执行体的seq及其他数据是否正确,若至少存在一个冗余等价执行体对应参数正确,则产生归一化的seq_unif,即seq_unif=ack_unif,ack_unif为三次握手步骤A5保存的ack,并将seq_unif返回至输入/输出代理,同时存储所有冗余等价执行体对应的报文序号seq以及向错误冗余等价执行体发送错误信息;若所有冗余等价执行体对应参数都错误,则向冗余执行体发送错误信息并请求重发;
B3~B6步骤与三次握手的A3~A6相同;
B7:冗余等价执行体根据接收报文的确认号判断接下来需要发送的数据字段,随后重复步骤B1~B6直至数据发送完毕。
所述的四次挥手过程在数据传输完毕后进行,其归一化过程与三次握手类似,包括C1~C8,其中,
C1:冗余等价执行体同步发送释放TCP连接报文至输入/输出代理,输入/输出代理将TCP连接释放报文进行拆分并获得各冗余执行体此时对应的报文序号seq,随后将所有序号发送至冗余控制器;
C2~C6参照B2~B6,其中C2中的归一化的seq_unif为最后一次数据传输保存确认报文的确认号,即ack;且C4中远端设备返回的TCP确认报文为两个,对两个确认报文采用相同的处理方法;
C7~C8参照A7~A8,其中C8中若所有执行体对应参数都错误,则TCP连接释放过程失败。
一种保证冗余执行体TCP连接归一化的方法,该方法基于上述的保证冗余执行体TCP连接归一化的装置来实现,该装置作为服务器时,冗余执行体TCP连接归一化的过程包括三次握手、数据传输和四次挥手三个阶段;
其中,该装置与远端客户端的三次握手的归一化过程如下:
D1:输入/输出代理接收到远端客户端发送的TCP建立连接请求报文后,分别将报文发送至所有的冗余等价执行体;
D2:冗余等价执行体返回确认报文至输入/输出代理,输入/输出代理对报文进行拆分并获得各冗余执行体对应的报文序号seq和确认号ack,发送至冗余控制器;
D3:冗余控制器判断各冗余等价执行体ack是否正确,若正确则计算出归一化的报文序号seq_unif,然后将seq_unif以及裁决结果发送至输入/输出代理,并保存各冗余执行体对应的报文序号seq;否则向冗余等价执行体发送错误信息,并请求重发;
D4:输入/输出代理利用归一化后的报文序号seq_unif重组新的TCP报文,并发送给远端客户端;
D5:输入/输出代理接收到远端设备返回的TCP确认报文后先对报文进行拆包,随后将拆分获得的确认号ack发送至冗余控制器;
D6:冗余控制器利用ack和存储的所有冗余等价执行体的序号,计算出所有冗余等价执行体对应的确认号ack_new,随后将它们发送至输入/输出代理,并保存ack记为ack_unif;
D7:输入/输出代理利用每个等价执行体对应的确认号ack_new为对应的冗余等价执行体重组TCP确认报文,随后将重组后的新确认报文发送至对应的冗余等价执行体。
所述的数据传输过程在成功完成三次握手的基础上进行,其中数据传输过程如下:
E1:输入/输出代理接收到远端客户端发送的数据报文后,将数据报文进行拆分并获得报文确认号ack并发送至冗余控制器;
E2:冗余控制器利用ack和存储的所有冗余等价执行体的序号,计算出所有冗余等价执行体对应的确认号ack_new,随后将它们发送至输入/输出代理,并保存ack记为ack_unif;
E3:输入/输出代理利用每个等价执行体对应的确认号ack_new为对应的冗余等价执行体重组数据报文,随后将重组后的数据报文发送至对应的冗余等价执行体。
E4:冗余等价执行体返回确认报文至输入/输出代理,输入/输出代理对报文进行拆分并获得各冗余执行体对应的报文序号seq和确认号ack,随后发送至冗余控制器;
E5:冗余控制器判断各冗余等价执行体的seq和ack是否正确,若至少存在一个冗余执行体的参数正确,则冗余控制器产生归一化seq_unif=ack_unif返回至输入/输出代理,并控制输入/输出代理重组该执行体的确认报文作为对外输出,随后向错误执行体返回错误信息;若所有冗余执行体参数都错误,则向所有执行体返回错误信息请求重发,随后重复执行E4~E5步骤直至正确。最后,重复E1~E5过程直至数据接收完毕。
该装置作为服务器时,四次挥手的步骤为F1~F7,F1~F7参照D1~D7,其中,远端客户端发送TCP链接释放报文的序号seq=u,冗余等价执行体返回的确认号ack=u+1;F3过程中ack_unif为冗余控制器中存储的上一轮远端客户端返回的确认号;F2~F4过程中冗余等价执行体的第二个确认报文与第一个确认报文处理方法相同,只是第二个确认报文的归一化seq_unif=ack_unif+1。
本发明的有益效果如下:
本发明的保证冗余执行体TCP连接归一化的装置及方法,在冗余等价执行体中同步运行TCP协议,采用输入/输出代理对TCP报文进行拆分、重组和转发,冗余控制器对拆分报文中的随机序号进行研判、裁决以及归一化处理。该装置与方法可以保证冗余等价执行体共享同一条TCP连接,提高通信系统的可靠性和安全性。
附图说明
图1为背景技术中的TCP协议三次握手原理示意图;
图2为背景技术TCP协议四次挥手原理示意图;
图3为本发明装置的实现模块示意图。
图4为本发明装置作为客户端与远端服务器的三次握手实现流程示意图。
图5为本发明的方法中数据传输过程的原理示意图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的保证冗余执行体TCP连接归一化的装置,如图3所示,包括多个同步运行的同构或异构冗余等价执行体、冗余控制器,输入/输出代理;
冗余等价执行体,用于运行各类应用程序,并将各类应用程序的运算结果输出至输入/输出代理;
输入/输出代理,用于拆分TCP报文,并根据冗余控制器的处理结果重组TCP报文,包括将相应的外部输入重组后转发至对应的冗余等价执行体,或将对应冗余等价执行体的输出重组后作为装置的最终输出;
冗余控制器,用于对冗余等价执行体的输出和外部输入的数据进行运算、处理,并将处理结果输出至输入/输出代理。
作为其中一种实施方式,冗余控制器包括裁决处理模块、参数存储模块和可逆运算模块,其中,
裁决处理模块,用于对所有冗余等价执行体产生的传输数据进行对比、研判、裁决,并将处理结果发送至输入/输出代理,控制输入/输出代理,使其选择对应冗余等价执行体的传输数据并进行重组后,作为对外输出;对来自输入/输出代理的外部数据进行分析、处理,并将处理结果返回输入/输出代理,控制输入/输出代理将相应数据进行重组后,发送至对应的冗余等价执行体;
参数存储模块,用于在TCP三次握手、数据传输和四次挥手过程中存储对应冗余等价执行体发送或接收报文的序号、确认号,以及所有冗余等价执行体经过裁决处理模块产生的裁决参数;
可逆运算模块,用于对所有冗余等价执行体的输入与输出数据进行归一化运算。运算对象包括但不限于随机数、报文序号等。
作为其中一种实施方式,输入/输出代理包括数据包拆分模块和数据包重组模块,其中,
数据包拆分模块,用于对TCP报文进行拆分,并发送给冗余控制器;这里的拆分包括但不限于提取报文中的序号、确认号等;
数据包重组模块,用于根据冗余控制器的处理结果对拆分后的报文进行重组形成新的TCP报文。这里的重组包括但不限于添加序号、确认号、检验和等。
下面以一个具体的实施案例对本发明的保证冗余执行体TCP连接归一化的方法进行说明。本发明的装置既可作为客户端,也可以作为服务器,且冗余执行体TCP连接归一化的过程均包括三次握手、数据传输和四次挥手三个阶段。
以本发明的保证冗余执行体TCP连接归一化的装置包括三个同步冗余等价执行体为例,分别标记为执行体1、执行体2和执行体3,下述各执行体中参数以该执行体标号加以区分。
本发明的保证冗余执行体TCP连接归一化的装置作为客户端,与远端服务器的三次握手过程如图4所示,具体过程如下:
A1:三个冗余等价执行体同步发起建立TCP连接请求至输入/输出代理,输入/输出代理将TCP连接请求报文进行拆分并获得各冗余执行体对应的报文序号seq_1、seq_2、seq_3,随后将所有序号发送至冗余控制器;
A2:冗余控制器通过可逆运算模块计算出归一化的报文序号seq_unif,例如:seq_unif=seq_1+seq_2+seq_3或seq_unif=seq_1⊕seq_2⊕seq_3等(⊕代表异或运算),并将其返回给输入/输出代理,同时保存所有冗余等价执行体对应的报文序号seq_1、seq_2、seq_3;
A3:输入/输出代理利用归一化后的报文序号seq_unif重组新的TCP报文,并发送给远端服务器;
A4:输入/输出代理接收到远端设备返回的TCP确认报文后先对报文进行拆包,随后将拆分获得的确认号ack发送至冗余控制器;
A5:冗余控制器利用ack和存储的所有冗余等价执行体的序号seq_1、seq_2、seq_3,计算出所有冗余等价执行体对应的确认号ack_new,例如,ack_new_1=ack-seq_2-seq_3、ack_new_2=ack-seq_1-seq_3、ack_new_3=ack-seq_1-seq_2(异或运算类似),随后将所有ack_new_1、ack_new_2、ack_new_3发送至输入/输出代理,并保存ack记为ack_unif。
A6:输入/输出代理利用ack_new_1、ack_new_2、ack_new_3为对应的冗余等价执行体重组TCP确认报文,随后将重组后的新确认报文发送至对应的冗余等价执行体;
A7:冗余等价执行体同步返回确认报文至输入/输出代理,输入/输出代理将所有确认报文进行拆包并获得各冗余等价执行体对应的seq、ack及其他数据,随后将对应数据发送至冗余控制器;
A8:冗余控制器判断各冗余等价执行体seq、ack及其他数据是否正确,若至少存在一个冗余等价执行体对应参数正确,则产生归一化的seq_unif,即seq_unif=ack_unif,并将seq_unif、ack和裁决结果一起发送至输入/输出代理,输入/输出代理根据seq_unif、ack和裁决结果重组TCP确认报文并发送给远端TCP连接设备,随后向错误冗余等价执行体发送错误信息;若所有执行体对应参数都错误,则TCP连接建立过程失败。
数据传输过程在成功完成三次握手的基础上进行,如图5所示,其归一化传输包括如下步骤:
B1:冗余等价执行体同步发送长度为L字节的报文至输入/输出代理,输入/输出代理将TCP数据报文进行拆分并获得各冗余执行体此时对应的报文序号seq_1、seq_2、seq_3,随后将所有序号发送至冗余控制器;
B2:冗余控制器判断各冗余等价执行体的seq及其他数据是否正确,若至少存在一个冗余等价执行体对应参数正确,则产生归一化的seq_unif,即seq_unif=ack_unif,ack_unif为三次握手步骤A5保存的ack,并将seq_unif返回至输入/输出代理,同时存储所有冗余等价执行体对应的报文序号seq以及向错误冗余等价执行体发送错误信息;若所有冗余等价执行体对应参数都错误,则向冗余执行体发送错误信息并请求重发;
B3~B6步骤与三次握手的A3~A6相同;
B7:冗余等价执行体根据接收报文的确认号判断接下来需要发送的数据字段,随后重复步骤B1~B6直至数据发送完毕。
四次挥手过程在数据传输完毕后进行,其归一化过程与三次握手类似,包括C1~C8,其中,
C1:冗余等价执行体同步发送释放TCP连接报文至输入/输出代理,输入/输出代理将TCP连接释放报文进行拆分并获得各冗余执行体此时对应的报文序号seq_1、seq_2、seq_3,随后将所有序号发送至冗余控制器;
C2~C6参照B2~B6,其中C2中的归一化的seq_unif为最后一次数据传输保存确认报文的确认号,即ack;且C4中远端设备返回的TCP确认报文为两个,对两个确认报文采用相同的处理方法;
C7~C8参照A7~A8,其中C8中若所有执行体对应参数都错误,则TCP连接释放过程失败。
当其作为服务器时,TCP连接归一化步骤与上述过程原理类似。
参照附图1,当其作为服务器时,三次握手具体过程包括D1~D7,其中,
D1:输入/输出代理接收到远端客户端发送的TCP建立连接请求报文后,分别将报文发送至三个冗余等价执行体;
D2:冗余等价执行体返回确认报文至输入/输出代理,其中序号分别为seq_1、seq_2、seq_3以及确认号ack=x+1,输入/输出代理对报文进行拆分后将序号seq_1、seq_2、seq_3以及对应的ack=x+1发送中冗余控制器;
D3:冗余控制器判断各执行体ack=x+1是否正确,若正确则计算出归一化的报文序号seq_unif,例如seq_unif=seq_1+seq_2+seq_3,然后将seq_unif以及裁决结果发送至输入/输出代理,并保存seq_1、seq_2、seq_3;否则向冗余等价执行体发送错误信息,并请求重发;
D4:输入/输出代理利用归一化后的报文序号seq_unif重组新的TCP报文,并发送给远端客户端;
D5:输入/输出代理接收到远端设备返回的TCP确认报文后先对报文进行拆包,随后将拆分获得的确认号ack发送至冗余控制器;
D6:冗余控制器利用ack和存储的所有冗余等价执行体的序号seq_1、seq_2、seq_3,计算出所有冗余等价执行体对应的确认号ack_new,即ack_new_1=ack-seq_2-seq_3、ack_new_2=ack-seq_1-seq_3、ack_new_3=ack-seq_1-seq_2,随后将所有ack_new_1、ack_new_2、ack_new_3发送至输入/输出代理,并保存ack记为ack_unif。
D7:输入/输出代理利用ack_new_1、ack_new_2、ack_new_3为对应的冗余等价执行体重组TCP确认报文,随后将重组后的新确认报文发送至对应的冗余等价执行体;
当该装置作为服务器时,其数据传输过程如下:
E1:输入/输出代理接收到远端客户端发送的数据长度为L的报文后,将数据报文进行拆分并获得报文确认号ack并发送至冗余控制器,此时seq=m;
E2:冗余控制器利用ack和存储的所有冗余等价执行体的序号,计算出所有冗余等价执行体对应的确认号ack_new,即ack_new_1=ack-seq_2-seq_3、ack_new_2=ack-seq_1-seq_3、ack_new_3=ack-seq_1-seq_2,随后将它们发送至输入/输出代理,并保存ack记为ack_unif;
E3:输入/输出代理利用每个等价执行体对应的确认号ack_new为对应的冗余等价执行体重组数据报文,随后将重组后的数据报文发送至对应的冗余等价执行体。
E4:冗余等价执行体返回确认报文至输入/输出代理,输入/输出代理对报文进行拆分并获得各冗余执行体对应的报文序号seq和确认号ack=m+L,随后发送至冗余控制器;
E5:冗余控制器判断各冗余等价执行体的seq和ack是否正确,若至少存在一个冗余执行体的参数正确,则冗余控制器产生归一化seq_unif=ack_unif返回至输入/输出代理,并控制输入/输出代理重组该执行体的确认报文作为对外输出,随后向错误执行体返回错误信息;若所有冗余执行体参数都错误,则向所有执行体返回错误信息请求重发,随后重复执行E4~E5步骤直至正确。最后,重复E1~E5过程直至数据接收完毕。
该装置作为服务器响应四次挥手的步骤F1~F7参照D1~D7,其中远端客户端发送TCP链接释放报文的序号seq=u,冗余等价执行体返回的确认号ack=u+1;F3过程中ack_unif为冗余控制器中存储的上一轮远端客户端返回的确认号;F2~F4过程中冗余系统的第二个确认报文与第一个确认报文处理方法一样,只是第二个确认报文的归一化seq_unif=ack_unif+1。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (6)
1.一种保证冗余执行体TCP连接归一化的装置,其特征在于,该装置包括同步运行的若干个冗余等价执行体,以及冗余控制器、输入/输出代理;
冗余等价执行体,用于运行各类应用程序,并将各类应用程序的运算结果输出至输入/输出代理;
输入/输出代理,用于拆分TCP报文,并根据冗余控制器的处理结果重组TCP报文,包括将相应的外部输入重组后转发至对应的冗余等价执行体,或将对应冗余等价执行体的输出重组后作为装置的最终输出;
冗余控制器,用于对冗余等价执行体的输出和外部输入的数据进行运算、处理,并将处理结果输出至输入/输出代理。
2.根据权利要求1所述的保证冗余执行体TCP连接归一化的装置,其特征在于,所述的冗余控制器包括裁决处理模块、参数存储模块和可逆运算模块,其中,
裁决处理模块,用于对所有冗余等价执行体产生的传输数据进行对比、研判、裁决,并将处理结果发送至输入/输出代理,控制输入/输出代理,使其选择对应冗余等价执行体的传输数据进行重组后,作为对外输出;对来自输入/输出代理的外部数据进行分析、处理,并将处理结果返回输入/输出代理,控制输入/输出代理将相应数据进行重组后,发送至对应的冗余等价执行体;
参数存储模块,用于在TCP三次握手、数据传输和四次挥手过程中存储对应冗余等价执行体发送或接收报文的序号、确认号,以及所有冗余等价执行体经过裁决处理模块产生的裁决参数;
可逆运算模块,用于对所有冗余等价执行体的输入与输出数据进行归一化运算。
3.根据权利要求2所述的保证冗余执行体TCP连接归一化的装置,其特征在于,所述的输入/输出代理包括数据包拆分模块和数据包重组模块,其中,
数据包拆分模块,用于对TCP报文进行拆分,并发送给冗余控制器;
数据包重组模块,用于根据冗余控制器的处理结果对拆分后的报文进行重组形成新的TCP报文。
4.根据权利要求3所述的保证冗余执行体TCP连接归一化的装置,其特征在于,所述的数据包拆分模块对TCP报文拆分后提取报文中的序号和确认号,所述的数据包重组模块对拆分后的报文进行重组形成新的TCP报文时添加序号、确认号和检验和。
5.一种保证冗余执行体TCP连接归一化的方法,其特征在于,该方法基于权利要求4的保证冗余执行体TCP连接归一化的装置来实现,该装置作为客户端时,冗余执行体TCP连接归一化的过程包括三次握手、数据传输和四次挥手三个阶段;
其中,该装置与远端服务器的三次握手的归一化过程如下:
A1:若干个冗余等价执行体同步发起建立TCP连接请求至输入/输出代理,输入/输出代理将TCP连接请求报文进行拆分并获得各冗余执行体对应的报文序号seq,随后将所有序号发送至冗余控制器;
A2:冗余控制器通过可逆运算模块计算出归一化的报文序号seq_unif,并将其返回给输入/输出代理,同时保存所有冗余等价执行体对应的报文序号seq;
A3:输入/输出代理利用归一化后的报文序号seq_unif重组新的TCP报文,并发送给远端服务器;
A4:输入/输出代理接收到远端设备返回的TCP确认报文后先对报文进行拆包,随后将拆分获得的确认号ack发送至冗余控制器;
A5:冗余控制器利用ack和存储的所有冗余等价执行体的序号seq,计算出所有冗余等价执行体对应的确认号ack_new,随后将所有ack_new发送至输入/输出代理,并保存ack记为ack_unif;
A6:输入/输出代理利用对应的ack_new为所有冗余等价执行体重组TCP确认报文,随后将重组后的新确认报文发送至对应的冗余等价执行体;
A7:冗余等价执行体同步返回确认报文至输入/输出代理,输入/输出代理将所有确认报文进行拆包并获得各冗余等价执行体对应的seq、ack及其他数据,随后将对应数据发送至冗余控制器;
A8:冗余控制器判断各冗余等价执行体seq、ack及其他数据是否正确,若至少存在一个冗余等价执行体对应参数正确,则产生归一化的seq_unif,即seq_unif=ack_unif,并将seq_unif、ack和裁决结果一起发送至输入/输出代理,输入/输出代理根据seq_unif、ack和裁决结果重组TCP确认报文并发送给远端TCP连接设备,随后向错误冗余等价执行体发送错误信息;若所有执行体对应参数都错误,则TCP连接建立过程失败。
所述的数据传输过程在成功完成三次握手的基础上进行,其归一化传输包括如下步骤:
B1:冗余等价执行体同步发送数据长度为L字节的报文至输入/输出代理,输入/输出代理将TCP数据报文进行拆分并获得各冗余等价执行体此时对应的报文序号seq,随后将所有序号发送至冗余控制器;
B2:冗余控制器判断各冗余等价执行体的seq及其他数据是否正确,若至少存在一个冗余等价执行体对应参数正确,则产生归一化的seq_unif,即seq_unif=ack_unif,ack_unif为三次握手步骤A5保存的ack,并将seq_unif返回至输入/输出代理,同时存储所有冗余等价执行体对应的报文序号seq以及向错误冗余等价执行体发送错误信息;若所有冗余等价执行体对应参数都错误,则向冗余执行体发送错误信息并请求重发;
B3~B6步骤与三次握手的A3~A6相同;
B7:冗余等价执行体根据接收报文的确认号判断接下来需要发送的数据字段,随后重复步骤B1~B6直至数据发送完毕。
所述的四次挥手过程在数据传输完毕后进行,其归一化过程与三次握手类似,包括C1~C8,其中,
C1:冗余等价执行体同步发送释放TCP连接报文至输入/输出代理,输入/输出代理将TCP连接释放报文进行拆分并获得各冗余执行体此时对应的报文序号seq,随后将所有序号发送至冗余控制器;
C2~C6参照B2~B6,其中C2中的归一化的seq_unif为最后一次数据传输保存确认报文的确认号,即ack;且C4中远端设备返回的TCP确认报文为两个,对两个确认报文采用相同的处理方法;
C7~C8参照A7~A8,其中C8中若所有执行体对应参数都错误,则TCP连接释放过程失败。
6.一种保证冗余执行体TCP连接归一化的方法,其特征在于,该方法基于权利要求4的保证冗余执行体TCP连接归一化的装置来实现,该装置作为服务器时,冗余执行体TCP连接归一化的过程包括三次握手、数据传输和四次挥手三个阶段;
其中,该装置与远端客户端的三次握手的归一化过程如下:
D1:输入/输出代理接收到远端客户端发送的TCP建立连接请求报文后,分别将报文发送至所有的冗余等价执行体;
D2:冗余等价执行体返回确认报文至输入/输出代理,输入/输出代理对报文进行拆分并获得各冗余执行体对应的报文序号seq和确认号ack,发送至冗余控制器;
D3:冗余控制器判断各冗余等价执行体ack是否正确,若正确则计算出归一化的报文序号seq_unif,然后将seq_unif以及裁决结果发送至输入/输出代理,并保存各冗余执行体对应的报文序号seq;否则向冗余等价执行体发送错误信息,并请求重发;
D4:输入/输出代理利用归一化后的报文序号seq_unif重组新的TCP报文,并发送给远端客户端;
D5:输入/输出代理接收到远端设备返回的TCP确认报文后先对报文进行拆包,随后将拆分获得的确认号ack发送至冗余控制器;
D6:冗余控制器利用ack和存储的所有冗余等价执行体的序号,计算出所有冗余等价执行体对应的确认号ack_new,随后将它们发送至输入/输出代理,并保存ack记为ack_unif;
D7:输入/输出代理利用每个等价执行体对应的确认号ack_new为对应的冗余等价执行体重组TCP确认报文,随后将重组后的新确认报文发送至对应的冗余等价执行体。
所述的数据传输过程在成功完成三次握手的基础上进行,其中数据传输过程如下:
E1:输入/输出代理接收到远端客户端发送的数据报文后,将数据报文进行拆分并获得报文确认号ack并发送至冗余控制器;
E2:冗余控制器利用ack和存储的所有冗余等价执行体的序号,计算出所有冗余等价执行体对应的确认号ack_new,随后将它们发送至输入/输出代理,并保存ack记为ack_unif;
E3:输入/输出代理利用每个等价执行体对应的确认号ack_new为对应的冗余等价执行体重组数据报文,随后将重组后的数据报文发送至对应的冗余等价执行体。
E4:冗余等价执行体返回确认报文至输入/输出代理,输入/输出代理对报文进行拆分并获得各冗余执行体对应的报文序号seq和确认号ack,随后发送至冗余控制器;
E5:冗余控制器判断各冗余等价执行体的seq和ack是否正确,若至少存在一个冗余执行体的参数正确,则冗余控制器产生归一化seq_unif=ack_unif返回至输入/输出代理,并控制输入/输出代理重组该执行体的确认报文作为对外输出,随后向错误执行体返回错误信息;若所有冗余执行体参数都错误,则向所有执行体返回错误信息请求重发,随后重复执行E4~E5步骤直至正确。最后,重复E1~E5过程直至数据接收完毕。
该装置作为服务器时,四次挥手的步骤为F1~F7,F1~F7参照D1~D7,其中,远端客户端发送TCP链接释放报文的序号seq=u,冗余等价执行体返回的确认号ack=u+1;F3过程中ack_unif为冗余控制器中存储的上一轮远端客户端返回的确认号;F2~F4过程中冗余等价执行体的第二个确认报文与第一个确认报文处理方法相同,只是第二个确认报文的归一化seq_unif=ack_unif+1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010255325.XA CN111600836B (zh) | 2020-04-02 | 2020-04-02 | 一种保证冗余等价执行体tcp连接归一化的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010255325.XA CN111600836B (zh) | 2020-04-02 | 2020-04-02 | 一种保证冗余等价执行体tcp连接归一化的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111600836A true CN111600836A (zh) | 2020-08-28 |
CN111600836B CN111600836B (zh) | 2022-02-22 |
Family
ID=72188680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010255325.XA Active CN111600836B (zh) | 2020-04-02 | 2020-04-02 | 一种保证冗余等价执行体tcp连接归一化的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111600836B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125077A (zh) * | 2022-01-26 | 2022-03-01 | 之江实验室 | 一种实现多执行体tcp会话归一化的方法和装置 |
CN117729274A (zh) * | 2024-02-07 | 2024-03-19 | 之江实验室 | 报文处理的方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263687A (zh) * | 2011-08-11 | 2011-11-30 | 武汉思为同飞网络技术有限公司 | 广域网vpn加速网关及其加速通信系统和方法 |
CN106534063A (zh) * | 2016-09-27 | 2017-03-22 | 上海红阵信息科技有限公司 | 一种封装异构功能等价体的装置、方法及设备 |
CN108804109A (zh) * | 2018-06-07 | 2018-11-13 | 北京四方继保自动化股份有限公司 | 基于多路功能等价模块冗余仲裁的工业部署和控制方法 |
CN110535843A (zh) * | 2019-08-20 | 2019-12-03 | 之江实验室 | 一种拟态裁决参数消息同步的装置和方法 |
CN110750802A (zh) * | 2019-10-14 | 2020-02-04 | 创元网络技术股份有限公司 | 基于拟态防御针对关键数据进行保护的架构 |
-
2020
- 2020-04-02 CN CN202010255325.XA patent/CN111600836B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263687A (zh) * | 2011-08-11 | 2011-11-30 | 武汉思为同飞网络技术有限公司 | 广域网vpn加速网关及其加速通信系统和方法 |
CN106534063A (zh) * | 2016-09-27 | 2017-03-22 | 上海红阵信息科技有限公司 | 一种封装异构功能等价体的装置、方法及设备 |
CN108804109A (zh) * | 2018-06-07 | 2018-11-13 | 北京四方继保自动化股份有限公司 | 基于多路功能等价模块冗余仲裁的工业部署和控制方法 |
CN110535843A (zh) * | 2019-08-20 | 2019-12-03 | 之江实验室 | 一种拟态裁决参数消息同步的装置和方法 |
CN110750802A (zh) * | 2019-10-14 | 2020-02-04 | 创元网络技术股份有限公司 | 基于拟态防御针对关键数据进行保护的架构 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125077A (zh) * | 2022-01-26 | 2022-03-01 | 之江实验室 | 一种实现多执行体tcp会话归一化的方法和装置 |
CN114125077B (zh) * | 2022-01-26 | 2022-05-03 | 之江实验室 | 一种实现多执行体tcp会话归一化的方法和装置 |
CN117729274A (zh) * | 2024-02-07 | 2024-03-19 | 之江实验室 | 报文处理的方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111600836B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111600836B (zh) | 一种保证冗余等价执行体tcp连接归一化的装置及方法 | |
CN1112784C (zh) | 用于在下载的程序之间建立保密对等通信的系统和方法 | |
US7672223B2 (en) | Method and apparatus for replicating a transport layer protocol stream | |
US7185114B1 (en) | Virtual memory systems and methods | |
US20040249948A1 (en) | Performing application layer transactions during the connection establishment phase of connection-oriented protocols | |
CN102664886B (zh) | 一种基于以太网的机器人协议实现方法 | |
JPH10510403A (ja) | 多プロセッサ環境 | |
EP2613497B1 (en) | Method of transporting data in a sub-segmented manner | |
KR101430032B1 (ko) | 물리적 전송 매체의 인터럽션 경우에 있어서 tcp 데이터 전송 프로세스를 향상시키는 방법 | |
US20030108044A1 (en) | Stateless TCP/IP protocol | |
KR20040028571A (ko) | 데이터통신방법 및 정보처리장치 | |
CN110493775A (zh) | 通过att和异常处理来适配的通信方法及系统 | |
US7254739B2 (en) | Error recovery in a client/server application using two independent sockets for communication | |
CN114866525B (zh) | 一种一主多从模式嵌入式设备远程在线固件升级方法及系统 | |
US20090138750A1 (en) | Redundant 3-wire communication system and method | |
CN112383882B (zh) | 一种蓝牙换电中的数据传输方法及换电系统 | |
CN111431943B (zh) | 一种拟态系统及其tcp代理的方法 | |
CN104429009B (zh) | 用于在数据包的双向传输情况下传输数据包的方法 | |
US20040001490A1 (en) | Method of verifying number of sessions of computer stack | |
GB2592314A (en) | Modified methods and system of transmitting and receiving transmission control protocol segments over internet protocol packets | |
CN114172898B (zh) | 一种大文件远程传输方法 | |
JP2017011706A (ja) | 通信システム、通信方法及び通信プログラム | |
CN113556268B (zh) | 一种tcping的实现方法 | |
JP7183470B1 (ja) | 分散連成シミュレーションシステム | |
WO2023181198A1 (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 |