CN112422603A - 资源下载方法、系统及装置 - Google Patents
资源下载方法、系统及装置 Download PDFInfo
- Publication number
- CN112422603A CN112422603A CN202010520187.3A CN202010520187A CN112422603A CN 112422603 A CN112422603 A CN 112422603A CN 202010520187 A CN202010520187 A CN 202010520187A CN 112422603 A CN112422603 A CN 112422603A
- Authority
- CN
- China
- Prior art keywords
- resource
- node
- latest
- nodes
- connectable
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种资源下载方法,该方法包括:当需要进行最新资源的下载时,从服务器中获取最新资源列表并对所述最新资源列表中的资源进行资源分组;接收所述服务器提供的可选节点列表,包括根据用户节点分组确定的所述客户端对应的可选节点,以及每个所述可选节点能够提供的所述最新资源的资源组信息;根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载。本申请还公开了一种资源下载系统、电子装置和计算机可读存储介质。由此,能够将所述最新资源的下载分散到不同节点,避免造成CDN节点的拥挤,大量节省了流量资源。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种资源下载方法、系统、电子装置及计算机可读存储介质。
背景技术
现在游戏更新包的大小普遍比较大,有的甚至包含数万文件,达到5、6个G的大小。现有的资源下载方式是,在游戏开服时,大量玩家同时开始从附近的CDN(ContentDelivery Network,内容分发网络)节点更新游戏资源包。但是,这种方式会导致附近海量的访问需求同时涌向同一CDN节点,造成该CDN节点压力巨大。并且,CDN流量资源也是运营成本中比较重要的部分,海量访问会造成本的陡增。
需要说明的是,上述内容并不用于限制申请保护范围。
发明内容
本申请的主要目的在于提出一种资源下载方法、系统、电子装置及计算机可读存储介质,旨在解决游戏开服资源更新时大量玩家同时访问相同CDN节点造成的拥挤问题,节省运营方的流量资源。
为实现上述目的,本申请实施例提供了一种资源下载方法,应用于客户端,所述方法包括:
当需要进行最新资源的下载时,从服务器中获取最新资源列表并对所述最新资源列表中的资源进行资源分组;
接收所述服务器提供的可选节点列表,所述可选节点列表中包括根据用户节点分组确定的所述客户端对应的可选节点,以及每个所述可选节点能够提供的所述最新资源的资源组信息;及
根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载。
可选地,所述当需要进行最新资源的下载时,从服务器中获取最新资源列表并对所述最新资源列表中的资源进行资源分组包括:
从所述服务器中获取最新资源版本号;
判断本地资源版本号与获取的所述最新资源版本号是否相等;
当版本号不相等时,从所述服务器中获取最新资源列表;
对所述最新资源列表中的资源进行资源分组。
可选地,所述对所述最新资源列表中的资源进行资源分组包括:
根据所述最新资源列表中的顺序,对所述最新资源进行随机分组,且每一组的资源大小总和接近。
可选地,所述可选节点为与所述客户端距离近、网络状态符合要求且已下载所述最新资源的至少一个资源组的用户节点。
可选地,所述根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载包括:
根据所述可选节点列表中各个可选节点的状态选择一个或多个可连接节点;
根据每个所述可连接节点可提供的资源组,分配所述最新资源中各个资源组的下载来源,所述下载来源包括一个或多个所述可连接节点以及所述CDN节点;
根据分配结果从所述可连接节点和/或所述CDN节点对所述最新资源的不同资源组进行多点、乱序、同步下载。
可选地,所述可选节点的状态包括响应速度、网络状态、CPU使用率或单位时间内的网络吞吐量中的至少任一项。
可选地,所述根据所述可选节点列表中各个可选节点的状态选择一个或多个可连接节点包括:
向所述可选节点列表中的所有可选节点发送一个随机字符串;
接收所述可选节点根据所述随机字符串做MD5计算后根据计算结果发送的响应包,所述响应包中包括计算结果、发包时间、网络状态、CPU使用率或单位时间内的网络吞吐量中的至少任一项;
根据接收到的所述可选节点的响应包的个数和平均响应时间评估所述可选节点的响应速度;
根据所述响应速度、网络状态、CPU使用率或网络吞吐量中的至少任一项对所述可选节点列表中的所有可选节点进行排序;
根据排序后的所述可选节点列表,按从前往后的顺序选择所需数量的可连接节点。
可选地,所述根据每个所述可连接节点可提供的资源组,分配所述最新资源中各个资源组的下载来源包括:
按所述可选节点列表中的排序以及各个所述可连接节点可提供的资源组,确定每个资源组对应的所述可连接节点;
确定从所述CDN节点下载所有所述可连接节点都不包含的资源组。
可选地,所述根据每个所述可连接节点可提供的资源组,分配所述最新资源中各个资源组的下载来源还包括:
当在一个可连接节点中发现其他可连接节点都不包含的部分资源组时,提高从所述可连接节点下载所述部分资源组的优先级,使所述可连接节点作为所述可选节点列表中针对所述部分资源组的种子节点。
可选地,所述根据分配结果从所述可连接节点和/或所述CDN节点对所述最新资源的不同资源组进行多点、乱序、同步下载包括:
从所确定的每个资源组对应的所述可连接节点中同时下载所述资源组的数据,并从所述CDN节点中下载所有所述可连接节点都不包含的资源组的数据。
可选地,所述根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载还包括:
在任一所述资源组下载完成时向所述服务器即时上报,以向其他用户节点提供所述资源组的下载服务。
可选地,在所述根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载的步骤中,所述客户端与所选择的所述可连接节点之间采用UDP协议进行通信和所述资源组的文件传输。
可选地,在所述根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载的步骤中,采用MD5信息校验方式确定所述资源组的文件传输完整性。
此外,为实现上述目的,本申请实施例提供了另一种资源下载方法,应用于服务器,所述方法包括:
接收各用户节点上报的本地资源版本号、IP地址和网络状态信息,并按区域进行用户节点分组;
向客户端提供最新资源版本号和最新资源列表,并根据所述用户节点分组向所述客户端提供可选节点列表,以使所述客户端实现上述第一种资源下载方法。
可选地,所述按区域进行用户节点分组包括:
根据各个所述用户节点上报的IP地址和网络状态信息按区域进行用户节点分组,将相近区域的用户节点分为同一组。
可选地,所述根据所述用户节点分组向所述客户端提供可选节点列表包括:
根据所述用户节点分组和各个所述用户节点的网络状态信息及资源版本号,确定所述客户端对应的可选节点,并向所述客户端提供所述可选节点列表。
为实现上述目的,本申请实施例还提出一种资源下载系统,所述系统包括:
获取模块,用于当需要进行最新资源的下载时,从服务器中获取最新资源列表并对所述最新资源列表中的资源进行资源分组;
接收模块,用于接收所述服务器提供的可选节点列表,所述可选节点列表中包括根据用户节点分组确定的客户端对应的可选节点,以及每个所述可选节点能够提供的所述最新资源的资源组信息;
下载模块,用于根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载。
为实现上述目的,本申请实施例还提出一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的资源下载程序,所述资源下载程序被所述处理器执行时实现如上述的资源下载方法。
为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有资源下载程序,所述资源下载程序被处理器执行时实现如上述的资源下载方法。
本申请实施例提出的资源下载方法、系统、电子装置及计算机可读存储介质,能够将所述最新资源的整个资源列表进行分组管理,并到多个其他用户节点或CDN节点对不同资源组进行多点、乱序、同步下载,将所述最新资源的下载分散到不同节点,避免造成CDN节点的拥挤,大量节省了流量资源。
附图说明
图1为实现本申请各个实施例的一种应用环境架构图;
图2为本申请第一实施例提出的一种资源下载方法的流程图;
图3为图2中步骤S200的细化流程示意图;
图4为本申请中的资源分组和用户节点分组的一种具体应用场景的示意图;
图5为图2中步骤S204的细化流程示意图;
图6为本申请中对最新资源的不同资源组进行下载的一种具体应用场景的示意图;
图7为本申请第二实施例提出的另一种资源下载方法的流程图;
图8为本申请第三实施例提出的一种电子装置的硬件架构示意图;
图9为本申请第四实施例提出的一种资源下载系统的模块示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于客户端2、服务器4、CDN节点6的应用环境中。在以下各个实施例中,以游戏资源的更新为例对本申请的资源下载方案进行说明。
其中,所述客户端2用于向用户(游戏玩家)显示游戏界面并接收用户对该游戏的操作,以及在游戏开服时下载最新的资源。所述客户端2可以为PC(Personal Computer,个人电脑)、手机、平板电脑、便携计算机、可穿戴设备等终端设备。
所述服务器4用于对所述客户端2中的该游戏提供数据和技术支持,例如向所述客户端2提供最新资源版本号、最新资源列表和可选节点列表。所述服务器4可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
所述CDN节点6用于向所述客户端2提供所述最新资源的完整资源组数据,以供所述客户端2进行所述最新资源的下载。
所述服务器4、所述CDN节点6和一个或多个所述客户端2之间通过网络进行通信连接,以进行数据传输和交互。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
实施例一
如图2所示,为本申请第一实施例提出的一种资源下载方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。在本实施例中,以所述客户端2为主要执行主体进行示例性描述。
该方法包括以下步骤:
S200,当需要进行最新资源的下载时,从服务器4中获取最新资源列表并进行资源分组。
在游戏开服时,客户端2根据资源版本号判断是否需要下载最新资源,若要下载,则从服务器4中获取最新资源列表,并根据所述最新资源列表,对需要下载的最新资源进行资源分组。
具体而言,进一步参阅图3,为上述步骤S200的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S200具体包括:
S2000,从服务器4中获取最新资源版本号。
当游戏开服时,客户端2从服务器4中获取该游戏最新的资源版本号,以用于判断是否需要下载最新资源。
S2002,判断本地资源版本号与获取的最新资源版本号是否相等。
当获取到最新资源版本号后,客户端2将该最新资源版本号与本地已有资源的版本号进行对比,判断二者是否相等。若相等,表示本地资源已是最新版本,不需要再下载最新资源;若不相等,表示本地资源不是最新版本,需要先下载最新资源后再开始游戏。
S2004,当版本号不相等时,从服务器4获取最新资源列表。
当本地资源版本号与最新资源版本号不相等时,需要下载最新资源,客户端2从服务器4中获取所述最新资源版本号对应的最新资源列表。所述最新资源列表中的内容包含但不限于各资源文件的路径、文件名、文件大小和MD5(Message-Digest Algorithm,信息摘要算法)信息。
S2006,对所述最新资源列表中的资源进行分组。
在本实施例中,可以根据所述最新资源列表中的顺序,对其中所要下载的最新资源进行随机分组,每一组的资源大小总和接近。例如,将所述最新资料列表中的资源分成组[a-z]。后续在开始资源下载时可以按照不同的分组来组织下载,避免所有的下载都按同样的顺序开始,从而避免在游戏刚开服时对同一资源的蜂拥请求。在其他实施例中,也可以按照其他可行的规则对所述最新资源列表中的资源进行分组,在此可以不做限制。当然,也可以由服务器4完成资源分组后,客户端2直接从服务器4获取所述分组。
回到图2,S202,接收服务器4提供的可选节点列表。
在本实施例中,各个用户(游戏玩家)对应的节点(客户端)向服务器4上报本地资源版本号、IP地址和网络状态信息(WIFI或3G/4G/5G)等。例如客户端2在连接服务器4时上报本地资源版本号和IP地址,以及自己的网络状态信息。服务器4根据各个用户节点上报的IP地址和网络状态信息按区域进行用户节点分组,相近区域的用户节点被分为同一组。例如所述分组的层级可以是:同一IP地址出口(同一局域网)->同一城市(例如上海)->跨行政区域(不同省份、国家),方便随后分发最近的可选节点给客户端2。后续各用户节点的网络状态发生变化后需要主动上报至服务器4,服务器4根据网络状态变化维护更新用户节点分组。
客户端2需预留一个UDP(User Datagram Protocol,用户数据报协议)端口和服务器4的UDP端口保持通信,实现类心跳功能,保持端口一直可用,从而利用UDP协议实现NAT(Network Address Translation,网络地址转换)的穿透,使外网可以利用此端口与内网中的客户端2通信。
根据所述分组和各个用户节点的网络状态信息及资源版本号,服务器4可以向客户端2提供可选节点列表。其中,所述可选节点列表中包括根据用户节点分组确定的所述客户端2对应的可选节点,以及每个可选节点能够提供的所述最新资源的资源组信息。所述可选节点为与客户端2距离近(与客户端2的IP地址最接近,例如同一区域/同一分组)、网络状态符合要求且已下载所述最新资源(至少一个资源组)的用户节点。一般情况下,确定所述可选节点的策略是优先同一分组的用户节点,当同一分组的用户节点数量不够时,再跨组结合。
在本实施例中,服务器4对用户节点分组的管理颗粒到资源组级别。同一分组内的用户节点,资源版本号最新(本地资源版本号与最新资源版本号相等)的可做为所述可选节点,该节点包含完整的资源组[a-z]。而对于资源版本号不是最新(本地资源版本号与最新资源版本号不相等)的用户节点,说明该节点需要进行资源更新,在其更新完一个资源组后即刻上报,则也可以作为所述可选节点,向其他用户节点提供该资源组的资源。假设一个用户节点刚完成资源组[c]的更新,则上报后服务器4在该用户节点所在的分组内添加记录,记录其包含资源组[c],此时该节点可以作为所述可选节点被其他需要下载资源组[c]的用户节点获取。
例如,参阅图4所示,为所述资源分组和用户节点分组的一种具体应用场景的示意图。在图4中,所述最新资源包括资源组[a-z],客户端和用户节点A属于第一用户节点分组(同一局域网),且用户节点A可以提供资源组[c];用户节点B和C属于第二用户节点分组(与客户端同城),且用户节点B可以提供资源组[e],用户节点C可以提供资源组[a];用户节点D属于第三用户节点分组(与客户端跨城),且用户节点D可以提供资源组[x];CDN节点可提供完整的资源组[a-z]。
客户端2开始下载任务之前,从服务器4中获取对应的可选节点列表。并且,从服务器4管理的用户节点分组中对所述可选节点设置已占用标志,防止同一时间多个客户端2连接到这些用户节点,造成该用户节点的设备性能消耗,影响该用户节点的用户自身的游戏体验。在其他实施例中,也可以在后续客户端2从所述可选节点列表中选定一个或多个用户节点后,再对已选定的用户节点设置已占用标志。
值得注意的是,所述可选节点列表不局限于局域网,可实现客户端2到所述可选节点进行跨区域的资源下载。
S204,根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载。
客户端2根据所述可选节点列表中各个可选节点的状态从中选择一个或多个用户节点进行连接,并从所选择的可连接节点和/或CDN节点中对所述最新资源的不同资源组进行多点、乱序、同步下载。其中,客户端2与所选择的可连接节点之间采用UDP协议进行通信和文件传输,并采用MD5信息校验保证文件传输完整性。
具体而言,进一步参阅图5,为上述步骤S204的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S204具体包括:
S2040,根据所述可选节点列表中各个可选节点的状态选择一个或多个可连接节点。
客户端2从所述可选节点列表中选择可以连接的用户节点时,根据每个可选节点的网络状态、响应速度等作为判断标准,确定是否将其作为可连接节点,不适合的话则从所述可选节点列表中选择下一个节点,所有可选节点全不合适则从CDN节点下载。
下面以一个实例说明客户端2从所述可选节点列表中选择可连接节点的具体过程:
(1)客户端2首先向所述可选节点列表中的所有可选节点发送一个32位随机字符串,各可选节点收到后对该随机字符串做一次MD5计算。
(2)可选节点根据计算结果发送响应包给客户端2,并重复发4次。所述响应包中包括但不限于MD5计算的结果、发包时间、网络状态、CPU使用率、单位时间内(一秒钟)的网络吞吐量。其中,所述网络状态、CPU使用率、单位时间内的网络吞吐量都可以通过系统相关信息计算或API得到。
(3)客户端2接收各可选节点发送的反馈信息。如果超时时间(5秒钟)内只收到3个以下响应包,说明对应的可选节点无法连接或者响应效率太低不满足要求,将该可选节点排除出所述可选节点列表。
(4)客户端2根据接收到的各可选节点的响应包的个数和平均响应时间来评估该可选节点的响应速度,并结合各可选节点的网络状态、CPU使用率、网络吞吐量对所述可选节点列表中的可选节点进行排序。
(5)根据排序后的所述可选节点列表,可以按从前往后的顺序选择所需数量的可连接节点。
可以理解的是,在其他实施例中,也可以采用其他可行的具体方式来选择可连接节点,在此不做限制。
S2042,根据每个可连接节点可提供的资源组,分配所述最新资源中各个资源组的下载来源。所述下载来源包括一个或多个所述可连接节点以及所述CDN节点。
其中,根据排序后的所述可选节点列表中各可连接节点的顺序,以及各可连接节点可提供的资源组,确定每个资源组对应的可连接节点。若所有可连接节点都不能提供某些资源组,例如资源组[b,x,z],则从CDN节点进行下载。
在此,在一种实施例中,若所述客户端2用于下载的资源(如下载速率、处理器性能等)有限,则在所有可连接节点都不能提供某些资源组的情况下,优先从CDN节点获取该资源组,从而使得当前客户端2成为该资源组的种子节点。如有其他客户端请求该资源组,则可从所述客户端2下载该资源组。
另外,值得注意的是,若在某个可连接节点中发现其他可连接节点都不包含的部分资源组时,提高从该可连接节点下载该部分资源组的优先级,使该可连接节点作为所述可选节点列表中针对该部分资源组的种子节点。本次下载以及后续其他节点从该可连接节点所在的用户节点分组下载所述最新资源时,都可以优先从该可连接节点下载该部分资源组。例如,所述可选节点列表中仅有可连接节点E包含资源组[e],其他可连接节点都不能提供资源组[e],则将从可连接节点E下载资源组[e]的优先级提高,使可连接节点E成为资源组[e]的种子节点。
S2044,根据分配结果从所述可连接节点和/或CDN节点对所述最新资源的不同资源组进行多点、乱序、同步下载。
客户端2从所确定的每个资源组对应的可连接节点中同时下载该资源组的数据,并从CDN节点中下载所有可连接节点都不包含的资源组(例如资源组[b,x,z])的数据。并且,客户端2在任一资源组下载完成时都即时上报,为其他用户节点提供该资源组的下载服务。该方案可以防止高峰时所有客户端统一下载同一资源时,同时涌向同一CDN节点造成压力,并且可以更快的完成全部资源从源站到CDN节点的同步,更快的使客户端所在的分组里包含完整的资源组。
下载的过程中,下载任务并行开始,同时从多个可连接节点下载不同的资源组。例如,参阅图6所示,为对所述最新资源的不同资源组进行下载的一种具体应用场景的示意图。在图6中,所述最新资源包括资源组[a,b,d,e,h,j,y,z],所述可选节点列表中包括用户节点A、B、C,且全部为可连接节点。其中,用户节点A可以提供资源组[a,d,e],用户节点B可以提供资源组[b,y],用户节点C可以提供资源组[h],CDN节点可以提供完整资源组资源组[a,b,d,e,h,j,y,z]。客户端根据所述可选节点列表中的用户节点分组、以及各个用户节点的状态确定使用的节点顺序,并根据各个用户节点可以提供的资源组确定可以各资源组的下载来源。也就是说,优先从CDN节点中下载所述可选节点列表中所有节点都不包含的资源组[j,z]。同时从用户节点A下载资源组[a,d,e],从用户节点B下载资源组[b,y],从用户节点C下载资源组[h]。当从所述可读节点列表中的节点下载失败或者无合适节点时,从CDN节点下载相应资源组。
客户端2的下载实现是利用UDP协议与被选中的可连接节点建立UDP通信和文件传输服务,完成文件在可连接节点与客户端2之间的传输,传输完成后对文件MD5信息进行校验,保证文件传输的完整性。通过UDP协议可以实现内网穿透,实现从外网主动访问其他用户节点内网,不局限于各个节点自己的局域网内。而对于所述可选节点列表中所有节点都不包含的资源组,通过TCP(Transmission Control Protocol,传输控制协议)从所述CDN节点下载。
下载过程中各个可连接节点可以根据其网络速率和繁忙程度控制其传输速率,避免对该节点用户的游戏体验造成不良影响。例如,可连接节点在传输数据时根据自身的网络吞吐量和CPU使用率动态调整传输速度。假设控制传输速度的幅度在20KB-2048KB之间,CPU使用率低且之前网络吞吐量小的时候,应达到最大传输速度,反之则应降低传输速度。其中,传输速度=传输字节数/传输时间,当传输速度>最大传输速度,则计算应该休眠的时间,休眠时间=(当前传输速度/最大传输速度-1)*当前传输时间,数据传输模块休眠相应时间后继续传输。
另外,当从某个可连接节点下载文件失败时,可以从所述可选节点列表中选择另外的可连接节点进行尝试。失败次数超过预设值(例如三次)时,认为网络有限制,穿透失败,开始从原始资源地址(例如从CDN节点)下载资源。
当所述最新资源的所有资源组下载完成后,客户端2更新本地资源版本号,同时向服务器4上报此次更新完成,服务器将分配给客户端2的所述可选节点列表中的各个用户节点的标志重新设置为可用,以待分配给另外的客户端。
在本实施例中,由于需要与所述可选节点列表中的各可选节点进行网络探测以确定可连接节点,因此客户端2从服务器4获取到所述可选节点列表的同时就将列表中的用户节点标记为占用,只有下载完成后或者下载取消才重置这一组用户节点为可用,以避免大量设备向所述可选节点进行网络探测而给该节点带来性能的消耗和网络资源的占用,影响该节点用户的游戏体验。在其他实施例中,也可以将对节点的锁定延迟,只有实际选择了所述可选节点列表中的某个可选节点进行连接和下载时,才将该节点标记为占用。
下载完成后,客户端2重新加载所述最新资源,进入游戏开始流程。
本实施例提出的资源下载方法,可以将所述最新资源的整个资源列表进行分组管理,并到多个其他用户节点或CDN节点对不同资源组进行多点、乱序、同步下载,将所述最新资源的下载分散到不同节点,避免造成CDN节点的拥挤,大量节省了流量资源。
实施例二
如图7所示,为本申请第二实施例提出的另一种资源下载方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。在本实施例中,以所述服务器4为主要执行主体进行示例性描述。
该方法包括以下步骤:
S400,接收各用户节点上报的本地资源版本号、IP地址和网络状态信息,并按区域进行用户节点分组。
在本实施例中,各个用户(游戏玩家)对应的节点(客户端)向服务器4上报本地资源版本号、IP地址和网络状态信息(WIFI或3G/4G/5G)等。例如客户端2在连接服务器4时上报本地资源版本号和IP地址,以及自己的网络状态信息。服务器4根据各个用户节点上报的IP地址和网络状态信息按区域进行用户节点分组,相近区域的用户节点被分为同一组。例如所述分组的层级可以是:同一IP地址出口(同一局域网)->同一城市(例如上海)->跨行政区域(不同省份、国家),方便随后分发最近的可选节点给客户端2。后续各用户节点的网络状态发生变化后需要主动上报至服务器4,服务器4根据网络状态变化维护更新用户节点分组。
S402,向客户端2提供最新资源版本号和最新资源列表。
当游戏开服时,客户端2从服务器4中获取该游戏最新的资源版本号,以用于判断是否需要下载最新资源。当客户端2中的本地资源版本号与最新资源版本号不相等时,需要下载最新资源,服务器4向客户端2提供所述最新资源版本号对应的最新资源列表。所述最新资源列表中的内容包含但不限于各资源文件的路径、文件名、文件大小和MD5信息。
客户端2可以根据所述最新资源列表中的顺序,对其中所要下载的最新资源进行随机分组,每一组的资源大小总和接近。例如,将所述最新资料列表中的资源分成组[a-z]。后续在开始资源下载时可以按照不同的分组来组织下载,避免所有的下载都按同样的顺序开始,从而避免在游戏刚开服时对同一资源的蜂拥请求。在其他实施例中,也可以按照其他可行的规则对所述最新资源列表中的资源进行分组,在此可以不做限制。当然,也可以由服务器4完成资源分组后,客户端2直接从服务器4获取所述分组。
S404,根据所述用户节点分组向客户端2提供可选节点列表,以供客户端2根据所述可选节点列表选择可连接节点,并从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载。
根据所述分组和各个用户节点的网络状态信息及资源版本号,服务器4可以向客户端2提供可选节点列表。其中,所述可选节点列表中包括根据用户节点分组确定的所述客户端2对应的可选节点,以及每个可选节点能够提供的所述最新资源的资源组信息。所述可选节点为与客户端2距离近(与客户端2的IP地址最接近,例如同一区域/同一分组)、网络状态符合要求且已下载所述最新资源(至少一个资源组)的用户节点。一般情况下,确定所述可选节点的策略是优先同一分组的用户节点,当同一分组的用户节点数量不够时,再跨组结合。
在本实施例中,服务器4对用户节点分组的管理颗粒到资源组级别。同一分组内的用户节点,资源版本号最新(本地资源版本号与最新资源版本号相等)的可做为所述可选节点,该节点包含完整的资源组[a-z]。而对于资源版本号不是最新(本地资源版本号与最新资源版本号不相等)的用户节点,说明该节点需要进行资源更新,在其更新完一个资源组后即刻上报,则也可以作为所述可选节点,向其他用户节点提供该资源组的资源。假设一个用户节点刚完成资源组[c]的更新,则上报后服务器4在该用户节点所在的分组内添加记录,记录其包含资源组[c],此时该节点可以作为所述可选节点被其他需要下载资源组[c]的用户节点获取。
客户端2开始下载任务之前,从服务器4中获取对应的可选节点列表。并且,从服务器4管理的用户节点分组中对所述可选节点设置已占用标志,防止同一时间多个客户端2连接到这些用户节点,造成该用户节点的设备性能消耗,影响该用户节点的用户自身的游戏体验。在其他实施例中,也可以在后续客户端2从所述可选节点列表中选定一个或多个用户节点后,再对已选定的用户节点设置已占用标志。
值得注意的是,所述可选节点列表不局限于局域网,可实现客户端2到所述可选节点进行跨区域的资源下载。
客户端2根据所述可选节点列表中各个可选节点的状态从中选择一个或多个用户节点进行连接,并从所选择的可连接节点和/或CDN节点中对所述最新资源的不同资源组进行多点、乱序、同步下载。
其中,客户端2从所述可选节点列表中选择可以连接的用户节点时,根据每个可选节点的网络状态、响应速度等作为判断标准,确定是否将其作为可连接节点,不适合的话则从所述可选节点列表中选择下一个节点。然后,客户端2根据每个可连接节点可提供的资源组,分配所述最新资源中各个资源组的下载来源。所述下载来源包括一个或多个所述可连接节点以及所述CDN节点。客户端2从所确定的每个资源组对应的可连接节点中同时下载该资源组的数据,并从CDN节点中下载所有可连接节点都不包含的资源组的数据。并且,客户端2在任一资源组下载完成时都即时上报,为其他用户节点提供该资源组的下载服务。
当所述最新资源的所有资源组下载完成后,客户端2更新本地资源版本号,同时向服务器4上报此次更新完成,服务器将分配给客户端2的所述可选节点列表中的各个用户节点的标志重新设置为可用,以待分配给另外的客户端。
本实施例提出的资源下载方法,可以通过为客户端提供最新资源列表和可选节点列表,使得客户端将所述最新资源的整个资源列表进行分组管理,并到多个其他用户节点或CDN节点对不同资源组进行多点、乱序、同步下载,将所述最新资源的下载分散到不同节点,避免造成CDN节点的拥挤,大量节省了流量资源。
实施例三
如图8所示,为本申请第三实施例提出一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图8仅示出了具有组件21-23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。在本实施例中,所述电子装置20可以是所述客户端2或所述服务器4。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如资源下载系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述资源下载系统60等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。
所述电子装置20的所述存储器21中存储的程序被所述处理器22执行时,可以实现上述第一实施例或第二实施例所述的资源下载方法。
实施例四
如图9所示,为本申请第四实施例提出一种资源下载系统60的模块示意图。所述资源下载系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述资源下载系统60运行在客户端2中,所述资源下载系统60包括:
获取模块600,用于当需要进行最新资源的下载时,从服务器4中获取最新资源列表并进行资源分组。
在游戏开服时,客户端2根据资源版本号判断是否需要下载最新资源,若要下载,则获取模块600从服务器4中获取最新资源列表,并根据所述最新资源列表,对需要下载的最新资源进行资源分组。
具体而言,该过程可以包括:
(1)从服务器4中获取最新资源版本号。
当游戏开服时,获取模块600从服务器4中获取该游戏最新的资源版本号,以用于判断是否需要下载最新资源。
(2)判断本地资源版本号与获取的最新资源版本号是否相等。
当获取到最新资源版本号后,获取模块600将该最新资源版本号与本地已有资源的版本号进行对比,判断二者是否相等。若相等,表示本地资源已是最新版本,不需要再下载最新资源;若不相等,表示本地资源不是最新版本,需要先下载最新资源后再开始游戏。
(3)当版本号不相等时,从服务器4获取最新资源列表。
当本地资源版本号与最新资源版本号不相等时,需要下载最新资源,获取模块600从服务器4中获取所述最新资源版本号对应的最新资源列表。所述最新资源列表中的内容包含但不限于各资源文件的路径、文件名、文件大小和MD5信息。
(4)对所述最新资源列表中的资源进行分组。
在本实施例中,可以根据所述最新资源列表中的顺序,对其中所要下载的最新资源进行随机分组,每一组的资源大小总和接近。例如,将所述最新资料列表中的资源分成组[a-z]。后续在开始资源下载时可以按照不同的分组来组织下载,避免所有的下载都按同样的顺序开始,从而避免在游戏刚开服时对同一资源的蜂拥请求。在其他实施例中,也可以按照其他可行的规则对所述最新资源列表中的资源进行分组,在此可以不做限制。当然,也可以由服务器4完成资源分组后,获取模块600直接从服务器4获取所述分组。
接收模块602,用于接收服务器4提供的可选节点列表。其中,所述可选节点列表中包括根据用户节点分组确定的所述客户端2对应的可选节点,以及每个可选节点能够提供的所述最新资源的资源组信息。所述可选节点为与客户端2距离近(与客户端2的IP地址最接近,例如同一区域/同一分组)、网络状态符合要求且已下载所述最新资源(至少一个资源组)的用户节点。
在本实施例中,各个用户(游戏玩家)对应的节点(客户端)向服务器4上报本地资源版本号、IP地址和网络状态信息(WIFI或3G/4G/5G)等。例如客户端2在连接服务器4时上报本地资源版本号和IP地址,以及自己的网络状态信息。服务器4根据各个用户节点上报的IP地址和网络状态信息按区域进行用户节点分组,相近区域的用户节点被分为同一组。例如所述分组的层级可以是:同一IP地址出口(同一局域网)->同一城市(例如上海)->跨行政区域(不同省份、国家),方便随后分发最近的可选节点给客户端2。后续各用户节点的网络状态发生变化后需要主动上报至服务器4,服务器4根据网络状态变化维护更新用户节点分组。
根据所述分组和各个用户节点的网络状态信息及资源版本号,服务器4可以向客户端2提供可选节点列表。一般情况下,确定所述可选节点的策略是优先同一分组的用户节点,当同一分组的用户节点数量不够时,再跨组结合。
在本实施例中,服务器4对用户节点分组的管理颗粒到资源组级别。同一分组内的用户节点,资源版本号最新(本地资源版本号与最新资源版本号相等)的可做为所述可选节点,该节点包含完整的资源组[a-z]。而对于资源版本号不是最新(本地资源版本号与最新资源版本号不相等)的用户节点,说明该节点需要进行资源更新,在其更新完一个资源组后即刻上报,则也可以作为所述可选节点,向其他用户节点提供该资源组的资源。假设一个用户节点刚完成资源组[c]的更新,则上报后服务器4在该用户节点所在的分组内添加记录,记录其包含资源组[c],此时该节点可以作为所述可选节点被其他需要下载资源组[c]的用户节点获取。
客户端2开始下载任务之前,接收模块602从服务器4中接收对应的可选节点列表。并且,从服务器4管理的用户节点分组中对所述可选节点设置已占用标志,防止同一时间多个客户端2连接到这些用户节点,造成该用户节点的设备性能消耗,影响该用户节点的用户自身的游戏体验。在其他实施例中,也可以在后续客户端2从所述可选节点列表中选定一个或多个用户节点后,再对已选定的用户节点设置已占用标志。
下载模块604,用于根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载。
下载模块604根据所述可选节点列表中各个可选节点的状态从中选择一个或多个用户节点进行连接,并从所选择的可连接节点和/或CDN节点中对所述最新资源的不同资源组进行多点、乱序、同步下载。其中,客户端2与所选择的可连接节点之间采用UDP协议进行通信和文件传输,并采用MD5信息校验保证文件传输完整性。
具体而言,该过程可以包括:
(1)根据所述可选节点列表中各个可选节点的状态选择一个或多个可连接节点。
下载模块604从所述可选节点列表中选择可以连接的用户节点时,根据每个可选节点的网络状态、响应速度等作为判断标准,确定是否将其作为可连接节点,不适合的话则从所述可选节点列表中选择下一个节点,所有可选节点全不合适则从CDN节点下载。
(2)根据每个可连接节点可提供的资源组,分配所述最新资源中各个资源组的下载来源。所述下载来源包括一个或多个所述可连接节点以及所述CDN节点。
其中,在根据节点状态对所述可选节点列表中的节点进行排序后,根据各可连接节点的顺序,以及各可连接节点可提供的资源组,确定每个资源组对应的可连接节点。若所有可连接节点都不能提供某些资源组,例如资源组[b,x,z],则从CDN节点进行下载。
在此,在一种实施例中,若所述客户端2用于下载的资源(如下载速率、处理器性能等)有限,则在所有可连接节点都不能提供某些资源组的情况下,优先从CDN节点获取该资源组,从而使得当前客户端2成为该资源组的种子节点。如有其他客户端请求该资源组,则可从所述客户端2下载该资源组。
另外,值得注意的是,若在某个可连接节点中发现其他可连接节点都不包含的部分资源组时,提高从该可连接节点下载该部分资源组的优先级,使该可连接节点作为所述可选节点列表中针对该部分资源组的种子节点。本次下载以及后续其他节点从该可连接节点所在的用户节点分组下载所述最新资源时,都可以优先从该可连接节点下载该部分资源组。例如,所述可选节点列表中仅有可连接节点E包含资源组[e],其他可连接节点都不能提供资源组[e],则将从可连接节点E下载资源组[e]的优先级提高,使可连接节点E成为资源组[e]的种子节点。
(3)根据分配结果从所述可连接节点和/或CDN节点对所述最新资源的不同资源组进行多点、乱序、同步下载。
下载模块604从所确定的每个资源组对应的可连接节点中同时下载该资源组的数据,并从CDN节点中下载所有可连接节点都不包含的资源组(例如资源组[b,x,z])的数据。并且,下载模块604在任一资源组下载完成时都即时上报,为其他用户节点提供该资源组的下载服务。该方案可以防止高峰时所有客户端统一下载同一资源时,同时涌向同一CDN节点造成压力,并且可以更快的完成全部资源从源站到CDN节点的同步,更快的使客户端所在的分组里包含完整的资源组。
下载的过程中,下载任务并行开始,同时从多个可连接节点下载不同的资源组。客户端2的下载实现是利用UDP协议与被选中的可连接节点建立UDP通信和文件传输服务,完成文件在可连接节点与客户端2之间的传输,传输完成后对文件MD5信息进行校验,保证文件传输的完整性。通过UDP协议可以实现内网穿透,实现从外网主动访问其他用户节点内网,不局限于各个节点自己的局域网内。而对于所述可选节点列表中所有节点都不包含的资源组,通过TCP协议从所述CDN节点下载。
当所述最新资源的所有资源组下载完成后,下载模块604更新本地资源版本号,同时向服务器4上报此次更新完成,服务器将分配给客户端2的所述可选节点列表中的各个用户节点的标志重新设置为可用,以待分配给另外的客户端。
下载完成后,客户端2重新加载所述最新资源,进入游戏开始流程。
本实施例提出的资源下载系统,可以将所述最新资源的整个资源列表进行分组管理,并到多个其他用户节点或CDN节点对不同资源组进行多点、乱序、同步下载,将所述最新资源的下载分散到不同节点,避免造成CDN节点的拥挤,大量节省了流量资源。
实施例五
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有资源下载程序,所述资源下载程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的资源下载方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。
Claims (20)
1.一种资源下载方法,应用于客户端,其特征在于,所述方法包括:
当需要进行最新资源的下载时,从服务器中获取最新资源列表并对所述最新资源列表中的资源进行资源分组;
接收所述服务器提供的可选节点列表,所述可选节点列表中包括根据用户节点分组确定的所述客户端对应的可选节点,以及每个所述可选节点能够提供的所述最新资源的资源组信息;及
根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载。
2.根据权利要求1所述的资源下载方法,其特征在于,所述当需要进行最新资源的下载时,从服务器中获取最新资源列表并对所述最新资源列表中的资源进行资源分组包括:
从所述服务器中获取最新资源版本号;
判断本地资源版本号与获取的所述最新资源版本号是否相等;
当版本号不相等时,从所述服务器中获取最新资源列表;
对所述最新资源列表中的资源进行资源分组。
3.根据权利要求1或2所述的资源下载方法,其特征在于,所述对所述最新资源列表中的资源进行资源分组包括:
根据所述最新资源列表中的顺序,对所述最新资源进行随机分组,且每一组的资源大小总和接近。
4.根据权利要求1所述的资源下载方法,其特征在于,所述可选节点为与所述客户端距离近、网络状态符合要求且已下载所述最新资源的至少一个资源组的用户节点。
5.根据权利要求1所述的资源下载方法,其特征在于,所述根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载包括:
根据所述可选节点列表中各个可选节点的状态选择一个或多个可连接节点;
根据每个所述可连接节点可提供的资源组,分配所述最新资源中各个资源组的下载来源,所述下载来源包括一个或多个所述可连接节点以及所述CDN节点;
根据分配结果从所述可连接节点和/或所述CDN节点对所述最新资源的不同资源组进行多点、乱序、同步下载。
6.根据权利要求5所述的资源下载方法,其特征在于,所述可选节点的状态包括响应速度、网络状态、CPU使用率或单位时间内的网络吞吐量中的至少任一项。
7.根据权利要求5或6所述的资源下载方法,其特征在于,所述根据所述可选节点列表中各个可选节点的状态选择一个或多个可连接节点包括:
向所述可选节点列表中的所有可选节点发送一个随机字符串;
接收所述可选节点根据所述随机字符串做MD5计算后根据计算结果发送的响应包,所述响应包中包括计算结果、发包时间、网络状态、CPU使用率或单位时间内的网络吞吐量中的至少任一项;
根据接收到的所述可选节点的响应包的个数和平均响应时间评估所述可选节点的响应速度;
根据所述响应速度、网络状态、CPU使用率或网络吞吐量中的至少任一项对所述可选节点列表中的所有可选节点进行排序;
根据排序后的所述可选节点列表,按从前往后的顺序选择所需数量的可连接节点。
8.根据权利要求7所述的资源下载方法,其特征在于,所述根据每个所述可连接节点可提供的资源组,分配所述最新资源中各个资源组的下载来源包括:
按所述可选节点列表中的排序以及各个所述可连接节点可提供的资源组,确定每个资源组对应的所述可连接节点;
确定从所述CDN节点下载所有所述可连接节点都不包含的资源组。
9.根据权利要求8所述的资源下载方法,其特征在于,所述根据每个所述可连接节点可提供的资源组,分配所述最新资源中各个资源组的下载来源还包括:
当在一个可连接节点中发现其他可连接节点都不包含的部分资源组时,提高从所述可连接节点下载所述部分资源组的优先级,使所述可连接节点作为所述可选节点列表中针对所述部分资源组的种子节点。
10.根据权利要求8或9所述的资源下载方法,其特征在于,所述根据分配结果从所述可连接节点和/或所述CDN节点对所述最新资源的不同资源组进行多点、乱序、同步下载包括:
从所确定的每个资源组对应的所述可连接节点中同时下载所述资源组的数据,并从所述CDN节点中下载所有所述可连接节点都不包含的资源组的数据。
11.根据权利要求5所述的资源下载方法,其特征在于,所述根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载还包括:
在任一所述资源组下载完成时向所述服务器即时上报,以向其他用户节点提供所述资源组的下载服务。
12.根据权利要求5所述的资源下载方法,其特征在于,在所述根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载的步骤中,所述客户端与所选择的所述可连接节点之间采用UDP协议进行通信和所述资源组的文件传输。
13.根据权利要求5所述的资源下载方法,其特征在于,在所述根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载的步骤中,采用MD5信息校验方式确定所述资源组的文件传输完整性。
14.一种资源下载系统,其特征在于,所述系统包括:
获取模块,用于当需要进行最新资源的下载时,从服务器中获取最新资源列表并对所述最新资源列表中的资源进行资源分组;
接收模块,用于接收所述服务器提供的可选节点列表,所述可选节点列表中包括根据用户节点分组确定的客户端对应的可选节点,以及每个所述可选节点能够提供的所述最新资源的资源组信息;
下载模块,用于根据所述可选节点列表选择可连接节点,从所选择的可连接节点或CDN节点对所述最新资源的不同资源组进行同步下载。
15.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的资源下载程序,所述资源下载程序被所述处理器执行时实现如权利要求1至13中任一项所述的资源下载方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有资源下载程序,所述资源下载程序被处理器执行时实现如权利要求1至13中任一项所述的资源下载方法。
17.一种资源下载方法,应用于服务器,其特征在于,所述方法包括:
接收各用户节点上报的本地资源版本号、IP地址和网络状态信息,并按区域进行用户节点分组;
向客户端提供最新资源版本号和最新资源列表,并根据所述用户节点分组向所述客户端提供可选节点列表,以使所述客户端实现如权利要求1至13中任一项所述的资源下载方法。
18.根据权利要求17所述的资源下载方法,其特征在于,所述按区域进行用户节点分组包括:
根据各个所述用户节点上报的IP地址和网络状态信息按区域进行用户节点分组,将相近区域的用户节点分为同一组。
19.根据权利要求18所述的资源下载方法,其特征在于,所述根据所述用户节点分组向所述客户端提供可选节点列表包括:
根据所述用户节点分组和各个所述用户节点的网络状态信息及资源版本号,确定所述客户端对应的可选节点,并向所述客户端提供所述可选节点列表。
20.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的资源下载程序,所述资源下载程序被所述处理器执行时实现如权利要求17至19中任一项所述的资源下载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010520187.3A CN112422603A (zh) | 2020-06-09 | 2020-06-09 | 资源下载方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010520187.3A CN112422603A (zh) | 2020-06-09 | 2020-06-09 | 资源下载方法、系统及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112422603A true CN112422603A (zh) | 2021-02-26 |
Family
ID=74844156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010520187.3A Pending CN112422603A (zh) | 2020-06-09 | 2020-06-09 | 资源下载方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422603A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102510395A (zh) * | 2011-10-21 | 2012-06-20 | 合一网络技术(北京)有限公司 | 一种基于P2SP的flash视频调度方法 |
CN102833293A (zh) * | 2011-06-17 | 2012-12-19 | 腾讯科技(深圳)有限公司 | P2sp网络中资源下载的方法及客户端 |
CN104283933A (zh) * | 2013-07-12 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 下载数据的方法、客户端及系统 |
CN107205057A (zh) * | 2017-08-02 | 2017-09-26 | 无锡江南影视传播有限公司 | 一种游戏资源更新方法、装置及客户端 |
CN109981751A (zh) * | 2019-03-06 | 2019-07-05 | 珠海金山网络游戏科技有限公司 | 一种文件传输方法及系统、计算机设备及存储介质 |
-
2020
- 2020-06-09 CN CN202010520187.3A patent/CN112422603A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833293A (zh) * | 2011-06-17 | 2012-12-19 | 腾讯科技(深圳)有限公司 | P2sp网络中资源下载的方法及客户端 |
CN102510395A (zh) * | 2011-10-21 | 2012-06-20 | 合一网络技术(北京)有限公司 | 一种基于P2SP的flash视频调度方法 |
CN104283933A (zh) * | 2013-07-12 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 下载数据的方法、客户端及系统 |
CN107205057A (zh) * | 2017-08-02 | 2017-09-26 | 无锡江南影视传播有限公司 | 一种游戏资源更新方法、装置及客户端 |
CN109981751A (zh) * | 2019-03-06 | 2019-07-05 | 珠海金山网络游戏科技有限公司 | 一种文件传输方法及系统、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109492436A (zh) | 一种文件校验方法及相关装置 | |
US6757802B2 (en) | Method for memory heap and buddy system management for service aware networks | |
CN106657383B (zh) | 数据下载方法及相关设备 | |
CN107819802A (zh) | 一种在节点集群中的镜像获取方法、节点设备及服务器 | |
US20040162953A1 (en) | Storage apparatus and area allocation method | |
EP3780438B1 (en) | Data transmission method and related device | |
US20140025723A1 (en) | Cloud storage system and data storage and sharing method based on the system | |
CN110430274A (zh) | 一种基于云存储的文件下载方法及系统 | |
CN107105013B (zh) | 文件的处理方法、服务器、终端和系统 | |
CN109151070B (zh) | 基于区块链的点对点cdn的服务调度方法、电子装置 | |
CN112615945B (zh) | 域名解析记录管理方法、装置、计算机设备及存储介质 | |
CN111651667A (zh) | 数据推送分流控制方法、装置及计算机可读存储介质 | |
CN111490963A (zh) | 基于quic协议栈的数据处理方法、系统、设备及存储介质 | |
CN109756533B (zh) | 一种镜像加速方法、装置及服务器 | |
CN105721612A (zh) | 数据传输方法和装置 | |
CN113301144B (zh) | Nginx服务器的并发访问处理方法、装置、服务器及存储介质 | |
CN105763616B (zh) | 资源下载方法及装置 | |
CN106203179A (zh) | 一种对文件的完整性校验系统及方法 | |
CN112422603A (zh) | 资源下载方法、系统及装置 | |
CN108124021A (zh) | 网际协议ip地址获取、网站访问的方法、装置及系统 | |
JP6888478B2 (ja) | 振り分けシステム | |
CN109104506B (zh) | 域名解析规则的确定方法、装置和计算机可读存储介质 | |
CN112019451A (zh) | 带宽分配方法、调试网元、本地缓存服务器及计算设备 | |
CN101729569B (zh) | 分布式拒绝服务ddos攻击的防护方法、设备及系统 | |
CN114640678A (zh) | 基于SR-IOV的Pod管理方法、设备及介质 |
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 |