发明名称 一种基于链表的P2P流媒体下载方法和系统
摘要 本发明公开了一种基于链表的P2P流媒体下载方法和系统。所述方法,包括下列步骤:用户节点采用链表数据结构为每个邻居节点维护一个邻居节点下载任务队列,为每个数据分片维护一个数据分片下载任务队列,并将两个队列存储于用户节点本身;所述用户节点在拥有预备下载的数据分片的邻居节点集合中,选择所述用户节点本地所维护的下载任务链表中相应邻居节点的下载任务队列中所有任务的估计完成时间最小的邻居节点,将该下载任务交给该节点完成所述数据分片的下载任务,同时更新所述邻居节点下载任务队列和数据分片下载任务队列。
申请公布号 CN101841557B 申请公布日期 2013.01.02
申请号 CN201010117154.0 申请日期 2010.03.02
申请人 中国科学院计算技术研究所 发明人 王雷;李静远;林思明;刘悦;程学旗;冯凯;刘祥涛
分类号 H04N21/63(2011.01)I;H04N21/239(2011.01)I;H04L29/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04N21/63(2011.01)I
代理机构 北京律诚同业知识产权代理有限公司 11006 代理人 祁建国;梁挥
主权项 一种基于十字链表的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.所述用户节点更新所述下载任务三元组中所述邻居节点对应的下载任务队列的所有任务的估计完成时刻;同时更新所述数据分片对应的下载 任务队列的最早完成时刻。
地址 100080 北京市海淀区中关村科学院南路6号