转载自  CDN如何实现,关键技术是什么?

CDN原理

CDN网络是在用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,这就是CDN的最基本的原理。如下图:

图中各点含义如下:

1.用户向浏览器输入www.web.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服务器请求;

2.网站的DNS域名解析器设置了CNAME,指向了www.web.51cdn.com,请求指向了CDN网络中的智能DNS负载均衡系统;

3.智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;

4.用户向该IP节点(CDN服务器)发出请求;

5.由于是第一次访问,CDN服务器会向原web站点请求,并缓存内容;

6.请求结果发给用户。

当然很多细节没有涉及到,比如第1步,首先向本地的DNS服务器请求。第5步,内容淘汰机制(根据TTL)等。但原理大体如此。

当用户访问加入CDN服务的网站时,域名解析请求将最终交给全局负载均衡DNS进行处理。全局负载均衡DNS通过一组预先定义好的策略,将当时最接近用 户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在世界各地的所有CDNC节点保持通信,搜集各节点的通信状态,确保不将用户的请求 分配到不可用的CDN节点上,实际上是通过DNS做全局负载均衡。

对于普通的Internet用户来讲,每个CDN节点就相当于一个放置在它周围的WEB。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求。由于它离用户更近,因而响应时间必然更快。

CDN节点

每个CDN节点由两部分组成:负载均衡设备和高速缓存服务器。

负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。CDN的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中 总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。通过完善的网管系统,用户可以对系统配置进行修改。

CDN网络

理论上,最简单的CDN网络有一个负责全局负载均衡的DNS和各节点一台Cache,即可运行。DNS支持根据用户源IP地址解析不同的IP,实现 就近访问。为了保证高可用性等,需要监视各节点的流量、健康状况等。一个节点的单台Cache承载数量不够时,才需要多台Cache,多台Cache同时 工作,才需要负载均衡器,使Cache群协同工作。

CDN关键技术:

1.缓存算法[Squid];

2. 分发能力;

3. 负载均衡[Nginx]

4. 基于DNS[BIND];

5. 支持协议;

缓存算法决定命中率、源服务器压力、POP节点存储能力。

分发能力取决于IDC能力和IDC策略性分布。

负载均衡(智能调度)决定最佳路由、响应时间、可用性、服务质量。

基于DNS的负载均衡以CNAME实现[to cluster],智取最优节点服务,

缓存点有客户端浏览器缓存、本地DNS服务器缓存。

缓存内容有DNS地址缓存、客户请求内容缓存、动态内容缓存。

支持协议如静动态加速(图片加速、https带证书加速)、下载加速、流媒体加速、企业应用加速、手机应用加速。

CDN提供一种机制,当用户请求内容时,该内容能够由以最快速度交付的Cache来向用户提供,这个挑选“最优”的过程就叫做负载均衡。

从功能上看,典型的CDN系统由分发服务系统,负载均衡系统和运营管理系统组成。

分发服务系统:

最基本的工作单元就是Cache设备,cache(边缘cache)负责直接响应最终用户的访问请求,把缓存在本地的内容快速地提供给用 户。同时cache还负责与源站点进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存在本地。Cache设备的数量、规模、总服务能力是衡 量一个CDN系统服务能力的最基本的指标

负载均衡系统:

主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。两级调度体系分为全局负载均衡(GSLB)和本 地负载均衡(SLB)。GSLB主要根据用户就近性原则,通过对每个服务节点进行“最优”判断,确定向用户提供服务的cache的物理位置。SLB主要负 责节点内部的设备负载均衡

运营管理系统:

分为运营管理和网络管理子系统,负责处理业务层面的与外界系统交互所必须的收集、整理、交付工作,包含客户管理、产品管理、计费管理、统计分析等功能。

负责为用户提供内容服务的cache设备应部署在物理上的网络边缘位置,即CDN边缘层。CDN系统中负责全局性管理和 控制的设备组成中心层(二级缓存),中心层同时保存着最多的内容副本,当边缘层设备未命中时,会向中心层请求,如果在中心层仍未命中,则需要中心层向源站 回源(如果是流媒体,代价很大)。

CDN骨干点和CDN POP点在功能上不同,中心和区域节点一般称为骨干点,主要作为内容分发和边缘未命中时的服务点;边缘节点又被称为POP(point of presence)节点,CDN POP点主要作为直接向用户提供服务的节点。

应用协议加速:

企业应用加速主要是动态加速和SSL加速。

广域网应用加速:

SSL应用加速:由于需要大量的加密解密运算,SSL应用对服务器端的资源消耗是非常巨大的。CDN提供SSL应用加速后,由CDN的专用SSL加速硬件来完成加密解密运算工作。

网页压缩:HTTP1.1提出对网页压缩的支持。在服务器端可以先对网页数据进行压缩,然后将压缩后的文件提供给访问用户,最后在用户浏览器端解压显示(但要衡量加解压时间)。

