设置于服务器群组前端的连接倒换系统及其倒换方法

文档序号:7951947阅读:263来源:国知局
专利名称:设置于服务器群组前端的连接倒换系统及其倒换方法
技术领域
本发明涉及网络服务器,尤其涉及在用户与服务器之间建立TCP(传输控制协议)连接的系统及方法。
目前,在网络服务器系统中,在服务器群组前端广泛使用负载均衡设备,如4/7层交换机,首先,将网络服务器编组,组中各台服务器提供完全相同的服务,在这组服务器的前端,放置一台4/7层交换机,由4/7层交换机把用户请求轮转发送到服务器上,这不仅解决了各台服务器的负荷分担问题,而且也一定程度地提高了服务的可靠性,当组中的某台服务器发生故障时,这台服务器上的所有TCP连接中断,正在进行的请求得不到服务。但是,可以通过4/7层交换机检测出故障服务器,用户只要重新发起请求,4/7层交换机就不再把新的用户请求转发到这台服务器上,而由组内其它的服务器服务。
随着IP(互联网协议)网上语音业务,如IP电话等业务的迅速发展,使处理IP网上的语音呼叫、完成相当于窄带语音交换机上的呼叫处理功能的呼叫服务器得到大量配置,这样,就需要服务器类设备的可靠性满足公共电话网络要求的标准。如果对服务器类设备仍采用设置4/7层交换机的现有技术方案,那么,当服务器发生故障时,在该服务器上进行的呼叫全部中断,即使4/7层交换机检测到故障发生并不再把新的用户请求转发到这台服务器上,但仍未能避免已发生的大量呼损,所有被中断的呼叫都要由用户重新发起。针对此类情况,现有技术中尚无在服务器发生故障时避免呼损的解决方案。
本发明的目的在于针对现有技术中的不足,提供一种设置于服务器群组前端的连接倒换系统及其倒换方法,使服务器上的连接在发生故障时倒换到与该服务器对应的备份服务器上继续进行,从而提高服务可靠性。
为达到上述目的,本发明采用的技术方案是一种设置于服务器群组前端并在服务器发生故障时将数据包的传递接续至与该服务器对应的备份服务器上的连接倒换系统,该连接倒换系统由用户端口模块、服务器端口模块、主处理模块和服务器检测模块组成并且具有系统IP地址,所述用户端口模块用于对来自用户端的数据包以用户IP地址为源地址、以用户端口号为源端口号,以系统IP地址为目的地址、以系统端口号为目的端口号建立用户端TCP连接,并对数据包规定地址转换动作;所述服务器端口模块用于对服务器建立TCP连接,将来自服务器端的数据包以服务器IP地址为源地址、以服务器端口号为源端口号,以用户IP地址为目的地址、以用户端口号为目的端口号,并对数据包规定地址转换动作;所述主处理模块用于对用户端TCP连接状态、服务器端TCP连接状态、用户端数据包传递顺序号和服务器端数据包传递顺序号进行记录与处理使属于同一个流的数据包在用户端与服务器端之间通过地址转换双向传递;所述服务器检测模块用于检测服务器故障发生并将故障发生信息传送给主处理模块和服务器端口模块。
连接倒换系统中用于在服务器发生故障时将数据包的传递接续至与该服务器对应的备份服务器上的倒换方法,其特征在于当所述服务器检测模块检测到服务器发生故障时,依下述步骤进行
A、服务器端口模块删除关于服务器的记录;B、修改用户端口模块中的地址转换动作,将数据包转往主处理模块;C、主处理模块向用户端发出应答,同时根据记录,使用用户IP地址和用户端口号向备份服务器发出请求,建立TCP连接,并在服务器端口模块中加入该备份服务器的记录;D、根据备份服务器的IP地址和端口号修改用户端口模块和服务器端口模块中的地址转换动作;并根据主处理模块记录的用户端数据包传递顺序号和服务器端数据包传递顺序号对当前数据包进行顺序号转换。
由于本发明采用了以上连接倒换系统及倒换方法,由连接倒换系统截断用户和服务器之间的TCP连接,而分别与用户和服务器建立TCP连接。对用户而言,连接倒换系统冒充服务器;而对服务器而言,连接倒换系统又冒充用户,系统通过地址转换等操作衔接两个TCP连接。当服务器发生故障时,连接倒换系统冒充服务器收发消息,保持和客户的TCP连接,同时,又发起和备份服务器的TCP连接,当连接建立成功后,连接倒换系统通过TCP顺序号转换,再次衔接两个TCP连接,避免了服务器上的连接因故障而中断,将服务倒换到备份服务器上继续进行,提高了服务的可靠性。
下面结合附图和实施例对本发明技术方案作进一步说明。


