P2P协议中文件共享下载方法技术

技术编号:10313904 阅读:153 留言:0更新日期:2014-08-13 16:11
本发明专利技术公开了一种P2P协议中文件共享下载方法,其步骤为:发布文件并生成URL,并将URL通知Tracker,Peer直接通过URL定位所需要下载的文件并下载;Peer请求获取文件分块信息或通知其它Peer其拥有某个或某些分块信息时,通过修改信息参数减少信息长度,且所述信息中只需包含分块的索引信息,由信息接收者Peer根据分块规则自行计算分块在文件中的开始位置和长度;提供共享下载的Peer在接收到请求获取分块的Peer消息后,根据消息中包含的分块索引信息,计算所请求或通知的分块在文件中的开始位置,并得到该分块的结束位置,并利用所计算的位置信息,将请求的分块数据传输给请求者Peer。本发明专利技术能够减少信息传输通信量,提高通信效率。

【技术实现步骤摘要】
P2P协议中文件共享下载方法
本专利技术涉及一种P2P文件共享下载时,不依赖文件分块长度信息和torrent种子信息文件的文件共享传输方法,实现P2P文件共享下载传输时减少信息传输通信量,提高通信效率的目的,属于互联网通信

技术介绍
基于P2P协议的文件共享下载用于代替传统集中的C/S模式下的文件下载,其主要目的是节省网络体系内的整体带宽或提高网络带宽的利用效率,其主要思想是,通过从周围邻居接点获取数据,一方面利用了提供共享服务接点的剩余上行带宽,同时也避免Tracker(或中心服务器)的过载,从而提高了网络的整体有效性。目前P2P模式下的文件下载和共享服务成为了互联网下的主要手段之一。基于传统的P2P协议,如BitTorrent协议,需要下载文件的节点首先需要下载一个.torrent种子文件,然后根据种子文件从Tracker或其他节点请求获取该文件的部分或者全部数据;需要下载文件的节点在发送请求时,需要节点资深计算所请求文件的开始位置、请求长度及其它相关信息,并在发送的请求信息中携带上述信息,以便接收者能根据请求信息将指定的文件片段传输给需要下载该文件的请求者节点,实现文件在节点之间的共享传输。根据上述协议规范,能实现基于P2P的文件下载共享服务,如专利201210050920(申请号,下同),实现了一种《一种用于接收P2P资源的方法,装置和设备》,同时,通过扩展可讲P2P应用于数据的共享传输,如专利201210120504实现了《基于P2P的WEB视频会议系统》,以及利用P2P特性,实现网络数据包的P2P协议识别,如专利201110421888实现了《一种P2P协议类型识别方法》、专利201210043475实现了《基于DNS协议识别P2P协议的方法及系统》,以上方法都是利用了P2P实现某种设备/系统,或对P2P协议进行识别处理,是利用了P2P的固有特性,对P2P协议本身没有改变。在此基础上,针对P2P协议本身的效率问题,如专利200910091937,实现了《一种P2P下载文件完整性校验方法》,该方法根据下载客户端的特征参数将文件块分为子数据块,将下载过程中对文件完整性校验的延迟进行隐藏,有效提高了P2P下载的效率,特别是嵌入式平台的P2P下载的效率,其主要方法是将下载和文件的完整性哈希计算并行进行,节省了传输完成后的哈希计算时间,提高了整体传输效率。上述改进对计算开销敏感的系统有一定的改善,如计算能力有限的嵌入式系统等。但根据摩尔定律,计算机的运算速度提高很快,而互联网的传输速度提高却很难赶上传输速度需求的增长;同时,专用计算机或装备了高性能计算芯片的嵌入式系统,其计算能力很强,并行处理所带来世间开销节省并不明显,因此,提高传输效率是改善P2P共享效率的关键,而目前的方法并不能很好的满足以上要求。
技术实现思路
本专利技术的目的是提供一种P2P协议中文件共享下载方法,改善P2P下文件共享下载时,依赖文件分块长度信息和torrent种子文件信息所带来的额外网络开销,达到减少信息传输通信量,提高P2P下文件共享下载的通信效率。为了实现上述目的,本专利技术提供的技术方案为:提供一种P2P协议中文件共享下载方法,包括如下步骤:文件发布步骤,发布文件并生成URL,并将URL通知Tracker,P2P客户端(Peer)直接通过URL定位所需要下载的文件并下载,Tracker在响应请求时,生成一个唯一标识(SessionID)区分标记该文件,且同时指定该文件的分块(Block)数量信息,Peer之间的文件通过共享SessionID定位文件;文件分块信息获取步骤,Peer请求获取文件分块信息或通知其它Peer其拥有某个或某些分块信息时,通过修改信息参数减少信息长度,且所述信息中只需包含分块的索引信息,由信息接收者Peer根据分块规则自行计算分块在文件中的开始位置和长度;文件分块信息索引下载步骤,提供共享下载的Peer在接收到请求获取分块的Peer消息后,根据消息中包含的分块索引信息,按照相同的规则,计算所请求或通知的分块在文件中的开始位置,并根据统一规则得到该分块的结束位置,并利用所计算的位置信息,将请求的分块数据传输给请求者Peer;文件发布步骤,根据所述URL可以利用HTTP协议定位和访问该文件并下载,URL的格式根据发布者自身提供下载服务的访问协议要求生成。所述的SessionID是一个128位的文件唯一标识符,Tracker可以根据Peer请求的URL,使用SHALHash来生成。所述的SessionID在系统中是唯一性存在,下载同一文件的所有Peer拥有相同的SessionID,且每个Peer可以根据共享任务,拥有多个不同的SessionID。所述Block数量由Tracker指定,在Tracker没有指定Block划分数量时选择一个默认数值。所述文件分块(Block)的最大分块数不超过232-1块。根据规定,除了最后一个分块外,其他所有分块大小是相同的,根据文件大小和分块数量,可以计算出每个分块长度和该分块在文件中的开始、结束位置;若文件长度刚好是分块书的整数倍,则所有分块Block都是等长的,其中各个Peer和Tracker对所述的文件分块(Block)长度和位置的计算使用相同的标准和方法,其计算结果是相同的。针对大文件,如果文件分块(Block)数量在满足限定范围要求时,每个分块大小过大而影响Peer之间的共享效率,则可以将文件分成几个子文件,实现分层分块,即可以进行1级分块,然后针对每个1级分块继续进行2级分块,依次类推。所述的分块大小阀值、分块数量限值、分块级数限制等参数信息可以配置文件作为Tracker的输入。文件分块信息获取步骤,所述的分块信息包含有多个分块索引,可以将多个索引信息进行格式编码,以进一步减少信息长度。文件分块信息索引下载分块步骤,在记录自己拥有的分块和邻居Peer拥有的分块时,只需记录对应的分块的索引,无需记录对应分块的开始位置和长度,减少了Peer拥有分块的记录内存占用。所述P2P协议中文件共享下载方法不支持扩展的Peer或Tracker可以在P2P协议握手时,通过版本识别,以实现多版本协议兼容。与现有技术相比,本专利技术的有益效果:采用本专利技术所述方法的系统,通过URL文件定位、SessionID文件统一标识和分块Block的统一计算,不但减少了种子信息文件的传输开销,还在提供P2P文件共享下载的同时,额外提供了HTTP的问价下载支持;同时在P2P文件共享下载时,将分块请求位置计算由请求者转移到提供者,减少了传输的分块信息长度,提高网络信息的传输效率,同时通过握手时候的版本识别,兼顾了协议的兼容性。通过以下的描述并结合附图,本专利技术将变得更加清晰,这些附图用于解释本专利技术的实施例。附图说明图1为本专利技术实施例扩展的基本流程图。图2为本专利技术实施例分块计算的基本流程图。具体实施方式现在参考附本文档来自技高网
...

