人们都在说的CDN到底是什么

CDN的全称是:Content Delivery Network或Content Ddistribute Network,即内容分发网络,是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。看着这么多专业的各种名词,我们来通俗的解释一下,你想吃宵夜或者你想在淘宝买什么东西,除了一些限定的东西只有特定的地区发货,像是上述两个平台,你在选择时,都会根据你的个人定位,为你推荐最快能达到的商家,然后选择最近的路径给你下单并配送,这样会极大的节省了任务完成的时间,并且提高了效率。

CDN为的是解决因分布、带宽、服务器性能带来的访问延迟问题,同理,我们提到的上述例子是为了更好的能够吃到食物以及拿到我们想要的东西。CDN适用于浏览网页的加速处理、直播平台的不卡顿等场景。使用户可就近取得所需内容,解决网络拥挤的状况,提高用户访问网站的响应速度和成功率。CDN像是网络中的巡航者和加速者的角色,在接到指令后迅速找到最优解,从而将信息快速的发送到访问该网站的每个用户中,带来更为极致的使用体验。如果还是不好理解的话,可以理解为他就是网络中的快递送货员,准确无误的送达你需要的消息和图片等。

人们都在说的CDN到底是什么_第1张图片

说完了它的基础概念,接下来说一下它的基础构架。最简单的CDN网络由一个DNS服务器和几台缓存服务器组成,是一个整体的系统,其中包括了分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。

像是目前国内访问量很大的网站、直播、视频平台,肯定都在使用CDN网络加速技术,不然每天点击浏览的用户数量之庞大,没有CDN的加持,各用户之间的体验感肯定很差,网速就像是回到了上个世纪一样,加载一张图片就要耗时很久。现在是在原有的互联网中增加一层新的网络架构,将网站的内容发布到最接近用户的cache服务器内,通过DNS负载均衡的技术,判断用户来源就近,极速的解决网络拥塞状况,这样在用户随意的下载图片、视频甚至是观看直播时,都不会影响到正常的速度了。可以理解成自己的电脑同时拥有多个专有的加速器,来实现网络的加速和运转,以保证自己想要的信息可以极速达到到自己手中。

CDN服务最初用于确保快速可靠地分发静态内容,这些内容可以缓存,最适合在网速庞大的网络中存储和分发,该网络在几十多个国家的十几个网络中的覆盖CDN网络服务器。由于动态内容必须通过互联网来传输,因此要提供快速的网络体验。给予访问的用户更快捷便利以及流畅的上网体验。让他们浏览的照片和视频都是顺畅无误的。这样才是好的上网状态。

一般都是来说以各种资讯和动态内容等为主的网站需要用到它,当然,一定是要具有一定访问体量的,不然没几个人看的网站,也谈不上网络情况拥堵的理念。像是我们常见的各大直播平台、政府机构网站、商城等,政府机构网站即使是浏览量较少,也得保证网络通信是顺畅的。像是一些电商平台更是如此,淘宝的双十一,一定是需要这些的,还有一些需要从网站上下载东西的网站,提供了该项服务,再从网站中下载时,就能更加快速和便捷。

CDN是只对网站的某一个具体的域名加速,不是对于网站的整体服务器进行加速,如果同一个网站刚好有多个域名,只有当访客访问刚好到了加入CDN的域名,才能获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果。

这就有人要问了,我们需要对网站进行什么修改,才能有这个加速效果么,其实无需任何修改即可使用CDN获得加速效果。只是对需要判断访客IP程序,才需要做少量修改。

这里举个例子,借用一下阿里云官网的例子,来简单介绍CDN的工作原理。

假设通过CDN加速的域名为www.a.com,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下:首先,当终端用户接到指令后,自己先解码然后再发起请求时,首先向LDNS(本地DNS)发起域名解析请求。然后,LDNS检查缓存中是否有原来使用过的地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。紧接着,当授权DNS解析好之后,返回域名CNAME [www.a.tbcdn.com](https://www.zhihu.com/search?q=www.a.tbcdn.com&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7b)对应IP地址。然后,域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。

再然后,LDNS获取DNS返回的解析IP地址。从而,用户获取解析IP地址。之后,用户向获取的IP地址发起对该资源的访问请求。然后又分为两种情况,如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,另外一种就是对应的节点未缓存该资源,则节点向源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。

希望越来越多的网站可以加入CDN,这样我们的整体网站浏览的速度就会得到很大的提升,浏览网站的心情也会很愉悦,同时针对各大电商平台也是很好的体验,能够在一定层面上提升顾客的购买率,因为看到的图片都是实时加载和更新的。

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

你可能感兴趣的:(程序员)