CDN技术原理

首先,让我们来看一下传统的Internet网络的基本结构和数据传输情况,如下图1-1所示。
[img]http://tech.lmtw.com/UploadFiles/200506/20050602122457828.gif[/img]
图1-1 Internet 网络基本结构及数据传输方式

· 根据传统的网络结构,用户的访问流程基本如下:

  a) 用户在自己的浏览器中输入要访问的网站的域名;
  b) 浏览器向本地DNS请求对该域名的解析;
  c) 本地DNS将请求发到网站授权的DNS服务器;
  d) 授权DNS将服务器的IP地址作为解析结果送给本地DNS,
  e) [color=red]本地DNS将解析结果返还给用户,同时将该解析结果保存在自己的缓存中,直到相应的TTL(生存周期)过期,才再向网站的授权DNS请求解析。[/color]
  f) 用户在得到IP地址后,向该地址所指向的网站的服务器进行访问。

· 上述传统的访问模式存在着如下几个严重影响互联网用户的访问效率和质量的环节:

  首先,传统的DNS解析过程在将网站主机域名转换为IP地址时,并不预先判断该服务器是否正常工作;即使该服务器已经宕机不能提供服务了,用户的请求仍将被发往这台服务器,造成服务的中断。
  其次,互联网从诞生的第一天起,就缺乏一个专门的[color=red]中央管理结构,也缺乏统一的产品和技术标准[/color]。这一点曾是互联网得以迅速发展的优势。但是,随着互联网的规模越来越大,这一点造成了众多不同网络结构并存的局面。不同网络间的兼容以及不同网络运营商/ISP之间的传输瓶颈等问题使得数据的流通受到限制。据统计,现有互联网上的平均传输速率不高于30Kbps。
  另外,现有的互联网以数据包传输为基础,任何一个数据包的丢失或出错都必须重新发送,而[color=red]平均一个重传过程需要3秒钟,从而导致延迟[/color]。并且现有的HTTP协议也有诱发延迟的因素,[color=red]据调查,完整下载一个网页,需要在用户和服务器之间往返20~100次。 [/color]最后,现有的路由技术以路由器工作状态的历史数据为依据来确定当前数据包的传输路径,无法真实反应当前的路由和网络连接状况。这往往会导致数据传输所经过的路径并不是当前的最佳路径。而且,众多的路由器和交换机不但使数据传输的时间延迟增大,还会增加出错的几率,因为任何一个路由器出现问题都会影响到整个传输过程。

· ChinaCache CDN 工作原理示意图:
[img]http://tech.lmtw.com/UploadFiles/200506/20050602122459652.gif[/img]
· ChinaCache CDN 对网络的优化作用:

ChinaCache CDN系统通过在精心挑选的网络各处放置节点服务器,从而将网站的内容放置到离用户最近的地方,避免了上述影响互联网传输性能的“第一公里”和“网间互联瓶颈”等各个环节,为改善中国的互联网环境、解决网站的服务质量和提高用户的上网速度提供了有效的解决方案。
ChinaCache CDN对网络的优化作用主要体现在如下几个方面:
 ◆ 解决服务器端的“第一公里”问题
 ◆ 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
 ◆ 减轻了各省的出口带宽压力
 ◆ 缓解了骨干网的压力
 ◆ 优化了网上热点内容的分布

  ChinaCache CDN对网络的优化作用原理图如下:
[img]http://tech.lmtw.com/UploadFiles/200506/20050602122500581.gif[/img]

在描述CDN的实现原理,让我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差

用户访问未使用CDN缓存网站的过程为:
1) 用户向浏览器提供要访问的域名;
  2) 浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;
  3) 浏览器使用所得到的IP地址,域名的服务主机发出数据访问请求;
  4) 浏览器根据域名主机返回的数据显示网页的内容。
  通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。CDN网络是在用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,下面让我们看看访问使用CDN缓存后的网站的过程:
使用了CDN缓存后的网站的访问过程变为:
1) 用户向浏览器提供要访问的域名;
  2) 浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。
  3) 此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;
  4) 缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
  5) 缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;
  6) 客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
