论文摘要
在Peer-to-Peer(P2P)覆盖网络系统中,都是通过各个终端结点之间相互协作,以达到利用终端结点各类资源。对于带宽密集型应用如P2P流媒体直播应用而言,主要是利用终端结点的带宽资源。因此如何最大限度且合理的利用这些网络带宽资源,是P2P流媒体系统设计的核心问题,这包含两层意思:1)如何最大限度的利用带宽,保证视频流畅播放;2)如何合理的利用带宽,即产生尽量少的冗余网络流量。最大限度的利用带宽资源主要从数据调度算法入手。数据调度算法是指用户获取不同数据块的先后顺序,以及从哪个结点获取这些数据块。因此数据调度算法对于结点获取数据产生直接的影响。P2P流媒体直播网络可以分为两种,一种是传统的没有志愿者参加的网络,一种是有志愿者参加的网络,其中志愿者是指一部分结点在一定的时间段内只提供服务,但不享受服务。根据非志愿者类型网络和志愿者类型网络应分别提出不同的数据调度算法以获取最大的带宽。ColorStream调度算法是针对非志愿者网络的,在ColorStream中,结点获取数据不仅遵循数据均匀分布的原则,同时考虑滑动窗口共享时间的长短因素。具有在滑动窗口中更长共享时间的数据将会享有一定的优先级别,这种策略尤其是在带宽资源匮乏以及连接数目受到限制时比较有效。ContriMax调度算法主要是针对志愿者网络模型的。某些异构网络环境,拥有大量的ADSL用户,这些用户没有足够的上传带宽,因此,他们对系统的带宽的贡献为负数。这样的环境对于数据源的压力非常大,最坏的情况可能导致系统中所有结点都不能得到满意的服务。在有志愿者的体系结构VolunteerLive中,那些空闲的结点,虽然自己不消费服务,但是被鼓励贡献出自己的带宽资源。VolunteerLive中的志愿结点用ContriMax算法调度数据以最大化自己的贡献。如何减少网际冗余流量,主要从两个方面研究:优化网络结构和优化调度算法。优化覆盖网络的结构有利于数据从较短的路径上传输,减少网际流量,分步调度算法通过分阶段请求数据同时充分共享之前请求的数据减少网际流量。树形覆盖网络具有延迟低的特点,但是不能应对网络的动态性。网状覆盖网络易于应付网络的动态性,却难于优化网络质量,造成大量的网际流量。针对树形和网状的覆盖网络结构的优缺点,混合的覆盖网络结构Tree-Control-Media-Mesh(TCMM)通过调整网络结构,减少网际流量。在TCMM中,两个相互独立的协议合作的控制数据的传输。TCMM的树型结构只是负责控制消息的传输,但是媒体数据的传输依靠一个网状结构。这种树网混合结构综合了树形结构与网状结构的优点同时避免了它们的缺点,达到了优化网络邻近性,同时抵抗网络动态性的目的。在目前的数据调度算法中,结点都是独立而分布地获取数据。这种方法的好处是相互依赖性降低,不足之处是会造成网际流量增加,因为各个结点可能独立的获取不同网络间的数据。针对此现状,分布式合作获取数据模型CoFetch通过结点协作而减少远距离数据请求达到减少网际流量的目的。在CoFetch中,结点获取数据不是一次性发出请求,而是采用分阶段逐步获取的方式,这种获取方式使得本地结点可以充分共享前阶段获取的数据。在目前的流媒体体系结构中,即便是提供相同的节目,不同的流媒体服务提供商组织的覆盖网络是相互独立的。由于用户是随机分布在不同的物理网络中,因此造成大量的网际流量,针对此问题,PPUnion共享体系结构可以使不同的服务提供商的覆盖网络中的结点共享数据。通过PPUnion的运用,网际流量和服务器的压力显著减少,同时结点的服务质量得到改善。