CN101841557B - 一种基于十字链表的p2p流媒体下载方法和系统 - Google Patents

一种基于十字链表的p2p流媒体下载方法和系统 Download PDF

Info

Publication number
CN101841557B
CN101841557B CN 201010117154 CN201010117154A CN101841557B CN 101841557 B CN101841557 B CN 101841557B CN 201010117154 CN201010117154 CN 201010117154 CN 201010117154 A CN201010117154 A CN 201010117154A CN 101841557 B CN101841557 B CN 101841557B
Authority
CN
China
Prior art keywords
downloading task
node
downloading
formation
data fragmentation
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.)
Active
Application number
CN 201010117154
Other languages
English (en)
Other versions
CN101841557A (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 Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN 201010117154 priority Critical patent/CN101841557B/zh
Publication of CN101841557A publication Critical patent/CN101841557A/zh
Application granted granted Critical
Publication of CN101841557B publication Critical patent/CN101841557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于十字链表的P2P流媒体下载方法和系统。所述方法,包括下列步骤:用户节点采用十字链表数据结构为每个邻居节点维护一个邻居节点下载任务队列,为每个数据分片维护一个数据分片下载任务队列,并将两个队列存储于用户节点本身;所述用户节点在拥有预备下载的数据分片的邻居节点集合中,选择所述用户节点本地所维护的下载任务十字链表中相应邻居节点的下载任务队列中所有任务的估计完成时间最小的邻居节点,将该下载任务交给该节点完成所述数据分片的下载任务,同时更新所述邻居节点下载任务队列和数据分片下载任务队列。

Description

一种基于十字链表的P2P流媒体下载方法和系统
技术领域
本发明涉及对等网络(Peer to Peer Networks,P2P网络)上的流媒体下载技术领域,特别是涉及一种基于十字链表的P2P流媒体下载方法和系统。
背景技术
P2P下载技术是指客户端从服务器下载文件过程中,定时与服务器交换共享该文件的客户端信息,客户端同时更新下载源节点信息,从共享该文件的相应客户端下载文件片段到本地。采用P2P下载技术,由单一的从服务器获取资源模式过渡到多点获取资源的模式,并共享自身已有资源;因此,P2P下载基于点对点技术可以实现文件共享、网络交流、文件交换和分布计算等。
随着骨干网络的扩容和网络技术的发展,以前受制于网络能力的基于P2P技术的网络应用程序得到了较大的发展空间,用户量呈爆炸式增长。与传统的客户端/服务器(C/S)模式相比,P2P模式可以在短时间内进行大规模部署,并且部署系统的开销会比同等条件下的C/S部署模式要廉价许多。当前最常见的P2P数据共享系统包括:P2P文件共享系统、P2P视频直播平台、P2P点播平台、视频电话系统等。
以P2P视频点播系统为例,观看同一个点播节目的各个客户端不但可以从视频的原始发布者处请求数据,而且还可以从符合一定条件的其他观看同一节目的客户端中分享数据。这种分享策略虽然会在一定程度上造成视频播放的延迟,并且在视频播放前会有一个较长时间的缓冲时期,但却可以极大减轻该流媒体发布者的负担,同时可以避免视频发布者单点失效问题。实际上,对于普通的网络视频点播服务来说,用户只要能够流畅收看到所希望看到的点播节目就会有很高的用户满意度。
目前,市场上有多个成功的P2P流媒体播放平台,但其在实现细节方面,仍然有很多值得深入探讨和研究的问题,包括:
1)系统中一个节点的邻居节点集合中,有多个节点包含同一个数据分片,该节点应该如何选择该数据分片的资源节点,是当前还未有定论的热点问题;
2)一个流媒体分享系统的参与节点中,邻居节点集合、数据分片集合以及各个分片的预计下载等各种信息,应该以怎样的数据结构加以组织,才可以高效调度数据分片的下载,减小流媒体回放的时延,得到较高的用户满意度,也是一个未能很好解决的问题。
发明内容
本发明的目的在于提供一种基于十字链表的P2P流媒体下载方法和系统。其为流媒体系统客户端的数据分片下载过程提供合理化调度方案,提高了P2P流媒体平台的数据分片共享与传播效率。
为实现本发明的目的而提供的一种基于十字链表的P2P流媒体下载方法,包括下列步骤:
步骤100.用户节点采用十字链表数据结构为每个邻居节点维护一个邻居节点下载任务队列,为每个数据分片维护一个数据分片下载任务队列,并将两个队列存储于用户节点本身;
步骤200.所述用户节点在拥有预备下载的数据分片的邻居节点集合中,选择所述用户节点本地所维护的下载任务十字链表中相应邻居节点的下载任务队列中所有任务的估计完成时间最小的邻居节点,将该下载任务交给该节点完成所述数据分片的下载任务,同时更新所述邻居节点下载任务队列和数据分片下载任务队列。
所述下载任务通过下载任务三元组记录,所述下载任务三元组为<Pi,bj,Ti.j>,其中Pi为资源节点的节点标识,bj为准备下载的数据分片的标识,Ti.j为该任务的预计完成时刻;
其中Ti.j的计算方法为:Tf(Pi)+block_size/v(Pi),其中block_size为数据分片的大小,v(Pi)为资源节点Pi到用户节点的数据传输速率。
所述步骤200,包括下列步骤:
步骤210.所述用户节点在拥有准备下载的数据分片的邻居节点中,选择其下载队列所有任务的估计完成时间最小的邻居节点安排下载该数据分片的任务;
步骤220.所述用户节点建立相应数据下载任务三元组记录所述下载任务;
步骤230.所述用户节点更新所述下载任务三元组中所述邻居节点对应的下载任务队列的所有任务的估计完成时刻;同时更新所述数据分片对应的下载任务队列的最早完成时刻。
所述方法,还包括下列步骤:
步骤300.所述用户节点周期性更新所述下载任务三元组中所述邻居节点对应的下载任务队列的所有任务的估计完成时刻;同时更新所述预备下载的数据分片对应的下载任务队列的最早完成时刻,返回步骤200.
所述步骤300,包括下列步骤:
步骤310.所述用户节点在间隔时间内估计并更新各个所述邻居节点到所述用户节点的下载速率;
步骤320.所述用户节点根据所述估算的下载速率,估算各个所述下载任务三元组的估计下载完成时刻;
步骤330.所述用户节点更新各个下载任务三元组中所述邻居节点对应的下载任务队列的所有任务的估计完成时刻;同时更新各个下载任务三元组中所述数据分片对应的下载任务队列的最早完成时刻记录;
步骤340.判断是否存在待下载的数据分片在预计播放时刻之前无法到达,若是,则根据步骤100至步骤200所述方法重新调度待下载的数据分片的下载任务。
在P2P点播系统中用户节点在发现用户进行跳转操作时,或在P2P直播系统中用户节点的节目时延较大时,所述方法,还包括下列步骤:
步骤400.根据用户的跳转要求,执行点播跳转操作。
所述步骤400,包括下列步骤:
步骤410.所述用户节点清空所述下载队列中的所有下载任务三元组;
步骤420.所述用户节点向所有已确定的资源节点发送取消下载请求;
步骤430.所述用户节点从用户选择的新时刻,或直播系统给定的新时刻起采用步骤100的方法重新建立十字链表数据结构的下载任务队列。
为实现本发明的目的还提供一种基于十字链表的P2P流媒体下载系统,所述系统,包括:
邻居节点管理模块,用于为用户节点维护一个采用十字链表数据结构存储的邻居节点下载任务队列,并根据数据分片为用户节点维护一个数据分片下载任务队列,并将两个队列存储于用户节点本身;
下载调度模块,用于根据所述用户节点在拥有数据分片bj的邻居节点集合中,选择所述用户节点本地所维护的下载任务十字链表中相应邻居节点下载队列中所有任务的估计完成时间Tf(Pi)最小的邻居节点Pi,将该下载任务交给该节点Pi完成所述数据分片的下载任务,通过所述邻居节点管理模块更新所述邻居节点下载任务队列和数据分片下载任务队列。
所述下载调度模块,包括:
邻居节点选择模块,用于所述用户节点在拥有bj的邻居节点中,选择其下载队列所有任务的估计完成时间Tf(Pi)最小的邻居节点Pi安排下载该数据分片的任务;
下载任务建立模块,用于建立相应数据下载任务三元组<Pi,bj,Ti.j>记录所述下载任务;
更新模块,用于更新所述下载任务三元组<Pi,bj,Ti.j>中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新所述数据分片bj对应的下载任务队列BQ(bj)的最早完成时刻Tb(bj)。
所述系统,还包括:
时间更新模块,用于周期性更新所述下载任务三元组中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新所述数据分片bj对应的下载任务队列BQ(bj)的最早完成时刻Tb(bj)。
所述时间更新模块,包括:
下载速率更新子模块,用于在间隔时间内估计并更新各个所述邻居节点到所述用户节点的下载速率v(Pi);
下载完成时刻更新子模块,用于根据所述估算的下载速率v(Pi),估算各个所述下载任务三元组的估计下载完成时刻Ti.j
更新子模块,用于更新各个下载任务三元组中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新各个下载任务三元组中所述数据分片对应的下载任务队列BQ(bj)的最早完成时刻记录Tb(bj);
判断模块,用于判断是否存在数据分片bk在预计播放时刻之前无法到达,若是,则触发所述邻居节点管理模块和下载调度模块重新调度数据分片bk的下载任务。
所述系统,包括:
跳转模块,用于根据用户的跳转要求,执行点播跳转操作。
所述跳转模块,包括:
跳转处理模块,用于清空所述下载队列中的所有三元组,并向所有已确定的邻居节点发送取消下载请求;
跳转下载模块,用于根据用户选择的新时刻,或直播系统给定的新时刻起重新建立十字链表调度数据结构。
本发明的有益效果是:本发明提供的基于十字链表的P2P流媒体下载方法和系统,能够在二维空间中清晰描述各个下载任务的关联关系,提高P2P流媒体平台的数据分片共享与传播效率。
附图说明
图1是本发明的基于十字链表的P2P流媒体下载方法的步骤流程图;
图2是本发明中十字链表数据结构的实施例示意图;
图3是本发明中用户节点在安排一个数据分片bj的下载任务的一种实施方案流程图;
图4是本发明的基于十字链表的P2P流媒体下载方法的一种实施方案的步骤流程图;
图5是本发明的基于十字链表数据结构的P2P流媒体下载方法的周期性更新方法的一种实施方案流程图;
图6是跳转操作的一应用实例的示意图;
图7是本发明的基于十字链表数据结构的P2P流媒体下载方法的跳转操作处理方法的一种实施方案流程图;
图8是本发明基于十字链表的P2P流媒体下载系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种基于十字链表的P2P流媒体下载方法和系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的一种基于十字链表的P2P流媒体下载方法和系统。在二维空间中清晰地描述了各个下载任务的关联关系,可以应用于P2P点播/直播平台,为流媒体系统客户端的数据分片下载过程提供合理化调度方案,提高了P2P流媒体平台的数据分片共享与传播效率。
本发明要解决的技术问题包括:
1.下载任务调度方法;
2.周期性调整方法;
3.跳转操作处理方法。
为了避免概念混淆,对以下概念加以解释:
用户节点,为发出流媒体下载指令的P2P系统用户所使用的节点;
所述邻居节点,为在应用层拓扑图中与所述用户节点直接相连的节点;
资源节点,为拥有或部分拥有所述下载指令所请求流媒体数据,并被选定为所述用户节点提供该数据的邻居节点;
数据分片,指在互联网络流媒体传输过程中,在数据发送端将流媒体数据编码并切分为适合互联网传输的较小数据包。数据的接收端在接收到前述数据分片后能够对其进行解码,还原为连续的流媒体数据。
下面结合上述目标详细介绍本发明一种基于十字链表的P2P流媒体下载方法,图1是本发明的基于十字链表的P2P流媒体下载方法的步骤流程图,如图1所示,所述方法,包括下列步骤:
步骤100.用户节点采用十字链表数据结构为每个邻居节点维护一个邻居节点下载任务队列,为每个数据分片维护一个数据分片下载任务队列,并将两个队列存储于用户节点本身;
图2是本发明中十字链表数据结构的实施例示意图,如图2所示,所述用户节点维护两个下载任务队列:
1)用户节点为它的每个邻居节点维护一个邻居节点下载任务队列Q(Pi),如图2中的水平方向队列所示;该队列中的下载任务按照预计下载完成时刻进行排序,并记录该队列全部下载任务的完成时刻Tf(Pi)。
2)用户节点为每个正在下载的数据分片维护一个数据分片下载任务队列BQ(bj),如图2中的垂直方向队列所示;并记录队列中的最早下载完成时刻Tb(bj).
作为一种可实施方式,为确保数据分片按时到达、保证流媒体播放的质量,同一个数据分片可能会被安排从多个邻居节点上同时进行下载。
较佳地,本发明中用户节点通过建立数据分片下载任务三元组记录下载任务,包括该资源节点的节点标识、该数据分片的标识、以及所述数据分片的预计下载完成时刻;
所述下载任务三元组为<Pi,bj,Ti.j>,其中Pi为资源节点的节点标识,bj为准备下载的数据分片的标识,Ti.j为该任务的预计完成时刻。例如<P6,b5,T6.5>描述的是这样一个下载任务:数据请求节点指定节点标识为P6的邻居节点提供标识为b5的数据分片,预计该下载任务在T6.5时刻完成。
其中Ti.j的计算方法为:Tf(Pi)+block_size/v(Pi),其中block_size为数据分片的大小,v(Pi)为资源节点Pi到用户节点的数据传输速率。
用户节点在安排一个数据分片bj的下载任务时,执行如下步骤:
步骤200.所述用户节点在拥有数据分片bj的邻居节点集合中,选择所述用户节点本地所维护的下载任务十字链表中相应邻居节点下载队列中所有任务的估计完成时间Tf(Pi)最小的邻居节点Pi,将该下载任务交给该节点Pi完成所述数据分片的下载任务,同时更新所述邻居节点下载任务队列和数据分片下载任务队列;
所述更新操作只是对一个数据分片的下载任务进行分配后做的局部更新,与步骤300中所述的周期性完全更新各个队列是不同的。
所述用户节点根据其所维护的各个邻居节点的下载任务队列依次向该邻居节点请求数据以完成所述数据分片的下载任务。
图3是本发明中用户节点在安排一个数据分片bj的下载任务的一种实施方案流程图,如图3所示,所述步骤200,包括下列步骤:
步骤210.所述用户节点在拥有bj的邻居节点中,选择其下载队列所有任务的估计完成时间Tf(Pi)最小的邻居节点Pi安排下载该数据分片的任务;
步骤220.所述用户节点建立相应数据下载任务三元组<Pi,bj,Ti.j>记录所述下载任务;
步骤230.所述用户节点更新所述下载任务三元组<Pi,bj,Ti.j>中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新所述数据分片bj对应的下载任务队列BQ(bj)的最早完成时刻Tb(bj)。
图4是本发明的基于十字链表的P2P流媒体下载方法的一种实施方案的步骤流程图,如图4所示,所述基于十字链表的P2P流媒体下载方法,还包括下列步骤:
步骤300.所述用户节点周期性更新所述下载任务三元组中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新所述数据分片bj对应的下载任务队列BQ(bj)的最早完成时刻Tb(bj),返回步骤200.
图5是本发明的基于十字链表数据结构的P2P流媒体下载方法的周期性更新方法的一种实施方案流程图,如图5所示,所述步骤300,包括下列步骤:
步骤310.所述用户节点在间隔时间内估计并更新各个所述邻居节点到所述用户节点的下载速率v(Pi);
所述估计下载速率(带宽)的方法属于现有技术,在此不再一一赘述。
步骤320.所述用户节点根据所述估算的下载速率v(Pi),估算各个所述下载任务三元组的估计下载完成时刻Ti.j
步骤330.所述用户节点更新各个下载任务三元组中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新各个下载任务三元组中所述数据分片对应的下载任务队列BQ(bj)的最早完成时刻记录Tb(bj);
步骤340.判断是否存在数据分片bk在预计播放时刻之前无法到达,若是,则根据步骤100至步骤200所述方法重新调度数据分片bk的下载任务。
较佳地,本发明还提供一种基于十字链表数据结构的P2P流媒体下载方法的跳转操作处理方法。P2P点播系统用户经常会因为当前视频节目比较拖沓等原因,拖动用户界面的时间飞梭,使媒体播放时刻发生突变;而P2P直播系统则会出现用户节点当前播放时刻落后直播源当前提供内容时刻过多导致用户节点进行的重新连接的情况。
所述基于十字链表数据结构的P2P流媒体下载方法,还包括:
步骤400.根据用户的跳转要求,执行点播跳转操作;
所述点播跳转操作是指:用户的当前观看时刻向前变化,或向后作较大的变化。图6是跳转操作的一应用实例的示意图,如图6所示。原播放时刻时间轴坐标为5分50秒,数据下载缓存为1分钟。当用户拖动时间飞梭到10分0秒时,下载缓存中的数据就会变成无效数据,需要将其全部清空。同时,该客户端需要立即缓存时刻在10分0秒到11分0秒区间之内的数据分片。但若用户只是将时间飞梭向后作较小调整,如将播放时刻调整为6分10秒,由于数据缓存的存在,流媒体的播放不会受到明显影响,所述下载任务管理十字链表也并不需要执行跳转操作。
图7是本发明的基于十字链表数据结构的P2P流媒体下载方法的跳转操作处理方法的一种实施方案流程图,如图7所示,所述步骤400,包括下列步骤:
步骤410.所述用户节点清空所述下载队列中的所有三元组;
步骤420.所述用户节点向所有已确定的资源节点发送取消下载请求;
步骤430.所述用户节点从用户选择的新时刻,或直播系统给定的新时刻起采用步骤100的方法重新建立十字链表调度数据结构。
相应于本发明的基于十字链表的P2P流媒体下载方法,还提供一种基于十字链表的P2P流媒体下载系统,图8是本发明基于十字链表的P2P流媒体下载系统的结构示意图,如图8所示,所述系统,包括:
邻居节点管理模块1,用于为用户节点维护一个采用十字链表数据结构存储的邻居节点下载任务队列,并根据数据分片为用户节点维护一个数据分片下载任务队列,并将两个队列存储于用户节点本身;
所述为用户节点维护的两个下载任务队列的结构,在前面已经详细说明,在此不再一一赘述。
下载调度模块2,用于根据所述用户节点在拥有数据分片bj的邻居节点集合中,选择所述用户节点本地所维护的下载任务十字链表中相应邻居节点下载队列中所有任务的估计完成时间Tf(Pi)最小的邻居节点Pi,将该下载任务交给该节点Pi完成所述数据分片的下载任务,同时通过邻居节点管理模块1更新所述邻居节点下载任务队列和数据分片下载任务队列。
其中,所述下载调度模块2,包括:
邻居节点选择模块21,用于所述用户节点在拥有bj的邻居节点中,选择其下载队列所有任务的估计完成时间Tf(Pi)最小的邻居节点Pi安排下载该数据分片的任务;
下载任务建立模块22,用于建立相应数据下载任务三元组<Pi,bj,Ti.j>记录所述下载任务;
更新模块23,用于更新所述下载任务三元组<Pi,bj,Ti.j>中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新所述数据分片bj对应的下载任务队列BQ(bj)的最早完成时刻Tb(bj)。
较佳地,所述基于十字链表的P2P流媒体载系统,还包括:
时间更新模块3,用于周期性更新所述下载任务三元组中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新所述数据分片bj对应的下载任务队列BQ(bj)的最早完成时刻Tb(bj)。
其中,所述时间更新模块3,包括:
下载速率更新子模块31,用于在间隔时间内估计并更新各个所述邻居节点到所述用户节点的下载速率v(Pi);
下载完成时刻更新子模块32.用于根据所述估算的下载速率v(Pi),估算各个所述下载任务三元组的估计下载完成时刻Ti.j
更新子模块33,用于更新各个下载任务三元组中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新各个下载任务三元组中所述数据分片对应的下载任务队列BQ(bj)的最早完成时刻记录Tb(bj);
判断模块34.用于判断是否存在数据分片bk在预计播放时刻之前无法到达,若是,则触发邻居节点管理模块1和下载调度模块2重新调度数据分片bk的下载任务。
较佳地,所述基于十字链表的P2P流媒体下载系统,还包括:
跳转模块4,用于根据用户的跳转要求,执行点播跳转操作;
其中,所述跳转模块4,包括:
跳转处理模块41,用于清空所述下载队列中的所有三元组,并向所有已确定的邻居节点发送取消下载请求;
跳转下载模块42,用于根据用户选择的新时刻,或直播系统给定的新时刻起重新建立十字链表调度数据结构。
本发明的有益效果在于:
本发明提供的基于十字链表的P2P流媒体下载方法和系统,能够在二维空间中清晰描述各个下载任务的关联关系,提高P2P流媒体平台的数据分片共享与传播效率。
通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。

