说说CDN技术
一、背景与基本概念:
从网络层面看,一个网站的体验好坏主要以下几个方面(这里只单独介绍网络环境对网站的体验好坏,一个网站的体验好坏除了网络层面还有很多的影响因素):
(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内容管理员人工确定,也可以通过智能的方式决定,即所谓的智能分发。它根据用户访问的统计信息,以及预定义的内容分发的规则,确定内容分发的过程。