CDN 内容分发网络 简介

CDN全称为内容分发网络(Content Delivery Network),它是有美国麻省理工学院的学生发明的,最大的作用的就是缓存用户相对集中的资源,一般这类资源都是不可变的,例如图片、视频、音频文件等。这与我们一般的服务器又有什么区别呢?网络不是四通八达的么?为什么需要CDN呢?
玩游戏的朋友可能知道,有个东西就做延迟,向我们经常说延迟460,延迟是什么意思呢?就是你的手机、电脑上面的资料,发送到服务器,一个来回所需要的时间。我们都知道,网络的传输速度接近光速,从深圳到美国硅谷的距离大概为1万公里,光的速度为30万公里每秒,也就是说,如果你在美国上传一张图片,并且服务器也在美国,你在深圳访问,最少也要60毫秒以上才能拿到数据。

事实上,网络环境是非常复杂的,世界上最远的距离,莫过于我用电信,他用联通,正因为如此,真实从深圳访问美国可能要好几百毫秒。CDN的出现,就是为了解决这个问题。在美国上传的图片,我们也同样保存一份在香港,如果在深圳访问的时候,我们就直接使用香港的数据即可,这样子速度就会快非常多!CDN在全球有非常多的结点,无论你在哪里上传的图片,都可能被缓存到世界各地,以便所有的人都能够快速的访问。

这便是CDN出现的原因跟CDN解决的问题。简单来说,CDN就是一个分布式的缓存服务器,存着非常多文件,并且分布在世界各地,每个人都能就近访问。我们讲个通俗的例子,可乐公司上市了一款新的可乐,本来你要到美国去买,现在可乐公司把可乐运到了你楼下的小卖部,你只要下楼就能买到,更加方便快捷!

CDN相关技术

CDN的实现需要依赖多种网络技术的支持,其中最主要的包括负载均衡技术、动态内容分发与复制技术、缓存技术等。

负载均衡技术

负载均衡技术不仅仅应用于CDN中,在网络的很多领域都得到了广泛的应用,如服务器的负载均衡、网络流量的负载均衡。顾名思义,网络中的负载均衡就是将网络的流量尽可能均匀分配到几个能完成相同任务的服务器或网络节点上,由此来避免部分网络节点过载。这样既可以提高网络流量,又提高了网络的整体性能。在CDN中,负载均衡又分为服务器负载均衡和服务器整体负载均衡(也有的称为服务器全局负载均衡)。服务器负载均衡是指能够在性能不同的服务器之间进行任务分配,既能保证性能差的服务器不成为系统的瓶颈,又能保证性能高的服务器的资源得到充分利用。而服务器整体负载均衡允许Web网络托管商、门户站点和企业根据地理位置分配内容和服务。通过使用多站点内容和服务来提高容错性和可用性,防止因本地网或区域网络中断、断电或自然灾害而导致的故障。在CDN的方案中服务器整体负载均衡将发挥重要作用,其性能高低将直接影响整个CDN的性能。

动态分发与复制技术

众所周知,网站访问响应速度取决于许多因素,如网络的带宽是否有瓶颈、传输途中的路由是否有阻塞和延迟、网站服务器的处理能力及访问距离等。多数情况下,网站响应速度和访问者与网站服务器之间的距离有密切的关系。如果访问者和网站之间的距离过远的话,它们之间的通信一样需要经过重重的路由转发和处理,网络延误不可避免。一个有效的方法就是利用内容分发与复制技术,将占网站主体的大部分静态网页、图像和流媒体数据分发复制到各地的加速节点上。所以动态内容分发与复制技术也是CDN所需的一个主要技术。

缓存技术

缓存技术已经不是一种新鲜技术。Web缓存服务通过几种方式来改善用户的响应时间,如代理缓存服务、透明代理缓存服务、使用重定向服务的透明代理缓存服务等。通过Web缓存服务,用户访问网页时可以将广域网的流量降至最低。对于公司内联网用户来说,这意味着将内容在本地缓存,而无须通过专用的广域网来检索网页。对于Internet用户来说,这意味着将内容存储在他们的ISP的缓存器中,而无须通过Internet来检索网页。这样无疑会提高用户的访问速度。CDN的核心作用正是提高网络的访问速度,所以,缓存技术将是CDN所采用的又一个主要技术。

工作原理

CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问时间。
首先,让我们看一下传统的未加缓存服务的访问过程:
在这里插入图片描述
如图可以看出,传统的网络访问的流程如下:

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

下面让我们看一下使用CDN缓存后的网站的访问过程:
在这里插入图片描述
如上图,是使用CDN缓存后的网络访问流程:

  1. 用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址;
  2. LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期);
  3. ROOT DNS将域名授权dns记录回应给 LocalDns;
  4. LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址;
  5. 域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns;
  6. LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址;
  7. 智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns;
  8. LocalDns 将得到的域名ip地址,回应给用户端;
  9. 用户得到域名ip地址后,访问站点服务器。

宗上,CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问的速度。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CDN(Content Delivery Network)内容分发网络是一种通过在全球多个节点部署服务器,将内容缓存并分发至用户就近访问的技术。CDN适用于以下几个应用场景: 1. 高并发网站加速:对于访问量较大的网站,CDN可以将静态资源(如图片、CSS、JavaScript、视频等)缓存在离用户较近的节点上。这样可以减少用户请求的响应时间,提高网站的访问速度和用户体验。 2. 视频点播和直播:CDN可以为视频点播和直播提供高质量的服务。通过在全球各地的节点缓存视频内容CDN可以减少视频传输中的延迟和卡顿现象,提供流畅的观看体验。 3. 软件和游戏下载加速:对于需要下载较大文件的软件和游戏,CDN可以将这些文件缓存到离用户最近的节点上。这样可以加快下载速度,减少带宽消耗,并提供更好的下载体验。 4. 移动应用加速:对于移动应用,CDN可以加速应用程序、图片、音视频等内容的传输。通过将这些内容缓存在离用户最近的节点上,CDN可以减少数据传输的延迟和流量消耗,提高应用的响应速度和用户体验。 5. 动态内容加速:CDN不仅可以缓存静态内容,还可以缓存部分动态内容。通过将动态内容缓存在离用户最近的节点上,CDN可以减轻源服务器的压力,提高动态内容的传输速度和可靠性。 总之,CDN适用于各种需要分发内容并提高访问速度的场景,可以为用户提供更快、更可靠的访问体验,并减少源服务器的负载压力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值