Claims (10)

1.一种基于十字链表的P2P流媒体下载方法,其特征在于,所述方法,包括下列步骤:
步骤100.用户节点采用十字链表数据结构为每个邻居节点维护一个邻居节点下载任务队列,为每个数据分片维护一个数据分片下载任务队列,并将两个队列存储于用户节点本身;
步骤200.所述用户节点在拥有预备下载的数据分片的邻居节点集合中,选择所述用户节点本地所维护的下载任务十字链表中相应邻居节点的下载任务队列中所有任务的估计完成时间最小的邻居节点,将该下载任务交给该节点完成所述数据分片的下载任务,同时更新所述邻居节点下载任务队列和数据分片下载任务队列;
其中,用户节点通过建立数据分片下载任务三元组记录下载任务,包括资源节点的节点标识、该数据分片的标识、以及所述数据分片的预计下载完成时刻;
所述下载任务三元组为<Pi,bj,Ti.j>,其中Pi为资源节点的节点标识,bj为准备下载的数据分片的标识,Ti.j为该任务的预计完成时刻;资源节点,为拥有或部分拥有下载指令所请求流媒体数据,并被选定为所述用户节点提供该数据的邻居节点;
其中Ti.j的计算方法为:Tf(Pi)+block_size/v(Pi),其中block_size为数据分片的大小,v(Pi)为资源节点Pi到用户节点的数据传输速率,Tf(Pi)为全部下载任务的完成时刻;
所述步骤200,包括下列步骤:
步骤210.所述用户节点在拥有准备下载的数据分片的邻居节点中,选择其下载队列所有任务的估计完成时间最小的邻居节点安排下载该数据分片的任务;
步骤220.所述用户节点建立相应数据下载任务三元组记录所述下载任务;
步骤230.所述用户节点更新所述下载任务三元组中所述邻居节点对应的下载任务队列的所有任务的估计完成时刻;同时更新所述数据分片对应的下载任务队列的最早完成时刻。
2.根据权利要求1所述的基于十字链表的P2P流媒体下载方法,其特征在于,所述方法,还包括下列步骤:
步骤300.所述用户节点周期性更新所述下载任务三元组中所述邻居节点对应的下载任务队列的所有任务的估计完成时刻;同时更新所述预备下载的数据分片对应的下载任务队列的最早完成时刻,返回步骤200。
3.根据权利要求2所述的基于十字链表的P2P流媒体下载方法,其特征在于,所述步骤300,包括下列步骤:
步骤310.所述用户节点在间隔时间内估计并更新各个所述邻居节点到所述用户节点的下载速率;
步骤320.所述用户节点根据所述下载速率,估算各个所述下载任务三元组的估计下载完成时刻;
步骤330.所述用户节点更新各个下载任务三元组中所述邻居节点对应的下载任务队列的所有任务的估计完成时刻;同时更新各个下载任务三元组中所述数据分片对应的下载任务队列的最早完成时刻记录;
步骤340.判断是否存在待下载的数据分片在预计播放时刻之前无法到达,若是,则根据步骤100至步骤200所述方法重新调度待下载的数据分片的下载任务。
4.根据权利要求1所述的基于十字链表的P2P流媒体下载方法,其特征在于,在P2P点播系统中用户节点在发现用户进行跳转操作时,或在P2P直播系统中用户节点的节目时延较大时,所述方法,还包括下列步骤:
步骤400.根据用户的跳转要求,执行点播跳转操作。
5.根据权利要求4所述的基于十字链表的P2P流媒体下载方法,其特征在于,所述步骤400,包括下列步骤:
步骤410.所述用户节点清空所述下载队列中的所有下载任务三元组;
步骤420.所述用户节点向所有已确定的资源节点发送取消下载请求;
步骤430.所述用户节点从用户选择的新时刻,或直播系统给定的新时刻起采用步骤100的方法重新建立十字链表数据结构的下载任务队列。
6.一种基于十字链表的P2P流媒体下载系统,其特征在于,所述系统,包括:
邻居节点管理模块,用于为用户节点维护一个采用十字链表数据结构存储的邻居节点下载任务队列,并根据数据分片为用户节点维护一个数据分片下载任务队列,并将两个队列存储于用户节点本身;下载调度模块,用于根据所述用户节点在拥有数据分片bj的邻居节点集合中,选择所述用户节点本地所维护的下载任务十字链表中相应邻居节点下载队列中所有任务的估计完成时间Tf(Pi)最小的邻居节点Pi,将该下载任务交给该节点Pi完成所述数据分片的下载任务,通过所述邻居节点管理模块更新所述邻居节点下载任务队列和数据分片下载任务队列;
其中,用户节点通过建立数据分片下载任务三元组记录下载任务,包括资源节点的节点标识、该数据分片的标识、以及所述数据分片的预计下载完成时刻;
所述下载任务三元组为<Pi,bj,Ti.j>,其中Pi为资源节点的节点标识,bj为准备下载的数据分片的标识,Ti.j为该任务的预计完成时刻;资源节点,为拥有或部分拥有下载指令所请求流媒体数据,并被选定为所述用户节点提供该数据的邻居节点;
其中Ti.j的计算方法为:Tf(Pi)+block_size/v(Pi),其中block_size为数据分片的大小,v(Pi)为资源节点Pi到用户节点的数据传输速率;
所述下载调度模块,包括:
邻居节点选择模块,用于所述用户节点在拥有bj的邻居节点中,选择其下载队列所有任务的估计完成时间Tf(Pi)最小的邻居节点Pi安排下载该数据分片的任务;
下载任务建立模块,用于建立相应数据下载任务三元组<Pi,bj,Ti.j>记录所述下载任务;
更新模块,用于更新所述下载任务三元组<Pi,bj,Ti.j>中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新所述数据分片bj对应的下载任务队列BQ(bj)的最早完成时刻Tb(bj)。
7.根据权利要求6所述的基于十字链表的P2P流媒体下载系统,其特征在于,所述系统,还包括:
时间更新模块,用于周期性更新所述下载任务三元组中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新所述数据分片bj对应的下载任务队列BQ(bj)的最早完成时刻Tb(bj)。
8.根据权利要求7所述的基于十字链表的P2P流媒体下载系统,其特征在于,所述时间更新模块,包括:
下载速率更新子模块,用于在间隔时间内估计并更新各个所述邻居节点到所述用户节点的下载速率v(Pi);
下载完成时刻更新子模块,用于根据所述下载速率v(Pi),估算各个所述下载任务三元组的估计下载完成时刻Ti.j;
更新子模块,用于更新各个下载任务三元组中所述邻居节点对应的下载任务队列Q(Pi)的所有任务的估计完成时刻Tf(Pi);同时更新各个下载任务三元组中所述数据分片对应的下载任务队列BQ(bj)的最早完成时刻记录Tb(bj);
判断模块,用于判断是否存在数据分片bk在预计播放时刻之前无法到达,若是,则触发所述邻居节点管理模块和下载调度模块重新调度数据分片bk的下载任务。
9.根据权利要求7所述的基于十字链表的P2P流媒体下载系统,其特征在于,所述系统,包括:
跳转模块,用于根据用户的跳转要求,执行点播跳转操作。
10.根据权利要求9所述的基于十字链表的P2P流媒体下载系统,其特征在于,所述跳转模块,包括:
跳转处理模块,用于清空所述下载队列中的所有三元组,并向所有已确定的邻居节点发送取消下载请求;
跳转下载模块,用于根据用户选择的新时刻,或直播系统给定的新时刻起重新建立十字链表调度数据结构。
CN 201010117154 2010-03-02 2010-03-02 一种基于十字链表的p2p流媒体下载方法和系统 Active CN101841557B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010117154 CN101841557B (zh) 2010-03-02 2010-03-02 一种基于十字链表的p2p流媒体下载方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010117154 CN101841557B (zh) 2010-03-02 2010-03-02 一种基于十字链表的p2p流媒体下载方法和系统

