先说结论:
4 层负载均衡本质是转发,而 7 层负载本质是内容交换和代理
OSI: open system interconnection 开放式系统互联参考模型
OSI 7层模型 | TCP/IP 4层模型 |
---|---|
应用层 | 应用层 |
表示层 | 应用层 |
会话层 | 应用层 |
传输层 | 传输层 |
网络层 | 传输层 |
数据链路层 | 数据链路层 |
物理层 | 数据链路层 |
网络七层模型是一个标准,而非实现。 网络四层模型是一个实现的应用模型。 网络四层模型由七层模型简化合并而来。
在OSI 7层模型中,从下往上,应用层属于第七层,而传输层属于第四层, 所谓四层即运输层,就是基于 IP + 端口的负载均衡; 七层即应用层,就是基于 URL 等应用层信息的负载均衡; 同理,还有基于 MAC 地址的二层负载均衡和基于 IP 地址的三层负载均衡。
4 层负载均衡本质是转发,而 7 层负载本质是内容交换和代理
以常见的 TCP 为例:
7层负载均衡相较于4层负载均衡在更耗费性能的同时,也获得了更加智能的优点,由于在应用层进行识别,所以7层负载均衡可以基于不同的协议(如http、radius、dns等)进行负载,也可以根据应用层协议中有意义的内容来进行负载,如:除了根据IP加端口进行负载外,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。
而4层负载均衡基本就是基于 IP + 端口进行负载均衡了。
Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件。
LVS主要用来做四层负载均衡。
Nginx主要用来做七层负载均衡。
Haproxy主要用来做七层负载均衡。