浅谈流媒体内容分发技术
2010-08-15朱宏兴
朱宏兴
(杭州师范大学钱江学院 计算机科学与技术专业,浙江 杭州 310012)
1 Client-Server系统架构
Client-Server拓扑结构首先是Client向Server发出请求,Server收到请求后把数据直接发送到Client。这种方式的优点是具有集中管理的方便性。缺点也比较明显,那就是当Client连接数较多时,Server的网络带宽常不能满足需求,并且并发和并行请求的处理也引起Server不堪负荷。
在这种架构下,采用集中计算方式,客户端和服务器存在着明显的主从关系,具体来说C/S结构有如下特点:
1.1 该结构模型以服务器为中心,各种各样的资源、信息和数据等都存放在服务器的硬盘上,客户端通过网络连到服务器上检索、下载、上传资料或请求运算,只有服务器端具有控制能力,客户端基本上充当了一个高性能的I/O设备。
1.2 服务器性能决定了网络的性能,每台服务器所能提供的信息数量受到自身存储空间的限制,而任意时刻它所能支持的客户端访问数量则既受到自身处理能力的限制也受到服务器所在网络吞吐能力的限制。
1.3 被发布信息的分布与生存期十分稳定。服务器只发布机器所有者想公之于众的信息,这些信息将会在该服务器上稳定地保存一段时间,并且该服务器通常也不间断地运行在网络上。
1.4 该结构的优点是被发布信息的存贮与管理比较集中、规范,网络安全性较高。
2 代理服务器技术
代理服务器 (Proxy Server)是一种特殊类型的Internet服务器。在传统的Web应用中,代理服务器用于扩展用户对Internet的数据访问能力。为提高代理服务的系统效率,缓存(Cache)技术被引入到代理服务器中,代理服务器将一些频繁访问的数据存贮在内存或硬盘中,当用户通过代理服务器用户访问时,如果数据在代理服务器的缓存中,代理服务器就无需访问远程的服务器,而只需通过本地缓存为用户服务。流媒体代理服务器的重要作用表现在:代理服务器承担了一部分用户访问,有效的降低了主服务器的访问负载;可以提高用户访问的响应速度,降低启动延迟;代理服务器离用户较近,网络状况较好,可以提供更好的流媒体服务;可以提高服务器的鲁棒性及节省网络资源。
然而代理服务器的主要问题在于如何保证主服务器的内容与代理缓存中的内容的一致性。即当服务器的内容更新后,如何保证代理服务器中缓存的数据即时更新,对这些问题的研究就产生了更智能的CDN技术。
3 CDN技术
CDN(Content Delivery Network),即互联网内容发布网络,它是一个建立并覆盖在互联网(Internet)之上、由分布在不同区域的节点Server群组成的虚拟网络。CDN可以实现把Server的内容高效、稳定地发布到离Client最近的地方。其基本思路就是尽可能避开互联网上有一可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳。通过在网络各处放置节点Server所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。对用户来说,通过CDN系统,得到响应的时间被大大缩短,连接质量也大大提高,从而大大提高了上网访问的总体性能。然而,CDN高昂的部署成本始终是一个问题。
流媒体CDN的核心问题主要集中在以下几个方面,一是缓存代理服务器的缓存机制研究,包括缓存策略(全部缓存、分段缓存、头部缓存等)、替换算法和预取算法等;一是针对部分缓存策略的分发技术研究以及多代理服务器间的协作等。CDN系统的设计目标是通过将媒体缓存于距用户较近的缓存代理服务器以提高客户端的访问质量,同时减轻流媒体对骨干网络上带宽的消耗传输成本),其缓存机制的设计、分发技术和多代理协作机制的研究等都是以此作为优化目标的。增加 CDN系统容量的方法:一是增加各代理的容量,但由于带宽限制,其增加的空间极为有限,整个系统依然受到C/S架构的因素的约束,并且其成本也不低;二是增加代理服务器的数量,但代理服务器的建设成本却是极其昂贵的。另外,CDN对实时数据的传输并不能起到作用。
4 IP组播技术
目前基于TCP/IP的Internet网络主要有三种传输模式:单播、广播和组播。
单播技术是一种单点到单点的数据传输模式,这种模式也是最常见的Internet通信方式。HTTP和FTP等应用都采用这种单播模式。这种模式的缺点是如果多个用户同时请求同一份数据,服务器必须通过网络给每个用户发送多份相同的数据。因为多媒体的数据量大,随着客户端数目的增加,很容易造成Server端的网络拥塞。
广播技术是一点到所有主机的数据传输模式,服务器发送的一份数据,将被发送到连接在网络上的所有主机。采用这种模式,服务器只需要发送一次数据,效率很高,但是由于发送模式的盲目性,数据会扩散到所有的网段而不关心网段中的主机是否需要接收。如果多媒体通信采用广播发送方式,则大量的数据将造成“广播风暴”,使网络通信处于瘫痪。
组播技术融合了以上两种传输模式的特点,可以将一份数据同时发送给一组特定的用户,避免了数据的冗余又不会盲目地造成网络带宽的浪费,目前很多的流媒体应用都采用这种传输模式。
IP组播方式在网络上只有唯一的数据包在进行传输,每个客户端都能接收到这个数据包,这极大地减轻了服务器的带宽需求,并且减轻了整个网络的负担。在这种模型中,数据被有效地发送给对数据感兴趣的接收者。在大规模的应用中,组播技术能够有效的节省网络带宽,然而IP组播技术有着其自身的问题。虽然研究人员对IP组播技术做了很多研究,并基于组播技术实现了一些应用,如视频会议,然而在实际的部署中,IP组播技术仍然存在一些很重要的关键问题,主要包括:网络协议的复杂性、网络和终端系统的异构性、组播的可靠性。
4.1 网络协议的复杂性
IP协议在现实中能够成功的应用和流行,其中最重要的原因就是协议的简单性和健壮性。IP协议的设计遵循了端对端设计中的简单性原则,使Internet的核心网络层保持简单、健壮并且易于理解,而让其上层的协议提供其它复杂的服务。IP层只是简单地提供best effort的服务,而传输可靠性、拥塞控制和流量控制等都由上层负责。然而,组播要比单播复杂得多而难以部署。首先,组播模型中缺乏有效的组管理。Internet缺少对于网络层的访问控制,导致任何匿名的用户可以加入某些特定的会话组。任何用户都可以通过给一些著名的组播会话中的节点发送一些无用的信息发起拒绝服务攻击。虽然拒绝服务攻击在单播服务中也存在,然而在组播系统中会严重得多。第二,路由器需要维护组播中每个session的状态,这不但增加了路由的复杂性,同时也导致了路由的扩展性。第三,组播要求给每个session分配一个全球唯一的组地址。组地址分配机制的缺乏将导致session间的地址冲突。第四,组播监视和调试工具的缺乏导致难以管理。
4.2 网络和终端系统的异构性
虽然组播能够有效地提高系统效率,很多网络应用能够从组播服务中受益,然而Internet是一个异构网络,在异构环境中,组播仍然存在一些问题和挑战。异构性表现在很多方面,包括网络和终端。Internet的底层硬件平台千差万别,可以是以太网、ATM,FDDI、令牌环网、帧中继、串行链路(PSTN,xDSL)、无线网络、卫星网络、移动网络等,这些底层网络具有不同的带宽、硬件存取控制方式和时延特性,在多链路情况下,各链路的带宽与代价也可能不同。另外,某些网络平台的数据链路具有非对称性,比如xDSL和卫星网络。终端主机的硬件处理能力和操作系统各不相同。就操作系统而言,主要操作系统包括UNIX,Windows,MacOS和OS2等以及各自不同的版本,对IP组播的支持程度和进程调度与管理、TCP/IP的实现方式和API都存在差异。
此外,互联设备具有差异性。路由器、交换机、网络服务器在包转发率、支持的路由协议的互操作性上存在差异。这些异构性都导致了实现IP组播网络中的复杂性。由于多个用户共享同一个通道,组播虽然在网络效率上要远高于单播,然而单通道的组播的用户只能接收同样的数据,不能同时满足不同用户的不同需求,单通道组播缺少扩展性。
4.3 组播的可靠性
在组播中,数据包的传输可靠性和单播中是一样的,都只提供best effort服务,然而上层系统为组播提供可靠性传输、拥塞控制和流量控制等服务要比为单播提供这些服务复杂得多。在单播中,传输的可靠性、有序性和拥塞控制等基本上都已经在TCP里实现了,而组播中,不同的应用对可靠性、拥塞控制和流量控制有不同的需求,这就使实现这些服务非常的复杂
[1]秀慧.《计算机网络安全管理》清华大学出版社,2003
[2]H.Deshpande,M.Bawa,H.Garcia-Molina,etc.Streaming live media over peer-to-peernetwork.Technical report,Standford University,2001