通过以上的分析我们可以得到,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访问),又要在为指定的网站提供加速服务的同时降低对ICP的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务,  下面是CDN网络实现的具体操作过程。
  1) 作为ICP,只需要把域名解释权交给CDN运营商,其他方面不需要进行任何的修改;操作时,ICP修改自己域名的解析记录,一般用cname方式指向CDN网络Cache服务器的地址。
  2) 作为CDN运营商,首先需要为ICP的域名提供公开的解析,为了实现sortlist,一般是把ICP的域名解释结果指向一个CNAME记录;
  3) 当需要进行sorlist时,CDN运营商可以利用DNS对CNAME指向的域名解析过程进行特殊处理,使DNS服务器在接收到客户端请求时可以根据客户端的IP地址,返回相同域名的不同IP地址;
  4) 由于从cname获得的IP地址,并且带有hostname信息,请求到达Cache之后,Cache必须知道源服务器的IP地址,所以在CDN运营商内部维护一个内部DNS服务器,用于解释用户所访问的域名的真实IP地址;
  5) 在维护内部DNS服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。

CDN网络架构主要由两大部分,分为中心和边缘两部分,中心指CDN网管中心和DNS重定向解析中心,负责全局负载均衡,设备系统安装在管理中心机房,边缘主要指异地节点,CDN分发的载体,主要由Cache和负载均衡器等组成。
  当用户访问加入CDN服务的网站时,域名解析请求将最终交给全局负载均衡DNS进行处理。全局负载均衡DNS通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在世界各地的所有CDNC节点保持通信,搜集各节点的通信状态,确保不将用户的请求分配到不可用的CDN节点上,实际上是通过DNS做全局负载均衡。
  对于普通的Internet用户来讲,每个CDN节点就相当于一个放置在它周围的WEB。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求。由于它离用户更近,因而响应时间必然更快。
  每个CDN节点由两部分组成:负载均衡设备和高速缓存服务器
  负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。
  高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。
  CDN的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。通过完善的网管系统,用户可以对系统配置进行修改。
  理论上,最简单的CDN网络有一个负责全局负载均衡的DNS和各节点一台Cache,即可运行。DNS支持根据用户源IP地址解析不同的IP,实现就近访问。为了保证高可用性等,需要监视各节点的流量、健康状况等。一个节点的单台Cache承载数量不够时,才需要多台Cache,多台Cache同时工作,才需要负载均衡器,使Cache群协同工作。

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。
  实际上,内容分发布网络(CDN)是一种新型的网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。简单地说,内容发布网(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。总的来说,内容服务基于缓存服务器,也称作代理缓存(Surrogate),它位于网络的边缘,距用户仅有"一跳"(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。据统计,采用CDN技术,能处理整个网站页面的70%~95%的内容访问量,减轻服务器的压力,提升了网站的性能和可扩展性。
  与目前现有的内容发布模式相比较,CDN强调了网络在内容发布中的重要性。通过引入主动的内容管理层的和全局负载均衡,CDN从根本上区别于传统的内容发布模式。在传统的内容发布模式中,内容的发布由ICP的应用服务器完成,而网络只表现为一个透明的数据传输通道,这种透明性表现在网络的质量保证仅仅停留在数据包的层面,而不能根据内容对象的不同区分服务质量。此外,由于IP网的"尽力而为"的特性使得其质量保证是依靠在用户和应用服务器之间端到端地提供充分的、远大于实际所需的带宽通量来实现的。在这样的内容发布模式下,不仅大量宝贵的骨干带宽被占用,同时ICP的应用服务器的负载也变得非常重,而且不可预计。当发生一些热点事件和出现浪涌流量时,会产生局部热点效应,从而使应用服务器过载退出服务。这种基于中心的应用服务器的内容发布模式的另外一个缺陷在于个性化服务的缺失和对宽带服务价值链的扭曲,内容提供商承担了他们不该干也干不好的内容发布服务。
  纵观整个宽带服务的价值链,内容提供商和用户位于整个价值链的两端,中间依靠网络服务提供商将其串接起来。随着互联网工业的成熟和商业模式的变革,在这条价值链上的角色越来越多也越来越细分。比如内容/应用的运营商、托管服务提供商、骨干网络服务提供商、接入服务提供商等等。在这一条价值链上的每一个角色都要分工合作、各司其职才能为客户提供良好的服务,从而带来多赢的局面。从内容与网络的结合模式上看,内容的发布已经走过了ICP的内容(应用)服务器和IDC这两个阶段。IDC的热潮也催生了托管服务提供商这一角色。但是,IDC并不能解决内容的有效发布问题。内容位于网络的中心并不能解决骨干带宽的占用和建立IP网络上的流量秩序。因此将内容推到网络的边缘,为用户提供就近性的边缘服务,从而保证服务的质量和整个网络上的访问秩序就成了一种显而易见的选择。而这就是内容发布网(CDN)服务模式。CDN的建立解决了困扰内容运营商的内容"集中与分散"的两难选择,无疑对于构建良好的互联网价值链是有价值的,也是不可或缺的最优网站加速服务。


目前的CDN服务主要应用于证券、金融保险、ISP、ICP、网上交易、门户网站、大中型公司、网络教学等领域。另外在行业专网、互联网中都可以用到,甚至可以对局域网进行网络优化。利用CDN,这些网站无需投资昂贵的各类服务器、设立分站点,特别是流媒体信息的广泛应用、远程教学课件等消耗带宽资源多的媒体信息,应用CDN网络,把内容复制到网络的最边缘,使内容请求点和交付点之间的距离缩至最小,从而促进Web站点性能的提高,具有重要的意义。CDN网络的建设主要有企业建设的CDN网络,为企业服务;IDC的CDN网络,主要服务于IDC和增值服务;网络运营上主建的CDN网络,主要提供内容推送服务;CDN网络服务商,专门建设的CDN用于做服务,用户通过与CDN机构进行合作,CDN负责信息传递工作,保证信息正常传输,维护传送网络,而网站只需要内容维护,不再需要考虑流量问题。
  CDN能够为网络的快速、安全、稳定、可扩展等方面提供保障。
  IDC建立CDN网络,IDC运营商一般需要有分布各地的多个IDC中心,服务对象是托管在IDC中心的客户,利用现有的网络资源,投资较少,容易建设。例如某IDC全国有10个机房,加入IDC的CDN网络,托管在一个节点的Web服务器,相当于有了10个镜像服务器,就近供客户访问。宽带城域网,域内网络速度很快,出城带宽一般就会瓶颈,为了体现城域网的高速体验,解决方案就是将Internet网上内容高速缓存到本地,将Cache部署在城域网各POP点上,这样形成高效有序的网络,用户仅一跳就能访问大部分的内容,这也是一种加速所有网站CDN的应用。


门户级网站架构设计

1、 新浪

新浪采用了ChinaCache做的CDN系统,ChinaCache在全国分布了四十多个点,同时采用基于动态DNS分配的全球服务器负载均衡技术。

从新浪的站点结构可以看出:

> www.sina.com.cn

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: libra.sina.com.cn

Addresses: 61.135.152.71, 61.135.152.72, 61.135.152.73, 61.135.152.74 61.135.152.75, 61.135.152.76, 61.135.153.181, 61.135.153.182, 61.135.53.183, 61.135.153.184, 61.135.152.65, 61.135.152.66, 61.135.152.67, 61.135.12.68, 61.135.152.69, 61.135.152.70

Aliases: www.sina.com.cn, jupiter.sina.com.cn

在北京地区ChinaCache将www.sina.com.cn的网址解析到libra.sina.com.cn,然后libra.sina.com.cn做了DNS负载均衡,将libra.sina.com.cn解析到61.135.152.71等16个ip上,这16个ip分布在北京的多台前台缓存服务器上,使用squid做前台缓存。如果是在其它地区访问www.sina.com.cn可能解析到本地相应的服务器,例如pavo.sina.com.cn,然后pavo又对应了很多做了squid的ip。这样就实现了在不同地区访问自动转到最近的服务器访问,达到加快访问速度的效果。

我们再看一个新浪其它频道是指到哪里的:

> news.sina.com.cn

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: libra.sina.com.cn

Addresses: 61.135.152.65, 61.135.152.66, 61.135.152.67, 61.135.152.68 61.135.152.69, 61.135.152.70, 61.135.152.71, 61.135.152.72, 61.135.152.73 61.135.153.178, 61.135.153.179, 61.135.153.180, 61.135.153.181, 61.135.153.182 61.135.153.183, 61.135.153.184

Aliases: news.sina.com.cn, jupiter.sina.com.cn

可以看出,各个频道的前台缓存集群与www.sina.com.cn的前台缓存集群是相同的。

2、 搜狐

Sohu与新浪的原理差不多,下面是nslookup的结果:

> www.sohu.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: pagegrp1.sohu.com

Addresses: 61.135.132.172, 61.135.132.173, 61.135.132.176, 61.135.133.109 61.135.145.47, 61.135.150.65, 61.135.150.67, 61.135.150.69, 61.135.150.74 61.135.150.75, 61.135.150.113, 61.135.150.145, 61.135.131.73, 61.135.131.91 61.135.131.180, 61.135.131.182, 61.135.131.183, 61.135.132.65, 61.135.

132.80

Aliases: www.sohu.com

只不过libra.sina.com.cn换成了pagegrp1.sohu.com

我们再来看一下sohu的频道:

> news.sohu.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: pagegrp1.sohu.com

Addresses: 61.135.145.47, 61.135.150.65, 61.135.150.67, 61.135.150.69 61.135.150.74, 61.135.150.75, 61.135.150.113, 61.135.150.145, 61.135.131.73 61.135.131.91, 61.135.131.180, 61.135.131.182, 61.135.131.183, 61.135.132.65 61.135.132.80, 61.135.132.172, 61.135.132.173, 61.135.132.176, 61.135.133.109

Aliases: news.sohu.com

同新浪相同,用的是同样的服务器群,这可能是因为他们用的都是ChinaCache的服务吧,不过sohu的名字起的有点土,pagegrp1,没有libra,pavo好听,这名字听起来有点像法语,比较浪漫。

3、 网易

网易似乎没用ChinaCache的服务,下面是nslookup结果:

> www.163.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: www.163.com

Addresses: 202.106.168.103, 202.106.168.104, 202.106.168.109, 202.106.168.121 202.108.36.153, 202.108.36.155, 202.108.36.156, 202.108.36.167, 202.108.36.172 202.108.36.196

直接在www.163.com 这个域名上做了DNS负载均衡。这样的话就要求服务器必须放的非常靠近主节点,才能保证各地的用户访问的速度。

但163不同的频道是放在不同的缓存集群上的,这与sina,sohu有些不同,等于sina,sohu是按照地区划分服务器集群,而网易按照频道划分服务器集群。

> 163.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: 163.com

Addresses: 202.108.36.205, 202.108.36.206, 202.108.36.207, 202.108.36.201 202.108.36.202, 202.108.36.203, 202.108.36.204

显然,这和www.163.com不是一个集群,我们再来试一个:

> sports.163.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: channel.cache.163.com

Addresses: 202.108.36.136, 202.108.36.208, 202.108.36.209, 202.108.36.210 202.108.36.211, 202.108.36.212, 202.108.36.213

Aliases: sports.163.com

可以看出,和上面的集群也是不同的。

4、 百度

百度的前台服务器就不是很多了:

> www.baidu.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: www.baidu.com

Addresses: 202.108.250.249, 202.108.249.134



> baidu.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: baidu.com

Address: 202.108.250.228



> mp3.baidu.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: mp3.baidu.com

Address: 202.108.249.131

只有www.baidu.com做了两台服务器的集群,频道都用了一台服务器做前台



5、 一搜

> yisou.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: yisou.com

Addresses: 202.165.102.114, 202.43.217.14, 202.43.217.15, 202.43.217.16 202.43.217.17, 202.165.102.111, 202.165.102.112, 202.165.102.113



> www.yisou.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: www.yisou.com

Addresses: 202.43.217.17, 202.165.102.111, 202.165.102.112, 202.165.102.113 202.165.102.114, 202.43.217.14, 202.43.217.15, 202.43.217.16



> mp3.yisou.com

Server: UnKnown

Address: 192.168.1.254



Non-authoritative answer:

Name: www.yisou.com

Addresses: 202.165.102.113, 202.165.102.114, 202.43.217.14, 202.43.217.15 202.43.217.16, 202.43.217.17, 202.165.102.111, 22.165.102.112

Aliases: mp3.yisou.com

前台做了8台服务器的缓存集群,www.yisou.com和 yisou.com以及mp3.yisou.com是用的同一个集群。



通过前面的分析我们可以得到一个结论:sina和sohu使用了CDN与GSBL与DNS负载均衡技术,每个地区一组前台服务器群,网易,百度使用了DNS负载均衡技术,每个频道一组前台服务器,一搜使用了DNS负载技术,所有频道共用一组前台服务器集群。


1,站点页面分析
1-1,主页面整体分析
1-2,浏览器兼容性分析
1-3,元标记检查
1-4,下载时间检查和图片检查
1-5,链接检查
1-6,原代码设计检查
2,站点运用技术和设计分析
2-1,站点采用技术及合理性
2-2,站点艺术性、设计创意和导航性分析
3,站点交互性分析
3-1,站点查询
3-2,电子邮件组
3-3,反馈信息表单
3-4,BBS
3-5,定单表单
4,站点内容分析
4-1,站点主线、版块安排与风格
4-2,页面中标题
4-3,产品或服务价值描述
4-4,产品或服务外附加有价值信息
4-5,站点信息吸引力
4-6,站点信任度
4-7,站点内容唯一性
4-8,站点信息源
5,电子商务运行环境分析
5-1,电子商务平台的运行环境
5-2,数据库开发与支持
5-3,商务平台运行的稳定性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值