你能学到什么?
课程目录
01 接入问题引入
1.1问题引入
经典问题:浏览器输入网站域名到网页加载出来,都经历了哪些过程?
浏览器抓包,关注第一个报文即可,后面的是页面渲染请求的资源。
wireshark抓包
一路经过了:
- DNS域名解析
- TCP建立连接
- TLS握手
- HTTP请求
思考:如果是我如何搭建服务器,让请求能接入服务器?
1.2 字节接入框架
02 企业接入升级之打怪之路
DNS: Domain Name System
1 域名系统
host管理
使用域名系统
域名购买和配置迁移
如何开放外部用户访问?
-
第一步用户进行DNS解析,解析www.example.com 绑定的id
-
得到ip之后,用终端通过网络边缘经过网络核心找到对应的服务器,并发起请求
-
服务器做出响应
2 自建DNS服务器
问题背景
权威DNS出现问题,你无法改变,掌握在自己手里的才是稳定的。
DNS服务器有四种:根、顶级、权威、本地
DNS查询过程
DNS记录类型
参考网址: tool.chinaz.com/nslookup
关于zone的理解
billing.yahuhost.com/knowledgeba…
常规而言一个Domain会有多个zone eg: 一个DNS服务器解析的范围是 .example.com。那么这个Domian下面可能有www1.example.com www2.example.com 两个zone
txt:购买证书时,验证你对这个域名有一定的控制权。不同的厂商会让你指定不同的txt。
SOA(start of Authority):SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。
SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。
权威DNS系统架构
- DNS Update:DNS主服务器master接受外部的变更指令
- DNS Notify:DNS主服务器master接受变更命令后,会自增自身的serial号,同时将变更的serial号告知从服务器slave
- DNS IXFR:DNS从服务器slave以增量的形式向master要求获取本次变更的内容
- DNS AXFR:DNS从服务器slave以全量的形式向master要求获取当前的全量数据
经过研发人员不断的努力,example公司有了自己的权威DNS系统
使用自建的DNS系统,扩大了技术影响,并且提高了权威DNS服务器的稳定性和可控性
3 接入HTTPS协议
问题背景
对称加密和非对称加密
对称加密加密在通信之前,需要先把密码传过去,有可能被截获。
非对称加密:常见RSA
这是HTTPS s的雏形
加密和解密使用不同的钥匙。公钥和私钥成对。公钥加密私钥解开,私钥加密公钥解。
SSL的通信过程
私钥常存服务器
- client给server发了一个hello消息,消息包括客户端支持的TLC版本和密码组合,还有一个随机字符串
- 发送server hello给client,消息包含数字证书、随机字符串
- client对server发来的公共数字证书进行一个认证,再用这个公钥对Premaster secret进行加密。
- 服务器收到之后再用私钥进行解密得到Premaster Secret
双方就会得到相同的四元组
- server random
- client random
- premaster secret
- 协商的加密算法
通过这个四元组计算得到Session Key
证书链
公钥一定是可靠的吗?会不会被劫持?
Server断发送的证书链,client会进行简单的验证
公钥存在证书里面
服务器对证书内容进行摘要计算
用私钥对摘要进行加密得到数字签名
证书链如何验签
使用https
购买证书放到自己的网站上。
解决了明文传输带来的一些黑产、不安全问题
4 接入全站加速
4.1 问题背景
mtu大小不匹配的问题。
网页请求大于3s,就有可能选择其他的产品进行替代。
4.2 解决方案
4.3 静态加速CDN
智能调度DNS,将合适的cdn节点的ip地址,客户端去访问cdn节点,cdn节点会对源站发起一次请求,然后对结果进行缓存,下一次就直接返回
第一公里问题:让用户在就近的节点获取数据
4.4 动态加速 DCDN
DCND 动态加速 会进行路径探测
4.5 DCND原理
边缘 汇聚 核心
边缘节点靠近用户、规模小、容量小、节点数量大
汇聚规模更大、容量更大、节点更少
核心机房规模超大、容量超大、节点巨少
动态加速:直接 一个TCP连接是一个RTT 20 一个TLS是两个RTT 20*2
西部地区到北京机房:20+10+10(中间机房的连接在预热的时候就连接好)