【技术保护点】
一种P2P协议中文件共享下载方法,其特征在于,包括如下步骤:文件发布步骤,发布文件并生成URL,并将URL通知Tracker,P2P客户端(Peer)直接通过URL定位所需要下载的文件并下载,Tracker在响应请求时,生成一个唯一标识(Session ID)区分标记该文件,且同时指定该文件的分块(Block)数量信息,Peer之间的文件通过共享Session ID定位文件;文件分块信息获取步骤,Peer请求获取文件分块信息或通知其它Peer其拥有某个或某些分块信息时,通过修改信息参数减少信息长度,且所述信息中只需包含分块的索引信息,由信息接收者Peer根据分块规则自行计算分块在文件中的开始位置和长度;文件分块信息索引下载步骤,提供共享下载的Peer在接收到请求获取分块的Peer消息后,根据消息中包含的分块索引信息,按照相同的规则,计算所请求或通知的分块在文件中的开始位置,并根据统一规则得到该分块的结束位置,并利用所计算的位置信息,将请求的分块数据传输给请求者Peer。

【技术特征摘要】
1.一种P2P协议中文件共享下载方法,其特征在于,包括如下步骤:
文件发布步骤,发布文件并生成URL,并将URL通知Tracker,P2P客户端(Peer)直接通过URL定位所需要下载的文件并下载,Tracker在响应请求时,生成一个唯一标识(SessionID)区分标记该文件,且同时指定该文件分块(Block)数量信息,Peer之间的文件通过共享SessionID定位文件;
文件分块信息获取步骤,Peer请求获取文件分块信息或通知其它Peer其拥有某个或某些分块信息时,修改信息参数减少信息长度,且所述分块信息中只需包含分块的索引信息,由信息接收者Peer根据分块规则自行计算分块在文件中的开始位置和长度;
文件分块信息索引下载步骤,提供共享下载的Peer在接收到请求获取分块的Peer消息后,根据消息中包含的分块索引信息,按照相同的规则,计算所请求或通知的分块在文件中的开始位置,并根据统一规则得到该分块的结束位置,并利用所计算的位置信息,将请求的分块数据传输给请求者Peer;
其中,所述Block数量由Tracker指定,在Tracker没有指定Block划分数量时选择一个默认数值,所述文件分块(Block)的最大分块数不超过232-1块;
除了最后一个分块外,其他所有分块大小是相同的,根据文件大小和分块数量,可以计算出每个分块长度和该分块在文件中的开始、结束位置;若文件长度刚好是分块数的整数倍,则所有分块Block都是等长的,其中各个Peer和Tracker对所述的文件分块(Block)长度和位置的计算使用相同的标准和方法,其计算结果是相同的;
针对大文件,如果文件分块(Block)数量在满足限定范围要求时,每个分块大小过大而影响Peer之间的共享效率,则可以将文件分成几个子文件...

【专利技术属性】
技术研发人员:范正海周宝忠郑仁圳
申请(专利权)人:曦威胜科技开发深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1