著录项信息
专利名称 | 用于下载点对点传输数据分片的方法和装置 |
申请号 | CN200710173895.9 | 申请日期 | 2007-12-31 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2009-07-08 | 公开/公告号 | CN101478556 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/08 | IPC分类号 | H;0;4;L;2;9;/;0;8;;;H;0;4;L;1;2;/;1;8查看分类表>
|
申请人 | 突触计算机系统(上海)有限公司 | 申请人地址 | 上海市长宁区延安西路728号15C室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 突触计算机系统(上海)有限公司 | 当前权利人 | 突触计算机系统(上海)有限公司 |
发明人 | 黄琰;张小兵;王闻宇 |
代理机构 | 北京市金杜律师事务所 | 代理人 | 罗朋 |
摘要
本发明提供了用于下载点对点传输数据分片的方法和装置。根据本发明的技术方案,终端设备根据其与对等终端设备之间传输性能的动态变化,优选地,也按照本终端设备中分片的优先级,为各个待传输的数据分片选择传输当时最合适的对等终端设备进行下载。本方案实时地考虑各个终端设备之间由于异构性导致的传输性能差异,和由于网络的动荡导致的传输速率变化变化,尽可能快地完成传输任务。本发明解决了现有技术中,分片传输不能实时考虑传输性能异构性和网络动荡的问题。
1.一种在基于点对点传输协议的终端设备中用于下载分片的方法,其中,包括以下步骤:
A.多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息;
其中,还包括以下步骤:
i.从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,根据最近一次更新的本终端设备与所述多个对等终端设备之间的传输性能相关信息,由所述多个对等终端设备中为所述一个或多个目标下载分片选择各自相应的对等终端设备,以确定所述一个或多个目标下载分片的最新的对等终端选择结果信息,其中,所述传输性能相关信息包括本终端设备从所述多个对等终端设备中的每一个进行下载的下载速率;
ii.当满足预定条件时,重复步骤i,直至所有未下载分片下载完毕;
其中,还包括以下步骤:
M.基于一个或多个目标下载分片的最新对等终端选择结果信息下载所述各个目标下载分片;
其中,所述确定过程是根据当前本终端设备与其所有对等设备之间的连接的可用时间,及各条连接的下载速率,其中,所述连接的可用时间为该连接正在传输的分片的预测完成时间。
2.根据权利要求1所述的方法,其特征在于,所述步骤ii中的预定条件包括以下各项中的任一项:
-自一个或多个目标下载分片的最新对等终端选择结果信息确定后,已经经过了预定长度的时间;
-所述一个或多个目标下载分片下载完毕。
3.根据权利要求1或2所述的方法,其特征在于,所述步骤i还包括以下步骤:
i’.根据最近一次更新的本终端设备与所述多个对等终端设备之间的传输性能相关信息以及所述多个下载目标分片的优先级信息,由所述多个对等终端设备中为多个未下载的分片中的一个或多个目标下载分片选择各自相应的对等终端设备,以确定所述一个或多个目标下载分片的最新对等终端选择结果信息。
4.根据权利要求1至2中任一项所述的方法,其特征在于,还包括以下步骤:
-多次获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息,其中,所述多个对等终端设备中每个对等终端设备的分片资源拥有信息包括该对等终端设备所拥有的分片资源的情况;
其中,所述步骤i还包括:从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,根据最近一次更新的本终端设备与所述多个对等终端设备之间的传输性能相关信息,以及最近一次获取的所述多个对等终端设备中每个对等终端设备的分片资源拥有信息,由所述多个对等终端设备中为所述一个或多个目标下载分片选择各自相应的对等终端设备,以确定所述一个或多个目标下载分片的最新的对等终端选择结果信息。
5.根据权利要求1至2中任一项所述的方法,其特征在于,所述步骤M还包括:
-为一个或多个目标下载分片向为其选择的对等终端设备发送下载请求;
-分别接收来自为所述一个或多个目标下载分片所选择的对等终端设备的分片。
6.根据权利要求5所述的方法,其特征在于,所述步骤A还包括以下步骤:
-检测所述一个或多个目标下载分片的从为其选择的对等终端设备处下载的下载速度;
-根据所述一个或多个目标下载分片的从为其选择的对等终端设备处下载的下载速度,确定本终端设备与所述一个或多个目标下载分片的为其选择的终端设备之间的传输性能相关信息。
7.一种在基于点对点传输协议的终端设备中用于下载分片的下载装置,其中,包括:
更新装置,用于多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息;
还包括:
确定装置,用于从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,根据最近一次更新的本终端设备与所述多个对等终端设备之间的传输性能相关信息,由所述多个对等终端设备中为所述一个或多个目标下载分片选择各自相应的对等终端设备,以确定所述一个或多个目标下载分片的最新的对等终端选择结果信息,其中,所述传输性能相关信息包括本终端设备从所述多个对等终端设备中的每一个进行下载的下载速率;
判断装置,用于当满足预定条件时,重复确定装置所执行的操作,直至所有未下载分片下载完毕;
其中,还包括:
分片下载装置,用于基于一个或多个目标下载分片的最新对等终端选择结果信息下载所述各个目标下载分片;
其中,所述确定过程是根据当前本终端设备与其所有对等设备之间的连接的可用时间,及各条连接的下载速率,其中,所述连接的可用时间为该连接正在传输的分片的预测完成时间。
8.根据权利要求7所述的下载装置,其特征在于,所述重复装置中的预定条件包括以下各项中的任一项:
-自一个或多个目标下载分片的最新的对等终端选择结果信息确定后,已经经过了预定长度的时间;
-所述一个或多个目标下载分片下载完毕。
9.根据权利要求7或8所述的下载装置,其特征在于,所述确定装置还用于:根据最近一次更新的本终端设备与所述多个对等终端设备之间的传输性能相关信息以及所述多个下载目标分片的优先级信息,由所述多个对等终端设备中为多个未下载的分片中的一个或多个目标下载分片选择各自相应的对等终端设备,以确定所述一个或多个目标下载分片的最新对等终端选择结果信息。
10.根据权利要求7至8中任一项所述的下载装置,其特征在于,还包括:
分片资源拥有信息获取装置,用于多次获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息,其中,所述多个对等终端设备中每个对等终端设备的分片资源拥有信息包括该对等终端设备所拥有的分片资源的情况;
其中,所述确定装置还用于:从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,根据最近一次更新的本终端设备与所述多个对等终端设备之间的传输性能相关信息,以及最近一次获取的所述多个对等终端设备中每个对等终端设备的分片资源拥有信息,由所述多个对等终端设备中为所述一个或多个目标下载分片选择各自相应的对等终端设备,以确定所述一个或多个目标下载分片的最新的对等终端选择结果信息。
11.根据权利要求7至8中任一项所述的下载装置,其特征在于,所述分片下载装置还包括:
下载请求发送装置,用于为一个或多个目标下载分片向为其选择的对等终端设备发送下载请求;
分片接收装置,用于分别接收来自为所述一个或多个目标下载分片所选择的对等终端设备的分片。
12.根据权利要求11所述的下载装置,其特征在于,所述更新装置还包括:
下载速度检测装置,用于检测一个或多个目标下载分片的从为其选择的对等终端设备处下载的下载速度;
传输性能相关信息确定装置,用于根据上述一个或多个目标下载分片的从为其选择的对等终端设备处下载的下载速度,确定本终端设备与上述一个或多个目标下载分片的为其选择的终端设备之间的传输性能相关信息。
13.一种终端设备,其特征在于,包括根据权利要求7至12中任一项所述的在基于点对点传输协议中用于下载分片的下载装置。
用于下载点对点传输数据分片的方法和装置\n技术领域\n[0001] 本发明涉及在通信网络中的终端设备下载数据的方法和装置,尤其涉及基于点到点协议的终端设备从其对等终端设备处下载数据分片的方法和装置。\n背景技术\n[0002] 流媒体技术是指用户通过网络或者特定数字信道边下载边播放多媒体数据的工作方式,而传统多媒体技术是客户端从服务器下载完整的文件后进行播放。流媒体技术采用了流式传输方式,将整个多媒体文件压缩解析成多个压缩包,向客户端顺序传送,用户可以一边解压播放前面传送过来的压缩包,一边下载后续的压缩包,从而节省了时间。随着计算机技术的发展,流媒体技术越来越广泛地应用于VoD(Video on demand)视频点播,并达到空前的热度。\n[0003] 随着IPTV的VoD的发展,传统的客户/服务器模式的流媒体系统暴露出很多问题,其一是实现流媒体系统的带宽和服务器成本昂贵,其二是能支持同时观看的用户数目有限,例如,一个通常的带宽为100M的服务器只能承受300人同时观看300kbps的视频广播,而且随着用户数的增加会对服务器造成较大的冲击,这容易引起服务器故障,造成系统瘫痪。通过引入CDN(Content delivery Network-内容分发网)技术可以缓解上述问题,其核心思想是将内容从中心推到边缘靠近用户的地方,这样不但有效地提高了用户访问内容的服务质量,而且还能减轻中心设备和骨干网络的压力。通过CDN技术,将内容服务从原来的单一中心服务结构变为分布式服务结构,用户在点击节目的时候,从靠近用户的边缘服务器上就可以获取所需要的媒体内容,用户在快进,快退和拖拉等播放操作的时候,还是在同一个服务器上获取资源。但是CDN技术仍需要投入大量硬件成本,随着用户数的增加,需要相应投入更多的边缘服务器和带宽,而且边缘服务其与中心服务器的协调和维护,以及边缘服务器的优化布点都是比较复杂的课题。\n[0004] 近年来,随着P2P(Peer-to-Peer)技术的迅速发展,P2P在流媒体方面的应用也越来越多。利用P2P的对等特点,用户节点作为客户端的同时,也协助服务器来分发流媒体内容,以分担服务器的负担,同时增加了系统的可扩展性,使媒体数据的分布性增强。换句话说,用户节点肩负了客户端和服务器的双重使命。\n[0005] 作为P2P技术的一种应用方向,P2P实时流媒体技术实现了用户在线观看直播,具有非常良好的发展前景。实时流媒体传输处理的是无限大小的媒体,客户端播放的是临时收到的媒体分块。媒体分块从媒体源端发出到最后在客户端播放器中播放出来会具有一定的延时,这包括媒体源端从获得数据到发送出去的延迟,网络传输延迟以及客户端从接收数据到在媒体播放器中播放出的延迟。实时流媒体要求上述延时必须有上限要求,当然越小越好,否则用户会看到过期的内容。网络上实时流媒体传输通常针对一些热点问题,用户会大规模同时收看相同的内容,实时流媒体分发的目标在于实现高流畅度,低延迟,此外还需注意的特性是系统的可扩展性,低控制负荷、高容错性和高网络带宽利用效率。\n[0006] 流媒体数据是以数据分片的方式进行分发的,如何对待下载数据分片进行调度,也即为各待下载数据分片选择合适的提供者(即对等节点),以实现在一个高度分散、动态和异构的P2P网络中有效下载流媒体数据,以使得用户获得最优的流媒体播放是目前P2P实时流媒体分发面临的主要挑战之一。\n[0007] 在现有技术中,通常用户节点会按照数据分片的时间先后顺序进行下载,它会向多个可用的邻居节点同时发出下载某数据分片的请求,在完成此数据分片的下载后,再进行紧接着的下一数据分片的下载。\n[0008] 现有的为待下载分片分配对等节点的调度方法有轮叫调度(Round Robin Scheduling)算法就是以轮叫的方式依次将请求调度不同的对等节点(此时假定本对等节点与其他对等节点的传输的性能是相同的),即每次调度执行i=(i+1)mod n,并选出第i个对等节点以供该分片进行下载。算法的优点是其简洁性,它无需记录当前所有连接的状态。该方法的缺点是,其一,没有考虑各个节点之间的异构性,也即本节点与各个不同的对等节点之间的连接性能的差异性;其二,如由于网络的动荡或者对等节点出现问题,导致某数据分片的下载具有很大延时甚至未能成功,造成后续数据分片不能及时下载到,从而导致在用户端播放的不连贯甚至停滞。\n发明内容\n[0009] 为了解决现有技术的上述缺点,本发明提出了一种在基于点到点协议的终端设备中从其对等终端设备处下载分片的技术方案,本终端设备多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息;并在下载各个未下载数据分片时,根据当时的性能相关信息,为各个未下载数据分片选择当时最优的对等终端设备进行下载。\n[0010] 根据本发明的第一个方面,提供了一种在基于点对点传输协议的终端设备中用于下载分片的方法,其中,该方法包括以下步骤:多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息;其中,还包括以下步骤:i.从当前多个未下载的分片中选择一个或多个分片作为一个或多个目标下载分片,根据最近一次更新的本终端设备与所述多个对等终端设备之间的传输性能相关信息,由所述多个对等终端设备中为所述一个或多个目标下载分片选择各自相应的对等终端设备,以确定所述一个或多个目标下载分片的最新的对等终端选择结果信息;ii.当满足预定条件时,重复步骤i,直至所有所需的未下载分片下载完毕(也即当前的下载队列暂时为空);还包括以下步骤:基于一个或多个目标下载分片的最新的对等终端选择结果信息下载所述各个目标下载分片。\n[0011] 根据本发明的第二个方面,提供了一种在基于点对点传输协议的终端设备中用于下载分片的下载装置,其中,包括:更新装置,用于多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息;还包括:确定装置,用于从当前多个未下载的分片中选择一个或多个分片作为一个或多个目标下载分片,根据最近一次更新的本终端设备与所述多个对等终端设备之间的传输性能相关信息,按照预定的下载所要达到的目的,由所述多个对等终端设备中为所述一个或多个目标下载分片选择各自相应的对等终端设备,以确定所述一个或多个目标下载分片的最新的对等终端选择结果信息;判断装置,当满足预定条件时,重复确定装置所执行的操作,直至所有未下载分片下载完毕;还包括:分片下载装置,用于基于一个或多个目标下载分片的最新的对等终端选择结果信息下载所述各个目标下载分片。\n[0012] 采用本发明提供的技术方案,能够根据本终端设备与对等终端设备之间传输性能的动态变化,优选地,按照本终端设备中分片的优先级,为各个待传输的数据分片择传输当时最合适的对等终端设备进行下载。本方案实时地考虑各个终端设备之间由于异构性导致的传输性能差异,和由于网络的动荡或者对等节点出现问题导致的传输失效或者恢复,尽可能快地完成传输任务。\n附图说明\n[0013] 通过参照附图阅读以下所作的对非限制性实施例的详细描述,本发明的其它特征、目的和优点将会变得更明显。在附图中,相同和相似的附图标记代表相同或相似的装置或方法步骤。\n[0014] 图1是根据本发明一个具体实施例,终端设备从其对等终端设备处下载分片的基于点到点传输的网络逻辑拓扑示意图;\n[0015] 图2是根据本发明一个具体实施例,终端设备多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息,根据最新的传输性能相关信息,为所述选定的目标下载分片选择相应的对等终端设备,并按该选择结果下载目标下载分片的系统方法的流程图;\n[0016] 图3为根据本发明的一个具体实施例的,按照初始的默认设置为分片选择对应的对等终端设备的示意图;\n[0017] 图4为根据本发明的一个具体实施例的,按照检测的下载速率,为分片选择对应的对等终端设备的示意图;\n[0018] 图5是根据本发明一个具体实施例,为目标传输分片确定能最早将其传输完成的对等终端设备的算法的一个例子;\n[0019] 图6是根据本发明一个具体实施例,在基于点到点协议的终端设备中用于下载点对点传输数据分片的下载装置的结构框图。\n具体实施方式\n[0020] 下面将参照图1至图2,从系统方法的角度对本发明的多个具体实施例进行详述。\n[0021] 图1是根据本发明一个具体实施例,终端设备从其对等终端设备处下载分片的网络逻辑拓扑示意图。\n[0022] 图2是根据本发明一个具体实施例,终端设备多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息,根据最新的传输性能相关信息,为所述选定的目标下载分片选择相应的对等终端设备,并按该选择结果下载目标下载分片的系统方法的流程图。下面将参照附图1和附图2,对本发明的方法进行详述。\n[0023] 第一实施例\n[0024] 在本实施例中,我们假设终端设备1的所有的对等终端设备2、3和4均具有终端设备1所要下载的所有的分片。\n[0025] 情形一:所有的分片均具有相同的下载优先级,例如,所述分片可以是文件的分片。由于文件分片只有在完整地组合成一个整体时才有意义,缺少任何一个分片都不能使文件正常工作,所以各个分片具有相同的优先级。因此,在这种情形中,分片下载最优的结果是从各个对等终端设备文件分别下载的分片尽量早地同时下载完毕。\n[0026] 在本实施例中,终端设备1多次更新本终端设备1与它的对等终端设备2、对等终端设备3、对等终端设备4(为便于说明,我们以本终端设备有3个对等终端设备为例进行说明,在实际应用中,本终端设备的对等终端设备的个数不仅限于此)之间的传输性能相关信息,根据最新的传输性能相关信息,为所述选定的目标下载分片选择相应的对等终端设备,并按该选择结果下载目标下载分片。具体的流程如图2所示。\n[0027] 首先,在终端设备1与其各个对等终端设备的连接的初始化时,首先设定终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同。所述传输性能包括终端设备1从其对等终端设备2、对等终端设备3、对等终端设备4下载数据分片的下载速率(即单位时间可以下载的分片的个数)或终端设备1从向某一对等终端设备发起请求到接收到来自该对等终端设备的分片的时间间隔,或者可以用速率的倒数来描述,即下载每个分片所需要的时间(以下先从传输性能为下载速度的倒数角度进行相应的描述)。\n[0028] 为了便于说明,我们将各个待下载的分片标记为A、B、C、D、E、F、G、H、I、J,为10个待下载分片。其中不同的字母并不代表先后次序或优先级的次序,仅是为了指代方便。在实际系统中,未下载分片的数量通常是十分巨大的,终端设备一般从大量的未下载分片中每次选取一定数量的分片作为其目前的目标下载分片,在短时间内对这若干待下载分片进行下载,并根据这些下载分片的一部分或全部的下载完成情况,将剩余的未下载分片中部分分片作为目标下载分片并进行逐步下载完所有分片。\n[0029] 具体地,设定本终端设备与每个对等终端设备的下载速率均为每秒0.1个分片(对应的倒数为每个分片需要10秒),然后按照该速率为调度池中的分片资源进行调度,以选择所对应的对等终端设备。如图3所示,因为默认的各个对等终端设备与本终端设备之间的传输性能相同,所以终端设备1为每个对等终端设备分配个数相近(或相同个数)的分片进行下载。也即,分片A、D、G、J分配给对等终端设备2,将B、E、H分配给对等终端设备3,将C、F、I分配给对等终端设备4。此时,能够近似地保证终端设备1从对等终端设备\n2、对等终端设备3、对等终端设备4分别下载的分片同时下载完毕。\n[0030] 而后,在步骤S30中,本终端设备将根据上述各个分片的对等终端设备的选择,从各个对应的对等终端设备处按照队列的从头到尾的顺序下载各个目标下载分片。我们认为在同一时间,本终端设备1从一个对等终端设备处只能下载一个目标下载分片。也即,从对等节点2处下载分片A,从对等节点3处下载分片B,从对等节点4处下载分片D。\n[0031] 优选的,步骤S30可以细化为步骤S301和步骤S302。即在步骤S301中,本终端设备1首先为当前需要下载的一个或多个目标下载分片向为其选择的对等终端设备发送下载请求。\n[0032] 而后在步骤S302中,本终端设备1分别接收来自为所述一个或多个目标下载分片所选择的对等终端设备的分片。\n[0033] 在下载数据分片的同时,终端设备根据数据分片的下载情况,更新终端设备与各个对等终端设备的下载速率。\n[0034] 在步骤S101中,终端设备1检测一个或多个目标下载分片的从为其选择的对等终端设备处下载的下载速度。\n[0035] 然后,在步骤S102中,终端设备1根据步骤S101中检测到一个或多个目标下载分片的从为其选择的对等终端设备处下载的下载速度,确定本终端设备与上述一个或多个目标下载分片的为其选择的终端设备之间的传输性能相关信息。\n[0036] 优选的,步骤S101中,终端设备1可以在每次从其一个对等终端设备处下载数据分片后,根据该次下载速率更新本终端设备1与该对等终端设备之间的数据分片下载速率;也可以在满足预定条件时,才根据当次下载速率更新本终端设备1与该对等终端设备之间的数据分片下载速率。其中,所述的预定条件包括:\n[0037] a)上一次数据分片下载速率更新的时间与当前时间的间隔达到一定阈值。即可以为下载设一个定时器,每次定时器到期都重新启动下载;\n[0038] b)从该对等终端设备下载的数据分片的数量达到一定阈值。\n[0039] 例如,如图4所示,假设每隔10秒,终端设备1均会更新与各个对等终端设备之前的下载速度。终端设备1检测到了与对等终端设备2之间的下载速率为每个分片5秒,即\n10秒内终端设备1已经从对等终端设备处下载了分片A和分片D;终端设备1检测到了与对等终端设备3之间的下载速率为每个分片5秒,即此时终端设备1已经从对等终端设备\n3处下载了分片B和分片E;而终端设备1检测到了与对等终端设备4之间的下载速率仍为每个分片10秒,即此时终端设备1已经从对等终端设备处下载了分片C。\n[0040] 由于从各个对等终端设备下载数据分片的下载过程是一个多次发生的过程,则根据上述多次下载过程检测并更新本终端设备1与该对等终端设备之间的数据分片下载速率也是一个多次发生的过程。\n[0041] 在检测并更新本终端设备与各个对等终端设备之间的传输性能相关信息的同时,在步骤S20中,首先终端设备根据之前的分片下载完成情况,从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,然后根据最近检测并更新的本终端设备\n1与各个对等终端设备之间的数据分片下载速率,终端设备1按预定规则i将目标下载分片分配到各个对等终端上,以保证终端设备1从对等终端设备2、对等终端设备3、对等终端设备4分别下载的目标下载分片同时下载完毕。其中预定规则i包括:\n[0042] 对于所有对等设备和所有目标下载分片,从某个对等终端设备下载的目标下载分片的数量与本终端设备到该对等终端设备下载的下载速率成正比(或近似成正比)。此时,为每个对等终端设备分配与其下载速度近似成正比的个数的分片(也即下载任务),能够保证(或近似地保证)终端设备1从对等终端设备2、对等终端设备3、对等终端设备4分别下载的分片同时下载完毕。\n[0043] 也即,因为在当前时刻检测的终端设备1与对等终端设备2、3的下载速度均为每个分片5秒,是对等终端设备4的2倍,所以为对等终端设备2和3均分配相同的分片下载任务,且为对等终端设备4的2倍。也即,先将定时器到期时的前一次分片选择对等终端设备的结果清空,然后,重新按照更新的下载性能信息(此处为下载速度)为分片选择对应的对等终端设备进行下载。此时,分片A、B、C、D、E已下载完毕,即从调度的队列中移出,从分片F开始进行分配。此时,将分片F、G、L、O分配给对等终端设备2,将分片H、I、M、N分配给对等终端设备3,将J、K分配给对等终端设备4进行下载。\n[0044] 上述过程的目的在于以实时变化的本终端设备与各个对等终端设备之间的传输性能,多次更新未传输的数据分片的对等终端设备选择结果,使得其中该选择结果对于当时待传输的数据分片在选择当时是最优的传输方案。上述过程多次重复进行,直至所有未下载分片下载完毕。其中重复的时间间隔根据预定条件判断,优选的,预定条件包括:\n[0045] -自一个或多个目标下载分片的最新对等终端选择结果信息确定后,已经经过了预定长度的时间;\n[0046] -所述一个或多个目标下载分片下载完毕,需要重新选取目标下载分片并进行下载。\n[0047] 在上述为未传输分片选择最优对等终端设备的同时,本终端设备在步骤S30中为各个目标下载分片进行下载时,均按照当时最近更新的该数据分片的对等终端设备选择结果下载。\n[0048] 以上详细说明了所有待传输的分片不分下载优先级的情况,下面将详细说明待传输分片具有不同的下载优先级的情况。\n[0049] 情形二:各个分片均具有不同的下载优先级,例如,所述分片可以是流媒体中的音视频数据分片,且假设终端设备1的所有的对等终端设备2、3和4均具有终端设备1所要下载的所有的分片。流媒体数据分片的播放时间越接近当前时间的,为了保证播放的连续性,本终端设备对该分片的需求就越强烈,因此该分片相比播放时间相差较远的分片就具有更高的下载优先级。因此,在这种情形中,分片下载最优的结果是当前所有分片中,下载优先级越高的越早下载完毕。在实际系统中,未下载分片的数量通常是十分巨大的,终端设备一般从大量的未下载分片中每次选取一定数量的分片作为其目前的目标下载分片,在短时间内对这若干待下载分片进行下载,并根据这些下载分片的完成情况,将剩余的未下载分片中部分分片作为目标下载分片并进行逐步下载直至下载完所有分片。\n[0050] 在这种情况下,本终端设备所进行的操作与上述情形一有相似之处。\n[0051] 首先,在终端设备1与其各个对等终端设备的连接的初始化时,首先设定终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同。\n[0052] 为了便于说明,我们将各个待下载的分片标记为1、2、3、4、5、6、7、8、9、10,为10个待下载分片。注意,其中数字从小到大代表下载的先后次序或优先级的次序。\n[0053] 因为初始化时默认的各个对等终端设备与本终端设备之间的传输性能相同,所以终端设备1按照优先级顺序将各个分片分配给不同的对等终端设备。也即,将分片1分配给对等终端设备2,将分片2分配给对等终端设备3,将分片3分配给对等终端设备4,该三个分片默认同时下载完毕。终端设备1又将其后的分片4分配给终端设备2,将分片5分配给对等终端设备3,将分片6分配给对等终端设备4。依次类推,直至分配完所有的数据分片到所对应的对等终端设备。此时,能够近似的保证各个分片按照其不同的优先级顺序依次下载完毕。\n[0054] 而后,本终端设备1将根据上述目标下载分片的对等终端设备的选择,在步骤S30进行下载。\n[0055] 在下载数据分片的同时,终端设备与上述情形一类似的,多次在步骤S101中,检测下载分片的从为其选择的对等终端设备处下载的下载速度。而后在步骤S102中,根据下载数据分片速率更新本终端设备1与该对等终端设备之间的数据分片下载速率。\n[0056] 在检测并更新本终端设备与各个对等终端设备之间的传输性能相关信息的同时,终端设备多次在步骤S20中,首先根据之前的下载分片下载完成情况,从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,然后根据最近检测并更新的本终端设备1与各个对等终端设备之间的数据分片下载速率,终端设备1按预定规则ii将目标下载分片分配到各个对等终端上,以保证终端设备1中未下载的优先级越高的目标下载分片越早下载完成。\n[0057] 其中,所述预定规则ii包括:\n[0058] 按照各个分片预定的下载优先级,依次为各个目标下载分片确定一个能最早将该分片传输到本终端设备1的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。该分片由本终端设备1与其到该对等终端设备间建立的连接所传输。\n[0059] 优选的,该确定过程根据当前本终端设备1与其所有对等设备之间的连接的可用时间(available time),及各条连接的下载速率。其中,所述连接的可用时间为该连接正在传输的分片的预测完成时间,若该连接当前没有传输任何分片,则其可用时间为当前时间;\n所述下载速率为本终端设备从该连接对应的对等设备下载分片的速率。以下将描述该确定过程的流程:\n[0060] 对当前所有可用连接,计算该分片经各条连接传输到本终端设备1的耗时;并估算当前各条连接的可用时间。然后,将各条连接的可用时间与其对应的传输本分片的传输耗时相加,得到该分片经各条连接从各个对等设备下载完成的预测完成时间,其中分片预测完成时间最早的所对应的对等设备就是所寻找的可能最早将该分片传输到本终端设备1的对等终端设备。而后,由于该对等终端设备及该连接已被分配给该分片,则将该最早预测完成时间作为该连接的新的可用时间,以便使用同样的方法,为下一个分片寻找最早将下一个分片传输到本终端设备的对等终端设备,直至为所有的分片都找到其对应的能将其最早传输完毕的对等终端设备。\n[0061] 图5示例了该算法过程的一个例子,其中当前时间以0ms记。本终端设备的对等终端设备2、3和4与本终端设备连接的可用时间分别为50ms、40ms和50ms,目标传输分片从该三个对等终端设备处下载所需的时间分别为60ms、50ms和50ms,则该目标传输分片的预测完成时间分别为110ms、90ms和100ms。其中预测完成时间最短的90ms所对应的对等终端设备3被选择为该目标传输分片的下载源,同时对等终端设备3与本终端设备之间连接的可用时间将更新为90ms。\n[0062] 上述过程的目的是根据实时变化的本终端设备与各个对等终端设备之间的传输性能,多次更新未传输的数据分片的对等终端设备选择结果,使得其中该选择结果对于当时待传输的数据分片在选择当时是最优的传输方案。上述过程多次重复进行,直至所有未下载分片下载完毕。\n[0063] 在上述为未传输分片选择最优对等终端设备的同时,本终端设备在步骤S30中为各个目标下载分片进行下载时,均按照下载当时最近更新的该数据分片的对等终端设备选择结果下载。\n[0064] 作为上述实施例的变形,在步骤S10中,终端设备1多次向其各个对等终端设备发送ping包及接收响应的时间,更新本终端设备与各个对等终端设备之间的数据分片下载速率。该多次发送ping包及接收响应之间可以由终端设备1按一定规则进行。所述的一定规则包括:\n[0065] -周期性地发送ping包及接收响应。\n[0066] 由于终端设备1多次向其各个对等终端设备发送ping包及接收响应是一个多次发生的过程,则根据上述多次发送ping包及接收响应的过程更新本终端设备1与各个对等终端设备之间的数据分片下载速率也是一个多次发生的过程。\n[0067] 以上实施例认为终端设备1的所有的对等终端设备2、3和4均具有终端设备1所要下载的所有的分片。\n[0068] 第二实施例\n[0069] 作为上述实施例的变形,终端设备1的对等终端设备2、3和4并不都具有终端设备1所要下载的所有的分片,即各个对等终端设备中可能含有终端设备1所要下载的所有的分片中的一部分。\n[0070] 情形三:\n[0071] 终端设备1所要下载的目标下载分片均具有相同的下载优先级。在终端设备1与其各个对等终端设备的连接的初始化时,首先设定终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同。在为各个下载优先级相同的目标下载分片选择对等终端设备下载源时,优先对拥有该数据分片的对等终端设备数量最少的数据分片进行分配,以此决定各个分片分配优先级。而后根据分配优先级,依次为各个数据分片确定一个能最早将该分片传输到本终端设备的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。该分片由本终端设备与其到该对等终端设备间建立的连接所传输。\n[0072] 优选的,该确定过程根据当前本终端设备与其所有对等设备之间的连接的可用时间。所述连接的可用时间为该连接正在传输的分片的预测完成时间,若该连接当前没有传输任何分片,则其可用时间为当前时间。以下将描述该确定过程的流程:\n[0073] 对各条可传输该分片的连接(即拥有该分片的各个对等终端设备与本终端设备之间的连接),计算该分片经各条连接传输到本终端设备的耗时,由于终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同,则传输所有数据分片的耗时相同;并估算当前各条连接的可用时间。然后,将各条连接的可用时间与其对应的传输本分片的传输耗时相加,得到该分片经各条连接从各个对等设备下载完成的预测完成时间,其中分片预测完成时间最早的所对应的对等设备就是所寻找的能最早将该分片传输到本终端设备的对等终端设备。而后,由于该对等终端设备及该连接已被分配给该分片,则将该最早预测完成时间作为该连接的新的可用时间,以便使用同样的方法,为下一个分片寻找最早将下一个分片传输到本终端设备的对等终端设备,直至为所有的分片都找到其对应的能将其最早传输完毕的对等终端设备。\n[0074] 在为所有目标下载分片确定其对等终端设备后,由于具有不同分配优先级各个分片本身不具有下载优先级,则在若干对应于同一对等终端设备的数据分片中没有确定的传输的顺序。\n[0075] 在一个变化的实施例中,终端设备仍按照将各条连接的可用时间与其对应的传输本分片的传输耗时相加,得到该分片经各条连接从各个对等设备下载完成的预测完成时间,其中分片预测完成时间最早的所对应的对等设备就是所寻找的可能最早将该分片传输到本终端设备1的对等终端设备。若此时该最优选的对等终端设备不具备该分片的资源,则按分片预测完成时间从早到晚顺序搜索剩余的连接,直至找到具备该分片的对等终端设备,将其作为该分片建立连接的对等终端设备。。\n[0076] 而后,本终端设备将根据上述目标下载分片的对等终端设备选择,在步骤S30进行下载。\n[0077] 而后终端设备进行的操作与情形一中类似,在步骤S10中检测数据分片的传输情况并以此更新本终端设备与其各个对等终端设备之间的传输性能信息。\n[0078] 同时,终端设备在步骤S40中,多次获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息,其中,所述多个对等终端设备中每个对等终端设备的分片资源拥有信息包括该对等终端设备所拥有的分片资源的情况。该分片资源拥有信息可以由本终端设备向其各个对等终端设备查询获取,或者由各个终端设备向本终端设备推送获取,也可以由点对点传输的控制设备从对等终端设备处查询而后推送给本终端设备。\n[0079] 在检测并更新本终端设备与各个对等终端设备之间的传输性能相关信息和多次获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息的同时,在步骤S20中,终端设备首先根据之前的分片下载完成情况,从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,而后根据最近检测并更新的本终端设备1与各个对等终端设备之间的数据分片下载速率,以及各个对等终端设备的分片资源拥有信息按预定规则i′将目标下载分片分配到各个对等终端上,以保证终端设备1从对等终端设备2、对等终端设备3、对等终端设备4分别下载的目标下载分片同时下载完毕。\n[0080] 其中预定规则i′包括:优先对拥有该数据分片的对等终端设备数量最少的数据分片进行分配,以此决定各个目标下载分片的分配优先级。而后根据分配优先级,依次为各个数据分片确定一个能最早将该分片传输到本终端设备的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。\n[0081] 上述确定对等终端设备的方法如下:对各条可传输该分片的连接(即拥有该分片的各个对等终端设备与本终端设备之间的连接),计算该分片经该各条连接传输到本终端设备的耗时;并估算当前各条连接的可用时间。然后,将各条连接的可用时间与其对应的传输本分片的传输耗时相加,得到该分片经各条连接从各个对等设备下载完成的预测完成时间,其中分片预测完成时间最早的所对应的对等设备就是所寻找的能最早将该分片传输到本终端设备的对等终端设备。而后,由于该对等终端设备及该连接已被分配给该分片,则将该最早预测完成时间作为该连接的新的可用时间,以便使用同样的方法,为下一个分片寻找最早将下一个分片传输到本终端设备的对等终端设备,直至为所有的分片都找到其对应的能将其最早传输完毕的对等终端设备。\n[0082] 在上述为未传输分片选择最优对等终端设备的同时,本终端设备和情形一类似,在步骤S30中为各个目标下载分片进行下载时,均按照下载当时最近更新的该数据分片的对等终端设备选择结果下载。\n[0083] 情形四:\n[0084] 该情形下终端设备1所要下载的所有的分片均具有不相同的下载优先级。在终端设备1与其各个对等终端设备的连接的初始化时,首先设定终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同。在为各个下载优先级不同的数据分片选择对等终端设备下载源时,优先对下载优先级高的(首要的考虑因素),而拥有该数据分片的对等终端设备数量最少的数据分片进行分配,以此决定各个分片分配优先级。而后根据分配优先级,依次为各个数据分片确定一个能最早将该分片传输到本终端设备的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。该分片由本终端设备与其到该对等终端设备间建立的连接所传输。\n[0085] 本终端设备将根据上述目标下载分片的对等终端设备选择,在步骤S30进行下载。\n[0086] 而后,终端设备进行的操作与情形三类似,在步骤S10中,多次检测并更新本终端设备与各个对等终端设备之间的传输性能相关信息;在步骤S40中,多次获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息。\n[0087] 在检测并更新本终端设备与各个对等终端设备之间的传输性能相关信息和多次获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息的同时,在步骤S20中,终端设备首先根据之前的分片下载完成情况,从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,而后根据最近检测并更新的本终端设备1与各个对等终端设备之间的数据分片下载速率,以及各个对等终端设备的分片资源拥有信息按预定规则ii′将目标下载分片分配到各个对等终端上,以保证终端设备1从对等终端设备2、对等终端设备3、对等终端设备4分别下载的目标下载分片同时下载完毕。\n[0088] 其中,所述预定规则ii′是按照各个分片预定的下载优先级,以及所述多个对等终端设备中每个对等终端设备的分片资源拥有信息,依次为目标下载分片确定一个能最早将该分片传输到本终端设备的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。\n[0089] 优选的,该确定过程根据当前本终端设备与拥有该数据分片的各个对等设备之间的连接的可用时间,及各条连接的下载速率。其中,所述连接的可用时间为该连接正在传输的分片的预测完成时间,若该连接当前没有传输任何分片,则其可用时间为当前时间;所述下载速率为本终端设备从该连接对应的对等设备下载分片的速率。以下将描述该确定过程的流程:\n[0090] 对与该数据分片对应的各条可用连接(即当前本终端设备与拥有该数据分片的各个对等设备之间的连接),计算该分片经各条连接传输到本终端设备的耗时;并估算当前各条连接的可用时间。然后,将各条连接的可用时间与其对应的传输本分片的传输耗时相加,得到该分片经各条连接从各个对等设备下载完成的预测完成时间,其中分片预测完成时间最早的所对应的对等设备就是所寻找的能最早将该分片传输到本终端设备的对等终端设备。而后,由于该对等终端设备及该连接已被分配给该分片,则将该最早预测完成时间作为该连接的新的可用时间,以便使用同样的方法,为下一个分片寻找最早将下一个分片传输到本终端设备的对等终端设备,直至为所有的分片都找到其对应的能将其最早传输完毕的对等终端设备。\n[0091] 在上述为未传输分片选择最优对等终端设备的同时,本终端设备和情形一类似,在步骤S30中为各个目标下载分片进行下载时,均按照下载当时最近更新的该数据分片的对等终端设备选择结果下载。\n[0092] 以上两个实施例及其变化例详细说明了在多种分片传输和分片拥有情况下,终端设备多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息,根据最新的传输性能相关信息和分片拥有信息,为所述选定的目标下载分片选择相应的对等终端设备,并按该选择结果下载目标下载分片的系统方法。本领域的普通技术人员应能理解,在数据分片具有相同或不同下载优先级,同时对等节点拥有或不完全拥有本终端设备所需的全部数据分片的情况下,可用来为各个数据分片选择对等节点的算法是多种多样的,不受本实施例中所详述的算法例所限。\n[0093] 本领域的普通技术人员应能理解本发明不限于第一和第二实施例所基于的图1所示的基于点对点传输的网络逻辑拓扑结构和数据分片数量,对于其他基于点对点传输的网络逻辑拓扑结构和数据分片的情况,本发明的方法同样适用。\n[0094] 图6是根据本发明一个具体实施例,在基于点到点协议的终端设备中用于下载点对点传输数据分片的下载装置10的结构框图。该下载装置10包括更新装置1000,也包括分片对等终端设备确定装置101和判断装置102,还包括分片下载装置103。其中,更新装置1000进一步包括下载速度检测装置1000和传输性能相关信息确定装置1001。分片下载装置103进一步包括下载请求发送装置1030和分片接收装置1031。优选的,下载装置10还包括分片资源拥有信息获取装置104(图中未示出)。\n[0095] 下面将参照附图2与图6,对位于终端设备中的下载装置10用于从其对等终端设备下载分片的过程进行详细说明。\n[0096] 第三实施例\n[0097] 在本实施例中,我们假设终端设备1的所有的对等终端设备2、3和4均具有终端设备1所要下载的所有的分片,同时所有的分片均具有相同的下载优先级。在这种情形中,分片下载最优的结果是从各个对等终端设备文件分别下载的分片同时下载完毕。\n[0098] 首先,在终端设备1与其各个对等终端设备的连接的初始化时,首先设定终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同。\n[0099] 终端设备1将当前所有目标下载分片平均分配给3个对等终端设备,近似地保证终端设备1从对等终端设备2、对等终端设备3、对等终端设备4分别下载的目标下载分片同时下载完毕。\n[0100] 而后,分片下载装置103将根据上述各个分片的对等终端设备选择,从各个对等终端设备处从先到后下载各个数据分片。我们认为在同一时间,本终端设备从一个对等终端设备处只能下载一个数据分片。\n[0101] 优选的,下载请求发送装置1030将各个数据分片的下载请求发送给该分片对应的对等终端设备,同时分片接收装置1031从各个对等终端设备处接收其发送来的对应的数据分片。\n[0102] 在下载数据分片的同时,更新装置100多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息。\n[0103] 其中,下载速度检测装置1000检测一个或多个目标下载分片的从为其选择的对等终端设备处下载的下载速度。\n[0104] 而后,传输性能相关信息确定装置1001,用于根据下载速度检测装置1000检测出的上述一个或多个目标下载分片的从为其选择的对等终端设备处下载的下载速度,确定本终端设备与上述一个或多个目标下载分片的为其选择的终端设备之间的传输性能相关信息。\n[0105] 优选的,更新装置100可以在每次从其一个对等终端设备处下载数据分片后,根据该次下载速率更新终端设备1与该对等终端设备之间的数据分片下载速率;也可以在满足预定条件时,才根据当次下载速率更新终端设备1与该对等终端设备之间的数据分片下载速率。其中,所述的预定条件包括:\n[0106] -上一次数据分片下载速率更新的时间与当前时间的间隔达到一定阈值;\n[0107] -从该对等终端设备下载的数据分片的数量达到一定阈值。\n[0108] 由于从各个对等终端设备下载数据分片的下载过程是一个多次发生的过程,则根据上述更新装置100检测下载过程并更新终端设备1与该对等终端设备之间的数据分片下载速率也是一个多次发生的过程。\n[0109] 在更新装置100检测并更新本终端设备与各个对等终端设备之间的传输性能相关信息的同时,分片对等终端设备确定装置101首先从未下载的数据分片中选取一个或多个作为目标下载分片,而后根据最近检测并更新的终端设备1与各个对等终端设备之间的数据分片下载速率,终端设备1按预定规则i将目标下载分片分配到各个对等终端上,以保证终端设备1从对等终端设备2、对等终端设备3、对等终端设备4分别下载的目标下载分片同时下载完毕。其中预定规则i包括:\n[0110] 对于所有对等设备和所有目标下载分片,从某个对等终端设备下载的目标下载分片的数量与本终端设备到该对等终端设备下载的下载速率成正比(或近似成正比)。此时,能够保证(或近似地保证)终端设备1从对等终端设备2、对等终端设备3、对等终端设备\n4分别下载的分片同时下载完毕。\n[0111] 分片对等终端设备确定装置101用于根据实时变化的本终端设备与各个对等终端设备之间的传输性能,多次更新目标下载分片的对等终端设备选择结果,使得该选择结果对于目标下载分片在选择当时是最优的传输方案。分片对等终端设备确定装置101多次重复运行,直至所有未下载分片下载完毕。其中重复的时间间隔根据由判断装置102根据预定条件判断,优选的,预定条件包括:\n[0112] -自一个或多个目标下载分片的最新对等终端选择结果信息确定后,已经经过了预定长度的时间;\n[0113] -所述一个或多个目标下载分片下载完毕,需要重新选取目标下载分片并进行下载。\n[0114] 在上述分片对等终端设备确定装置101为目标下载分片选择最优对等终端设备的同时,分片下载装置103为各个目标下载分片进行下载时,均按照下载当时最近更新的该目标下载分片的对等终端设备选择结果下载。\n[0115] 作为本实施例的一个变化例,终端设备待下载的各个分片具有不同的下载优先级。在这种情形中,分片下载最优的结果是从各个对等终端设备文件分别下载的分片同时下载完毕。\n[0116] 首先,在终端设备1与其各个对等终端设备的连接的初始化时,首先设定终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同。\n[0117] 为了便于说明,我们将各个待下载的分片标记为1、2、3、4、5、6、7、8、9、10,为10个待下载分片。注意,其中数字从小到大代表下载的先后次序或优先级的次序。\n[0118] 因为默认的各个对等终端设备与本终端设备之间的传输性能相同,所以终端设备\n1依优先级顺序将各个分片分配给不同的对等终端设备。也即,将分片1分配给对等终端设备2,将分片2分配给对等终端设备3,将分片3分配给对等终端设备4,该三个分片默认同时下载完毕。终端设备1又将其后的分片4分配给终端设备2,将分片5分配给对等终端设备3,将分片6分配给对等终端设备4。依次类推,直至分配完所有的数据分片到所对应的对等终端设备。此时,能够近似的保证各个分片按照其不同的优先级顺序依次下载完毕。\n[0119] 而后,分片下载装置103将根据上述各个分片的对等终端设备选择进行下载。\n[0120] 在下载数据分片的同时,更新装置100多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息。\n[0121] 在检测并更新本终端设备与各个对等终端设备之间的传输性能相关信息的同时,分片对等终端设备确定装置101从未下载的数据分片中选取一个或多个作为目标下载分片,然后根据最近检测并更新的终端设备1与各个对等终端设备之间的数据分片下载速率,终端设备按预定规则ii将目标下载分片分配到各个对等终端上,以保证终端设备1中目标下载分片的优先级越高的数据分片越早下载完成。分片对等终端设备确定装置101多次重复运行,直至所有未下载分片下载完毕。其中重复的时间间隔根据由判断装置102[0122] 其中,所述预定规则ii包括:\n[0123] 按照各个目标下载分片预定的下载优先级,依次为各个数据分片确定一个能最早将该分片传输到本终端设备的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。该分片由本终端设备与其到该对等终端设备间建立的连接所传输。\n[0124] 优选的,该确定过程根据当前本终端设备与其所有对等设备之间的连接的可用时间,及各条连接的下载速率。其中,所述连接的可用时间为该连接正在传输的分片的预测完成时间,若该连接当前没有传输任何分片,则其可用时间为当前时间;所述下载速率为本终端设备从该连接对应的对等设备下载分片的速率。以下将描述该确定过程的流程:\n[0125] 对当前所有可用连接,计算该分片经各条连接传输到本终端设备的耗时;并估算当前各条连接的可用时间。然后,将各条连接的可用时间与其对应的传输本分片的传输耗时相加,得到该分片经各条连接从各个对等设备下载完成的预测完成时间,其中分片预测完成时间最早的所对应的对等设备就是所寻找的能最早将该分片传输到本终端设备的对等终端设备。而后,由于该对等终端设备及该连接已被分配给该分片,则将该最早预测完成时间作为该连接的新的可用时间,以便使用同样的方法,为下一个分片寻找最早将下一个分片传输到本终端设备的对等终端设备,直至为所有的分片都找到其对应的能将其最早传输完毕的对等终端设备。\n[0126] 在上述分片对等终端设备确定装置101为目标下载分片选择最优对等终端设备的同时,分片下载装置103为各个目标下载分片进行下载时,均按照下载当时最近更新的该目标下载分片的对等终端设备选择结果下载。\n[0127] 作为上述实施例的变形,更新装置100多次向其各个对等终端设备发送ping包及接收响应的时间,更新本终端设备与各个对等终端设备之间的数据分片下载速率。该多次发送ping包及接收响应之间可以由终端设备1按一定规则进行。所述的一定规则包括:\n[0128] -周期性地发送ping包及接收响应。\n[0129] 由于终端设备1多次向其各个对等终端设备发送ping包及接收响应是一个多次发生的过程,则根据上述多次发送ping包及接收响应的过程更新终端设备1与各个对等终端设备之间的数据分片下载速率也是一个多次发生的过程。\n[0130] 以上实施例认为终端设备1的所有的对等终端设备2、3和4均具有终端设备1所要下载的所有的分片。\n[0131] 第四实施例\n[0132] 在本实施例中,我们假设终端设备1的对等终端设备2、3和4并不都具有终端设备1所要下载的所有的分片,即各个对等终端设备中可能含有终端设备1所要下载的所有的分片中的一部分。同时,终端设备1所要下载的目标下载分片均具有相同的下载优先级。\n[0133] 在终端设备1与其各个对等终端设备的连接的初始化时,首先设定终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同。在为各个下载优先级相同的目标下载分片选择对等终端设备下载源时,优先对拥有该数据分片的对等终端设备数量最少的数据分片进行分配,以此决定各个分片分配优先级。而后根据分配优先级,依次为各个数据分片确定一个能最早将该分片传输到本终端设备的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。该分片由本终端设备与其到该对等终端设备间建立的连接所传输。\n[0134] 优选的,该确定过程根据当前本终端设备与其所有对等设备之间的连接的可用时间。所述连接的可用时间为该连接正在传输的分片的预测完成时间,若该连接当前没有传输任何分片,则其可用时间为当前时间。以下将描述该确定过程的流程:\n[0135] 对各条可传输该分片的连接(即拥有该分片的各个对等终端设备与本终端设备之间的连接),计算该分片经各条连接传输到本终端设备的耗时,由于终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同,则传输所有数据分片的耗时相同;并估算当前各条连接的可用时间。然后,将各条连接的可用时间与其对应的传输本分片的传输耗时相加,得到该分片经各条连接从各个对等设备下载完成的预测完成时间,其中分片预测完成时间最早的所对应的对等设备就是所寻找的能最早将该分片传输到本终端设备的对等终端设备。而后,由于该对等终端设备及该连接已被分配给该分片,则将该最早预测完成时间作为该连接的新的可用时间,以便使用同样的方法,为下一个分片寻找最早将下一个分片传输到本终端设备的对等终端设备,直至为所有的分片都找到其对应的能将其最早传输完毕的对等终端设备。\n[0136] 在为所有目标下载分片确定其对等终端设备后,由于具有不同分配优先级各个分片本身不具有下载优先级,则在若干对应于同一对等终端设备的数据分片中没有确定的传输的顺序。\n[0137] 而后,分片下载装置103将根据上述各个分片的对等终端设备选择,从各个对等终端设备处从先到后下载各个数据分片。\n[0138] 更新装置100检测数据分片的传输情况并以此更新本终端设备与其各个对等终端设备之间的传输性能信息。\n[0139] 同时,分片资源拥有信息获取装置104多次获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息,其中,所述多个对等终端设备中每个对等终端设备的分片资源拥有信息包括该对等终端设备所拥有的分片资源的情况。该分片资源拥有信息可以由本终端设备向其各个对等终端设备查询获取,或者由各个终端设备向本终端设备推送获取,也可以由点对点传输的控制设备从对等终端设备处查询而后推送给本终端设备。\n[0140] 在更新装置100检测并更新本终端设备与各个对等终端设备之间的传输性能相关信息和分片资源拥有信息获取装置104多次获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息的同时,分片对等终端设备确定装置101首先根据之前的分片下载完成情况,从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,而后根据最近检测并更新的终端设备1与各个对等终端设备之间的数据分片下载速率,以及各个对等终端设备的分片资源拥有信息按预定规则i′将目标下载分片分配到各个对等终端上,以保证终端设备1从对等终端设备2、对等终端设备3、对等终端设备4分别下载的目标下载分片同时下载完毕。分片对等终端设备确定装置101多次重复运行,直至所有未下载分片下载完毕。其中重复的时间间隔根据由判断装置102。\n[0141] 其中预定规则i′包括:优先对拥有该数据分片的对等终端设备数量最少的数据分片进行分配,以此决定各个目标下载分片的分配优先级。而后根据分配优先级,依次为各个数据分片确定一个能最早将该分片传输到本终端设备的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。\n[0142] 上述确定对等终端设备的方法如下:对各条可传输该分片的连接(即拥有该分片的各个对等终端设备与本终端设备之间的连接),计算该分片经该各条连接传输到本终端设备的耗时;并估算当前各条连接的可用时间。然后,将各条连接的可用时间与其对应的传输本分片的传输耗时相加,得到该分片经各条连接从各个对等设备下载完成的预测完成时间,其中分片预测完成时间最早的所对应的对等设备就是所寻找的能最早将该分片传输到本终端设备的对等终端设备。而后,由于该对等终端设备及该连接已被分配给该分片,则将该最早预测完成时间作为该连接的新的可用时间,以便使用同样的方法,为下一个分片寻找最早将下一个分片传输到本终端设备的对等终端设备,直至为所有的分片都找到其对应的能将其最早传输完毕的对等终端设备。\n[0143] 在上述分片对等终端设备确定装置101为目标下载分片选择最优对等终端设备的同时,分片下载装置103为各个目标下载分片进行下载时,均按照下载当时最近更新的该目标下载分片的对等终端设备选择结果下载。\n[0144] 作为本实施例的一个变化例,终端设备1所要下载的所有的分片均具有不相同的下载优先级。\n[0145] 在终端设备1与其各个对等终端设备的连接的初始化时,首先设定终端设备1与其各个对等终端设备2、对等终端设备3、对等终端设备4之间的传输性能相同。在为各个下载优先级不同的数据分片选择对等终端设备下载源时,优先对下载优先级高的,而拥有该数据分片的对等终端设备数量最少的数据分片进行分配,以此决定各个分片分配优先级。\n而后根据分配优先级,依次为各个数据分片确定一个能最早将该分片传输到本终端设备的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。该分片由本终端设备与其到该对等终端设备间建立的连接所传输。\n[0146] 而后,分片下载装置103将根据上述各个分片的对等终端设备选择,从各个对等终端设备处从先到后下载各个数据分片。\n[0147] 更新装置100检测数据分片的传输情况并以此更新本终端设备与其各个对等终端设备之间的传输性能信息。\n[0148] 同时,分片资源拥有信息获取装置104多次获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息。\n[0149] 在更新装置100检测并更新本终端设备与各个对等终端设备之间的传输性能相关信息和分片资源拥有信息获取装置104获取所述多个对等终端设备中每个对等终端设备的分片资源拥有信息的同时,分片对等终端设备确定装置101首先根据之前的分片下载完成情况,从当前多个未下载分片中选择一个或多个分片作为一个或多个目标下载分片,而后根据最近检测并更新的终端设备1与各个对等终端设备之间的数据分片下载速率,以及各个对等终端设备的分片资源拥有信息按预定规则ii′将目标下载分片分配到各个对等终端上,以保证终端设备1从对等终端设备2、对等终端设备3、对等终端设备4分别下载的目标下载分片同时下载完毕。分片对等终端设备确定装置101多次重复运行,直至所有未下载分片下载完毕。其中重复的时间间隔根据由判断装置102。\n[0150] 其中,所述预定规则ii′是按照各个目标下载分片预定的下载优先级,以及所述多个对等终端设备中每个对等终端设备的分片资源拥有信息,依次为目标下载分片确定一个能最早将该分片传输到本终端设备的对等终端设备,并将该最早完成该分片传输的对等设备分配给该分片以下载。\n[0151] 优选的,该确定过程根据当前本终端设备与拥有该数据分片的各个对等设备之间的连接的可用时间,及各条连接的下载速率。其中,所述连接的可用时间为该连接正在传输的分片的预测完成时间,若该连接当前没有传输任何分片,则其可用时间为当前时间;所述下载速率为本终端设备从该连接对应的对等设备下载分片的速率。以下将描述该确定过程的流程:\n[0152] 对与该数据分片对应的各条可用连接(即当前本终端设备与拥有该数据分片的各个对等设备之间的连接),计算该分片经各条连接传输到本终端设备的耗时;并估算当前各条连接的可用时间。然后,将各条连接的可用时间与其对应的传输本分片的传输耗时相加,得到该分片经各条连接从各个对等设备下载完成的预测完成时间,其中分片预测完成时间最早的所对应的对等设备就是所寻找的能最早将该分片传输到本终端设备的对等终端设备。而后,由于该对等终端设备及该连接已被分配给该分片,则将该最早预测完成时间作为该连接的新的可用时间,以便使用同样的方法,为下一个分片寻找最早将下一个分片传输到本终端设备的对等终端设备,直至为所有的分片都找到其对应的能将其最早传输完毕的对等终端设备。\n[0153] 在上述分片对等终端设备确定装置101为目标下载分片选择最优对等终端设备的同时,分片下载装置103为各个目标下载分片进行下载时,均按照下载当时最近更新的该目标下载分片的对等终端设备选择结果下载。\n[0154] 以上两个实施例及其变化例详细说明了在多种分片传输和分片拥有情况下,位于终端设备中的下载装置1多次更新本终端设备与其多个对等终端设备之间的传输性能相关信息,根据最新的传输性能相关信息和分片拥有信息,为所述选定的目标下载分片选择相应的对等终端设备,并按该选择结果下载目标下载分片的过程。本领域的普通技术人员应能理解,在数据分片具有相同或不同下载优先级,同时对等节点拥有或不完全拥有本终端设备所需的全部数据分片的情况下,分片对等终端设备确定装置101用来为各个数据分片选择对等节点的算法是多种多样的,不受本实施例中所详述的算法例所限。\n[0155] 本领域的普通技术人员应能理解本发明不限于第一和第二实施例所基于的图1所示的基于点对点传输的网络逻辑拓扑结构和数据分片数量,对于其他基于点对点传输的网络逻辑拓扑结构和数据分片的情况,本发明的方法同样适用。以上对本发明的实施例进行了描述,但是本发明并不局限于特定的系统、方法和装置,本领域内技术人员可以在所附权利要求的范围内做出各种变形或修改。
法律信息
- 2022-12-09
未缴年费专利权终止
IPC(主分类): H04L 29/08
专利号: ZL 200710173895.9
申请日: 2007.12.31
授权公告日: 2014.12.17
- 2014-12-17
- 2009-09-02
- 2009-07-08
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-01-31
|
2005-07-29
| | |
2
| |
2007-09-05
|
2007-02-15
| | |
3
| | 暂无 |
2006-08-09
| | |
4
| |
2006-06-21
|
2005-12-13
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |