CDN全称Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度,从最接近用户的地方获得所需的信息,彻底解决网络拥塞,提高响应速度,是目前大型Web网站使用的流行的应用方案.

一. CDN 概述

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络"边缘"的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。

Cache层的技术,消除数据峰值访问造成的结点设备阻塞。Cache服务器具有缓存功能,所以大部分网页对象(Web page object),如html, htm, php等页面文件,gif,tif,png,bmp等图片文件,以及其他格式的文件,在有效期(TTL)内,对于重复的访问,不必从原始网站重新传送文件实体, 只需通过简单的认证(Freshness Validation)- 传送几十字节的Header,即可将本地的副本直接传送给访问者。由于缓存服务器通常部署在靠近用户端,所以能获得近似局域网的响应速度,并有效减少广域带宽的消耗。不仅能提高响应速度,节约带宽,对于加速Web服务器,有效减轻源服务器的负载是非常有效的。

根据加速对象不同,分为 客户端加速 和 服务器加速。

客户端加速 : Cache部署在网络出口处,把常访问的内容缓存在本地,提高响应速度和节约带宽;
服务器加速 : Cache部署在服务器前端,作为Web服务器的代理缓存机,提高Web服务器的性能,加速访问速度
如果多台Cache加速服务器且分布在不同地域,需要通过有效地机制管理Cache网络,引导用户就近访问(比如通过DNS引导用户),全局负载均衡流量,这是CDN内容传输网络的基本思想.

CDN对网络的优化作用主要体现在如下几个方面  - 解决服务器端的“第一公里”问题  - 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响  - 减轻了各省的出口带宽压力  - 缓解了骨干网的压力  - 优化了网上热点内容的分布

二.CDN 的工作原理

2.1. 传统访问过程(未加速缓存服务)

我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别:

由上图可见,用户访问未使用CDN缓存网站的过程为:

用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.
    LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
    ROOT DNS将域名授权dns记录回应给 LocalDns
    LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址
    域名授权dns 查询域名记录后,回应给 LocalDns
    LocalDns 将得到的域名ip地址,回应给 用户端
    用户得到域名ip地址后,访问站点服务器
    站点服务器应答请求,将内容返回给客户端.

2.2. CDN访问过程(使用缓存服务)

CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据
下面让我们看看访问使用CDN缓存后的网站的过程:

通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为:

用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.
    LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
    ROOT DNS将域名授权dns记录回应给 LocalDns
    LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址
    域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns
    LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址
    智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns
    LocalDns 将得到的域名ip地址,回应给 用户端
    用户得到域名ip地址后,访问站点服务器
    CDN节点服务器应答请求,将内容返回给客户端.(缓存服务器一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程)

通过以上的分析我们可以得到,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,需要使用DNS(域名解析)来引导用户来访问Cache服务器,以实现透明的加速服务. 由于用户访问网站的第一步就是 域名解析 ,所以通过修改dns来引导用户访问是最简单有效的方式.
2.3. CDN网络的组成要素

对于普通的Internet用户,每个CDN节点就相当于一个放置在它周围的网站服务器.
通过对dns的接管,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求.
由于它离用户更近,因而响应时间必然更快.

从上面图中 虚线圈起来的那块,就是CDN层,这层是位于 用户端 和 站点服务器之间.

智能调度DNS(比如f5的3DNS)

智能调度DNS是CDN服务中的关键系统.当用户访问加入CDN服务的网站时,域名解析请求将最终由 智能调度DNS 负责处理.
    它通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户可以得到快速的服务.
    同时它需要与分布在各地的CDN节点保持通信,跟踪各节点的健康状态,容量等,确保将用户的请求分配到就近可用的节点上.

缓存功能服务:
        a.负载均衡设备(如lvs,F5的BIG/IP)
        b.内容Cache服务器(如squid)
        c.共享存储(根据缓存数据量多少决定是否需要)

总结:

由于时间的关系,本篇内容先写到这里。对于CDN智能调度DNS、CND智能调度DNS简化实现等我将会在下一篇文章中来具体总结说明。总之,在建立CDN网路时,最关键的就是 智能调度DNS,这个是CND网络总协调,通过高效的调度算法,可以使用户得到最佳的访问体验.其次就是 CND节点的管理,比如涉及到 内容的同步机制,配置文件的更新等等,都需要有一套机制来保证.当然在大型网站中,也要考建设CDN体系的成本和回报率.。

