CN103124292A - 一种p2p流媒体***中的数据调度方法及其装置 - Google Patents

一种p2p流媒体***中的数据调度方法及其装置 Download PDF

Info

Publication number
CN103124292A
CN103124292A CN2012105640062A CN201210564006A CN103124292A CN 103124292 A CN103124292 A CN 103124292A CN 2012105640062 A CN2012105640062 A CN 2012105640062A CN 201210564006 A CN201210564006 A CN 201210564006A CN 103124292 A CN103124292 A CN 103124292A
Authority
CN
China
Prior art keywords
packet
node
child node
father node
data
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.)
Granted
Application number
CN2012105640062A
Other languages
English (en)
Other versions
CN103124292B (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.)
Institute of Dongguan of Sun Yat Sen University
Original Assignee
Institute of Dongguan of Sun Yat Sen University
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 Institute of Dongguan of Sun Yat Sen University filed Critical Institute of Dongguan of Sun Yat Sen University
Priority to CN201210564006.2A priority Critical patent/CN103124292B/zh
Publication of CN103124292A publication Critical patent/CN103124292A/zh
Application granted granted Critical
Publication of CN103124292B publication Critical patent/CN103124292B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种P2P流媒体***中的数据调度方法及其装置,其中,该方法包括:子节点检查自己的播放缓存,判断本地播放缓存中是否存在丢包现象;若存在丢包现象,子节点根据记录的一个字节的信息和记录的带宽向带宽累积最大且拥有丢包的父节点发送丢包请求;父节点根据丢包请求向子节点发送数据包;子节点根据该数据包对本地播放缓存进行修复。实施本发明实施例,减少了网络有限带宽资源的消耗;改善了由于交换映射表带来的启动延迟过大及带宽资源耗费过多的问题,降低了网络的负载;进一步提高了网络带宽资源的利用率,降低媒体播放延迟,并降低了丢包率,使得流媒体可得到高质量的播放。

Description