图1是本发明方案中连接倒换系统的总体结构图;图2是本发明方案中倒换方法的流程图。
参照图1,连接倒换系统由用户端口模块、服务器端口模块、主处理模块和服务器检测模块组成并且具有系统IP地址,该IP地址是向用户公开的虚拟IP地址,用户端口模块与用户相连接,服务器端口模块与服务器相连接。用户端口模块和服务器端口模分别设有用户端流表和服务器端流表,以源地址、源端口号、协议号、目的地址和目的端口号这五个字段标识数据包所属的TCP流,流表中还包含对数据包的处理动作。所述用户端口模块用于对来自用户端的数据包以用户IP地址为源地址、以用户端口号为源端口号,以系统IP地址为目的地址、以系统端口号为目的端口号建立用户端TCP连接,并对数据包规定地址转换动作;所述服务器端口模块用于对服务器建立TCP连接,将来自服务器端的数据包以服务器IP地址为源地址、以服务器端口号为源端口号,以用户IP地址为目的地址、以用户端口号为目的端口号,并对数据包规定地址转换动作;所述主处理模块设有TCP控制块表,用于对用户端TCP连接状态、服务器端TCP连接状态、用户端数据包传递顺序号和服务器端数据包传递顺序号进行记录与处理使属于同一个流的数据包在用户端与服务器端之间通过地址转换双向传递;所述服务器检测模块用于检测服务器故障发生并将故障发生信息传送给主处理模块和服务器端口模块。
下面以一个TCP连接的发起、形成来说明本发明方案中连接倒换系统的工作过程。
首先,用户发出TCP初始包,发起到连接倒换系统的TCP连接。标识这个包的五个字段是用户IP地址、用户端口号、TCP、系统IP地址、系统端口号,此包到达连接倒换系统用户端口。因为此包是流的初始包,用户端口模块通知主处理器模块和服务器端口模块,为这个新TCP流分配TCP控制块,在两个流表中也分配表项。然后,由主处理器模块确定主用服务器的IP地址,在各表项中填入的内容及流表中的地址转换动作、TCP控制块表中的TCP顺序号等,并建立关联。
第2步,由用户端口模块根据已经存在于流表中的地址转换动作,把连接发到主用服务器。
第3步,服务器返回应答包,此包到达连接倒换系统服务器端口。标识这个包的五个字段是服务器IP地址、服务器端口号、TCP、用户IP地址、用户端口号。由服务器端口处理模块在服务器端流表中检索,检索出该TCP流的表项。然后,服务器端口处理模块先更改相应TCP控制块表中的TCP状态、顺序号等表项,再根据服务器端流表的内容进行地址转换操作。
第4步,服务器端口模块根据流表中的动作规定把应答包向用户发送。
第5步,用户端口模块收到用户发来的后续数据包,在用户端流表检索出该TCP流的表项。然后先更改相应TCP控制块表中的TCP状态、顺序号等表项,再根据用户端流表的内容进行地址转换操作。
第6步,用户端口模块根据用户端流表中的动作规定把数据包向服务器发送。
本发明的连接倒换系统可以设置有多个外部接口,用户与用户端口模块、服务器与服务器端口模块通过上述外部接口相连接。所述外部接口可采用以太网接口、DDN(数字数据网)接口、X.25接口(用专用电路连接到公用数据网上的分组式数据终端设备与数据终接设备之间的接口)等。
当服务器检测模块检测到服务器发生故障时,将故障发生信息传送给主处理模块和服务器端口模块。连接倒换系统开始执行倒换,将数据包的传递接续至与该服务器对应的备份服务器上,所述服务器及与之对应的备份服务器可以是遵循同步备份协议的。下面,结合图2详细说明倒换方法的执行步骤。
首先,执行步骤A,服务器端口模块删除关于服务器的记录,如服务器端流表中的服务器IP地址、服务器端口号。再执行步骤B,修改用户端口模块中的地址转换动作,将数据包转往主处理模块,至此,切断了服务器端的TCP连接。然后执行步骤C,主处理模块向用户端发出应答,同时根据记录,使用用户IP地址和用户端口号向备份服务器发出请求,建立TCP连接,并在服务器端口模块中加入该备份服务器的记录,如服务器IP地址、服务器端口号。其中主处理模块向用户端发出应答,可以是通知用户端重发数据包,其实质是冒充TCP服务器作应答,使用户端的连接得以保持;而与此同时,建立与备份服务器的TCP连接,将备份服务器的IP地址、端口号加入服务器端流表。最后执行步骤D,根据备份服务器的IP地址和端口号修改用户端口模块和服务器端口模块中的地址转换动作;并根据主处理模块记录的用户端数据包传递顺序号和服务器端数据包传递顺序号对当前数据包进行顺序号转换。由于备份服务器是中途加入,所以,服务器端传递的第1个数据包实际为用户端传递的第N个数据包,而主处理模块中记录有用户端数据包传递顺序号和服务器端数据包传递顺序号,依照记录进行顺序号转换,保证了对应关系正确,经过上述倒换,使用户端TCP连接与服务器端TCP连接再次衔接。当主用服务器恢复正常,亦可依同等步骤将连接倒换回主用服务器。
本领域技术人员依照本发明技术方案作出的其他变型,亦在本发明保护范围之内。
权利要求
1.一种设置于服务器群组前端并在服务器发生故障时将数据包的传递接续至与该服务器对应的备份服务器上的连接倒换系统,其特征在于所述连接倒换系统由用户端口模块、服务器端口模块、主处理模块和服务器检测模块组成并且具有系统IP地址,所述用户端口模块用于对来自用户端的数据包以用户IP地址为源地址、以用户端口号为源端口号,以系统IP地址为目的地址、以系统端口号为目的端口号建立用户端TCP连接,并对数据包规定地址转换动作;所述服务器端口模块用于对服务器建立TCP连接,将来自服务器端的数据包以服务器IP地址为源地址、以服务器端口号为源端口号,以用户IP地址为目的地址、以用户端口号为目的端口号,并对数据包规定地址转换动作;所述主处理模块用于对用户端TCP连接状态、服务器端TCP连接状态、用户端数据包传递顺序号和服务器端数据包传递顺序号进行记录与处理使属于同一个流的数据包在用户端与服务器端之间通过地址转换双向传递;所述服务器检测模块用于检测服务器故障发生并将故障发生信息传送给主处理模块和服务器端口模块。
2.如权利要求1所述的连接倒换系统,其特征在于该连接倒换系统设置有多个外部接口,用户与用户端口模块、服务器与服务器端口模块通过上述外部接口相连接。
3.如权利要求1所述的连接倒换系统,其特征在于所述服务器及与之对应的备份服务器遵循同步备份协议。
4.一种在如权利要求1所述的连接倒换系统中用于在服务器发生故障时将数据包的传递接续至与该服务器对应的备份服务器上的倒换方法,其特征在于当所述服务器检测模块检测到服务器发生故障时,依下述步骤进行A、服务器端口模块删除关于服务器的记录;B、修改用户端口模块中的地址转换动作,将数据包转往主处理模块;C、主处理模块向用户端发出应答,同时根据记录,使用用户IP地址和用户端口号向备份服务器发出请求,建立TCP连接,并在服务器端口模块中加入该备份服务器的记录;D、根据备份服务器的IP地址和端口号修改用户端口模块和服务器端口模块中的地址转换动作;并根据主处理模块记录的用户端数据包传递顺序号和服务器端数据包传递顺序号对当前数据包进行顺序号转换。
5.如权利要求4所述的倒换方法,其特征在于所述主处理模块向用户端发出应答为通知用户端重发数据包。
全文摘要
本发明公开了一种设置于服务器群组前端的TCP连接倒换系统,以及在服务器发生故障时将数据包的传递接续至与该服务器对应的备份服务器上的倒换方法,连接倒换系统截断用户和服务器之间的TCP连接,而分别与用户和服务器建立TCP连接,服务器发生故障时,连接倒换系统冒充服务器收发消息,同时,又发起和备份服务器的TCP连接,并使其再次与用户端衔接。
文档编号H04L12/28GK1391378SQ0112931
公开日2003年1月15日 申请日期2001年6月11日 优先权日2001年6月11日
发明者郝江涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1