【计算机网络】四层负载均衡和七层负载均衡

前言

1、分层方式

首先我们知道,在计算机网络中,常用的协议分层方式:OSI和TCP/IP,以及实际生产中使用的协议划分方式。
在这里插入图片描述
在OSI中,各层的职责如下:
在这里插入图片描述
应用层:对软件提供接口以使程序能使用网络服务,如事务处理程序、文件传送协议和网络管理等。(HTTP、Telnet、FTP、SMTP)
表示层:程序和网络之间的翻译官,管理数据的解密加密数据转换、格式化和文本压缩。(JPEG、ASCII、GIF、DES、MPEG)
会话层:负责在网络中的两节点之间建立和维持通信,以及提供交互会话的管理功能。(RPC、SQL、NFS)
传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。(TCP、UDP、SPX)
网络层:将网络地址(ip地址)翻译成对应物理地址(网卡地址),并决定如何将数据从发送方路由到接收方。(IP、ICMP、IGMP、IPX、ARP、RARP)
数据链路层:物理地址寻址、数据的成帧、流量控制、数据的检错、重发。(IEEE 802.3/.2、HDLC、PPP、ATM)
物理层:物理连网媒介,如电缆连线连接器。(RS232、V.35、RJ-45、FDDI)

一、负载均衡

负载均衡(Load Balance)的指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。

负载均衡重点在于由原来的单个节点承接流量,变成多个节点分担流量,减少请求响应时间,提高应用程序的可用性和可伸缩性。

主要划分方式:根据采用的设备对象区分、根据位于OSI中不同层次的划分,这里我们主要讲根据OSI中的层次划分。

  • 二层负载均衡(mac地址):数据链路层,使用虚拟MAC地址方式,外部请求流量经过虚拟MAC地址,负载均衡收到流量请求后分配后端实际的MAC地址进行响应。
  • 三层负载均衡(ip地址):网络层,使用虚拟ip地址方式,外部请求流量经过虚拟IP地址,负载均衡收到流量请求后分配后端实际的IP地址进行响应。
  • 四层负载均衡(tcp、udp):传输层,使用IP+PORT接收外部流量请求,转发到对应的机器上。
  • 七层负载均衡(http):应用层,使用虚拟的URL或IP地址接收外部流量请求,转发到对应的处理服务器。

4.1 四层负载均衡

四层负载均衡器也称为四层交换机,从上面我们知道,四层负载均衡基于三层的负载均衡,发布三层的IP地址(虚拟IP),再加上四层的端口号,从而决定哪些流量需要做负载均衡,是基于IP+PORT的策略。

四层负载均衡主要用于分析IP及TCP/UDP协议,原理如下:

  • 通过IP+PORT决定流量的去向。
  • 对流量请求进行NAT处理,转发至后台服务器。
  • 记录TCP、UDP流量分别是由哪台服务器处理,后续该请求连接的流量都通过该服务器处理。

也就是说,现在,假设应用前有一层四层负载均衡器,那么外部TCP、UDP请求的流量到达具体应用前会在四层负载均衡处进行解析处理。具体如下:

  • 外部发送TCP请求进入负载均衡设备。
  • 负载均衡设备接收到第一个来自客户端的SYN请求,选择后台服务器,将报文中的目标IP地址进行修改(修改为转发后的后台服务器),转发到该服务器。
  • TCP三次握手进行客户端和服务器的连接。

在四层网络数据通信中,应用程序主要通过套接字(Socket) API 接口,使用 TCP 或 UDP 协议进行传输。应用程序向操作系统内核发送请求后,内核负责把数据包传递到传输层,然后将数据封装成 TCP 或 UDP 数据包。传输层将数据包发送到网络层,网络层对 IP 数据包进行封装,然后通过路由协议发送到目的地。网络层会根据协议规则进行负载均衡和路由选择,以确保数据包能够到达目标地址。

常见的四层负载均衡器:

  • F5:硬件负载均衡器,成本较高。
  • Nginx:轻量级四层负载均衡器,可缓存。(nginx四层是通过upstream模块)
  • Haproxy:模拟四层转发。
  • LVS(Linux Virtual Server):即Linux虚拟服务器,是一个比较重量级的四层负载均衡器。

4.2 七层负载均衡

