CN1921369B - 一种网络连接的接管方法 - Google Patents
一种网络连接的接管方法 Download PDFInfo
- Publication number
- CN1921369B CN1921369B CN2006101038938A CN200610103893A CN1921369B CN 1921369 B CN1921369 B CN 1921369B CN 2006101038938 A CN2006101038938 A CN 2006101038938A CN 200610103893 A CN200610103893 A CN 200610103893A CN 1921369 B CN1921369 B CN 1921369B
- Authority
- CN
- China
- Prior art keywords
- node
- tcp
- backup
- information
- state information
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络连接的接管方法,包括:第一节点向备份节点发送所述第一节点与第二节点的当前的连接状态信息;所述备份节点接收所述连接状态信息并存储;若所述第一节点失效,所述备份节点根据存储的所述连接状态信息恢复与所述第二节点的网络连接。采用本发明方法,可实现集群内与第二节点连接的第一节点失效时,由备份节点从失效点处恢复与第二节点的网络连接,保证节点间的正常通信。
Description
技术领域
本发明涉及通信领域中网络系统的备份技术,尤其涉及一种网络连接的接管方法。
背景技术
在客户/服务器(Client/Server)架构中,客户端与服务端通过某种连接媒介进行通信。传输控制协议(Transmission Control Protocol,TCP)在服务端和客户端之间提供了基于非可靠网际协议(Internet Protocol,IP)层之上的可靠的、安全的逻辑链路和连接。IP层为TCP发送和接收可变长度的以Internet数据报文封装的分段和信息提供了可能。
图1为Client/Server架构中的TCP位置。图1所示的场景中客户端发送数据,服务端接收数据。图中仅仅给出了一个服务节点和一个客户节点的情况。实际上,服务端既可以是单个服务节点也可以是一群向客户节点提供服务的节点的集合,即服务节点集合工作在集群环境下。集群环境下的客户端将整个集群当作单个服务节点来看,并且所有集群内部的操作对客户端而言都是透明的。
图2为集群环境下的客户端与服务端的连接示意图。图2中客户端位于集群之外(实际应用中,客户端往往不止一个节点),服务端是由多个服务节点构成的集群,向客户端提供服务。集群内部的变化(这些变化可能是期望看到的负载均衡,也可能是不希望看到的节点失效或节点崩溃等)对客户端而言是完全透明的,服务端对于客户端的服务请求总是能够响应。
若要对已建立TCP连接的服务器和客户端实现TCP接管,现有技术采用TCP连接传递(TCP Connection Passing,TCPCP)技术。在TCPCP机制中如果活动服务节点正常关闭,那么冗余备份服务节点能够接管TCP连接。
TCPCP机制通过将活动服务节点上与客户端进行通信的socket连接转变为非活动状态来实现TCP连接从活动服务节点迁移到备份服务节点上。
参见图3,为现有技术中利用TCPCP机制进行TCP连接接管的流程示意图。由于活动服务节点使自身socket转为非活动状态时并没有改变客户端的状态,因此到目前为止,客户节点仍然保持着ESTABLISHED状态,利用TCPCP机制进行TCP连接接管的具体步骤包括:
1~2、活动服务节点创建socket,并确立与客户节点的连接。
3~4、客户节点通过该连接与服务节点互传数据。
5、活动服务节点通知备份服务节点进行TCP连接接管。
由于管理的需要,活动服务节点要正常关闭。首先,活动服务节点将其上的与客户节点进行通信的socket连接将转为非活动状态,并通过getsockopt()系统调用获得当前TCP的状态;然后,以内部连接信息(Internal ConnectionInformation,ICI)的形式将TCP状态信息发送给备份服务节点;之后,活动服务节点转入关闭状态。
备份服务节点从活动服务节点处获得ICI信息后,将创建一个新的用于与客户端进行通信的socket连接;然后,将从活动服务节点获得的TCP状态设置在新的socket连接中;
6~7、新的socket被激活,服务端恢复与客户端的通信。
上述TCPCP机制存在如下限制:
(1)活动服务节点因非正常原因(如系统崩溃,内核挂起等)失效时,TCPCP机制无法实现TCP连接接管;
(2)当备份服务节点获得活动服务节点ICI信息后,活动服务节点的socket被释放,不能再利用该socket进行任何其他的通信。因此,当TCP连接接管发生的时候,活动服务节点被强迫失效。即,ICI信息仅仅能够得到一次,并且获得后需要立即从获得服务节点发送到备份节点。
与本发明相关的现有技术之二,为TCP透明连接错误接管技术。该技术方案为通过面向连接协议建立连接的备份服务器和客户端提供了一种透明的连接错误接管机制。该机制中如果活动服务节点产生一个响应,那么备份服务节点也将产生同样的响应来回应客户节点。两个服务节点拥有完全相同的状态转换,为了同步活动服务节点和备份服务节点之间TCP状态,需要在TCP与IP层之间引入桥接层(bridge layer)。这种方法需要两类服务节点(活动和备份)处于相同的服务模式。备份服务节点虽然处于standby模式,但需要与活动服务节点一样响应客户端请求。上述技术方案中,由于活动服务节点和备份服务节点拥有完全相同的状态,因此,如果当活动服务节点的应用程序失效时,备份服务节点上很有可能也出现应用程序失效,因此该方案不能确保活动服务节点失效时TCP连接的有效接管。
与本发明相关的现有技术之三,为利用连接缓冲存储器实现高可用性TCP系统的连接失效接管。该技术通过一种附加的设备——连接高速缓冲存储器(connection cache)的帮助来完成TCP的错误接管。该技术方案不仅需要额外的设备进行TCP连接接管,而且仅适用于单节点失效的情况。
发明内容
本发明提供一种网络连接的接管方法,用以实现备份节点从网络节点失效处接管网络连接,以实现在非正常原因节点失效时网络连接的正常接管,保证网络通信正常进行。
本发明方法包括:
第一节点向备份节点发送所述第一节点与第二节点的当前的连接状态信息;
所述备份节点接收所述连接状态信息并存储;
当检测到所述第一节点失效或者接收到所述第一节点发送的连接接管通知时,所述备份节点根据存储的所述连接状态信息恢复与所述第二节点的网络连接,其中,所述第一节点通过浮动IP地址与所述第二节点建立IP地址连接;所述第一节点失效后,所述备份节点使用该浮动IP地址与所述第二节点建立IP地址连接进行交互;所述备份节点通过恢复后的网络连接向所述第二节点发送数据前,将数据包的时间戳修改为与所述第一节点的时间戳一致;
所述备份节点采用应用层的检查点机制将所述第一节点的最后缓存区中的数据发送至所述第二节点。
根据本发明的上述方法,所述第一节点向所述备份节点发送的所述当前的连接状态信息包括静态信息和动态信息。
所述第一节点向所述备份节点发送所述当前的连接状态信息的过程具体包括:
所述第一节点与所述第二节点建立连接时,向所述备份节点发送该连接的静态信息;
所述第一节点与所述第二节点通过该连接进行通信时,向所述备份节点发送该连接的动态信息。
上述方法中,所述第一节点调用设定的连接状态信息获取函数,获取本地内核中所述连接的静态信息或动态信息,并发送到所述备份节点。
所述连接状态信息获取函数包含静态信息选项和动态信息选项;
所述连接状态信息获取函数通过所述静态信息选项获取内核中该连接的静态信息,通过所述动态信息选项获取内核中该连接的动态信息。
所述备份节点检测到所述第一节点失效,进一步包括:
所述备份节点定时向所述第一节点发送脉冲信号,若未在指定时间内收到所述第一节点返回的响应时,认为所述第一节点失效;或
位于所述第一节点上的中间件检测到所述第一节点失效后,关闭该节点的网络连接的通信接口,并通过所述备份节点上的中间件通知所述备份节点所述第一节点失效。
上述方法中,当所述备份节点上的中间件检测到所述第一节点上的中间件失效时,该备份节点上的中间件将通过热中间件关闭所述第一节点上的网络连接的通信接口,并通知所述备份节点所述第一节点失效。
根据本发明的上述方法,所述备份节点利用存储的所述连接状态信息,恢复与所述第二节点的网络连接的过程包括:
所述备份节点创建连接套接字;
所述备份节点获取存储的所述连接状态信息,并用该信息设置该连接套接字的状态。
上述方法中,所述备份节点通过调用设定的连接状态信息设置函数设置所述连接套接字的状态。
上述方法中,所述连接状态信息设置函数包含状态信息设置选项,所述连接状态信息设置函数通过该设置选项设置所述连接套接字的静态和动态连接状态。
根据本发明的上述方法,
所述第一节点失效后,其上的虚拟网络接口被关闭;
所述备份节点开启本地的虚拟网络接口,并用所述第一节点的浮动IP地址设置该虚拟网络接口的地址。
根据本发明的上述方法,所述连接状态信息为TCP连接状态信息;
所述备份节点恢复与所述第二节点的TCP连接。
本发明的有益效果如下:
(1)本发明通过第一节点每次接收和发送数据后,都向备份节点发送当前的连接状态信息,使备份节点保存并维护网络连接的最新状态,因此,不论第一节点发生故意失效还是非故意失效,备份节点都能够从失效点处恢复网络连接,以保证正常通信。
(2)本发明中,第一节点通过浮动IP地址与第二节点进行通信,当第一节点失效时,备用节点开启虚拟网络接口,并使用相同的浮动IP地址与第二节点端通信,在保证透明地为第二节点提供服务的同时,还保证了第一节点上其他未失效的应用仍然可以正常通信。
(3)由于本发明中,备份节点只需存储第一节点与第二节点间的连接状态信息,不必与第一节点拥有完全相同的状态,因此与现有技术相比,避免了第一节点上的应用程序失效时对备份节点上的应用程序造成影响,保证网络连接的有效接管。
(4)与现有技术相比,本发明实现方法简单易行,不需额外的设备。
附图说明
图1为现有技术中Client/Server架构中的TCP位置示意图;
图2为现有技术中集群环境下的客户端与服务端的连接示意图;
图3为现有技术中利用TCPCP机制进行TCP连接接管的流程示意图;
图4为本发明第二节点通过虚拟网络接口连接到第一节点的示意图;
图5为本发明第一节点失效后,第二节点通过虚拟网络接口连接到备份节点的示意图;
图6为本发明实施例一中活动服务节点正常通信流程示意图;
图7为本发明实施例一中活动服务节点非故意失效时的TCP连接接管流程示意图;
图8为本发明实施例二中活动服务节点故意失效时的TCP连接接管流程示意图;
图9为本发明实施例中活动服务节点获取TCP静态参数的过程示意图;
图10为本发明实施例中活动服务节点获取TCP动态参数的过程示意图;
图11为本发明实施例中备份服务节点恢复TCP连接过程的示意图。
具体实施方式
本发明通过第一节点每次发送和接收数据报文时,发送当前的网络连接状态信息给备份节点,使备份节点记录该网络连接的最新状态,当第一节点非故意失效时,备份节点能够利用记录的连接状态信息,从失效点处恢复网络连接,保证网络系统中节点间能够正常通信。
本发明还采用浮动IP地址(也称别名IP地址)接管机制,使备份节点通过与第一节点相同的浮动IP地址与第二节点进行通信,以保证备份节点接管网络连接后,其他与第一节点通过实际IP地址进行通信的应用依然可以与该节点通过实际IP地址进行通信。
浮动IP地址通过在一个节点的虚拟网络接口上分配IP地址来实现。网络结构通常都是以eth0,eth1来命名(eth0代表节点上的第一块网络接口卡NIC,eth1表示节点上的第二块NIC卡),可以向其分配IP地址。虚拟网络接口一般采用eth0:0的形式,这表明eth0拥有一个虚拟接口,通过虚拟接口可以向一块NIC卡分配多个IP地址。
参见图4,为本发明第二节点通过虚拟网络接口连接到第一节点的示意图。
其中,第二节点为客户端节点,第一节为服务端节点,第二节点与第一节点采用Client/Server架构连接并进行通信,第一节点所在的服务端运行在高可用性集群上,第二节点位于高可用性集群之外。对第二节点而言,除了能感知到服务端提供的服务外,服务端的其他变化对其都应该是透明的。首先被第二节点连接的服务端节点称之为活动服务节点(即图中的第一节点)。备份节点能够在第一节点失效时接管其工作。预先为第一节点的虚拟网络接口eth0:0分配IP地址11.168.1.100,该IP地址称为浮动IP地址,第二节点通过该地址与其建立连接。
当第一节点失效时,为备份节点的虚拟网络接口分配浮动IP地址11.168.1.100。此时,第二节点就可以通过原浮动IP地址访问备份节点,保证第二节点的正常通信。
参见图5,为本发明第一节点失效后,第二节点通过虚拟网络接口连接到备份节点的示意图。第二节点通过浮动IP地址11.168.1.100与服务端节点进行通信,路由器将第二节点的请求路由到备份节点。此时,若第一节点仅仅是提供服务的应用程序失效,而自身并未失效,则该节点上的其他未失效的应用程序仍然可以使用原有的IP地址保持通信。
第二节点可以是客户端节点,也可以是服务端节点。当第二节点是服务端节点时,其网络连接的接管过程与上述过程类似。
本发明提供的网络接管方法适用于集群系统内的TCP连接接管。下面以高可用性集群系统中的非故意TCP连接接管和故意TCP连接接管的过程,对本发明进行详细描述。在下述实施例中,将客户端节点对应于所述第二节点,活动服务节点对应于所述第一节点,备份服务节点在活动服务节点失效后,接管活动服务节点和客户端的TCP连接。
实施例一:非故意TCP连接接管的过程。在本实施例中,客户端与服务端采用浮动IP地址进行通信,即在活动服务节点设置虚拟网络接口,并设置该接口的IP地址11.168.1.100(浮动IP地址),客户端与活动服务节点通过该IP地址进行通信。
参见图6,为本发明实施例一中活动服务节点正常通信流程示意图,具体步骤包括:
1、客户端向浮动IP地址11.168.1.100发送连接请求,该请求被路由到活动服务节点。
2、活动服务节点建立连接后,通过getsockopt()系统调用获得TCP连接的静态信息,并将该静态信息发送给备份服务节点;备份服务节点在本地创建该TCP连接的检查点,并将收到的TCP连接的静态信息存储到检查点中。
3、活动服务节点向客户端发送确认客户端连接的消息,表明客户端的请求被活动服务节点接受。
4、客户端通过建立的TCP连接向活动服务节点传输数据。
5、活动服务节点通过getsockopt()系统调用获得TCP连接当前的动态信息,并将该动态信息发送给备份服务节点;备份服务节点将该TCP连接的动态信息存储到对应的检查点中。
6、活动服务节点响应客户端的数据传输。
7、活动服务节点再次通过getsockopt()系统调用获得TCP连接当前的动态信息,并将该动态信息发送给备份服务节点;备份服务节点更新对应检查点中的TCP连接的动态信息,以此实现备份服务节点维护最新的活动服务节点的TCP连接的动态信息。
8、客户端向活动服务节点发送关闭连接请求。
9、活动服务节点关闭会话连接后,向备份服务节点发送关闭连接的通知,备份服务节点删除其维护的TCP连接所对应的检查点,即删除其保持的活动服务节点的TCP连接信息。
如果在通信过程中活动服务节点失效,IP地址接管和TCP连接接管将同时起作用。
参见图7,为本发明实施例一中活动服务节点非故意失效时的TCP连接接管流程示意图。
1~7、同图6流程中的步骤1~7,为活动服务节点正常通信时的流程。
8、活动服务节点失效,备份服务节点通过维护的最新的活动服务节点TCP连接状态信息恢复TCP连接,该步骤包括:
8a、备份服务节点通过心跳机制帧测到活动服务节点失效。
备份服务节点向活动服务节点周期性发送脉冲心跳信号,并从活动服务节点处获得响应。该响应有超时时间,在指定时间内,如果备份服务节点没有收到活动服务节点返回的响应,则认为活动服务节点已经失效。
8b、备份服务节点接管活动服务节点的IP地址。
备份服务节点开启本地的虚拟网络接口,并用活动服务节点与客户端进行通信的IP地址11.168.1.100设置本地的虚拟网络接口地址;
8c、备份服务节点接管活动服务节点的TCP连接。
备份服务节点建立socket连接,利用本地维护的TCP连接所对应的检查点中存储的TCP连接状态信息,通过setsockopt()系统调用设置该socket连接的TCP状态。
9、客户端向IP地址11.168.1.100传输数据,该消息被路由到备份服务节点。
10、备份服务节点向客户端返回响应。
11、客户端发送关闭连接请求,该请求被路由到备份服务节点。
12、备份服务节点关闭TCP连接。
从实施例一的流程可以看出,备份服务节点利用其维护的活动服务节点的TCP连接状态信息,能够在客户端毫不知情的情况下恢复TCP连接。
实施例一是以备份服务节点通过心跳机制获知活动服务节点失效为例进行描述的,备份服务节点还可以通过其他方式获知活动服务节点失效,如通过中间件获知活动服务节点失效。
在高可用性集群中,可引入中间件处理应用程序的故障(该中间件可以看成是操作系统的抽象)。中间件分别位于各服务节点,当位于活动服务节点上的中间件检测到活动服务节点上的应用程序发生故障时,位于服务节点上的中间件将关闭活动服务节点的虚拟网络接口,并采用中间件的通信机制,通知位于备份服务节点上的中间件,使备份服务节点获知活动服务节点已经失效。中间件由位于其上层的热中间件(hot middleware)(热中间件是从中间件中分离出来的系统内核的抽象)进行管理控制。当备份服务节点上的中间件检测到活动服务节点上中间件失效时,备份服务节点上的中间件将通过热中间件关闭活动服务节点虚拟网络接口。此时的心跳信号反映活动服务节点当前的健康状态。
实施例二:故意TCP连接接管的过程。在该实施例中,客户端与服务端采用浮动IP地址进行通信,即在活动服务节点设置虚拟网络接口,并设置该接口的IP地址11.168.1.100(浮动IP地址),客户端与活动服务节点通过该IP地址进行通信。
参见图8,为本发明实施例二中活动服务节点故意失效时的TCP连接接管流程示意图。
1~7、同图6流程中的步骤1~7,为活动服务节点正常通信时的流程。
8、活动服务节点通知备份服务节点接管TCP连接。
由于管理的需要,活动服务节点要正常关闭。首先,活动服务节点将其上的与客户节点进行通信的socket连接将转为非活动状态,并通过getsockopt()系统调用获得当前TCP的状态;然后,关闭本地的虚拟网络接口,并通知备份服务节点接管TCP连接。
9、备份服务节点收到接管TCP连接的通知后,建立并恢复socket连接,该步骤包括:
9a、备份服务节点接管活动服务节点的IP地址。
备份服务节点开启本地的虚拟网络接口,并用活动服务节点与客户端进行通信的IP地址11.168.1.100设置本地的虚拟网络接口地址;
9b、备份服务节点接管活动服务节点的TCP连接。
备份服务节点建立socket连接,利用ICI信息中包含的TCP连接状态信息,通过setsockopt()系统调用设置该socket连接的TCP状态。
10、客户端向IP地址11.168.1.100传输数据,该消息被路由到备份服务节点。
11、备份服务节点向客户端返回响应。
12、客户端发送关闭连接请求,该请求被路由到备份服务节点。
13、备份服务节点关闭TCP连接。
本发明通过修改服务端系统内核,以实现上述实施例一和实施例二中TCP连接的接管。通过修改被getsockopt系统调用所调用的TCP状态信息获取函数tcp_getsockopt(),实现分别获取与socket连接相关的静态和动态参数信息;通过修改被setsockopt系统调用所调用的TCP状态信息设置函数tcp_setsockopt(),实现设置与socket连接相关的参数信息。
本发明在tcp_getsockopt()函数中设置了两个socket选项:
(1)TCP静态信息选项TCP_STATIC_INFO
该选项在客户端与服务端之间的连接已经建立起来后调用,通过该选项可以获得TCP连接的静态信息。静态TCP状态信息在客户端与服务端连接建立的初始握手阶段确定,通过该选项获取的主要静态参数包括:
1)源IP地址(浮动IP地址);
2)活动服务节点用来与客户端通信的源端口号;
3)目的IP地址(客户端IP地址);
4)客户端节点用来与活动服务节点通信的目的端口号;
5)最大可以发送的TCP数据段;
6)最大可以接收的TCP数据段;
7)客户端可以提供的最大窗口尺寸;
8)服务端可以提供的最大窗口尺寸;
9)客户端与服务端传输数据之前协商的TCP标志(TCP Flag)。
上述提到的参数都可以从维护有TCP连接状态的socket连接中获取。该函数如果执行成功则返回静态参数,如果执行失败则返回负数。
参见图9,为本发明实施例中活动服务节点获取TCP静态参数的过程示意图,具体步骤包括:
1、应用程序通过getsockopt系统调用来调用tcp_getsockopt()函数,并指定用TCP_STATIC_INFO选项来获取TCP静态参数;
2、内核获得TCP连接的静态参数并将其发送给应用程序。若没有获得相应信息,则返回错误信息给应用程序。
(2)TCP动态信息选项TCP_DYN_INFO
TCP连接的动态信息就是那些在客户端与服务端通信过程中会随着通信的进行而改变的一些参数。主要包括如下参数:
1)下一个将要发送的序列号;
2)没有确认的序列号;
3)下一个将要接收的序列号;
4)用于流量控制的服务端发送窗口尺寸;
5)用于客户端流量控制的接收窗口尺寸;
6)服务端TCP连接的发送缓存区大小;
7)信息时戳;
8)socket状态。
上述所有在活动服务节点上的参数都在不断变化。除缓存区中的数据外,所有其他参数都需要在备份服务节点中存储,以便于TCP连接状态的恢复。只有在活动服务节点中存在没有发送完的数据的情况下,可能需要在备份服务节点上存储缓存区数据,以便当备份服务节点接管连接后,重新发送这些数据。但是由于送缓存区中数据量较大,每次在备份服务节点上存储可能导致网络拥挤和阻塞。因此一般不采用这种形式,而是通过TCP自身的重传机制请求重传。本发明采用应用层的检查点机制,因为应用程序将重新产生数据并确保通信从最后的检查点上恢复,因而只有最后缓存区中的数据需要被重新发送。
参见图10,为本发明实施例中活动服务节点获取TCP动态参数的过程示意图,具体步骤包括:
1、应用程序通过getsockopt系统调用来调用tcp_getsockopt()函数,并指定用TCP_DYN_INFO选项来获取TCP动态参数;
2、内核获得TCP连接的动态参数并将其发送给应用程序。若没有获得相应信息,则返回错误信息给应用程序。
本发明在tcp_setsockopt()函数中设置一个socket选项:
TCP信息设置选项TCP_SET_INFO
该选项将在备份服务节点上设置新的TCP连接的状态。利用已经存储在备份服务节点上的TCP连接的静态信息和最新的动态信息,备份服务节点将TCP连接恢复为活动服务节点产生异常之前的状态。备份服务节点向该客户端发送的数据包不能采用其自身的时戳,需要将其更改为与活动服务节点上的一致(TCP时戳选项在RFC-793中有详细定义)。
参见图11,为本发明实施例中备份服务节点恢复TCP连接过程的示意图。图11中“服务端应用程序”、“服务端内核”,以及“服务端TCP输出功能”指的是备份服务节点中的核心函数;客户端采用单独的实体描述(没有采用内核函数的形式),其恢复TCP连接状态的具体步骤包括:
1、备份服务节点按照本地存储的TCP连接的动态和静态信息,通过tcp_setsockopt()函数中的TCP_SET_INFO选项设置备份服务节点上的TCP连接状态;
2、备份服务节点内核设置好TCP状态后,向该节点的TCP输出功能发送一个哑确认(dummy acknowledgement),所谓哑确认就是不需要对端节点发送数据的确认;
3、TCP输出函数给处于不活跃状态的客户端(但处于连接状态)发送确认信息,唤醒客户端与服务端重新通信;
4、备份服务节点的内核向应用程序返回设置成功响应;
5、备份服务节点向客户端发送数据,该节点的应用程序将发送的数据传递给内核的TCP连接;
6、内核将数据重新打包为TCP数据包,并发送给TCP输出功能准备传输;
7、TCP输出功能为TCP数据包设置与前活动服务节点相匹配的时戳;
8、TCP输出功能向客户节点发送数据。
其后从备份服务节点上发送的的数据包都需要经过更改时戳的操作。
在备份服务节点设置好TCP连接的动态和静态参数后,备份服务节点就在客户端毫不知情的情况下重新建立与其的连接。
对于上述的TCP_STATIC_INFO、TCP_DYN_INFO和TCP_SET_INFO三个选项,在内核中已经定义了相应的操作。
上述两个实施例都采用了浮动IP地址接管机制,不采用浮动IP地址接管机制的故意TCP连接接管和非故意TCP连接接管也在本发明的保护范围之内。
通过以上流程描述可知,本发明通过活动服务节点每次接收和发送数据后,都向备份服务节点发送当前的TCP连接状态信息,使备份服务节点保存并维护TCP连接的最新状态。当活动服务节点失效后,备份服务节点能够从本地保存的TCP连接状态信息恢复TCP连接,以保证客户端的正常通信。本发明在活动服务节点故意失效和非故意失效时,都可实现备份服务节点接管TCP连接。另外,本发明还通过浮动IP地址接管机制,保证服务端透明地为客户端提供服务的同时,还保证了活动服务节点上其他未失效的应用仍然可以正常通信。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种网络连接的接管方法,其特征在于,包括:
第一节点向备份节点发送所述第一节点与第二节点的当前的连接状态信息;
所述备份节点接收所述连接状态信息并存储;
当检测到所述第一节点失效或者接收到所述第一节点发送的连接接管通知时,所述备份节点根据存储的所述连接状态信息恢复与所述第二节点的网络连接,其中,所述第一节点通过浮动IP地址与所述第二节点建立IP地址连接;所述第一节点失效后,所述备份节点使用该浮动IP地址与所述第二节点建立IP地址连接进行交互;所述备份节点通过恢复后的网络连接向所述第二节点发送数据前,将数据包的时间戳修改为与所述第一节点的时间戳一致;
所述备份节点采用应用层的检查点机制将所述第一节点的最后缓存区中的数据发送至所述第二节点。
2.如权利要求1所述的方法,其特征在于,所述第一节点向所述备份节点发送的所述当前的连接状态信息包括静态信息和动态信息。
3.如权利要求2所述的方法,其特征在于,所述第一节点向所述备份节点发送所述当前的连接状态信息的过程具体包括:
所述第一节点与所述第二节点建立连接时,向所述备份节点发送该连接的静态信息;
所述第一节点与所述第二节点通过该连接进行通信时,向所述备份节点发送该连接的动态信息。
4.如权利要求3所述的方法,其特征在于,所述第一节点调用设定的连接状态信息获取函数,获取本地内核中所述连接的静态信息或动态信息,并发送到所述备份节点。
5.如权利要求4所述的方法,其特征在于,所述连接状态信息获取函数包含静态信息选项和动态信息选项;
所述连接状态信息获取函数通过所述静态信息选项获取内核中该连接的静态信息,通过所述动态信息选项获取内核中该连接的动态信息。
6.如权利要求1所述的方法,其特征在于,所述备份节点检测到所述第一节点失效,进一步包括:
所述备份节点定时向所述第一节点发送脉冲信号,若未在指定时间内收到所述第一节点返回的响应时,认为所述第一节点失效;或
位于所述第一节点上的中间件检测到所述第一节点失效后,关闭该节点的网络连接的通信接口,并通过所述备份节点上的中间件通知所述备份节点所述第一节点失效。
7.如权利要求6所述的方法,其特征在于,当所述备份节点上的中间件检测到所述第一节点上的中间件失效时,该备份节点上的中间件将通过热中间件关闭所述第一节点上的网络连接的通信接口,并通知所述备份节点所述第一节点失效。
8.如权利要求1所述的方法,其特征在于,所述备份节点利用存储的所述连接状态信息,恢复与所述第二节点的网络连接的过程包括:
所述备份节点创建连接套接字;
所述备份节点获取存储的所述连接状态信息,并用该信息设置该连接套接字的状态。
9.如权利要求8所述的方法,其特征在于,所述备份节点通过调用设定的连接状态信息设置函数设置所述连接套接字的状态。
10.如权利要求9所述的方法,其特征在于,所述连接状态信息设置函数包含状态信息设置选项,所述连接状态信息设置函数通过该设置选项设置所述连接套接字的静态和动态连接状态。
11.如权利要求1所述的方法,其特征在于,所述第一节点失效后,其上的虚拟网络接口被关闭;
所述备份节点开启本地的虚拟网络接口,并用所述第一节点的浮动IP地址设置该虚拟网络接口的地址。
12.如权利要求1所述的方法,其特征在于,所述连接状态信息为TCP连接状态信息;
所述备份节点恢复与所述第二节点的TCP连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101038938A CN1921369B (zh) | 2006-08-08 | 2006-08-08 | 一种网络连接的接管方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101038938A CN1921369B (zh) | 2006-08-08 | 2006-08-08 | 一种网络连接的接管方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1921369A CN1921369A (zh) | 2007-02-28 |
CN1921369B true CN1921369B (zh) | 2011-02-09 |
Family
ID=37778959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101038938A Expired - Fee Related CN1921369B (zh) | 2006-08-08 | 2006-08-08 | 一种网络连接的接管方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1921369B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106162637A (zh) * | 2015-04-10 | 2016-11-23 | 成都鼎桥通信技术有限公司 | Lte宽带集群多节点镜像组网的实现方法及装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707729A (zh) * | 2009-11-30 | 2010-05-12 | 中兴通讯股份有限公司 | 一种实现网络节点数据自动备份和恢复的系统及方法 |
CN101763321B (zh) | 2010-02-24 | 2013-01-02 | 华为技术有限公司 | 数据容灾的方法、装置及系统 |
CN102255716B (zh) * | 2010-05-20 | 2015-12-16 | 中兴通讯股份有限公司 | 一种对协议状态的设备间备份的方法及系统 |
CN102571568B (zh) * | 2011-12-27 | 2015-04-29 | 北京奇虎科技有限公司 | 任务处理方法及装置 |
CN104714783B (zh) * | 2011-12-27 | 2018-07-27 | 北京奇虎科技有限公司 | 任务处理方法及装置 |
CN104717300A (zh) * | 2011-12-27 | 2015-06-17 | 北京奇虎科技有限公司 | 任务处理方法及装置 |
EP2949081A4 (en) | 2013-01-27 | 2016-10-05 | Hewlett Packard Entpr Dev Lp | CONNECTION INTERFACE STATE TRANSFER |
CN103133868B (zh) * | 2013-02-25 | 2014-08-20 | 西安理工大学 | 一种提高供水管网可靠性的方法 |
CN103391217B (zh) * | 2013-07-24 | 2016-08-10 | 深信服网络科技(深圳)有限公司 | 实现异构集群设备同步的方法和异构集群系统 |
CN105790985B (zh) * | 2014-12-23 | 2020-06-16 | 中兴通讯股份有限公司 | 数据倒换的方法、第一设备、第二设备及系统 |
CN106161267A (zh) * | 2015-03-26 | 2016-11-23 | 中兴通讯股份有限公司 | 一种实现服务器内部网口负载均衡的方法及系统 |
CN106357744A (zh) * | 2016-08-29 | 2017-01-25 | 浪潮(北京)电子信息产业有限公司 | Smb客户端重连集群的方法、系统及smb客户端 |
CN106528335A (zh) * | 2016-10-25 | 2017-03-22 | 广东欧珀移动通信有限公司 | 一种数据备份方法、装置和终端 |
CN109743384B (zh) * | 2018-12-29 | 2021-06-29 | 杭州迪普科技股份有限公司 | 一种测试会话同步速率的方法和装置 |
CN110011767B (zh) * | 2019-04-17 | 2022-09-27 | 北京百度网讯科技有限公司 | 用于tcp连接备份的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1366242A (zh) * | 2001-01-19 | 2002-08-28 | 华为技术有限公司 | 一种双机备份的实现方法 |
CN1410904A (zh) * | 2002-09-24 | 2003-04-16 | 武汉拓锐计算机系统有限责任公司 | 一种具有tcp连接容错功能的负载平衡调度器及其调度方法 |
CN1423197A (zh) * | 2002-12-16 | 2003-06-11 | 华中科技大学 | 基于多tcp连接映像的高可用系统 |
CN1482773A (zh) * | 2003-04-11 | 2004-03-17 | 清华紫光比威网络技术有限公司 | 可容错的传输控制协议的实现方法 |
-
2006
- 2006-08-08 CN CN2006101038938A patent/CN1921369B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1366242A (zh) * | 2001-01-19 | 2002-08-28 | 华为技术有限公司 | 一种双机备份的实现方法 |
CN1410904A (zh) * | 2002-09-24 | 2003-04-16 | 武汉拓锐计算机系统有限责任公司 | 一种具有tcp连接容错功能的负载平衡调度器及其调度方法 |
CN1423197A (zh) * | 2002-12-16 | 2003-06-11 | 华中科技大学 | 基于多tcp连接映像的高可用系统 |
CN1482773A (zh) * | 2003-04-11 | 2004-03-17 | 清华紫光比威网络技术有限公司 | 可容错的传输控制协议的实现方法 |
Non-Patent Citations (2)
Title |
---|
倪广宝,马捷,詹剑锋,张志宏,王磊,孟丹.基于机群中间件监控系统的设计和实现.计算机工程与应用 22.2005,(22),第134-137页. |
倪广宝,马捷,詹剑锋,张志宏,王磊,孟丹.基于机群中间件监控系统的设计和实现.计算机工程与应用 22.2005,(22),第134-137页. * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106162637A (zh) * | 2015-04-10 | 2016-11-23 | 成都鼎桥通信技术有限公司 | Lte宽带集群多节点镜像组网的实现方法及装置 |
CN106162637B (zh) * | 2015-04-10 | 2019-10-25 | 成都鼎桥通信技术有限公司 | Lte宽带集群多节点镜像组网的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1921369A (zh) | 2007-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1921369B (zh) | 一种网络连接的接管方法 | |
CN101022451B (zh) | 数据通信中连接状态的同步方法及其应用的通信节点 | |
KR101099822B1 (ko) | 액티브 라우팅 컴포넌트 장애 처리 방법 및 장치 | |
CN100477638C (zh) | 具备自动建立机制的堆叠管理器协议 | |
CN101431428B (zh) | 安全监控服务恢复方法及系统 | |
JP2002509658A (ja) | リモートスマートフィルタリング通信管理システム | |
CA2656660C (en) | Client/bridge and method and system for using same | |
CN103200109B (zh) | 一种ospf邻居关系管理方法和设备 | |
US20100218034A1 (en) | Method And System For Providing High Availability SCTP Applications | |
JP2002319963A (ja) | 耐故障性プラットフォームにおいてネットワーク接続を提供する方法 | |
CN109861867B (zh) | 一种mec业务处理方法及装置 | |
CN101060533B (zh) | 一种提高vgmp协议可靠性的方法、系统及装置 | |
CN101465859A (zh) | 一种触发主备用接口板倒换的方法及装置 | |
CN104579937A (zh) | 服务器操作系统及其操作方法 | |
CN103442035A (zh) | 一种空管自动化系统的双网热备冗余实现方法 | |
WO2012171380A1 (zh) | 以太网远端故障的处理方法及装置 | |
EP2426855B1 (en) | Address refresh method and system | |
Ayari et al. | Fault tolerance for highly available internet services: concepts, approaches, and issues | |
CN105610614B (zh) | 高可用访问系统以及高可用故障切换方法 | |
CN104125079B (zh) | 一种确定双机热备份配置信息的方法及装置 | |
CN103138957A (zh) | 一种业务路径回切的方法、设备及系统 | |
CN102006301B (zh) | 一种多终端之间流控传输协议偶联的移动控制方法 | |
CN102487332A (zh) | 故障处理方法、装置和系统 | |
CN100433662C (zh) | 以太网监控的双独立互连系统 | |
WO2005055517A1 (fr) | Appareil de realisation de la recuperation d'un systeme allopatrique de commutateur logiciel utilisant un reseau a paquets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110209 Termination date: 20180808 |