一种P2P流媒体***中的数据调度方法及其装置
技术领域
本发明涉及流媒体传输技术领域,尤其涉及一种P2P流媒体***中的数据调度方法及其装置。 
背景技术
随着通讯技术的飞速发展,人们对计算机的处理能力及网络带宽资源的要求越来越高,与此同时,文字信息、音视频信息在网络中的应用也得到了迅猛的发展。流媒体技术主要应用在视频直播、点播***、电视会议和远程教育中,因此流媒体数据的传输对播放延迟、带宽利用率以及丢包率都有较高要求。 
流媒体***中的数据具有实时性、连续性和时序性等特性。实时性即网络拓扑中尤其是流媒体直播***中传输的流媒体数据要能实时传输;连续性即数据能够按照产生的先后顺序连续到达播放端;时序性即流媒体数据经过解码能得到及时播放,音视频的实时传输已成为网络业务的主要形式。为了让用户体验到更高质量、更好效果的媒体服务,覆盖网的拓扑结构对研究流媒体技术至关重要,同时,选择好合理的网络拓扑后,如何对网络中传输的数据进行合理的调度成为提高媒体资源播放质量的关键问题。 
数据调度作为P2P流媒体直播***中的一个关键部分,是采取一种有效的机制实现从不同的节点调度所需要的数据,然后传输给子节点的过程,以便改善整个网络的性能。调度的目的是在保证有效完成数据传输的情况下,能够利用最少的网络带宽资源和***控制开销,获得最低的播放延迟。通过合理的数据调度算法,Internet上的主机可以充分利用各个节点中空闲的网络带宽和存储资源,在从网络中其他节点得到服务的同时,也要把自己拥有的资源提供给其他主机,通过节点之间的交互,使得网络中带宽资源得到高效利用,同时能够避免数据传输中的拥塞问题。 
在P2P流媒体***中,首先要解决数据的调度问题,即拓扑中的每个节点应该从哪些邻居节点中获取媒体数据,又应该为哪些节点提供资源。目前,P2P流媒体直播***有两种关键技术:网络拓扑结构和数据调度算法,其中网络拓扑结 构主要是单播树或多组播树以及网状拓扑结构,数据调度算法则主要基于推、拉或推拉结合的方法。 
流媒体中的网络拓扑以及调度算法在提高流媒体性能方面发挥着重要作用,目前,基于单播或多播树拓扑结构的***一般采用推的调度方案,数据分发方法实现简单,只是由根节点简单的向下推送数据,分发策略中没有复杂算法且容易实现,但是也存在严重的缺陷。根节点为整个网络中的节点提供服务,承载了极大的负荷且拓扑的可扩展性较差,一旦父节点崩溃,则影响整个网络中信息的传输。同时,媒体数据从父节点推送下去,也会出现大量的数据冗余,极大增加了播放延迟,浪费了网络中的带宽资源;且树中的叶子节点不参与上传数据,节点之间负载不均衡。 
传统的调度算法一般是基于拉的调度策略,这种拉的调度算法中父节点首先向子节点发送一个缓冲区映射表(Buffer Map,BM)文件,告知子节点自己的缓存中拥有哪些数据,然后子节点根据这个文件决定应该向哪些父节点拉取自己所需要的数据。比如经典模型DONet中,为了满足数据包在最后播放期限之前到达目的端,采取最少块优先调度策略即优先传输稀有的数据包,这种最少块优先调度算法不能保证数据包的有序到达,因此也不能保证子节点媒体数据的连续播放。另外,为了降低交换BM等控制消息的开销,父节点通常等到自己的BM达到相当大值的时候,才向子节点发送自己所持有的数据对应的BM,这无疑增加了数据调度的启动时延。 
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种P2P流媒体***中的数据调度及其装置,可提高带宽的利用率,降低媒体播放延迟,并降低了丢包率,使得流媒体可得到高质量的播放。 
为了解决上述问题,本发明提出了一种P2P流媒体***中的数据调度方法,所述方法包括: 
子节点检查自己的播放缓存,判断本地播放缓存中是否存在丢包现象; 
若存在丢包现象,子节点根据记录的一个字节的信息和记录的带宽向带宽累积最大且拥有丢包的父节点发送丢包请求; 
父节点根据丢包请求向子节点发送数据包; 
子节点根据该数据包对本地播放缓存进行修复。 
优选地,所述父节点根据丢包请求向子节点发送数据包的步骤包括: 
父节点在每个数据包后面添加一个字节的附加信息; 
将添加附加信息的数据包发送给子节点。 
优选地,所述字节由8位二进制序列组成,表示所发送的数据包的前4个和后4个数据包是否存在于父节点中。 
优选地,所述字节的前4位表示所发送的数据包的前4个数据表是否存在于父节点中;所述字节的后4位表示所发送的数据包的后4个数据表是否存在于父节点中。 
优选地,所述方法还包括:子节点预测每个数据包的到达时间,按照数据包到达时间的先后顺序进行分类,生成一个包含起始序列号产样式二进制映射表,并发送给相应的父节点。 
本发明实施例还提供一种P2P流媒体***中的数据调度装置,所述装置包括: 
子节点检查模块,用于检查子节点的播放缓存,判断本地播放缓存中是否存在丢包现象; 
子节点发送模块,用于若存在丢包现象,根据记录的一个字节的信息和记录的带宽向带宽累积最大且拥有丢包的父节点发送丢包请求; 
父节点发送模块,用于根据丢包请求向子节点发送数据包; 
子节点修复模块,用于子节点根据该数据包对本地播放缓存进行修复。 
优选地,父节点发送模块包括: 
添加子单元,用于父节点在每个数据包后面添加一个字节的附加信息; 
发送子单元,用于将添加附加信息的数据包发送给子节点。 
优选地,所述字节由8位二进制序列组成,表示所发送的数据包的前4个和后4个数据包是否存在于父节点中。 
优选地,所述字节的前4位表示所发送的数据包的前4个数据表是否存在于父节点中;所述字节的后4位表示所发送的数据包的后4个数据表是否存在于父节点中。 
优选地,子节点预测每个数据包的到达时间,按照数据包到达时间的先后顺序进行分类,生成一个包含起始序列号产样式二进制映射表,并发送给相应 的父节点。 
实施本发明实施例,可以使到达的数据包有序且数量最大、不会出现推送包的冗余以及存在丢包率修复,从而减少了网络有限带宽资源的消耗;改善了由于交换映射表带来的启动延迟过大及带宽资源耗费过多的问题,降低了网络的负载;更充分地利用了父子节点之间的带宽资源,进一步提高了网络带宽资源的利用率,降低媒体播放延迟,并降低了丢包率,使得流媒体可得到高质量的播放。 
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。 
图1是本发明实施例的P2P流媒体***中的数据调度方法的流程示意图; 
图2是本发明实施例的优化调度算法包调度的简化流程图; 
图3是本发明实施例的基于拉的数据调度流程图; 
图4是本发明实施例的样式推送中的包修复流程图; 
图5是本发明实施例的改进后的包修复流程图; 
图6是本发明实施例的数据包的调度流程图; 
图7是本发明实施例的P2P流媒体***中的数据调度装置的结构组成示意图。 
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 
图1是本发明实施例的一种P2P流媒体***中的数据调度方法,如图1所示,该方法包括: 
S101,子节点检查自己的播放缓存,判断本地播放缓存中是否存在丢包现 象; 
S102,若存在丢包现象,子节点根据记录的一个字节的信息和记录的带宽向带宽累积最大且拥有丢包的父节点发送丢包请求; 
S103,父节点根据丢包请求向子节点发送数据包; 
S104,子节点根据该数据包对本地播放缓存进行修复。 
其中,S103包括: 
父节点在每个数据包后面添加一个字节的附加信息; 
将添加附加信息的数据包发送给子节点。 
具体实施中,该字节由8位二进制序列组成,表示所发送的数据包的前4个和后4个数据包是否存在于父节点中。字节的前4位表示所发送的数据包的前4个数据表是否存在于父节点中;字节的后4位表示所发送的数据包的后4个数据表是否存在于父节点中。 
进一步地,该方法还包括:子节点预测每个数据包的到达时间,按照数据包到达时间的先后顺序进行分类,生成一个包含起始序列号产样式二进制映射表,并发送给相应的父节点。 
下面结合图2至图4对本发明实施例的P2P流媒体***中的数据调度方法及装置进行详细说明。 
在本发明实施例中,父节点将最新获得的数据包添加上一个字节信息后推送给子节点,一个字节中八位二进制序列用来标明当前推送数据包的前四个和后四个数据包是否存在于父节点的缓存中,如果在缓存中则用数字“1”表示,反之用“0”表示,以备子节点丢包修复时作为参考依据。 
当有新节点加入到网络拓扑中或网络体系结构发生重大变化时,***就会重新生成样式二进制表,在生成二进制表的过程中,将取整剩余的带宽记录在子节点缓存中,子节点根据得到的数据包改变样式表并将该表反馈给上游父节点,根据子节点反馈映射表中包的起始序列号和二进制信息,父节点选择表中二进制数字“1”对应的数据包序列号进行发送。数据分发预计实现的目标是到达的包有序且数量最大,不会出现推送包的冗余以及存在丢包率修复,从而减少了网络有限带宽资源的消耗。 
流媒体播放之前,节点先检查自己的播放缓存,如果发现本地缓存中出现漏洞(即存在丢包现象),子节点根据记录的一个字节的信息以及记录的带宽, 向带宽累积最大且拥有丢包的父节点发送丢包请求,来完成数据包的修复工作。而且只要网络结构或父节点的状态没有发生重大变化,这个循环样式二进制映射表就不需要进行更新调整,因此子节点也不需要频繁的向父节点发送映射表,改善了由于交换映射表带来的启动延迟过大及带宽资源耗费过多的问题,降低了网络的负载。 
在本发明实施例中,调度策略改变了样式推送调度算法中的包修复原则,子节点侦测到播放缓存中的漏洞以后,不再是向备份父节点提出重传包的请求,而是参考父节点发送数据时附加的一个字节的信息以及父节点累积的带宽大小,来决定向哪一个父节点发送丢包重传请求。在这种方法中,因去掉了网络中的备份父节点以及分配给备份父节点的带宽,拓扑中的所有父节点均同等对待且功能相同,即既能用来推送数据包又能用来进行丢包修复,从而简化了数据传输调度算法,而且更充分地利用了父节点与子节点之间的带宽资源,进一步提高了网络带宽资源的利用率。 
尽管父节点以分布的方式推送数据包,但每一个数据包只能由一个父节点来推送,不会出现推送包的冗余即传输中不会出现父节点重复传输相同的数据,避免了以往基于推的数据调度带来的冗余问题。由于网络中传输的数据都是不重复的,不会造成网络带宽的过多浪费,因此提高了网络带宽资源的利用率。 
在大型P2P流媒体网络拓扑中,每个子节点都拥有大量的父节点来作为提供媒体资源的上游节点,图2给出的是本发明实施例的优化调度算法包调度的简化流程图,为了清晰地描述包调度的过程,选择两个父节点来向一个子节点发送数据包,即父节点P1和P2是子节点Re的其中两个父节点,负责给子节点传输媒体数据,子节点通过特定的调度策略从父节点处获得媒体数据,并传输到本地缓存中,完成媒体文件的及时播放。 
如图2所示,在时间点T1处,父节点P1和P2将收到的数据包添加一个字节的信息后,立刻将最新的包推送给子节点Re,此处两个父节点P1和P2积极推送的一个或若干个数据包组分别定义为packet1和packet2,数据包(packet)到达子节点的时间定义为T(packet),因此包packet1和packet2在网络中传输后在图2中的T(packet2)和T(packet1)时间点处到达子节点Re。当网络中的带宽或父节点的状况发生变化时,会重新生成样式二进制表,子节点根据父节点传输过来的数据包以及父子节点之间的带宽来调整样式表,并在调度时间 点N1和N2处开始调度数据包。循环样式二进制表产生以后,子节点把该样式表反馈给相应的父节点,父节点P1和P2分别在在时间点T3和T2处接收到该表,然后开始按照样式二进制映射表的规则向子节点推送数据包(packet)。 
在样式推送调度算法中,每个子节点都有两种类型的父节点:普通父节点和备份父节点,前者依据样式二进制表发送媒体资源或用于丢包的修复,后者则主要应用于丢包的修复,每个子节点都会保存一些备份父节点(备份父节点可能是之前给子节点传输数据的且预留了一定量带宽的父节点)的信息,在样式推送算法中,为了满足丢包修复的带宽需求,为备份父节点预留较高的带宽和比较新的数据内容。同时为了确切的知道哪个父节点包含丢失的数据,在数据分发时备份父节点实行的是传统的基于拉的调度策略,如图3所示,首先向子节点发送一个BM映射表,该表是由二进制序列组成,标记父节点所拥有的数据,序列中二进制数字为1则表明该数字对应的数据包存在,反之则不存在。当子节点检测到自己的缓存中存在漏洞时,就会根据备份父节点发送的BM映射表来决定向哪个备份父节点请求丢失的数据,并向父节点发送重传丢包的请求,备份父节点收到子节点的请求后,再向子节点推送数据包。 
与基于拉的调度算法不同的是,父节点传输的这个BM映射表只是表明本节点所含有的数据包的二进制序列及表的长度很小,从而减小了传输BM映射表的时间延迟和带宽的耗费。 
样式推送算法中包含备份父节点和普通父节点的整体丢包修复流程图如图4所示,备份父节点定期给子节点发送BM映射表,以便为子节点丢包请求提供依据。父节点(Sender)将最新的数据包(Packet z)发送给子节点(Receiver)。由于网络的动态性和节点的不稳定性,数据包(Packet z)在传输过程中丢失或没能在播放最后期限内到达子节点处,子节点查看播放缓存时发现漏洞,即存在丢包现象,便向拥有高带宽并且能够提供丢包的备份父节点发送丢包重传请求,备份父节点接收到请求后向该子节点重传丢包,每重传一个丢失的数据,都要反复跟备份父节点交换三次信息。 
在子节点播放媒体文件时,首先从普通父节点得到数据,发现缓存中存在漏洞后,向带宽满足且拥有丢包的备份父节点发送丢包重传请求。由于两种父节点的作用不同,***在节点的维护上需要两种不同的管理机制,使得调度策略变得相当复杂,而且对带宽资源造成了过多浪费。 
本发明实施例在样式推送调度策略的基础上,针对丢包修复存在的不足,对丢包的修复策略进行了改进,如图5所示,图5是本发明实施例中改进后的包修复流程图。 
该过程中取消了备份父节点的存在,整个网络拓扑中子节点只拥有一种普通父节点,且每个父节点处于相等的位置,既可以根据样式表推送数据又可以重传丢包。此处同样选取其中的两个父节点S1和S2来描述数据调度的流程,当父节点S1和S2接收到数据后,将附加有一个字节信息的最新数据包推送给子节点(Receiver)。 
此处与样式推送不同的是,在推送最新数据的时候,在每个数据包后面增加一个字节的附加信息,这个附加的字节是由8位二进制序列组成,前4位代表该父节点是否拥有当前发送数据包的前四个数据包,同样后4位代表该父节点是否拥有当前发送数据包的后四个数据包,如果存在则用数字“1”表示,反之用数字“0”表示。例如父节点S1发送的数据包序列号为7,附加的一个字节则表示序列号3、4、5、6及8、9、10、11这8个数据包是否存在,若相应的二进制数字为“1”,则表明存在,否则不存在。增加一个字节的附加信息足以为子节点的包修复提供有用信息,而且资源消耗量很小,不至于造成资源的过度浪费。 
子节点接收到父节点主动推送的数据包,并记录下每个包后面附加的一个字节的信息,当子节点播放媒体资源的时候,发现缓存中存在漏洞如图5中的Hole detected,子节点查看本地保存的信息,选择带宽较大的且能提供丢包的父节点发送丢包请求,不仅充分利用了父子节点之间的带宽,而且也有目的性、高效率地完成了丢包修复。 
在样式推送调度策略中,父节点为了不重复推送相同的数据包,向子节点传输数据时要依据循环样式二进制表,父子节点之间的带宽资源是产生样式表的影响因子,由于网络的异构性,不同的父子节点之间会有不同的带宽大小,在样式推送中为了简化产生样式表的复杂度,带宽采取了向下取整的措施,由于带宽资源采取的是向下取整,必然会有一些带宽资源因不够取整而被忽略掉。在大型P2P网络拓扑中存在着数量规模庞大的节点,所有节点被忽略的带宽资源之和必然也是庞大不容忽视的。 
在改进的调度策略中,父节点在收到最新数据后立刻将数据推送给子节点, 并在每个包后面附加一个字节的信息,在网络状况发生变化或父节点出现异常退出网络拓扑中时,子节点按照改进后的方法来产生新的循环样式二进制表,并将样式表传输给父节点来实现数据的调度。同时,子节点负责记录父节点每次取整后剩余的带宽资源以及父节点附加的一个字节的信息。当子节点检查本地缓存检测到丢包现象时,会查看保留的信息中哪一个或哪一些父节点持有丢失的数据,同时查看能够提供丢包的父节点累积的带宽资源是否能够满足丢包重传的带宽要求。在丢包和带宽资源都能满足的情况下,子节点选择带宽最大的父节点来实现丢包的修复,该种方案既取代了之前的备份父节点,降低了调度策略中节点管理维护的复杂度,也充分利用了普通父节点的带宽资源,提高了带宽的利用率。 
子节点产生样式二进制映射表后,在调度时间点将样式表反馈给父节点,然后父节点根据样式表按照以下步骤来进行数据包的调度。 
这里将根据改进后的方法详细阐述循环样式二进制表的产生过程,首先将端到端的带宽量化为一组比特率单元(比如50kbps),因此所有父子节点之间的带宽都被量化为一些整数单元。父节点在包调度时间点根据样式表推送数据,在给定带宽和延迟的条件下,父节点所依据的样式二进制表能确保数据及时有序地到达子节点处,这个样式表包括需求数据的起始序列号和循环二进制数字序列。比如,如果父节点收到一个起始序列号为3、二进制序列为110的样式表,它将向子节点推送数据包3、4、6、7、9等。 
子节点反馈给所有父节点的循环二进制表的长度是一样的,也表示了子节点在这个循环中所能接收的所有包的个数。由于有限的上行带宽资源,一个父节点只能在一次循环中推送有限个数据包,推送包的个数是由反馈给父节点的循环二进制序列中被指派为比特1的个数决定的。为了节省空间资源,样式二进制表是用行程编码方式进行编码的。 
在本发明实施例中,在获取样式表的过程中定义了一些变量,流媒体视频带宽为Bbits/s,标准比特率为μbits/s,因此B=nμ,其中n是网络中包的数量,且n∈Z+。对于任一个父节点i∈P,设置它到子节点的传输延迟为Di/s,并且父节点为子节点提供的端到端的带宽为Bibits/s。 
为了确保数据包能及时、有序地在网络中传输,子节点为每个父节点反馈的样式二进制表需要两个步骤来生成。 
第一步是定义循环样式表的长度为L并计算它的长度,对于一个子节点,设置
Figure BDA00002628360500101
为该子节点的父节点i(i∈P)的标准带宽,并且
Figure BDA00002628360500102
一般情况下,为了保证流媒体的连续性,需要∑i∈PB≥n。另外,设置m为所有父节点的带宽的最大公约数,即
Figure BDA00002628360500103
设bi(i∈P)是父节点的带宽与最大公约数m比值结果的向下取整值,代表父节点i向子节点推送的包的个数,即bi=[B/m]。所以,所有父节点在一个循环中所推送的数据包的总和即为循环样式二进制表的长度L,即L=∑i∈Pbi。 
第二步是在确定了循环样式表的长度L后,子节点为每个父节点分配相应的样式二进制映射表。通常在网络状况比较稳定以及丢包率较小的情况下,父节点会连续的接收到数据包并推送给子节点。子节点会根据图6所示的包调度流程图预测每个数据包的到达时间,然后子节点按照数据包到达时间的先后顺序进行分类,并根据样式表生成算法产生一个包含起始序列号的样式二进制映射表并发送给相应的父节点。 
图6是数据包的调度流程图,样式表产生的过程如下:首先推断数据包到达父节点i的时间,对于每一个父节点i(i∈P),假设最新的包z在T1时间点到达,父节点将收到的数据附加一个字节信息后立即推送给子节点,并且包z到达子节点处的时间为T(z)。在当前调度时间点N处,由于网络状况或父节点的状态发生变化,子节点重新调整样式表并发送给父节点以调度数据,假设样式表到达父节点的时间为T2且父节点接收的最新数据包为v,则T1与T2点之间的时间间隔为N-T(z)+2Di+S/Bi,其中S/Bi为数据包z的传播时延,则父节点在时间点T2处应该收到的数据包v为: 
v=z+(N-T(z)+2Di+S/Bi)R/S,(1) 
所以数据包v到达子节点的时间延迟为: 
D(v)=T(v)-N=2Di+S/Bi,   (2) 
T(v)=N+2Di+S/Bi,         (3) 
其中,T(v)为数据包v到达子节点的时间。由于每个子节点可以拥有多个父节点,其中一些父节点可以连续推送若干个数据包,从序列号为v的数据包开始,子节点选择bi个数据包,到第k个数据包(k=0,1,...,bi-1)的时间延迟为: 
T(v+k)=N+2Di+(k+1)S/Bi,  (4) 
在子节点处,根据公式(4)预测每个数据包到达的先后顺序,然后进行分 类。 
预测完数据包到达的时间后,将到达的数据包按照时间递增的顺序进行有序化并对序列做相应的调整。从所有的父节点处获得长度为L的数据包以后,计算每个数据包的到达时间,并将这些包以时间递增的顺序排序,并用x(x=1,2,...,L)表示序列号,即x是分类后横向的编号,f(x)为对应于x位上的父节点的序号。默认情况下样式二进制映射表中每一位的值为0,定义所得的样式二进制映射表的第j位由序号为g(j)的父节点分发,即: 
g(j)=j+min(f(x)-x),(5) 
其中,j是循环二进制样式表的第j位,g(j)的值则表示第j位上的数据包由序号为g(j)的父节点来推送,并将传递给父节点P(g(j))的循环样式表的第j位上的值设置为1。根据公式(5)可知,不同的数据包都是按照时间先后顺序来分类并分配给不同的父节点来推送,从而保证了数据到达的有序而且不会出现数据的冗余。 
生成样式表以后父节点根据样式表来推送数据包,与样式推送算法所不同的是父节点为每个数据包附加一个字节的信息,来表明本地缓存中是否拥有所推数据包的前四个或后四个数据包。对于处在流媒体播放端的子节点而言,在接收到数据包以后,一方面将数据包放在本地播放缓存中等待播放,另一方面将附加的一个字节信息记录在另一个缓存中,以便在丢包修复时作为参考依据。 
由于网络带宽的异构性,端到端的带宽在很大程度上的取值是浮点型的,如上所述,在样式表产生过程中,为了简化样式表产生的复杂性,将父节点能提供的带宽采取向下取整的思想,设置标准比特率为μbits/s,设置
Figure BDA00002628360500111
为该子节点的父节点i(i∈P)的标准带宽,并且数据推送的过程中利用了整数部分的带宽,取整剩余的带宽则没有获得利用价值。为了提高带宽利用率改进算法中的子节点就会记录下t时刻取整剩余的带宽资源Bt,如公式(6)所示: 
Bt=Bi-[Bi/μ]·μ      (6) 
子节点在播放前查看本地缓存是否存在丢包现象,如果存在则根据缓存中记录的一个字节的信息以及每个父节点剩余的带宽数量,来向拥有丢包且带宽最大的父节点发送丢包请求。假设子节点在时间点T1处向父节点P1发送丢包请求,父节点P1给子节点发送完丢包以后,会更新本地剩余带宽量,如公式(7)所示: 
Bt=Bt1-Bt,(7) 
子节点修复完缓存中的漏洞以后,在音视频播放到达时刻开始播放缓存中的流媒体文件。 
实施本发明实施例的P2P流媒体***中的数据调度方法,可以使到达的数据包有序且数量最大、不会出现推送包的冗余以及存在丢包率修复,从而减少了网络有限带宽资源的消耗;改善了由于交换映射表带来的启动延迟过大及带宽资源耗费过多的问题,降低了网络的负载;更充分地利用了父子节点之间的带宽资源,进一步提高了网络带宽资源的利用率,降低媒体播放延迟,并降低了丢包率,使得流媒体可得到高质量的播放。 
另外,本发明实施例还提供一种P2P流媒体***中的数据调度装置,如图7所示,该装置包括: 
子节点检查模块70,用于检查子节点的播放缓存,判断本地播放缓存中是否存在丢包现象; 
子节点发送模块71,用于若存在丢包现象,根据记录的一个字节的信息和记录的带宽向带宽累积最大且拥有丢包的父节点发送丢包请求; 
父节点发送模块72,用于根据丢包请求向子节点发送数据包; 
子节点修复模块73,用于子节点根据该数据包对本地播放缓存进行修复。 
其中,父节点发送模块72包括: 
添加子单元,用于父节点在每个数据包后面添加一个字节的附加信息; 
发送子单元,用于将添加附加信息的数据包发送给子节点。 
该字节由8位二进制序列组成,表示所发送的数据包的前4个和后4个数据包是否存在于父节点中。其中,字节的前4位表示所发送的数据包的前4个数据表是否存在于父节点中;字节的后4位表示所发送的数据包的后4个数据表是否存在于父节点中。 
具体要求实施中,子节点预测每个数据包的到达时间,按照数据包到达时间的先后顺序进行分类,生成一个包含起始序列号产样式二进制映射表,并发送给相应的父节点。 
本发明实施例中的P2P流媒体***中的数据调度装置的各模块功能的实现过程及原理可参见本发明的P2P流媒体***中的数据调度方法的实施例中的相应过程描述,这里不再赘述。 
实施本发明实施例的P2P流媒体***中的数据调度装置,可以使到达的数据包有序且数量最大、不会出现推送包的冗余以及存在丢包率修复,从而减少了网络有限带宽资源的消耗;改善了由于交换映射表带来的启动延迟过大及带宽资源耗费过多的问题,降低了网络的负载;更充分地利用了父子节点之间的带宽资源,进一步提高了网络带宽资源的利用率,降低媒体播放延迟,并降低了丢包率,使得流媒体可得到高质量的播放。 
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。 
另外,以上对本发明实施例所提供的P2P流媒体***中的数据调度方法及其装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。 

