[TOC]

0x00 快速入门

描述:先来看看CDN的应用,比如阿里云为直播行业提供了边缘节点服务(ENS-最主要的技术就是CDN),基于阿里云ENS可以轻松地将业务模块放到边缘运行,在主播的推流时,实现就近节点进行转码和分发,同时支持了高并发实时弹幕的边缘分发。在获得网络低时延的同时,减少了对中心的压力,节省了30%以上的中心带宽成本,并且实现了边缘节点网络连接小于5毫秒延时,提升了主播上行质量,以及用户成功连接占比等数指标,有效提升了用户观看体验;

那什么是CDN?
描述:CDN的全称是 Content Delivery Network 即内容分发网络。

我们可以将CDN比作天猫超市与菜鸟在全国各地建了本地仓库,当用户购买直营的东西的时候(不在是跨区配送,而是同城配送),所以下单购买后,由最近的仓发货就近配送,用户购买的体验明显好太多了;

其实我们在浏览网络的时候其实就和以上这个过程十分相似,我们访问一个网站页面的时候,会向服务器请求很多网络资源,包括各种图片、声音、影片、文字等信息。所以就像天猫超市把货物提前存储在菜鸟建设在全国各地的本地仓库来减少物流时间一样,网站也可以预先把内容分发至全国各地的加速节点。这样用户就可以就近获取所需内容,避免网络拥堵、地域、运营商等因素带来的访问延迟问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。

WeiyiGeek.CDN原理图

WeiyiGeek.CDN原理图

关键字:内容分发网络
答:您总是希望网页可以尽可能地快,您希望页面的容量尽可能地小,同时您希望浏览器尽可能多地进行缓存这就需要使用到CDN的内容分发网络。就像前面提到的”全国仓配网络”一样,解决了因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。
优点:

  • 使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率
  • 电信运营商: CDN技术消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量;
  • 冗余机制: 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种DDoS攻击对网站的影响,同时保证较好的服务质量


CDN 工作过程

描述:我们还是拿快递行业为例进行讲解CDN的工作过程,更能方便读者的理解;

传统快递企业采用的配送模式:

  • 商家→网点→分拨→分拨→网点→客户”的环节进行配送
    • 存在的问题: 如环节多、时效慢、易破损;

上面这个过程和传统网站的请求响应过程类似,一般经历以下步骤:

  • 用户在自己的浏览器中输入要访问的网站域名。
  • 浏览器向本地DNS服务器请求对该域名的解析。
  • 本地DNS服务器中如果缓存有这个域名的解析结果,则直接响应用户的解析请求。
  • 本地DNS服务器中如果没有关于这个域名的解析结果的缓存,则以迭代方式向整个DNS系统请求解析,获得应答后将结果反馈给浏览器。
  • 浏览器得到域名解析结果,就是该域名相应的服务设备的IP地址 。
  • 浏览器获取IP地址之后,经过标准的TCP握手流程,建立TCP连接。
  • 浏览器向服务器发起HTTP请求。
  • 服务器将用户请求内容传送给浏览器。
  • 经过标准的TCP挥手流程,断开TCP连接。


互联网快递企业的新型配送方式:

  • 电商自建物流提前备货将异地件转化成同城件,省去干线环节提升时效,仓储高自动化分拣保证快速出库的同时也保证了分拣破损率较低

所以,引入CDN之后,用户访问网站一般经历以下步骤:

  • 当用户点击网站页面上的内容URL,先经过本地DNS系统解析,如果本地DNS服务器没有相应域名的缓存,则本地DNS系统会将域名的解析权交给CNAME指向的CDN专用DNS服务器
  • CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回给用户
  • 用户向CDN的全局负载均衡设备发起URL访问请求
  • CDN全局负载均衡设备根据用户IP地址,以及用户请求的URL,选择一台用户所属区域的区域负载均衡设备,并将请求转发到此设备上。
  • 基于以下这些条件的综合分析之后,区域负载均衡设备会选择一个最优的缓存服务器节点,并从缓存服务器节点处得到缓存服务器的IP地址,最终将得到的IP地址返回给全局负载均衡设备:
  • 根据用户IP地址,判断哪一个边缘节点距用户最近
  • 根据用户所请求的URL中携带的内容名称,判断哪一个边缘节点上有用户所需内容;
  • 查询各个边缘节点当前的负载情况,判断哪一个边缘节点尚有服务能力。
  • 全局负载均衡设备把服务器的IP地址返回给用户。
  • 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地
WeiyiGeek.华为云全站加速示意图

WeiyiGeek.华为云全站加速示意图

总结:

  • CDN全局负载均衡设备与CDN区域负载均衡设备根据用户IP地址,将域名解析成相应节点中缓存服务器的IP地址,实现用户就近访问,从而提高服务端响应内容的速度。
  • 用户访问网站先从CDN中查找(就近原则),如果这个节点找不到(再升级查找),最终找不到再访问服务器(一般不会存在这样的情况,除非您的源站出现问题)

CDN 重要组成部分

描述:例如上面天猫超市一样一个仓配网络是由多个仓库组成的,同理内容分发网络(CDN)是由多个节点组成的。

一般来讲,CDN网络主要由·中心节点、边缘节点·两部分构成。

  • 服务器节点(中心节点) : 中心节点包括CDN网管中心和全局负载均衡·DNS重定向解析系统,负责整个CDN网络的分发及管理`。
  • 边缘节点 : CDN边缘节点主要指异地分发节点,由负载均衡设备、高速缓存服务器两部分组成
    • 负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时还负责收集节点与周围环境的信息,保持与全局负载均衡DNS的通信,实现整个系统的负载均衡。
    • 高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中Cache服务器就像网站的原始服务器一样,响应终端用户的请求。因其距离用户更近,故其响应时间才更快。
  • 一句话总结:中心节点就像仓配网络中负责货物调配的总仓,而边缘节点就是负责存储货物的各个城市的本地仓库。

CDN 相关技术

描述:首先我们想一下要想建设一个庞大的仓配网络都需要考虑哪些问题,需要哪些技术手段呢?

四个重要且需要关注的点:

  • 1、如何妥善的将货物分发到各个城市的本地仓。
  • 2、如何妥善的各个本地仓存储货物。
  • 3、如何根据用户的收货地址,智能的匹配出应该优先从哪个仓库发货,选用哪种物流方式等。
  • 4、对于整个仓配系统如何进行管理,如整体货物分发的精确度、仓配的时效性、发货地的匹配度等。

CDN中最重要的四大技术不谋而合:

  • 内容发布: 它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处。
  • 内容存储: CDN系统需要考虑两个方面的内容存储问题, 一个是内容源的存储,一个是内容在 Cache节点中的存储。
  • 内容路由: 它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应。
  • 内容管理: 它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。