Publications (2)

Publication Number Publication Date
CN101841557A CN101841557A (zh) 2010-09-22
CN101841557B true CN101841557B (zh) 2013-01-02

Family

ID=42744678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010117154 Active CN101841557B (zh) 2010-03-02 2010-03-02 一种基于十字链表的p2p流媒体下载方法和系统

Country Status (1)

Country Link
CN (1) CN101841557B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051556A (zh) * 2012-12-28 2013-04-17 青岛爱维互动信息技术有限公司 一种流媒体数据的控制系统及其方法
CN103326822B (zh) * 2013-07-18 2016-02-17 上海交通大学 基于数据分片的参与式感知系统隐私保护方法及系统
CN104735115A (zh) * 2013-12-24 2015-06-24 乐视网信息技术(北京)股份有限公司 一种p2p下载方法及装置
CN104092787B (zh) * 2014-06-24 2016-04-13 腾讯科技(深圳)有限公司 基于dns的网络访问方法和系统
CN106095908B (zh) * 2016-06-08 2019-07-05 北京金山安全管理系统技术有限公司 用于关联进程和连接的方法和装置
CN107277134B (zh) * 2017-06-19 2020-08-04 网宿科技股份有限公司 一种基于对等网络的数据传输方法及系统
CN109413443B (zh) * 2017-08-16 2021-03-16 中国移动通信有限公司研究院 一种时移功能的实现方法及装置
CN112187667B (zh) * 2020-09-16 2022-09-13 深圳希施玛数据科技有限公司 数据下载方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155122A (zh) * 2006-09-30 2008-04-02 中国科学院计算技术研究所 一种基于数据特征的流媒体内容下载方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779096B2 (en) * 2003-06-23 2010-08-17 Hewlett-Packard Development Company, L.P. System and method for managing a shared streaming media service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155122A (zh) * 2006-09-30 2008-04-02 中国科学院计算技术研究所 一种基于数据特征的流媒体内容下载方法