Claims (10)

1.一种P2P流媒体***中的数据调度方法,其特征在于,所述方法包括:
子节点检查自己的播放缓存,判断本地播放缓存中是否存在丢包现象;
若存在丢包现象,子节点根据记录的一个字节的信息和记录的带宽向带宽累积最大且拥有丢包的父节点发送丢包请求;
父节点根据丢包请求向子节点发送数据包;
子节点根据该数据包对本地播放缓存进行修复。
2.如权利要求1所述的P2P流媒体***中的数据调度方法,其特征在于,所述父节点根据丢包请求向子节点发送数据包的步骤包括:
父节点在每个数据包后面添加一个字节的附加信息;
将添加附加信息的数据包发送给子节点。
3.如权利要求2所述的P2P流媒体***中的数据调度方法,其特征在于,所述字节由8位二进制序列组成,表示所发送的数据包的前4个和后4个数据包是否存在于父节点中。
4.如权利要求3所述的P2P流媒体***中的数据调度方法,其特征在于,所述字节的前4位表示所发送的数据包的前4个数据表是否存在于父节点中;所述字节的后4位表示所发送的数据包的后4个数据表是否存在于父节点中。
5.如权利要求1所述的P2P流媒体***中的数据调度方法,其特征在于,所述方法还包括:子节点预测每个数据包的到达时间,按照数据包到达时间的先后顺序进行分类,生成一个包含起始序列号产样式二进制映射表,并发送给相应的父节点。
6.一种P2P流媒体***中的数据调度装置,其特征在于,所述装置包括:
子节点检查模块,用于检查子节点的播放缓存,判断本地播放缓存中是否存在丢包现象;
子节点发送模块,用于若存在丢包现象,根据记录的一个字节的信息和记录的带宽向带宽累积最大且拥有丢包的父节点发送丢包请求;
父节点发送模块,用于根据丢包请求向子节点发送数据包;
子节点修复模块,用于子节点根据该数据包对本地播放缓存进行修复。
7.如权利要求6所述的P2P流媒体***中的数据调度装置,其特征在于,父节点发送模块包括:
添加子单元,用于父节点在每个数据包后面添加一个字节的附加信息;
发送子单元,用于将添加附加信息的数据包发送给子节点。
8.如权利要求7所述的P2P流媒体***中的数据调度装置,其特征在于,所述字节由8位二进制序列组成,表示所发送的数据包的前4个和后4个数据包是否存在于父节点中。
9.如权利要求8所述的P2P流媒体***中的数据调度装置,其特征在于,所述字节的前4位表示所发送的数据包的前4个数据表是否存在于父节点中;所述字节的后4位表示所发送的数据包的后4个数据表是否存在于父节点中。
10.如权利要求6所述的P2P流媒体***中的数据调度装置,其特征在于,子节点预测每个数据包的到达时间,按照数据包到达时间的先后顺序进行分类,生成一个包含起始序列号产样式二进制映射表,并发送给相应的父节点。
CN201210564006.2A 2012-12-21 2012-12-21 一种p2p流媒体***中的数据调度方法及其装置 Expired - Fee Related CN103124292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210564006.2A CN103124292B (zh) 2012-12-21 2012-12-21 一种p2p流媒体***中的数据调度方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210564006.2A CN103124292B (zh) 2012-12-21 2012-12-21 一种p2p流媒体***中的数据调度方法及其装置

