网络协议原理和高并发负载均衡(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)的主要内容,如果未能解决你的问题,请参考以下文章