网络负载均衡方法、装置、电子设备、介质和程序产品与流程

文档序号:29496706发布日期:2022-04-06 15:37阅读:112来源:国知局
网络负载均衡方法、装置、电子设备、介质和程序产品与流程

1.本公开涉及通信技术领域,尤其涉及一种网络负载均衡方法、装置、电子设备、介质和程序产品。


背景技术:

2.多路传输控制协议(multi-path transmission control protocol,简称mptcp)定义了一种在两个主机之间建立连接的方式,允许连接同时使用多个路径,其中,mptcp在每个需要使用的路径上创建一个子连接。
3.现有技术中,网络负载均衡设备通过负载均衡算法从服务器集合中确定目标服务器,并将报文发送至目标服务器。
4.然而,在mptcp的应用场景中,需要将同一主机的mptcp报文发送至同一目标服务器,而采用现有技术的通信方式无法实现将同一主机的mptcp报文发送至同一目标服务器,从而导致访问异常。


技术实现要素:

5.为了解决上述技术问题,本公开提供了一种网络负载均衡方法、装置、电子设备、介质和程序产品。
6.本公开第一方面提供一种网络负载均衡方法,所述方法包括:
7.接收第一报文,所述第一报文中包括:第一源设备信息、第一目的设备信息、属于多路传输控制协议mptcp类型的子流标识信息、以及验证信息,所述验证信息用于指示所述子流标识信息标识的子流对应的主流;
8.根据所述第一目的设备信息确定所述第一报文的目标流向;
9.根据所述验证信息以及所述第一报文的目标流向确定报文转换规则,所述报文转换规则用于将所述子流与所述主流定向到同一目标服务器;
10.基于所述报文转换规则对所述第一报文中的第一源设备信息或者所述第一目的设备信息进行转换,得到第二报文,所述第二报文包括第二源设备信息和第二目的设备信息;
11.根据所述第二报文中的第二目的设备信息向第二目的设备发送所述第二报文。
12.可选的,所述根据所述验证信息以及所述第一报文的目标流向确定报文转换规则,包括:
13.若所述第一报文的目标流向表征报文需要发送至负载均衡设备,则根据所述验证信息确定所述主流对应的目标服务器,确定所述报文转换规则用于将所述第一报文中的第一目的设备信息转换为所述目标服务器的设备信息;
14.若所述第一报文的目标流向表征报文需要发送至客户端,确定所述报文转换规则用于将所述第一报文中的第一源设备信息转换为所述负载均衡设备的设备信息。
15.可选的,所述根据所述第一目的设备信息确定所述第一报文的目标流向之前,还
包括:
16.根据所述mptcp类型的子流标识信息确定所述第一报文为子流;
17.根据所述验证信息从数据库中获取所述验证信息对应的主流定向的目标服务器;
18.根据所述目标服务器的设备信息生成所述验证信息对应的所述报文转换规则,所述报文转换规则包括:若所述第一报文的目标流向表征报文需要发送至负载均衡设备,则将所述第一报文中的第一目的设备信息转换为所述目标服务器的设备信息;若所述第一报文的目标流向表征报文需要发送至客户端,则将所述第一报文中的第一源设备信息转换为所述负载均衡设备的设备信息。
19.可选的,所述接收第一报文之前,还包括:
20.接收负载均衡设备发送的控制信息,所述控制信息中包括:所述验证信息以及所述目标服务器的设备信息;
21.将所述控制信息存储于所述数据库中。
22.可选的,所述根据所述目标服务器的设备信息生成所述验证信息对应的所述报文转换规则之后,还包括:
23.启动定时器,定时器到时后,删除所述报文转换规则。
24.本公开第二方面提供一种网络负载均衡方法,所述方法包括:
25.接收连接建立响应,所述连接建立响应中包括:属于多路传输控制协议mptcp类型的主流标识信息、目标服务器的设备信息和密钥;
26.根据所述密钥生成验证信息;
27.根据所述验证信息和所述目标服务器的设备信息生成控制报文,所述控制报文中包括:所述验证信息和所述目标服务器的设备信息;
28.向客户端对应的虚拟交换机发送所述控制报文,以使所述虚拟交换机基于所述控制报文生成报文转换规则,以将主流对应的子流定向至所述目标服务器。
29.本公开第三方面提供一种网络负载均衡装置,所述装置包括:
30.接收模块,用于接收第一报文,所述第一报文中包括:第一源设备信息、第一目的设备信息、属于多路传输控制协议mptcp类型的子流标识信息、以及验证信息,所述验证信息用于指示所述子流标识信息标识的子流对应的主流;
31.处理模块,用于根据所述第一目的设备信息确定所述第一报文的目标流向;并根据所述验证信息以及所述第一报文的目标流向确定报文转换规则,所述报文转换规则用于将所述子流与所述主流定向到同一目标服务器;并基于所述报文转换规则对所述第一报文中的第一源设备信息或者所述第一目的设备信息进行转换,得到第二报文,所述第二报文包括第二源设备信息和第二目的设备信息;
32.发送模块,用于根据所述第二报文中的第二目的设备信息向第二目的设备发送所述第二报文。
33.本公开第四方面提供一种网络负载均衡装置,所述装置包括:
34.接收模块,用于接收连接建立响应,所述连接建立响应中包括:属于多路传输控制协议mptcp类型的主流标识信息、目标服务器的设备信息和密钥;
35.处理模块,用于根据所述密钥生成验证信息;并根据所述验证信息和所述目标服务器的设备信息生成控制报文,所述控制报文中包括:所述验证信息和所述目标服务器的
设备信息;
36.发送模块,用于向客户端对应的虚拟交换机发送所述控制报文,以使所述虚拟交换机基于所述控制报文生成报文转换规则,以将主流对应的子流定向至所述目标服务器。
37.本公开第五方面提供一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序;其中所述一个或多个计算机程序被存储在所述存储器中;所述一个或多个处理器在执行所述一个或多个计算机程序时,使得所述电子设备实现如第一方面任一项所述的网络负载均衡方法或者如第二方面所述的网络负载均衡方法。
38.本公开第六方面提供一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面任一项所述的网络负载均衡方法或者如第二方面所述的网络负载均衡方法。
39.本公开第七方面提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法或者如第二方面所述的网络负载均衡方法。
40.本公开实施例提供的技术方案与现有技术相比具有如下优点:
41.客户端的虚拟交换机接收到客户端发送的第一报文后,根据第一报文钟的目的设备信息确定第一报文的目标流向,基于第一报文中携带的验证信息以及第一报文的目标流向确定报文转换规则,基于报文转换规则对第一报文中的源设备信息或者目的设备信息进行转换,得到第二报文,根据第二报文中的目的设备信息向第二目的设备发送第二报文,由于报文中包含验证信息以及mptcp类型的子流标识信息,根据子流标识信息能够确定第一报文属于子流,验证信息能够指示子流标识信息标识的子流对应的主流,报文转换规则能够将子流与主流定向到同一目标服务器,从而,使得子流与主流能够定向到同一目标服务器,确保了访问的正常进行。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
43.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
44.图1为本公开提供的一种负载均衡系统的架构示意图;
45.图2为本公开提供的一种网络负载均衡方法实施例的流程示意图;
46.图3为本公开提供的另一种负载均衡方法实施例的流程示意图;
47.图4为本公开提供的再一种网络负载均衡方法实施例的流程示意图;
48.图5为本公开的提供的又一种负载均衡方法实施例的流程示意图;
49.图6为本公开的提供的又一种负载均衡方法实施例的流程示意图;
50.图7为本公开的提供的又一种负载均衡方法实施例的流程示意图;
51.图8为本公开提供的一种网络负载均衡装置的结构示意图;
52.图9为本公开提供的另一种网络负载均衡装置的结构示意图。
具体实施方式
53.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
54.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
55.在标准tcp中,连接应在两个网际互连协议(internet protocol,ip)地址之间建立。每个tcp连接由标志着源和目的地的地址和端口的四元组来标识。鉴于此限制,应用程序只能通过单个连接创建一个tcp连接,因此,会出现两个主机之间虽然可能同时建立了多个连接,但同一时刻只有单个连接被某个应用利用。
56.mptcp定义了一种在两个主机之间建立连接的方式,而不是在两个接口之间建立连接的方式。mptcp允许连接同时使用多个路径,从而最大化信道资源使用。其中,mptcp在每个需要使用的路径上创建一个子连接(subflow)的tcp连接。
57.下面以主机a和主机b建立mptcp连接为例说明mptcp连接如何建立。假设主机a有两个地址,分别为地址a1和地址a2,主机b的地址为地址b1。
58.首次建立主机a和主机b的mptcp连接(也可以叫做主连接)时,遵守tcp的三次握手方式,与tcp三次握手方式的区别是每次发送的报文段需要添加mptcp标识信息(mp_capable)和密钥(key)。具体如下:
59.主机a通过地址a1向主机b的地址b1发送数据包(syn),该数据包和tcp建立连接时发送的一样,只不过增加了mptcp标识信息(mp_capable),以及主机a生成的一个密钥a(密钥a用于后续建立子连接时进行验证,因此,主机a每次建立mptcp主连接生成的密钥不同)。
60.主机b通过地址b1向主机a的地址a1发送数据包(syn+ack),其中同样包含mptcp标识信息(mp_capable),以及主机b生成的一个密钥b。
61.主机a通过地址a1向主机b的地址b1发送数据包(ack),其中包含mptcp标识信息(mp_capable)、密钥a和密钥b,此时主机a和主机b建立了主连接。
62.然后若主机a需要通过地址a2与主机b的地址b1建立连接时(可以称为子连接),需经过四次握手,保证连接的安全性。具体如下:
63.主机a通过地址a2向主机b的地址b1发送数据包(syn),其中包含子流标识信息(mp_join)、验证信息(token)和随机数a。其中,token是前面主连接建立时的密钥b的哈希值,随机数a为主机a生成的。
64.主机b通过地址b1向主机a的地址a2发送数据包syn/ack,其中包含子流标识信息(mp_join)、验证信息(hmac-b)和随机数b,其中,hmac-b由随机数a和随机数b进行哈希运算得到,随机数b为主机b生成的。
65.主机a通过地址a2向主机b的地址b1发送数据包(ack),其中包含验证信息(hmac-a),其中,hmac-a由随机数a和随机数b进行哈希运算得到。
66.主机b通过地址b1向主机a的地址a2发送数据包(ack),此时,子连接建立完成。
67.数据中心中常常需要进行负载均衡,负载均衡可以将多台服务器组成一个服务器集合,并通过负载分担技术,将外部发送来的请求分配到服务器集合中的某一台服务器上,
接收到请求的服务器独立地回应客户端的请求。网络均衡负载通过分配客户端的请求到不同的服务器上,以解决大量并发访问服务问题。
68.网络负载均衡根据其工作在osi模型中定义的不同层分为4层负载均衡与7层负载均衡,其中4层负载均衡还可根据其支持的协议分为tcp与udp等类型。其中tcp类型的负载均衡用来做tcp类型请求的负载分担。
69.使用mptcp进行数据中心的负载均衡,能有效提高负载均衡性能。
70.下面结合图1说明本公开的技术方案所应用的系统。请参见图1,图1为本公开提供的一种负载均衡系统的架构示意图,负载均衡系统中可以包括:客户端10、虚拟交换机20、负载均衡设备30、虚拟交换机40、服务器50、虚拟交换机60和服务器70。其中,虚拟交换机20可以称为客户端10的虚拟交换机。虚拟交换机40可以称为服务器50的虚拟交换机。虚拟交换机60可以称为服务器70的虚拟交换机。
71.其中,客户端10可以为一个或多个。客户端10通过虚拟交换机20可以与一个或多个负载均衡设备连接,图1中示例性示出了一个负载均衡设备30。
72.其中,负载均衡设备30可以连接多个服务器,每个服务器通过虚拟交换机与负载均衡设备30连接,如图1示例性示出了两个服务器,分别为服务器50和服务器70,服务器50通过虚拟交换机40与负载均衡设备30连接,服务器70通过虚拟交换机60与负载均衡设备30连接。
73.下面结合图1所示的系统说明本公开的一种应用场景。以客户端10是手机为例,手机可以包含两种上网方式,蜂窝移动数据网络(其中包括2g、3g、4g或者5g网络等)和wifi网络。用户希望在有wifi的时候尽量使用wifi,这样可以节省成本,没有wifi的时候自动切换到蜂窝移动网络,避免断连。这样可以在手机和服务器之间建立mptcp连接,手机可以通过wifi网络与服务器建立mptcp主连接,然后再通过蜂窝移动数据网络与同一个服务器建立mptcp子连接。
74.在负载均衡场景下,实际面向客户端10的为负载均衡设备30,现有技术中,客户端10需访问某项服务时,通过虚拟交换机20向负载均衡设备30发送mptcp主连接建立请求,负载均衡设备30会将其作为建立tcp连接的请求,根据负载均衡调度算法,从服务器50和服务器70中选择一个服务器,假设选择了服务器50,以使服务器50与客户端10建立连接,主连接建立成功。
75.然而,客户端10需建立mptcp的子连接时,通过虚拟交换机20向负载均衡设备30发送mptcp连接建立请求,负载均衡设备30依然会将其作为建立tcp连接的请求,负载均衡设备30会将其当做一个新的tcp连接进行处理,从服务器50和服务器70中选择一个服务器,负载均衡设备30存在选择服务器70的可能性,这样,将导致访问无法进行。
76.为解决上述技术问题,本公开提供一种网络负载均衡方法,本公开的客户端对应的虚拟交换机根据报文中包含的子流标识信息确定报文属于子流之后,根据报文中的验证信息确定子流对应的主流,基于从负载均衡设备获取的主流对应的目标服务器的设备信息,将子流定向到与主流相同的目标服务器,从而,使得子流与主流能够定向到同一目标服务器,确保了访问的正常进行。
77.下面以具体的实施例进行说明本公开的技术方案。
78.图2为本公开提供的一种网络负载均衡方法实施例的流程示意图,如图2所示,本
实施例的方法由客户端对应的虚拟交换机执行,本实施例的方法如下:
79.s201:接收第一报文。
80.其中,第一报文中包括:第一源设备信息、第一目的设备信息、属于mptcp类型的子流标识信息、以及验证信息。
81.所述验证信息用于指示所述子流标识信息标识的子流对应的主流。
82.可选的,第一源设备信息可以包括源地址和源端口号。第一目的设备信息可以包括目的地址和目的端口号。属于mptcp类型的子流标识信息用于标识该第一报文属于mptcp类型的子流,子流标识信息例如可以是上述的mp_join,根据子流标识信息可以确定报文属于子流。验证信息可以唯一标识一个主流,例如,可以是上述的token,因此,根据验证信息可以确定子流对应的主流。
83.可选的,客户端对应的虚拟交换机接收到的第一报文可能来自于客户端,也可能来自于目标服务器。
84.可选的,第一报文可以是用于建立连接的报文,也可以是用于进行数据传输的报文,均可应用本公开的技术方案。
85.s203:根据所述第一目的设备信息确定所述第一报文的目标流向。
86.根据第一报文中携带的第一目的设备信息可以确定第一报文的目标流向,包括如下两种情况:
87.若第一报文的第一目的设备信息是负载均衡设备的设备信息,则意味着该第一报文需要发送至负载均衡设备,即第一报文的目标流向是发送至负载均衡设备。本公开中也可以将目标流向为发送至负载均衡设备描述为出向。
88.若第一报文的第一目的设备信息是客户端的设备信息,则意味着该第一报文需要发送至客户端,即第一报文的目标流向是发送至客户端。本公开中也可以将目标流向为发送至客户端描述为入向或者进向,对此本公开不做限制。
89.s205:根据所述验证信息以及所述第一报文的目标流向确定报文转换规则,所述报文转换规则用于将所述子流与所述主流定向到同一目标服务器。
90.由于验证信息能够唯一标识主流,因此,可以根据子流中携带的验证信息确定子流对应的主流,获取主流对应的报文转换规则,主流对应的报文转换规则包括:两个流向(上述的出向和入向)的报文转换规则,因此,可以基于第一报文的目标流向确定第一报文需要采用的报文转换规则,通过报文转换规则可以将子流与主流定向到同一目标服务器。
91.s207:基于所述报文转换规则对所述第一报文中的第一源设备信息或者所述第一目的设备信息进行转换,得到第二报文,所述第二报文包括第二源设备信息和第二目的设备信息。
92.具体地,一种情况为:若所述第一报文的目标流向表征报文需要发送至负载均衡设备,则根据所述验证信息确定所述主流对应的目标服务器,确定所述报文转换规则用于将所述第一报文中的第一目的设备信息转换为所述目标服务器的设备信息。即通过将第一报文中的目的地址由负载均衡设备的设备信息替换为主流对应的目标服务器的设备信息,从而,使得子流和主流能够定向到同一目标服务器。
93.另一种情况为:若所述第一报文的目标流向表征报文需要发送至客户端,确定所述报文转换规则用于将所述第一报文中的第一源设备信息转换为所述负载均衡设备的设
备信息。即通过将第一报文中的源地址由目标服务器设备信息转换成负载均衡设备的设备信息。
94.s209:根据所述第二报文中的第二目的设备信息向第二目的设备发送所述第二报文。
95.如果第一报文是需要发送至负载均衡设备的,则可以根据s207的操作直接发送至主流对应的目标服务器,保证子流和主流定向到同一目标服务器,并且,在该过程中无需经过负载均衡设备,减轻了负载均衡设备的负担。
96.如果第一报文是需要发送至客户端的,则可以通过将目标服务器的设备信息更改为负载均衡设备的设备信息,以确保客户端能够正常解析报文。
97.本实施例,客户端的虚拟交换机接收到客户端发送的第一报文后,根据第一报文钟的目的设备信息确定第一报文的目标流向,基于第一报文中携带的验证信息以及第一报文的目标流向确定报文转换规则,基于报文转换规则对第一报文中的源设备信息或者目的设备信息进行转换,得到第二报文,根据第二报文中的目的设备信息向第二目的设备发送第二报文,由于报文中包含验证信息以及mptcp类型的子流标识信息,根据子流标识信息能够确定第一报文属于子流,验证信息能够指示子流标识信息标识的子流对应的主流,报文转换规则能够将子流与主流定向到同一目标服务器,从而,使得子流与主流能够定向到同一目标服务器,确保了访问的正常进行。并且,在此过程中,子流无需经过负载均衡设备,减轻了负载均衡设备的负担,提升了系统容量。
98.图3为本公开提供的另一种负载均衡方法实施例的流程示意图,图3是在图2所示实施例的基础上,进一步地,在s203之前,还包括:
99.s2021:根据所述mptcp类型的子流标识信息确定所述第一报文为子流。
100.也就是,如果解析报文后发现报文中包含属于mptcp类型的子流标识信息,则确定第一报文为子流。
101.s2022:根据所述验证信息从数据库中获取所述验证信息对应的主流定向的目标服务器;
102.由于验证信息能够唯一标识一个主流,数据库中记载了主流对应的目标服务器,因此,基于验证信息可以从数据库中获取验证信息对应的主流定向的目标服务器。
103.s2023:根据所述目标服务器的设备信息生成所述验证信息对应的所述报文转换规则。
104.其中,所述报文转换规则包括:若所述第一报文的目标流向表征报文需要发送至负载均衡设备,则将所述第一报文中的第一目的设备信息转换为所述目标服务器的设备信息;若所述第一报文的目标流向表征报文需要发送至客户端,则将所述第一报文中的第一源设备信息转换为所述负载均衡设备的设备信息。
105.本实施例,通过根据所述mptcp类型的子流标识信息确定所述第一报文为子流,然后,根据验证信息从数据库中获取验证信息对应的主流定向的目标服务器,基于目标服务器的设备信息生成验证信息对应的报文转换规则,从而,使得后续在进行报文传输的过程中,能够基于报文转换规则将子流与主流定向到同一目标服务器,确保了访问的正常进行。
106.在上述实施例的基础上,生成报文转换规则之后,还包括:启动定时器,当定时器到时后,删除报文转换规则。
107.图4为本公开提供的再一种网络负载均衡方法实施例的流程示意图,图4是在图3所示实施例的基础上,进一步地,还包括:
108.s2001:接收负载均衡设备发送的控制信息。
109.所述控制信息中包括:所述验证信息以及所述目标服务器的设备信息。
110.具体地,一种可能的实现方式如下:
111.负载均衡设备在主连接建立的过程中,接收目标服务器发送的连接建立响应,所述连接建立响应中包括:属于mptcp类型的主流标识信息、目标服务器的设备信息和密钥;负载均衡设备根据所述密钥生成验证信息;并根据所述验证信息和所述目标服务器的设备信息生成控制报文,所述控制报文中包括:所述验证信息和所述目标服务器的设备信息;向客户端对应的虚拟交换机发送所述控制报文,以使所述虚拟交换机基于所述控制报文生成报文转换规则,以将主流对应的子流定向至同一目标服务器。
112.s2002:将所述控制信息存储于所述数据库中。
113.客户端对应的虚拟交换机接收到控制信息之后将控制信息存储与数据库中,以备在接收到子流之后基于报文控制信息生成报文转换规则。
114.本实施例,通过接收负载均衡设备发送控制信息,并将控制信息存储于数据库中,由于控制信息中包含验证信息和目标服务器的设备信息,因此,可以使得客户端对应的虚拟交换机基于控制报文生成报文转换谷子额,以将主流对应的子流定向至同一目标服务器,确保访问的正常进行。
115.下面以几个具体的示例对本公开的技术方案进行说明
116.图5为本公开的提供的又一种负载均衡方法实施例的流程示意图,如图5所示,本实施例包括:客户端10、虚拟交换机20、负载均衡设备30、虚拟交换机40、服务器50、虚拟交换机60和服务器70。其中,虚拟交换机20为客户端10的虚拟交换机。虚拟交换机40为服务器50的虚拟交换机。虚拟交换机60可以为服务器70的虚拟交换机。
117.s501、客户端10向虚拟交换机20发送第一报文。
118.其中,第一报文中包含客户端10的ip地址1和端口号1到负载均衡设备30的ip地址2和端口号2的tcp连接、mp_join和token。
119.其中,mp_join对应子属于mptcp类型的子流标识信息,token为验证信息,负载均衡设备30的ip地址2和端口号2对应第一目的设备信息。
120.s502、虚拟交换机20根据mp_join确定第一报文属于mptcp类型的子流,判断第一目标设备信息为负载均衡设备的设备信息,则根据携带的token,在数据库中获取token对应的目标服务器的设备信息,并基于目标服务器的设备信息生成报文转换规则。
121.其中,通过查询数据库可以获取到token对应的目标服务器为服务器50,并获取到服务器50的设备信息即ip地址3和端口3。
122.报文转换规则包括:出向报文转换规则和入向报文转换规则。
123.出向报文转换规则包括:将报文中的目的地址和端口号替换为主流对应的目标服务器的地址和端口号;
124.入向报文转换规则包括:将报文中的源地址和源端口号替换为负载均衡设备的地址和端口号。
125.s503、根据出向报文转换规则,将第一报文中的负载均衡设备信息替换为服务器
50的设备信息,得到第二报文。
126.第二报文中包括:源设备信息:客户端10的ip地址1和端口号1;目的设备信息:服务器50的ip地址3和端口号3、子流标识信息(mp_join)以及验证信息(token)。
127.s504、虚拟交换机20向目标服务器对应的虚拟交换机40发送第二报文。
128.可选的,步骤s503中,还可以将第一报文进行叠加(overlay)封装,例如,可以使用用户数据报协议(user datagram protocol,udp)对tcp数据包进行封装,得到第二报文。其中,第二报文中内层包含:客户端10的ip地址1和端口号1到服务器50的ip地址3和端口号3的tcp连接、mp_join和token。
129.相应的,步骤s504中,虚拟交换机20向虚拟交换机40发送的第二报文为进行叠加封装后的第二报文。
130.s505、虚拟交换机20向服务器50发送第二报文。
131.在图5所示实施例的基础上,本实施例提供的方法在步骤s505之后,还可以包括如下步骤:
132.s506、服务器50生成第二报文对应的第二响应。
133.其中,第二响应中包含服务器50的ip地址3和端口号3到客户端10的ip地址1和端口号1的tcp连接响应、mp_join和hmac。
134.s507、服务器50向虚拟交换机40发送第二响应。
135.其中,第二响应中包含服务器50的ip地址3和端口号3到客户端10的ip地址1和端口号1的tcp连接响应、mp_join和hmac。
136.s508、虚拟交换机40向虚拟交换机20发送第二响应。
137.可选的,步骤s508之前,还可以将第二响应进行叠加(overlay)封装,例如,可以使用用户数据报协议(user datagram protocol,udp)对tcp数据包进行封装,得到第二响应。其中,更新后的第二响应中内层包含:服务器50的ip地址3和端口号3到客户端10的ip地址1和端口号1的tcp连接响应、mp_join和hmac。
138.相应的,步骤s508中,虚拟交换机40向虚拟交换机20发送的第一连接建立响应为进行叠加封装后的第二响应。
139.s509、虚拟交换机20根据入向报文转换规则将第二响应中的目标服务器的设备信息替换为负载均衡设备的设备信息,得到第一响应。
140.即将第二响应中的服务器50的ip地址3和端口号3更新为负载均衡设备30的ip地址2和端口号2,得到第一响应。
141.其中,第一响应中包含:源设备信息:负载均衡设备30的ip地址2、目的设备信息:端口号2到客户端10的ip地址1和端口号1、属于mptcp的子流标识mp_join和hmac。
142.s510、虚拟交换机20向客户端10发送第一响应。
143.通过以上过程完成实现子流与主流定向到同一目标服务器,确保了访问的正常进行,并且,在此过程中无需负载均衡设备参与,减轻了负载均衡设备的负担,提高了系统容量。
144.下面描述客户端对应的虚拟客户端得到主流对应的目标服务器的设备信息并存储于数据库的过程。如图6所示,
145.s601:客户端10向虚拟交换机20发送第一报文。
146.其中,第一报文中包含:源设备信息:客户端10的ip地址4和端口号4,目的设备信息:负载均衡设备30的ip地址2和端口号2、属于mptcp类型的主流标识信息(mp_capable)和密钥(key1)。
147.s602、虚拟交换机20向负载均衡设备30发送第一报文。
148.虚拟交换机20对第一报文进行封装之后发送至负载均衡设备。
149.s603、负载均衡设备30向虚拟交换机40发送更新后的第一报文。
150.负载均衡设备30根据负载均衡策略选择目标服务器,假设选择了服务器50。将负载均衡设备30的ip地址2和端口号2替换为服务器50的ip地址3和端口号3。
151.负载均衡设备30向虚拟交换机40发送更新后的第一报文。
152.s604、虚拟交换机40向服务器50发送更新后的第一报文。
153.s605、服务器50向虚拟交换机40发送第一响应。
154.其中,第一响应中包含:源设备信息:服务器50的ip地址3和端口号3,目的设备信息:客户端10的ip地址4和端口号4、属于mptcp类型的主流标识信息(mp_capable)和密钥key2。
155.s606、虚拟交换机40向负载均衡设备30发送第一响应。
156.其中,第一响应中包含:源地址:服务器50的ip地址3和端口号3,客户端10的ip地址4和端口号4的tcp连接、属于mptcp类型的主流标识信息(mp_capable)和key2。
157.s607、负载均衡设备30向虚拟交换机20发送第二响应。
158.其中,负载均衡设备对第一响应中的源设备信息进行转换,并对第一响应进行封装,得到第二响应。
159.负载均衡设备30将第一响应中的服务器50的ip地址3和端口号3更新为负载均衡设备30的ip地址2和端口号2,得到第二响应。
160.第二响应包括:源设备信息:负载均衡设备30的ip地址2和端口号2、目的设备信息:客户端10的ip地址4和端口号4、属于mptcp类型的主流标识信息(mp_capable)和key2。
161.s608、虚拟交换机20向客户端10发送第二响应。
162.在s606之后,还包括:
163.s609:客户端的虚拟交换机30通过负载均衡设备学习到目标服务器的设备信息。
164.s610:客户端10向虚拟交换机20发送报文。
165.其中,报文中包括:源设备信息、目的设备信息、属于mptcp类型的子流标识信息以及验证信息。
166.其中,源设备信息:客户端10的ip地址4和端口号4,目的设备信息:负载均衡设备30的ip地址2和端口号2、属于mptcp类型的主流标识信息(mp_join)和验证信息(token)。
167.s611:虚拟交换机20根据学习到的目标服务器的设备信息将目的设备信息替换为目标服务器的设备信息,并进行封装,得到更新后的报文。
168.其中,更新后的报文中包括:源设备信息、目的设备信息、属于mptcp类型的子流标识信息以及验证信息。
169.源设备信息:客户端10的ip地址4和端口号4,目的设备信息:服务器50的ip地址3和端口号3、子流标识信息(mp_join)以及验证信息(token)。
170.s612:虚拟交换机20将更新后的报文发送至虚拟交换机40。
171.s613:虚拟交换机40对报文进行解封装并发送至服务器50。
172.s614:服务器50接收到报文之后,根据子流标识信息和验证信息对报文进行关联。
173.s615:服务器50向虚拟交换机40发送响应。
174.响应中包括:源设备信息、目的设备信息、属于mptcp类型的子流标识信息以及虚拟交换机40的hmac。
175.s616:虚拟交换机40向客户端的虚拟交换机20发送响应。
176.虚拟交换机40对响应进行封装之后发送至虚拟交换机20。
177.s617:虚拟交换机20进行地址转换并将响应发送至客户端10。
178.即将响应中的服务器50的ip地址3和端口号3更新为负载均衡设备30的ip地址2和端口号2,得到更新后的响应。
179.更新后的响应中包含:源设备信息:负载均衡设备30的ip地址2、目的设备信息:端口号2到客户端10的ip地址1和端口号1、属于mptcp的子流标识mp_join和hmac。
180.本实施例,通过在主流建立的过程中,客户端虚拟机通过负载均衡设备学习到目标服务器的设备信息,从而,使得客户端对应的虚拟交换机在接收到子流之后,能够根据存储的控制信息将子流和主流定向到同一目标服务器。
181.在图6所示实施例的基础上,s609的一种实现方式如图7所示,包括:
182.s6091:负载均衡设备30生成控制信息。
183.负载均衡设备根据第一响应中的属于mptcp类型的主流标识信息确定客户端与服务器尝试建立mptcp会话,根据虚拟交换机40回复的报文中携带的key2,计算得到验证信息token,该token能够唯一标识该会话,根据服务器50的设备信息和计算得到的验证信息,生成控制信息。
184.s6092:负载均衡设备30向虚拟交换机20发送所述控制信息。
185.s6093:虚拟交换机20将所述控制信息存储于数据库中。
186.通过如上方法,在主流建立的过程中,负载均衡设备学习到目标服务器的设备信息,并基于目标服务器的设备信息和得到的验证信息生成控制信息,将控制信息发送至客户端对应的虚拟交换机,从而,使得客户端对应的虚拟交换机在接收到子流之后,能够根据存储的控制信息将子流和主流定向到同一目标服务器。
187.图8为本公开提供的一种网络负载均衡装置的结构示意图,如图8所示,本实施例的装置包括:接收模块801、处理模块802和发送模块803。
188.接收模块801,用于接收第一报文,所述第一报文中包括:第一源设备信息、第一目的设备信息、属于多路传输控制协议mptcp类型的子流标识信息、以及验证信息,所述验证信息用于指示所述子流标识信息标识的子流对应的主流;
189.处理模块802,用于根据所述第一目的设备信息确定所述第一报文的目标流向;根据所述验证信息以及所述第一报文的目标流向确定报文转换规则,所述报文转换规则用于将所述子流与所述主流定向到同一目标服务器;基于所述报文转换规则对所述第一报文中的第一源设备信息或者所述第一目的设备信息进行转换,得到第二报文,所述第二报文包括第二源设备信息和第二目的设备信息;
190.发送模块803,用于根据所述第二报文中的第二目的设备信息向第二目的设备发送所述第二报文。
191.可选的,所述处理模块802具体用于若所述第一报文的目标流向表征报文需要发送至负载均衡设备,则根据所述验证信息确定所述主流对应的目标服务器,确定所述报文转换规则用于将所述第一报文中的第一目的设备信息转换为所述目标服务器的设备信息;若所述第一报文的目标流向表征报文需要发送至客户端,确定所述报文转换规则用于将所述第一报文中的第一源设备信息转换为所述负载均衡设备的设备信息。
192.可选的,所述处理模块802还用于根据所述mptcp类型的子流标识信息确定所述第一报文为子流;根据所述验证信息从数据库中获取所述验证信息对应的主流定向的目标服务器;根据所述目标服务器的设备信息生成所述验证信息对应的所述报文转换规则,所述报文转换规则包括:若所述第一报文的目标流向表征报文需要发送至负载均衡设备,则将所述第一报文中的第一目的设备信息转换为所述目标服务器的设备信息;若所述第一报文的目标流向表征报文需要发送至客户端,则将所述第一报文中的第一源设备信息转换为所述负载均衡设备的设备信息。
193.可选的,所述接收模块801还用于接收负载均衡设备发送的控制信息,所述控制信息中包括:所述验证信息以及所述目标服务器的设备信息;
194.所述处理模块802还用于将所述控制信息存储于所述数据库中。
195.可选的,所述处理模块802还用于启动定时器,定时器到时后,删除所述报文转换规则。
196.本实施例的装置对应的可用于执行上述各方法实施例中的客户端对应的虚拟交换机执行的步骤,其实现原理和技术效果类似,此处不再赘述。
197.图9为本公开提供的另一种网络负载均衡装置的结构示意图,如图9所示,本实施例的装置包括:接收模块901、处理模块902和发送模块903。
198.接收模块901用于接收连接建立响应,所述连接建立响应中包括:属于多路传输控制协议mptcp类型的主流标识信息、目标服务器的设备信息和密钥;
199.处理模块902用于根据所述密钥生成验证信息;并根据所述验证信息和所述目标服务器的设备信息生成控制报文,所述控制报文中包括:所述验证信息和所述目标服务器的设备信息;
200.发送模块903用于向客户端对应的虚拟交换机发送所述控制报文,以使所述虚拟交换机基于所述控制报文生成报文转换规则,以将主流对应的子流定向至所述目标服务器。
201.本实施例的装置对应的可用于执行上述各方法实施例中的负载均衡设备执行的步骤,其实现原理和技术效果类似,此处不再赘述。
202.本公开实施例提供一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序;其中一个或多个计算机程序被存储在存储器中;一个或多个处理器在执行一个或多个计算机程序时,使得电子设备实现如上述方法。
203.本公开实施例提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上述方法。
204.本公开实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述方法。
205.上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技
术效果类似,此处不再赘述。
206.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
207.以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1