一种动态自适应的p2p直播流媒体子流调度方法

文档序号:9251238阅读:579来源:国知局
一种动态自适应的p2p直播流媒体子流调度方法
【技术领域】
[0001]本发明涉及一种对网络中对等方资源调度和利用的方法,具体的说是一种动态自适应的P2P直播流媒体子流调度方法,属于网络数据通信技术领域。
【背景技术】
[0002]采用P2P技术将直播视频数据传输给因特网中的大量用户是一种经济和便捷的方法,它能够有效利用网络边缘普通接入用户的带宽资源从而极大降低视频源服务器的压力,具有较好的可扩展性,当前实现大规模部署的直播流系统,如PPLive、UUSee等,都采用了这种方法。然而,普通终端主机相对于服务器来说,具有较大的动态性,会随时加入和退出系统,因此P2P直播流系统目前主要面临的挑战就是如何在动态网络环境下满足用户流畅收看直播节目的服务质量需求。
[0003]一般而言,在设计P2P直播流系统时,需要重点考虑的两个方面是对等方构建的覆盖网结构以及视频数据的调度和分发机制。覆盖网结构是P2P直播流系统的基础,视频数据传输都是在覆盖网之上进行,典型的覆盖网结构包括单树结构、多树结构和网状结构。树状覆盖网的优点是与数据的分发过程具有相同的结构,利于数据的扩散,但是具有特定结构的覆盖网在高动态性的网络环境中较难维护,因此它的健壮性不强,而且也无法利用叶子节点的带宽资源。网状覆盖网采用数据驱动的方式进行构建,也被称为无结构的网络,它会随着对等方的加入和退出不断调整,这种覆盖网能有效应对节点扰动给系统带来的影响。
[0004]视频数据调度和分发机制则在覆盖网的基础上对将视频数据多播传输给各个对等方,而在对视频流进行调度和分发时,目标对象可以是整个视频流[1]、划分后的子流[2]或者单个数据块[3]。直接对整个视频流进行调度时,采用的方式是单树结构的覆盖网,系统健壮性差、对等网络资源利用率低,而将视频流划分为细粒度的数据块进行分发时,可以在对等网络中有效利用对等方的上传能力进行并发传输,但这种细粒度的调度方式无法同时兼顾系统开销和数据分发时延方面的性能,一种折衷的方案是将视频流划分为更粗粒度的单元,也即子流,进行传输,然而这种方法也存在着划分方式不灵活、对等方带宽利用率不高、难以应对高动态网络环境的问题。
[0005]参考文献
[1]Y-H Chu, S.G.Rao, S.Seshan, et al.A case for end system multicast[J].1EEE Journal on Selected Area in Communicat1ns, 2002, 20(8): 1456-1471.[2]C.Hu, M.Chen, C.Xing, et al.Exploring the Optimal SubstreamScheduling and Distribut1n Mechanism for Data-Driven P2P Media Streaming [J].Computer Communicat1ns, 2014, 44:14-25.[3]X.Zhang, J.Liu, B.Li, et al.Coolstreaming/DONet: a data-drivenoverlay network for efficient live media streaming [C].1EEE INF0C0M, Miami,USA, 2005: 2102-2111。

【发明内容】

[0006]发明目的:针对目前基于P2P的直播流媒体系统存在缺乏高效的资源调度机制、用户体验质量难以得到保证等问题,提出一种以灵活调度对等网络资源为目标的动态自适应子流调度方法。
[0007]技术方案:一种动态自适应的P2P直播流媒体子流调度方法,该方法着重描述了对等方在划分子流和进行子流调度时所采用的方法,包括以下步骤:
A.视频流服务器对原始的视频流进行初始化处理,所有的视频数据都按照16KB大小划分为数据块,每个数据块都附加报头信息,标识数据块的序号,然后转入步骤B ;
B.对等方按照视频数据块的序号将所有数据块划分到16条子流中,其中数据块序号可转换为16N+K (其中N为自然数,K为小于16的自然数)模式的数据块,属于第K+1条子流,然后对每条子流采用二元组(G,K)标识,其中G表示子流数目,这里为16,K表示子流序号,此外,子流数目相同且K/2的值取整后相等的两条子流称为相邻子流,然后转入步骤C;
C.对等方与其他对等方交互缓存映射表,并从中选择部分对等方作为邻居集合NeighborSet,然后从NeighborSet中选择16个包含较新数据块(也即数据块的序号更大)的对等方作为父结点,并向这些父结点发送子流请求,每个父结点请求一条子流,然后转入步骤D ;
D.对等方在接收父结点发送过来的子流同时,对各条子流的传输速率进行监视,如果某条子流的下载速率持续10秒都低于子流的码率,转入步骤E,如果某条子流中各个数据块的平均传输速率在20秒内都高于子流码率的2倍,转入步骤F,否则继续对各条子流的传输速率进行监视;
E.对等方从NeighborSet中找到另一个已获得该条子流的对等方作为一个新的父结点,然后对该条传输速率较低的子流进行分裂,其中K为偶数的数据块仍从原来的父结点下载,K为奇数的数据块从新的父结点下载,两条子流的子流数目G值都修改为原来的2倍,同时对K值进行更新,然后返回步骤D ;
F.对等方将该子流与其相邻子流进行合并,如果相邻子流已经经过分裂,则同时中断所有被分裂出来的子流的传输,从而形成一条新的子流,并继续向该父节点请求新的子流,新子流的子流数目G值改为原来的一半,同时对K值进行更新,然后返回步骤D。
[0008]有益效果:与现有技术相比,本发明相对现有技术具有以下优点:
1.避免了木桶效应:较之当前已有的子流调度方法,本方法增强了对等方对子流进行灵活划分的能力,从而提高特定子流的传输速率,避免了当某条子流传输速率较低时带来的整个直播节目无法连贯播放问题。
[0009]2.实现了系统性能和健壮性的统一:子流粒度划分过粗会导致不少对等方的资源难以利用,而且难以应对高动态的网络环境,而如果子流粒度划分过细又会产生不少额外的调度开销,降低视频分发速率,对系统性能产生影响。本方法能够根据父结点的可用带宽和网络状况动态调整子流的粒度,从而实现系统性能和健壮性同时达到较高水平。
【附图说明】
[0010]图1为本发明实施例子流初始化、分裂及合并过程;
图2为本发明实施例对等方缓存映射表的数据结构;
图3为本发明实施例进行子流调度处理的流程图。
【具体实施方式】
[0011]下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1