四层、七层负载均衡基础的认识

2020-05-25 00:00:00 地址 负载 寻址 七层 四层

本文主题是让大家了解四层、七层负载的基本的认识,不对涉及的知识做深层分析。如果本文所表达的观点有不足或是有错误,欢迎大家纠正!


1、四层是什么、七层是什么?

做WEB应用时,我们会接触到负载均衡,那就会涉及到四层七层负载均衡的概念。这里简单的理清一下什么是四层负载均衡,什么是七层负载均衡?这里就要提到另外一个知识点:就是OSI。 OSI就是开放系统互联(Open System Interconnection),网络七层协议,自下而上有:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。下图是来自百度百科的内容(baike.baidu.com/item/OS):

那四层负载的“四层”是指传输层,七层负载的“七层”是指应用层。大家不要理解为有四层负载或有七层负载的意思。

2、X 层负载

我们应用比较多或是讲的比较多的就是四层和七层负载。除了4和7,还有其他层吗? 答案是有的:负载共有二层、三层、四层、七层。 - 二层负载:在数据链路层做负载。在百度百科中数据链路层DATALINK的描述是这样的:

在物理层上建立、撤销、标识逻辑链接和链路复用 以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址

注意“通过使用接收系统的硬件地址或物理地址来寻址”这句话。所以在数据链路层做负载,是通过MAC地址来寻址的,对外提供一个虚拟IP/虚拟MAC地址,请求数据包发送到该虚拟IP的Load Balancer上,再由该Load Balancer通过算法找到后端计算机的MAC地址,将数据包发送到目标计算机。 - 三层负载:在网络层做负载。在百度百科是这样描述的:

基于网络层地址(IP地址)进行不同网络系统间的路径选择

简单来说,三层跟二层负载相似。二层跟三层负载的不同,可以思考下,IP地址跟MAC地址的特性有什么 不同。比如,一个服务器,可以配置多个浮动IP。对外提供一个虚拟IP,请求数据包发送到该虚拟IP的Load Balancer上,再由该Load Balancer通过算法找到后端计算机的IP地址,将数据包发送到目标计算机。

  • 四层负载:理解四层负载也简单。三层是通过IP去寻址,而四层的寻址粒度更小,在IP的基础 上,再增加PORT来寻址。在百度百科是这样描述的:
    用一个寻址机制来标识一个特定的应用程序(端口号)

  • 七层负载:该层是应用层,除了IP + PORT负载均衡外,还能根据更多的应用特征来做负载均衡。比如,根据请求的URL地址、请求的资源(如 png ,jpg,html,接口等)、请求的来源(移动端、PC)等等。在百度百科是这样描述的:
    网络服务与使用者应用程序间的一个接口

四层和七层做的负载所基于的协议是不同的,四层是基于TCP/UDP的传输协议,而七层是基于应用协议(如proxy,http/https等)。

这里梳理了几个图表示:



【参考文章】

1、深入理解二层负载均衡和三层负载均衡的区别 2、一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等 3、网络理论知识1(四层、七层网络模型)

相关文章