这是我参与「第三届青训营 -后端场」笔记创作活动的的第6篇笔记」
网络接入
问题引入
- 浏览器输入网址域名到网页加载出来,都经历了哪些过程?
- 域名解析DNS
- tcp建连(三次握手)
- SSL握手 (https加密通信)TLS
- HTTP请求
- 浏览器抓包(根源或本质?输入的url)其他加载出来的是渲染需要
字节接入框架
- 一个报文的生命周期(10步)
具体分析
域名系统
- Host管理 /etc/hosts,诸多问题:流量负载、主机名称冲突、名称修改时效性差
- 使用域名系统替换hosts文件 (域名树-根-〉顶级域-〉二级域-〉三级域-〉四级域)
- 域名购买与配置迁移,域名备案、修改配置
- 开放外部用户访问(建设外部网站),租赁外网ip
自建DNS服务器
- DNS记录类型
- 权威DNS系统架构,企业角度需要的是哪种DNS服务器?
- 权威DNS、LocalDNS(可选)
- 常见开源DNS:bind,nsd, knot,coredns
HTTPS协议
- 问题背景
- 页面弹窗、广告
- http 明文传输 不安全
- 对称加密与非对成加密
- 握手阶段非对称加密(ADS)传输对称加密的密钥
- 数据传输阶段,对称加密数据
- 客户端、服务器 都有相同的状态
- client random
- server random
- premaster secret
- 加密算法协商——》对称密钥 session key
- 公钥确定是可信的吗?是否会被劫持?
- 证书链
- server端发送是带签名的证书链
- client 收到仍会验证
- 服务端:【证书摘要-〉私钥加密-》指纹(数字签名)+上级CA公钥】-》客户端接收,使用CA公钥解谜-》生成证书摘要-进行比对。
接入全站加速
- 问题背景:外网用户访问站点 可能会出现的问题
- 源站容量滴,并发访问少,容易垮
- 网络传输:丢包、劫持、mtu
- 自选网络联络长,时延高 响应慢、卡顿
- 解决方案
- 源站容量: 增加后端机器扩容,静态内容,使用静态加速缓存
- 网络传输:动态加速DCDN
- 全站加速:静态加速+动态加速
- 静态加速 CDN
- 针对静态文件传输(图片、视频、文件等),网络优化方式?
- 缓存,缓存到CDN节点上,不用请求源站了
- 解决服务器端的第一公里问题
- 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
- 减轻了各省的出口带宽压力
- 优化了网上热点内容的分布,热点内容缓存在了靠近客户端的CDN节点上。
- 针对静态文件传输(图片、视频、文件等),网络优化方式?
- 动态加速DCDN
- 针对POST等非静态请求等不能在用户边缘缓存的业务,基于智能选路技术,从众多回源路线中择优选择一条线路进行传输。
- 全站加速
-
四层负载均衡
- 工作在OSI的4层和7层??
- 一个物理机-》配一个ip,多个应用,多个server监听不同端口,容灾问题:一个server由于操作不当挂,全挂
- 组多个公网IP-数量有限
是什么
避免了把物理机的ip暴露在公网上
常用的负载均衡调度算法
常见实现方式
- FULLNAT
七层负载均衡
应用层网关
四层和七层负载均衡的对比
-
四层即运输层,就是基于 IP + 端口的负载均衡;
-
七层即应用层,就是基于 URL 等应用层信息的负载均衡; 还有基于 MAC 地址的二层负载均衡和基于 IP 地址的三层负载均衡。
-
二层负载均衡会通过一个虚拟 MAC 地址接收请求,然后再分配到真实的 MAC 地址
-
三层负载均衡会通过一个虚拟 IP 地址接收请求,然后再分配到真实的 IP 地址;
-
四层通过虚拟 IP + 端口接收请求,然后再分配到真实的服务器
-
七层通过虚拟的 URL 或主机名接收请求,然后再分配到真实的服务器。
所谓的四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。
所谓的四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。
根据不同的信息(不同层决定不同的划分粒度)决定选择哪台服务器处理
比如四层的负载均衡,就是通过发布三层的 IP 地址(VIP),然后加四层的端口号,如[ip:端口号],来决定哪些流量需要做负载均衡, 对需要处理的流量进行 NAT 处理,转发至后台服务器,并记录下这个 TCP 或者 UDP 的流量是由哪台服务器处理的, 后续这个连接的所有流量都同样转发到同一台服务器处理。
七层的负载均衡,就是在四层的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征如[ip:端口号:URL等], 比如同一个 Web 服务器的负载均衡,除了根据 VIP 加 80 端口辨别是否需要处理的流量, 还可根据七层的 URL、浏览器类别、语言来决定是否要进行负载均衡。