本发明涉及一种控制器,用于使用非应用协议在非应用层中执行负载均衡,更具体地,本发明涉及所述控制器用于传输数据包。此外,本发明还涉及一种用于控制器中的方法,所述控制器用于使用非应用协议在非应用层中执行负载均衡。
背景技术:
1、现代高流量网站每秒处理数十万客户端请求,数千万来自不同客户端的并发请求,并以快速可靠的方式返回请求的文本、图像、视频或应用数据。现代计算系统通常需要添加更多的服务器来实现上述要求。为了在满足这些要求的同时经济高效地扩展,现代计算最佳实践通常需要添加更多服务器。作为“流量警察”的负载均衡器,放置在web服务器前面,并在所有能够满足客户端请求的服务器上以最大限度地提高速度和容量利用率的方式路由这些请求,并确保没有服务器过度工作,这可能会降低性能。如果单个服务器发生故障,负载均衡器将流量重定向到剩余的在线服务器。当新的服务器添加到服务器组时,负载均衡器会自动开始向其发送请求。
2、在计算机网络中,已知的通信系统模型包括称为抽象层的分区。抽象层,第4层到第7层(l4至l7)是根据其功能定义的。l4指传输层,l5指会话层,l6指表示层,l7指应用层。传输层用于在网络上的各点之间传输数据。会话层管理应用之间的连接。表示层为应用提供映射和通信。应用层与终端用户交互和通信。负载均衡器指一种负载均衡技术,用于将新连接分配给服务器。
3、负载均衡器使用负载均衡技术将新连接分配给服务器。负载均衡器根据需要应用不同类型的负载均衡技术。当一组服务器需要分发请求时,将应用循环负载均衡技术。当新请求发送到客户端连接数最少的服务器时,将使用最少连接负载均衡技术。连接最少的服务器是通过考虑每个服务器的相对计算能力来确定的。当使用参数将请求发送到选定的服务器时,将使用最少时间负载均衡技术。该参数是通过结合最快响应时间和最低活动连接来计算的。最少时间负载均衡技术专门用于内部负载均衡(nginx)加负载均衡器。当请求基于密钥分发时,则使用哈希负载均衡技术。密钥是使用客户端互联网协议(internetprotocol,ip)地址或请求统一资源定位器(uniform resource locator,url)定义的。可选地,内部负载均衡(nginx)加负载均衡器使用哈希负载均衡技术,在一组数据上游服务器发生变化时,最大限度地减少负载的重新分配。当客户端的ip地址用于确定哪个服务器接收请求时,将使用ip哈希负载均衡技术。随机双选负载均衡技术是通过向从两个服务器中随机选择的服务器发送请求,然后在选定的服务器上应用最少连接负载均衡技术来使用的。对于内部负载均衡(nginx)加负载均衡器,使用最少时间负载均衡技术。
4、图1a为现有技术提供的在传输层执行负载均衡的示例性图100a。示例性图100a包括客户端设备102、负载均衡器104和后端服务器106a至106n。传输层的负载均衡器104对记录在数据包头中的源ip地址和目的地ip地址和端口执行负载均衡。负载均衡器的ip地址被广播到用于网站或服务的客户端设备102。因此,客户端设备102在其请求中注册负载均衡器的ip地址作为目的地ip地址。当传输层的负载均衡器104接收到请求并做出负载均衡决策时,它对请求数据包执行网络地址转换(network address translation,nat),以将记录的目的地ip地址从“服务器ip地址”更改为用于此连接的专门选择的机器。类似地,在将后端服务器106a至106n响应转发到客户端设备102之前,负载均衡器104可以将数据包头中记录的源地址从服务器的ip地址改变为其自己的ip地址。数据包中记录的目的地和源tcp端口号有时也会以类似方式更改。传输层的负载平衡器104可以是运行专有负载均衡软件的硬件设备,如果存在nat操作,则可以是专用芯片而不是软件。负载均衡器104有效地平衡用于简单的分组级负载均衡。传输层的负载均衡器104根据应用端口和协议等网络信息管理网络流量,而不考虑数据消息的实际内容。此外,数据消息的内容既不被检查,也不被解密,以快速、高效和安全地进行转发。因此,负载均衡器104不能根据媒体类型、本地化规则或其它标准路由流量。传输层的负载均衡器104需要较少的计算。但是负载均衡器104在传输层的性能已经变得可以忽略不计或不相关。
5、图1b为现有技术提供的在应用层执行负载均衡的示例性图100b。示例性图100b包括客户端设备108、负载均衡器110和后端服务器112a至112n。应用层中的负载均衡器110使用超文本传输协议(hypertext transfer protocol,http)和简单邮件传输协议(simplemail transfer protocol,smtp)等技术执行负载均衡,以提供基于每个消息的实际内容的决策。应用层的负载平衡器110终止网络流量,根据需要执行消息的解密,检查消息,做出基于内容的路由决策,发起到适当上游服务器的新的传输控制协议(transmission controlprotocol,tcp)连接,并将请求写入服务器。虽然加密的需要会对应用层处理造成性能损失,但通过使用安全套接字层(secure socket layer,ssl)卸载功能,可以在很大程度上降低性能损失。应用层的负载均衡器110确定更智能的负载均衡决策和内容优化。负载均衡器110识别唯一的客户端会话,以提供服务器持久性或“粘性会话”,通过查看或主动注入cookie,将所有客户端请求发送到同一服务器,以提高效率。数据包级可见性允许使用内容缓存,将经常访问的项目保存在存储器中,以便于检索。应用层的负载均衡器110提供处理将请求多路复用到单个连接上的协议,以优化流量并减少开销的智能性。应用层的负载均衡器110成本较高,并且增加了作为终止点并建立到后端服务器112a至112n的连接的复杂性。
6、因此,需要解决在非应用层中的负载均衡中的已知技术或技术中的上述技术缺陷。
技术实现思路
1、本发明的目的是提供一种控制器,用于使用非应用协议在非应用层中执行负载均衡,所述控制器用于传输数据包,以及提供了一种在所述控制器中使用的方法,所述控制器用于使用非应用协议在非应用层中执行负载均衡,同事避免了现有技术方法的一个或多个缺点。
2、通过独立权利要求的特征来实现上述目的。进一步的实现方式在从属权利要求、说明书和附图中显而易见。
3、本发明提供了一种控制器,用于使用非应用协议在非应用层中执行负载均衡,所述控制器用于传输数据包,以及提供了一种在所述控制器中使用的方法,所述控制器用于使用非应用协议在非应用层中执行负载均衡。
4、根据第一方面,提供了一种控制器,用于使用非应用协议在非应用层中执行负载均衡。所述负载均衡包括确定数据包应发送到服务器的池中的哪个后端服务器。所述控制器用于接收数据包。所述数据包包括一个或多个字段和数据载荷。所述数据载荷被加密,并且所述一个或多个字段中的至少一个字段是未加密的。所述控制器用于根据所述至少一个未加密字段确定所述数据包的操作和/或权重。所述控制器用于根据所述数据包的所述操作和/或权重确定将所述数据包发送到的服务器。
5、所述控制器降低了负载均衡器的成本,并使用具有高层负载均衡解码能力的l4负载均衡器。所述控制器降低了延迟,因为不需要在所述负载均衡器上生成终止点。所述控制器减少了到服务器的池的连接数,因为不需要终止所述负载均衡器处的代理连接。所述控制器提供了智能负载均衡决策和内容优化。所述控制器所需的计算较少。当所述控制器根据媒体类型、本地化规则或知道数据消息内容的其它标准路由流量时,所述控制器在传输层的性能非常高效。
6、可选地,所述控制器用于根据服务器当前负载确定将所述数据包发送到的所述服务器。
7、可选地,所述至少一个字段为可选的头字段。可选地,所述至少一个字段可以为分配用于指示互联网协议地址(dst ip),但用于携带操作指示符的字段。所述至少一个字段为时间戳字段。
8、可选地,所述控制器还用于根据所述至少一个字段中携带的所述操作指示符确定所述操作。
9、可选地,所述控制器还用于根据所述至少一个字段中携带的权重指示符来确定权重。
10、可选地,所述至少一个字段是分配用于目的地端口(dst),但用于携带权重指示符的字段。可选地,所述权重指示符包括业务指示符。
11、可选地,所述控制器还用于根据所述操作指示符,结合所述业务指示符,确定所述数据包的所述操作的所述权重。
12、可选地,所述控制器还用于根据查表确定所述数据包的所述操作的所述权重。
13、可选地,所述控制器还包括确定将所述数据包发送到的服务器,以便将类似业务的数据包发送到处理此类业务的同一组服务器。
14、可选地,所述非应用层为传输层,所述协议为传输数据的传输协议。
15、可选地,所述非应用层为网络层,所述协议为传输数据的传输协议。
16、可选地,所述控制器还用于在所述非应用层中进行应用层负载均衡。
17、根据第二方面,提供了一种控制器,用于传输数据包。所述数据包包括一个或多个字段和数据载荷。所述数据载荷被加密,并且所述一个或多个字段中的至少一个字段是未加密的。控制器用于在数据包的至少一个未加密字段中包括数据包的操作指示符和/或权重指示符。
18、所述控制器提供了智能负载均衡决策和内容优化。所述控制器所需的计算较少。当所述控制器根据媒体类型、本地化规则或知道数据消息内容的其它标准路由流量时,所述控制器在传输层的性能非常高效。
19、可选地,所述至少一个字段是分配用于指示互联网协议地址(dst ip),但用于携带操作指示符的字段。
20、可选地,所述至少一个字段是分配用于指示端口(dst port),但用于携带权重指示符的字段。可选地,所述权重指示符为业务指示符。
21、第三方面,提供了一种设备,包括控制器。
22、根据第四方面,提供了一种在控制器中使用的方法,用于使用非应用协议在非应用层中执行负载均衡。所述负载均衡包括确定数据包应发送到服务器的池中的哪个后端服务器。所述方法包括接收数据包。所述数据包包括一个或多个字段和数据载荷。所述数据载荷被加密,并且所述一个或多个字段中的至少一个字段是未加密的。所述方法包括根据所述至少一个未加密字段确定所述数据包的操作和/或权重。所述方法包括根据所述数据包的所述操作和/或权重确定将所述数据包发送到的服务器。
23、在所述控制器中使用的所述方法降低了负载均衡器的成本,并使用具有高层负载均衡解码能力的l4负载均衡器。在所述控制器中使用的所述方法降低了延迟,因为不需要在所述负载均衡器上生成终止点。在所述控制器中使用的所述方法减少了到服务器的池的连接数,因为不需要终止所述负载均衡器处的代理连接。在所述控制器中使用的所述方法与后端服务器建立不同的连接。所述方法提供了智能负载均衡决策和内容优化。在所述控制器中使用的所述方法需要较少的计算。
24、可选地,所述方法还包括根据服务器当前负载确定将所述数据包发送到的服务器。
25、可选地,所述至少一个字段为可选的头字段。
26、可选地,所述至少一个字段是分配用于指示互联网协议地址(dst ip),但用于携带操作指示符的字段。可选地,所述至少一个字段为时间戳字段。
27、可选地,所述方法还包括根据所述至少一个字段中携带的所述操作指示符确定所述操作。
28、可选地,所述方法还包括根据至少一个字段中携带的权重指示符来确定权重。
29、可选地,所述至少一个字段是分配用于目的地端口(dst),但用于携带所述权重指示符的字段。
30、可选地,所述权重指示符包括业务指示符。
31、可选地,所述方法还包括根据所述操作指示符,结合所述业务指示符,确定所述数据包的操作的权重。
32、可选地,所述方法还包括根据查表确定所述数据包的所述操作的所述权重。
33、可选地,所述方法还包括确定将所述数据包发送到的服务器,以便将类似业务的数据包发送到处理此类业务的同一组服务器。
34、可选地,所述非应用层为传输层,所述协议为传输数据的传输协议。
35、可选地,所述非应用层为网络层,所述协议为传输数据的传输协议。
36、可选地,所述方法还包括在所述非应用层中进行应用层负载均衡。
37、根据第五方面,提供了一种在用于传输数据包的控制器中使用的方法。所述数据包包括一个或多个字段和数据载荷。所述数据载荷被加密,并且所述一个或多个字段中的至少一个字段是未加密的。所述控制器用于在所述数据包的至少一个未加密字段中包括所述数据包的操作指示符和/或权重指示符。
38、可选地,所述至少一个字段是分配用于指示互联网协议地址(dst ip),但用于携带操作所述指示符的字段。
39、可选地,所述至少一个字段是分配用于指示端口(dst port),但用于携带所述权重指示符的字段。所述权重指示符可以是业务指示符。
40、根据第六方面,提供了一种设备,包括控制器,当加载指令并执行那些指令时,所述控制器可以执行上述方法。
41、因此,与现有技术不同的是,本文提供用于使用非应用协议在非应用层中执行负载均衡的控制器。所述控制器用于传输数据包,所述数据包包括一个或多个字段和数据载荷。所述控制器降低了负载均衡器的成本,并使用具有高层负载均衡解码能力的l4负载均衡器。所述控制器降低了延迟,因为不需要在所述负载均衡器上生成终止点。所述控制器减少了到服务器的池的连接数,因为不需要终止所述负载均衡器处的代理连接。所述控制器与后端服务器建立不同的连接。所述控制器提供了智能负载均衡决策和内容优化。所述控制器所需的计算较少。当所述控制器根据媒体类型、本地化规则或知道数据消息内容的其它标准路由流量时,所述控制器在传输层的性能非常高效。网络嗅探器检查类似的请求是否在所述数据包的所述一个或多个字段上获得相同的值。所述网络嗅探器检查所述数据包的所述一个或多个字段上的不同请求是否相同。
42、根据下文描述的一个或多个实现方式,本发明的这些和其它方面是显而易见的。
1.一种控制器(202、304、404),其特征在于,用于使用非应用协议在非应用层中执行负载均衡,其中,所述负载均衡包括确定数据包应发送到服务器(206a至206n、306a和306b、406)的池中的哪个后端服务器,所述控制器(202、304、404)用于:
2.根据权利要求1所述的控制器(202、304、404),其特征在于,所述控制器(202、304、404)用于:根据服务器当前负载确定将所述数据包发送到的所述服务器。
3.根据权利要求1或2所述的控制器(202、304、404),其特征在于,所述至少一个字段为可选的头字段。
4.根据权利要求3所述的控制器(202、304、404),其特征在于,所述至少一个字段是分配用于指示互联网协议地址(dst ip),但用于携带操作指示符的字段。
5.根据权利要求4所述的控制器(202、304、404),其特征在于,所述至少一个字段为时间戳字段。
6.根据上述权利要求中任一项所述的控制器(202、304、404),其特征在于,所述控制器(202、304、404)还用于根据所述至少一个字段中携带的所述操作指示符确定所述操作。
7.根据上述权利要求中任一项所述的控制器(202、304、404),其特征在于,所述控制器(202、304、404)还用于根据所述至少一个字段中携带的权重指示符确定所述权重。
8.根据权利要求7所述的控制器(202、304、404),其特征在于,所述至少一个字段是分配用于指示目的地端口(dst),但用于携带所述权重指示符的字段。
9.根据权利要求7或8所述的控制器(202、304、404),其特征在于,所述权重指示符包括业务指示符。
10.根据权利要求9所述的控制器(202、304、404),其特征在于,所述控制器(202、304、404)还用于根据所述操作指示符,结合所述业务指示符,确定所述数据包的所述操作的所述权重。
11.根据上述权利要求中任一项所述的控制器(202、304、404),其特征在于,所述控制器(202、304、404)还用于根据查表确定所述数据包的所述操作的所述权重。
12.根据权利要求9、10或11所述的控制器(202、304、404),其特征在于,所述控制器(202、304、404)还用于确定将所述数据包发送到的服务器,以便将类似业务的数据包发送到处理此类业务的同一组服务器。
13.根据上述权利要求中任一项所述的控制器(202、304、404),其特征在于,所述非应用层是传输层,所述协议是用于传输数据的传输协议。
14.根据上述权利要求中任一项所述的控制器(202、304、404),其特征在于,所述非应用层是网络层,所述协议是用于传输数据的传输协议。
15.根据上述权利要求中任一项所述的控制器(202、304、404),其特征在于,所述控制器(202、304、404)还用于在所述非应用层中执行应用层负载均衡。
16.一种控制器(202、304、404),其特征在于,用于传输数据包,所述数据包包括一个或多个字段和数据载荷,所述数据载荷是加密的,并且所述一个或多个字段中的至少一个字段是未加密的,所述控制器(202、304、404)用于在所述数据包的至少一个未加密字段中包括所述数据包的操作指示符和/或权重指示符。
17.根据权利要求16所述的控制器(202、304、404),其特征在于,所述至少一个字段是分配用于指示互联网协议地址(dst ip),但用于携带操作指示符的字段。
18.根据权利要求16或17所述的控制器(202、304、404),其特征在于,所述至少一个字段是分配用于指示端口(dst port),但用于携带所述权重指示符的字段。
19.根据权利要求18所述的控制器(202、304、404),其特征在于,所述权重指示符为业务指示符。
20.一种设备,其特征在于,包括根据权利要求16至19中任一项所述的控制器(202、304、404)。
21.一种在控制器(202、304、404)中使用的方法,其特征在于,用于使用非应用协议在非应用层中执行负载均衡,其中,所述负载均衡包括确定数据包应发送到服务器(206a至206n、306a和306b、406)的池中的哪个后端服务器,所述方法包括:
22.根据权利要求21所述的方法,其特征在于,所述方法还包括根据服务器当前负载确定将数据包发送到的服务器。
23.根据权利要求21或22所述的方法,其特征在于,所述至少一个字段为可选的头字段。
24.根据权利要求23所述的方法,其特征在于,所述至少一个字段是分配用于指示互联网协议地址(dst ip),但用于携带操作指示符的字段。
25.根据权利要求24所述的方法,其特征在于,所述至少一个字段为时间戳字段。
26.根据上述权利要求中任一项所述的方法,其特征在于,所述方法还包括根据所述至少一个字段中携带的所述操作指示符确定所述操作。
27.根据上述权利要求中任一项所述的方法,其特征在于,所述方法还包括根据至少一个字段中携带的权重指示符来确定所述权重。
28.根据权利要求27所述的方法,其特征在于,所述至少一个字段是分配用于指示目的地端口(dst),但用于携带所述权重指示符的字段。
29.根据权利要求27或28所述的方法,其特征在于,所述权重指示符包括业务指示符。
30.根据权利要求29所述的方法,其特征在于,所述方法还包括根据所述操作指示符,结合所述业务指示符,确定所述数据包的所述操作的所述权重。
31.根据上述权利要求中任一项所述的方法,其特征在于,所述方法还包括根据查表确定所述数据包的所述操作的所述权重。
32.根据权利要求29、30或31中任一项所述的方法,其特征在于,所述方法还包括确定将所述数据包发送到的所述服务器,以便将类似业务的数据包发送到处理此类业务的同一组服务器。
33.根据上述权利要求中任一项所述的方法,其特征在于,所述非应用层是传输层,所述协议是用于传输数据的传输协议。
34.根据上述权利要求中任一项所述的方法,其特征在于,所述非应用层是网络层,所述协议是用于传输数据的传输协议。
35.根据上述权利要求中任一项所述的方法,其特征在于,所述方法还包括在所述非应用层中执行应用层负载均衡。
36.一种在控制器(202、304、404)中使用的方法,其特征在于,用于传输数据包,所述数据包包括一个或多个字段和数据载荷,所述数据载荷是加密的,并且所述一个或多个字段中的至少一个字段是未加密的,所述控制器(202、304、404)用于在所述数据包的至少一个未加密字段中包括所述数据包的操作指示符和/或权重指示符。
37.根据权利要求36所述的方法,其特征在于,所述至少一个字段是分配用于指示互联网协议地址(dst ip),但用于携带所述操作指示符的字段。
38.根据权利要求36或37所述的方法,其特征在于,所述至少一个字段是分配用于指示端口(dst port),但用于携带所述权重指示符的字段。
39.根据权利要求38所述的方法,其特征在于,所述权重指示符为业务指示符。
40.一种设备,其特征在于,包括控制器(202、304、404),当加载指令并执行这些指令时,执行根据权利要求21至39中任一项所述的方法。
