概念
CDN(Content Delivery Network,内容分发网络)
将源站的内容发布到接近用户的网络“边缘”,用户可以就近获取所需数据,不仅降低了网络的拥塞状况、提高请求的响应速度,也能够减少源站的负载压力。
DNS
DNS( Domain Name System)域名系统
是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作
DNS服务器
- 根DNS服务器
- 顶级DNS服务器
- 权威DNS服务器 例如:www.qq.com
- 根域: .
- 顶级域:.com
- 第二层域:qq.com
- 子域:www.qq.com
- 主机名:h1.www.qq.com
DNS解析过程:
- 先在浏览器缓存中查找
- 客户端首先会在本机的hosts文件查找该域名对应的IP地址
- 没有则 查找本地DNS解析器缓存
- 没有则 到本地DNS服务器进行询问该域名对应的IP地址
- 没有则 查找本地DNS服务器的缓存
- 没有则 本地DNS依次向根DNS(全球13台)、顶级域DNS、权威DNS进行询问,最终本地DNS将IP地址发送给客户端 从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。
CDN过程
在DNS解析域名时新增了一个全局负载均衡系统(GSLB),GSLB的主要功能是根据用户的本地DNS的IP地址判断用户的位置,筛选出距离用户较近的本地负载均衡系统(SLB),并将该SLB的IP地址作为结果返回给本地DNS。SLB主要负责判断缓存服务器集群中是否包含用户请求的资源数据,如果缓存服务器中存在请求的资源,则根据缓存服务器集群中节点的健康程度、负载量、连接数等因素筛选出最优的缓存节点,并将HTTP请求重定向到最优的缓存节点上。
当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS 系统会最终将域名的解析权交给 CNAME 指向的 CDN 专用 DNS 服务器。
CDN本身就是一种DNS劫持
CNAME
CNAME 即指别名记录,也被称为规范名字。一般用来把域名解析到别的域名上,当需要将域名指向另一个域名,再由另一个域名提供 ip 地址,就需要添加 CNAME 记录。
A记录是解析域名到IP,CNAME是解析域名到另外一个域名。
当用户访问www.dd.com 的时候,本地DNS会获得CDN提供的CNAME域名:www.xdd.com, 然后再次向DNS调度系统发出请求,通过DNS调度系统的智能分析,把这个www.xdd.com 指向一个(离用户地理位置最近的)CDN提供商的服务器IP,让用户就近取到想要的资源(如访问网站),大大降低了延迟。
developer.qiniu.com/fusion/kb/1… zhuanlan.zhihu.com/p/147723106 zhuanlan.zhihu.com/p/147723106
参考资料:
juejin.cn/post/684490… www.zhihu.com/question/23… segmentfault.com/a/119000002… www.huaweicloud.com/zhishi/cdn0…