Publications (2)

Publication Number Publication Date
CN103124292A true CN103124292A (zh) 2013-05-29
CN103124292B CN103124292B (zh) 2015-10-28

Family

ID=48455143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210564006.2A Expired - Fee Related CN103124292B (zh) 2012-12-21 2012-12-21 一种p2p流媒体***中的数据调度方法及其装置

Country Status (1)

Country Link
CN (1) CN103124292B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873561A (zh) * 2014-02-19 2014-06-18 东莞中山大学研究院 一种基于网络编码的p2p模式推送调度方法
CN106716962A (zh) * 2014-09-26 2017-05-24 阿尔卡特朗讯公司 向客户端自适应流传输媒体内容的服务器,方法和计算机程序产品
CN107547921A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 视频播放方法、装置及***
CN110247859A (zh) * 2019-06-17 2019-09-17 哈工大机器人(合肥)国际创新研究院 一种基于airt-ros节点的数据发送方法及装置
CN113723061A (zh) * 2021-08-30 2021-11-30 上海幻电信息科技有限公司 基于多人协作框架的数据处理方法及装置
CN114567638A (zh) * 2022-02-14 2022-05-31 珠海迈科智能科技股份有限公司 一种根据节点实际网络动态调整分享策略的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080253369A1 (en) * 2007-04-16 2008-10-16 Cisco Technology, Inc. Monitoring and correcting upstream packet loss
CN102256163A (zh) * 2011-08-10 2011-11-23 中山大学深圳研究院 一种基于p2p的视频点播***
CN102811221A (zh) * 2012-08-02 2012-12-05 中山大学 一种基于Push机制的对等网络直播流媒体数据包调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080253369A1 (en) * 2007-04-16 2008-10-16 Cisco Technology, Inc. Monitoring and correcting upstream packet loss
CN102256163A (zh) * 2011-08-10 2011-11-23 中山大学深圳研究院 一种基于p2p的视频点播***
CN102811221A (zh) * 2012-08-02 2012-12-05 中山大学 一种基于Push机制的对等网络直播流媒体数据包调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韦建楠,庄雷: "P2P流媒体中未知覆盖网拓扑信息的节点选择策略", 《计算机应用研究》, vol. 29, no. 4, 30 April 2012 (2012-04-30), pages 1536 - 1539 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873561A (zh) * 2014-02-19 2014-06-18 东莞中山大学研究院 一种基于网络编码的p2p模式推送调度方法
CN106716962A (zh) * 2014-09-26 2017-05-24 阿尔卡特朗讯公司 向客户端自适应流传输媒体内容的服务器,方法和计算机程序产品
CN107547921A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 视频播放方法、装置及***
CN110247859A (zh) * 2019-06-17 2019-09-17 哈工大机器人(合肥)国际创新研究院 一种基于airt-ros节点的数据发送方法及装置
CN110247859B (zh) * 2019-06-17 2022-04-19 哈工大机器人(合肥)国际创新研究院 一种基于airt-ros节点的数据发送方法及装置
CN113723061A (zh) * 2021-08-30 2021-11-30 上海幻电信息科技有限公司 基于多人协作框架的数据处理方法及装置
CN114567638A (zh) * 2022-02-14 2022-05-31 珠海迈科智能科技股份有限公司 一种根据节点实际网络动态调整分享策略的方法
CN114567638B (zh) * 2022-02-14 2023-09-01 珠海迈科智能科技股份有限公司 一种根据节点实际网络动态调整分享策略的方法