Web应用网站CDN加速访问技术原理相关推荐

  1. CDN加速的工作原理是什么

    许多网站运营者都信奉着一个原则,这个原则指导这运营者们优化网站的访问速度.页面效果等,它就是"8秒原则"."8秒原则"是指,用户在打开网站时,记载时间不能超过8 ...

  2. CDN加速的工作原理是什么?它有什么好处

    许多网站运营者都信奉着一个原则,这个原则指导着运营者们优化网站的访问速度.页面效果等,它就是"8秒原则"."8秒原则"是指,用户在打开网站时,记载时间不能超过8 ...

  3. php 上传apk包到cdn_网站cdn加速,cdn防御系统

    网站cdn加速,cdn防御系统,本站采用UCloud UFile对象存储和UCloud云分发对图像视频进行加速:奇安信网站卫士对js.css加速,对html压缩.两个cdn都有防DDOS的能力. 我用 ...

  4. WordPress网站为什么及如何使用CDN加速访问

    在本教程中,我们将向您介绍使用CDN的基础知识,并讨论为什么需要使用它.然后,我们将推荐一些适合WordPress网站上使用的CDN解决方案. 世界比以往任何时候都发展得更快,这意味着您的网站需要跟上 ...

  5. 网站CDN加速都有哪些优势呢?甜甜告诉您

    CDN是指内容分发网络,通过将源站的内容分发至各地最接近用户的加速节点上,使用户就近获取所需内容,有效的缩短用户访问服务器的时间,从而降低延迟来提高用户访问网站的速度.快快网络对接华为云.阿里云和腾讯 ...

  6. 小麦盒子cdn_国内外优秀的 CDN 加速服务商,让你的网站访问速度飞起来

    一.域名有备案号/有备案CDN 这个工具是我做网站第二个使用的CDN加速,其实用他的原因还是因为360的CDN加速抽风的时间我就直接切换到百度云的CDN,百度云的CDN加速使用印象特别的不好,因为百度 ...

  7. 改网站不存在cdn服务器,网站添加cdn加速服务器

    网站添加cdn加速服务器 内容精选 换一换 通过本文档,您可以快速了解华为云CDN的基础知识,如果想了解更多详细信息,可以根据扩展阅读的引导来进行阅读.CDN(Content Delivery Net ...

  8. 网站怎么开启CDN加速?最简单的步骤分享!

    我们都知道,CDN就是内容分发网络,是通过将网站内容分发值全网加速节点,配合精准智能调度系统和边缘缓存,使最终用户可以就近获取所需内容,有效降低网络拥塞,体用用户访问响应速度和命中率. 但是,对于大部 ...

  9. “DNAT+云链接+CDN”加速方案,助力出海企业落地生长

    随着国内互联网行业的人口红利逐渐消失,本土互联网市场竞争不断加剧,加之国家多项"走出去"政策的推动,越来越多的中国互联网企业开始在本土以外寻求更广阔的发展空间,"出海&q ...

  10. 免费的几个CDN加速

    总结一下国内外几个好不错的CDN网站加速服务.可能会有一些熟知的在里面. Incapsula CDN网站加速服务.Incapsula是美国一家专门提供CDN服务的网站,虽不是最早提供CDN服务的商家, ...

最新文章

  1. android 文件mimetype_【Android】NFC课件
  2. 计算机组成原理第4章,计算机组成原理-第4章总结.doc
  3. 【动态规划】求最长不下降序列
  4. 【渝粤教育】国家开放大学2018年春季 3950T金融基础 参考试题
  5. SQLite 3.7.13的加密解密(二)—— 开放宏定义
  6. output的用法java_JavaI/O:简单的使用BufferedOutputStream和BufferedInputStr
  7. [转]微软SerialPort秘籍[SerialPort为什么死锁程序的分析]
  8. 韩立刚计算机网络——第七章:Internet 上面的音频和视频
  9. Spring Boot 2020 官方基础68课程第十七个 Hypermedia-Driven RESTful Web Service 超媒体
  10. 腾讯云灯塔计划——云行业研究报告
  11. win10锁屏壁纸文件夹位置
  12. 缔造企鹅:产品经理是这样炼成的札记-技巧
  13. [JS] 聊一聊File对象
  14. sql monitor简介
  15. ConnectionString
  16. php性能优化的几个方法
  17. 在Win7环境下搭建Geant4工作平台
  18. MFC——CPropertySheet(属性表单)和CPropertyPage(属性页)——实现分页显示
  19. 论文阅读:Probabilistic Modeling of Semantic Ambiguity for Scene Graph Generation(CVPR21)
  20. Have your GDX app run in the web browser

热门文章

  1. html设置ie兼容性视图,如何用脚本配置IE兼容性视图设置
  2. FPGA经验谈系列文章——写代码心中要有电路?
  3. 彩色图像和灰色图像的区别
  4. SpringCloud构建后端的common项目使用Feign实现服务间调用
  5. 天刀 服务器状态,12月11日服务器例行维护公告(已完成)
  6. opencv(16) ROI区域图像叠加图像混合
  7. 华为手机USB调试与Log
  8. c#语言输出字符串长度,C#获取字符串长度(string.Length)
  9. 8项引导技能在Scrum中的应用
  10. 【学习方法】常见算法在实际项目中的应用