七层负载均衡基于虚拟的URL或主机IP的负载均衡,能够解析应用层的报文。同时,它也支持四层负载均衡的功能,支持四层负载均衡器的功能,而且能解析应用层信息,如HTTP协议、URI、Cookie等信息,原理如下:

  • 通过虚拟url或主机IP进行流量识别,根据应用层信息进行解析,决定是否需要进行负载均衡。
  • 代理后台服务器与客户端建立连接,如Nginx可代理前后端,与前端客户端TCP连接,与后端服务器建立TCP连接。

在七层网络通信中,应用程序使用更具体的协议(如 HTTP、FTP、SMTP 等)通过套接字(Socket)API 接口进行网络通信。应用程序通过特定的 API 调用,按照指定协议进行数据传输。内核接收到数据后会将数据交给相应的协议模块进行处理。每个协议模块负责解析其对应协议的数据,并根据协议规则进行处理和组装,最终将数据包通过网络层传递到目标地址。7层负载均衡器可以根据报文内容,再配合负载均衡算法来选择后端服务器,因此也称为“内容交换器”。比如,对于Web服务器的负载均衡,7层负载均衡器不但可以根据“IP+端口”的方式进行负载分流,还可以根据网站的URL、访问域名、浏览器类别、语言等决定负载均衡的策略。例如,有两台Web服务器分别对应中英文两个网站,两个域名分别是A、B,要实现访问A域名时进入中文网站,访问B域名时进入英文网站,这在4层负载均衡器中几乎是无法实现的,而7层负载均衡器可以根据客户端访问域名的不同选择对应的网页进行负载均衡处理。

常见的七层负载均衡器:

  • Nginx:基于http协议(nginx七层是通过proxy_paas)
  • Haproxy:七层代理,会话保持、标记、路径转移等。

4.3 四层和七层负载均衡的区别

对比4层负载均衡器和7层负载均衡器运行的整个过程,可以看出,在7层负载均衡器模式下,负载均衡器与客户端及后端的服务器会分别建立一次TCP连接,而在4层负载均衡器模式下,仅建立一次TCP连接。

  • 分层位置:四层负载均衡在传输层及以下,七层负载均衡在应用层及以下。
  • 性能:四层负载均衡架构无需解析报文消息内容,在网络吞吐量与处理能力上较高;七层可支持解析应用层报文消息内容,识别URL、Cookie、HTTP header等信息。
  • 原理:四层负载均衡是基于ip+port;七层是基于虚拟的URL或主机IP等。
  • 功能类比:四层负载均衡类似于路由器;七层类似于代理服务器。
  • 安全性:四层负载均衡无法识别DDoS攻击;七层可防御SYN Cookie/Flood攻击。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/784544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

03-MySQl数据库的-用户管理

一、创建新用户 mysql> create user xjzw10.0.0.% identified by 1; Query OK, 0 rows affected (0.01 sec) 二、查看当前数据库正在登录的用户 mysql> select user(); ---------------- | user() | ---------------- | rootlocalhost | ---------------- 1 row …

新闻管理系统(源码+文档)

新闻管理系统(小程序、ios、安卓都可部署) 文件包含内容程序简要说明含有功能项目截图客户端新闻详情新闻首页分类退出登录个人中心拨打客服热线注册界面个人资料新闻评论成功 管理端用户管理分类管理新闻管理 文件包含内容 1、搭建视频 2、流程图 3、开…

v3-admin-vite 改造自动路由,view页面自解释Meta

需求 v3-admin-vite是一款不错的后端管理模板,主要是pany一直都在维护,最近将后台管理也进行了升级,顺便完成一直没时间解决的小痛痒: 在不使用后端动态管理的情况下。我不希望单独维护一份路由定义,我希望页面是自解…

计算机网络—VLAN 间路由配置

目录 1.拓扑图 2.实验环境准备 3.为 R3 配置 IP 地址 4.创建 VLAN 5.配置 R2 上的子接口实现 VLAN 间路由 6.配置文件 1.拓扑图 2.实验环境准备 配置R1、R3和S1的设备名称,并按照拓扑图配置R1的G0/0/1接口的IP地址。 [Huawei]sysname R1 [R1]interface Giga…

【Java EE】多线程(一)

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…

Mac OS上使用matplotlib库显示中文字体

文章目录 问题描述解决步骤参考文章 问题描述 如果我们想要使用matplotlib画图的话,可能会出现下面的这种warning: UserWarning: Glyph 24212 (\N{CJK UNIFIED IDEOGRAPH-5E94}) missing from current font.解决步骤 解决这个问题,可以按照下面的做法…

Excel求解二元一次方程

