《流媒体内容分发技术》由会员分享,可在线阅读,更多相关《流媒体内容分发技术(12页珍藏版)》请在金锄头文库上搜索。
1、流媒体内容分发技术流媒体内容分发技术随着 Internet 网络的日趋普及和信息传输技术的快速发展,Internet 上的传输内容已逐渐由单纯的文字传输转变成为包含文本、音频、视频的多媒体数据传输,这样的改变不仅使 Internet 使用者能获得更为丰富多样的信息,同时也代表着多媒体网络时代的来临。以前,多媒体文件需要从服务器上下载后才能播放。由于多媒体文件一般都比较大,下载整个文件往往需要很长的时间,限制了人们在互联网上使用多媒体数据进行交流。面对有限的带宽和拥挤的拨号网络,要实时实现窄带网络的视频、音频传输,最好的解决方案就是采用流式媒体的传输方式。流媒体应用的一个最大的好处是用户不需要花
2、费很长时间将多媒体数据全部下载到本地后才能播放,而仅需将起始几秒的数据先下载到本地的缓冲区中就可以开始播放了。流媒体的特点是数据量大、传输持续时间长、并且对延迟、抖动、丢包率、带宽等 QoS 指标要求严格,在当前的因特网上构建大规模的性价比高的流媒体系统是一个具有挑战性的工作。因特网上的传统流媒体系统是基于 Client/Server 模式的,一般包括一台或多台服务器,若干客户机。我们将系统能同时服务的客户总数称为系统容量,C/S模式的流媒体系统容量主要是由服务器端的网络输出带宽决定的,有时服务器的处理能力,内存大小,I/O 速率也影响到系统的容量。在 C/S 模式下,由于传输流媒体占用的带宽
3、大,持续时间长,而服务器端可利用的网络带宽有限,所以即使是使用高档服务器,其系统容量也不过几百个客户,根本就不具有经济规模性。另外,由于因特网不能保证 QoS,如果客户机距服务器较远,则流媒体传输过程中的延迟、抖动、带宽、丢包率等指标也将更加不确定,服务器为每一个客户都要单独发送一次流媒体内容,从而网络资源的消耗也十分巨大。对此业界相继提出了多种解决方案,比较重要的有内容分发网络 (Content Delivery Network,CDN)和 IP 组播 (IP Multicast),以及对等网络(P2P)内容分发方式等。一、一、CDNCDN 的全称是 Content Delivery Net
4、work,即内容分发网络。其目的是通过在现有的 Internet 中增加一层新的网络架构,将网站的内容发布到最接近用户的网络”边缘”,使用户可以就近取得所需的内容,解决 Internet 网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。 实际上,内容分发布网络(CDN)是一种新型的网络构建方式,它是为能在传统的 IP 网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的角度, CDN 代表了一种基于质量与秩序的网络服务模式。简单地说,内容发布网(CDN)是一个经策略性部署的整体系统,包括分布式存储
5、、负载均衡、网络请求的重定向和内容管理 4 个要件,而内容管理和全局的网络流量管理(Traffic Management)是 CDN 的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。总的来说,内容服务基于缓存服务器,也称作代理缓存(Surrogate),它位于网络的边缘,距用户仅有”一跳”(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN 服务提供商的数据中心)的一个透明镜像。这样的架构使得 CDN 服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延
6、迟的。据统计,采用 CDN 技术,能处理整个网站页面的 70%95的内容访问量,减轻服务器的压力,提升了网站的性能和可扩展性。与目前现有的内容发布模式相比较,CDN 强调了网络在内容发布中的重要性。通过引入主动的内容管理层的和全局负载均衡,CDN 从根本上区别于传统的内容发布模式。在传统的内容发布模式中,内容的发布由 ICP 的应用服务器完成,而网络只表现为一个透明的数据传输通道,这种透明性表现在网络的质量保证仅仅停留在数据包的层面,而不能根据内容对象的不同区分服务质量。此外,由于 IP 网的”尽力而为”的特性使得其质量保证是依靠在用户和应用服务器之间端到端地提供充分的、远大于实际所需的带宽通
7、量来实现的。在这样的内容发布模式下,不仅大量宝贵的骨干带宽被占用,同时 ICP 的应用服务器的负载也变得非常重,而且不可预计。当发生一些热点事件和出现浪涌流量时,会产生局部热点效应,从而使应用服务器过载退出服务。这种基于中心的应用服务器的内容发布模式的另外一个缺陷在于个性化服务的缺失和对宽带服务价值链的扭曲,内容提供商承担了他们不该干也干不好的内容发布服务。纵观整个宽带服务的价值链,内容提供商和用户位于整个价值链的两端,中间依靠网络服务提供商将其串接起来。随着互联网工业的成熟和商业模式的变革,在这条价值链上的角色越来越多也越来越细分。比如内容应用的运营商、托管服务提供商、骨干网络服务提供商、接
8、入服务提供商等等。在这一条价值链上的每一个角色都要分工合作、各司其职才能为客户提供良好的服务,从而带来多赢的局面。从内容与网络的结合模式上看,内容的发布已经走过了ICP 的内容(应用)服务器和 IDC 这两个阶段。IDC 的热潮也催生了托管服务提供商这一角色。但是,IDC 并不能解决内容的有效发布问题。内容位于网络的中心并不能解决骨干带宽的占用和建立 IP 网络上的流量秩序。因此将内容推到网络的边缘,为用户提供就近性的边缘服务,从而保证服务的质量和整个网络上的访问秩序就成了一种显而易见的选择。而这就是内容发布网(CDN)服务模式。CDN 的建立解决了困扰内容运营商的内容”集中与分散”的两难选择
9、,无疑对于构建良好的互联网价值链是有价值的,也是不可或缺的最优网站加速服务。CDN 的应用 利用 CDN,视频网站无需投资昂贵的各类服务器、设立分站点,应用 CDN网络,把内容复制到网络的最边缘,使内容请求点和交付点之间的距离缩至最小,从而促进 Web 站点性能的提高,具有重要的意义。CDN 网络的建设主要有企业建设的 CDN 网络,为企业服务;IDC 的 CDN网络,主要服务于 IDC 和增值服务;网络运营上主建的 CDN 网络,主要提供内容推送服务;CDN 网络服务商,专门建设的 CDN 用于做服务,用户通过与CDN 机构进行合作,CDN 负责信息传递工作,保证信息正常传输,维护传送网络,
10、而网站只需要内容维护,不再需要考虑流量问题。CDN 能够为网络的快速、安全、稳定、可扩展等方面提供保障。 IDC 建立 CDN 网络,IDC 运营商一般需要有分布各地的多个 IDC 中心,服务对象是托管在 IDC 中心的客户,利用现有的网络资源,投资较少,容易建设。例如某 IDC 全国有 10 个机房,加入 IDC 的 CDN 网络,托管在一个节点的Web 服务器,相当于有了 10 个镜像服务器,就近供客户访问。宽带城域网,域内网络速度很快,出城带宽一般就会瓶颈,为了体现城域网的高速体验,解决方案就是将 Internet 网上内容高速缓存到本地,将 Cache 部署在城域网各POP 点上,这样
11、形成高效有序的网络,用户仅一跳就能访问大部分的内容,这也是一种加速所有网站 CDN 的应用。CDN 的技术原理 传统未加缓存服务的访问过程:由上图可见,用户访问未使用 CDN 缓存网站的过程为:1)用户向浏览器提供要访问的域名;2)浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的 IP地址;3)浏览器使用所得到的 IP 地址,域名的服务主机发出数据访问请求; 4)浏览器根据域名主机返回的数据显示网页的内容。 通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。CDN 网络是在用户和服务器之间增加 Cache 层,如何将用户的请求引导到 Cac
12、he 上获得源服务器的数据,主要是通过接管 DNS 实现,下面让我们看看访问使用 CDN 缓存后的网站的过程: 通过上图,我们可以了解到,使用了 CDN 缓存后的网站的访问过程变为: 1)用户向浏览器提供要访问的域名; 2)浏览器调用域名解析库对域名进行解析,由于 CDN 对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的 CNAME 记录;3)为了得到实际 IP 地址,浏览器需要再次对获得的 CNAME 域名进行解析以得到实际的 IP 地址;在此过程中,使用的全局负载均衡 DNS 解析,如根据地理位置信息解析对应的 IP 地址,使得用户能就近访问。4)此次解析得到 CDN 缓存
13、服务器的 IP 地址,浏览器在得到实际的 IP 地址以后,向缓存服务器发出访问请求;5)缓存服务器根据浏览器提供的要访问的域名,通过 Cache 内部专用 DNS解析得到此域名的实际 IP 地址,再由缓存服务器向此实际 IP 地址提交访问请求; 6)缓存服务器从实际 IP 地址得得到内容以后,一方面在本地进行保存,以备以后使用,另一方面把获取的数据返回给客户端,完成数据服务过程; 7)客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。 通过以上的分析,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访问),又要在为指
14、定的网站提供加速服务的同时降低对 ICP 的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务,下面是 CDN 网络实现的具体操作过程。作为 ICP,只需要把域名解释权交给 CDN 运营商,其他方面不需要进行任何的修改;操作时,ICP 修改自己域名的解析记录,一般用 cname 方式指向 CDN网络 Cache 服务器的地址。作为 CDN 运营商,首先需要为 ICP 的域名提供公开的解析,为了实现sortlist,一般是把 ICP 的域名解释结果指向一个 CNAME 记录;当需要进行 sortlist 时,CDN 运营商可以利用 DNS 对 CNAME 指向的域名解析过程进行特殊
15、处理,使 DNS 服务器在接收到客户端请求时可以根据客户端的IP 地址,返回相同域名的不同 IP 地址;由于从 cname 获得的 IP 地址,并且带有 hostname 信息,请求到达 Cache之后,Cache 必须知道源服务器的 IP 地址,所以在 CDN 运营商内部维护一个内部 DNS 服务器,用于解释用户所访问的域名的真实 IP 地址;在维护内部 DNS 服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。 CDN 的网络架构 CDN 网络架构主要由两大部分,分为中心和边缘两部分,中心指 CDN 网管中心和 DNS 重定向解析中心
16、,负责全局负载均衡,设备系统安装在管理中心机房,边缘主要指异地节点,CDN 分发的载体,主要由 Cache 和负载均衡器等组成。当用户访问加入 CDN 服务的网站时,域名解析请求将最终交给全局负载均衡 DNS 进行处理。全局负载均衡 DNS 通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在世界各地的所有 CDNC 节点保持通信,搜集各节点的通信状态,确保不将用户的请求分配到不可用的 CDN 节点上,实际上是通过 DNS 做全局负载均衡。对于普通的 Internet 用户来讲,每个 CDN 节点就相当于一个放置在它周围的 WEB。通过全局负载均衡 DNS 的控制,用户的请求被透明地指向离他最近的节点,节点中 CDN 服务器会像网站的原始服务器一样,响应用户的请求。由于它离用户更近,因而响应时间必然更快。每个 CDN 节点由两部分组成:负载均衡设备和高速缓存服务器负载均衡设备负责每个节点中各个 Cache 的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS