一、背景与基本概念:
从网络层面看,一个网站的体验好坏主要以下几个方面(这里只单独介绍网络环境对网站的体验好坏,一个网站的体验好坏除了网络层面还有很多的影响因素):
(1)网站服务器接入互联网的链路所能提供的带宽(出口带宽),这个带宽决定了用户的并发量和访问时延,用户越多,对出口带宽的要求就越高,当用户的并发量超过了带宽,就会导致出口网络拥塞,严重的影响用户的体验。
(2)不同运营商之间的互联问题,一般来说两个运营商之间只有两三个点是互通的,所有跨运营商之间的交互都要经过这几个点,可以想象一个使用电信的用户去访问部署在联通的网站,速度是有多么慢。
(3)长途骨干传输问题,从网站服务器到用户之间要经过网站所在的IDC、骨干网、用户所在城域网、用户所在的接入网等,物理距离非常远,导致传输时延非常高。
CDN(Content Delivery Network,内容分发网络)就是为了解决上述的问题而生的,其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络”边缘”,使用户可以就近取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,解决用户访问网站的响应速度慢的根本原因。
二、CDN工作原理:
1、传统访问过程(未使用CDN)
8) 站点服务器应答请求,将内容返回给客户端.
2、使用CDN后的访问过程
经过两幅图的对比,可以看到增加了CDN后可以让用户访问离自己最近的CDN节点,减轻了对源站的访问压力和带宽。
三、CDN关键技术
从这上述两幅图的对比可以看到,CDN将用户的请求路由到CDN节点上;将源站点的数据拉取到CDN节点上,并做缓存等,实现了对用户站点的加速,那么CDN如何实现这些功能点,CDN主要利用了四大关键技术(内容路由技术、内容分发技术、内容存储技术、内容管理技术)来实现。
1、内容路由
本地负载均衡(SLB)一般局限于一定的区域范围内,其目标是在特定的区域范围内寻找一台最适合的节点提供服务,因此,CDN节点的健康性、负载情况、支持的媒体格式等运行状态是本地负载均衡进行决策的主要依据。
2、内容分发
内容分发是指将内容从源站发送到CDN边缘的Cache的过程。目前主要有两种主流的内容分发技术:PUSH(分发)、PULL(回源)
PUSH(分发)是一种主动分发的技术。通常,PUSH由内容管理系统发起,将内容从源或者中心媒体资源库分发到各边缘的Cache节点。分发的协议可以采用 HTTP/FTP等。通过PUSH分发的内容一般是比较热点的内容,这些内容通过PUSH方式预分发(Preload)到边缘Cache,可以实现有针对的内容提供。对于PUSH分发需要考虑的主要问题是分发策略,即在什么时候分发什么内容。一般来说,内容分发可以由CP(内容提供商)或者CDN内容管理员人工确定,也可以通过智能的方式决定,即所谓的智能分发。它根据用户访问的统计信息,以及预定义的内容分发的规则,确定内容分发的过程。
3、内容存储
对于CDN系统而言,需要考虑两个方面的内容存储问题。一个是内容源的存储,一个是内容在Cache节点中的存储。
对于内容源的存储,由于内容的规模比较大(通常可以达到几个甚至几十个TB),而且内容的吞吐量较大,因此,通常采用海量存储架构。
对于在Cache节点中的存储,是Cache设计的一个关键问题。需要考虑的因素包括功能和性能两个方面:在功能上包括对各种内容格式的支持、对部分缓存的支持,在性能上包括支持的容量、多文件吞吐率、可靠性、稳定性。
4、内容管理
内容管理在广义上涵盖了从内容的发布、注入、分发、调整、传递等一系列过程。在这里,内容管理重点强调内容进入Cache点后的内容管理,我们称为本地内容管理。
本地内容管理主要针对一个CDN节点(由多个CDN Cache设备和一个SLB设备构成)进行。本地内容管理的主要目标是提高内容服务的效率,提高本地节点的存储利用率。通过本地内容管理,可以在CDN节点实现基于内容感知的调度,通过内容感知的调度,可以避免将用户重定向到没有该内容的Cache设备上,从而提高负载均衡的效率。通过本地内容管理还可以有效地实现在CDN节点内容的存储共享,提高存储空间的利用率。
四、CDN的使用
目前CDN技术的使用主要是在静态加速、动态加速、流媒体等几个方面:
(1) 静态加速:最传统的CDN加速服务,加速的对象一般是静态文件,如html、flash动画、css、js文件等,加速就是将静态文件放到CDN节点(PULL或PUSH),并缓存;用户通过CDN访问就近或最快的CDN节点获取文件。
(2) 动态加速:动态加速的对象是动态声称的网页,动态加速一般是对针对内容(如数据库信息等)在用户与源站之间建立高速通道,通过路由优化、TCP加速等技术手段对动态内容进行加速,降低节点到源站之间的时延,从而大大降低了用户访问动态网页的延迟。
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:aiboke112
版权声明:本文为原创文章,版权归 wuwenwu 所有,欢迎分享本文,转载请保留出处!
评论已关闭!