1.1 CDN的基本概念和产生背景
对于CDN这个名词,读者大可以望文生义:Content Distribute Network,直译成内容分发网络,或者也有人写成Content Delivery Network,内容交付网络。很显然,CDN完成的是将内容从源站传递到用户端的任务,我们当然不需要再解释什么叫做“内容分发”或者“内容交付”了,要解释的是CDN在这个分发或者交付的过程中体现了什么价值,为什么需要CDN来交付而不是直接通过互联网交付呢?这个话题有必要短话长说一下,这对理解本书中CDN的工作原理、各项关键技术都有帮助。
大家常说的互联网,是广义的互联网,由两层组成:一层是以TCP/IP为代表的网络层(也是狭义互联网概念);另一层是以万维网WWW为代表的应用层。目前普遍存在一个认识误区,就是将互联网和万维网混作一谈。认清互联网的本质,辨识清楚互联网和万维网的区别,是理解整个互联网经济的关键和基础,也是认识CDN的基础。
以TCP/IP为核心的狭义的互联网(Internet),实际上是广义互联网的下层,是网络基础,更一般地说就是TCP/IP网络。这一层的主要作用是通过计算机之间的互联,将各种信息的数据报文以极低的成本进行传输,俗称“管道”,所有信息和内容在这个管道里进行传送。互联网的设计理念是:网络是中立和无控制的,任何人都没有决定权;网络是应用无关的,它的任务就是如何更好地将数据包进行端到端传输。这个设计理念从互联网诞生之初到现在从未被撼动,任何针对某种(类型的)内容对互联网进行优化的尝试其最后效果都不甚理想。因此,我们可以认为互联网不会试图对任何内容进行传输优化。
以万维网WWW为代表的应用层,是广义互联网的上层。这一层包括很多种类型的流量和应用,邮件、软件、在线影视、游戏、电子商务、移动应用等,所有SP(Service Provider,服务提供商)提供的都是这些用户看得见、摸得着的应用,它们丰富和方便了人们的生活,构成了我们常说的互联网业务和信息经济。
举个铁路的例子来解释两者的差别和关系:互联网是铁路轨道和信号系统,万维网则是在铁路上运行的列车之一。而在铁路上,除了万维网这个高速列车以外,还有慢车、通勤列车、货运列车和专业维修列车等。在互联网上,万维网是巨大的和非常重要的,但它并不是唯一。那些不使用WWW的应用同样运行在互联网上,互联网的巨大远远超过运行在其上的任何东西。
现在,我们看看网络层与应用层这上下两层的磨合中是否存在问题。从网络层面来看,在互联网这个铁路网中,有4个地方会造成列车拥堵,如图1-1所示,分别如下所述。
图1-1 影响互联网传输的4个因素
(1)“第一公里”,这是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽。这个带宽决定了一个网站能为用户提供的访问速度和并发访问量。一个网站,其服务的用户越多,对其出口带宽的要求就越大,当用户请求的数据量超过网站的出口带宽,就会在出口处形成拥塞。越是业务繁忙时,用户的访问数量越多,这个拥塞就越严重,网站会在最需要向用户提供服务时失去用户。
(2)“最后一公里”,这是指万维网流量向用户传送的最后一段接入链路,即用户接入带宽。用户的平均接入带宽,是影响互联网上层应用发展的决定性因素之一。在互联网发展的初期,用户主要通过拨号上网或ISDN等方式上网,网络接入速度很低,所以互联网内容以带宽占用非常小的文字为主,Telnet、BBS都是那时的主流应用。当万维网出现后,人机交互更加方便友好的多媒体内容开始在互联网上传播,接入带宽成为制约用户使用互联网的主要瓶颈。从2001年开始,电信运营商开始大力发展ADSL等宽带接入服务,随着带宽的不断提升和接入手段的丰富(光纤入户、Wifi、3G等),近年来“最后一公里”的问题得到很大改善,特别是这两年中国电信等大力开展以光纤接入为手段的宽带提速服务,“最后一公里”的瓶颈问题已经基本得到解决。
(3)对等互联关口。这里的“对等互联”是指不同基础运营商之间的互联互通,一般两个运营商之间只有两三个互联互通点,可以想象这两三个点上产生多么大的流量。当某个网站服务器部署在运营商A的IDC机房里,运营商B的用户要访问该网站,就必须经过A、B之间的互联互通点进行跨网访问。从互联网的架构来看,不同网络之间的互联互通带宽,对任何一个运营商网络的流量来说,占比都比较小,收敛比是非常高的,因此这里通常都是互联网传输中的拥堵点。
(4)长途骨干传输。首先是长距离传输时延问题,从网站服务器到用户之间要经过网站所在IDC、骨干网、用户所在城域网、用户所在接入网等,距离非常遥远,因此不可避免地带来较长的传输时延,影响用户体验,这一问题也是互联网本身无法解决的问题。其次是骨干网拥塞问题,由于互联网上的绝大部分流量都要通过骨干网络进行传输,这就要求骨干网络的承载能力必须与互联网的应用同步发展,但实际上两者并不是同步的,当骨干网络的升级和扩容滞后于互联网之上的应用的发展时,就会阶段性地使得大型骨干网的承载能力成为影响互联网性能的瓶颈。
在应用层中,SP们都在不断优化业务体验,其中最值得关注的就是服务响应时间。服务响应时间基本是由服务器响应时间和网络时延组成的。影响服务器响应时间的因素包括协议处理时间、程序性能优化、内容读取速度等方面,网络时延则是由数据报文在网络传送中被各个路由器、交换机转发产生的时延总和。在互联网领域有一个“8 秒定律”,用户访问一个网站时,如果等待网页打开的时间超过8 秒,会有超过30%的用户放弃等待。根据KissmeTrics最近的一项调查统计:一个网站10 秒后网页打不开,会有40%的用户跳出该页面;大部分手机用户愿意等待的加载时间为6~10 秒;1 秒延迟会导致转化率下降7%。算一下,假如一电子商务网站每天收入10万元,1秒钟的页面延迟将使它每年损失掉250万元。
CDN的产生与上面分析的一系列问题息息相关,如果这些问题没有手段缓解,那整个互联网将是与今天完全不同的另一番景象了。1995年,麻省理工学院教授,互联网发明者Tim Berners-Lee预见到当时互联网使用者已经习以为常的网络拥挤难题,未来会成为互联网应用的最大障碍。于是他向同事提出挑战,要发明一种全新的、从根本上解决问题的方法来推送互联网内容。他的这一提议造就了今天被大家普遍接受的互联网基础服务——CDN。