基于P2P网络的文件下载方法、电子设备和存储介质与流程

文档序号:15394911发布日期:2018-09-08 01:57阅读:165来源:国知局
本发明涉及p2p文件下载技术,尤其涉及基于p2p网络的文件下载方法、电子设备和存储介质。
背景技术
::p2p(peer-to-peer)网络,即对等网络利用分布式的思想,充分调用系统中客户节点的资源,为分布在众多不同地域上的客户节点提供服务,各节点在作为客户机获取数据的同时,也作为服务器为其他节点提供服务。随着数据安全性和大型化,p2p网络在数据的网络备份和下载方面应用越来越广泛。现有的基于p2p网络的文件下载通常以全文件为调度窗口,随机分配下载路径请求数据块。但是由于p2p网络中不同下载路径的传输速度不同,因此下载节点接收的数据块不是连续的,而是离散的,随机的。从而数据保存时会乱序写磁盘,因此磁盘io较高而且下载的文件碎片较多,不利于下载文件正确性的保证。技术实现要素:为了克服现有技术的不足,本发明的目的之一在于提供基于p2p网络的文件下载方法,其能解决现有的p2p文件下载方式因随机调度而乱序写磁盘引起的高io情况,以及文件碎片较多的问题。本发明的目的之二在于提供电子设备,其能解决现有的p2p文件下载方式因随机调度而乱序写磁盘引起的高io情况,以及文件碎片较多的问题。本发明的目的之三在于提供存储介质,存储有计算机程序,其能解决现有的p2p文件下载方式因随机调度而乱序写磁盘引起的高io情况,以及文件碎片较多的问题。本发明的目的之一采用以下技术方案实现:基于p2p网络的文件下载方法,包括以下步骤:根据待下载文件的任务信息创建调度窗口;将所述调度窗口划分为多个片段;发送各片段的数据请求;将接收的数据写入相应的片段;若所述调度窗口头部一侧连续的n个片段均写入数据,则将所述调度窗口的头部滑动至所述n个片段的尾部,n为满足滑动条件的自然数。进一步地,所述根据待下载文件的任务信息创建调度窗口,具体为:所述待下载文件越大,创建的调度窗口越小。进一步地,所述根据待下载文件的任务信息创建调度窗口之后,还包括以下步骤:将所述调度窗口的头部与所述任务信息中的下载起始位置对齐。进一步地,所述下载起始位置具体为:若所述待下载文件为新建任务,则所述下载起始位置为所述待下载文件的文件头位置;若所述待下载文件为续下载任务,则所述下载起始位置为所述待下载文件未下载部分的起始位置。进一步地,所述发送各片段的数据请求,具体为:向邻居节点发送各片段的数据请求。进一步地,所述将接收的数据写入相应的片段之后,还包括以下步骤:计算发送所述数据的邻居节点的质量分数。进一步地,当再次发送各片段的数据请求时,优先向质量分数较高的邻居节点发送各片段的数据请求。进一步地,所述计算发送所述数据的邻居节点的质量分数,具体包括以下步骤:获取发送所述数据的邻居节点的标识;获取所述数据的传输延时;根据所述传输延时计算所述邻居节点的质量分数。进一步地,所述n为满足滑动条件的自然数,具体为:n不小于所述调度窗口的片段数目与预设比例的乘积。进一步地,所述若所述调度窗口头部一侧连续的n个片段均写入数据,则将所述调度窗口的头部滑动至所述n个片段的尾部,n为满足滑动条件的自然数之后,还包括以下步骤:若滑动后调节窗口的尾部在所述任务信息中的下载结束位置之后,则调整所述调节窗口以使调整后的调节窗口的尾部与所述下载结束位置对齐。本发明的目的之二采用以下技术方案实现:电子设备,包括存储器、处理器以及存储在存储器中的程序,所述程序被配置成由处理器执行,处理器执行所述程序时实现上述基于p2p网络的文件下载方法的步骤。本发明的目的之三采用以下技术方案实现:存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于p2p网络的文件下载方法的步骤。相比现有技术,本发明的有益效果在于:通过针对下载任务创建调度窗口,然后先下载调度窗口内的片段数据,且在当调度窗口头部一侧有连续的若干片段已写入数据时将调度窗口即时滑动,因此已下载数据具有更好的连续性,将下载数据写入磁盘时硬盘不会频繁的调头,前冲,急停,而且可以降低磁盘写入过程的io,下载的文件碎片更少,连续块更多,便于校验文件的正确性。附图说明图1为本发明实施例一的基于p2p网络的文件下载方法的流程示意图;图2为图1中滑动调度窗口的示意图;图3为图2中a区域的局部放大图;图4为本发明实施例二的基于p2p网络的文件下载方法的流程示意图;图5为本发明实施例三的电子设备的结构示意图。具体实施方式下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。实施例一如图1为基于p2p网络的文件下载方法,包括以下步骤:步骤s110、根据待下载文件的任务信息创建调度窗口。待下载文件可以是p2p网络中其他节点提供的文件,也可以是本节点备份在p2p网络上其他节点上的文件。待下载文件的任务信息可以包括待下载文件的文件名称,文件的大小,还可以包括tracker服务器的地址,用于验证数据完整性与正确性的片段校验码sha1等。在另一实施例中,p2p网络中不需要tracker服务器,可以通过现有的分布式哈希表(distributedhashtable,dht)技术实现dht网络中文件的寻址。步骤s120、将所述调度窗口划分为多个片段。例如调度窗口的长度为50mb,则可以将该调度窗口划分为多个大小为256kb的片段。为了更高效方便地传输,还可以进一步把每一个片段分成大小相等,长度更小的子片段,例如每个子片段的大小可以为16kb。不同的片段或者子片段可以向p2p网络中不同的节点请求。步骤s130、发送各片段的数据请求。作为优选的实施方式,步骤s130发送各片段的数据请求,具体为:下载节点向邻居节点发送各片段的数据请求。在本发明实施例中,下载节点选择邻居节点的策略是由tracker服务器从它拥有的节点列表中随机地选择一定数量的节点作为待选节点返回给该下载节点,然后由该下载节点再从待选节点中随机地选择若干个节点来作为它的邻居节点。下载节点通过tracker服务器获取邻居节点的列表之后,下载节点和各邻居节点之间就可以进行通讯了,这才实现了真正意义上的p2p结构。节点之间的通讯协议是基于tcp协议的。两个节点之间成功的建立连接后,还需要与对方进行握手确认,在确认成功后节点之间就可以传递消息。作为优选的实施方式,下载节点可以随机向多个节点处请求不同的片段。可以适应p2p网络中节点的不确定性,从而最大化调度窗口内数据的下载速度。片段或子片段数据的请求算法对文件下载的性能有着很重要的影响。下载节点根据片段数据的请求算法来决定优先请求哪个片段或子片段的数据。作为优选的实施方式,下载节点一旦请求了某个片段的子片段,则该片段剩下的子片段就优先被请求和下载,这样,可以尽快获得一个完整的片段。进一步地,下载在请求下一个片段时,可以优先选择邻居节点拥有最少的那个片段,可以保证最少的片段在p2p网络中的快速分散,避免因为某几个节点的失效而造成某个片段缺失。作为优选的实施方式,由于下载节点有可能向一个上传速率很慢的邻居节点请求了一个片段,从而造成下载的延迟;因此为了防止这种情况,当调度窗口内的大部分片段或子片段均被下载保存,只剩了少量片段或子片段的数据没有接收到,那么下载节点可以向所有的邻居节点请求该片段或子片段的数据。一旦该片段或子片段的数据接收完成,就发送取消数据请求的信息,以免造成带宽的浪费。步骤s140、将接收的数据写入相应的片段。作为优选的实施方式,各片段的数据下载完成后需要进行验证,可以利用哈希值来验证成功后才将接收的数据写入相应的片段。从而保证下载数据的正确性。步骤s150、若所述调度窗口头部一侧连续的n个片段均写入数据,则将所述调度窗口的头部滑动至所述n个片段的尾部,n为满足滑动条件的自然数。如图2和图3所示,该调度窗口被划分为50个片段,且该调度窗口的头部100连续有20个片段均已写入数据,第21-23个片段还没有数据写入,可以将调度窗口向后滑动20个片段的位置,使该调度窗口的头部与第20个片段的尾部200对齐。因此调度窗口后侧又多出了位置,可以重复步骤s120-步骤s150。但是此时仅需将调度窗口后侧多出的位置划分为20个片段;而且该滑动后的调度窗口中既包含了还没有写入数据的第1-3个片段等,也包括已经写入数据的第4-8个片段等,因此只需要发送还没有写入数据的各片段的数据请求。作为优选的实施方式,步骤s150中的n为满足滑动条件的自然数,具体为:n不小于所述调度窗口的片段数目与预设比例的乘积。例如预设比例为0.1,调度窗口的片段数目为50,则当调度窗口头部一侧有不少于5个片段已写入数据,就进行一次滑动操作。本发明实施例提供的基于p2p网络的文件下载方法通过针对下载任务创建调度窗口,然后先下载调度窗口内的片段数据,且在当调度窗口头部一侧有连续的若干片段已写入数据时将调度窗口即时滑动,因此已下载数据具有更好的连续性,待下载文件是视频数据或音频数据时,可以实现边下载编播放;将下载数据写入磁盘时硬盘不会频繁的调头,前冲,急停,而且可以降低磁盘写入过程的io,下载的文件碎片更少,连续块更多,便于校验文件的正确性。实施例二如图4所示的基于p2p网络的文件下载方法,包括以下步骤:步骤s210、根据待下载文件的任务信息创建调度窗口。作为优选的实施方式,可以根据待下载文件的大小创建不同长度的调度窗口。由于在下载过程中,会出现调度窗口内的某些数据如某一个或者多个字节,或者几m的内容无法及时下载或者下载回来的数据总是错的。而基于p2p网络的文件下载方式中,各数据是分别向网络中的对等节点请求下载的,因此作为优选的实施方式,待下载文件越大,就可以将调度窗口创建的越小。此时该调度窗口种的数据较少,因此同一数据可以向更多的对等节点请求,各数据被及时、正确下载的几率更高。从而可以保证调度窗口内的数据可以更快的下载完成,减少后期对于未下载数据或下载错误数据的下载和写入操作,因而进一步降低了磁盘磁头的摆动。步骤s220、将所述调度窗口的头部与所述任务信息中的下载起始位置对齐。作为优选的实施方式,所述下载起始位置具体为:若所述待下载文件为新建任务,则所述下载起始位置为所述待下载文件的文件头位置。若所述待下载文件为续下载任务,则所述下载起始位置为所述待下载文件未下载部分的起始位置。有些下载任务是新建的,下载的数据可以由系统分配的存储位置开始写入,此时下载起始位置为所述待下载文件的文件头位置。有些下载任务在下载一部分数据后由于用户关机等操作会暂停,再开始继续下载剩余部分,这种下载任务即为续下载任务,此时下载起始位置为所述待下载文件未下载部分的起始位置。因此可以既可以实现新建任务的文件下载,也可以实现续下载任务的文件下载。步骤s230、将所述调度窗口划分为多个片段。步骤s240、发送各片段的数据请求。步骤s250、将接收的数据写入相应的片段。作为本发明实施例的进一步改进,步骤s250将接收的数据写入相应的片段之后,还包括以下步骤:步骤s201、计算发送所述数据的邻居节点的质量分数。作为优选的实施方式,步骤s201计算发送所述数据的邻居节点的质量分数,具体包括以下步骤:步骤s2011、获取发送所述数据的邻居节点的标识。下载节点从邻居节点接收数据时可以获取到发送各数据的邻居节点的标识,从而可以统计从某邻居节点下载了多少数据,也可以统计下载节点与该邻居节点之间的网络质量参数。步骤s2012、获取所述数据的传输延时。传输延时可以用于评价邻居节点与该下载节点之间通讯的质量。步骤s2013、根据所述传输延时计算所述邻居节点的质量分数。传输延时越长,则相应邻居节点的质量分数越低。作为优选的实施方式,当再次发送各片段的数据请求时,优先向质量分数较高的邻居节点发送各片段的数据请求。即如果下载节点可以更快的从某邻居节点下载数据,就向该邻居节点请求更多的数据,从而可以进一步提升数据下载速度。步骤s260、若所述调度窗口头部一侧连续的n个片段均写入数据,则将所述调度窗口的头部滑动至所述n个片段的尾部,n为满足滑动条件的自然数。步骤s210、s230、s240、s250和s260,分别对应实施例一中的s110、s120、s130、s140和s150,不再赘述。作为优选的实施方式,步骤s260若所述调度窗口头部一侧连续的n个片段均写入数据,则将所述调度窗口的头部滑动至所述n个片段的尾部,n为满足滑动条件的自然数之后,还包括以下步骤:步骤s270、若滑动后调节窗口的尾部在所述任务信息中的下载结束位置之后,则调整所述调节窗口以使调整后的调节窗口的尾部与所述下载结束位置对齐。当文件将要下载完成时,调节窗口滑动后可能会越过待下载文件的结束标志,即下载结束位置;因此可以调整调节窗口的长度,使得调节窗口的尾部与所述下载结束位置对齐,当调整后的调节窗口内的所有片段数据下载完成则该带下载文件下载完毕。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法,如:存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述基于p2p网络的文件下载方法的步骤。本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等,如实施例三。实施例三如图5所示电子设备,包括存储器300、处理器400以及存储在存储器300中的程序,所述程序被配置成由处理器400执行,处理器400执行所述程序时实现上述基于p2p网络的文件下载方法的步骤。本实施例中的电子设备与前述实施例中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构及实施过程,为了说明书的简洁,在此就不再赘述。本发明实施例提供的电子设备,可以通过针对下载任务创建调度窗口,然后先下载调度窗口内的片段数据,且在当调度窗口头部一侧有连续的若干片段已写入数据时将调度窗口即时滑动,因此已下载数据具有更好的连续性,待下载文件是视频数据或音频数据时,可以实现边下载编播放;将下载数据写入磁盘时硬盘不会频繁的调头,前冲,急停,而且可以降低磁盘写入过程的io,下载的文件碎片更少,连续块更多,便于校验文件的正确性。上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1