CN101702734B - 流媒体数据调度方法、装置与节点设备 - Google Patents

流媒体数据调度方法、装置与节点设备 Download PDF

Info

Publication number
CN101702734B
CN101702734B CN 200910236901 CN200910236901A CN101702734B CN 101702734 B CN101702734 B CN 101702734B CN 200910236901 CN200910236901 CN 200910236901 CN 200910236901 A CN200910236901 A CN 200910236901A CN 101702734 B CN101702734 B CN 101702734B
Authority
CN
China
Prior art keywords
node
data block
partner
scheduling
reference count
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 200910236901
Other languages
English (en)
Other versions
CN101702734A (zh
Inventor
付强
高峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bo Yun vision (Beijing) Technology Co. Ltd.
Original Assignee
SUANTONG DIGITAL TECHNOLOGY RESEARCH CENTER Co Ltd BEIJING
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SUANTONG DIGITAL TECHNOLOGY RESEARCH CENTER Co Ltd BEIJING filed Critical SUANTONG DIGITAL TECHNOLOGY RESEARCH CENTER Co Ltd BEIJING
Priority to CN 200910236901 priority Critical patent/CN101702734B/zh
Publication of CN101702734A publication Critical patent/CN101702734A/zh
Application granted granted Critical
Publication of CN101702734B publication Critical patent/CN101702734B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种流媒体数据调度方法、装置与节点设备,该方法包括:获取需要调度的当前数据块的数据块编号,根据所述数据块编号查询本地节点的伙伴节点集合,获取拥有所述当前数据块的伙伴列表;根据所述伙伴列表中伙伴节点的引用计数确定调度节点,所述调度节点为所述引用计数最小的伙伴节点,所述伙伴节点的引用计数用于表示本地节点向相应的伙伴节点已发出调度请求的情况下,尚未收到或在规定时间内未收到来自所述相应的伙伴节点的数据块的数量;向所述调度节点发送调度所述当前数据块的调度请求。本发明提供的流媒体数据调度方法、装置与节点设备,基于网络状态选择调度节点,以实现对流媒体数据的调度,同时实现了节点间的负载均衡。

Description

流媒体数据调度方法、装置与节点设备
技术领域
本发明涉及流媒体技术,尤其涉及一种基于P2P技术的流媒体数据调度方法、装置与节点设备。
背景技术
点对点(Peer-to-Peer;简称为:P2P)技术主要指由硬件形成网络连接后的信息控制技术,主要代表形式是在应用层上基于P2P网络协议的应用。普遍认为,P2P系统由若干互联协作的计算机构成,依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益,系统中各成员同时扮演服务器与客户端的角色,能够意识到彼此的存在,构成一个虚拟或实际的群体。
随着计算技术的发展和宽带网络的普及,当今个人用户的桌面计算机不仅早已具备了足够强大的处理能力,而且具有相对过去好的多的接入质量,近年来P2P被引入到了流媒体领域,以期通过Peer节点之间的互联,在合理的组织和调度方式下,使流媒体数据在广大参与节点之间进行传输。将P2P技术应用于流媒体传输领域,其实质也就是把组播的功能从网络层移到应用层,使得每个流媒体用户同时也是一个P2P系统中的一个节点,用户可以根据他们的网络状态和设备能力与一个或多个用户建立连接来分享数据,这种连接能减少服务器的负担并能有效的提升用户的连接质量。P2P技术因为其多用户分享数据的特性,可以有效地解决流媒体应用中的可扩展性问题,即使在大量的用户同时访问流媒体服务器的情况下,也不会造成服务器因负载过重而瘫痪,从而可有效提升流媒体系统的鲁棒性。
流媒体传输具有实时性、连续性和数据依赖性等特点。实时性要求网络中传输的各视频帧数据必须在特定的播放时限之前到达接收方;连续性要求各视频帧数据必须按照一定的顺序进行播放。压缩的视频数据具有两种类型的数据依赖性:一是帧间依赖,要求接收方在解码一个优先级较低的视频帧之前必须已解码它所依赖的其它优先级较高的视频帧;二是帧内依赖,要求接收方在全部接收到组成一帧的所有数据包之后再进行解码,否则会引起解码错误,从而导致显示画面图像破碎等现象,甚至引起解码器程序崩溃而中止播放。
在P2P流媒体系统中,由于网络的异构性(节点之间带宽的不对称等)、网络带宽的抖动、网络结构的动态性(节点频繁的加入或退出)等原因,对流媒体提供服务质量保证成为流媒体技术领域的一个关键问题。为了在互联网上开展大规模的P2P直播/点播流媒体服务,确保整体P2P流媒体服务QoS的可靠性,P2P流媒体相关算法与协议必须针对流媒体而设计,不同于以往的P2P文件共享式数据组织与调度方法。特别是对于一个普通的用户节点而言,播放质量需要从网络结构和数据调度的高度予以保证。在大范围应用的情况下,由于数据调度的差异,不同节点之间、甚至单个节点在不同时刻的用户体验相差很大,所谓数据调度,就是每个节点定期地向它的伙伴节点请求自己没有的数据,当一个节点向它的伙伴节点请求自己没有的数据时,需要由调度算法确定向哪个伙伴节点请求数据。
现行技术常采用的一些数据调度算法主要包括:随机调度、循环调度和最少数据优先调度等方式。其中,随机调度算法通过随机的选择P2P网络中的节点,向该节点调度所需的流媒体数据;循环调度算法,通过某一标准,例如节点能力或者路由信息,将所有节点进行排序,以循环方式向排序后的节点调度流媒体数据;最少数据优先调度算法,以数据资源为标准,首先调度P2P网络中较少的流媒体数据,确保能够获取资源稀少的流媒体数据。
理想的数据调度算法应该在满足各种网络条件的限制下,使播放启动延时最小,同时使播放过程尽可能流畅。上述现有技术中,随机调度算法并未考虑网络状态和节点自身的能力,循环调度算法虽然考虑了节点自身的能力,但仍未考虑网络状态,而最少数据优先调度算法虽然能够获取资源稀少的流媒体数据,却不能保证将要播出的数据及时到达,容易造成播放的不顺畅,影响服务质量。且由上面分析可知,上述算法均未考虑网络状态,例如网络异构性、带宽波动和节点频繁加入或退出,因此,对网络状态的适应性不好,尤其是网络带宽波动时效率很低,无法确保流媒体数据调度的顺利进行,影响播放质量。
发明内容
本发明实施例的目的是提供一种流媒体数据调度方法、装置与节点设备,基于网络状态选择调度节点,以实现对流媒体数据的调度,同时实现了节点间的负载均衡。
为实现上述目的,本发明提供了一种流媒体数据调度方法,包括:
获取需要调度的当前数据块的数据块编号,根据所述数据块编号查询本地节点的伙伴节点集合,获取拥有所述当前数据块的伙伴列表;
根据所述伙伴列表中伙伴节点的引用计数确定调度节点,所述调度节点为所述引用计数最小的伙伴节点,所述伙伴节点的引用计数用于表示本地节点向相应的伙伴节点已发出调度请求的情况下,尚未收到或在规定时间内未收到来自所述相应的伙伴节点的数据块的数量;
向所述调度节点发送调度所述当前数据块的调度请求。
为实现上述目的,本发明实施例提供了一种流媒体数据调度装置,包括:
获取模块,用于获取需要调度的当前数据块的数据块编号,根据所述数据块编号查询本地节点的伙伴节点集合,获取拥有所述当前数据块的伙伴列表;
第一确定模块,用于根据所述伙伴列表中伙伴节点的引用计数确定调度节点,所述调度节点为所述引用计数最小的伙伴节点,所述伙伴节点的引用计数用于表示本地节点向相应的伙伴节点已发出调度请求的情况下,尚未收到或在规定时间内未收到来自所述相应的伙伴节点的数据块的数量;
发送模块,用于向所述调度节点发送调度所述当前数据块的调度请求。
为实现上述目的,本发明实施例提供了一种节点设备,包括上述实施例提供的流媒体数据调度装置。
本发明实施例提供的流媒体数据调度方法、装置与节点设备,通过表示已经发出调度请求,但还没有收到或者未在规定时间内收到的数据块的数量的引用计数所带来的反馈信息,一方面体现了网络状态,另一方面体现了伙伴节点的服务能力,以选择引用计数最小的伙伴节点作为调度节点,即向服务能力最强的伙伴节点发送调度请求,实现对流媒体数据的调度,克服了网络状态对数据调度的影响,平衡了伙伴节点的服务能力,从数据需求上实现了节点间的负载均衡。
附图说明
图1为本发明实施例一提供的流媒体数据调度方法的流程图;
图2为本发明实施例二提供的流媒体数据初始调度方法的流程图;
图3为本发明实施例三提供的流媒体数据调度方法的流程图;
图4为本发明一实施例提供的流媒体数据调度装置的结构示意图;
图5为本发明又一实施例提供的流媒体数据调度装置的结构示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
P2P流媒体网络具有多种拓扑结构,其中,基于gossip算法的P2P网络拓扑构造方法近年来得到了大量的应用,这样构造的网络模型称为网状模型,较之以往的基于树状结构的模型有更强的鲁棒性。在网状模型中,每个节点有若干直接相连的伙伴节点,它可以同时从多个结点请求数据,所以这种模型也叫多源模型。根据数据获取方式的不同,网状模型又可分为三种:数据驱动的网状模型、发送者驱动的网状模型和接收者驱动的网状模型。其中接收者驱动的网状模型因其QoS保障高、高效和网络中传输的冗余数据较少而得到了广泛的认同。
由于在网状模型中可能有多个节点同时持有某块数据,当一个节点向它的伙伴节点请求自己没有的数据时,需要确定向哪个伙伴节点请求数据,要求既能充分利用每个节点的空闲带宽使数据尽可能快的收到,同时又能维持整个网络的负载均衡,所以这个过程就需要一个智能的调度算法。
图1为本发明实施例一提供的流媒体数据调度方法的流程图,本实施例基于接收者驱动的网状模型提供一种流媒体数据调度方法,如图1所示,本实施例提供的流媒体数据调度方法包括:
步骤101,获取需要调度的当前数据块的数据块编号,根据数据块编号查询本地节点的伙伴节点集合,获取拥有当前数据块的伙伴列表;
具体的,步骤101包括:
步骤1011,根据本地节点的缓冲视图中存储的数据块的存在状态和数据块对应的数据块编号,查询需要调度的当前数据块的数据块编号;
其中,在接收者驱动的网状模型中,媒体数据被分成若干个大小相当的块,节点之间以块为单位来传送数据。每个节点维护一个自己的缓冲视图,缓冲视图用于存储节点的数据块的存在状态,即记录自己持有哪些数据块,然后定时把自己缓冲视图的变化发送给自己所有的伙伴节点,这样每个节点都能及时地了解它的伙伴节点持有哪些数据块,本地节点的缓冲视图中存储本地节点的数据块的存在状态。具体的,缓冲视图可以是一个数组,每个数组位对应一个数据块,例如,当数组位为0时,表示本地节点没有该数组位所对应的数据块,即需要调度该数据块;当数组位为1时,表示本地节点持有该数据位所对应的数据块。
步骤1012,根据数据块编号查询本地节点的伙伴节点集合,获取拥有当前数据块的伙伴列表;
其中,伙伴节点集合,是一个集合,它包含本地节点所有伙伴节点的信息,通过该集合可以查询到其中伙伴节点拥有的数据块的状况,以便后续向该节点发送调度请求。
步骤102,根据伙伴列表中伙伴节点的引用计数确定调度节点,所述调度节点为引用计数最小的伙伴节点;
其中,伙伴节点的引用计数用于表示本地节点向相应的伙伴节点已发送调度请求,但尚未收到或者在规定时间内未收到的数据块的数量,在P2P网络中每个节点的伙伴节点都有一个对应于该节点的引用计数。
当发现新伙伴节点时,将该新伙伴节点的引用计数初始化为0,当向一个伙伴节点发出调度请求时,将该伙伴节点的引用计数加1,并在请求调度的数据块在该数据块的播放时间之前到达时,将该伙伴节点的引用计数减1,因此,如果某个节点的服务能力较强,它就能在数据块的播放时间之前将数据块传输至请求节点,其引用计数不会很大,反之,当某个节点的服务能力较差时,它将无法在数据块的播放时间之前将数据块传输至请求节点,其引用计数会不断累加,当达到一个门限值,说明该伙伴节点的服务能力已经不适合作为请求节点的伙伴节点,应该对伙伴节点集合进行更新,其中,伙伴节点的服务能力体现为多个方面,例如节点采取的处理方式、节点的处理速度、节点的硬件设施及节点的软件资源等。
另外,当前数据块是否到达以及到达时间这种反馈信息体现了网络状态,例如网络异构性、带宽波动和节点频繁加入或退出或者防火墙等。通过上面对引用计数的定义和对其操作过程可知,网络状态的体现由引用计数实现,由此可知,引用计数一方面体现了网络状态,另一方面引用计数的大小体现了伙伴节点的服务能力,通过对引用计数的操作过程可知,引用计数越小说明该伙伴节点的服务能力越强。调度节点是指为本地节点提供当前数据块的伙伴节点。
步骤103,向调度节点发送调度当前数据块的调度请求。
通过P2P流媒体网络,向调度节点发送调度请求,并将该调度节点的引用计数加1,等待接收调度节点发送的当前数据块。
采用上述技术方案,通过引入引用计数的概念,克服了已有调度算法存在的或者没有考虑节点能力或者没有考虑网络状态的缺陷,引用计数一方面体现了网络状态,另一方面体现了伙伴节点的服务能力,通过引用计数选择P2P流媒体网络中具有较佳服务能力的伙伴节点作为调度节点,以实现对流媒体数据的调度,因此,本实施例提供的流媒体数据调度方法,克服了网络状态对数据调度的影响,平衡了伙伴节点的服务能力,从数据需求上实现了节点间的负载均衡。
基于实施例一提供的技术方案,根据数据块编号查询本地节点的伙伴节点集合时,若伙伴节点集合存在持有当前数据块的伙伴节点,则持有当前数据块的伙伴节点形成伙伴列表;若伙伴节点集合中不存在持有当前数据块的伙伴节点,说明当前伙伴节点集合已经过期,则更新伙伴节点集合,然后重新根据数据块编号查询更新后的伙伴节点集合,并由持有当前数据块的伙伴节点形成伙伴列表,其中更新伙伴节点集合的操作,采用P2P网络中的现有技术,例如,各个节点定时以广播方式或者组播方式向P2P网络中广播节点自身信息。
采用上述技术方案,可以实现对过期伙伴节点集合的更新,确保本地节点能够找到调度节点,进而完成对当前数据块的调度。
基于实施例一提供的技术方案,当伙伴列表中引用计数最小的伙伴节点为多个时,即多个伙伴节点具有相同的最小引用计数,按照伙伴节点的路由顺序最近匹配原则从中选择距离本地节点最近的、引用计数最小的伙伴节点作为调度节点。
采用上述技术方案,在优先考虑引用计数最小的基础上,通过路由顺序最近匹配原则选择调度节点,可以解决当存在多个引用计数最小的伙伴节点时的调度节点的选择,保证了引用计数所达到的充分利用各个节点的空闲带宽,平衡各个节点的服务能力,最大限度的维护节点之间负载均衡的性能优势;同时,引入了网络路由因素,将调度节点的选择和维护与网络拓扑结构相结合,进一步考虑了网络状态,在不需要全局信息的情况下达到近似最优的调度。
图2为本发明实施例二提供的流媒体数据初始调度方法的流程图,本实施例的执行主体为本地节点,如图2所示,本实施例提供的流媒体数据初始调度方法包括:
步骤201,初始获取伙伴节点集合,并根据伙伴节点集合中伙伴节点的缓冲视图,确定本地节点的缓冲视图的初始数据块编号,并初始化伙伴节点的引用计数;
其中,初始数据块编号是指本地节点加入P2P系统时,请求调度的第一个数据块的数据块编号,用于初始化本地节点的缓冲视图。在初始化缓冲视图的同时,初始化伙伴节点的引用计数,即初始化所有伙伴节点的引用计数,通常将引用计数初始化为0,同时,完成本地节点和其伙伴节点之间的信息交互,例如,伙伴节点也会将本地节点的引用计数初始化为0、获取本地节点的缓冲视图的信息等。
步骤202,根据初始数据块编号查询本地节点的伙伴节点集合,获取拥有初始数据块的伙伴列表;
步骤203,确定伙伴列表中的一个伙伴节点作为调度节点;若伙伴列表中只有一个伙伴节点,则该伙伴节点即为调度节点;若伙伴列表中有多个伙伴节点时,由于初始化后,所有伙伴节点的引用计数都为0,此时,可从伙伴列表中随机选择一个伙伴节点作为调度节点,也可以根据路由顺序最近匹配原则,确定距离本地节点最近的伙伴节点为本地节点的调度节点。
步骤204,向调度节点发送调度初始数据块的调度请求,并将调度节点的引用计数加1。
本实施例提供的技术方案通过确定初始数据块编号以及将伙伴节点的引用计数初始为0,并确定调度节点,实现了初始化状态下本地节点进行流媒体数据的调度,从而保证了后续采用本发明实施例一提供的调度方法对流媒体数据进行调度时能够顺利执行。
在上述技术方案的基础上,对刚加入P2P网络的本地节点进行初始化时,需要确定初始数据块,即请求调度的第一个数据块,初始数据块选择的是否合适,将会影响后续数据块的调度过程,如果初始数据块选择的不合理,例如,若初始数据块选择的太靠近当前播放数据块,在后续调度过程中可能出现调度超前的情况,无法及时的完成数据块的调度,使播放过程卡顿;若初始数据块选择的很滞后当前播放数据块,则在后续调度过程中可能出现调度不到所需的数据块,同样使播放过程卡顿,甚至无法正常播放。
基于此,本实施例提供一种初始化本地节点的缓冲视图的方法,用以给出初始数据块合适的调度位置,该方法具体包括:
步骤2011,确定伙伴节点集合中伙伴节点的缓冲视图的上界值和下界值,其中,上界值为缓冲视图对应的最晚数据块的数据块编号,下界值为缓冲视图对应的最早数据块的数据块编号;
具体的,确定伙伴节点集合中持有本地节点要调度的流媒体数据的伙伴节点的缓冲视图的上界值和下界值,即缓冲视图存储的对应流媒体数据的数据块编号的较大值和数据块编号的较小值。当存在多个伙伴节点时,就会对应多个上界值和多个下界值。
步骤2012,将缓冲视图中的最小上界值与最大下界值做差,并生成一第一差值;
具体的,将多个上界值进行比较确定最小上界值,将多个下界值进行比较确定最大下界值,并将最小上界值和最大下界值做差,生成第一差值,所述第一差值表示各个伙伴节点持有的流媒体数据块的接近程度,且第一差值越大表示各个伙伴节点持有的流媒体数据块越接近,反之,表示各个伙伴节点持有的流媒体数据块的差距比较大。
步骤2013,当第一差值大于等于第一阈值时,将最大下界值加一第一数值,作为本地节点的初始数据块编号;
当第一差值大于等于第二阈值小于第一阈值时,将最大下界值作为本地节点的初始数据块编号;该步骤在各个伙伴节点所持有的数据块的差距较小时,保证本地节点调度尽可能多的流媒体数据块;
当第一差值小于第二阈值时,将最小上界值作为本地节点的初始数据块编号;该步骤在各个伙伴节点所持有的数据块差距较大时,保证本地节点优先调度较新的流媒体数据块,避免因调度滞后造成播放卡顿的情况。
具体的,第一阈值大于第二阈值,且第一阈值和第二阈值的确定与缓冲视图的大小有关,缓冲视图的大小对应于依次存储的流媒体数据的时间长度,流媒体数据的时间长度是指流媒体数据源每次提供的流媒体时长,例如一次为2分钟;其中,第一数值也与缓冲视图的大小有关。本实施例提供一种较佳的数据关系,当流媒体数据的时间长度为120s时,对应于缓冲视图的大小为120位,每位对应于1s的流媒体数据,此时,第一阈值确定为90,第二阈值为30,第一数值为30,以上数值为实现本实施例技术方案的较佳选择,但并不限于此,使用者根据本技术方案的实质,可以自行进行调整和设置。
采用上述技术方案,根据缓冲视图的大小和流媒体数据块的时间长度,确定第一阈值、第二阈值和第一数值,通过本实施例提供的方法可以对本地节点的缓冲视图设置合适的初始数据块编号,保证本发明实施例提供的流媒体数据调度方法对后续数据块调度的顺利进行,充分发挥本发明技术方案的性能优势。
图3为本发明实施例三提供的流媒体数据调度方法的流程图,如图3所示,本实施例提供的流媒体调度方法包括:
步骤301,从本地节点的缓冲视图中查询需要调度的当前数据块的数据块编号;
其中,缓冲视图存储有本地节点的数据块的存在状态,具体的,缓冲视图中第一个为0的数组位所对应的数据块即为当前数据块。
步骤302,判断当前数据块的数据块编号是否大于缓冲视图中最晚一个数据块编号,如果不大于,则执行步骤303,否则结束;
如果当前数据块的数据块编号大于缓冲视图中最晚一个数据块编号,说明要调度的当前数据块超前了,则应结束对该当前数据块的调度,可以重新选择需要调度的数据块,或者说明数据块的调度过程结束。
步骤303,根据数据块编号查询本地节点的伙伴节点集合,获取拥有当前数据块的伙伴列表;
步骤304,根据伙伴列表中伙伴节点的引用计数,确定调度节点;
当引用计数最小的伙伴节点为一个时,则该伙伴节点作为调度节点,当引用计数最小的伙伴节点为多个时,根据路由顺序最近原则,确定距离本地节点最近的引用计数最小的伙伴节点为调度节点。
步骤305,向调度节点发送调度当前数据块的调度请求,并将调度节点的引用计数加1,同时,计算当前数据块的播放时间和一预设时间门限之差,生成预定到达时间,其中,预设时间门限是根据当前数据块之前接收到的数据块的实际到达时间和播放时间,计算得出;
具体的,在本实施例的技术方案中,数据块的调度过程是基于单个调度节点实现的,如果该数据块在该数据块的播放时间之前未到达,则会造成流媒体数据播放的卡顿,影响用户的观看质量,因此,为了保证P2P网络中流媒体服务的质量,本实施例设置一预设时间门限,所述预设时间门限用于表示在一个数据块播放时间之前获取该数据块的安全时间门限,若到达播放时间和预设时间门限做差得出的预定到达时间时,数据块还没有到达,则表明该数据块存在无法在播放时间之前到达的风险,为避免此风险,本实施例提供一种解决办法,即步骤306所示。
步骤306,当前时间到达预定到达时间时,判断当前数据块是否到达,若未到达,则触发本地节点执行重新确定另一调度节点的操作;
当前时间到达预定到达时间时,若当前数据块未到达,说明该数据块存在无法在播放时间之前到达的风险,通过启动确定另一调度节点的操作,即向另一伙伴节点发送调度请求,以确保本地节点以较高的可靠性在播放时间之前获取当前数据块。
其中,预设时间门限是通过对当前数据块之前接收到的数据块的实际到达时间和播放时间之差取绝对值,然后求和取平均计算得出的,距离播放时间的一个平均时间值,体现了本地节点的伙伴节点的平均服务能力。
步骤307,记录当前数据块的到达时间,并判断到达时间是否在当前数据块的播放时间之前,若是,将调度节点的引用计数减1,并结束本次调度。
具体的,当当前数据块在播放时间之前到达,则说明调度节点的服务能力较佳,能够满足调度过程的需求,将该调度节点的引用计数减1,通过这种方式,可以简单有效的了解伙伴节点的服务能力,其中,一个伙伴节点的服务能力一方面与节点自身的处理能力有关,一方面与该节点到发送调度请求的本地节点之间的带宽情况有关。另一方面,由于当前数据块能否在播放时间之前到达,受多方面因素的影响,例如网络带宽、网络路由信息、防火墙的影响等,因此当前数据块能否在播放时间之前到达这一反馈信息体现了网络的当前状态,在本实施例中网络状态的体现具体由引用计数实现。因此,步骤307保证了引用计数能够体现网络状态和节点的服务能力,以便引用计数充分发挥其作用。但是,当当前数据块在播放时间之后到达时,说明调度节点的此次服务能力较差,此时,对应的引用计数不减1。
本实施例提供的流媒体数据调度方法,通过判断当前数据块是否是缓冲视图中最晚的一个数据块,解决了数据块调度超前或者调度结束的问题,通过引入预设时间门限和执行重新向另一伙伴节点发送调度请求的操作,避免了当前数据块无法在播放时间之前到达的风险,以及通过对引用计数的减1操作,使得引用计数充分体现了网络状态和伙伴节点的服务能力。因此,本实施例提供的流媒体数据调度方法具有以下技术效果:基于P2P网络,本地节点进行数据调度时,不测量和估算伙伴节点之间的带宽,完全基于自身情况去完成当前数据块的选定、调度节点的选择以及对调度节点服务超时等情况的处理,具有简单高效的特点;引入引用计数的概念,并基于此实现调度节点的选择,平衡了伙伴节点的服务能力,保证伙伴节点之间的负载均衡;同时,引入伙伴节点的路由信息,将调度节点的选择和维护与网络拓扑结构及伙伴节点实际带宽情况相结合,在不需要全局信息的情况下达到近似最优的调度;另外,基于引用计数,本地节点可以自收敛的根据其他节点的实际服务能力自动的完成对于流媒体数据块的请求,可以适应不同的网络状况。
基于上述技术方案,当经过几轮调度过程后,伙伴节点的引用计数超过一阈值时,可以认为该伙伴节点为不良节点,即不再具有满足本地节点的调度请求的能力,本实施例提供一种优选处理方式,通过更新伙伴节点集合,将该伙伴节点替换掉,以保证本地节点的伙伴节点集合具有最优的组播结构。
目前基于P2P的流媒体服务主要有直播和点播,用于实现用户间流媒体数据的实时传输与共享,实现直播和点播的关键是各节点之间数据块的调度,本发明实施例提供的上述技术方案,并未限制具体的应用环境,适用于直播和点播,下面以直播为例,对本发明技术方案进行详细、完整的说明。
在介绍具体的调度过程之前先对一些参数进行说明,具体如下:
伙伴节点集合(PartnerSet):是一个包含本地节点所有伙伴节点的集合,其中伙伴节点是指与本地节点直接相连有数据交互的节点;
缓冲视图(BufferMap):是一个存储本地节点的数据块的存在状态的数组,其中,若数组位为0,则表示数组位对应的数据块不存在,需要向伙伴节点调度,若数组位为1,则表示该数组位对应的数据块存在;
伙伴节点数目(PartnerNum):表示本地节点当前连接的伙伴节点数目;
当前数据块(nCurrBlock):当前要请求调度的数据块;
数据提供者(Supplier):表示可向本地节点提供当前数据块的伙伴节点;
数据块编号(Seq):表示数据块的数据块编号,与BufferMap数组中的数组位相对应;
请求数目(ReqNum[s]):表示本地节点已经向伙伴节点s发送调度请求但还没有收到的数据块的数目;当本地节点连接一个新的伙伴节点p,就将相应的ReqNum[p]设置为0;
最大请求数(MaxReq):表示本地节点可以同时向一个伙伴节点请求的数据块的最大数目,也就是已经发出调度请求但还没有收到的数据块的最大数目;
播放时间(PlayTime[n]):表示在缓冲视图中某个数组位对应的数据块n的播放时间;
到达时间(ArriveTime[n]):表示请求调度的数据块n的到达时间;
节点标识号(MMID):节点在整个网络中的唯一标识,由节点的IP地址、路由以及网络情况等生成。
为了完整的介绍本发明的技术方案,本实施例以刚加入P2P网络的节点为例,则本实施例提供的流媒体调度方法包括:
步骤401,初始化操作,将伙伴节点的请求数目初始化为0;在PartnerSet中伙伴节点的BufferMap中寻找当前直播节目的BufferMap的最小上界值和最大下界值;
步骤402,设定BufferMap的标准缓冲值,若BufferMap以s为单位,BufferMap的大小决定了节点所缓冲内容的时间长度。本实施例BufferMap的标准缓冲值为120s,即BufferMap数组有120位,每位对应1s的数据块,跟随直播数据的不断推送,BufferMap的缓冲值循环利用,即,BufferMap的1-120位对应于数据块编号1-120,之后,BufferMap的1-120位对应于数据块编号121-240,依次循环,直到数据块编号1-65535分别与BufferMap中的一位对应。
步骤403,若BufferMap的上下界极值之差大于90,则认为伙伴节点之间数据共享较为接近,则初始数据块编号等于BufferMap的最大下界值+30;否则,执行步骤404;
步骤404,若BufferMap的上下界极值之差介于30和90之间,则认为伙伴节点之间数据共享的差距较小,则初始数据块编号等于BufferMap的最大下界值;否则,执行步骤405;
步骤405,若BufferMap的上下界极值之差小于30,则认为伙伴节点之间数据共享的差距较大,则初始数据块编号则等于BufferMap的最小上界值;
上述初始数据块编号的设置是基于直播持续播放和数据安全的需要,上述方案可以保证直播数据调度过程的顺利实现,不会出现因超前或滞后而使直播画面出现卡顿现象。
步骤406,根据数据块编号查询本地节点的PartnerSet,获取拥有初始数据块的伙伴列表;
步骤407,随机确定伙伴列表中的一个伙伴节点作为调度节点;还可以根据路由顺序最近匹配原则选定调度节点,本实施例只是一个较佳举例,并不对此进行限。
步骤408,向调度节点发送调度初始数据块的调度请求,并将调度节点的请求数目加1,完成本地节点的初始化调度过程;其中,请求数目为引用计数的另一种表述。
步骤409,从本地节点的缓冲视图的起始位置查询第一个还不存在的数据块,将该数据块的数据块编号赋值给nCurrBlock;
具体的,通过一存储单元存储BufferMap的第一位对应的数据块编号,该存储单元跟随直播数据的推送进行实时更新,通过该存储单元可以确定BufferMap对应的数据块的数据块编号,这样可以在查询数据块的状态时确定数据块编号。
步骤410,判断nCurrBlock是否小于等于本地节点的缓冲视图的最晚一个数据块的数据块编号,如果小于等于,则执行步骤411,否则执行步骤417
步骤411,根据nCurrBlock,向PartnerSet询问拥有nCurrBlock对应的数据块的Buffermap的伙伴列表,若其不为空,则执行步骤412,否则,执行步骤415;
步骤412,从伙伴列表中,寻找ReqNum最小的Partner,若唯一存在ReqNum最小的Partner,则执行步骤413;若存在多个ReqNum最小的Partner,则执行步骤414;
步骤413,向该ReqNum最小的Partner发送调度nCurrBlock对应的数据块的调度请求,将该Partner的ReqNum自增1,执行步骤416。
步骤414,当存在多个ReqNum最小的Partner,比较带有节点路由信息的伙伴节点的MMID与本地节点的MMID,选择Partner的MMID与本地节点MMID差值最小的Partner,该Partner为路由距离本地节点最近的Partner,向该Partner发送调度nCurrBlock对应的数据块的调度请求,将该Partner的ReqNum自增1,转步骤416,。
步骤415,更新本地节点的PartnerSet,以获得最新的Partner信息,向PartnerSet询问拥有nCurrBlock对应的数据块的Buffermap的伙伴列表,若其不为空,则转步骤412,否则,则转步骤416。
步骤416,将nCurrBlock字段值自增1,然后转至步骤410,
步骤417,本次调度过程结束,等待下一次的调度。
基于上述技术方案,本实施例还提供了接收当前数据块的超时处理方法,具体包括:
步骤418,本地节点从伙伴节点P处收到数据块BufferMap[n],记录ArriveTime[n];
步骤419,若数据块BufferMap[n]的ArriveTime[n]不晚于其PlayTime[n],则伙伴节点P的ReqNum自减1,然后转步骤421;否则,转步骤420;
步骤420,如果伙伴节点P的ReqNum大于等于其最大请求数MaxReq,则更新本地节点的PartnerSet,以获得最新的Partner信息;
步骤421,正常返回。
具体的,本实施例提供的流媒体数据调度方法较为全面,但是对于初始调度并不是每次数据调度必须的,只有在节点初始加入P2P网络时才执行。下面给出对应于上述技术方案的伪代码,具体如下所示,其中,P(I)表示本地节点I的伙伴节点集合。
算法1:对应于上述步骤401-步骤405,用于本地节点I确定合适的初始数据块的请求位置,即调度缓冲视图的哪一位置对应的数据块。
  “If PartnetSet(I)is not null then
For each node B∈PartnetSet(I)
Find BufferMap_Seq_Upper[min],BufferMap_Seq_Lower[max]
If BufferMap_Seq_Upper[min]-BufferMap_Seq_Lower[max]>90
 then BufferMap_Seq[begin]=BufferMap_Seq_Lower[max]+30
Else if BufferMap_Seq_Upper[min]-BufferMap_Seq_Lower[max]<90
      AND BufferMap_Seq_Upper[min]-BufferMap_Seq_Lower[max]>30
 then BufferMap_Seq[begin]=BufferMap_Seq_Lower[max]
Else if BufferMap_Seq_Upper[min]-BufferMap_Seq_Lower[max]<30
 then BufferMap_Seq[begin]=BufferMap_Seq_Upper[min]
End if
End if”
算法2:对应于上述步骤409-步骤417,用于实现本地节点I希望获得数据块n时,确定哪一个伙伴节点作为调度节点,并从中获取数据块n。
  “If PartnetSet(I)is not null then
For ea ch node B∈PartnetSet(I)
If B_BufferMap_Seq[n]=1 then
Insert B into W(n)
End if
If SIZE[W(n)]>1 then
For each node A∈W(n)
Find Ap=min[ReqNum[A]
   If there is only one min[ReqNum[A]]then
   Send request SEQ(n)toAp
   ReqNum[Ap]++
Else
For each node A∈W(n)
Find Aq=min[Ap(MMID)-I(MMID)]
    Send request SEQ(n)to Aq
    ReqNum[Aq]++
End if
  Else if SIZE[W(n)]=1 then
  For node A∈W(n)
  Send request DATA_SEQ(n)to A
     ReqNum[Ap]++
  Else if SIZE[W(n)]=0 then
  Call Partner Refresh
   End if
End if”
算法3:用于本地节点实现对数据块获取以及超时时的处理。
数据块未到时:
“For each data segment n in BufferMap
If PlayTime[n]-CurrentTime<=τthen
Call算法2
End if”
本地节点I处理收到的数据块以及超时处理:
“While incoming data segment BufferMap[n]
If ArriveTime[n]<=PlayTime[n]then
Find Send par tner Ap in W(n)
   ReqNum[Ap]--
Else if ArriveTime[n]>PlayTime[n]then
   Find Send partner Ap in W(n)
   If ReqNum[Ap]>MaxReq then
   Call Partner Refresh
   End if
End while”
本实施例提供的技术方案,基于BufferMap的最小上界值和最大下界值和标准缓存值,设置合理的初始数据块编号,实现对刚加入P2P网络的本地节点的初始化;基于请求数目,选择服务能力较佳的伙伴节点,完成对所需数据块的调度,充分考虑伙伴节点的服务能力和网络状态;同时,给出了处理当前数据块的延时情况的方法,避免当前数据块无法在播放时间之前到达的风险,确保本地节点以较高的可靠性获取直播所需的数据块,保证了直播画面的流畅。
基于本发明实施例的上述技术方案,本实施例从调度节点一侧提供一种数据块安全保留方法,具体的,为了防止在向调度节点请求某一数据块时该数据块已经移出滑动窗口,因此,除了在节点的缓存中保存滑动窗口中的数据外,还将保留滑动窗口外的若干个数据块作为安全数据块,以防止出现上述问题,在本实施例中,保留的安全数据块的个数为15,但并不限于此。该方法与本发明提供的上述技术方案相结合,能够进一步保证数据块被本地节点成功调度,使流媒体正常播放,保证用户的观看质量。
图4为本发明一实施例提供的流媒体数据调度装置的结构示意图,该装置可以设置于本地节点设备中,如图4所示,本实施例提供的流媒体数据调度装置包括:获取模块41、第一确定模块42和发送模块43。其中,获取模块41用于查询本地节点的缓冲视图,获取需要调度的当前数据块的数据块编号,并根据获取的数据块编号,从本地节点的伙伴节点集合中获取拥有当前数据块的伙伴列表,其中,缓冲视图存储有本地节点的数据块的存在状态和数据块对应的数据块编号;第一确定模块42用于根据每个伙伴节点的引用计数,从获取模块41获取的伙伴列表中,确定调度节点并将该结果提供给发送模块43,以便发送模块43向该调度节点发送调度请求,本地节点等待接收该调度节点发送的请求调度的当前数据块。
具体的,第一确定模块42包括第一判断单元和第一确定单元,其中第一判断单元用于判断伙伴列表中引用计数最小的伙伴节点的个数,并将判断结果输出给第一确定单元,第一确定单元根据第一判断单元的输出的结果确定调度节点,当引用计数最小的伙伴节点为一个时,确定该伙伴节点为调度节点;当引用计数最小的伙伴节点为多个时,确定引用计数最小的伙伴节点中距离本地节点路由顺序最近的伙伴节点为调度节点,第一确定单元将确定结果提供给发送模块43。
本实施例提供的流媒体数据调度装置,通过获取模块获取可提供服务的伙伴节点,基于引用计数,通过第一确定模块进一步从可提供服务的伙伴节点中确定出服务能力较佳的调度节点,最后由发送模块发送调度请求,完成当前数据块的调度,因此,本实施例的技术方案具有以下技术效果:通过引入引用计数的概念,同时考虑了网络状态和伙伴节点的服务能力,保证所选中的调度节点是服务能力最佳的,在保证控制开销和网络逻辑拓扑的前提下,确保P2P流媒体的服务质量;通过选择引用计数最小的伙伴节点,充分利用了各个节点的空闲带宽,平衡了节点的服务能力,最大限度的维护了节点之间的负载均衡。
图5为本发明又一实施例提供的流媒体数据调度装置的结构示意图,如图5所示,在上述实施例的基础上,本实施例提供的调度装置还包括:第一计数模块50、第二确定模块51、记录模块52、判断模块53、第二计数模块56、计算模块54和判断触发模块55。
其中,第一计数模块50与发送模块43连接,当发送模块43向调度节点发送调度请求后,根据发送模块43的控制指令将调度节点的引用计数加1;第二确定模块51与获取模块41连接,用于对刚加入P2P网络的本地节点进行初始化,在获取伙伴节点集合时,根据伙伴节点集合中伙伴节点的缓冲视图,确定本地节点的缓冲视图的初始数据块编号,以便于完成对本地节点的初始调度,其中,初始数据块编号为本地节点请求调度的第一个数据块的数据块编号。
记录模块52用于记录当前数据块到达时的到达时间;判断模块53与发送模块43连接,用于判断记录模块52记录的到达时间是否在当前数据块的播放时间之前,并将判断结果发送给第二计数模块56;如果判断结果为是,则第二计数模块56将调度节点的引用计数减1,且第二计数模块56与第一确定模块42连接,在第一确定模块42确定调度节点时,将本地节点的伙伴节点的引用计数提供给第一确定模块42,本实施例仅是提供了一种获取伙伴节点引用计数的方式,但并不限于此。
计算模块54由发送模块43发送调度请求时启动,计算当前数据块的播放时间和一预设时间门限的差,得出当前数据块的预定到达时间,并将该值提供给判断触发模块55。
判断触发模块55判断当前时间到达预定到达时间时,当前数据块是否到达,如果没有到达,则触发本地节点执行重新确定另一个调度节点的操作,即确定另一伙伴节点为调度节点,并向该新确定的调度节点重新发送调度请求。其中,预设时间门限是通过对当前数据块之前接收到的数据块的实际到达时间和播放时间之差取绝对值,然后求和取平均计算得出的,距离播放时间的一个平均时间值,体现了本地节点的伙伴节点的平均服务能力。具体的上述重新选择调度节点、重新发送调度请求的方法,可以仍采用本发明提供的调度方法,因此,本实施例中判断触发模块55与获取模块41连接,以实现另一调度过程。
进一步的,第二确定模块51包括第二确定单元、第二计算单元、第二比较单元和第二判定单元。其中,第二确定单元用于确定伙伴节点集合中伙伴节点的缓冲视图的上界值和下界值,其中,上界值为缓冲视图对应的最晚数据块的数据块编号,下界值为缓冲视图对应的最早数据块的数据块编号;第二计算单元对第二确定单元确定的最小上界值与最大下界值做差,并生成一第一差值;第二比较单元将第二计算单元提供的第一差值与第一阈值和第二阈值进行比较,并将比较结果提供给第二判定单元;第二判定单元根据该比骄结果确定初始数据块编号,具体为:当第一差值大于等于第一阈值时,将最大下界值加一第一数值,作为本地节点的初始数据块编号;当第一差值大于等于第二阈值小于第一阈值时,将最大下界值作为本地节点的初始数据块编号;当第一差值小于第二阈值时,将最小上界值作为本地节点的初始数据块编号。
本实施例提供的流媒体数据调度装置可用于执行本发明实施例提供的流媒体数据调度方法,故在此不再赘述流媒体数据调度装置的实现过程。本实施例提供的流媒体数据调度装置,在上述实施例的基础上,通过增加第二确定模块,基于缓冲视图的最小上界值和最大下界值,设置合理的初始据块编号,实现对刚加入P2P网络的本地节点的初始化;通过其他模块对当前数据块未能按时到达本地节点的风险情况进行处理,避免当前数据块无法在播放时间之前到达的风险,确保本地节点以较高的可靠性获取直播所需的数据块,保证了直播画面的流畅。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。

Claims (16)

1.一种流媒体数据调度方法,其特征在于,包括:
获取需要调度的当前数据块的数据块编号,根据所述数据块编号查询本地节点的伙伴节点集合,获取拥有所述当前数据块的伙伴列表;
根据所述伙伴列表中伙伴节点的引用计数确定调度节点,所述调度节点为所述引用计数最小的伙伴节点,所述伙伴节点的引用计数用于表示本地节点向相应的伙伴节点已发出调度请求的情况下,尚未收到来自所述相应的伙伴节点的数据块的数量;
向所述调度节点发送调度所述当前数据块的调度请求。
2.根据权利要求1所述的流媒体数据调度方法,其特征在于,向所述调度节点发送调度所述当前数据块的调度请求之后,还包括:将所述调度节点的引用计数加1。
3.根据权利要求1所述的流媒体数据调度方法,其特征在于,还包括:
获取所述伙伴节点集合,并根据所述伙伴节点集合中伙伴节点的缓冲视图,确定本地节点的缓冲视图的初始数据块编号,并初始化所述伙伴节点集合中伙伴节点的引用计数,所述初始数据块编号为本地节点请求调度的第一个数据块的数据块编号,其中,各节点均维护有自己的缓冲视图,缓冲视图用于存储节点的数据块的存在状态。
4.根据权利要求1所述的流媒体数据调度方法,其特征在于,当所述引用计数最小的伙伴节点为多个时,将多个所述引用计数最小的伙伴节点中距离本地节点路由顺序最近的伙伴节点确定为所述调度节点。
5.根据权利要求1所述的流媒体数据调度方法,其特征在于,根据所述数据块编号查询本地节点的伙伴节点集合,获取拥有所述当前数据块的伙伴列表,包括:
当所述伙伴节点集合中不存在拥有所述当前数据块的伙伴节点时,更新所述伙伴节点集合;
根据所述数据块编号,重新获取拥有所述当前数据块的伙伴列表。
6.根据权利要求3所述的流媒体数据调度方法,其特征在于,所述根据所述伙伴节点集合中伙伴节点的缓冲视图,确定本地节点的缓冲视图的初始数据块编号,具体为:
确定所述伙伴节点集合中伙伴节点的缓冲视图的上界值和下界值,所述上界值为所述缓冲视图对应的最晚数据块的数据块编号,所述下界值为所述缓冲视图对应的最早数据块的数据块编号;
将多个伙伴节点的缓冲视图中的最小上界值与最大下界值做差,并生成第一差值;
当所述第一差值大于等于第一阈值时,将所述最大下界值加一第一数值作为本地节点的初始数据块编号;
当所述第一差值大于等于第二阈值小于所述第一阈值时,将所述最大下界值,作为本地节点的初始数据块编号;
当所述第一差值小于所述第二阈值时,将所述最小上界值作为本地节点的初始数据块编号。
7.根据权利要求1-6中任一项所述的流媒体数据调度方法,其特征在于,发送所述调度请求的同时,计算所述当前数据块的播放时间和一预设时间门限之差,生成预定到达时间;
当当前时间到达所述预定到达时间时,判断所述当前数据块是否到达,若未到达,则触发本地节点执行重新确定另一调度节点的操作;
所述预设时间门限是根据所述当前数据块之前接收到的数据块的实际到达时间和播放时间,计算得出。
8.根据权利要求1-6中任一项所述的流媒体数据调度方法,其特征在于,还包括:
当所述当前数据块到达时,记录所述当前数据块的到达时间;
判断所述到达时间是否在所述当前数据块的播放时间之前,若是,将所述调度节点的引用计数减1。
9.一种流媒体数据调度装置,其特征在于,包括:
获取模块,用于获取需要调度的当前数据块的数据块编号,根据所述数据块编号查询本地节点的伙伴节点集合,获取拥有所述当前数据块的伙伴列表;
第一确定模块,用于根据所述伙伴列表中伙伴节点的引用计数确定调度节点,所述调度节点为所述引用计数最小的伙伴节点,所述伙伴节点的引用计数用于表示本地节点向相应的伙伴节点已发出调度请求的情况下,尚未收到来自所述相应的伙伴节点的数据块的数量;
发送模块,用于向所述调度节点发送调度所述当前数据块的调度请求。
10.根据权利要求9所述的流媒体数据调度装置,其特征在于,还包括:
第一计数模块,用于在向所述调度节点发送调度请求之后,将所述调度节点的引用计数加1。
11.根据权利要求9所述的流媒体数据调度装置,其特征在于,还包括:
第二确定模块,用于获取所述伙伴节点集合时,根据所述伙伴节点集合中伙伴节点的缓冲视图,确定本地节点的缓冲视图的初始数据块编号,并初始化所述伙伴节点集合中伙伴节点的引用计数,所述初始数据块编号为本地节点请求调度的第一个数据块的数据块编号,其中,各节点均维护有自己的缓冲视图,缓冲视图用于存储节点的数据块的存在状态。
12.根据权利要求9所述的流媒体数据调度装置,其特征在于,所述第一确定模块包括:
第一判断单元,用于判断所述伙伴列表中引用计数最小的伙伴节点的个数,并输出所述引用计数最小的伙伴节点的个数;
第一确定单元,用于当所述引用计数最小的伙伴节点的个数为一个时,确定所述引用计数最小的伙伴节点为所述调度节点;当所述引用计数最小的伙伴节点的个数为多个时,确定所述引用计数最小的伙伴节点中距离本地节点路由顺序最近的伙伴节点为所述调度节点。
13.根据权利要求11所述的流媒体数据调度装置,其特征在于,所述第二确定模块包括:
第二确定单元,用于确定所述伙伴节点集合中伙伴节点的缓冲视图的上界值和下界值,所述上界值为所述缓冲视图对应的最晚数据块的数据块编号,所述下界值为所述缓冲视图对应的最早数据块的数据块编号;
第二计算单元,用于将多个伙伴节点的缓冲视图中的最小上界值与最大下界值做差,并生成一第一差值;
第二比较单元,用于将所述第一差值与一第一阈值和一第二阈值进行比较,并将比较结果输出给第二判定单元;
所述第二判定单元,用于根据所述第一差值大于等于所述第一阈值的比较结果,将所述最大下界值加一第一数值作为本地节点的初始数据块编号;或者
根据所述第一差值大于等于所述第二阈值小于所述第一阈值的比较结果,将所述最大下界值作为本地节点的初始数据块编号;或者
根据所述第一差值小于所述第二阈值的比较结果,将所述最小上界值作为本地节点的初始数据块编号。
14.根据权利要求9所述的流媒体数据调度装置,其特征在于,还包括:
计算模块,用于计算所述当前数据块的播放时间和一预设时间门限之差,生成预定到达时间;
判断触发模块,用于判断当前时间到达所述预定到达时间时,所述当前数据块是否到达,若未到达,则触发执行重新确定另一调度节点的操作;
所述预设时间门限是根据所述当前数据块之前接收到的数据块的实际到达时间和播放时间,计算得出。
15.根据权利要求9所述的流媒体数据调度装置,其特征在于,还包括:
记录模块,用于在所述当前数据块到达时,记录所述当前数据块的到达时间;
判断模块,与所述发送模块连接,用于判断所述到达时间是否在所述当前数据块的播放时间之前;
第二计数模块,用于在所述判断模块输出是结果时,将所述调度节点的引用计数减1。
16.一种节点设备,其特征在于,包括上述权利要求9-15任一项所述的流媒体数据调度装置。
CN 200910236901 2009-10-27 2009-10-27 流媒体数据调度方法、装置与节点设备 Expired - Fee Related CN101702734B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910236901 CN101702734B (zh) 2009-10-27 2009-10-27 流媒体数据调度方法、装置与节点设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910236901 CN101702734B (zh) 2009-10-27 2009-10-27 流媒体数据调度方法、装置与节点设备

Publications (2)

Publication Number Publication Date
CN101702734A CN101702734A (zh) 2010-05-05
CN101702734B true CN101702734B (zh) 2012-12-12

Family

ID=42157627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910236901 Expired - Fee Related CN101702734B (zh) 2009-10-27 2009-10-27 流媒体数据调度方法、装置与节点设备

Country Status (1)

Country Link
CN (1) CN101702734B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542958B (zh) * 2010-12-10 2013-11-27 财团法人资讯工业策进会 多媒体播放方法以及系统
CN102347907A (zh) * 2011-11-17 2012-02-08 网宿科技股份有限公司 区分传输内容的网络调度方法和系统
CN103873947B (zh) * 2012-12-18 2017-02-01 中国科学院声学研究所 一种基于请求转发的p2p流媒体播放方法及系统
CN104333779B (zh) * 2014-10-28 2017-06-13 清华大学 流媒体应用快速缓冲的带宽分配方法
CN104301454A (zh) * 2014-11-13 2015-01-21 国家电网公司 一种域名解析重定向的方法、装置以及智能域名系统
CN105553939B (zh) * 2015-12-07 2018-12-28 中国联合网络通信集团有限公司 一种流媒体卡顿的确定方法及装置
CN108307213A (zh) * 2017-01-12 2018-07-20 深圳市优朋普乐传媒发展有限公司 一种直播数据的下载方法、装置及系统
CN108243347B (zh) * 2018-03-26 2020-08-04 罗建平 一种分层式网络视频直播共享方法及系统
CN109960610B (zh) * 2019-02-27 2023-06-06 上海爱数信息技术股份有限公司 一种基于策略分流的数据备份方法
CN114415878B (zh) * 2022-01-26 2023-09-22 厦门雅基软件有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047696A (zh) * 2006-03-27 2007-10-03 互联天下科技发展(深圳)有限公司 一种网络流媒体数据播放方法和系统
CN101150465A (zh) * 2006-09-22 2008-03-26 腾讯科技(深圳)有限公司 一种获取种子信息的方法及p2p网络中的超级节点和普通节点
CN101222438A (zh) * 2008-01-28 2008-07-16 北京航空航天大学 一种机会网络下的数据传输方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047696A (zh) * 2006-03-27 2007-10-03 互联天下科技发展(深圳)有限公司 一种网络流媒体数据播放方法和系统
CN101150465A (zh) * 2006-09-22 2008-03-26 腾讯科技(深圳)有限公司 一种获取种子信息的方法及p2p网络中的超级节点和普通节点
CN101222438A (zh) * 2008-01-28 2008-07-16 北京航空航天大学 一种机会网络下的数据传输方法

Also Published As

Publication number Publication date
CN101702734A (zh) 2010-05-05

Similar Documents

Publication Publication Date Title
CN101702734B (zh) 流媒体数据调度方法、装置与节点设备
EP3382963B1 (en) Method and system for self-adaptive bandwidth control for cdn platform
CN101540775B (zh) 内容分发方法、装置与内容分发网络系统
EP1633111B1 (en) A system and method for distributed streaming of scalable media
JP5563979B2 (ja) 相互接続ネットワークにおけるデータフローのための帯域巾予約
US9497035B2 (en) Method, device, and system for playing media based on P2P
US20080263130A1 (en) Apparatus, system and method of digital content distribution
US20100094967A1 (en) Large Scale Distributed Content Delivery Network
EP1633112A1 (en) A system and method for erasure coding of streaming media
US20030126277A1 (en) Apparatus and method for providing multimedia streaming service by using point-to-point connection
CN103634692A (zh) 基于cdn和p2p的混合流媒体视频点播系统
JP2006521643A (ja) メディアベースのファイルを伝送するシステムおよび方法
US20080077701A1 (en) Synchronized data content delivery
WO2010045511A2 (en) Methods and systems for delivering content
US8812718B2 (en) System and method of streaming data over a distributed infrastructure
WO2009021374A1 (fr) Système de réseau de pair à pair de service vidéo intégré
CN103763206B (zh) 一种网络调度方法及网关
CN111010444B (zh) 一种实现Wowza流媒体引擎分布式集群的系统及方法
CN1536831A (zh) 向局域网内特定目标发送地址解析协议请求报文的方法
Dakshayini et al. Client-to-client streaming scheme for vod applications
CN101697552B (zh) 一种p2p调度的方法和系统
CN101286943A (zh) 一种网络电视业务的控制方法及网络电视业务系统
Lambrinos et al. An adaptive live media streaming architecture
CN116846915A (zh) 一种数据处理方法
Dakshayini et al. Prefix based Chaining Scheme for Streaming Popular Videos using Proxy servers in VoD

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160823

Address after: 100094 Beijing city Haidian District Dongbeiwang West Road No. 8 Zhongguancun software park two building 3 layer 303 Weiminghu vision research

Patentee after: Bo Yun vision (Beijing) Technology Co. Ltd.

Address before: 100085 No. 1, building 1, East Road, Haidian District, Beijing, 701

Patentee before: Suantong Digital Technology Research Center Co., Ltd., Beijing

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121212

Termination date: 20191027

CF01 Termination of patent right due to non-payment of annual fee