Also Published As

Publication number Publication date
CN101841557A (zh) 2010-09-22

Similar Documents

Publication Publication Date Title
CN101841557B (zh) 一种基于十字链表的p2p流媒体下载方法和系统
CN101141459B (zh) 使用http与p2p相结合实现数据传输或流媒体传输的方法
CN101406060A (zh) 应用对等(p2p)内容分发网络延时下载视频服务
CN100556129C (zh) 一种对等连接流媒体直播系统和装置
CN101237429B (zh) 基于内容分发网络的流媒体直播系统、方法及装置
US20090119734A1 (en) Distributed Cache Algorithms and System for Time-Shifted, and Live, Peer-to-Peer Video Streaming
CN109819336B (zh) 一种基于播放缓存大小分片下载的方法及系统
EP2288085A1 (en) P2p based method, device and system for playing media
JP5269208B2 (ja) データ配信方法及び装置
CN101710902B (zh) 一种无结构p2p网络及其数据查询方法和索引更新方法
CN102571900A (zh) 一种实现远端实时操控的系统和方法
JP2003167813A (ja) ストリームデータの蓄積・配信方法及びストリームデータの蓄積・配信システム
CN102067102A (zh) 通过对等网络实现已安装的游戏软件的共享
CN101764831A (zh) 一种流媒体数据共享方法、共享系统和流媒体节点
CN109299122A (zh) 一种数据同步方法、设备和计算机可存储介质
CN102647436A (zh) 一种基于点对点的文件发布方法及系统
CN113453038A (zh) 一种cdn-p2p混合架构下效用最优协同缓存管理方法
CN103237063B (zh) 一种云存储方法及其云控制服务器、云存储服务器和系统
EP2252057A1 (en) Method and system for storing and distributing electronic content
CN101577695A (zh) 基于p2p技术的数据下载方法
CN105893429A (zh) 用于优化web缓存的方法及系统
CN109962947A (zh) 一种对等网络中的任务分配方法及装置
CN101551781A (zh) 一种p2p视频点播系统中的磁盘缓存替换方法
CN101626400B (zh) 一种p2p音乐点播系统的补偿方法
Liang et al. ipass: Incentivized peer-assisted system for asynchronous streaming

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
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20100922

Assignee: Branch DNT data Polytron Technologies Inc

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2018110000033

Denomination of invention: P2P streaming media downloading method and system based on orthogonal list

Granted publication date: 20130102

License type: Common License

Record date: 20180807