内容分发网络技术发展与基本原理
1.1 CDN的基本概念和产生背景
WWW(万维网)的出现,使互联网发生了质的变化和急速发展,使其从单纯的数据通信网络发展成为在全世界范围内共享和发送信息的分布式网络。
广义的互联网,由两层组成:以TCP/IP为代表的网络层和以网为网为代表的应用层。国际标准化组织定义了网络7层参考模型,称之为开放系统互连模型(OSI),该模型对计算机网络标准化程度的发展和网络通信的发展有重大意义。
OSI七层模型(由低到高):物理层(PH)、数据链路层(DL)、网络层(N)、传输层(T)、会话层(S)、表示层(P)、应用层(A)。每一层完成一定的功能,并为上层提供服务,所有层之间相互支持。其中,4到7层主要负责互操作性、1到3层用于创造两个网络设备间的物理连接。
其中,TCP/IP是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何连入因特网,以及数据在它们之间传输的标准。TCP/IP网络是广义互联网的下层,是网络基础。这一层的主要作用是通过计算机之间的互联,将各种信息的数据报文以极低的成本进行传输,俗称“管道”,所有信息和内容在这个管道中进行传送。
互联网设计理念:网络是中立且无控制的,任何人都没由决定权;网络是应用无关的,它的任务就是更好地将数据包进行端到端的传输。这个理念目前来说即不会对传输的内容进行优化。
以万维网为代表的应用层,是广义互联网的上层。这一层包括多种类型的流量和应用,所有SP(服务提供商)提供的都是这些用户看得到、摸得着得应用,它们丰富和方便人们生活,构成人们常说的互联网业务和信息经济。
随着互联网得发展,网络流量增长速度越来越快,基本6~9个月翻一番,随着宽带网的快速发展,催生了更多的新的互联网业务,这些业务对网络带宽要求越来越高,而有限的带宽资源也显得捉襟见肘。
从宽带运营网建设宽带网的模式来看,宽带网的接入虽然增长很快,但是骨干网的带宽并没有同比增长。因为:第一,骨干网的建设成本比接入网高得多;第二,不同用户使用的带宽是不同的,大部分用户虽然可以连网,但使用的带宽并不高,即无需为每个用户都在骨干网建设与其接入带宽想等的带宽
现在宽带网形成了一个越往用户侧接近,带宽越充分,成本越低的局面。CDN的发展其实是与宽带网架构紧密相连的。如果没有CDN,则每个用户都需要有一条从接入侧到骨干网的高带宽链路,这就会导致成本变高,稳定性变差。
CDN(内容分发网络)简单地说就是通过在不同地点缓存内容,通过负载均衡等技术将用户请求定向到最近的缓存服务器上获取内容,提高用户访问网站的响应速度。和简单的内容镜像不同,CDN通过用户就近性和服务器负载的判断,以一种更为高效的方式为用户的请求提供服务。
1.2 CDN发展史
CDN诞生是因为宽带往的骨干带宽小、接入带宽高,本质时通过一种分布式服务器构成的网络,把热点内容存储在网络靠近接入侧的服务器上。
发展阶段 | 时间 | 主要特点 | 发展状态 |
---|---|---|---|
第一阶段 | 1998~2001年 | 主要服务于web,硬件以专用硬件为主 | 迅速 |
第二阶段 | 2001~2008年 | 开始提供视频、应用等加速,硬件转向通用服务器 | 起伏 |
第三阶段 | 2008至今 | 提供搞清视频加速,以大容量通用服务器为主 | 迅速 |
-
CDN随着互联网业务快速发展而发展
-
CDN发展起起伏伏
-
互联网泡沫的冲击和CDN第二次大发展
1.3 互联网用户访问模型
互联网内容巨大,任何CDN都只能针对性地对部分内容进行缓存。CDN之所以能够通过用户就近性和服务器负载均衡判断,以一种更高效的方式为用户的请求提供服务,其基本依据是互联网用户访问模型。
参考二八定律,大部分用户都是访问互联网的少量热点内容,大部分内容访问的人是极少的,因此,CDN可以通过自身的算法,只缓存热点内容就可以为大部分用户提供服务。
可以根据齐普夫分布,针对性地对需要加速的业务系统进行分析,结合网络条件,设计CDN各级存储的比例,设计合理的缓存替换算法,从而找出最佳CDN部署方案。
1.4 内容分发基本原理
用户用使用的角度看,CDN是透明的,用户在使用互联网业务时,该业务是否时用了CDN继承,是不改变和影响用户的正常操作流程。如图:
当内容提供商/运营商(CP/SP)接入CDN时,在接入CDN成功后,把接入CDN后的URL发布到业务门户上。
用户使用流程:
-
用户终端从门户上观看一个在线视频,在打开一个播放页面后,点击播放按钮,该播放按钮URL的地址实际指向了CDN
-
用户终端携带该URL向CDN发起播放请求,CDN通过内容分发机制把内容传送给用户
CDN的内容分发机制是CDN的核心技术,如何高效地把内容由中心节点分发传送给用户是各大CDN厂商的重点研究。CDN的高效分发,指的是在有限的资源下,能实现用户就近服务最大化、网络消耗最小化。
1.4.1 基于PULL的分发机制
基于PULL的CDN分发机制原理主要是通过把用户服务请求调度到合适的边缘节点,如果发生内容未命中,则该边缘节点向上PULL内容,如果其上级也没有,则逐级向上下拉,具体流程:
-
用户终端通过门户得到访问CDN的URL后,向CDN发起服务请求
-
CDN检查访问请求的源IP地址,并根据调度策略,把用户访问请求进行重定向,返回边缘的访问地址
-
用户计算机根据得到的重定向地址,向CDN边缘服务器发起服务请求
-
边缘服务器检查URL,如果发现没有资源,则发起PULL机制,向上发起下拉该资源请求
-
CDN节点逐级检查是否存在请求资源,如果不存在则向上PULL内容,最终把内容下拉下来,并由边缘服务器向用户提供服务
基于PULL的CDN分发流程来分析,CDN的处理机制是比较简单的:CDN的主要调度策略是不需要考虑内容的发布情况的,CDN只需要根据用户访问请求的源IP地址,把用户访问请求调度到合适的边缘服务器。
CDN节点间的下拉机制也比较简单,一般下级节点只需要把所需要下拉的内容ID向上发起请求即可。
1.4.2 基于PUSH的分发机制
基于PUSH的CDN分发机制基本原理主要是:把用户服务请求调度到由内容的CDN最接近用户的节点。在这种机制下,就可以有效避免未命中概率,具体流程:
-
用户计算机通过门户得到访问CDN的URL后,向CDN发起服务请求
-
CDN检查访问请求的源IP地址,检查请求资源在CDN上的分布情况,并根据调度策略,对用户访问请求进行重定向,返回由内容的CDN最接近用户的节点
-
CDN统计资源的访问情况,当发现资源内容达到热度阀值时,中心节点就主动下推内容到区域节点
-
区域节点发现资源内容达到热度阀值时,也主动将内容推到边缘服务器
-
当再有用户访问该资源时,CDN即把用户请求调度到有资源内容的边缘服务器
从基于PUSH的CDN分发流程来分析,CDN的处理机制是相对比较复杂的:CDN需要了解全网CDN内容的分布,能正确把用户调度到有请求资源的服务器上,而且PUSH的主动下发,需要对内容热度有完全的统计信息。
1.4.3 混合分发机制
混合分发机制就是PUSH与PULL分发机制结合的一种机制。混合分发机制有多种方案,最常见的混合分发机制是利用PUSH机制进行内容预推,后续的CDN内容分发机制则使用PULL机制。
需要支持智能分发方式,支持根据当前内容分发系统中的内容服务状况,采用推拉的方式动态地调整内容在内容分发系统中的发布,对于热点内容自动智能地将其缓存在边缘节点。
对于PUSH分发方式需要支持手工分发、自动分发、单个分发、批量分发、逻辑群分发;至少应支持即时、定时、增量的内容分发策略;根据节点分组信息、节点IP地址段策略等进行内容分发;应支持根据访问量设置分发门限、定向分发,客户自动以等分发策略;支持分类、分级的内容分发策略;支持对内容的分发优先级、更新频率、新鲜度设定等管理功能。