Skip to content

CDN

CDN

INFO

  • CDN(全称Content Delivery Network),即内容分发网络

  • 构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术

  • 简单来讲,CDN就是根据用户位置分配最近的资源

  • 于是,用户在上网的时候不用直接访问源站,而是访问离他“最近的”一个CDN节点,术语叫边缘节点,其实就是缓存了源站内容的代理服务器

    Details

    pic

  • 域名是一个具有层次的结构,从上到下一次为根域名、顶级域名、二级域名、三级域名...

    Details

    pic

原理

INFO

  • 没有应用CDN时:
    • 我们使用域名访问某一个站点时的路径为:
    • 用户提交域名浏览器对域名进行解析→DNS解析得到目的主机的IP地址根据IP地址访问发出请求得到请求数据并回复
  • 应用CDN后:
    • DNS返回的不再是IP地址,而是一个CNAME(Canonical Name) 别名记录,指向CDN的全局负载均衡
    • CNAME实际上在域名解析的过程中承担了中间人(或者说代理)的角色,这是CDN实现的关键

查询方式

查询方式

  • 递归查询:
    • 如果A请求B,那么B作为请求的接收者一定要给A想要的答案
    Details

    pic

  • 迭代查询:
    • 如果接收者B没有请求者A所需要的准确内容,接收者B将告诉请求者A,如何去获得这个内容,但是自己并不去发出请求
    Details

    pic

域名缓存

域名缓存

  • 在域名服务器解析的时候,使用缓存保存域名和IP地址的映射,计算机中DNS的记录也分成了两种缓存方式:
    • 浏览器缓存:浏览器在获取网站域名的实际IP地址后会对其进行缓存,减少网络请求的损耗
    • 操作系统缓存:操作系统的缓存其实是用户自己配置的hosts文件

域名解析

INFO

  • 首先搜索浏览器的DNS缓存,缓存中维护一张域名与IP地址的对应表
  • 若没有命中,则继续搜索操作系统的DNS缓存
  • 若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器采用递归查询自己的DNS缓存,查找成功则返回结果
  • 若本地域名服务器的DNS缓存没有命中,则本地域名服务器向上级域名服务器进行迭代查询
    • 首先本地域名服务器向根域名服务器发起请求,根域名服务器返回顶级域名服务器的地址给本地服务器
    • 本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址
    • 本地域名服务器根据权限域名服务器的地址向其发起请求,最终得到该域名对应的IP地址
  • 本地域名服务器将得到的IP地址返回给操作系统,同时自己将IP地址缓存起来
  • 操作系统将IP地址返回给浏览器,同时自己也将IP地址缓存起
  • 至此,浏览器就得到了域名对应的IP地址,并将IP地址缓存起
流程图

pic

负载均衡

INFO

  • 由于没有返回IP地址,于是本地DNS会向负载均衡系统再发送请求 ,则进入到CDN的全局负载均衡系统进行智能调度
    • 看用户的 IP 地址,查表得知地理位置,找相对最近的边缘节点
    • 看用户所在的运营商网络,找相同网络的边缘节点
    • 检查边缘节点的负载情况,找负载较轻的节点
    • 其他,比如节点的“健康状况”、服务能力、带宽、响应时间等
  • 结合上面的因素,得到最合适的边缘节点,然后把这个节点返回给用户,用户就能够就近访问CDN的缓存代理
Details

pic

缓存代理

INFO

  • 缓存系统是CDN的另一个关键组成部分,缓存系统会有选择地缓存那些最常用的那些资源,其中有两个衡量CDN服务质量的指标:
    • 命中率:用户访问的资源恰好在缓存系统里,可以直接返回给用户,命中次数与所有访问次数之比
    • 回源率:缓存里没有,必须用代理的方式回源站取,回源次数与所有访问次数之比
  • 缓存系统也可以划分出层次,分成一级缓存节点和二级缓存节点。一级缓存配置高一些,直连源站,二级缓存配置低一些,直连用户
  • 回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,可以有效地减少真正的回源
  • 现在的商业CDN命中率都在90%以上,相当于把源站的服务能力放大了10倍以上

总结

总结

  • CDN目的是为了改善互联网的服务质量,通俗一点说其实就是提高访问速度
  • CDN构建了全国、全球级别的专网,让用户就近访问专网里的边缘节点,降低了传输延迟,实现了网站加速
  • 通过CDN的负载均衡系统,智能调度边缘节点提供服务,相当于CDN服务的大脑,而缓存系统相当于CDN的心脏,缓存命中直接返回给用户,否则回源

Copyright © 2024 Fang He