四层负载均衡和七层负载均衡之间的区别

    作者:课课家教育更新于: 2016-07-26 16:17:00

      作为一名软件研发者,大家都知道负载均衡的设备通常都是被称为“四到七层交换机”,那么你知道四层负载均衡和七层负载均衡之间的区别是什么吗?接下来,小编就从三个方面来说明它们之间的区别。

      1.技术原理上的区别

      ①四层负载均衡

      所谓的四层负载均衡,就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器来选择方式,决定最终选择的内部服务器。

      我们以最常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN请求时,即通过上述的方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(我们改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为了确保服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。如图所示:

    负载均衡

      ②七层负载均衡

      所谓的七层负载均衡,我们也称之为“内容交换”,就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器来选择方式,决定最终选择的内部服务器。

      我们以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容然后再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后我们再根据该报文中的特定的字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。在这种情况下,负载均衡设备更类似于一个代理服务器。负载均衡和前端的客户端和后端的服务器会分别建立TCP的连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求会更高,处理七层的能力也一定会低于四层模式的部署方式。那么,我们为什么还需要七层负载均衡呢?请继续接着往下看!

      2.应用场景的需求

      七层应用负载均衡的好处,是使得整个网络更加“智能化”,可以参考我们一下专门针对HTTP应用的优化介绍的文章,就可以基本上了解到这种方式所在的优势。例如访问一个网站的用户流量,我们可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术,将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术。当然这只是七层应用均衡的一个小小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任何意义上的修改,极大的提升了应用系统在网络层的灵活性。很多在后台,(如Nginx或者Apache)上部署的功能都可以前移到负载均衡设备上,如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等功能。

      另外一个常常被我们提到功能就是安全性。网络中最常见的SYNFlood攻击,就是黑客控制众多源客户端,使用虚假IP地址对同一目标发送SYN攻击,通常这种攻击会大量的发送SYN报文,从而耗尽服务器上的相关资源,以达到DenialofService(DoS)的目的。从技术原理上,我们也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而七层模式下这些SYN攻击自然在负载均衡设备上就会截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤特定报文,如SQLInjection等应用层面的特定攻击手段,从应用层面进一步提高系统整体安全。

      现在的七层负载均衡,主要还是要着重于应用广泛的HTTP协议,所以它的应用范围主要是众多的网站或者内部信息平台等基于B/S开发的系统。四层负载均衡则对应其他TCP应用,例如基于C/S开发的ERP等系统。

      3.七层应用需要考虑的问题

      ①是否真的有必要

      七层应用的确可以提高流量智能化,同时也必不可免的带来设备配置复杂,负载均衡压力增高以及故障排查上的复杂性等问题。我们在设计系统时,需要考虑四层七层同时应用的混杂情况。

      ②是否真的可以提高安全性

      如SYNFlood攻击,七层模式的确将这些流量从服务器屏蔽,但是负载均衡设备本身要有强大的抗DDoS能力,否则,即使服务器正常而作为中枢调度的负载均衡设备故障也会导致整个应用的崩溃。

      ③是否有足够的灵活度

      七层应用的优势是可以让整个应用的流量智能化,但是负载均衡设备必须需要提供完善的七层功能,才能满足客户根据不同情况的基于应用的调度。最简单的一个考核就是能否取代后台Nginx或者Apache等服务器上的调度功能。能够提供一个七层应用开发接口的负载均衡设备,可以让客户根据需求任意设定功能,才真正有可能提供强大的灵活性和智能性。

      小编结语:

      相信你看到这里,都已经知道了四层负载均衡和七层负载均衡之间的区别了吧,当然这只是小编的一些见解而已,仅供参考,希望这能对你有帮助。

      课课家会一直更新软件研发的文章,请继续关注我们的网站:课课家教育。谢谢!

课课家教育

未登录