CN110247806A - 会话故障处理方法、装置、电子设备 - Google Patents
会话故障处理方法、装置、电子设备 Download PDFInfo
- Publication number
- CN110247806A CN110247806A CN201910553945.9A CN201910553945A CN110247806A CN 110247806 A CN110247806 A CN 110247806A CN 201910553945 A CN201910553945 A CN 201910553945A CN 110247806 A CN110247806 A CN 110247806A
- Authority
- CN
- China
- Prior art keywords
- tcp connection
- client
- mentioned
- server
- failure
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- 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]
Abstract
本申请提供一种会话故障处理方法、装置、电子设备及机器可读存储介质。在本申请中,创建用于记录所述客户端与所述服务端之间TCP连接的会话表;其中,所述会话表至少包括所述TCP连接对应的TCP连接状态;基于预设的健康检查机制,监测所述服务端中是否存在故障设备;若存在,则以所述故障设备作为查找索引,从所述会话表中找到与所述故障设备匹配的故障会话;基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理,使得负载均衡设备能够快速断开已故障的TCP连接;减少了客户端的等待时间;以及负载均衡设备及服务端的资源消耗,从而提高了提高了负载均衡系统效率,让用户对故障无感知。
Description
技术领域
本申请涉及通信技术领域,尤其涉及会话故障处理方法、装置、电子设备及机器可读存储介质。
背景技术
负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡设备将特定的业务请求分担给与其相连通信的多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。
例如,在实现时,可以由多台服务器以对称的方式组成一个服务器集合,该服务器集合中的每台服务器都具有等价的地位,都可以单独对外提供业务服务而无须其他服务器的辅助;通过负载均衡技术,将目标为该服务器集合负责的业务请求均匀分配到该服务器集合中的一台服务器上,从而由接收到业务请求的服务器独立地回应客户端的请求。基于负载均衡技术能够平均分配客户请求到服务器列阵,并提供快速获取重要数据,解决大量并发访问服务问题。
发明内容
本申请提供一种会话故障处理方法,所述方法应用于负载均衡系统中的负载均衡设备,所述负载均衡系统还包括客户端、服务端;其中,所述客户端经所述负载均衡设备与所述服务端相连通信,所述方法包括:
创建用于记录所述客户端与所述服务端之间TCP连接的会话表;其中,所述会话表至少包括所述TCP连接对应的TCP连接状态;
基于预设的健康检查机制,监测所述服务端中是否存在故障设备;若存在,则以所述故障设备作为查找索引,从所述会话表中找到与所述故障设备匹配的故障会话;
基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理。
可选的,所述创建用于记录所述客户端与所述服务端之间TCP连接的会话表,还包括:
记录所述客户端与所述服务端之间TCP连接对应通信过程中的第一TCP序列号。
可选的,所述状态类型包括SYN-SENT,所述基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理,包括:
检查所述状态类型是否为SYN-SENT,若是,则删除所述故障会话。
可选的,所述状态类型还包括FIN-WAIT、CLOSE-WAIT,所述基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理,包括:
检查所述状态类型是否为FIN-WAIT或CLOSE-WAIT;
若是,则向所述客户端发送对应的FIN报文或ACK报文;其中,所述FIN报文或ACK报文中的第二TCP序列号基于所述第一TCP序列号生成。
可选的,还包括:
检查所述状态类型是否为除SYN-SENT、FIN-WAIT及CLOSE-WAIT以外的其它状态;
若是,则向所述客户端及所述故障设备发送对应的RST报文。
本申请还提供一种会话故障处理装置,所述装置应用于负载均衡系统中的负载均衡设备,所述负载均衡系统还包括客户端、服务端;其中,所述客户端经所述负载均衡设备与所述服务端相连通信,所述装置包括:
创建模块,创建用于记录所述客户端与所述服务端之间TCP连接的会话表;其中,所述会话表至少包括所述TCP连接对应的TCP连接状态;
监测模块,基于预设的健康检查机制,监测所述服务端中是否存在故障设备;若存在,则以所述故障设备作为查找索引,从所述会话表中找到与所述故障设备匹配的故障会话;
处理模块,基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理。
可选的,所述创建模块进一步:
记录所述客户端与所述服务端之间TCP连接对应通信过程中的第一TCP序列号。
可选的,所述状态类型包括SYN-SENT,所述处理模块进一步:
检查所述状态类型是否为SYN-SENT,若是,则删除所述故障会话。
可选的,所述状态类型还包括FIN-WAIT、CLOSE-WAIT,所述处理模块进一步:
检查所述状态类型是否为FIN-WAIT或CLOSE-WAIT;
若是,则向所述客户端发送对应的FIN报文或ACK报文;其中,所述FIN报文或ACK报文中的第二TCP序列号基于所述第一TCP序列号生成。
可选的,所述处理模块进一步:
检查所述状态类型是否为除SYN-SENT、FIN-WAIT及CLOSE-WAIT以外的其它状态;
若是,则向所述客户端及所述故障设备发送对应的RST报文。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,基于对TCP连接会话监测,获取存在故障的TCP连接状态的状态类型,进一步根据不同状态类型执行对应故障处理;使得负载均衡设备能够快速断开已故障的TCP连接;减少了客户端的等待时间;以及负载均衡设备及服务端的资源消耗,从而提高了提高了负载均衡系统效率,让用户对故障无感知。
附图说明
图1是一示例性实施例提供的一种负载均衡系统的组网图;
图2是一示例性实施例提供的一种会话故障处理方法的流程图;
图3是一示例性实施例提供的一种不同TCP连接状态对应处理流程的示意图;
图4是一示例性实施例提供的一种会话故障处理装置的框图;
图5是一示例性实施例提供的一种电子设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的会话故障处理的相关技术,进行简要说明。
请参见图1,图1是本申请一实施例提供的一种负载均衡系统的组网图。
如图1所示的负载均衡系统包括:负载均衡设备(SLB)、客户端(C1、C2、C3)、服务端(S1、S2、S3);
其中,客户端经如图1所示的网络,通过负载均衡设备与服务端相连通信。
在实现时,如图1所示的客户端到服务端的业务报文,可以由负载均衡设备通过负载均衡转发与该业务报文对应的服务端。
例如:SLB可以将来自C1客户端的业务报文,通过负载均衡转发给服务端S1;SLB可以将来自C2客户端的业务报文,通过负载均衡转发给服务端S2;SLB可以将来自C3客户端的业务报文,通过负载均衡转发给服务端S3。
在以上示出的组网架构的基础上,本申请旨在提出一种,基于故障会话对应的TCP连接状态的状态类型,对该故障会话执行对应故障处理的技术方案。
在实现时,负载均衡系统包括负载均衡设备、客户端、服务端;其中,所述客户端经所述负载均衡设备与所述服务端相连通信。
进一步地,负载均衡设备创建用于记录所述客户端与所述服务端之间TCP连接的会话表;其中,所述会话表至少包括所述TCP连接对应的TCP连接状态;基于预设的健康检查机制,监测所述服务端中是否存在故障设备;若存在,则以所述故障设备作为查找索引,从所述会话表中找到与所述故障设备匹配的故障会话;基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理。
在以上方案中,基于对TCP连接会话监测,获取存在故障的TCP连接状态的状态类型,进一步根据不同状态类型执行对应故障处理;使得负载均衡设备能够快速断开已故障的TCP连接;减少了客户端的等待时间;以及负载均衡设备及服务端的资源消耗,从而提高了提高了负载均衡系统效率,让用户对故障无感知。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图2,图2是本申请一实施例提供的一种会话故障处理方法的流程图,所述方法应用于负载均衡系统中的负载均衡设备,所述负载均衡系统还包括客户端、服务端;其中,所述客户端经所述负载均衡设备与所述服务端相连通信,上述方法执行以下步骤:
步骤202、创建用于记录所述客户端与所述服务端之间TCP连接的会话表;其中,所述会话表至少包括所述TCP连接对应的TCP连接状态。
步骤204、基于预设的健康检查机制,监测所述服务端中是否存在故障设备;若存在,则以所述故障设备作为查找索引,从所述会话表中找到与所述故障设备匹配的故障会话。
步骤206、基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理。
在本说明书中,上述负载均衡设备,可以包括集成有具有支持四层负载均衡功能的任何设备。例如,在实际应用中,上述负载均衡设备具体可以包括具有支持四层报文(也即基于包转发的TCP会话的报文)负载均衡功能的交换机、路由器、防火墙、服务器,以及负载均衡器等。
在本说明书中,上述客户端,包括向上述服务端发起业务请求的一台或多台设备。
例如,上述客户端可以包括如图1所示的C1、C2、C3中的其中一个或多个组合。
在本说明书中,上述服务端,包括接收上述客户端发起业务请求并执行对应业务处理的一台或多台设备。
例如,上述服务端可以包括如图1所示的S1、S2、S3中的其中一个或多个组合。
在本说明书中,上述客户端与上述服务端可以基于C/S(Client/Server)架构执行业务请求及其响应。当然,上述客户端与上述服务端也可以是基于B/S架构(Browser/Server,浏览器/服务器)执行业务请求及其响应。
在本说明书中,上述负载均衡系统,是指包括上述负载均衡设备、上述客户端、上述服务端的整个网络系统;其中,上述客户端经上述负载均衡设备与上述服务端相连通信。
例如:请参见图1所示,上述负载均衡系统包括SLB(上述负载均衡设备)、上述客户端(C1、C2、C3)、上述服务端(S1、S2、S3);其中,上述客户端经上述负载均衡设备与上述服务端相连通信。
以下通过具体的实施例,并结合“会话表创建”、“会话故障处理”,对本申请的涉及的技术方案进行详细描述:
1)会话表创建
在本说明书中,上述客户端向上述服务端发起业务请求;该业务请求经上述负载均衡设备经预设的负载均衡算法,将该业务请求转发至上述服务端,以由上述服务端针对该业务请求执行对应业务处理。
在实现时,上述负载均衡设备对上述客户端提供的虚拟服务地址。上述客户端可以通过访问该虚拟服务地址发送基于TCP的业务请求,上述负载均衡设备通过该虚拟服务地址,可以将该业务请求分发到上述服务端。
例如,请参见图1,如图1所示的SLB的虚拟服务地址为100.30.5.1,负载均衡设备SLB对上述客户端(C1、C2、C3)提供的虚拟服务地址100.30.5.1。上述客户端可以通过访问该虚拟服务地址发送业务请求,负载均衡设备SLB通过该虚拟服务地址,可以将该业务请求分发到上述服务端。
需要说明的是,上述客户端到上述服务端的业务请求可以有多种对应组合,比如:C1-S1、C2-S2、C3-S3;再比如:C1-S2、C2-S3、C3-S1;上述客户端与上述服务端的业务请求对应关系,在本说明中不作具体限定。
在本说明书,上述服务端在收到上述客户端的业务请求后,进一步执行该业务请求对应业务处理,并将该业务处理的响应返回上述客户端。
需要说明的是,由于TCP协议是面向连接的网络协议,其可以提供可靠的服务,所以以上的上述客户端与上述服务端之间的业务交互过程中业务请求及其响应的报文通常承载在TCP连接之上。
在本说明书中,上述TCP连接状态,包括TCP协议中定义的TCP有限状态机中的各种状态。
例如,在实现时,上述TCP连接状态的状态类型可以包括ESTABLISHED、SYN-SENT、FIN-WAIT、CLOSE-WAIT、LISTEN等。
需要说明的是,上述TCP连接状态除以上示例状态外,还包括其它状态,具体请参见TCP协议说明,这里不再赘述。
在本说明书中,上述会话表,是指保存于上述负载均衡设备上的上述客户端与上述服务端进行业务交互过程中的若干TCP连接的会话表;
其中,上述会话表至少包括与上述TCP连接对应的TCP连接状态;
在实现时,一个TCP连接使用对应的IP四元组表示,每个IP四元组包括源IP、目的IP、源端口、目的端口。
例如,基于如图1所示的组网的上述会话表,请参见表1所示例:
表1
如表1所示,上述负载均衡设备保存有上述客户端与上述服务端之间6个TCP连接的会话表;其中,每个TCP连接都对应由IP四元组指示,每个TCP连接对应的上述TCP连接状态中的一种。
在本说明书中,在上述客户端与上述服务端之间的业务交互过程中,上述负载均衡设备创建用于记录上述客户端与上述服务端之间TCP连接的上述会话表。
例如,如图1所示,在C1、C2、C3与S1、S2、S3之间的业务交互过程中,负载均衡设备SLB创建用于记录C1、C2、C3与S1、S2、S3之间TCP连接的如表1所示的上述会话表。
在本说明书中,上述第一TCP序列号,是指TCP连接中的上述客户端发送至上述服务端的、最新的发送序列号(对应TCP报文中的Seq字段)。
例如,请参见表1中编号为1的TCP连接,对应是如图1所示的客户端C1与如图1所示的服务端S1之间建立的TCP连接,C1与S1在该TCP连接建立后,C1向S1发送业务报文;其中,该业务报文的TCP序列号,也会按照TCP协议及数据变化增加,比如:TCP序列号初始是100,经过一段时间的数据发送后,TCP序列号变为10000;上述第一TCP序列号则由100更新为10000。
在本说明书中,在上述会话表创建后,上述负载均衡设备需要记录维护上述会话表中对应TCP连接的上述第一TCP序列号。
在示出的一种实施方式中,上述负载均衡设备记录上述客户端与上述服务端之间TCP连接对应通信过程中的第一TCP序列号。
接着以上示例继续举例,负载均衡设备SLB记录C1与S1之间TCP连接对应通信过程中的最新TCP序列号10000。
需要说明的是,上述负载均衡设备需要针对上述会话表中的所有TCP连接都记录其对应的上述第一TCP序列号。
2)会话故障处理
在本说明书中,上述健康检查机制,是指上述负载均衡设备通过健康检查来判断上述服务端中的设备的业务可用性。
在实现时,当上述负载均衡设备针对上述服务端开启健康检查功能后,当上述服务端中的一台设备健康检查出现异常时,负载均衡设备会自动将到该设备的新请求分发到其它健康检查正常的设备上;而当该设备恢复正常时,上述负载均衡设备会将其自动恢复到上述服务端中。
例如,上述负载均衡设备可以基于包括ICMP、TCP、HTTP等协议对上述服务端执行健康检查,找到上述服务端中的故障设备。
在本说明书中,上述故障设备,是指上述服务端中的存在故障的设备。
例如,上述故障设备可以是上述服务端中的异常断电或重启的设备,也可以是上述服务端中的网络带宽不足或性能不足的设备。
在本说明书中,上述负载均衡设备基于预设的健康检查机制,监测上述服务端中是否存在故障设备;若存在,则以上述故障设备作为查找索引,从上述会话表中找到与上述故障设备匹配的故障会话。
在实现时,若存在故障设备,上述负载均衡设备以该故障设备的IP地址作为查找索引,从上述会话表中找到与上述故障设备匹配的会话,该会话也被简称为“故障会话”。
接着以上示例继续举例,负载均衡设备SLB基于预设的健康检查机制,监测如图1所示的S1、S2、S3中是否存在故障设备;假定S3故障,则负载均衡设备以S3的IP地址100.30.5.8作为查找索引,从如表1所示的上述会话表中找到与S3(上述故障设备)IP地址100.30.5.8匹配的故障会话,也即,上述故障会话包括如表1所示编号为3、4、5、6的4个TCP连接。
在本说明书中,上述状态类型,是指上述故障会话对应TCP连接的上述TCP连接状态中的可能状态;
例如,上述状态类型可以包括SYN-SENT、FIN-WAIT、CLOSE-WAIT、等。
需要说明的是,上述FIN-WAIT包括TCP有限状态机中的FIN-WAIT1、FIN-WAIT2。
在本说明书中,在找到上述故障会话后,上述负载均衡设备基于上述故障会话对应的TCP连接状态的上述状态类型,对上述故障会话执行对应故障处理。
请参见图3,图3是本申请一实施例提供的一种不同TCP连接状态对应处理流程的示意图。上述负载均衡设备在接收上述客户端到上述服务端的业务流量过程中,根据如图3所示的处理流程,针对承载该业务流量的不同TCP连接状态对应不同情况进行对应不同处理。为了方便理解,针对如图3所示的不同情况,这里先做下总体介绍。
如图3所示,上述负载均衡设备在接收上述客户端到上述服务端的业务流量过程中(对应图3所示的S1步骤),基于预设的上述健康检查机制,监测上述服务端中是否存在故障设备(对应图3所示的S2步骤);若不存在故障设备(对应图3所示的N),则上述负载均衡设备针对该业务流量执行对应的正常负载均衡(对应图3所示的S4步骤),若存在故障设备(对应图3所示的Y),则上述负载均衡设备进一步找到故障设备相关的所有TCP连接(对应图3所示的S3步骤),执行故障处理。在上述负载均衡设备将与该故障设备对应TCP连接执行对应故障处理时,主要包括如下3种可能情况:
情况1、针对状态类型为SYN-SENT的TCP连接,删除其对应会话(对应图3所示的S5步骤)。
情况2、针对状态类型为FIN-WAIT或CLOSE-WAIT状态的TCP连接,接管并正常结束其对应会话(对应图3所示的S6步骤)
情况3、针对其它状态类型(不属于情况1、2的其它异常状态)的TCP连接,接管并强制结束其对应会话(对应图3所示的S7步骤)。
在示出的一种实施方式中,上述负载均衡设备检查上述状态类型是否为SYN-SENT,若是,则删除上述故障会话。
接着以上示例继续举例,上述故障设备为S3,上述故障会话包括如表1所示编号为3、4、5、6的4个TCP连接;上述负载均衡设备检查该4个TCP连接对应的TCP连接状态的状态类型;其中,表1所示编号为3的TCP连接对应的TCP连接状态的状态类型为SYN-SENT,则上述负载均衡设备从上述会话表中删除编号为3对应的会话。
需要说明的是,现有实现中,当TCP连接状态为SYN-SENT时,表示上述客户端已发送了SYN报文,但是上述故障设备没有回应SYN-ACK报文,由于上述客户端一直未收到已故障)回复的SYN-ACK报文,会在一段时间后不断重传SYN报文,由此导致上述客户端对应业务中断,直到等待协议超时后(通常默认为128秒)才能恢复业务;相比现有实现,由上述负载均衡设备针对上述故障设备对应的状态类型为SYN-SENT的TCP连接及时删除,可以避免以上现有实现的业务恢复慢的问题。
在示出的另一种实施方式中,上述负载均衡设备检查上述状态类型是否为FIN-WAIT或CLOSE-WAIT。
接着以上示例继续举例,上述故障设备为S3,上述故障会话包括如表1所示编号为3、4、5、6的4个TCP连接;上述负载均衡设备检查该4个TCP连接对应的TCP连接状态的状态类型;其中,表1所示编号为4、5的TCP连接对应的TCP连接状态的状态类型分别为FIN-WAIT、CLOSE-WAIT。
在本说明书中,上述第二TCP序列号,是指TCP连接中的与上述第一TCP序列号对应的确认序列号(对应TCP报文中的ACK字段)。
接着以上示例继续举例,上述第一TCP序列号为10000,则上述第二TCP序列号为11000。
需要说明的是,上述第二TCP序列号基于上述第一TCP序列号生成,具体上述第二TCP序列号与上述第二TCP序列号的变化关系与发送的数据量相关。
在本说明书中,进一步地,若上述状态类型是FIN-WAIT或CLOSE-WAIT,上述负载均衡设备则向上述客户端发送对应的FIN报文或ACK报文;其中,上述FIN报文或上述ACK报文中的TCP序列号为上述第二TCP序列号。
接着以上示例继续举例,编号为4的TCP连接对应的上述第一TCP序列号假定为20000,上述第二TCP序列号为21000,表1所示编号为4的TCP连接对应的TCP连接状态的状态类型为FIN-WAIT,则负载均衡设备SLB向C1(10.30.5.6)发送对应的FIN报文,该FIN报文的TCP序列号为21000(上述第二TCP序列号)。编号为5的TCP连接对应的上述第一TCP序列号假定为30000,上述第二TCP序列号为31000,表1所示编号为5的TCP连接对应的TCP连接状态的状态类型为CLOSE-WAIT,则负载均衡设备SLB向C2(10.30.5.7)发送对应的ACK报文,该ACK报文的TCP序列号为31000(上述第二TCP序列号),FIN报文及ACK报文的报文格式请参见TCP协议说明。
需要说明的是,当TCP连接状态为FIN-WAIT或CLOSE-WAIT时,表示上述客户端未接收到应该由上述故障设备发送的FIN报文,或未收到应该由上述故障设备在TCP四次挥手中发送的最后一个ACK报文,而相比现有实现,该FIN报文或该ACK报文由上述负载均衡设备代替上述故障设备构造并代替其发出。
在示出的另一种实施方式中,进一步地,上述负载均衡设备检查上述状态类型是否为除SYN-SENT、FIN-WAIT及CLOSE-WAIT以外的其它状态,若是,则向上述客户端及上述故障设备发送对应的RST报文。
在实现时,RST报文的上述第二TCP序列号基于上述第一TCP序列号生成,RST报文格式请参见TCP协议说明。
接着以上示例继续举例,编号为6的TCP连接对应的上述第一TCP序列号假定为50000,上述第二TCP序列号为51000,表1所示编号为6的TCP连接对应的TCP连接状态的状态类型为LISTEN,则负载均衡设备SLB向C3(10.30.5.8)发送对应的RST报文,该RST报文的TCP序列号为31000(上述第二TCP序列号)。
需要说明的是,当上述负载均衡设备向上述客户端及上述故障设备发送RST报文断开此连接,使上述客户端能够马上断开与上述故障设备对应TCP连接;相比现有实现,一方面,上述客户端断开连接后能够重新发起新的连接,另一方面,上述故障设备断开后能够释放其自身TCP连接的系统资源(比如:CPU、内存等)。
在以上技术方案中,基于对TCP连接会话监测,获取存在故障的TCP连接状态的状态类型,进一步根据不同状态类型执行对应故障处理;使得负载均衡设备能够快速断开已故障的TCP连接;减少了客户端的等待时间;以及负载均衡设备及服务端的资源消耗,从而提高了提高了负载均衡系统效率,让用户对故障无感知。
图4是本申请一示例性实施例提供的一种会话故障处理装置的框图。与上述方法实施例相对应,本申请还提供了一种会话故障处理装置的实施例,所述装置应用于负载均衡系统中的负载均衡设备,所述负载均衡系统还包括客户端、服务端;其中,所述客户端经所述负载均衡设备与所述服务端相连通信,请参考图4所示例的一种会话故障处理装置40,所述装置包括:
创建模块401,创建用于记录所述客户端与所述服务端之间TCP连接的会话表;其中,所述会话表至少包括所述TCP连接对应的TCP连接状态;
监测模块402,基于预设的健康检查机制,监测所述服务端中是否存在故障设备;若存在,则以所述故障设备作为查找索引,从所述会话表中找到与所述故障设备匹配的故障会话;
处理模块403,基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理。
在本实施例中,所述创建模块401进一步:
记录所述客户端与所述服务端之间TCP连接对应通信过程中的第一TCP序列号。
在本实施例中,所述状态类型包括SYN-SENT,所述处理模块403进一步:
检查所述状态类型是否为SYN-SENT,若是,则删除所述故障会话。
在本实施例中,所述状态类型还包括FIN-WAIT、CLOSE-WAIT,所述处理模块403进一步:
检查所述状态类型是否为FIN-WAIT或CLOSE-WAIT;
若是,则向所述客户端发送对应的FIN报文或ACK报文;其中,所述FIN报文或ACK报文中的第二TCP序列号基于所述第一TCP序列号生成。
在本实施例中,所述处理模块403进一步:
检查所述状态类型是否为除SYN-SENT、FIN-WAIT及CLOSE-WAIT以外的其它状态;
若是,则向所述客户端及所述故障设备发送对应的RST报文。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本申请的会话故障处理装置的实施例可以应用在图5所示的电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将机器可读存储介质中对应的计算机程序指令读取后运行形成的机器可执行指令。从硬件层面而言,如图5所示,为本申请的会话故障处理装置所在电子设备的一种硬件结构图,除了图5所示的处理器、通信接口、总线以及机器可读存储介质之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
对应地,本申请实施例还提供了图4所示装置的一种电子设备的硬件结构,请参见图5,图5为本申请实施例提供的一种电子设备的硬件结构示意图。该设备包含:通信接口501、处理器502、机器可读存储介质503和总线504;其中,通信接口501、处理器502、机器可读存储介质503通过总线504完成相互间的通信。其中,通信接口501,用于进行网络通信。处理器502可以是一个中央处理器(CPU),处理器502可以执行机器可读存储介质503中存储的机器可读指令,以实现以上描述的方法。
本文中提到的机器可读存储介质503可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质503可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
至此,完成图5所示的硬件结构描述。
此外,本申请实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图5中的机器可读机器可读存储介质503,所述机器可执行指令可由会话故障处理装置中的处理器502执行以实现以上描述的数据处理方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种会话故障处理方法,其特征在于,所述方法应用于负载均衡系统中的负载均衡设备,所述负载均衡系统还包括客户端、服务端;其中,所述客户端经所述负载均衡设备与所述服务端相连通信,所述方法包括:
创建用于记录所述客户端与所述服务端之间TCP连接的会话表;其中,所述会话表至少包括所述TCP连接对应的TCP连接状态;
基于预设的健康检查机制,监测所述服务端中是否存在故障设备;若存在,则以所述故障设备作为查找索引,从所述会话表中找到与所述故障设备匹配的故障会话;
基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理。
2.根据权利要求1所述的方法,其特征在于,所述创建用于记录所述客户端与所述服务端之间TCP连接的会话表,还包括:
记录所述客户端与所述服务端之间TCP连接对应通信过程中的第一TCP序列号。
3.根据权利要求1所述的方法,其特征在于,所述状态类型包括SYN-SENT,所述基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理,包括:
检查所述状态类型是否为SYN-SENT,若是,则删除所述故障会话。
4.根据权利要求2所述的方法,其特征在于,所述状态类型还包括FIN-WAIT、CLOSE-WAIT,所述基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理,包括:
检查所述状态类型是否为FIN-WAIT或CLOSE-WAIT;
若是,则向所述客户端发送对应的FIN报文或ACK报文;其中,所述FIN报文或ACK报文中的第二TCP序列号基于所述第一TCP序列号生成。
5.根据权利要求4所述的方法,其特征在于,还包括:
检查所述状态类型是否为除SYN-SENT、FIN-WAIT及CLOSE-WAIT以外的其它状态;
若是,则向所述客户端及所述故障设备发送对应的RST报文。
6.一种会话故障处理装置,其特征在于,所述装置应用于负载均衡系统中的负载均衡设备,所述负载均衡系统还包括客户端、服务端;其中,所述客户端经所述负载均衡设备与所述服务端相连通信,所述装置包括:
创建模块,创建用于记录所述客户端与所述服务端之间TCP连接的会话表;其中,所述会话表至少包括所述TCP连接对应的TCP连接状态;
监测模块,基于预设的健康检查机制,监测所述服务端中是否存在故障设备;若存在,则以所述故障设备作为查找索引,从所述会话表中找到与所述故障设备匹配的故障会话;
处理模块,基于所述故障会话对应的TCP连接状态的状态类型,对所述故障会话执行对应故障处理。
7.根据权利要求6所述的装置,其特征在于,所述创建模块进一步:
记录所述客户端与所述服务端之间TCP连接对应通信过程中的第一TCP序列号。
8.根据权利要求6所述的装置,其特征在于,所述状态类型包括SYN-SENT,所述处理模块进一步:
检查所述状态类型是否为SYN-SENT,若是,则删除所述故障会话。
9.根据权利要求7所述的装置,其特征在于,所述状态类型还包括FIN-WAIT、CLOSE-WAIT,所述处理模块进一步:
检查所述状态类型是否为FIN-WAIT或CLOSE-WAIT;
若是,则向所述客户端发送对应的FIN报文或ACK报文;其中,所述FIN报文或ACK报文中的第二TCP序列号基于所述第一TCP序列号生成。
10.根据权利要求9所述的装置,其特征在于,所述处理模块进一步:
检查所述状态类型是否为除SYN-SENT、FIN-WAIT及CLOSE-WAIT以外的其它状态;
若是,则向所述客户端及所述故障设备发送对应的RST报文。
11.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至5任一项所述的方法。
12.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910553945.9A CN110247806A (zh) | 2019-06-25 | 2019-06-25 | 会话故障处理方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910553945.9A CN110247806A (zh) | 2019-06-25 | 2019-06-25 | 会话故障处理方法、装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110247806A true CN110247806A (zh) | 2019-09-17 |
Family
ID=67889263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910553945.9A Pending CN110247806A (zh) | 2019-06-25 | 2019-06-25 | 会话故障处理方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110247806A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111211926A (zh) * | 2019-12-31 | 2020-05-29 | 杭州迪普科技股份有限公司 | 一种通信故障的监测方法、装置、存储介质及设备 |
CN112738238A (zh) * | 2020-12-29 | 2021-04-30 | 北京天融信网络安全技术有限公司 | 一种负载均衡中健康检查的方法、装置以及系统 |
CN112929225A (zh) * | 2021-03-30 | 2021-06-08 | 平安科技(深圳)有限公司 | 会话异常处理方法、装置、计算机设备和存储介质 |
CN113992731A (zh) * | 2021-11-02 | 2022-01-28 | 四川安迪科技实业有限公司 | 基于stomp协议的异常控制方法及装置 |
CN114285771A (zh) * | 2021-12-30 | 2022-04-05 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
CN114285727A (zh) * | 2022-01-04 | 2022-04-05 | 中国建设银行股份有限公司 | 网络传输异常的处理方法、装置、电子设备及存储介质 |
CN115865734A (zh) * | 2022-12-02 | 2023-03-28 | 上海浦东发展银行股份有限公司 | 一种故障检测方法、数据生成方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1365545A1 (en) * | 2002-05-24 | 2003-11-26 | Siemens Aktiengesellschaft | Method and system for modelling elastic network traffic |
CN107181639A (zh) * | 2017-03-31 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种通信状态的监控方法及装置 |
CN108667730A (zh) * | 2018-04-17 | 2018-10-16 | 东软集团股份有限公司 | 基于负载均衡的报文转发方法、装置、存储介质和设备 |
CN108769257A (zh) * | 2018-06-28 | 2018-11-06 | 新华三信息安全技术有限公司 | 一种服务器切换方法及装置 |
-
2019
- 2019-06-25 CN CN201910553945.9A patent/CN110247806A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1365545A1 (en) * | 2002-05-24 | 2003-11-26 | Siemens Aktiengesellschaft | Method and system for modelling elastic network traffic |
CN107181639A (zh) * | 2017-03-31 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种通信状态的监控方法及装置 |
CN108667730A (zh) * | 2018-04-17 | 2018-10-16 | 东软集团股份有限公司 | 基于负载均衡的报文转发方法、装置、存储介质和设备 |
CN108769257A (zh) * | 2018-06-28 | 2018-11-06 | 新华三信息安全技术有限公司 | 一种服务器切换方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111211926A (zh) * | 2019-12-31 | 2020-05-29 | 杭州迪普科技股份有限公司 | 一种通信故障的监测方法、装置、存储介质及设备 |
CN111211926B (zh) * | 2019-12-31 | 2023-01-24 | 杭州迪普科技股份有限公司 | 一种通信故障的监测方法、装置、存储介质及设备 |
CN112738238A (zh) * | 2020-12-29 | 2021-04-30 | 北京天融信网络安全技术有限公司 | 一种负载均衡中健康检查的方法、装置以及系统 |
CN112929225A (zh) * | 2021-03-30 | 2021-06-08 | 平安科技(深圳)有限公司 | 会话异常处理方法、装置、计算机设备和存储介质 |
CN112929225B (zh) * | 2021-03-30 | 2022-09-30 | 平安科技(深圳)有限公司 | 会话异常处理方法、装置、计算机设备和存储介质 |
CN113992731A (zh) * | 2021-11-02 | 2022-01-28 | 四川安迪科技实业有限公司 | 基于stomp协议的异常控制方法及装置 |
CN113992731B (zh) * | 2021-11-02 | 2024-04-30 | 四川安迪科技实业有限公司 | 基于stomp协议的异常控制方法及装置 |
CN114285771A (zh) * | 2021-12-30 | 2022-04-05 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
CN114285771B (zh) * | 2021-12-30 | 2024-02-06 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
CN114285727A (zh) * | 2022-01-04 | 2022-04-05 | 中国建设银行股份有限公司 | 网络传输异常的处理方法、装置、电子设备及存储介质 |
CN115865734A (zh) * | 2022-12-02 | 2023-03-28 | 上海浦东发展银行股份有限公司 | 一种故障检测方法、数据生成方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110247806A (zh) | 会话故障处理方法、装置、电子设备 | |
JP6194100B2 (ja) | 分散型ロードバランサ | |
US7194550B1 (en) | Providing a single hop communication path between a storage device and a network switch | |
US10740162B2 (en) | Intercepting socket metadata | |
EP2216955B1 (en) | Network interface device | |
CN110120897A (zh) | 链路探测方法、装置、电子设备及机器可读存储介质 | |
CN110166570A (zh) | 业务会话管理方法、装置、电子设备 | |
US20180115616A1 (en) | Method for bridging publish/subscribe brokers for guaranteed low-latency delivery | |
US8527661B1 (en) | Gateway for connecting clients and servers utilizing remote direct memory access controls to separate data path from control path | |
US11218402B2 (en) | Blockchain systems, and message transmission methods and apparatuses | |
US8539089B2 (en) | System and method for vertical perimeter protection | |
CN107612950A (zh) | 一种提供服务的方法、装置、系统、电子设备 | |
US20200059427A1 (en) | Integrating a communication bridge into a data processing system | |
US11310139B2 (en) | Fault detection for LACP packet timeout | |
CN110381043A (zh) | 基于ssl的服务器健康检测方法、装置、电子设备 | |
CN115396528A (zh) | 基于协议族的quic数据传输方法及装置 | |
CN110073644B (zh) | 信息处理方法和装置 | |
CN110515728A (zh) | 服务器调度方法、装置、电子设备及机器可读存储介质 | |
US10623341B2 (en) | Configuration of a set of queues for multi-protocol operations in a target driver | |
CN112702338B (zh) | Ike报文获取方法及装置 | |
WO2015069378A1 (en) | Hierarchical distribution of control information in a massively scalable network server | |
CN110071872A (zh) | 业务报文转发方法、装置、电子设备 | |
CN114024968B (zh) | 一种基于中间设备的报文发送方法、装置和电子设备 | |
US11108663B1 (en) | Ring control data exchange system | |
US9246754B2 (en) | Automatic failover of nodes of a middle-tier layer |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190917 |
|
RJ01 | Rejection of invention patent application after publication |