背景:如果想求解二元一次方程,常规方法就是联立方程求出一个未知数,然后带入任意一个等式。那么在excel里面应该怎么解决呢? 总所周知,大学里面会学矩阵行列式,二元一次方程其实就是一个简单的矩阵行列式。…

复现黄金票据

一、搭建环境 搭建域环境可以点击这个查看步骤 在这里面monowall的配置查看 二、实验步骤 拿到域名 拿到SID 使用mimikatz拿到krbtgt用户的哈希 删除票据 也可以使用mimikatz.exe删除票据,命令是kerberos::purge 伪造票据 拿到域控 伪造成功

字符串(java)

字符串的特点: 1.String是java定义好的一个类,定义在java.lang包里面,所以使用的时候是不需要进行导包的 2.java程序中的所有字符串文字,都被实为此类的对象。也就是说当我们就算是进行赋值,这个也会创造…

YOLOv8改进 | 低照度检测 | 2024最新改进CPA-Enhancer链式思考网络(适用低照度、图像去雾、雨天、雪天)

一、本文介绍 本文给大家带来的2024.3月份最新改进机制,由CPA-Enhancer: Chain-of-Thought Prompted Adaptive Enhancer for Object Detection under Unknown Degradations论文提出的CPA-Enhancer链式思考网络,CPA-Enhancer通过引入链式思考提示机制&am…

(1)半导体设备之sorter机(上)

01、什么是sorter 其实sorter 就是分选机,大家日常生活买的土豆,苹果,会用到这个, 大家日常用的硬币,游戏币,都是用sorter来进行挑选的,否则人工数硬币又累又苦逼,钱再对不上号&…

【JavaScript】函数 ② ( 函数参数 | 形式参数 | 实际参数 )

文章目录 一、JavaScript 函数参数1、形式参数2、实际参数3、代码示例 - 形参和实参 一、JavaScript 函数参数 在 JavaScript 语言中 , 参数 分为以下两种 : 形式参数 Parameter , 简称 " 形参 " , 是 在函数定义时列出的变量 , 用于预期函数将接收的输入值 ;实际参…

计算机网络-从输入网址到访问网站的全过程

当我们在浏览器中输入一个网址并按下回车键时,会发生一系列复杂的过程,最终使我们能够看到网页的内容。以下是这个过程的详细步骤: 客户端:首先,用户在浏览器中键入网址,然后浏览器会根据这个网址生成一个H…

ER图与关系模型

1、试画出数据库系统的三级模式结构图。 2、试画出数据库系统的组成图。 3、学校运动会有来自全校各学院运动员组成的代表团参赛各类竞赛项目。一个 代表团由多名运动员组成;一个运动员可以参加不同项目的比赛,而一个竞赛项目允许多名运动员参赛。为了…

ADB(Android Debug Bridge)操作命令详解及示例

ADB(Android Debug Bridge)是一个强大的命令行工具,它是Android SDK的一部分,主要用于Android设备(包括真实手机和平板电脑以及模拟器)的调试、系统控制和应用程序部署。 下面是一些ADB的常用命令&#xff…

小程序开发调试指南

调试指南 一、Vconsole 一些线上问题需要在真机中进行调试或日志输出,为方便查看前端日志的输出,App 端提供了调试模式, 打开调试模式后面板界面中会显示 vConsole 按钮,点击后可打开手机端 vConsole界面查看日志输出。 1.如何开启 点击小…

数字示波器

数字示波器 综述:本文讲述了数字示波器的电路组成。 一.定义 显示电信号波形的仪器 二.组成 由模拟前端处理电路、电源电路、单片机电路、控制电路、触发电路、校准电路组成。 1)模拟前端处理电路 将输入的模拟信号处理后传…

CAN(1) 入门介绍

1.基本概念 CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。 CAN 总线协议已经成为汽车计算机控制系…

OmniGraffle Pro for mac 出色的图形设计软件

OmniGraffle Pro是一款非常出色的图形设计软件,它主要适用于Mac和iPad平台,可以用来轻松绘制各种精美的图表、示意图和界面设计。 软件下载:OmniGraffle Pro for mac中文注册激活版 以下是OmniGraffle Pro的一些主要特点和功能: 界…

短剧猫H5页面html源码

短剧猫H5页面html源码,包含一个接口,像俩天块样式发送剧名回复网盘链接,文件上传解压就能用。 源码免费下载地址抄笔记 (chaobiji.cn)https://chaobiji.cn/