CN1921369A - 一种网络连接的接管方法 - Google Patents

一种网络连接的接管方法 Download PDF

Info

Publication number
CN1921369A
CN1921369A CN 200610103893 CN200610103893A CN1921369A CN 1921369 A CN1921369 A CN 1921369A CN 200610103893 CN200610103893 CN 200610103893 CN 200610103893 A CN200610103893 A CN 200610103893A CN 1921369 A CN1921369 A CN 1921369A
Authority
CN
China
Prior art keywords
node
tcp
backup
state information
backup node
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
Application number
CN 200610103893
Other languages
English (en)
Other versions
CN1921369B (zh
Inventor
西瓦·库马·K
阿若纳卡勒姆·帕什萨拉什·A
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2006101038938A priority Critical patent/CN1921369B/zh
Publication of CN1921369A publication Critical patent/CN1921369A/zh
Application granted granted Critical
Publication of CN1921369B publication Critical patent/CN1921369B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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_SEF_INFO三个选项,在内核中已经定义了相应的操作。
上述两个实施例都采用了浮动IP地址接管机制,不采用浮动IP地址接管机制的故意TCP连接接管和非故意TCP连接接管也在本发明的保护范围之内。
通过以上流程描述可知,本发明通过活动服务节点每次接收和发送数据后,都向备份服务节点发送当前的TCP连接状态信息,使备份服务节点保存并维护TCP连接的最新状态。当活动服务节点失效后,备份服务节点能够从本地保存的TCP连接状态信息恢复TCP连接,以保证客户端的正常通信。本发明在活动服务节点故意失效和非故意失效时,都可实现备份服务节点接管TCP连接。另外,本发明还通过浮动IP地址接管机制,保证服务端透明地为客户端提供服务的同时,还保证了活动服务节点上其他未失效的应用仍然可以正常通信。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (15)

1、一种网络连接的接管方法,包括:
第一节点向备份节点发送所述第一节点与第二节点的当前的连接状态信息;
所述备份节点接收所述连接状态信息并存储;
若所述第一节点失效,所述备份节点根据存储的所述连接状态信息恢复与所述第二节点的网络连接。
2、如权利要求1所述的方法,其特征在于,所述第一节点向所述备份节点发送的所述当前的连接状态信息包括静态信息和动态信息。
3、如权利要求2所述的方法,其特征在于,所述第一节点向所述备份节点发送所述当前的连接状态信息的过程具体包括:
所述第一节点与所述第二节点建立连接时,向所述备份节点发送该连接的静态信息;
所述第一节点与所述第二节点通过该连接进行通信时,向所述备份节点发送该连接的动态信息。
4、如权利要求3所述的方法,其特征在于,所述第一节点调用设定的连接状态信息获取函数,获取本地内核中所述连接的静态信息或动态信息,并发送到所述备份节点。
5、如权利要求4所述的方法,其特征在于,所述连接状态信息获取函数包含静态信息选项和动态信息选项;
所述连接状态信息获取函数通过所述静态信息选项获取内核中该连接的静态信息,通过所述动态信息选项获取内核中该连接的动态信息。
6、如权利要求1所述的方法,其特征在于,所述备份节点获知所述第一节点失效后恢复与所述第二节点的网络连接;
所述备份节点获知所述第一节点失效,包括:所述备份节点检测到所述第一节点失效;或
所述备份节点收到所述第一节点发送的连接接管通知。
7、如权利要求6所述的方法,其特征在于,所述备份节点检测到所述第一节点失效,进一步包括:
所述备份节点定时向所述第一节点发送脉冲信号,若未在指定时间内收到所述第一节点返回的响应时,认为所述第一节点失效;或
位于所述第一节点上的中间件检测到所述第一节点失效后,关闭该节点的网络连接的通信接口,并通过所述备份节点上的中间件通知所述备份节点所述第一节点失效。
8、如权利要求7所述的方法,其特征在于,当所述备份节点上的中间件检测到所述第一节点上的中间件失效时,该备份节点上的中间件将通过热中间件关闭所述第一节点上的网络连接的通信接口,并通知所述备份节点所述第一节点失效。
9、如权利要求1所述的方法,其特征在于,所述备份节点利用存储的所述连接状态信息,恢复与所述第二节点的网络连接的过程包括:
所述备份节点创建连接套接字;
所述备份节点获取存储的所述连接状态信息,并用该信息设置该连接套接字的状态。
10、如权利要求9所述的方法,其特征在于,所述备份节点通过调用设定的连接状态信息设置函数设置所述连接套接字的状态。
11、如权利要求10所述的方法,其特征在于,所述连接状态信息设置函数包含状态信息设置选项,所述连接状态信息设置函数通过该设置选项设置所述连接套接字的静态和动态连接状态。
12、如权利要求1所述的方法,其特征在于,所述备份节点通过恢复后的网络连接向所述第二节点发送数据前,将数据包的时间戳修改为与所述第一节点的时间戳一致。
13、如权利要求1所述的方法,其特征在于,所述第一节点通过浮动IP地址与所述第二节点建立IP地址连接;
所述第一节点失效后,所述备份节点使用该浮动IP地址与所述第二节点建立IP地址连接进行交互。
14、如权利要求13所述的方法,其特征在于,所述第一节点失效后,其上的虚拟网络接口被关闭;
所述备份节点开启本地的虚拟网络接口,并用所述第一节点的浮动IP地址设置该虚拟网络接口的地址。
15、如权利要求1所述的方法,其特征在于,所述连接状态信息为TCP连接状态信息;
所述备份节点恢复与所述第二节点的TCP连接。
CN2006101038938A 2006-08-08 2006-08-08 一种网络连接的接管方法 Expired - Fee Related CN1921369B (zh)

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 true CN1921369A (zh) 2007-02-28
CN1921369B 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 (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010148951A1 (zh) * 2009-11-30 2010-12-29 中兴通讯股份有限公司 一种实现网络节点数据自动备份和恢复的系统及方法
WO2011103763A1 (zh) * 2010-02-24 2011-09-01 华为技术有限公司 数据容灾的方法、装置及系统
CN102255716A (zh) * 2010-05-20 2011-11-23 中兴通讯股份有限公司 一种对协议状态的设备间备份的方法及系统
CN102571568A (zh) * 2011-12-27 2012-07-11 北京奇虎科技有限公司 任务处理方法及装置
CN103133868A (zh) * 2013-02-25 2013-06-05 西安理工大学 一种提高供水管网可靠性的方法
CN103391217A (zh) * 2013-07-24 2013-11-13 深信服网络科技(深圳)有限公司 实现异构集群设备同步的方法和异构集群系统
CN104714783A (zh) * 2011-12-27 2015-06-17 北京奇虎科技有限公司 任务处理方法及装置
CN104717300A (zh) * 2011-12-27 2015-06-17 北京奇虎科技有限公司 任务处理方法及装置
CN104782081A (zh) * 2013-01-27 2015-07-15 惠普发展公司,有限责任合伙企业 套接字状态转移
CN105790985A (zh) * 2014-12-23 2016-07-20 中兴通讯股份有限公司 数据倒换的方法、第一设备、第二设备及设备
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 广东欧珀移动通信有限公司 一种数据备份方法、装置和终端
CN109743384A (zh) * 2018-12-29 2019-05-10 杭州迪普科技股份有限公司 一种测试会话同步速率的方法和装置
CN110011767A (zh) * 2019-04-17 2019-07-12 北京百度网讯科技有限公司 用于tcp连接备份的方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106162637B (zh) * 2015-04-10 2019-10-25 成都鼎桥通信技术有限公司 Lte宽带集群多节点镜像组网的实现方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1175353C (zh) * 2001-01-19 2004-11-10 华为技术有限公司 一种双机备份的实现方法
CN1203427C (zh) * 2002-09-24 2005-05-25 武汉拓锐计算机系统有限责任公司 一种具有tcp连接容错功能的负载平衡调度方法
CN1423197A (zh) * 2002-12-16 2003-06-11 华中科技大学 基于多tcp连接映像的高可用系统
CN1482773B (zh) * 2003-04-11 2010-04-28 比威网络技术有限公司 可容错的传输控制协议的实现方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010148951A1 (zh) * 2009-11-30 2010-12-29 中兴通讯股份有限公司 一种实现网络节点数据自动备份和恢复的系统及方法
WO2011103763A1 (zh) * 2010-02-24 2011-09-01 华为技术有限公司 数据容灾的方法、装置及系统
US8775859B2 (en) 2010-02-24 2014-07-08 Huawei Technologies Co., Ltd. Method, apparatus and system for data disaster tolerance
CN102255716A (zh) * 2010-05-20 2011-11-23 中兴通讯股份有限公司 一种对协议状态的设备间备份的方法及系统
WO2011143888A1 (zh) * 2010-05-20 2011-11-24 中兴通讯股份有限公司 一种对协议状态的设备间备份的方法及系统
CN102255716B (zh) * 2010-05-20 2015-12-16 中兴通讯股份有限公司 一种对协议状态的设备间备份的方法及系统
CN104717300A (zh) * 2011-12-27 2015-06-17 北京奇虎科技有限公司 任务处理方法及装置
CN102571568A (zh) * 2011-12-27 2012-07-11 北京奇虎科技有限公司 任务处理方法及装置
CN102571568B (zh) * 2011-12-27 2015-04-29 北京奇虎科技有限公司 任务处理方法及装置
CN104714783A (zh) * 2011-12-27 2015-06-17 北京奇虎科技有限公司 任务处理方法及装置
US9906459B2 (en) 2013-01-27 2018-02-27 Hewlett Packard Enterprise Development Lp Socket state transfer
CN104782081B (zh) * 2013-01-27 2019-12-03 慧与发展有限责任合伙企业 用于转移套接字状态的系统以及用于迁移tcp连接的方法
US10320697B2 (en) 2013-01-27 2019-06-11 Hewlett Packard Enterprise Development Lp Socket state transfer
CN104782081A (zh) * 2013-01-27 2015-07-15 惠普发展公司,有限责任合伙企业 套接字状态转移
CN103133868A (zh) * 2013-02-25 2013-06-05 西安理工大学 一种提高供水管网可靠性的方法
CN103391217B (zh) * 2013-07-24 2016-08-10 深信服网络科技(深圳)有限公司 实现异构集群设备同步的方法和异构集群系统
CN103391217A (zh) * 2013-07-24 2013-11-13 深信服网络科技(深圳)有限公司 实现异构集群设备同步的方法和异构集群系统
CN105790985A (zh) * 2014-12-23 2016-07-20 中兴通讯股份有限公司 数据倒换的方法、第一设备、第二设备及设备
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 广东欧珀移动通信有限公司 一种数据备份方法、装置和终端
CN109743384A (zh) * 2018-12-29 2019-05-10 杭州迪普科技股份有限公司 一种测试会话同步速率的方法和装置
CN109743384B (zh) * 2018-12-29 2021-06-29 杭州迪普科技股份有限公司 一种测试会话同步速率的方法和装置
CN110011767A (zh) * 2019-04-17 2019-07-12 北京百度网讯科技有限公司 用于tcp连接备份的方法和装置
CN110011767B (zh) * 2019-04-17 2022-09-27 北京百度网讯科技有限公司 用于tcp连接备份的方法和装置

Also Published As

Publication number Publication date
CN1921369B (zh) 2011-02-09

Similar Documents

Publication Publication Date Title
CN1921369A (zh) 一种网络连接的接管方法
CN1863156A (zh) 通过分组网络提供时钟同步的方法和系统
CN1889464A (zh) 一种实现通信接管的方法及装置
CN1210971C (zh) 无线通信系统中的分组数据业务
CN1249576C (zh) 用于对请求进行集中和负载均衡的系统和方法
CN1946058A (zh) 适用于软交换网络的软交换设备异地容灾系统及其方法
CN1242593C (zh) 源地址选择系统、路由器装置、通信节点和源地址选择方法
CN1855900A (zh) 网关系统
CN1248453C (zh) 网元与电信网管系统的实时数据同步方法
CN101079742A (zh) 容灾归属用户服务器间的数据同步方法及系统
CN101043301A (zh) 一种无线通信系统中的数据重排重组方法及其基站
CN1633647A (zh) 用于管理网络中的数据传送的系统、方法和产品
CN1788475A (zh) 网络攻击缓解方法,网络攻击缓解设备,和网络攻击缓解程序
CN1889741A (zh) 在设备管理中实现预定操作的方法及装置
CN101051883A (zh) 一种主用语音服务器故障恢复后的业务切换方法和系统
CN1859728A (zh) 网络中激活态an之间软切换及会话迁移的实现方法
CN1753354A (zh) 基于arq信息的基站tcp代理确认方法及其系统
CN1852153A (zh) 基于简单网络管理协议的故障/告警管理系统及方法
CN101043385A (zh) 服务健康度检测系统及方法
CN1186949C (zh) 无线电数据通信方法和系统
CN1822596A (zh) 一种客户/服务器架构中的数据处理方法
CN1833456A (zh) 移动通信系统、移动通信系统中的无线电基站替换控制装置及其控制方法
CN1284329C (zh) 一种多层网络故障恢复方法
CN1738244A (zh) 在软交换系统中设置应用服务器的代理服务器的方法
CN1874301A (zh) 快速响应ip分片报文的方法和系统

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

Granted publication date: 20110209

Termination date: 20180808

CF01 Termination of patent right due to non-payment of annual fee