作 者:王洪波 马轶慧
(2)数据驱动方法
近年来,人们又提出用于P2P的数据驱动的方法。数据驱动的覆盖网络与基于树结构的最大不同在于它不组建和维护一个传输数据的明显拓扑结构,它用数据的可用性去引导数据流,而并不是在高度动态的P2P环境下不断地修复拓扑结构。
一个不用明确维护拓扑结构的数据分发方法是使用Gossip协议。在典型的Gossip协议中,节点给一组随机选择的节点发送最近生成的消息;这些节点在下一次做同样的动作,其他节点也做同样的动作,直到该消息传送到所有节点。对Gossip目标节点进行随机选择可以在存在随机失效的情况下使系统获得较好的健壮性,另外还可以避免中心化操作。然而,Gossip不能直接用作视频广播,因为其随机推送可能导致高带宽视频的大量冗余。此外,在没有明确的拓扑结构支持下,最小化启动和传输时延成为主要问题。为了解决这些问题,一些解决方案,例如Chainsaw[4]、Cool-Streaming[5]采用拉取技术,即:节点维持一组伙伴并周期性地同伙伴交换数据可用性信息,接着节点可以从一个或多个伙伴找回没有获得的数据,或着提供可用数据给伙伴。由于节点只在没有数据时去主动获取,所以避免了冗余。此外,由于任一数据块可能在多个伙伴上可用,所以覆盖网络对时效是健壮的。最后,随机化的伙伴关系意味着节点间的潜在的可用带宽可以被完全利用。
2 P2P流媒体中的关键技术
由于P2P流媒体系统中节点存在不稳定性,P2P流媒体系统需要解决如下几个关键技术[6]:文件定位、节点选择、容错以及安全机制等。
2.1文件定位技术
流媒体服务实时性强,快速准确的文件定位是流媒体系统要解决的基本问题之一。在P2P流媒体系统中,新加入的客户在覆盖网络中以P2P的文件查找方式,找到可提供所需媒体内容的节点并建立连接,接受这些节点提供的媒体内容。
P2P方式的文件查找研究是近年来P2P计算的一个研究热点。在P2P网络结构中常用的文件定位方式是通过分布式哈希表(DHT)算法[7]来实现,每个文件经哈希运算后得到一个唯一的标识符,每个节点也对应一个标识符,文件存储到与其标识符相近的节点中。查找文件时,首先哈希运算文件名得到该文件的标识符,通过不同的路由算法找到存放该文件的节点。虽然DHT方式查找文件快速有效,但是也存在一些固有的问题,如DHT是将文件均匀分布在各个节点上,不能反映媒体文件的热门度,导致负载的不均衡;其次DHT不能提供关键字的搜索,如同时包含媒体文件名、媒体类型等丰富信息的文件的查询。
文献[8]在泛洪机制基础上做了改进,在无结构的P2P网络中采用了或然性的泛洪技术,通过或然性的分析选取优化的分支进行泛洪操作,从而使其伸缩性比正常泛洪机制提高99%。DirectStream[9]是一个基于目录的P2P流媒体点播系统,其媒体文件的查找方式是通过目录服务器来维护所有媒体服务器信息和客户信息(包括IP地址、缓冲大小等)。当新客户的请求到达时,在目录中查找请求的媒体文件,快速返回侯选节点,侯选节点可以是媒体服务器,也可以是可提供该影片片段的客户,从而具有P2P的特性。但是由于其目录服务器的集中式管理,DirectStream系统的规模受到了限制。
2.2节点的选择
在一个典型的P2P覆盖网络中,网络中的节点来自各个不同自治域,节点可以在任一时间自由地加入或离开覆盖网络,导致覆盖网络具有很大的动态性和不可控性。因此,如何在服务会话初始时,确定一个相对稳定的可提供一定服务质量(QoS)保证的服务节点或节点集合是P2P流媒体系统迫切需要解决的问题。
节点的选择可以根据不同的QoS需求采取不同的选择策略。若希望服务延迟小,可以选择邻近的节点快速建立会话,如在局域网内有提供服务的节点,就不选择互联网上的节点,这也可以避免互联网上的带宽波动和拥塞;若希望高质量服务,则可选择能够提供高带宽、CPU能力强的节点,如在宽带接入的PC机和不对称数字用户线(ADSL)接入的终端之间选择前者;若希望得到较稳定的服务,应选择相对稳定的节点,如在系统中停留时间较长,不会频繁加入或退出系统的或正在接受服务的节点。通常选择的策略是上述几种需求的折衷。具有代表性的节点选择机制有:PROMISE体系中的端到端的选择机制和感知拓扑的选择机制、P2Cast系统的“最合适”(Best Fit,简称BF)节点选择算法等。
2.3容错机制
由于P2P流媒体系统中节点的动态性,正在提供服务的节点可能会离开系统,传输链路也可能因拥塞而失效。为了保证接受服务的连续性,必须采取一些容错机制使系统的服务能力不受影响或尽快恢复。
对于节点失效的问题,可以采取主备用节点的方式容错。在选择发送节点时,应选择多个服务节点,其中某个节点(集)作为活动节点(集),其余节点则作为备用节点。当活动节点失效时则由备用节点继续提供服务。值得研究的问题是如何快速有效地检测节点的失效,以及如何保证在主备用节点切换的过程中流媒体服务的连续性。流媒体服务的实时性较强,因此节点的故障检测时间应尽可能短,才能保证服务不中断。目前有大量关于如何缩短故障检测时间的研究,大都是采用软状态协议询问节点的存在,需要考虑询问频度与询问消息开销之间的折衷。
数据的编码技术也可以提供系统的容错性,如前向错误编码(FEC)和多描述编码(MDC)。FEC通过给压缩后的媒体码流加上一定的冗余信息来有效地提高系统的容错性,而MDC的基本思想是对同一媒体流的内容采用多种方式进行描述,每一种描述都可以单独解码并获得可以接受的解码质量,多个描述方式结合起来可以使解码质量得到增强。这两种编码都能适应客户异构性的特点,客户可以根据自己的能力选择收取多少数据进行解码。此外,将FEC和MDC结合,能取得更好的容错效果。
2.4安全机制
网络安全是P2P流媒体系统的基本要求,必须通过安全领域的身份识别认证、授权、数据完整性、保密性和不可否认性等技术,对P2P信息进行安全控制。对产权的控制,现阶段可采用DRM技术控制;对于基于企业级的P2P流媒体播出系统可以安装防火墙阻止非法用户访问;因特网上的P2P流媒体系统可以通过数据包加密方式保证安全。在P2P流媒体系统内,可采用用户分级授权的办法,阻止非法访问。
3 P2P流媒体的应用
网络的迅猛发展和普及为P2P流媒体业务发展提供了强大市场动力,P2P流媒体技术的应用将为网络信息交流带来革命性变化。目前常见的P2P流媒体的应用主要有:
(1)视频点播(VOD):这是最常见、最流行的流媒体应用类型。
(2)视频广播:视频广播可以看作是视频点播的扩展,它把节目源组织成频道,以广播的方式提供。
(3)交互式网络电视(IPTV):IPTV利用流媒体技术通过宽带网络传输数字电视信号给用户,这种应用有效地将电视、电信和计算机3个领域结合在一起,具有很好的发展前景。