CN115348251A - 文件下载方法、装置、计算机设备和存储介质 - Google Patents

文件下载方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN115348251A
CN115348251A CN202110528363.2A CN202110528363A CN115348251A CN 115348251 A CN115348251 A CN 115348251A CN 202110528363 A CN202110528363 A CN 202110528363A CN 115348251 A CN115348251 A CN 115348251A
Authority
CN
China
Prior art keywords
node
information
downloading
communication
target
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
Application number
CN202110528363.2A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110528363.2A priority Critical patent/CN115348251A/zh
Publication of CN115348251A publication Critical patent/CN115348251A/zh
Pending legal-status Critical Current

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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及一种文件下载方法、装置、计算机设备和存储介质。所述方法包括:获取文件下载请求,文件下载请求携带待下载文件标识;获取待下载文件标识对应的候选节点信息集合;获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息;对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数;基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。采用本方法能够提高文件下载的质量。

Description

文件下载方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种文件下载方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术以及智能终端的发展,诸如手机、平板电脑等终端已成为人们日常生活和工作不可或缺的物品。人们可以通过终端下载并安装各种应用程序,以进行工作、生活和娱乐。在应用程序的使用过程中,会出现需要从节点下载文件的情况。
传统技术中,终端在下载文件时,会从可用节点中随机确定一个目标节点,从该目标节点上下载文件。然而,随机确定节点的下载方式,无法保障得到可靠的目标节点,从而无法保障文件下载的质量。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高文件下载质量的文件下载方法、装置、计算机设备和存储介质。
一种文件下载方法,所述方法包括:
获取文件下载请求,文件下载请求携带待下载文件标识;
获取待下载文件标识对应的候选节点信息集合;
获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息;
对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数;
基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。
在一个实施例中,所述方法通过统一处理模块执行,获取文件下载请求,包括:
统一处理模块接收目标应用通过预设接口发送的文件下载请求;
从目标节点获取待下载文件标识对应的目标文件之后,所述方法还包括:
统一处理模块将目标文件通过预设接口发送至目标应用。
在一个实施例中,获取待下载文件标识对应的候选节点信息集合,包括:
基于当前位置信息和待下载文件标识生成节点查询请求;
将节点查询请求发送至查询服务器,以使查询服务器获取初始节点信息集合,基于当前位置信息对初始节点信息集合进行筛选得到候选节点信息集合,初始节点信息集合对应的初始节点存储有目标文件;
接收查询服务器返回的候选节点信息集合。
在一个实施例中,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,包括:
当候选节点为历史建立过通信连接的节点时,根据候选节点信息集合中的节点标识获取对应的历史通信信息集合作为对应的节点通信信息集合。
在一个实施例中,基于目标下载优先参数从各个候选节点中确定目标节点,包括:
基于目标下载优先参数确定各个候选节点对应的目标下载优先级;
将目标下载优先级最高的候选节点作为目标节点。
在一个实施例中,所述方法还包括:
当在预设下载时间内未获取到所述目标文件时,获取待下载文件标识对应的资源节点信息;
从资源节点信息对应的资源节点获取目标文件。
一种文件下载装置,所述装置包括:
请求获取模块,用于获取文件下载请求,文件下载请求携带待下载文件标识;
节点信息获取模块,用于获取待下载文件标识对应的候选节点信息集合;
通信信息获取模块,用于获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息;
信息融合模块,用于对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数;
文件下载模块,用于基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取文件下载请求,文件下载请求携带待下载文件标识;
获取待下载文件标识对应的候选节点信息集合;
获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息;
对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数;
基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取文件下载请求,文件下载请求携带待下载文件标识;
获取待下载文件标识对应的候选节点信息集合;
获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息;
对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数;
基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。
上述文件下载方法、装置、计算机设备和存储介质,通过获取文件下载请求,文件下载请求携带待下载文件标识,获取待下载文件标识对应的候选节点信息集合,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数,基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。这样,综合通信时延信息和下载时延信息来评估节点,可以从各个候选节点中筛选出在通信和下载方面表现优秀的节点作为目标节点,从目标节点下载目标文件,可以有效保障目标文件的下载成功率和下载速度,从而提高目标文件的下载质量。进一步的,在评估节点时考虑下载时延信息也可以有效避免连续下载任务重复选择同一下载失败节点进行下载,进一步提高目标文件的下载质量。
附图说明
图1为一个实施例中文件下载方法的应用环境图;
图2为一个实施例中文件下载方法的流程示意图;
图3为一个实施例中融合通信时延信息和下载时延信息的流程示意图;
图4A为一个实施例中文件下载方法的应用场景示意图;
图4B为另一个实施例中文件下载方法的应用场景示意图;
图5为一个实施例中分布式下载目标文件的流程示意图;
图6为另一个实施例中分布式下载目标文件的流程示意图;
图7A为一个实施例中文件下载的时序图;
图7B为另一个实施例中文件下载的时序图;
图7C为又一个实施例中分布式下载目标文件的流程示意图;
图8为一个实施例中文件下载装置的结构框图;
图9为一个实施例中计算机设备的内部结构图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
本申请中的目标文件可以存储在网络中至少一个存储节点上,存储节点包括CDN服务器和雾节点。
本申请提供的文件下载方法,可以应用于如图1所示的应用环境中。其中,计算机设备102可以是服务器,也可以是终端。候选节点106可以是服务器,也可以是终端。计算机设备102、查询服务器104和候选节点106可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、路由器等,但并不局限于此。
计算机设备获取文件下载请求,文件下载请求携带待下载文件标识。计算机设备可以根据文件下载请求从查询服务器获取待下载文件标识对应的候选节点信息集合。计算机设备可以获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息。计算机设备对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数,基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。
在一个实施例中,如图2所示,提供了一种文件下载方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:
步骤S202,获取文件下载请求,文件下载请求携带待下载文件标识。
其中,文件下载请求是用于请求下载文件。待下载文件标识是指待下载的目标文件对应的文件标识。文件标识是一种标识,用于唯一标识文件,具体可以包括字母、数字和符号中至少一种字符的字符串。目标文件可以是以文字、图片、音频、视频中的至少一种形式展示的数据,目标文件是可以在网络上进行传输的数据。
具体地,计算机设备可以获取在本地生成的文件下载请求。计算机设备上运行有应用程序,计算机设备可以接收用户作用于应用程序相关界面上的触发操作生成文件下载请求,该文件下载请求携带待下载文件标识。计算机设备可以根据文件下载请求从相应节点上下载目标文件。例如,当用户想要通过计算机设备上的影音应用程序离线观看电影时,用户可以在影音应用程序中目标电影(目标文件)对应的播放页面触发下载控件,计算机设备基于该触发操作生成携带目标电影对应的待下载文件标识的文件下载请求。当用户想要通过计算机设备上的直播应用程序在线观看直播时,用户可以在直播应用程序中目标直播间(目标文件)对应的播放页面触发观看控件,计算机设备基于该触发操作生成携带目标直播间对应的待下载文件标识的文件下载请求。可以理解,计算机设备也可以获取其他终端、服务器发送的文件下载请求。例如,终端获取在本地生成的文件下载请求,将文件下载请求发送至计算机设备,以使计算机设备根据该文件下载请求下载对应的目标文件。
在一个实施例中,计算机设备在响应文件下载请求之前,可以对文件下载请求进行安全校验。当文件下载请求未通过安全校验,不响应文件下载请求;当文件下载请求通过安全校验,才响应文件下载请求,执行后续步骤。对文件下载请求进行安全校验具体可以是查询触发文件下载请求的应用程序对应的应用标识是否记录在白名单中,也就是,查询触发文件下载请求的应用程序是否为安全系数较高、可信任的应用程序。白名单中记录有可信任的应用程序的应用标识。应用标识是一种标识,用于唯一标识应用程序,具体可以包括字母、数字和符号中至少一种字符的字符串。
步骤S204,获取待下载文件标识对应的候选节点信息集合。
其中,候选节点信息集合包括多个候选节点对应的节点信息。候选节点是指存储有待下载文件标识对应的目标文件的节点。节点可以是服务器,也可以是终端设备。节点信息可以包括候选节点对应的节点标识、节点地址、节点带宽等信息。计算机设备可以基于节点信息和对应的候选节点进行通信。可以理解,同一文件可以存储在多个节点上,不同的节点可以存储不同的文件。
具体地,计算机设备需要从存储有目标文件的节点上下载目标文件,因此,计算机设备需要先获知哪些节点存储有目标文件。计算机设备可以从查询服务器获取待下载文件标识对应的候选节点信息集合。查询服务器上记录有各个节点所存储的文件数据,计算机设备可以向查询服务器发送节点查询请求,以使查询服务器根据节点查询请求返回由存储有目标文件的各个候选节点的节点信息组成的候选节点信息集合。
在一个实施例中,候选节点可以是CDN(Content Delivery Network,内容分发网络)中的资源节点,也可以是雾节点。资源节点是指CDN中普通的数据缓存服务器,即CDN服务器。雾节点是指CDN中的边缘设备,例如,路由器、边缘服务器等。相比于传统的资源节点,雾节点通常更靠近用户,拥有大量闲置、优质、低成本的带宽。当候选节点为雾节点时,计算机设备可以更快速地从雾节点上获取目标文件,从雾节点下载目标文件也可以有效地减轻资源节点的带宽压力。
在一个实施例中,计算机设备一旦获取到候选节点信息集合,计算机设备就可以和候选节点信息集合对应的各个候选节点建立通信。相应的,计算机设备在下载完目标文件后,计算机设备可以立即与各个候选节点断开通信。这样,可以避免计算机设备的资源浪费。计算机设备也可以在下载完目标文件后,继续与各个候选节点保持一段时间的通信,若在这段时间内计算机设备没有接收到新的文件下载请求或候选节点上没有存储新的待下载的目标文件,计算机设备再与各个候选节点断开通信。这样,在相邻文件下载请求之前无需重复与同一候选节点重复建立通信连接,可以有效减少处理后续文件下载请求的时间,提高效率。
步骤S206,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息。
其中,一个候选节点对应一个节点通信信息集合。节点通信信息集合中的节点通信信息是计算机设备与候选节点进行通信得到的。节点通信信息可以是计算机设备与候选节点基于历史通信得到的,也可以是计算机设备与候选节点基于当前通信得到的,也可以是计算机设备与候选节点基于历史通信和当前通信综合得到的。在通信过程中,计算机设备可以只是保持和候选节点的通信连接,计算机设备也可以从候选节点下载文件数据。节点通信信息包括通信时延信息和下载时延信息,还可以进一步包括下载速度信息、下载丢包信息、节点并发数信息等通信过程中得到的信息。通信时延信息是计算机设备为了和候选节点建立通信连接而产生的、与通信时间相关的数据,例如,基于至少一次用于建立通信连接的心跳请求和对应的心跳回复之间的时间差计算得到通信时延信息。下载时延信息是计算机设备从候选节点下载文件而产生的、与下载时间相关的数据,例如,基于至少一次发送至候选节点的历史下载请求对应的请求发送时间和初始请求回复时间之间的时间差计算得到下载时延信息。下载速度信息是计算机设备从候选节点下载文件而产生的、与速度相关的数据,例如,基于至少一次下载文件对应的请求下载数据量和下载耗时计算得到下载速度信息。下载丢包信息是计算机设备从候选节点下载文件而产生的、与丢失数据包相关的数据,例如,基于至少一次下载文件对应的丢包率计算得到下载丢包信息。节点并发数信息是基于候选节点可以同时连接的计算机设备的数量得到的。
具体地,计算机设备可以获取候选节点信息集合对应的各个候选节点的节点通信信息集合。在任何时候,计算机设备在和候选节点的通信过程中都可以记录并存储产生的节点通信信息,将节点通信信息和对应的候选节点的节点标识进行关联存储。若候选节点和计算机设备在历史时间通信过,那么计算机设备可以基于该候选节点的节点标识获取对应的历史通信信息集合作为候选节点的节点通信信息集合,也可以基于计算机设备和该候选节点的当前通信信息和历史通信信息集合生成该候选节点对应的节点通信信息集合。若候选节点和计算机设备在历史时间没有通信过,那么计算机设备可以将该候选节点对应的节点通信信息集合确定为空,也可以基于计算机设备和该候选节点的当前通信信息生成该候选节点对应的节点通信信息集合。也就是,计算机设备可以直接从历史通信过的候选节点中确定目标节点,也可以是在与各个候选节点通信一段时间后,从各个候选节点中确定目标节点。
可以理解,若用于生成通信时延信息的心跳RTT(Round-Trip Time)更新不及时,只是基于通信时延信息进行节点评估,会导致节点评估不准确。心跳RTT是基于心跳请求和对应的心跳回复的时间差得到的,通常情况下,每3s发送一次心跳请求,也即每3s更新心跳RTT。根据现网数据可知,请求下载的目标文件的大小平均为800KB,下载速度平均为1200KBps,下载平均耗时为750ms,因此3s中通常能够完成4到6次的下载任务。由于心跳RTT更新不够及时(3s VS 750ms),只是基于通信时延信息进行节点评估,会导致连续任务下载选择同一节点。在任务超时失败的时候,也会导致重复向失败节点下载文件。此时,综合通信时延信息和下载时延信息来进行节点评估可以有效解决上述问题,下载时延信息是文件下载所产生的下载时延信息,下载时延信息可以在一定程度上弥补通信时延信息更新不及时的缺陷,有效避免连续下载任务重复选择同一下载失败节点进行下载,从而有效提高节点评估的准确性,进而提高文件下载的质量。
在一个实施例中,计算机设备和候选节点之间的数据通信可以是基于不可靠协议建立的。计算机设备和候选节点可以基于UDP协议(User Datagram Protocol,用户数据报协议)进行通信,UDP协议是一种传输层协议,提供面向事务的简单不可靠信息传送服务。由于UDP协议是不可靠的协议,节点发送给计算机设备的数据包可能会丢失。在UDP协议下,传输层并不会主动重传数据包,也不会多发其他数据包。因此,当计算机设备和候选节点基于UDP协议进行通信时,下载丢包信息也可以作为衡量节点性能的一个重要指标。
在一个实施例中,计算机设备和候选节点之间的数据通信可以是基于可靠协议建立的。计算机设备和候选节点可以基于cable协议进行通信,cable协议是一种在UDP协议的基础上通过添加可靠传输模块的传输层协议。在cable协议下,传输层会主动发送ack(acknowledge character,确认字符)、probe(探测)等数据包,这些多余的数据包主要用于保证传输协议的可靠性。因此,当计算机设备和候选节点基于cable协议进行通信时,计算机设备会接收到除目标文件对应的数据包之外的其他数据包,计算机设备无法准确计算丢包率。此时,为了提高节点评估的准确性,计算机设备获取到的节点通信信息集合中可以不包括下载丢包信息。
步骤S208,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数。
其中,目标下载优先参数是用于确定候选节点对应的目标下载优先级的数据。目标下载优先参数具体可以是以得分的形式呈现。可以理解,候选节点的目标下载优先级越高,表明该候选节点越可靠,从该候选节点下载文件可以有效保障文件的下载成功率和下载速度。
具体地,计算机设备可以对一个节点通信信息集合中的节点通信信息进行融合,得到对应的候选节点的目标下载优先参数,分别对各个节点通信信息集合中的节点通信信息进行融合,最终可以得到各个候选节点分别对应的目标下载优先参数。
在一个实施例中,在同一节点通信信息集合中,计算机设备可以将通信时延信息和下载时延信息进行融合可以得到目标时延信息,基于目标时延信息得到对应的目标下载优先参数。在融合通信时延信息和下载时延信息的时候,可以是等比例融合,也就是,在融合通信时延信息和下载时延信息的时候,通信时延信息和下载时延信息对应的注意力权重均为50%,即目标时延信息=0.5*通信时延信息+0.5*下载时延信息。当然,也可以是非等比例融合,例如,目标时延信息=0.4*通信时延信息+0.6*下载时延信息。
若节点通信信息集合中还包括其他节点通信信息,在同一节点通信信息集合中,计算机设备可以先将同一纬度的节点通信信息进行初阶融合,再将各个维度对应的初阶融合后的节点通信信息进行进阶融合。例如,计算机设备可以先将通信时延信息和下载时延信息进行融合可以得到目标时延信息,再基于目标时延信息和其他维度的节点通信信息得到对应的目标下载优先参数。可以理解,因为通信时延信息和下载时延信息都是与时间相关的节点通信信息,所以先将通信时延信息和下载时延信息进行融合,再融合其他维度的节点通信信息。
步骤S210,基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。
其中,目标节点是指目标下载优先级较高的至少一个候选节点。
具体地,在得到目标下载优先参数后,计算机设备可以基于目标下载优先参数确定各个候选节点对应的目标下载优先级,基于目标下载优先级从各个候选节点中确定目标节点,进而从目标节点获取待下载文件标识对应的目标文件。
在一个实施例中,基于目标下载优先参数从各个候选节点中确定目标节点,包括:
基于目标下载优先参数确定各个候选节点对应的目标下载优先级;将目标下载优先级最高的候选节点作为目标节点。
具体地,目标节点可以是一个候选节点。计算机设备可以基于目标下载优先参数确定各个候选节点对应的目标下载优先级,例如,当目标下载优先参数越大,表示节点性能越差时,计算机设备可以将各个目标下载优先参数从小到大的顺序进行排序,基于排序结果确定各个候选节点对应的目标下载优先级,排序越靠前的目标下载优先参数所对应的候选节点的目标下载优先级越高。计算机设备可以将目标下载优先级最高的候选节点作为目标节点,从节点性能最好的目标节点上下载完整的目标文件。
当然,目标节点也可以为多个候选节点。为了提高下载速度,计算机设备可以采取分布式下载。计算机设备可以将目标文件切分为多个子片段,基于目标下载优先参数从各个候选节点中确定各个子片段分别对应的目标节点,进而从各个目标节点上获取对应的子片段。例如,计算机设备将目标文件切分为子片段1、子片段2和子片段3,计算机设备将目标下载优先级最高的三个候选节点分别作为子片段1、子片段2、子片段3分别对应的目标节点,从三个目标节点上分别获取子片段1、子片段2、子片段3。其中,子片段的下载过程可以是并行处理的,例如,同时并行下载子片段1、子片段2、子片段3。计算机设备也可以先基于目标下载优先参数从各个候选节点中确定第一子片段对应的目标节点,在下载第一子片段的过程中,基于计算机设备和各个候选节点的当前通信所产生的当前通信信息更新对应的节点通信信息集合,计算机设备基于更新后的节点通信信息集合得到各个候选节点对应的更新下载优先参数,基于更新下载优先参数从各个候选节点中确定下一子片段对应的目标节点,以此类推,计算机设备始终是从当前最可靠的候选节点下载相应的子片段。
上述文件下载方法中,通过获取文件下载请求,文件下载请求携带待下载文件标识,获取待下载文件标识对应的候选节点信息集合,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数,基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。这样,综合通信时延信息和下载时延信息来评估节点,可以从各个候选节点中筛选出在通信和下载方面表现优秀的节点作为目标节点,从目标节点下载目标文件,可以有效保障目标文件的下载成功率和下载速度,从而提高目标文件的下载质量。进一步的,在评估节点时考虑下载时延信息也可以有效避免连续下载任务重复选择同一下载失败节点进行下载,进一步提高目标文件的下载质量。
在一个实施例中,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,包括:
获取发送至候选节点的历史下载请求对应的请求发送时间和初始请求回复时间;基于同一候选节点对应的请求发送时间和初始请求回复时间,得到候选节点对应的下载时延信息。
其中,历史下载请求是指在当前轮次节点评估之前发送至候选节点的数据下载请求,用于请求下载文件数据。历史下载请求可以是用于请求下载整个文件的文件数据,也可以是用于请求下载部分文件片段的文件数据。请求发送时间是指计算机设备发送历史下载请求的时间。初始请求回复时间是指计算机设备首次接收到历史下载请求对应的请求回复的时间。例如,计算机设备向候选节点发送数据下载请求,用于请求下载200KB的文件数据,候选节点接收到数据下载请求后,会以数据包的形式逐步将200KB的文件数据发送至计算机设备,计算机设备可以将接收到的第一份数据包的接收时间作为初始请求回复时间。
具体地,计算机设备在进行当前轮次节点评估之前,可能向候选节点信息集合对应的各个候选节点发送过数据下载请求。若计算机设备向候选节点发送过数据下载请求,计算机设备就可以统计对应的下载时延信息。计算机设备在获取到候选节点信息集合后,计算机设备可以查询是否向候选节点信息集合对应的各个候选节点发送过数据下载请求。若存在发送过数据下载请求的候选节点,计算机设备可以获取发送至该候选节点的历史下载请求对应的请求发送时间和初始请求回复时间来计算下载时延信息。可以理解,同一候选节点可以对应至少一个历史下载请求,那么,计算机设备可以基于同一候选节点、且同一历史下载请求对应的请求发送时间和初始请求回复时间计算首包RTT,得到同一候选节点对应的各个首包RTT,基于同一候选节点对应的各个首包RTT得到对应的下载时延信息。例如,针对候选节点1,计算机设备统计最近20次首包RTT,计算平均值作为候选节点1的下载时延信息。
在一个实施例中,除了基于首包RTT得到下载时延信息,还可以基于首包RTT和下载RTT得到下载时延信息。
在一个实施例中,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,包括:
分别向各个候选节点发送心跳请求,接收各个候选节点基于心跳请求返回的响应消息,心跳请求用于和对应的候选节点建立通信;基于同一候选节点对应的心跳请求和响应消息,得到各个候选节点对应的通信时延信息。
其中,心跳请求是计算机设备用于和候选节点建立通信的请求。响应消息是候选节点接收到心跳请求后,向计算机设备发送的心跳回复。计算机设备一旦获取到节点的节点信息,计算机设备就可以基于节点信息向节点发送心跳请求,以建立和节点的通信连接。计算机设备和候选节点之间的通信连接可以通过定时的心跳请求来激活和维持,因此计算机设备可以定时发送心跳请求至候选节点,候选节点也可以定时发送心跳请求至计算机设备。定时的时间间隔可以根据实际需要进行设置,例如每间隔3s发送一次心跳请求,每间隔5s发送一次心跳请求。
具体地,在获取到候选节点信息集合后,计算机设备可以和各个候选节点基于心跳请求建立通信连接。计算机设备可以不考虑当前通信所产生的数据,直接基于历史通信数据对候选节点进行评估,从中确定目标节点。当然,为了提高节点评估的准确性,选取当前更可靠的节点,计算机设备也可以先与各个候选节点建立通信连接,在通信预设时间后,基于当前通信所产生的数据生成节点通信信息集合,或者,基于当前通信所产生的数据和历史通信数据生成节点通信信息集合。其中,预设时间可以根据需要进行设置,例如15s。
节点通信信息集合包括通信时延信息,通信时延信息是通过发送接收心跳相关数据来统计计算的。计算机设备可以基于同一候选节点对应的心跳请求和响应消息生成通信时延信息。计算机设备可以计算心跳请求的发送时间和对应的响应消息的接收时间的时间差作为心跳RTT,统计若干次心跳RTT的平均值作为通信时延信息。例如,针对候选节点1,计算机设备统计最近20次心跳RTT,计算平均值作为候选节点1的通信时延信息。
在一个实施例中,计算机设备可以对目标文件进行切分,得到多个子片段。若各个候选节点都是从来没有和计算机设备建立过通信连接的新节点,计算机设备可以从多个候选节点中随机确定一个候选节点作为目标节点来下载第一子片段。然后,计算机设备基于在下载第一子片段的过程中所产生的心跳RTT和首包RTT来计算各个候选节点对应的目标下载优先参数,基于目标下载优先参数从各个候选节点中确定新的目标节点,从新的目标节点上下载剩余的子片段。
本实施例中,基于当前通信所产生的数据生成节点通信信息集合,可以有效保障节点评估的准确性和及时性。计算机设备通过心跳请求主动获取实时的节点通信信息,这些节点通信信息能够反映出候选节点的“繁忙”程度,基于这些节点通信信息评估候选节点,可以从中选取当前更可靠的节点作为目标节点,从而能够提高从目标节点获取目标文件的速度。
在一个实施例中,节点通信信息还包括下载速度信息,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,包括:
获取发送至候选节点的历史下载请求对应的请求下载数据量、请求发送时间和目标请求回复时间;基于同一历史下载请求对应的请求下载数据量、请求发送时间和目标请求回复时间,得到各个历史下载请求对应的历史下载速度;基于同一候选节点对应的历史下载速度,得到候选节点对应的下载速度信息。
其中,请求下载数据量是指请求从候选节点下载的文件数据的数据量。请求发送时间是指计算机设备发送历史下载请求的时间。目标请求回复时间是指计算机设备最后一次接收到历史下载请求对应的请求回复的时间。例如,计算机设备向候选节点发送数据下载请求,用于请求下载200KB的文件数据,候选节点接收到数据下载请求后,会以数据包的形式逐步将200KB的文件数据发送至计算机设备,计算机设备可以将接收到的最后一份数据包的接收时间作为目标请求回复时间。
具体地,计算机设备在获取到候选节点信息集合后,计算机设备可以查询是否向候选节点信息集合对应的各个候选节点发送过数据下载请求。若存在发送过数据下载请求的候选节点,计算机设备可以获取发送至该候选节点的历史下载请求对应的请求下载数据量、请求发送时间和目标请求回复时间来计算下载速度信息。计算机设备可以基于请求发送时间和目标请求回复时间计算下载RTT,基于请求下载数据量和下载RTT计算得到下载速度信息。可以理解,同一候选节点可以对应至少一个历史下载请求,那么,计算机设备可以基于同一候选节点、且同一历史下载请求对应的请求发送时间和目标请求回复时间计算下载RTT,得到同一候选节点对应的各个下载RTT,基于同一历史下载请求对应的请求下载数据量和下载RTT得到对应的下载速度,基于同一候选节点对应的各个下载速度得到下载速度信息。例如,针对候选节点1,计算机设备统计最近20次下载速度,计算平均值作为候选节点1的下载速度信息。
在一个实施例中,下载速度信息可以只包括历史成功下载速度。历史成功下载速度是基于成功下载文件数据的历史下载请求对应的下载速度得到的。下载速度信息也可以包括历史成功下载速度和历史失败下载速度。历史失败下载速度是基于下载文件数据失败的历史下载请求对应的下载速度得到的。计算机设备向节点发送数据下载请求后,节点会根据数据下载请求向计算机设备发送文件数据。若计算机设备在规定下载时间内没有接收到文件数据,即计算机设备下载文件超时,计算机设备可以确定此次下载文件数据失败,将对应的数据下载请求标记为下载文件数据失败;若计算机设备在规定下载时间内接收到文件数据,计算机设备可以确定此次下载文件数据成功,将对应的数据下载请求标记为成功下载文件数据。计算机设备可以基于成功下载文件数据的历史下载请求对应的请求下载数据量、请求发送时间和目标请求回复时间计算得到历史成功下载速度,基于下载文件数据失败的历史下载请求对应的请求下载数据量、请求发送时间和目标请求回复时间计算得到历史失败下载速度。进而,计算机设备将同一节点对应的历史成功下载速度和历史失败下载速度进行融合得到下载速度信息。其中,融合权重可以根据需要进行设置,例如,设置为等比例融合。
在一个实施例中,下载速度信息包括历史成功下载速度和历史下载失败次数。由于在下载文件数据失败时,目标请求回复时间是不稳定的,也就是,下载RTT和规定下载时间的时间差异可能很大,可能很小。为了减轻计算机设备的计算压力,计算机设备可以不计算历史失败下载速度,只统计历史下载失败次数。
本实施例中,历史下载速度能够反映节点的传输链路状况,因此,基于历史下载速度得到下载速度信息,将下载速度信息作为节点通信信息集合中另一维度的数据可以进一步提高节点评估的准确性和可靠性。
在一个实施例中,如图3所示,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数,包括:
步骤S302,获取目标文件对应的切片信息,切片信息用于在分片段下载目标文件时确定片段大小。
其中,切片信息用于在分片段下载目标文件时确定片段大小。切分信息具体可以是切分数据量,计算机设备可以基于切分数据量对目标文件进行切分。例如,切分数据量为128KB,当文件1对应的文件大小为512KB时,计算机设备基于切分数据量可以将文件1切分为4个子片段(4*128KB=512KB)。
具体地,为了提高文件下载的速度,计算机设备在下载目标文件时可以采取分布式下载的方式。计算机设备可以对目标文件进行切分,将目标文件切分为多个子片段,从至少一个目标节点上下载各个子片段。
在一个实施例中,计算机设备可以基于统一的切分数据量对不同大小的文件进行切分。例如,预设数据量为128KB,当文件1对应的文件大小为512KB时,计算机设备可以将文件1切分为4个子片段(4*128KB=512KB),当文件2对应的文件大小为256KB时,计算机设备可以将文件1切分为2个子片段(2*128KB=256KB)。计算机设备也可以设置不同文件格式分别对应的切分数据量,那么,在获取到文件下载请求后,计算机设备可以基于待下载文件标识确定目标文件对应的目标文件格式,基于目标文件格式对应的切分数据量对目标文件进行切分。例如,视频格式的文件可以设置较大的切分数据量,音频格式的文件可以设置较小的切分数据量。
步骤S304,当切片信息大于或等于切片阈值时,基于第一注意力信息将同一节点通信信息集合中的通信时延信息和下载时延信息进行融合,得到各个候选节点对应的目标延时信息,在第一注意力信息中,通信时延信息对应的注意力度小于下载时延信息对应的注意力度。
步骤S306,当切片信息小于切片阈值时,基于第二注意力信息将同一节点通信信息集合中的通信时延信息和下载时延信息进行融合,得到各个候选节点对应的目标延时信息,在第二注意力信息中,通信时延信息对应的注意力度大于或等于下载时延信息对应的注意力度。
其中,注意力信息用于有选择性、有侧重点地融合通信时延信息和下载时延信息。注意力信息包括通信时延信息和下载时延信息分别对应的注意力度,即注意力信息包括通信时延信息和下载时延信息分别对应的注意力权重,即注意力度是指注意力权重。
具体地,目标延时信息是由通信时延信息和下载时延信息加权计算得到的。目标延时信息也可以称为平滑网络时延SRTT(Smooth Round-Trip Time),SRTT是为了平衡不同RTT的差异,使RTT变化看起来更加圆滑。SRTT=(a*心跳RTT)+((1-a)*首包RTT),a∈[0,1.0]。心跳RTT表示通信时延信息,首包RTT表示下载时延信息。在进行节点评估时,首包RTT的参考价值大于心跳RTT的参考价值。并且,只要计算机设备和节点保持通信,心跳RTT就会持续不断地生成,心跳RTT的数据会比较多。当切片信息大于或等于切片阈值,即目标文件对应的子片段比较大时,更多地参考与下载相关的下载时延信息来评估节点,这样最终选取得到的目标节点可以有效保障下载目标文件对应的子片段的速度和成功率。因此,当切片信息大于或等于切片阈值时,计算机设备可以获取第一注意力信息,基于第一注意力信息将同一节点通信信息集合中的通信时延信息和下载时延信息进行融合,得到各个候选节点对应的目标延时信息。在第一注意力信息中,通信时延信息对应的注意力度小于下载时延信息对应的注意力度。例如,当切片信息大于或等于切片阈值时,通信时延信息对应的注意力度为0.3,下载时延信息对应的注意力度为0.7,那么,目标延时信息=0.3*通信时延信息+0.7*下载时延信息。
相应的,当切片信息小于切片阈值时,计算机设备可以获取第二注意力信息,基于第二注意力信息将同一节点通信信息集合中的通信时延信息和下载时延信息进行融合,得到各个候选节点对应的目标延时信息。在第二注意力信息中,通信时延信息对应的注意力度大于或等于下载时延信息对应的注意力度。例如,当切片信息小于切片阈值时,通信时延信息对应的注意力度为0.5,下载时延信息对应的注意力度为0.5,那么,目标延时信息=0.5*通信时延信息+0.5*下载时延信息。
步骤S308,基于各个候选节点对应的目标延时信息得到各个候选节点对应的目标下载优先参数。
具体地,计算机设备可以基于各个候选节点对应的目标延时信息得到各个候选节点对应的目标下载优先参数。计算机设备具体可以对各个候选节点对应的目标延时信息进行归一化处理,得到各个候选节点分别对应的目标通信分数,将目标通信分数作为目标下载优先参数,最终得到各个候选节点对应的目标下载优先参数。例如,计算机设备基于目标延时信息计算时延得分,将各个候选节点对应的时延得分作为各个候选节点对应的目标下载优先参数。其中,对目标延时信息进行归一化处理的具体方法可以参考后续相关实施例所述的方法,此处不再赘述。
在一个实施例中,若通信时延信息和下载时延信息均为非0,那么,计算机设备可以基于第一注意力信息或第二注意力信息对通信时延信息和下载时延信息进行融合得到目标时延信息。若通信时延信息为0,计算机设备可以只是基于下载时延信息得到目标时延信息。若下载时延信息为0,计算机设备可以只是基于通信时延信息得到目标时延信息。例如,假如心跳RTT和首包RTT分别是40ms和60ms,那么SRTT=40ms*0.5+60ms*0.5=50ms,假如没有首包RTT,心跳RTT为40ms,那么SRTT=40ms。
本实施例中,针对不同的切片信息,对通信时延信息和下载时延信息采取不同的融合方案,能够有效提高目标延时信息的可靠性,从而提高节点评估的可靠性,提高文件下载的可靠性。
在一个实施例中,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数,包括:
在同一节点通信信息集合中,将通信时延信息和下载时延信息进行融合,得到目标时延信息;将同一节点通信信息集合中各个维度的节点通信信息进行归一化处理,得到各个候选节点在各个维度分别对应的节点通信分数;对同一候选节点对应的各个节点通信分数进行融合,得到各个候选节点对应的目标通信分数;基于各个候选节点对应的目标通信分数得到各个候选节点对应的目标下载优先参数。
其中,归一化处理是用于将不同候选节点之间同一维度的节点通信信息映射到同一数值范围内,以便后续进行数据融合、数据比较。
具体地,节点通信信息集合中可以包括多个维度的节点通信信息。通信时延信息和下载时延信息属于同一维度的节点通信信息,均属于时间维度的节点通信信息。在融合不同维度的节点通信信息之前,计算机设备可以先将同一节点通信信息集合中通信时延信息和下载时延信息进行融合,得到目标时延信息。然后,计算机设备再将同一节点通信信息集合中各个维度的节点通信信息分别进行归一化处理,得到各个候选节点在各个维度分别对应的节点通信分数。具体可以通过传统方法进行归一化处理,例如,候选节点包括候选节点1、候选节点2、候选节点3,候选节点1对应的第一维度的节点通信信息为A,候选节点2对应的第一维度的节点通信信息为B,候选节点3对应的第一维度的节点通信信息为C,那么,候选节点1对应的第一维度的节点通信分数可以是A/(A+B+C)。也可以通过预设表格进行归一化处理,预设表格记录了节点通信信息和节点通信分数的关联关系,通过查表可以得到某一节点通信信息对应的节点通信分数。
在得到各个候选节点在各个维度分别对应的节点通信分数后,计算机设备可以对同一候选节点对应的各个节点通信分数进行融合,得到各个候选节点分别对应的目标通信分数。例如,对一个候选节点对应的各个节点通信分数进行加权求和,得到该候选节点对应的目标通信分数。具体可以是等比例加权求和,也可以是非等比例加权求和。例如,目标通信分数=(b*平滑时延得分)+((1-b)*速度得分),b∈[0,1.0]。最终,计算机设备将候选节点对应的目标通信分数作为候选节点对应的目标下载优先参数,得到各个候选节点分别对应的目标下载优先参数。
在一个实施例中,文件下载请求携带请求触发应用对应的目标应用标识,计算机设备可以基于目标应用标识对应的目标注意力信息,将同一候选节点对应的各个节点通信分数进行融合得到对应的目标通信分数。目标注意力信息用于确定请求触发应用更关注的节点通信信息。目标注意力信息包括各个维度的节点通信分数分别对应的注意力权重。注意力信息中所有注意力权重之和可以为1。可以理解,某一维度的节点通信分数对应的注意力权重越高,应用程序更关注该维度的节点通信信息所反映的节点性能。例如,直播应用程序更关注时间维度的节点通信信息。
可以理解,将通信时延信息和下载时延信息进行融合可以参照前述相关实施例所述的方法,此处不再赘述。
本实施例中,将同一节点通信信息集合中各个维度的节点通信信息进行归一化处理后再进行融合得到目标通信分数,能够有效保障目标通信分数的可靠性和有效性,方便后续基于目标下载优先参数从各个候选节点中确定目标节点。
在一个实施例中,将同一节点通信信息集合中各个维度的节点通信信息进行归一化处理,得到各个候选节点在各个维度分别对应的节点通信分数,包括:
获取各个维度分别对应的关联关系信息,关联关系信息表征节点通信信息和节点通信分数的关联关系,关联关系信息包括同一维度的节点通信信息对应的多个按序排列的区间,每个区间分别存在对应的通信分数参考信息,通信分数参考信息按照区间的排列顺序呈单调变化趋势;获取当前候选节点在当前维度对应的当前节点通信信息,从当前维度对应的关联关系信息中获取各个区间对应的区间范围;按照各个区间对应的区间范围对当前节点通信信息进行分解,得到各个区间对应的当前通信子信息;基于同一区间对应的当前通信子信息和通信分数参考信息得到当前候选节点在当前维度对应的节点通信分数。
其中,关联关系信息用于表征节点通信信息和节点通信分数的关联关系,计算机设备基于关联关系信息可以确定某一节点通信信息对应的节点通信分数。关联关系信息包括同一维度的节点通信信息对应的多个按序排列的区间,每个区间分别存在对应的通信分数参考信息,通信分数参考信息按照区间的排列顺序呈单调变化趋势。一个区间对应一个局部的节点通信信息范围,例如,0-10为一个区间,10-20为另一个区间。不同区间之间的区间范围可以包括重叠的数据,不同区间之间的区间范围也可以不重叠,不同区间之间的区间范围的跨度可以相同可以不同。一个区间对应的通信分数参考信息用于计算落入该区间的节点通信信息所对应的参考通信分数。通信分数参考信息可以是公式,也可以是具体的数据。单调变化趋势可以是单调递增,也可以是单调递减。单调变化趋势可以是匀速变化,也可以是加速变化,例如,按指数变化。不同维度对应不同的关联关系信息。关联关系信息可以以表格的形式呈现。当前通信子信息是指当前节点通信信息落入某一区间中的节点通信子信息。
具体地,计算机设备可以获取各个维度分别对应的关联关系信息,基于关联关系信息确定候选节点在各个维度分别对应的节点通信分数。以计算当前候选节点在当前维度对应的节点通信分数为例,计算机设备可以获取当前候选节点在当前维度对应的当前节点通信信息,从当前维度对应的关联关系信息中获取各个区间对应的区间范围,按照各个区间对应的区间范围对当前节点通信信息进行分解,得到各个区间对应的当前通信子信息。例如,当前维度对应的关联关系信息包括区间1(0-10)、区间2(10-30)、区间3(30-60),当前节点通信信息为40。因为40>10,对当前节点通信信息进行分解得到的区间1对应的当前通信子信息为10(10-0=10);40>30,对当前节点通信信息进行分解得到的区间2对应的当前通信子信息为20(30-10=20);40<60,对当前节点通信信息进行分解得到的区间3对应的当前通信子信息为10(40-30=10)。进而,计算机设备可以基于同一区间对应的当前通信子信息和通信分数参考信息得到当前候选节点在当前维度对应的节点通信分数。例如,区间1对应的通信分数参考信息为2、区间2(10-30)对应的通信分数参考信息为4、区间3(30-60)对应的通信分数参考信息为8,当前节点通信信息为40,那么当前节点通信信息对应的节点通信分数为98(10*2+20*4+10*8=98)。同理,计算机设备可以得到当前候选节点在其他维度对应的节点通信分数,计算机设备可以得到其他候选节点在各个维度对应的节点通信分数。
在一个实施例中,目标时延信息对应的关联关系信息如表1所示。
表1
平滑网络时延SRTT信息(ms) 对应通信分数参考信息(即对应得分)
0<=SRTT<50 1
50<=SRTT<75 2
50<=SRTT<75 3
100<=SRTT<150 6
150<=SRTT 8
SRTT的区间设置为50-75-100-150的原因:通过分析目前的网络数据,80%的SRTT在[0,50ms],10%的SRTT在[50ms,100ms],所以这里设定了50-75-100的梯度变化。此时,各个区间对应的得分可以不是按照线性比例来设计,因为一般情况下,当SRTT在100ms时,表明网络状况还算不错,所以0<=SRTT<50、50<=SRTT<75、50<=SRTT<75这三个区间得分相差不大(1->2->3)。当SRTT超过150ms时,表明网络状况比较差,因此100<=SRTT<150、150<=SRTT这两个区间对应的得分相较其他区间明显增大(6->8)。
举例说明,假如SRTT为20ms,那么时延得分为20*1=20。假如SRTT为70ms,那么平滑时延得分为50*1+(70-50)*2=90。假如SRTT为160ms,那么平滑时延得分为50*1+(75-50)*2+(100-75)*3+(150-100)*6+(160-150)*8=555。
可以理解,表1中的区间设置和得分设置可以根据实际需要进行变动。
本实施例中,基于关联关系信息对节点通信信息进行归一化处理,能够有效保障归一化处理得到的节点通信分数准确可靠地反映节点性能。
在一个实施例中,当节点通信信息为速度维度对应的下载速度信息时,下载速度信息的归一化处理包括以下步骤:
获取速度维度对应的第一下载速度阈值和第二下载速度阈值,第一下载速度阈值小于第二下载速度阈值;当当前候选节点对应的当前下载速度信息小于第一下载速度阈值时,基于第一关系式计算当前候选节点在速度维度对应的节点通信分数,当前候选节点在速度维度对应的节点通信分数随着当前下载速度信息的减小而增大、且为正数;当当前下载速度信息大于或等于第一下载速度阈值、且小于或等于第二下载速度阈值时,基于第二关系式计算当前候选节点在速度维度对应的节点通信分数,当前候选节点在速度维度对应的节点通信分数随着当前下载速度信息的增大而增大或不变;当当前下载速度信息大于第二下载速度阈值时,基于第三关系式计算当前候选节点在速度维度对应的节点通信分数,当前候选节点在速度维度对应的节点通信分数随着当前下载速度信息的增大而减小、且为负数。
具体地,除了可以基于速度维度对应的关联关系信息对下载速度信息进行归一化处理以外,计算机设备还可以基于第一下载速度阈值和第二下载速度阈值对下载速度信息进行归一化处理。第一下载速度阈值小于第二下载速度阈值。以计算当前候选节点在速度维度对应的下载速度信息为例,计算机设备可以获取当前候选节点对应的当前下载速度信息,比较第一下载速度阈值、第二下载速度阈值和当前下载速度信息的大小。若当前下载速度信息小于第一下载速度阈值,即当前下载速度信息比较慢,表明当前候选节点在速度维度对应的节点性能较差,则对当前候选节点进行惩罚处理,提高当前候选节点在速度维度对应的节点通信分数。当前候选节点在速度维度对应的节点通信分数越高,表明当前候选节点的节点性能越差。计算机设备具体可以基于第一关系式计算当前候选节点在速度维度对应的节点通信分数,在第一关系式中,当前候选节点在速度维度对应的节点通信分数随着当前下载速度信息的减小而增大,并且节点通信分数为正数。也就是,若当前下载速度信息小于第一下载速度阈值,当前下载速度信息越小,对应的节点通信分数越大,对应的节点通信分数越远离零。
若当前下载速度信息大于或等于第一下载速度阈值、且小于或等于第二下载速度阈值,即当前下载速度信息在第一下载速度阈值和第二下载速度阈值之间,表明当前候选节点在速度维度对应的节点性能正常,则不对当前候选节点进行惩罚处理,也不对当前候选节点进行奖励处理。计算机设备具体可以基于第二关系式计算当前候选节点在速度维度对应的节点通信分数,在第二关系式中,当前候选节点在速度维度对应的节点通信分数可以随着当前下载速度信息的增大而不变。也就是,若当前下载速度信息在第一下载速度阈值和第二下载速度阈值之间,当前下载速度信息越大,对应的节点通信分数固定不变。在第二关系式中,当前候选节点在速度维度对应的节点通信分数可以随着当前下载速度信息的增大而增大。也就是,若当前下载速度信息在第一下载速度阈值和第二下载速度阈值之间,当前下载速度信息越大,对应的节点通信分数越大。可以理解,第二关系式中节点通信分数的增大速度小于第一关系式中节点通信分数的增大速度。
若当前下载速度信息大于第二下载速度阈值,即当前下载速度信息比较快,表明当前候选节点在速度维度对应的节点性能较好,则对当前候选节点进行奖励处理,降低当前候选节点在速度维度对应的节点通信分数。计算机设备具体可以基于第三关系式计算当前候选节点在速度维度对应的节点通信分数,在第三关系式中,当前候选节点在速度维度对应的节点通信分数随着当前下载速度信息的增大而减小、且为负数。也就是,若当前下载速度信息大于第二下载速度阈值,当前下载速度信息越小,对应的节点通信分数越大,对应的节点通信分数越接近零。
举例说明,计算机设备可以根据第一下载速度阈值和第二下载速度阈值设置目标下载速度(targetSpeed),目标下载速度用来表示目标期望的速度。基于目标下载速度计算当前下载速度信息对应的速度占比ratio=(speed/targetSpeed)*100。
(1)若ratio<speedRatio1,速度得分为(100-ratio)*speedScore1
(2)若ratio>=speedRatio1且ratio<=speedRatio2,速度得分为ratio*speedScore2
(3)若ratio>speedRatio2,速度得分为-1*ratio*speedScore3
其中,0<speedRatio1<speedRatio2<=100,例如,若speedRatio1为75,speedRatio2为100,targetSpeed为400kbps,则第一下载速度阈值为300kbps,第二下载速度阈值为400kbps。speedScore1>speedScore3>=speedScore2>=0,speedScore1>=2*speedScore3,例如,speedScore1为4,speedScore2为0,speedScore3为1。
假设targetSpeed为400KBps,speedRatio1为75,speedRatio2为100,speedScore1为4,speedScore2为0,speedScore3为1。
若计算得到当前下载速度信息为200KBps,那么ratio=(200KBps/400KBps)*100=50,ratio=50<speedRatio1=75,此时速度得分为=(100-50)*4=200。若计算得到当前下载速度信息为400KBps,那么ratio=(400KBps/400KBps)*100=100,ratio=100<speedRatio2=100,此时速度得分为=100*0=0。若计算得到当前下载速度信息为800KBps,那么ratio=(800KBps/400KBps)*100=200,ratio=200>speedRatio2=100,此时速度得分为=-1*200*1=-200。
本实施例中,候选节点在速度维度对应的节点通信分数越大,表示候选节点的质量越差。候选节点在速度维度对应的节点通信分数越小,表示候选节点的质量越好,最终计算机设备可以选择选择目标通信分数最小的候选节点作为目标节点。针对出现候选节点在速度维度对应的节点通信分数为负数的情况,这正好说明该候选节点下载速度很快,值得优先调度下载文件。
在一个实施例中,获取速度维度对应的第一下载速度阈值和第二下载速度阈值,包括:
获取参考下载速度集合,参考下载速度集合包括多个参考下载速度;获取目标文件对应的切片信息,切片信息用于在分片段下载目标文件时确定片段大小;基于参考下载速度集合和切片信息确定第一下载速度阈值和第二下载速度阈值。
其中,参考下载速度包括计算机设备统计得到的历史下载速度和其他设备统计得到的历史下载速度中的至少一种。
具体地,计算机设备可以综合考虑参考下载速度和目标文件的切片大小来确定第一下载速度阈值和第二下载速度阈值,以提高第一下载速度阈值和第二下载速度阈值的准确性。计算机设备可以获取包括多个参考下载速度的参考下载速度集合,获取目标文件对应的切片信息,基于参考下载速度集合和切片信息确定第一下载速度阈值和第二下载速度阈值。例如,参考下载速度携带对应的请求下载数据量,计算机设备从参考下载速度集合中获取请求下载数据量和切片信息匹配的参考下载速度作为中间下载速度,对中间下载速度进行聚类分析,将中间下载速度分为第一类下载速度和第二类下载速度,第一类下载速度小于第二类下载速度,将第一类下载速度的统计值作为第一下载速度阈值,将第二类下载速度的统计值作为第二下载速度阈值。中间下载速度可以是请求下载数据量和切片信息一样的参考下载速度,请求下载数据量和切片信息的差异在预设阈值内的参考下载速度等。计算机设备也可以预先设置不同切片信息对应的速度调整信息,计算机设备计算参考下载速度集合的统计值作为中间下载速度,基于目标文件对应的切片信息获取对应的目标速度调整信息,基于目标速度调整信息对中间下载速度进行调整,得到第一下载速度阈值和第二下载速度阈值。例如,切片信息越大,第一下载速度阈值和第二下载速度阈值越大,当切分数据量为256KB时,速度调整信息为将中间下载速度的75%作为第一下载速度阈值,将中间下载速度的100%作为第二下载速度阈值,当切分数据量为512KB时,速度调整信息为将中间下载速度的80%作为第一下载速度阈值,将中间下载速度的110%作为第二下载速度阈值。其中,统计值可以是中位值、平均值等。
在一个实施例中,计算机设备可以进一步结合候选节点的节点带宽确定第一下载速度阈值和第二下载速度阈值。可以理解,候选节点的节点带宽越大,第一下载速度阈值和第二下载速度阈值越大。候选节点的节点带宽越大,表明候选节点的初始数据传输能力越强。例如,基于参考下载速度集合、切片信息和节点带宽通过自定义公式计算得到第一下载速度阈值和第二下载速度阈值。
本实施例中,基于参考下载速度集合和切片信息确定第一下载速度阈值和第二下载速度阈值,可以提高第一下载速度阈值和第二下载速度阈值的准确性和可靠性,从而提高节点评估的准确性,提高文件下载的质量。
在一个实施例中,当节点通信信息为速度维度对应的下载速度信息时,下载速度信息包括历史成功下载速度和历史下载失败次数,下载速度信息的归一化处理包括以下步骤:
基于速度维度对应的第一下载速度阈值和第二下载速度阈值,对当前候选节点对应的当前下载速度信息中的历史成功下载速度进行归一化处理,得到第一通信分数;获取当前下载速度信息中的历史失败下载次数对应的预设通信分数作为第二通信分数;基于第一通信分数和第二通信分数得到当前候选节点在速度维度对应的节点通信分数。
具体地,当下载速度信息包括历史成功下载速度和历史下载失败次数时,计算机设备可以分别计算历史成功下载速度和历史下载失败次数对应的通信分数,综合二者的通信分数得到节点在速度维度对应的节点通信分数。以当前候选节点为例,计算机设备可以基于第一下载速度阈值和第二下载速度阈值,对当前候选节点对应的当前下载速度信息中的历史成功下载速度进行归一化处理,得到第一通信分数。而针对历史失败下载次数,计算机设备可以对当前候选节点进行惩罚处理,提高当前候选节点在速度维度对应的节点通信分数。历史失败下载次数越多,当前候选节点在速度维度对应的节点通信分数越高。可以预先设置各个历史失败下载次数分别对应的预设通信分数,例如,若历史失败下载次数为1次,对应的预设通信分数为50,若历史失败下载次数为2次,对应的预设通信分数为100,若历史失败下载次数为3次,对应的预设通信分数为150。计算机设备可以从中获取当前下载速度信息中的历史失败下载次数对应的预设通信分数作为第二通信分数,基于第一通信分数和第二通信分数得到当前候选节点在速度维度对应的节点通信分数。例如,将第一通信分数和第二通信分数的和作为节点通信分数,将第一通信分数和第二通信分数进行加权求和得到节点通信分数。
可以理解,基于第一下载速度阈值和第二下载速度阈值对当前候选节点对应的当前下载速度信息中的历史成功下载速度进行归一化处理的具体过程可以参照前述相关实施例所述的方法。
本实施例中,分别计算历史成功下载速度和历史下载失败次数对应的通信分数,综合二者的通信分数得到节点在速度维度对应的节点通信分数,可以提高节点在速度维度对应的节点通信分数的可靠性,从而提高节点评估的准确性,提高文件下载的质量。
在一个实施例中,本申请的文件下载方法可以通过统一处理模块执行。其中,获取文件下载请求,包括:统一处理模块接收目标应用通过预设接口发送的文件下载请求;从目标节点获取待下载文件标识对应的目标文件之后,所述方法还包括:统一处理模块将目标文件通过预设接口发送至目标应用。
其中,预设接口是统一处理模块的调用接口,用于在统一处理模块和目标应用之间进行数据交互。
具体地,各个应用程序可以共享一个统一处理模块,由计算机设备上的统一处理模块执行文件下载的各个步骤。当用户在应用程序上触发生成文件下载请求后,应用程序调用预设接口,将文件下载请求发送至统一处理模块,文件下载请求携带待下载文件标识。统一处理模块根据文件下载请求获取待下载文件标识对应的候选节点信息集合,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数。统一处理模块基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。在获取到目标文件后,统一处理模块可以通过预设接口将目标文件返回至应用程序,进而应用程序可以将目标文件进行展示。
参考图4A,统一处理模块可以是负责为多个业务应用进行数据下载的、且基于内容分发网络的软件开发工具包(Peer Content Delivery Network Software DevelopmentKit,简称PCDN SDK)。计算机设备上安装有各种业务app,例如,直播app、视频app、音频app。各个业务app中集成有音视频播放器/下载组件,各个业务app可以共享一个PCDN SDK。音视频播放器/下载组件是业务app的文件下载请求通道,PCDN SDK用于下载目标文件,以及和音视频播放器/下载组件进行交互。CDN下载是指通过CDN服务器来下载目标文件。雾节点下载是指通过雾节点来下载目标文件。
PCDN SDK可以只负责从雾节点下载目标文件,例如,当用户在业务app上触发文件下载请求后,业务app的音视频播放器/下载组件可以获取文件下载请求,并通过预设接口将文件下载请求发送至PCDN SDK,以请求从雾节点下载目标文件。PCDN SDK查询存储有目标文件的可用雾节点,基于各个雾节点对应的节点通信信息集合评估各个雾节点,得到各个雾节点对应的目标下载优先参数,基于目标下载优先参数向最可靠的雾节点下载目标文件。PCDN SDK下载到的目标文件通过预设接口发送给业务app的音视频播放器/下载组件,通过音视频播放器/下载组件在业务app上展示目标文件。若从雾节点下载目标文件超时,PCDN SDK可以通知业务app从雾节点下载文件失败,以使业务app转而向存储有目标文件的CDN服务器进行目标文件的下载。
PCDN SDK也可以负责从CDN服务器下载目标文件。例如,当PCDN SDK接收到文件下载请求后,PCDN SDK优先查询存储有目标文件的可用雾节点,从可用雾节点中确定最可靠的雾节点来下载目标文件。若从雾节点下载目标文件超时,PCDN SDK可以进一步查询存储有目标文件的CDN服务器,从CDN服务器下载目标文件。
本实施例中,各个应用程序可以共享一个统一处理模块,由统一处理模块执行文件下载的各个步骤,不需要应用程序自身去进行文件下载,可以减轻计算机设备的存储压力。
在一个实施例中,本申请的文件下载方法可以通过特殊处理模块执行。
各个应用程序内部集成有各自的特殊处理模块。当用户在应用程序上触发文件下载请求后,应用程序内的特殊处理模块可以获取携带待下载文件标识的文件下载请求,获取待下载文件标识对应的候选节点信息集合,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数,基于从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。
参考图4B,特殊处理模块可以是负责为特定业务应用进行数据下载的、且基于内容分发网络的软件开发工具包PCDN SDK。当用户在业务app上触发文件下载请求后,业务app的音视频播放器/下载组件可以获取文件下载请求,并将文件下载请求发送至PCDNSDK,以请求从雾节点下载目标文件。PCDN SDK查询存储有目标文件的可用雾节点,基于各个雾节点对应的节点通信信息集合评估各个雾节点,得到各个雾节点对应的目标下载优先参数,基于目标下载优先参数向最可靠的雾节点下载目标文件。PCDN SDK下载到的目标文件抛送给音视频播放器/下载组件,通过音视频播放器/下载组件在业务app上展示目标文件。可以理解,PCDN SDK除了专门负责雾节点下载以外,也可以负责CDN下载。
在一个实施例中,获取待下载文件标识对应的候选节点信息集合,包括:
基于当前位置信息和待下载文件标识生成节点查询请求;将节点查询请求发送至查询服务器,以使查询服务器获取初始节点信息集合,基于当前位置信息对初始节点信息集合进行筛选得到候选节点信息集合,初始节点信息集合对应的初始节点存储有目标文件;接收查询服务器返回的候选节点信息集合。
其中,当前位置信息是指计算机设备当前所处地理位置的位置信息。节点查询请求是用于查询存储有目标文件的候选节点。查询服务器是用于查询存储有所需文件的节点的服务器。初始节点是指所有存储有目标文件的节点,初始节点包括资源节点和雾节点。
具体地,候选节点可以是专门指代雾节点。计算机设备在获取到文件下载请求后,可以基于自身的当前位置信息和文件下载请求中的待下载文件标识生成节点查询请求,并将节点查询请求发送至查询服务器。查询服务器接收到节点查询请求后,可以根据节点查询请求获取初始节点信息集合,初始节点信息集合对应的初始节点均存储有目标文件。进一步的,因为雾节点离计算机设备更近,从雾节点下载目标文件可以更快速并减轻资源节点的带宽压力,所以查询服务器可以进一步基于当前位置信息对初始节点信息集合进行筛选得到候选节点信息集合,此时,候选节点信息集合对应的候选节点为雾节点。查询服务器具体可以将与当前位置信息的位置距离在预设阈值内的初始节点作为候选节点,基于候选节点对应的节点信息生成候选节点信息集合。在得到候选节点信息集合后,查询服务器可以向计算机设备返回候选节点信息集合。
在一个实施例中,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,包括:
当候选节点为历史建立过通信连接的节点时,根据候选节点信息集合中的节点标识获取对应的历史通信信息集合作为对应的节点通信信息集合。
其中,历史通信信息集合是基于计算机设备和候选节点在历史通信过程所产生的数据生成的。
具体地,候选节点信息集合对应的候选节点可以包括与计算机设备历史建立过通信连接的旧节点,也可以包括从来没有和计算机设备建立过通信连接的新节点。为了能够评估候选节点,计算机设备可以将与候选节点在通信过程中产生的节点通信信息存储在本地,并且将候选节点对应的节点通信信息和候选节点对应的节点标识进行关联存储。那么,当候选节点为历史建立过通信连接的节点时,计算机设备可以根据候选节点信息集合中的节点标识获取对应的历史通信信息集合作为对应的节点通信信息集合。计算机设备根据历史通信信息集合进行节点评估,从各个候选节点中确定目标节点。
在一个实施例中,当候选节点信息集合对应的各个候选节点既包括新节点又包括旧节点时,新节点对应的节点通信信息集合可以为空。计算机设备在确定各个候选节点后,可以只是从存在历史通信信息集合的旧节点中确定目标节点,因为新节点的节点通信信息集合为空。本实施例中,计算机设备认为旧节点比新节点更可靠,在旧节点中进一步选择更可靠的节点作为目标节点。
在一个实施例中,当候选节点信息集合对应的各个候选节点既包括新节点又包括旧节点时,计算机设备在确定各个候选节点后,可以获取旧节点对应的历史通信信息集合作为旧节点对应的节点通信信息集合,对旧节点对应的节点通信信息集合中的节点通信信息进行融合,得到旧节点对应的目标下载优先参数。此外,计算机设备可以获取默认下载优先参数作为新节点对应的目标下载优先参数。其中,默认下载优先参数用于表征一般节点的节点性能,代表了平均水平。默认下载优先参数可以是人为设置的,也可以是基于大数据分析得到的,例如,对历史计算得到的目标下载优先参数求平均值得到默认下载优先参数。本实施例中,计算机设备默认新节点是性能中等的节点,从新节点和旧节点中选取更可靠的节点作为目标节点。
在一个实施例中,为了减轻计算机设备的存储压力,计算机设备可以对历史通信信息集合进行清洗。例如,计算机设备可以限制历史通信信息集合中各个维度的历史通信信息的最大存储数据量,当某一维度的历史通信信息的当前存储数据量超过最大存储数据量时,删除最旧的历史通信信息,以降低当前存储数据量。计算机设备也可以限制历史通信信息集合中存储距离当前时间最接近的预设数目次历史通信所产生的通信数据。
本实施例中,获取候选节点对应的历史通信信息集合作为对应的节点通信信息集合,能够充分利用历史通信数据,更准确地评估节点,从而可以提高文件下载的质量。
在一个实施例中,如图5所示,从目标节点获取待下载文件标识对应的目标文件,包括:
步骤S502,从目标节点下载目标文件对应的第一子片段,第一子片段是对目标文件进行切分得到的子片段序列中排序第一的子片段。
其中,子片段序列是由对目标文件进行切分得到的多个子片段组成的序列。各个子片段可以按照时间顺序进行排列。例如,对目标视频进行切分得到的多个视频片段,各个视频片段按照时间顺序从早到晚进行排列得到视频片段序列。第一子片段是指子片段序列中排序第一的子片段,也就是,最优先下载的子片段。
具体地,计算机设备可以一次性从一个目标节点上下载整个目标文件。计算机设备也可以分批从不同的目标节点上下载目标文件的子片段,将下载得到的各个子片段组成目标文件,也就是采取分布式下载的方式进行目标文件的下载。在进行分布式下载的时候,为了进一步提高文件下载的质量,计算机设备可以基于下载当前子片段所实时产生的通信数据更新节点通信信息集合,进一步结合实时产生的通信数据重新对各个候选节点进行评估,从各个候选节点中选取当前最可靠的候选节点作为目标节点来下载下一个子片段。这样,计算机设备可以始终以基于最新数据统计分析出来的最可靠节点来下载目标文件的各个子片段,提高文件下载的质量。
可以理解,确定目标节点的具体过程可以参照前述各个相关实施例所述的方法。
步骤S504,在当前子片段的下载过程中,基于与各个候选节点的当前通信所产生的当前通信信息,更新各个候选节点对应的节点通信信息集合。
步骤S506,对同一候选节点对应的更新后的节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的更新下载优先参数。
步骤S508,基于更新下载优先参数从各个候选节点中确定当前子片段的下一子片段对应的更新节点,从更新节点获取下一子片段,将下一子片段作为新的当前子片段,返回在当前子片段的下载过程中,基于与各个候选节点的当前通信所产生的当前通信信息,更新各个候选节点对应的节点通信信息集合的步骤,直至子片段序列中的子片段均下载完成。
其中,更新下载优先参数是指更新后的目标下载优先参数。更新节点是指当前子片段的下一子片段所对应的目标节点。
具体地,在当前子片段的下载过程中,计算机设备可以基于与各个候选节点的当前通信所产生的当前通信信息,更新各个候选节点对应的节点通信信息集合。例如,在当前子片段的下载过程中,计算机设备向各个候选节点分别发送了新的心跳请求,并接收到对应的响应消息。计算机设备就可以基于新的心跳请求和响应消息更新节点通信信息集合中的通信时延信息。若当前子片段对应的目标节点为节点A,在当前子片段的下载过程中,计算机设备可以对节点A的下载时延信息和下载速度信息进行更新。这样,在下载当前子片段的下一子片段之前,计算机设备可以对同一候选节点对应的更新后的节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的更新下载优先参数。计算机设备基于更新下载优先参数从各个候选节点中确定当前子片段的下一子片段对应的更新节点,从更新节点获取下一子片段。同理,计算机设备可以将下一子片段作为新的当前子片段,返回在当前子片段的下载过程中,基于与各个候选节点的当前通信所产生的当前通信信息,更新各个候选节点对应的节点通信信息集合的步骤,直至子片段序列中的子片段均下载完成。也就是,每下载完一个子片段,计算机设备就结合最新产生的当前通信信息和原来的节点通信信息重新评估各个候选节点,从中确定下一子片段对应的目标节点,直至子片段序列中的子片段均下载完成。
举例说明,目标文件的子片段序列包括子片段1、子片段2和子片段3,候选节点包括候选节点1-5。在下载子片段1之前,计算机设备基于各个候选节点的节点通信信息集合确定候选节点1为子片段1对应的目标节点,计算机设备从候选节点1上下载子片段1。在下载子片段1的过程中,计算机设备始终保持与各个候选节点的通信。在下载子片段1的过程中,计算机设备可以基于与各个候选节点的当前通信所产生的当前通信信息,更新各个候选节点对应的节点通信信息集合。在下载子片段2之前,计算机设备基于各个候选节点对应的更新后的节点通信信息集合确定候选节点2为子片段2对应的目标节点,计算机设备从候选节点2上下载子片段2。在下载子片段2的过程中,计算机设备始终保持与各个候选节点的通信。在下载子片段2的过程中,计算机设备可以基于与各个候选节点的当前通信所产生的当前通信信息,进一步更新各个候选节点对应的节点通信信息集合。在下载子片段3之前,计算机设备基于各个候选节点对应的最新的节点通信信息集合确定候选节点2为子片段3对应的目标节点,计算机设备从候选节点2上下载子片段3。
本实施例中,始终以基于最新数据统计分析出来的最可靠节点来下载目标文件对应的子片段,能够提高目标文件的下载速度,从而提高目标文件的下载质量。
在一个实施例中,如图6所示,基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件,包括:
步骤S602,对目标文件进行切分,得到目标文件对应的多个子片段。
步骤S604,基于目标下载优先参数从各个候选节点中确定各个子片段分别对应的目标节点。
步骤S606,并行从各个目标节点获取对应的子片段。
具体地,在进行分布式下载时,计算机设备可以采取并行下载的方式来进一步提高文件下载的速度。计算机设备可以对目标文件进行切分,将一个大的目标文件切分为多个小的子片段。进而,计算机设备基于目标下载优先参数从各个候选节点中确定各个子片段分别对应的目标节点,并行从各个目标节点获取对应的子片段。
在一个实施例中,计算机设备可以基于统一的切分数据量对不同大小的文件进行切分。计算机设备也可以设置不同文件格式分别对应的切分数据量,例如,视频格式的文件可以设置较大的切分数据量,音频格式的文件可以设置较小的切分数据量。由于视频格式的文件通常比较大,设置较大的切分数据量可以有效限制子片段的数量,避免计算机设备从过多的目标节点上下载数据。
在一个实施例中,计算机设备可以设置最大并发数,最大并发数用于控制计算机设备可以同时并行下载的子片段的数量。例如,若最大并发数为4,计算机设备最多可以同时向4个雾节点并行下载4个子片段。这样,通过最大并发数也可以有效控制文件下载的稳定性,避免单一雾节点因收到过多切片下载请求而影响文件下载速度。
在一个实施例中,在第一轮节点评估中,计算机设备可以基于目标下载优先参数从各个候选节点中确定最大并发数个目标节点,然后开始第一轮子片段下载,并行从各个目标节点获取对应的子片段。若目标文件的子片段还未全部下载完毕,计算机设备基于第一轮子片段下载所产生的通信数据更新节点通信信息集合,再开始新一轮节点评估,从各个候选节点中确定新的最大并发数个目标节点,开始新一轮的子片段下载,并行从各个目标节点获取对应的子片段,以此类推,直至目标文件的子片段全部下载完毕。
本实施例中,通过数据的多线并行下载可以提高文件下载的速度,从可靠性更高的目标节点上下载数据可以进一步提高文件下载的速度和成功率,从而提高文件下载的质量。
在一个实施例中,所述方法还包括:
当在预设时间内未获取到目标文件时,获取待下载文件标识对应的资源节点信息;从资源节点信息对应的资源节点获取目标文件。
其中,资源节点是指CDN服务器。预设时间是指从候选节点获取目标文件的时间期限。
具体地,计算机设备从雾节点获取目标文件是有时间限制的,若计算机设备在预设时间内未获取到目标文件,可以判断计算机设备从雾节点获取目标文件失败,计算机设备可以转而向CDN服务器获取目标文件。当在预设时间内未获取到目标文件时,计算机设备可以从查询服务器获取待下载文件标识对应的资源节点信息,从资源节点信息对应的资源节点获取目标文件。
在一个实施例中,当雾节点有多个时,在从最高目标下载优先级对应的雾节点获取目标文件失败后,计算机设备可以从下一目标下载优先级对应的雾节点获取目标文件。因此,计算机设备可以在从所有雾节点上都获取目标文件失败后,再转而向CDN服务器获取目标文件。计算机设备也可以在从目标下载优先参数大于预设阈值的各个雾节点上都获取目标文件失败后,再转而向CDN服务器获取目标文件。
在一个实施例中,针对不同大小的目标文件,可以设置不同的预设时间。例如,当目标文件较小时,设置较小的预设时间,当目标文件较大时,设置较大的预设时间。
本实施例中,当从目标节点未获取到目标文件,可以从资源节点获取目标文件,保障了文件下载的灵活性。
在一个具体的实施例中,如图7A所示,文件下载方法包括以下步骤:
1、目标应用向PCDN SDK发送文件下载请求
目标应用的音视频播放器/下载组件可以获取用户触发生成的文件下载请求,音视频播放器/下载组件可以向PCDN SDK发送文件下载请求,该文件下载请求携带待下载文件标识。
2、PCDN SDK向查询服务器发送雾节点查询请求
查询服务器接收到雾节点查询请求后,可以根据雾节点查询请求查询存储有待下载文件标识对应的目标文件的雾节点,基于查询到的雾节点的节点信息生成候选雾节点信息集合。
3、查询服务器向PCDN SDK返回候选雾节点信息集合
4、PCDN SDK和候选雾节点信息集合对应的候选雾节点建立通信
4-1、PCDN SDK定时向各个候选雾节点发送心跳请求,候选雾节点接收到心跳请求向PCDN SDK发送心跳回复(即响应消息)。
4-2、各个候选雾节点定时向PCDN SDK发送心跳请求,PCDN SDK接收到心跳请求向候选雾节点发送心跳回复(即响应消息)。
5、PCDN SDK进行雾节点评估,从各个候选雾节点中确定目标雾节点
PCDN SDK获取各个候选雾节点分别对应的节点通信信息集合,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选雾节点对应的目标下载优先参数,基于目标下载优先参数从各个候选雾节点中确定目标雾节点。其中,候选雾节点对应的节点通信信息集合可以包括建立通信所产生的通信时延信息、文件下载所产生的下载时延信息和下载速度信息等节点通信信息。PCDN SDK可以基于通信RTT、首包RTT和下载速度等信息来评估所有可用的雾节点,然后将目标文件交给最可靠的雾节点下载。
6、PCDN SDK向目标雾节点下载目标文件
PCDN SDK可以基于目标下载优先参数从各个候选雾节点中确定一个目标雾节点,向该目标雾节点下载完整的目标文件。
PCDN SDK可以对目标文件进行切分,得到多个子片段,基于目标下载优先参数从各个候选雾节点中确定各个子片段分别对应的目标雾节点,向各个目标雾节点并行下载对应的子片段。
7、PCDN SDK向目标应用发送目标文件
若因为下载超时而导致下载失败,可以向CDN服务器请求下载目标文件。
上述实施例中,选取雾节点来下载文件可以充分利用雾节点的带宽,保证文件下载的稳定性。通过评估各个雾节点,选取节点性能表现最好的雾节点作为目标雾节点,从目标雾节点下载文件,不仅可以提升文件下载的速度,还可以减少出现下载失败的情况,减少重传重复带宽,降低计费带宽,进一步节省成本。
在一个具体的实施例中,如图7B所示,文件下载方法包括以下步骤:
1、目标应用向PCDN SDK发送文件下载请求
2、PCDN SDK向查询服务器发送雾节点查询请求
3、查询服务器向PCDN SDK返回候选雾节点信息集合
4、PCDN SDK和候选雾节点信息集合对应的候选雾节点建立通信
5、PCDN SDK获取节点通信信息集合,基于节点通信信息集合进行雾节点评估,从各个候选雾节点中确定第一子片段对应的目标雾节点
PCDN SDK对目标文件进行切分,得到子片段序列。PCDN SDK获取各个候选雾节点分别对应的节点通信信息集合,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选雾节点对应的目标下载优先参数,基于目标下载优先参数从各个候选雾节点中确定第一子片段对应的目标雾节点。
6、PCDN SDK向目标雾节点下载第一子片段
7、PCDN SDK对节点通信信息集合进行更新,重新进行雾节点评估,从各个候选雾节点中确定第二子片段对应的目标雾节点
由于PCDN SDK在下载第一子片段的过程中,PCDN SDK和各个候选雾节点保持着通信连接,产生了新的通信数据,PCDN SDK可以基于新的通信数据对节点通信信息集合进行更新。那么,在下载第二子片段的时候,PCDN SDK可以基于新的节点通信信息集合重新对各个候选雾节点进行评估,从各个候选雾节点中确定第二子片段对应的目标雾节点,从第二子片段对应的目标雾节点上下载第二子片段,以此类推,直至子片段序列中的所有子片段下载完毕。
参考图7C,PCDN SDK和各个候选雾节点持续进行心跳交互来保持通信连接。PCDNSDK基于通信RTT、首包RTT和下载速度等节点通信信息来评估所有可用的雾节点,然后将当前子片段交给最可靠的雾节点下载。PCDN SDK可以向雾节点请求下载子片段数据,雾节点通过数据包发送子片段数据,PCDN SDK会不断接收所有数据包,直到完成当前子片段的下载。在当前子片段的下载过程中,PCDN SDK会存储新产生的节点通信信息,例如新的心跳RTT、首包RTT和下载速度等,重新进行雾节点评估,选取当前最可靠的雾节点来开启下个子片段的数据下载,直至子片段序列中的所有子片段下载完毕,PCDN SDK得到目标文件。
8、PCDN SDK向目标应用发送目标文件
上述实施例中,考虑了雾节点的传输链路实时信息,能够尽量合理公平的分配不同切片下载,从而保证下载服务的高可用性,提高文件下载的质量。
应该理解的是,虽然图2、3、5、6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、3、5、6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种文件下载装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:请求获取模块802、节点信息获取模块804、通信信息获取模块806、信息融合模块808和文件下载模块810,其中:
请求获取模块802,用于获取文件下载请求,文件下载请求携带待下载文件标识;
节点信息获取模块804,用于获取待下载文件标识对应的候选节点信息集合;
通信信息获取模块806,用于获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息;
信息融合模块808,用于对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数;
文件下载模块810,用于基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。
在一个实施例中,通信信息获取模块还用于获取发送至候选节点的历史下载请求对应的请求发送时间和初始请求回复时间,基于同一候选节点对应的请求发送时间和初始请求回复时间,得到候选节点对应的下载时延信息。
在一个实施例中,通信信息获取模块还用于分别向各个候选节点发送心跳请求,接收各个候选节点基于心跳请求返回的响应消息,心跳请求用于和对应的候选节点建立通信,基于同一候选节点对应的心跳请求和响应消息,得到各个候选节点对应的通信时延信息。
在一个实施例中,节点通信信息还包括下载速度信息,通信信息获取模块还用于获取发送至候选节点的历史下载请求对应的请求下载数据量、请求发送时间和目标请求回复时间,基于同一历史下载请求对应的请求下载数据量、请求发送时间和目标请求回复时间,得到各个历史下载请求对应的历史下载速度,基于同一候选节点对应的历史下载速度,得到候选节点对应的下载速度信息。
在一个实施例中,信息融合模块还用于获取目标文件对应的切片信息,切片信息用于在分片段下载目标文件时确定片段大小,当切片信息大于或等于切片阈值时,基于第一注意力信息将同一节点通信信息集合中的通信时延信息和下载时延信息进行融合,得到各个候选节点对应的目标延时信息,在第一注意力信息中,通信时延信息对应的注意力度小于下载时延信息对应的注意力度,当切片信息小于切片阈值时,基于第二注意力信息将同一节点通信信息集合中的通信时延信息和下载时延信息进行融合,得到各个候选节点对应的目标延时信息,在第二注意力信息中,通信时延信息对应的注意力度大于或等于下载时延信息对应的注意力度,基于各个候选节点对应的目标延时信息得到各个候选节点对应的目标下载优先参数。
在一个实施例中,信息融合模块包括:
时延信息融合单元,用于在同一节点通信信息集合中,将通信时延信息和下载时延信息进行融合,得到目标时延信息;
信息归一化单元,用于将同一节点通信信息集合中各个维度的节点通信信息进行归一化处理,得到各个候选节点在各个维度分别对应的节点通信分数;
通信分数融合单元,用于对同一候选节点对应的各个节点通信分数进行融合,得到各个候选节点对应的目标通信分数;
下载优先参数确定单元,用于基于各个候选节点对应的目标通信分数得到各个候选节点对应的目标下载优先参数。
在一个实施例中,信息归一化单元还用于获取各个维度分别对应的关联关系信息,关联关系信息表征节点通信信息和节点通信分数的关联关系,关联关系信息包括同一维度的节点通信信息对应的多个按序排列的区间,每个区间分别存在对应的通信分数参考信息,通信分数参考信息按照区间的排列顺序呈单调变化趋势,获取当前候选节点在当前维度对应的当前节点通信信息,从当前维度对应的关联关系信息中获取各个区间对应的区间范围,按照各个区间对应的区间范围对当前节点通信信息进行分解,得到各个区间对应的当前通信子信息,基于同一区间对应的当前通信子信息和通信分数参考信息得到当前候选节点在当前维度对应的节点通信分数。
在一个实施例中,当节点通信信息为速度维度对应的下载速度信息时,信息归一化单元还用于获取速度维度对应的第一下载速度阈值和第二下载速度阈值,第一下载速度阈值小于第二下载速度阈值,当当前候选节点对应的当前下载速度信息小于第一下载速度阈值时,基于第一关系式计算当前候选节点在速度维度对应的节点通信分数,当前候选节点在速度维度对应的节点通信分数随着当前下载速度信息的减小而增大、且为正数,当当前下载速度信息大于或等于第一下载速度阈值、且小于或等于第二下载速度阈值时,基于第二关系式计算当前候选节点在速度维度对应的节点通信分数,当前候选节点在速度维度对应的节点通信分数随着当前下载速度信息的增大而增大或不变,当当前下载速度信息大于第二下载速度阈值时,基于第三关系式计算当前候选节点在速度维度对应的节点通信分数,当前候选节点在速度维度对应的节点通信分数随着当前下载速度信息的增大而减小、且为负数。
在一个实施例中,信息归一化单元还用于获取参考下载速度集合,参考下载速度集合包括多个参考下载速度,获取目标文件对应的切片信息,切片信息用于在分片段下载目标文件时确定片段大小,基于参考下载速度集合和切片信息确定第一下载速度阈值和第二下载速度阈值。
在一个实施例中,当节点通信信息为速度维度对应的下载速度信息时,下载速度信息包括历史成功下载速度和历史下载失败次数,信息归一化单元还用于基于速度维度对应的第一下载速度阈值和第二下载速度阈值,对当前候选节点对应的当前下载速度信息中的历史成功下载速度进行归一化处理,得到第一通信分数,获取当前下载速度信息中的历史失败下载次数对应的预设通信分数作为第二通信分数,基于第一通信分数和第二通信分数得到当前候选节点在速度维度对应的节点通信分数。
在一个实施例中,上述文件下载装置还包括统一处理模块,统一处理模块可以用于执行请求获取模块、节点信息获取模块、通信信息获取模块、信息融合模块和文件下载模块对应的操作。统一处理模块用于接收目标应用通过预设接口发送的文件下载请求,统一处理模块用于将目标文件通过预设接口发送至目标应用。
在一个实施例中,节点信息获取模块还用于基于当前位置信息和待下载文件标识生成节点查询请求,将节点查询请求发送至查询服务器,以使查询服务器获取初始节点信息集合,基于当前位置信息对初始节点信息集合进行筛选得到候选节点信息集合,初始节点信息集合对应的初始节点存储有目标文件,接收查询服务器返回的候选节点信息集合。
在一个实施例中,通信信息获取模块还用于当候选节点为历史建立过通信连接的节点时,根据候选节点信息集合中的节点标识获取对应的历史通信信息集合作为对应的节点通信信息集合。
在一个实施例中,文件下载模块还用于基于目标下载优先参数确定各个候选节点对应的目标下载优先级,将目标下载优先级最高的候选节点作为目标节点。
在一个实施例中,文件下载模块还用于从目标节点下载目标文件对应的第一子片段,第一子片段是对目标文件进行切分得到的子片段序列中排序第一的子片段,在当前子片段的下载过程中,基于与各个候选节点的当前通信所产生的当前通信信息,更新各个候选节点对应的节点通信信息集合,对同一候选节点对应的更新后的节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的更新下载优先参数,基于更新下载优先参数从各个候选节点中确定当前子片段的下一子片段对应的更新节点,从更新节点获取下一子片段,将下一子片段作为新的当前子片段,返回在当前子片段的下载过程中,基于与各个候选节点的当前通信所产生的当前通信信息,更新各个候选节点对应的节点通信信息集合的步骤,直至子片段序列中的子片段均下载完成。
在一个实施例中,文件下载模块还用于对目标文件进行切分,得到目标文件对应的多个子片段;基于目标下载优先参数从各个候选节点中确定各个子片段分别对应的目标节点;并行从各个目标节点获取对应的子片段。
在一个实施例中,文件下载模块还用于当在预设时间内未获取到目标文件时,获取待下载文件标识对应的资源节点信息,从资源节点信息对应的资源节点获取目标文件。
上述文件下载装置,通过获取文件下载请求,文件下载请求携带待下载文件标识,获取待下载文件标识对应的候选节点信息集合,获取候选节点信息集合对应的各个候选节点的节点通信信息集合,节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息,对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数,基于目标下载优先参数从各个候选节点中确定目标节点,从目标节点获取待下载文件标识对应的目标文件。这样,综合通信时延信息和下载时延信息来评估节点,可以从各个候选节点中筛选出在通信和下载方面表现优秀的节点作为目标节点,从目标节点下载目标文件,可以有效保障目标文件的下载成功率和下载速度,从而提高目标文件的下载质量。进一步的,在评估节点时考虑下载时延信息也可以有效避免连续下载任务重复选择同一下载失败节点进行下载,进一步提高目标文件的下载质量。
关于文件下载装置的具体限定可以参见上文中对于文件下载方法的限定,在此不再赘述。上述文件下载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储通信时延信息、下载时延信息、下载速度信息、节点通信信息集合、历史通信信息集合等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件下载方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种文件下载方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9、10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种文件下载方法,其特征在于,所述方法包括:
获取文件下载请求,所述文件下载请求携带待下载文件标识;
获取所述待下载文件标识对应的候选节点信息集合;
获取所述候选节点信息集合对应的各个候选节点的节点通信信息集合,所述节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,所述节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息;
对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数;
基于所述目标下载优先参数从所述各个候选节点中确定目标节点,从所述目标节点获取所述待下载文件标识对应的目标文件。
2.根据权利要求1所述的方法,其特征在于,所述获取所述候选节点信息集合对应的各个候选节点的节点通信信息集合,包括:
获取发送至候选节点的历史下载请求对应的请求发送时间和初始请求回复时间;
基于同一候选节点对应的请求发送时间和初始请求回复时间,得到候选节点对应的下载时延信息。
3.根据权利要求1所述的方法,其特征在于,所述获取所述候选节点信息集合对应的各个候选节点的节点通信信息集合,包括:
分别向各个候选节点发送心跳请求,接收各个候选节点基于心跳请求返回的响应消息,所述心跳请求用于和对应的候选节点建立通信;
基于同一候选节点对应的心跳请求和响应消息,得到各个候选节点对应的通信时延信息。
4.根据权利要求1所述的方法,其特征在于,所述节点通信信息还包括下载速度信息,所述获取所述候选节点信息集合对应的各个候选节点的节点通信信息集合,包括:
获取发送至候选节点的历史下载请求对应的请求下载数据量、请求发送时间和目标请求回复时间;
基于同一历史下载请求对应的请求下载数据量、请求发送时间和目标请求回复时间,得到各个历史下载请求对应的历史下载速度;
基于同一候选节点对应的历史下载速度,得到候选节点对应的下载速度信息。
5.根据权利要求1所述的方法,其特征在于,所述对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数,包括:
获取所述目标文件对应的切片信息,所述切片信息用于在分片段下载目标文件时确定片段大小;
当所述切片信息大于或等于切片阈值时,基于第一注意力信息将同一节点通信信息集合中的通信时延信息和下载时延信息进行融合,得到各个候选节点对应的目标延时信息,在所述第一注意力信息中,通信时延信息对应的注意力度小于下载时延信息对应的注意力度;
当所述切片信息小于切片阈值时,基于第二注意力信息将同一节点通信信息集合中的通信时延信息和下载时延信息进行融合,得到各个候选节点对应的目标延时信息,在所述第二注意力信息中,通信时延信息对应的注意力度大于或等于下载时延信息对应的注意力度;
基于各个候选节点对应的目标延时信息得到各个候选节点对应的目标下载优先参数。
6.根据权利要求1所述的方法,其特征在于,所述对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数,包括:
在同一节点通信信息集合中,将通信时延信息和下载时延信息进行融合,得到目标时延信息;
将同一节点通信信息集合中各个维度的节点通信信息进行归一化处理,得到各个候选节点在各个维度分别对应的节点通信分数;
对同一候选节点对应的各个节点通信分数进行融合,得到各个候选节点对应的目标通信分数;
基于所述各个候选节点对应的目标通信分数得到所述各个候选节点对应的目标下载优先参数。
7.根据权利要求6所述的方法,其特征在于,所述将同一节点通信信息集合中各个维度的节点通信信息进行归一化处理,得到各个候选节点在各个维度分别对应的节点通信分数,包括:
获取各个维度分别对应的关联关系信息,所述关联关系信息表征节点通信信息和节点通信分数的关联关系,所述关联关系信息包括同一维度的节点通信信息对应的多个按序排列的区间,每个区间分别存在对应的通信分数参考信息,所述通信分数参考信息按照区间的排列顺序呈单调变化趋势;
获取当前候选节点在当前维度对应的当前节点通信信息,从所述当前维度对应的关联关系信息中获取各个区间对应的区间范围;
按照所述各个区间对应的区间范围对所述当前节点通信信息进行分解,得到各个区间对应的当前通信子信息;
基于同一区间对应的当前通信子信息和通信分数参考信息得到所述当前候选节点在当前维度对应的节点通信分数。
8.根据权利要求6所述的方法,其特征在于,当所述节点通信信息为速度维度对应的下载速度信息时,所述下载速度信息的归一化处理包括以下步骤:
获取所述速度维度对应的第一下载速度阈值和第二下载速度阈值,所述第一下载速度阈值小于所述第二下载速度阈值;
当当前候选节点对应的当前下载速度信息小于所述第一下载速度阈值时,基于第一关系式计算所述当前候选节点在速度维度对应的节点通信分数,所述当前候选节点在速度维度对应的节点通信分数随着所述当前下载速度信息的减小而增大、且为正数;
当所述当前下载速度信息大于或等于所述第一下载速度阈值、且小于或等于所述第二下载速度阈值时,基于第二关系式计算所述当前候选节点在速度维度对应的节点通信分数,所述当前候选节点在速度维度对应的节点通信分数随着所述当前下载速度信息的增大而增大或不变;
当所述当前下载速度信息大于所述第二下载速度阈值时,基于第三关系式计算所述当前候选节点在速度维度对应的节点通信分数,所述当前候选节点在速度维度对应的节点通信分数随着所述当前下载速度信息的增大而减小、且为负数。
9.根据权利要求8所述的方法,其特征在于,所述获取速度维度对应的第一下载速度阈值和第二下载速度阈值,包括:
获取参考下载速度集合,所述参考下载速度集合包括多个参考下载速度;
获取所述目标文件对应的切片信息,所述切片信息用于在分片段下载目标文件时确定片段大小;
基于所述参考下载速度集合和所述切片信息确定所述第一下载速度阈值和所述第二下载速度阈值。
10.根据权利要求6所述的方法,其特征在于,当所述节点通信信息为速度维度对应的下载速度信息时,所述下载速度信息包括历史成功下载速度和历史下载失败次数,所述下载速度信息的归一化处理包括以下步骤:
基于所述速度维度对应的第一下载速度阈值和第二下载速度阈值,对当前候选节点对应的当前下载速度信息中的历史成功下载速度进行归一化处理,得到第一通信分数;
获取所述当前下载速度信息中的历史失败下载次数对应的预设通信分数作为第二通信分数;
基于所述第一通信分数和所述第二通信分数得到所述当前候选节点在速度维度对应的节点通信分数。
11.根据权利要求1至10任意一项所述的方法,其特征在于,所述从所述目标节点获取所述待下载文件标识对应的目标文件,包括:
从所述目标节点下载所述目标文件对应的第一子片段,所述第一子片段是对所述目标文件进行切分得到的子片段序列中排序第一的子片段;
在当前子片段的下载过程中,基于与各个候选节点的当前通信所产生的当前通信信息,更新各个候选节点对应的节点通信信息集合;
对同一候选节点对应的更新后的节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的更新下载优先参数;
基于所述更新下载优先参数从所述各个候选节点中确定当前子片段的下一子片段对应的更新节点,从所述更新节点获取下一子片段,将下一子片段作为新的当前子片段,返回在当前子片段的下载过程中,基于与各个候选节点的当前通信所产生的当前通信信息,更新各个候选节点对应的节点通信信息集合的步骤,直至所述子片段序列中的子片段均下载完成。
12.根据权利要求1至10任意一项所述的方法,其特征在于,所述基于所述目标下载优先参数从所述各个候选节点中确定目标节点,从所述目标节点获取所述待下载文件标识对应的目标文件,包括:
对所述目标文件进行切分,得到所述目标文件对应的多个子片段;
基于所述目标下载优先参数从所述各个候选节点中确定各个子片段分别对应的目标节点;
并行从各个目标节点获取对应的子片段。
13.一种文件下载装置,其特征在于,所述装置包括:
请求获取模块,用于获取文件下载请求,所述文件下载请求携带待下载文件标识;
节点信息获取模块,用于获取所述待下载文件标识对应的候选节点信息集合;
通信信息获取模块,用于获取所述候选节点信息集合对应的各个候选节点的节点通信信息集合,所述节点通信信息集合中的节点通信信息是与对应的候选节点进行通信得到的,所述节点通信信息包括建立通信所产生的通信时延信息和文件下载所产生的下载时延信息;
信息融合模块,用于对同一节点通信信息集合中的节点通信信息进行融合,得到各个候选节点对应的目标下载优先参数;
文件下载模块,用于基于所述目标下载优先参数从所述各个候选节点中确定目标节点,从所述目标节点获取所述待下载文件标识对应的目标文件。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
CN202110528363.2A 2021-05-14 2021-05-14 文件下载方法、装置、计算机设备和存储介质 Pending CN115348251A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110528363.2A CN115348251A (zh) 2021-05-14 2021-05-14 文件下载方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110528363.2A CN115348251A (zh) 2021-05-14 2021-05-14 文件下载方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN115348251A true CN115348251A (zh) 2022-11-15

