CN111212114B - 一种下载资源文件的方法和装置 - Google Patents

一种下载资源文件的方法和装置 Download PDF

Info

Publication number
CN111212114B
CN111212114B CN201911319000.7A CN201911319000A CN111212114B CN 111212114 B CN111212114 B CN 111212114B CN 201911319000 A CN201911319000 A CN 201911319000A CN 111212114 B CN111212114 B CN 111212114B
Authority
CN
China
Prior art keywords
downloading
data block
resource file
target resource
data
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
CN201911319000.7A
Other languages
English (en)
Other versions
CN111212114A (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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201911319000.7A priority Critical patent/CN111212114B/zh
Priority to PCT/CN2020/074959 priority patent/WO2021120375A1/zh
Priority to EP20716685.1A priority patent/EP3860092A4/en
Priority to US16/849,715 priority patent/US11102272B2/en
Publication of CN111212114A publication Critical patent/CN111212114A/zh
Application granted granted Critical
Publication of CN111212114B publication Critical patent/CN111212114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms

Abstract

本发明公开了一种下载资源文件的方法和装置,属于数据传输技术领域。所述方法应用于对等网络中的客户端,所述方法包括:接收目标资源文件的下载请求,确定所述目标资源文件的数据块下载顺序;根据所述数据块下载顺序和所述目标资源文件的数据块消费进度,实时调整所述目标资源文件的各个数据块的下载优先度;基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块。采用本发明,既可以保证资源文件的下载效率,又可以提高对等网络中优质节点的资源利用率。

Description

一种下载资源文件的方法和装置
技术领域
本发明涉及数据传输技术领域,特别涉及一种下载资源文件的方法和装置。
背景技术
P2P(端对端,peer-To-peer)技术是一种基于对等网络进行数据传输的通讯技术,建立了一种客户端对客户端的直接通信机制,在对等网络中,每一节点既作为客户端,又充当其它节点的服务端。为了减轻CDN节点的负载压力,同时节省CDN流量成本,目前已在CDN系统的基础上引入基于对等网络的资源文件的数据块传输方案。
CDN服务方可以预先在对等网络中分布式部署大量性能良好的设备作为超级节点,或者将一些网络质量、设备性能等各方面较好的客户端选取作为超级节点,超级节点可以预先从CDN服务器下载并存储资源文件的数据块。这样,当需要获取某一资源文件时,客户端可以向Tracker服务器请求节点列表,Tracker服务器可以向客户端反馈已存储有相应资源文件的节点(可以包括普通节点、超级节点和/或CDN节点)的节点信息。从而,客户端可以选取部分节点并与之建立数据连接,从而从这些节点处获取其上存储的资源文件的数据块。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
客户端在同时通过CDN节点、超级节点和普通节点下载资源文件的数据块前,往往根据到各个节点间网络线路的带宽状态来选取节点。这样,一方面,如果被选取的节点上的资源文件不完整,则会大大影响资源文件的下载效率;另一方面,客户端大概率选取CDN节点或超级节点下载资源文件,这样,会导致CDN节点和超级节点负载过高,而大量的普通节点长期闲置,对等网络的资源利用率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种下载资源文件的方法和装置。所述技术方案如下:
第一方面,提供了一种下载资源文件的方法,所述方法应用于对等网络中的客户端,所述方法包括:
接收目标资源文件的下载请求,确定所述目标资源文件的数据块下载顺序;
根据所述数据块下载顺序和所述目标资源文件的数据块消费进度,实时调整所述目标资源文件的各个数据块的下载优先度;
基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块。
第二方面,提供了一种下载资源文件的装置,所述装置应用于对等网络,所述装置包括:
下载准备模块,用于接收目标资源文件的下载请求,确定所述目标资源文件的数据块下载顺序;
下载调整模块,用于根据所述数据块下载顺序和所述目标资源文件的数据块消费进度,实时调整所述目标资源文件的各个数据块的下载优先度;
下载控制模块,用于基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块。
第三方面,提供了一种客户端,所述客户端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的下载资源文件的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的下载资源文件的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,接收目标资源文件的下载请求,确定目标资源文件的数据块下载顺序;根据数据块下载顺序和目标资源文件的数据块消费进度,实时调整目标资源文件的各个数据块的下载优先度;基于调整后的各个数据块的下载优先度,通过多个网络质量不同的下载途径下载目标资源文件的数据块。这样,客户端在利用P2P技术下载资源文件时,为不同的数据块配置不同的下载优先度,再以下载优先度为标准,选用不同网络质量的下载途径同时下载资源文件,从而可以对各个下载途径的数据下载过程进行有效控制,既可以保证资源文件的下载效率,又可以提高对等网络中优质节点的资源利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种对等网络的架构示意图;
图2是本发明实施例提供的一种下载资源文件的方法流程图;
图3是本发明实施例提供的一种设置下载优先级的原理示意图;
图4是本发明实施例提供的一种设置下载优先级的原理示意图;
图5是本发明实施例提供的一种下载资源文件的装置结构示意图;
图6是本发明实施例提供的一种客户端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种下载资源文件的方法,该方法可以应用于对等网络中的客户端,并具体由安装在客户端上的SDK辅助程序执行。其中,对等网络可以包括大量节点,每个节点都可以作为数据下载方(即客户端),利用P2P技术从其它节点处以数据块的形式下载资源文件,同时也可以作为数据提供方(即服务端),利用P2P技术将已存储的资源文件以数据块的形式提供给其它节点,对等网络中的节点可以是CDN节点、超级节点或者普通节点;客户端可以同时与多个服务端建立数据连接,并支持从多个服务端处同时下载资源文件的数据块;SDK辅助程序可以是独立于P2P下载程序之外的辅助程序,用于获取P2P下载程序的资源文件的下载请求,并基于本实施例公开的方法下载相应的资源文件。
对等网络中还可以包括配置服务器和Tracker服务器,其中,配置服务器主要用于记录并对外提供Tracker服务器的网络地址,而本申请中,配置服务器还可以用于存储资源文件的下载配置信息,下载配置信息至少可以包括资源文件的数据块信息,并视情况还可以包括资源文件的最低消费速率和各个下载途径对应的数据缓存容量。资源文件的数据块信息可以是资源文件的数据块的总数和大小,以及各个数据块在资源文件中对应的数据位置;资源文件的最低消费速率可以是资源文件的提供方设置的,在下载资源文件时P2P下载程序所需的数据块的获取速度下限;一个下载途径下可以存在多个网络质量相同或相近的数据连接,不同下载途径按照网络质量的不同而区分,客户端可以同时通过多个下载途径下的多个数据连接,从其它节点下载资源文件的数据块;下载途径对应的数据缓存容量可以是资源文件的提供方设置的,表示客户端通过不同下载途径下载的数据块所对应的存储空间的大小,而不同的资源文件,相同下载途径对应的数据缓存容量的大小也可以不同。
本实施例中以下载途径包括从CDN节点下载、从超级节点下载和从普通节点下载(可以依次简称为CDN途径、P2SP途径和P2P途径)三种下载途径为例进行说明,不同下载途径间主要以网络质量的不同作为主要的区分方式,而下载途径为两种、四种或更多种的情况下的处理与之类似,不再一一针对性地进行说明。对等网络的具体架构可以如图1所示。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,接收目标资源文件的下载请求,确定目标资源文件的数据块下载顺序。
在实施中,用户想要通过客户端获取目标资源文件时,可以打开客户端上安装的P2P下载程序,在P2P下载程序中输入目标资源文件的标识信息,从而P2P下载程序可以开始执行目标资源文件的下载任务。同时,客户端上的SDK辅助程序可以在目标资源文件的下载任务开始后自行启动,用于辅助P2P下载程序下载目标资源文件。具体的,SDK辅助程序可以接收到P2P下载程序发送的目标资源文件的下载请求,根据下载请求中携带的目标资源文件的标识信息,从对等网络中的配置服务器处获取目标资源文件的数据块信息。当然,在其它实施例中,SDK辅助程序还可以通过其它方式获取目标资源文件的数据块信息,如P2P下载程序发送的下载请求中携带相应的数据块信息,或者SDK辅助程序从对等网络中的其它节点或服务器处获取相应的数据块信息。
之后,SDK辅助程序可以基于数据块信息确定目标资源文件的数据块下载顺序。一般来说,目标资源文件的数据块下载顺序可以根据数据块在资源文件中对应的数据位置进行确定,即默认从数据位置靠前的数据块开始逐个往后下载;而特殊情况下,还可以按照实际需求,自行调整目标资源文件的数据块下载顺序,如需要先下载指定部分的数据内容,而开头部分的数据内容不重要,则可以将指定部分对应的数据块下载顺序提前,而将开头部分对应的数据块下载顺序调后。值得一提的是,本实施例中主要介绍了资源文件的下载过程,但该过程同样适用于仅下载资源文件中的部分数据块的过程,区别仅在于数据块下载顺序的确定过程。
此外,SDK辅助程序在获取到了目标资源文件的数据块信息后,可以根据其中记录的Tracker服务器的访问信息,触发客户端向Tracker服务器发起连接,以获取目标资源文件的节点列表。进而,SDK辅助程序可以在节点列表中选取CDN节点、超级节点和普通节点,并触发客户端从这些节点处下载资源文件。
步骤202,根据数据块下载顺序和目标资源文件的数据块消费进度,实时调整目标资源文件的各个数据块的下载优先度。
在实施中,SDK辅助程序在确定了目标资源文件的数据块下载顺序之后,可以进一步获取目标资源文件的数据块消费进度,然后根据上述数据块下载顺序和数据块消费进度,实时调整目标资源文件的各个数据块的下载优先度。其中,数据块的下载优先度属于下载过程中的中间数据,可以是仅用来完成下载的判断标准,无需生成具体的数值;下载顺序越靠前的、需要在越短的时间内完成下载的数据块,其下载优先度越高;多个数据块可以对应同一个下载优先度,也可以每个数据块各自对应一个下载优先度。SDK辅助程序在下载完某个数据块之后,将该数据块提供给P2P下载程序,即可称为该数据块被消费。具体来说,在下载初期,数据块消费进度为零,那么数据块下载顺序最靠前的数据块的下载优先度最高;在下载过程中,如果数据块消费进度为已向P2P下载程序提供完第n个数据块,那么第n+1个及其之后的多个数据块的下载优先度最高,其中,n和n+1均为数据块下载顺序的排序编号,取值为正整数。
步骤203,基于调整后的各个数据块的下载优先度,通过多个网络质量不同的下载途径下载目标资源文件的数据块。
在实施中,SDK辅助程序在调整各个数据块的下载优先度的同时,可以基于各个数据块的下载优先度,以及各个下载途径的网络质量,通过多个下载途径下载目标资源文件的数据块。首先,SDK辅助程序可以调取预先建立的不同网络质量的下载途径与下载优先度之间的对应关系。如表1所示:其中一种网络质量的下载途径可以对应一个或多个下载优先度,下载优先度以1为最高,后续2至n的下载优先度依序下降;网络质量以下载途径A的网络质量最高,后续下载途径的网络质量依序下降;此外,n的下载优先度最低,暂不对相应的数据块进行下载,故而对应的下载途径为“无”。
Figure BDA0002326631880000061
之后,SDK辅助程序可以根据上述对应关系,确定各个下载途径对应的下载优先度,进而确定各个下载途径对应的数据下载范围。这样,对于每个下载途径,SDK辅助程序均可以通过该下载途径下载其对应的数据下载范围内的数据块。
细节化而言,假设存在CDN途径、P2SP途径和P2P途径这三种网络质量不同的下载途径,则可以将数据块的下载优先度按照从高到低的顺序分为“高”、“中”、“初”、“低”四组。然后,SDK辅助程序可以通过网络质量最高的下载途径,即从CDN途径下载“高”组对应的数据块,通过网络质量中等的下载途径,即从P2SP途径下载“中”组对应的数据块,同时通过网络质量较低的下载途径,即从P2P途径下载“初”组对应的数据块,而对于“低”组对应的数据块,则可以先暂时不进行下载。之后,SDK辅助程序可以将下载到的数据块提供给P2P下载程序,从而实现目标资源文件的下载处理。
进一步的,由于同一数据块的下载优先度会随着数据块消费进度的变化而变化,在通过某一网络质量的下载途径下载某一数据块时,可能会存在下载成功或失败的两种情况。对于下载成功的数据块来说,该数据块的下载优先度即使发生变化,也无需再重复进行下载;而对于下载失败的数据块来说,该数据块的下载优先度发生变化后,SDK辅助程序可以通过新的下载途径进行下载。
可选的,在设置数据块的下载优先度时,可以参考各个下载途径对应的数据缓存容量,相应的处理可以如下:根据数据块下载顺序和目标资源文件的数据块消费进度,以及各个下载途径对应的数据缓存容量和网络质量,实时调整目标资源文件的各个数据块的下载优先度。
在实施中,由于客户端的存储空间有限,一般情况下可以针对各个下载途径设置对应的数据缓存容量,当通过某个下载途径已下载的数据块总量达到对应的数据缓存容量时,SDK辅助程序则停止通过该下载途径继续下载数据块。而SDK辅助程序在将已下载完的数据块提供给P2P下载程序,并从缓存空间中将相应的数据块删除后,可以继续通过下载途径下载数据块。这样,在确定各个数据块的下载优先度时,SDK辅助程序可以根据数据块下载顺序和目标资源文件的数据块消费进度,以及各个下载途径对应的数据缓存容量和网络质量,实时调整目标资源文件的各个数据块的下载优先度。
其过程中,SDK辅助程序可以先根据数据下载顺序和目标资源文件的数据块消费进度,确定即将需要提供给P2P下载程序的数据块,然后再依据各个下载途径对应的数据缓存容量,实时确定出各个下载途径对应的数据下载窗口。当数据块处于某一数据下载窗口内时,SDK辅助程序可以通过对应的下载途径下载该数据块。之后,SDK辅助程序可以根据各个下载途径的网络质量,为不同数据下载窗口内的数据块设置不同的下载优先度,其中,下载途径的网络质量越高,其对应的数据下载窗口中的数据块的下载优先度越高。这样,通过数据缓存容量的设定,既可以有效控制不同下载途径的下载过程,还可以节省客户端的缓存资源,避免了因对大量的数据块进行缓存,而导致的客户端数据读写卡顿情况。
可参考图3所示,假设存在CDN途径、P2SP途径和P2P途径这三种网络质量不同的下载途径,对应的数据缓存容量分别相当于目标资源文件的“5个”、“6个”、“7个”数据块的大小,数据块下载顺序如图中数据块上所标数字为准。当前的数据块消费进度为第6个数据块,故而CDN途径对应的数据下载窗口(简称CDN下载窗口)包含第7个到第11个数据块,其下载优先度可以为高;P2SP途径对应的数据下载窗口(简称P2SP下载窗口)包含第12个到第17个数据块,其下载优先度可以为中;P2P途径对应的数据下载窗口(简称P2P下载窗口)包含第18个到第24个数据块,其下载优先度可以为初;第25个及其后续的数据块的下载优先度则为低。
可选的,可以通过设置数据块的下载优先度,以保证数据资源文件的最低消费速率,相应的处理可以如下:根据数据块下载顺序和目标资源文件的数据块消费进度,以及目标资源文件的最低消费速率,实时调整目标资源文件的各个数据块的下载优先度。
在实施中,在对等网络中,可能会为了实现一些资源文件的功能,而针对资源文件设定相应的数据块的最低消费速率。例如,某些视频类资源文件支持边下载边播放,那么为了保证视频播放的流畅性,需要设置一定的最低消费速率,也即仅当SDK辅助程序向P2P下载程序提供数据块的速率大于该最低消费速率时,可以实现视频的流畅播放。这样,SDK辅助程序可以从配置服务器处获取目标资源文件的最低消费进度,然后再结合目标资源文件的数据块下载顺序和数据块消费进度,不断调整目标资源文件的各个数据块的下载优先度。
具体而言,SDK辅助程序可以先根据目标资源文件的最低消费速率,和目标资源文件的预设数据块大小,计算预设的各个下载优先度对应的数据块覆盖范围,即每个下载优先度对应的数据块的个数。之后,SDK辅助程序可以根据数据块下载顺序和目标资源文件的数据块消费进度,在目标资源文件的数据块队列中,实时确定各个数据块覆盖范围对应的数据块,从而实现对目标资源文件的各个数据块的下载优先度的调整。
可参考图4所示,目标资源文件的最低消费速率为150M/s,预设数据块大小为每块25M,则SDK辅助程序需要每秒至少提供6个数据块;数据块下载顺序如图中数据块所标编号为准,当前的数据块消费进度为第6个数据块。而预设的有“高‘”、“中’”、“初”、“低”四个下载优先度,可以设置每个下载优先度对应的数据块覆盖范围均为6个数据块。那么第7个到第12个数据块的下载优先度为“高”,第13个到第18个数据块的下载优先度为中,第19个到第24个数据块的下载优先度为初,第25个及其后续的数据块的下载优先度即为低。当然,在设定每个下载优先度对应的数据块覆盖范围时,数据块消费速度仅用于参考,数据块覆盖范围的具体大小可以视不同场景需要而进行调整。
可选的,在通过多个下载途径下载数据块时,可以参考各个下载途径的数据下载速度,对下载途径的选择进行一定调整,相应的,步骤203的处理可以如下:根据各个下载途径的数据下载速度和目标资源文件的最低消费速率,设置各个下载途径对应的优先度提升阈值;基于调整后的各个数据块的下载优先度,和不同下载途径的网络质量,确定各个下载途径对应的数据下载范围;对于任一数据下载范围内的数据块,基于优先度提升阈值和随机数选择目标下载途径,并通过目标下载途径下载数据块。
在实施中,SDK辅助程序可以在下载目标资源文件的数据块的同时,定时检测各个下载途径的数据下载速度,如可以统计预设时长内通过下载途径A下载到的数据总量,然后可以将计算出的预设时长内的平均下载速度作为下载途径A的数据下载速度。这样,SDK辅助程序可以根据检测到的各个下载途径的数据下载速度,和目标资源文件的最低消费速率,设置各个下载途径对应的优先度提升阈值。其中,由于网络质量最高的下载途径对应最高的下载优先度,无需提升其对应的下载优先度,故而可以不检测该下载途径的数据下载速度,其也不存在对应的优先度提升阈值。具体的,以存在CDN途径、P2SP途径和P2P途径这三种网络质量不同的下载途径为例,数据下载速度依次为Vcdn、Vp2sp、Vp2p,最低消费速率为Vmin。当Vp2p≥Vmin时,P2P途径的优先度提升阈值取值最高,P2SP途径的优先度提升阈值取值最高;当Vp2p<Vmin且Vp2sp+Vp2p≥Vmin时,P2P途径的优先度提升阈值可以根据Vp2p与Vmin之间的差值一定程度的缩减,P2SP途径的优先度提升阈值取值最高;当Vp2sp+Vp2p<Vmin时,P2P途径的优先度提升阈值可以根据Vp2p与Vmin之间的差值大幅地缩减,P2SP途径的优先度提升阈值可以根据Vp2sp+Vp2p与Vmin之间的差值一定程度地缩减。值得一提的是,上述过程中优先度提升阈值的具体数值可以是基于经验数据得到,本实施例不进行具体限定。
同时,SDK辅助程序可以基于调整后的各个数据块的下载优先度,和不同下载途径的网络质量,确定各个下载途径对应的数据下载范围。之后,对于任一数据下载范围内的数据块,SDK辅助程序在下载该数据块时,可以先确定该数据块所属数据下载范围对应的下载途径X,然后在优先度提升阈值的取值范围内选取一个随机数,并判断该随机数是否大于下载途径X对应的优先度提高阈值。如果大于,则可以对该数据块进行优先度提高,即将比下载途径X的网络质量高一级的下载途径X-1作为目标下载途径;如果小于,则无需对该数据块进行优先度提高,可以将下载途径X作为目标下载途径。这样,SDK辅助程序可以通过选取出的目标下载途径下载上述数据块。可以理解,在上述过程中,检测了各个下载途径的实时网络质量,以判断数据块的下载情况是否能够满足数据块的消费情况,并根据判断结果实时调整优先度提高阈值,再利用随机数机制从整体上实现了对数据块的下载速度的控制,从而既可以在网络质量普遍良好时节省优质下载途径对应的节点资源,也可以在网络质量普通不佳时,保证资源文件的最低消费速率得到满足。
可选的,在下载数据块时,还可以考虑尽可能利用优质的下载途径以尽快完成整个资源文件的下载,相应的,步骤203的处理可以如下:基于调整后的各个数据块的下载优先度和不同下载途径对应的节点负载状况,通过多个网络质量不同的下载途径下载目标资源文件的数据块。
在实施中,SDK辅助程序在下载目标资源文件的数据块的过程中,可以不断检测不同下载途径对应的节点负载状况。若发现网络质量较优的下载途径的负载较低,则可以在按照下载优先度确定了各个数据块对应的下载途径的基础上,将原本通过网络质量较差的下载途径进行下载的数据块,替换成用网络质量较优的下载途径进行下载;而若网络质量较优的下载途径的负载均较高,则可以按照下载优先度确定各个数据块的下载途径,然后利用确定好的下载途径直接下载相应的数据块。举例来讲,对于存在CDN途径、P2SP途径和P2P途径三种途径的情况,当检测到CDN节点的负载较低时,可以将部分原来预设通过P2SP途径下载的数据块,转由通过CDN途径下载,同时将部分原来预设通过P2P途径下载的数据块,转由通过P2SP途径下载;当检测到超级节点的负载较低时,可以将部分原来预设通过P2P途径下载的数据块,转由通过P2SP途径下载。这样,可以充分利用优质的下载途径的节点/带宽资源,尽快完成资源文件的下载,从而可以提高用户体验。
本发明实施例中,接收目标资源文件的下载请求,确定目标资源文件的数据块下载顺序;根据数据块下载顺序和目标资源文件的数据块消费进度,实时调整目标资源文件的各个数据块的下载优先度;基于调整后的各个数据块的下载优先度,通过多个网络质量不同的下载途径下载目标资源文件的数据块。这样,客户端在利用P2P技术下载资源文件时,为不同的数据块配置不同的下载优先度,再以下载优先度为标准,选用不同网络质量的下载途径同时下载资源文件,从而可以对各个下载途径的数据下载过程进行有效控制,既可以保证资源文件的下载效率,又可以提高对等网络中优质节点的资源利用率。
基于相同的技术构思,本发明实施例还提供了一种下载资源文件的装置,所述装置应用于对等网络,如图5所示,所述装置包括:
下载准备模块501,用于接收目标资源文件的下载请求,确定所述目标资源文件的数据块下载顺序;
下载调整模块502,用于根据所述数据块下载顺序和所述目标资源文件的数据块消费进度,实时调整所述目标资源文件的各个数据块的下载优先度;
下载控制模块503,用于基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块。
可选的,所述下载调整模块502,具体用于:
根据所述数据块下载顺序和所述目标资源文件的数据块消费进度,以及各个所述下载途径对应的数据缓存容量,实时确定各个所述下载途径对应的数据下载窗口;
根据各个所述下载途径的网络质量,为不同所述数据下载窗口内的数据块设置不同的下载优先度。
可选的,所述下载调整模块502,具体用于:
根据所述目标资源文件的最低消费速率,设置预设的各个下载优先度对应的数据块覆盖范围;
根据所述数据块下载顺序和所述目标资源文件的数据块消费进度,以及所述数据块覆盖范围,实时调整所述目标资源文件的各个数据块的下载优先度。
图6是本发明实施例提供的客户端的结构示意图。该客户端600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对客户端600中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在客户端600上执行存储介质630中的一系列指令操作。
客户端600还可以包括一个或一个以上电源629,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,一个或一个以上键盘656,和/或,一个或一个以上操作系统641,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
客户端600可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述下载资源文件的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种下载资源文件的方法,其特征在于,所述方法应用于对等网络中的客户端,所述方法包括:
接收目标资源文件的下载请求,确定所述目标资源文件的数据块下载顺序;
根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,实时调整所述目标资源文件的各个数据块的下载优先度;
基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块,具体包括:基于所述下载优先度与所述下载途径之间的对应关系,确定所述下载途径对应的数据下载范围,并通过所述数据下载范围下载所述目标资源文件的数据块。
2.根据权利要求1所述的方法,其特征在于,所述下载途径包括通过CDN下载,通过超级节点下载和/或通过普通节点下载。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,实时调整所述目标资源文件的各个数据块的下载优先度,包括:
根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,以及各个所述下载途径对应的数据缓存容量和网络质量,实时调整所述目标资源文件的各个数据块的下载优先度。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,以及各个所述下载途径对应的数据缓存容量和网络质量,实时调整所述目标资源文件的各个数据块的下载优先度,包括:
根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,以及各个所述下载途径对应的数据缓存容量,实时确定各个所述下载途径对应的数据下载窗口;
根据各个所述下载途径的网络质量,为不同所述数据下载窗口内的数据块设置不同的下载优先度。
5.根据权利要求1所述的方法,其特征在于,所述根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,实时调整所述目标资源文件的各个数据块的下载优先度,包括:
根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,以及所述目标资源文件的最低下载速率,实时调整所述目标资源文件的各个数据块的下载优先度。
6.根据权利要求5所述的方法,其特征在于,根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,以及所述目标资源文件的最低下载速率,实时调整所述目标资源文件的各个数据块的下载优先度,包括:
根据所述目标资源文件的最低下载速率,设置预设的各个下载优先度对应的数据块覆盖范围;
根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,以及所述数据块覆盖范围,实时调整所述目标资源文件的各个数据块的下载优先度。
7.根据权利要求1所述的方法,其特征在于,所述基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块,包括:
基于调整后的各个数据块的下载优先度,和不同所述下载途径的网络质量,确定各个下载途径对应的数据下载范围;
对于每个下载途径,通过所述下载途径下载所述数据下载范围内的数据块。
8.根据权利要求1所述的方法,其特征在于,所述基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块,包括:
根据各个所述下载途径的数据下载速度和所述目标资源文件的最低下载速率,设置各个下载途径对应的优先度提升阈值;
基于调整后的各个数据块的下载优先度,和不同所述下载途径的网络质量,确定各个下载途径对应的数据下载范围;
对于任一所述数据下载范围内的数据块,基于优先度提升阈值和随机数选择目标下载途径,并通过所述目标下载途径下载所述数据块。
9.根据权利要求1所述的方法,其特征在于,所述接收目标资源文件的下载请求之后,还包括:
从所述对等网络中预设的配置服务器中获取所述目标资源文件的下载配置信息,所述下载配置信息包括所述目标资源文件的数据块信息、最低下载速率和各个下载途径对应的数据缓存容量。
10.根据权利要求1所述的方法,其特征在于,所述基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块,包括:
基于调整后的所述各个数据块的下载优先度和不同下载途径对应的节点负载状况,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块。
11.一种下载资源文件的装置,其特征在于,所述装置应用于对等网络,所述装置包括:
下载准备模块,用于接收目标资源文件的下载请求,确定所述目标资源文件的数据块下载顺序;
下载调整模块,用于根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,实时调整所述目标资源文件的各个数据块的下载优先度;
下载控制模块,用于基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块,具体包括:基于所述下载优先度与所述下载途径之间的对应关系,确定所述下载途径对应的数据下载范围,并通过所述数据下载范围下载所述目标资源文件的数据块。
12.根据权利要求11所述的装置,其特征在于,所述下载调整模块,具体用于:
根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,以及各个所述下载途径对应的数据缓存容量,实时确定各个所述下载途径对应的数据下载窗口;
根据各个所述下载途径的网络质量,为不同所述数据下载窗口内的数据块设置不同的下载优先度。
13.根据权利要求11所述的装置,其特征在于,所述下载调整模块,具体用于:
根据所述目标资源文件的最低下载速率,设置预设的各个下载优先度对应的数据块覆盖范围;
根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,以及所述数据块覆盖范围,实时调整所述目标资源文件的各个数据块的下载优先度。
14.一种客户端,其特征在于,所述客户端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如下方法:
接收目标资源文件的下载请求,确定所述目标资源文件的数据块下载顺序;
根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,实时调整所述目标资源文件的各个数据块的下载优先度;
基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块,具体包括:基于所述下载优先度与所述下载途径之间的对应关系,确定所述下载途径对应的数据下载范围,并通过所述数据下载范围下载所述目标资源文件的数据块。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如下方法:
接收目标资源文件的下载请求,确定所述目标资源文件的数据块下载顺序;
根据所述数据块下载顺序和所述目标资源文件的数据块下载进度,实时调整所述目标资源文件的各个数据块的下载优先度;
基于调整后的所述各个数据块的下载优先度,通过多个网络质量不同的下载途径下载所述目标资源文件的数据块,具体包括:基于所述下载优先度与所述下载途径之间的对应关系,确定所述下载途径对应的数据下载范围,并通过所述数据下载范围下载所述目标资源文件的数据块。
CN201911319000.7A 2019-12-19 2019-12-19 一种下载资源文件的方法和装置 Active CN111212114B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201911319000.7A CN111212114B (zh) 2019-12-19 2019-12-19 一种下载资源文件的方法和装置
PCT/CN2020/074959 WO2021120375A1 (zh) 2019-12-19 2020-02-12 一种下载资源文件的方法和装置
EP20716685.1A EP3860092A4 (en) 2019-12-19 2020-02-12 METHOD AND DEVICE FOR DOWNLOADING A RESOURCE FILE
US16/849,715 US11102272B2 (en) 2019-12-19 2020-04-15 Method and device for downloading resource file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911319000.7A CN111212114B (zh) 2019-12-19 2019-12-19 一种下载资源文件的方法和装置

Publications (2)

Publication Number Publication Date
CN111212114A CN111212114A (zh) 2020-05-29
CN111212114B true CN111212114B (zh) 2021-08-27

Family

ID=70788196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911319000.7A Active CN111212114B (zh) 2019-12-19 2019-12-19 一种下载资源文件的方法和装置

Country Status (3)

Country Link
EP (1) EP3860092A4 (zh)
CN (1) CN111212114B (zh)
WO (1) WO2021120375A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111861252A (zh) * 2020-07-29 2020-10-30 北京达佳互联信息技术有限公司 电子资源传输方法、装置及服务器
CN112788135B (zh) * 2021-01-05 2023-08-08 网宿科技股份有限公司 资源调度方法、设备及存储介质
CN113453038B (zh) * 2021-06-25 2022-03-29 桂林电子科技大学 一种cdn-p2p混合架构下效用最优协同缓存管理方法
CN113691823A (zh) * 2021-08-19 2021-11-23 北京百度网讯科技有限公司 资源文件的处理方法、装置、设备、存储介质及程序产品
CN115473806B (zh) * 2022-08-12 2023-09-26 北京奇艺世纪科技有限公司 资源下载控制方法、装置、电子设备和计算机可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478556A (zh) * 2007-12-31 2009-07-08 突触计算机系统(上海)有限公司 用于下载点对点传输数据分片的方法和装置
CN103428251A (zh) * 2012-05-25 2013-12-04 腾讯科技(深圳)有限公司 一种下载任务分配方法和装置
CN109167820A (zh) * 2018-08-13 2019-01-08 彩讯科技股份有限公司 一种应用程序的下载方法、装置、存储介质及终端

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110225312A1 (en) * 2010-03-10 2011-09-15 Thomson Licensing Unified cache and peer-to-peer method and apparatus for streaming media in wireless mesh networks
CN104348647B (zh) * 2013-07-31 2019-04-12 腾讯科技(深圳)有限公司 多源带宽调度方法、装置及系统
CN104320672A (zh) * 2014-09-24 2015-01-28 中国人民解放军理工大学 Cdn-p2p混合架构下的直播流媒体系统资源调度方法
US9998534B2 (en) * 2016-08-24 2018-06-12 International Business Machines Corporation Peer-to-peer seed assurance protocol
CN109862065B (zh) * 2018-12-06 2021-09-14 北京字节跳动网络技术有限公司 文件下载方法、装置和电子设备
CN110048906B (zh) * 2019-03-27 2021-04-02 网宿科技股份有限公司 一种判断节点传输质量的方法、系统、装置及服务器
CN110247985B (zh) * 2019-06-28 2022-06-03 北京奇艺世纪科技有限公司 一种资源下载方法、装置、电子设备及介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478556A (zh) * 2007-12-31 2009-07-08 突触计算机系统(上海)有限公司 用于下载点对点传输数据分片的方法和装置
CN103428251A (zh) * 2012-05-25 2013-12-04 腾讯科技(深圳)有限公司 一种下载任务分配方法和装置
CN109167820A (zh) * 2018-08-13 2019-01-08 彩讯科技股份有限公司 一种应用程序的下载方法、装置、存储介质及终端

Also Published As

Publication number Publication date
WO2021120375A1 (zh) 2021-06-24
EP3860092A1 (en) 2021-08-04
CN111212114A (zh) 2020-05-29
EP3860092A4 (en) 2021-08-04

Similar Documents

Publication Publication Date Title
CN111212114B (zh) 一种下载资源文件的方法和装置
US11102272B2 (en) Method and device for downloading resource file
US7996550B2 (en) Peer-to-peer download with quality of service fallback
EP2567327B1 (en) Dynamic binding for use in content distribution
US20050086386A1 (en) Shared running-buffer-based caching system
US8898311B2 (en) Data communication method and information processing device
US8239564B2 (en) Dynamic throttling based on network conditions
US20120016994A1 (en) Distributed system
WO2015055100A1 (en) Peer-to-peer upload scheduling
US8443054B2 (en) Method, system, and scheduling server for content delivery
EP3621342B1 (en) Method and device for acquiring network resource, and scheduling server
WO2011044829A1 (zh) 资源缓存方法、资源获取方法及其装置、系统
WO2008115221A2 (en) Hierarchically clustered p2p streaming system
BRPI0621547A2 (pt) serviço de video transferência com retardo utilizando uma rede de distribuição de conteúdo não hierárquica (p2p)
US20060069778A1 (en) Content distribution system
EP2044525A1 (en) Multi-party cooperative peer-to-peer video streaming
JP2019016042A (ja) データ取得プログラム、装置、及び方法
CN110868323B (zh) 一种带宽控制方法、装置、设备及介质
US20240106890A1 (en) Peer-to-peer network scheduling method and system
US8095228B2 (en) Data distribution apparatus, its control method, program, and storage medium
US8775456B2 (en) System and method for scheduled and collaborative distribution of software and data to many thousands of clients over a network using dynamic virtual proxies
CN117336300B (zh) 一种用于状态机的资源管理系统
CN108337302B (zh) 基于通信调度的无线网络缓存方法、装置、设备及介质
WO2021063026A1 (zh) 一种推理服务网络化的方法及装置
CN101883124A (zh) 一种点播系统的数据下载方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant