CDN

173 阅读3分钟

概念

CDN(Content Delivery Network,内容分发网络)
将源站的内容发布到接近用户的网络“边缘”,用户可以就近获取所需数据,不仅降低了网络的拥塞状况、提高请求的响应速度,也能够减少源站的负载压力。

DNS

DNS( Domain Name System)域名系统
是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作

DNS服务器

  • 根DNS服务器
  • 顶级DNS服务器
  • 权威DNS服务器 例如:www.qq.com
  1. 根域: .
  2. 顶级域:.com
  3. 第二层域:qq.com
  4. 子域:www.qq.com
  5. 主机名:h1.www.qq.com

DNS解析过程

  1. 先在浏览器缓存中查找
  2. 客户端首先会在本机的hosts文件查找该域名对应的IP地址
  3. 没有则 查找本地DNS解析器缓存
  4. 没有则 到本地DNS服务器进行询问该域名对应的IP地址
  5. 没有则 查找本地DNS服务器的缓存
  6. 没有则 本地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 服务器。

segmentfault.com/a/119000001…

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…