Also Published As

Publication number Publication date
CN103124292B (zh) 2015-10-28

Similar Documents

Publication Publication Date Title
CN103124292B (zh) 一种p2p流媒体***中的数据调度方法及其装置
Gkantsidis et al. Network coding for large scale content distribution
US9325786B2 (en) Peer-to-peer interactive media-on-demand
CN100477641C (zh) 一种流媒体点播***的数据调度方法
CN103929823B (zh) 基于业务分类的电力无线专网信道接入控制方法
CN101355468B (zh) 一种p2p流媒体信息发布的方法
CN102883190B (zh) 优化分配带宽的点播方法和装置
CN101841691B (zh) 一种流媒体数据交换方法与装置
CN100459502C (zh) 一种非对称跨网段多路数据流动态复制分发方法
CN113453038B (zh) 一种cdn-p2p混合架构下效用最优协同缓存管理方法
CN103781115B (zh) 一种蜂窝网络中基于传输代价的分布式基站缓存替换方法
CN101895576A (zh) 一种具有较小启动时延的p2p分布式流媒体直播方法
CN108111531A (zh) 一种增强视频直播质量的方法及装置
JP2010166240A (ja) 端末装置およびパケット送信方法
CN101123526A (zh) 一种大规模流媒体传输结构的实现方法
CN102158767B (zh) 一种基于可扩展编码的对等网络流媒体直播***
CN103856560A (zh) 一种基于编码耦合的p2p流媒体调度***及方法
KR101252947B1 (ko) 비디오 청크 분포에 적응적인 푸쉬-풀 혼성 스트리밍 방법 및 장치
CN101645932B (zh) 一种p2p流媒体启发式数据调度方法
Vo et al. Cross-layer design for video replication strategy over multihop wireless networks
CN103051556A (zh) 一种流媒体数据的控制***及其方法
CN102821316A (zh) 一种基于对等计算核心算法改进的视频点播传输方法
Chung et al. PNECOS: a peer-to-peer network coding streaming system
Ju et al. On building a low latency network for future internet services
CN101237339B (zh) 基于分层点对点组播网络的流媒体传输方法

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151028

Termination date: 20171221