Family

ID=83978017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110528363.2A Pending CN115348251A (zh) 2021-05-14 2021-05-14 文件下载方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN115348251A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117354374A (zh) * 2023-12-06 2024-01-05 广东车卫士信息科技有限公司 基于物联网的数据传输方法及系统
CN117640655A (zh) * 2023-12-05 2024-03-01 中移互联网有限公司 一种数据传输方法、装置、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117640655A (zh) * 2023-12-05 2024-03-01 中移互联网有限公司 一种数据传输方法、装置、电子设备及存储介质
CN117354374A (zh) * 2023-12-06 2024-01-05 广东车卫士信息科技有限公司 基于物联网的数据传输方法及系统
CN117354374B (zh) * 2023-12-06 2024-02-13 广东车卫士信息科技有限公司 基于物联网的数据传输方法及系统

Similar Documents

Publication Publication Date Title
US9900402B1 (en) Capacity-independent demand assessment
US8510448B2 (en) Service provider registration by a content broker
EP2875680B1 (en) Method and apparatus for selecting a wireless access point
JP5430744B2 (ja) 通信システムのリアルタイムの性能および負荷統計のためのシステムならびに方法
US20040103194A1 (en) Method and system for server load balancing
US20190140920A1 (en) Scheduling Method for Content Delivery Network, and Device
US20150110077A1 (en) Method and apparatus for causing information related to mutual communication property between a terminal and access points of a wireless network to be used in connecting to the wireless network
CN115348251A (zh) 文件下载方法、装置、计算机设备和存储介质
US10425849B1 (en) Visualization of personalized quality of experience regarding mobile network
JP2009533979A (ja) 無線送信システムにおける、改良されたサービスの質の感知に対するデータオブジェクトポピュラリティ測定値の使用に対する方法と機器
CN109348264B (zh) 视频资源共享方法、装置、存储介质及电子设备
US11425209B2 (en) Communication system
CN114513488B (zh) 资源访问方法、装置、计算机设备和存储介质
US20190005534A1 (en) Providing media assets to subscribers of a messaging system
CN110771122A (zh) 使内容传送网络能够处理非预期流量激增的方法和网络节点
US9577900B1 (en) Application centric network experience monitoring
US9077735B2 (en) Method and related device for controlling service charging
WO2023001083A1 (zh) 服务提供方法、系统、网关、设备和存储介质
CN113612841B (zh) 任务调度方法、装置、计算机设备和存储介质
CN112035760B (zh) 一种任务分配方法及计算机设备
CN109347766A (zh) 一种资源调度的方法及装置
CN115002117A (zh) 内容分发网络动态调度方法、系统、设备及存储介质
US20200293358A1 (en) Computing node identifier-based request allocation
CN115915192A (zh) 网络优化方法、装置、电子设备和存储介质
JP6555627B2 (ja) 情報配信装置、プッシュ通知送信方法、及び、コンピュータプログラム

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