网络协议原理和高并发负载均衡(LVS+keepalived)

Posted 风某人~Wind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络协议原理和高并发负载均衡(LVS+keepalived)相关的知识,希望对你有一定的参考价值。

我们应用中常见的协议有

1. 访问浏览器资源--http协议

2. 访问我们的虚拟机--ssh协议

3. 发邮件  --smtp协议

比如我们需要访问一个浏览器资源:https://www.baidu.com

他需要通过

应用层、表示层、会话层-->传输控制层-->网络层-->链路层-->物理层

然后通过交换机 ---路由器 ---网线 ---中间经历很多个站点---然后到达服务器端

 应用层

应用层他就是相当于一个浏览器或者也可以说是一个Tomcat,由他们根据url发起http请求到达,然后会在系统中确定端口号进行通信,然后在把这个请求传给传输控制层

传输控制层(TCP/udp协议)

传输控制层拿到应用层传过来的请求,会去找当前url并建立三次握手,建立握手之前呢,它需要找到这个url在哪,所以它会把握手请求发送给网络层

网络层

网络层接收到当前的需要请求外部网络的ip和端口号,先根据自身的路由表匹配网络出口,找到下一个网络站点,俗称 "下一跳" 机制,每到一个地方只匹配下一个出口站点在哪。找到下一个站点后,去链路层

链路层

链路层中会把:目标ip地址+端口号、目标mac地址,源ip地址、源mac地址发送给下一步要走的站点,走物理层。

物理层

物理层就代表网线之类的东西,用来传输数据和连接外部网络用的

 这就是一整个网络通信的流程

如果说,在并发比较高的情况下,一个服务端已经不足以支撑客户端的访问了,这时候如果做服务端集群的情况下进行分流,就得用一个服务来做负载均衡

思考:你一个服务端都扛不起这么多并发的情况下,你负载均衡的服务怎么就能扛得住这么多并发呢?

客户端和服务器之间 是走7层负载来进行通信的,原本是客户端和服务器通信,然后你在加一个负载均衡服务器的时候,,那就成客户端 --> 负载均衡服务器  --> 服务端。那中间多了一层,那是不是会变慢了呢。

LVS模型

所以就有了LVS模型,LVS是基于4层负载的负载均衡,它不会跟客户端建立7层连接,只建立4层,握手还是客户端和服务器去握,LVS只进行数据包转发,而且后端服务器必须是一摸一样的

LVS分为:NAT模型、DR(直接路由)模型、TUN(隧道)模型

Keepalived是基于LVS做LVS的高可用。

以上是关于网络协议原理和高并发负载均衡(LVS+keepalived)的主要内容,如果未能解决你的问题,请参考以下文章

Centos使用LVS+keepalive 搭建集群原理详解

Centos7搭建lvs+keepalive负载均衡集群

实战 LVS+Keepalived 实现负载均衡和高可用

LVS+Keepalive

LVS+Keepalive的高可用群集

企业运维之 Lvs 负载均衡和高可用