CDN如何实现,关键技术是什么?相关推荐

  1. cache节点、CDN的四大关键技术及CDN服务商类型

    一般来讲,CDN网络主要由中心节点.边缘节点两部分构成. CDN架构导引 最简单的CDN网络只需一台负责全局负载均衡的DNS和各节点一台Cache,即可运行.DNS支持根据用户源IP地址解析不同的IP ...

  2. CDN关键技术研究与应用—内容路由技术

    内容路由技术作为CDN中关键技术之一对业务的支撑效果起着举足轻重的作用.在LiveVideoStackCon2019上海 大会中,爱奇艺高级技术经理白帆从技术背景,架构优化,特殊场景应用等多方面详细介 ...

  3. 技术干货 | 视频直播关键技术和趋势

    导读:移动互联网的兴起为人类信息传播带来了更便捷的通道.更立体的视角和更丰富的选择.视频直播等多媒体通信技术在新的时代背景下逐渐崭露头角并不断渗入到人们的日常生活中,以提高人们的信息传输效率.降低信息 ...

  4. 视频通信关键技术探索及实践

    导读:2021年10月21日,「QCon 全球软件开发大会」在上海举办,网易智企技术 VP 陈功作为出品人发起了「AI 时代下的融合通信技术」专场,邀请到多位技术专家与大家一起分享相关技术话题. 我们 ...

  5. 视频直播关键技术:流畅、拥塞和延时追赶

    这两年互联网领域的一个热门关键词就是视频直播,从刚开始的游戏直播和秀场娱乐开始,现在各个行业里都植入了直播元素.网易云信多年以来,一直深耕于音视频领域,这篇文章将和大家聊一聊视频直播的几个关键技术. ...

  6. 【揭秘】视频直播关键技术

    这两年互联网领域的一个热门关键词就是视频直播,从刚开始的游戏直播和秀场娱乐开始,现在各个行业里都植入了直播元素.网易云一直致力于给大家提供更好的视频服务,这篇文章聊一聊视频直播的几个关键技术:  清晰 ...

  7. 分布式服务下的关键技术(转)

    系统架构演化历程-初始阶段架构 初始阶段的小型系统 应用程序.数据库.文件等所有的资源都在一台服务器上通俗称为LAMP(linux.apache.mysql.php). 特征: 应用程序.数据库.文件 ...

  8. php mysql关键技术_中高级PHP开发者应该掌握哪些技术?

    1.Linux 能够流畅的使用Shell脚本来完成很多自动化的工作:awk/sed/perl 也操作的不错,能够完成很多文本处理和数据统计等工作:基本能够安装大 部分非特殊的Linux程序(包括各种库 ...

  9. 详解5G:关键能力、关键技术、应用场景、网络架构、经济影响

    详解5G:关键能力.关键技术.应用场景.网络架构.经济影响 未来,5G将渗透到未来社会的各个领域,以用户为中心构建全方位的信息生态系统. 5G,第五代移动电话行动通信标准,也称第五代移动通信技术,也是 ...

最新文章

  1. Hadoop 4、Hadoop MapReduce的工作原理
  2. 50兆 svg 文件超过_中山兆驰产业园项目开工,预计竣工投产时间为…
  3. 2020 年 DevOps 七大发展趋势
  4. C++STL的deque容器
  5. UFLDL教程:Exercise:PCA in 2D PCA and Whitening
  6. 团队编程项目代码设计规范(爬取豆瓣电影top250)
  7. cpu卡操作协议iso14443协议
  8. (2.1)DDL增强功能-数据类型、同义词、分区表
  9. 前端JS笔试面试题目
  10. grafana 部署
  11. SQL 复合查询条件(AND,OR,NOT)对NULL值的处理
  12. linux(ubantu)系统如何安装vim编辑器以及如何使用vim
  13. CodeForces - 1169D : Neko Performs Cat Furrier Transform(思维)
  14. 自媒体必死 大家不要被马化腾忽悠了
  15. 中文CTEX加下划线无法换行问题
  16. 集合工具类 以及 几个小面试题(是我保存的)
  17. 基于php学生社团活动报名系统
  18. 工业平板手持PDA的功能有哪些?
  19. 博途v15模拟量转换_TIA博途模拟量测量与工程量转换
  20. Linux系统调用(syscall)原理(转载)

热门文章

  1. 7-34 任务调度的合理性 (25 分)(思路加详解+兄弟们冲呀)
  2. 解决浏览器存储问题,不得不了解的cookie,localStorage和sessionStorage
  3. 如何找到Eclipse左侧项目栏
  4. [Java基础]字符流中的编码解码问题
  5. 天梯赛模拟 链表去重 (25 分)
  6. 蓝桥杯 迷宫与陷阱 BFS
  7. 徒手实现Spring的IOC
  8. 2019-03-18-算法-进化(字符串中的第一个唯一字符)
  9. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)
  10. 矩阵快速幂的最简单用法