CN111629075B - 一种数据下载方法和相关装置 - Google Patents
一种数据下载方法和相关装置 Download PDFInfo
- Publication number
- CN111629075B CN111629075B CN202010767402.XA CN202010767402A CN111629075B CN 111629075 B CN111629075 B CN 111629075B CN 202010767402 A CN202010767402 A CN 202010767402A CN 111629075 B CN111629075 B CN 111629075B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- fog
- slice
- target file
- 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
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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种数据下载方法,所述方法包括:获取针对目标文件的数据下载请求;确定所述目标文件对应的雾节点集合;所述雾节点集合中的雾节点为内容分发网络中的边缘设备;从所述雾节点集合中确定目标雾节点;向所述目标雾节点请求下载所述目标文件。处理设备可以通过CDN中做为雾节点的边缘设备来分担缓存服务器的网络带宽压力,从而能够利用成本较低的雾节点带宽资源,在一定程度上降低CDN的整体带宽成本。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种数据下载方法和相关装置。
背景技术
内容分发网络(Content Delivery Network,CDN)中,将缓存服务器做为加速节点分布到用户访问相对集中的地区或网络中,当用户需要访问网络中的数据时,利用全局负载技术将用户的访问指向距离最近的缓存服务器上,由缓存服务器直接响应用户请求,这样可以保证用户就近获取所需数据,避免网络拥塞、运营商等带来的访问延迟问题,有效提升数据访问速度。
随着网络规模的扩大,用户群体的地域分布越来越广,若为了保证CDN的数据访问速度,需要通过大量的缓存服务器来维持足够的网络带宽,使得CDN的带宽成本越来越大,对CDN的发展来了不利影响。
发明内容
为了解决上述技术问题,本申请提供了一种数据下载方法和相关装置,处理设备可以通过CDN中做为雾节点的边缘设备来分担缓存服务器的网络带宽压力,从而能够利用成本较低的雾节点带宽资源,在一定程度上降低CDN的整体带宽成本。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供了一种数据下载方法,所述方法包括:
获取针对目标文件的数据下载请求;
确定所述目标文件对应的雾节点集合;所述雾节点集合中的雾节点为内容分发网络中的边缘设备;
对所述目标文件进行切片,得到多个数据切片的切片信息;所述多个数据切片构成所述目标文件;
从所述雾节点集合中确定所述多个数据切片分别对应的目标雾节点;
根据所述切片信息,向所述数据切片对应的目标雾节点发送切片下载请求,所述切片下载请求包括所述目标文件的标识和所述数据切片在所述目标文件中的数据范围;
根据所述多个数据切片,得到所述目标文件。
第二方面,本申请实施例提供了一种数据下载装置,所述装置包括第一获取单元、第一确定单元、切片单元、第二确定单元、第一发送单元和整合单元:
所述第一获取单元,用于获取针对目标文件的数据下载请求;
所述第一确定单元,用于确定所述目标文件对应的雾节点集合;所述雾节点集合中的雾节点为内容分发网络中的边缘设备;
所述切片单元,用于对所述目标文件进行切片,得到多个数据切片的切片信息;所述多个数据切片构成所述目标文件;
所述第二确定单元,用于从所述雾节点集合中确定所述多个数据切片分别对应的目标雾节点;
所述第一发送单元,用于根据所述切片信息,向所述数据切片对应的目标雾节点发送切片下载请求,所述切片下载请求包括所述目标文件的标识和所述数据切片在所述目标文件中的数据范围;
所述整合单元,用于根据所述多个数据切片,得到所述目标文件。
第三方面,本申请实施例提供了一种用于数据下载的设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行第一方面中所述的数据下载方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行第一方面中所述的数据下载方法。
第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面中提供的数据下载方法。
由上述技术方案可以看出,处于内容分发网络中处理设备在需要获取目标文件时,可以先不向内容分发网络中的资源服务器请求下载,而是可以基于数据下载请求确定目标文件对应的雾节点集合,然后对目标文件进行切片,得到多个数据切片的切片信息,这些数据切片能够构成目标文件。处理设备可以从雾节点集合中确定出多个数据切片分别对应的目标雾节点,并向目标雾节点发送切片下载请求,该切片下载请求中包括目标文件的标识以及该目标雾节点对应的数据切片在目标文件中的数据范围。通过下载多个数据切片,处理设备能够整合得到该目标文件。其中,雾节点是内容分发网络中的边缘设备,由于这些边缘设备不同于构建内容分发网络的设备,而是属于使用内容分发网络所提供数据服务的设备,一般属于接入内容分发网络的用户。为了使用内容分发网络的数据服务,这类雾节点具有自己的带宽资源,这些带宽资源一般不会被用户用尽。由于确定出的目标雾节点中具有目标文件,故处理设备可以利用目标雾节点的空闲带宽获取目标文件,减少了对内容分发网络的网络带宽消耗,从而降低内容分发网络所需维护网络带宽的成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种实际应用场景中数据下载方法的示意图;
图2为本申请实施例提供的一种数据下载方法的流程图;
图3为本申请实施例提供的一种数据下载方法的示意图;
图4为本申请实施例提供的一种实际应用场景中数据下载方法的示意图;
图5为本申请实施例提供的一种实际应用场景中数据下载方法的示意图;
图6为本申请实施例提供的一种实际应用场景中数据下载方法的示意图;
图7为本申请实施例提供的一种数据下载装置的结构框图;
图8为本申请实施例提供的一种用于数据下载的设备的结构图;
图9为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
由于使用CDN的用户日益增多以及网络规模的不断扩大,为了保障CDN的数据访问速度,需要不断的增加CDN中的缓存服务器数量来提供足够的网络带宽,因此会导致CDN的运营成本越来越大,不利于CDN的持续发展。
为了解决上述技术问题,本申请提供了一种数据下载方法和相关装置,处理设备可以通过CDN中做为雾节点的边缘设备来分担缓存服务器的网络带宽压力,从而能够利用成本较低的雾节点带宽资源,在一定程度上降低CDN的整体带宽成本。
本申请实施例提供的数据下载方法可以通过处理设备执行,该处理设备例如可以是具有数据下载功能的智能终端或服务器。该方法可以通过智能终端或服务器独立执行,也可以应用于智能终端和服务器通信的网络场景,通过智能终端和服务器配合执行。其中,智能终端可以为计算机、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑等设备。服务器可以理解为是应用服务器,也可以为Web服务器,在实际部署时,该服务器可以为独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云计算服务的云服务器。智能终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。同时,在硬件环境上,本技术已经实现的环境有:ARM架构处理器、X86架构处理器;在软件环境上,本技术已经实现的环境有:Android平台、Windows xp及以上操作***或Linux操作***。
此外,本申请提供的技术方案还涉及云技术领域,例如可以涉及到云技术中的云存储技术。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储*** (以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
目前,存储***的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件***上,文件***将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件***将每个对象分别写入该逻辑卷的物理存储空间,且文件***会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件***能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储***为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
在本申请提供的方案中,CDN中的缓存服务器属于云存储技术的一种,在雾节点未能够提供全部的下载服务时,处理设备还可以利用云存储技术,从这些缓存服务器中下载剩余资源。
为了便于理解本申请的技术方案,下面将结合一种实际应用场景,对本申请实施例提供的一种数据下载方法进行介绍。
参见图1,图1为本申请实施例提供的一种实际应用场景中数据下载方法的示意图。在该实际应用场景中,处理设备为终端设备101,该终端设备101可以是用户使用的智能手机,边缘设备为接入CDN网络的智能终端。在用户想要通过终端设备101观看某一未下载的视频时,终端设备101首先需要下载该视频对应的视频文件,即本申请中的目标文件。
首先,终端设备101中用于观看该视频的视频软件会生成针对该视频文件的数据下载请求,该数据下载请求用于向终端设备101请求下载该视频文件。在进行数据下载时,终端设备101需要接入CDN,并从CDN中获取相应的数据资源。在本实际应用场景中,CDN内可以包括缓存服务器和雾节点两种数据下载源,其中,雾节点是指CDN中的边缘设备,边缘设备是指处于CDN边缘网络中的设备,在本实际应用场景中为做为边缘设备的智能终端。雾节点往往具有一定的空闲网络带宽资源,这些网络带宽资源的成本要低于缓存服务器所需的带宽成本。因此,当终端设备101需要从CDN中下载文件数据时,为了节省CDN的带宽成本,减轻CDN缓存服务器的带宽压力,若雾节点中具有终端设备101此次需要下载的文件数据,可以优先选择通过雾节点进行数据下载。边缘设备还可以为边缘服务器,边缘服务器可以为CDN网络中的节点,也可以是独立于CDN之外的服务器或者节点。
终端设备101在获取该数据下载请求后,为了使用雾节点进行视频文件的下载,终端设备101首先要获知哪些雾节点中具有该视频文件。在本实际应用场景中,终端设备101可以向CDN中的查询服务器发送该视频文件的相关信息,该查询服务器用于查询CDN中的雾节点信息。由于雾节点都处于CDN中,因此在雾节点利用CDN下载数据时,CDN可以记录这些雾节点所下载过的文件数据。基于此,查询服务器可以根据该视频文件信息,查找CDN中具有该视频文件的雾节点,并将这些雾节点的集合返回给终端设备101。
随后,终端设备101可以对该视频文件进行切片,如图所示,终端设备101可以将该视频文件切分成数据切片1和数据切片2。为了进一步提高数据下载速度,终端设备101可以从雾节点集合中确定出这些数据切片分别对应的目标雾节点来进行多线下载。
可以理解的是,在该雾节点集合中,不仅包括有用于找到各个雾节点的节点名称,还可以包括其他的雾节点信息。例如,雾节点列表中可以包括各个雾节点中可用的带宽资源,终端设备101可以从视频文件对应的雾节点集合中确定出具有可用带宽资源的雾节点做为目标雾节点进行数据下载。
在图1所示的实际应用场景中,终端设备101从查询服务器中获取的雾节点集合包括雾节点1~雾节点n,其中,根据相关的雾节点信息可知,在这n个雾节点中,雾节点1、雾节点2和雾节点3都具有可用的带宽资源。此时,终端设备101可以将其中的雾节点2确定为数据切片1对应的目标雾节点,将雾节点3确定为数据切片2对应的目标雾节点。终端设备101可以向这些目标雾节点发送切片下载请求,用来请求下载对应的数据切片。在获取到全部的数据切片后,终端设备101可以将数据切片1和数据切片2进行整合,得到所需的视频文件。
由于雾节点2和雾节点3中所具有的网络带宽资源的带宽成本要低于CDN中缓存服务器的带宽成本,因此,通过该雾节点进行视频文件的下载在一定程度上既可以分担CDN缓存服务器的带宽压力,又可以降低CDN的带宽成本,为CDN节省了更多的资源,有利于促进对CDN的建设。
接下来,将结合附图,对本申请实施例提供的一种数据下载方法进行介绍。
参见图2,图2为本申请实施例提供的一种数据下载方法的流程图,该方法包括:
S201:获取针对目标文件的数据下载请求。
信息化时代,数据传输是人们日常生活的重要组成部分,人们在通过手机、电脑等设备观看网络视频、进行网络聊天、游玩网络游戏时,都会在网络中传输各式各样的数据。
在相关技术中,当用户需要在网络中下载数据时,为了提高下载速度,用户可以选择将自己需要下载数据的智能终端或者服务器接入CDN中。CDN会根据用户所请求下载的数据,为用户分配距离用户传输距离最近的具有该数据的缓存服务器,用户可以从该缓存服务器中下载出所需的数据文件,从而在一定程度上提高了数据传输速度。
但是,由于接入CDN的设备越来越多,CDN需要提供越来越多的缓存服务器来提供支持数据传输的网络带宽,而缓存服务器所提供的网络带宽成本较高,这就会使维护CDN所需的成本过高,不利于CDN的进一步发展。因此,为了促进CDN的进步,需要找到一种能够降低CDN维护成本的方法。
可以理解的是,由于用户在使用CDN时需要将自己的智能终端或服务器做为边缘设备接入CDN,并且若要进行数据传输,该边缘设备需要具备一定的网络带宽,这些网络带宽通常不会被用户利用完全。因此,在CDN中连接有大量具有一定网络带宽资源的边缘设备。同时,由于这些边缘设备从CDN中下载过部分数据,因此每一台边缘设备中都可能具有CDN缓存服务器中的部分文件数据。
由此可见,CDN中的边缘设备满足具有文件数据和具有传输用的网络带宽资源这两个条件,因此这部分边缘设备具有做为数据提供者的能力。由于边缘设备自身的网络带宽资源成本要低于缓存服务器的网络带宽资源成本,因此若能够将这部分边缘设备做为数据下载的资源提供者,能够分担CDN缓存服务器的数据下载压力,降低CDN的网络带宽成本。
在本申请实施例中,首先,处理设备可以获取针对目标文件的数据下载请求。其中,目标文件是指发起该数据下载请求的智能终端所需要下载的文件,例如,在用户想要通过手机上的影音软件在线观看电影时,该影音软件可以发起针对该电影视频文件的数据下载请求。
S202:确定目标文件对应的雾节点集合。
上已述及,CDN中的边缘设备具有做为数据下载资源提供者的能力。其中,边缘设备是指处于CDN中的边缘网络的设备,包括处于边缘网络中的智能终端和/或服务器,其中服务器例如可以为边缘服务器,边缘网络是指CDN中接近用户侧的网络部分。
在本申请实施例中,可以将内容分发网络中的边缘设备设为雾节点,该雾节点可以做为数据下载的资源提供节点。其中,由于每一台终端设备在CDN中下载过的文件资源可能有所区别,因此每一个雾节点中所具有的文件也可能有所不同。在获取到数据下载请求后,处理设备首先需要确定目标文件对应的雾节点集合,该雾节点集合可以为具有该目标文件的雾节点集合。由于做为雾节点的边缘设备是通过CDN下载的文件资源,因此在CDN中可以具有每一个雾节点所包括的资源记录。通过该资源记录,处理设备能够确定出具有目标文件的雾节点集合。
例如,当目标文件为影音软件请求下载的电影视频文件时,处理设备可以以该视频文件的标识做为查询依据,从CDN包括的雾节点中查询具有该视频文件的雾节点。其中,有多台接入CDN的其他用户的手机可能在用户观看时下载过该电影视频文件,这些手机中就可以做为此次下载的雾节点集合。
从CDN中确定雾节点集合的方式可以包括多种。在一种可能的实现方式中,CDN中可以包括查询服务器,该查询服务器能够对接入CDN的雾节点所下载的文件数据进行记录。在需要确定目标文件对应的雾节点集合时,处理设备可以向该内容分发网络中的查询服务器发送查询请求,该查询请求中包括该目标文件的标识。通过该标识,查询服务器可以查询出下载过该目标文件的雾节点,并将这些雾节点确定为目标文件对应的雾节点集合,处理设备可以从该查询服务器获取该目标文件对应的雾节点集合。
S203:对目标文件进行切片,得到多个数据切片的切片信息。
可以理解的是,为了不影响用户对于边缘设备的日常使用,在通过该数据下载方法进行数据下载时,所占用的都是雾节点中的空闲带宽资源。由于用户在使用做为雾节点的边缘设备时所使用的带宽资源大小不一,因此不同雾节点中的空闲带宽资源大小也可能区别较大。基于此,为了尽可能的提高数据下载的成功率,处理设备可以将向单一雾节点请求下载的数据大小控制在较小的范围内,这样即使雾节点具有的空闲带宽资源较小,也可以成功下载到所需的数据。
然而,并不是所有的目标文件都满足数据较小的要求。例如,当目标文件为图片文件时,向雾节点请求的数据大小可能较小;当目标文件为视频文件时,所需要请求下载的数据大小可能较大。在一种可能的实现方式中,为了将向雾节点请求的数据控制在较小的范围内,提高下载成功率,处理设备可以对目标文件进行切片,得到多个数据切片的切片信息。其中,多个数据切片可以构成该目标文件,该切片信息用于标识数据切片在目标文件中多对应的数据部分,每一个数据切片中都对应着目标文件的部分数据。
S204:从雾节点集合中确定多个数据切片分别对应的目标雾节点。
可以理解的是,处理设备在确定雾节点集合后,除了能够获取到各个雾节点的标识外,还可以得到与雾节点相关的其他信息,例如各个雾节点与此次需要下载文件的请求方的传输距离、可用网络带宽资源的资源数量等。为了保障数据下载的成功率,处理设备可以根据这些雾节点信息,从雾节点集合中确定出目标雾节点,该目标雾节点是指用于此次数据下载的雾节点。
例如,从最基础的角度来讲,若想进行数据下载,雾节点必须要具备一定的可用带宽资源。因此,处理设备可以获取雾节点集合中的各个雾节点的可用带宽参数,该可用带宽参数用于标识该雾节点中可以用来进行此次数据下载的网络带宽资源。处理设备可以根据该可用带宽参数从雾节点集合中确定目标雾节点,例如确定出具有可用带宽资源的雾节点做为目标雾节点。
其中,获取雾节点信息的方式可以包括多种。在一种可能的实现方式中,为了提高信息获取的速度,处理设备可以使目标文件的下载方与雾节点进行内网穿透连接,该内网穿透连接是指使用了不同私有网络的设备之间的连接。其中,该内网穿透连接可以通过会话穿越应用程序(Network Address Translation,简称NAT)穿透来建立,在进行NAT穿透的过程中可以借助业内标准的网络地址转换会话穿越应用程序(Session TraversalUtilities for Network Address Translation,简称 STUN)协议来实现。在未进行穿透时,若两台设备都处于私有网络中,则无法进行通信连接;通过该内网穿透连接,即使下载方和雾节点都处于不同的私有网络中,也能够直接建立起下载方与雾节点之间的数据传输通路。因此,处理设备可以根据与雾节点集合中雾节点的内网穿透连接,确定雾节点的可用带宽参数。其中,下载方是指发起此次数据下载请求的请求者,例如可以问处理设备自身,或者可以为与处理设备相连的智能终端等。
进一步的,为了提高数据下载的稳定性和速度,处理设备还可以根据雾节点信息对雾节点集合进行进一步的筛选。例如,在根据可用带宽参数确定目标雾节点时,处理设备可以进一步选择其中可用带宽资源较多的雾节点做为目标雾节点,这样可以提高数据下载时的网络速度;或者,处理设备可以选择与下载方传输距离较短的雾节点做为目标雾节点,从而可以缩短数据下载所需的下载时间。此外,上已述及,处理设备所获取的雾节点结合中可以包括有多个雾节点,即多个雾节点中都可以包括此次下载所需的目标文件。因此,从雾节点结合中确定出的目标雾节点也可以包括多个。为了进一步提高下载成功率和下载速度,处理设备可以从雾节点集合中确定出多个数据切片分别对应的目标雾节点,这样可以进一步降低从每一个雾节点中需要下载的数据大小,同时实现数据的多线并行下载。例如,当处理设备利用上述方式,通过可用带宽参数从雾节点结合中确定目标雾节点后,可以从目标雾节点中确定出多个数据切片分别对应的目标雾节点。
S205:根据切片信息,向数据切片对应的目标雾节点发送切片下载请求。
处理设备可以向数据切片对应的目标雾节点发送切片下载请求,该切片下载请求用于向目标雾节点请求下载数据切片。其中,为了能够正确下载到所需的数据切片,处理设备需要使雾节点能够获知该数据切片在目标文件中所对应的数据部分。
上已述及,数据切片的切片信息可以用于标识数据切片在目标文件中多对应的数据部分,因此,处理设备可以根据该切片信息来发送该切片下载请求,在该切片下载请求中可以包括该目标文件的标识和该数据切片在该目标文件中的数据范围。首先,通过目标文件的标识,雾节点可以在自身存储的文件数据中查找到目标文件对应的数据;随后,通过该数据范围,雾节点可以在目标文件对应的数据中划分出该数据切片对应的数据,从而向下载方提供该数据。其中,数据范围的表示方法可以包括多种,例如可以通过标注数据切片在目标文件中的起始位置和结束位置来表示数据范围。其中,从目标雾节点中请求下载数据切片的方式可以有多种。例如,上已述及,下载方可以与雾节点建立内网穿透连接,该内网穿透连接具有数据传输功能,因此,在一种可能的实现方式中,为了提高下载速度,处理设备可以通过与目标雾节点间的内网穿透连接,向目标雾节点发送切片下载请求。由于内网穿透连接是下载方与目标雾节点的直线连接,因此这种下载方法无需任何中转节点,下载速度较快。S206:根据多个数据切片,得到目标文件。
在下载得到多个数据切片后,由于该数据切片是通过对目标文件进行切分得到的,因此,若处理设备下载得到完整的多个数据切片,可以根据这些数据切片,构成所需的目标文件。
由上述技术方案可以看出,处于内容分发网络中处理设备在需要获取目标文件时,可以先不向内容分发网络中的资源服务器请求下载,而是可以基于数据下载请求确定目标文件对应的雾节点集合,然后对目标文件进行切片,得到多个数据切片的切片信息,这些数据切片能够构成目标文件。处理设备可以从雾节点集合中确定出多个数据切片分别对应的目标雾节点,并向目标雾节点发送切片下载请求,该切片下载请求中包括目标文件的标识以及该目标雾节点对应的数据切片在目标文件中的数据范围。通过下载多个数据切片,处理设备能够整合得到该目标文件。其中,雾节点是内容分发网络中的边缘设备,由于这些边缘设备不同于构建内容分发网络的设备,而是属于使用内容分发网络所提供数据服务的设备,一般属于接入内容分发网络的用户。为了使用内容分发网络的数据服务,这类雾节点具有自己的带宽资源,这些带宽资源一般不会被用户用尽。由于确定出的目标雾节点中具有目标文件,故处理设备可以利用目标雾节点的空闲带宽获取目标文件,减少了对内容分发网络的网络带宽消耗,从而降低内容分发网络所需维护网络带宽的成本。
其中,在对不同的目标文件进行数据切片时,处理设备所依据的切片大小可以是固定值。处理设备可以设定需要下载的目标文件大小为taskRange,切片大小可以为pieceSize,那么一共可以分为N=taskRange/pieceSize个数据切片。可以理解的是,由于目标文件的大小不一定能够被数据切片的大小整除,因此可能存在不满足切片大小固定值的数据切片。例如,在一种实际应用中,处理设备可以设定固定的切片大小pieceSize为128k,此时需要下载的目标文件的数据大小taskRange为1150k,那么在进行数据切片时,可以切分成(1150K/128K+1)9个切片,前8个切片的大小都为128k,第9个切片的大小为126k。
在以数据切片的形式进行数据下载时,下载方与雾节点之间的数据传输形式也可以包括多种。例如,在一种可能的实现方式中,处理设备可以以数据包的形式来进行数据下载,即将目标切片分割成多个数据包,然后从目标切片所对应的目标雾节点获取构成目标切片的多个数据包。其中,目标切片是构成目标文件的多个数据切片中的任意一个切片。
由于雾节点与下载方是通过内网穿透连接来传输数据,而在内网穿透连接中,数据是基于用户数据报(User Datagram Protocol,简称UDP)协议来实现的,即通过内网穿透连接传输的数据包是一种UDP数据包。UDP协议具有不可靠的特性,例如雾节点在发送UDP数据包时,下载方有一定的概率会接收不到该数据包。因此,由于UDP传输的不可靠性以及网络波动等因素,在进行数据包的传输时,可能会出现丢包、传输速度变慢等问题,这就会导致所接收到的数据包可能存在数据包不全的情况。为了提高数据下载的成功率,处理设备可以对接收到的数据包进行监控和分析,并将数据包的下载情况告知给发送该数据包的目标雾节点,从而使目标雾节点能够根据下载情况进行相应的处理。
在一种可能的实现方式中,处理设备可以为目标文件设置对应的超时时间参数,该超时时间参数能够标识出下载目标文件时,下载每一个数据切片对应的数据包所需要的正常时间,因此可以用于指示处理设备对数据包的下载情况进行监控和分析。其中,针对不同的目标文件,该超时时间参数也可以有所不同。例如,当目标文件较大时,切分出的数据切片大小可能较大,构成每一个数据切片的数据包也可能较多,因此可以设置较大的超时时间参数;当目标文件较小时,构成每一个数据切片的数据包可能较少,可以设置较小的超时时间参数。
在发起针对该目标文件的数据下载请求时,该数据下载请求中可以包括该超时时间参数。在下载构成目标切片的多个数据包时,若在根据该超时时间参数确定的时间阈值内,处理设备确定未获取全部多个数据包,说明可能出现了丢包或者网络质量较差的问题。此时,为了尽可能的接收到完整的数据包,处理设备可以向目标切片所对应的目标雾节点发送应答消息,该应答消息用于指示发送未获取的数据包。
例如,在一种实际应用场景中,雾节点可以通过1k大小的数据包进行数据传输。若处理设备是以32k为切片大小进行的数据切片,那么每个数据切片都对应于32个数据包。其中。构成目标切片的32个数据包可以有各自的数据包编号。在接收到数据包后,处理设备可以通过该数据包编号,确定出还未接收到的数据包,并向目标雾节点发送应答消息,该应答消息中可以包括未接收到的数据包编号。例如,若处理设备确定只接受到了1~20编号的数据包,那么未接收到的数据包编号就为21~32。该目标雾节点可以根据该数据包编号,确定出需要发送的数据包21~32,发送给下载方。
此外,不同的目标文件所涉及的数据下载场景也可能有所不同,该数据下载场景中可以体现出与目标文件相关的各类信息。例如,数据下载场景可以体现出目标文件的文件类型,如视频文件、音频文件等,其中视频文件的数据大小往往要大于音频文件的数据大小,因此若以固定的数据切片大小来对目标文件进行切分,可能会导致切片数量过多或过少的情况。当切片数量过多时,下载方可能会向较多的目标雾节点发送切片下载请求,这样就会耗费大量的时间在请求的发送上;当切片数量过少时,有可能无法利用到全部可利用的雾节点资源,不利于提高下载速度。
基于此,为了进一步提高下载速度以及下载可靠性,在对目标文件进行切片时,处理设备可以根据目标文件所涉及的数据下载场景确定对应的切片大小。例如,当目标文件是在某一视频软件中发起的下载时,该目标文件可能涉及视频下载场景,处理设备可以确定较大的切片大小;当目标文件是在某一音乐软件中发起的下载时,该目标文件可能涉及音频下载场景,处理设备可以确定较小的切片大小。在确定出切片大小后,处理设备可以根据该切片大小对目标文件进行切分,确定构成该目标文件的多个数据切片。通过这种方式,处理设备可以将切片数量控制在一个合理的数量范围内,有利于提高数据下载的下载速度。
可以理解的是,在对目标文件进行切分后,处理设备为每一个数据切片选择目标雾节点进行下载的方式也可以包括多种。其中,每一个数据切片可以与一个目标雾节点一一对应,即一个雾节点只负责下载一个数据切片;为了提高对目标雾节点带宽资源的利用率,处理设备可以为多个数据切片分配同一目标雾节点。处理设备可以通过并行的方式向不同数据切片对应的目标雾节点发送切片下载请求,从而使一个目标雾节点中也可以同时负责下载多个数据切片。
如图3所示,图3为一种选择雾节点下载数据切片的示意图。处理设备可以将目标文件切分为数据切片0~数据切片N这N个数据切片,并为每一个数据切片随机分配目标雾节点进行数据下载。例如,在为数据切片0分配目标雾节点时,可以随机到雾节点0,该雾节点即为数据切片0对应的目标雾节点。其中,不同目标雾节点的带宽资源有所区别,例如雾节点2和雾节点3的带宽资源较多,雾节点0和雾节点1的带宽资源较少,因此在随机分配时,若通过可用带宽来确定目标雾节点,则雾节点2和雾节点3可能会被分配到多个数据切片进行下载。
上以述及,本申请实施例中的雾节点是指CDN中的边缘设备,该边缘设备本身并不是以提供数据下载功能为目的来进行设计的,因此其自身的带宽资源和下载处理性能都有一定的上限。因此,为了提高数据下载的稳定性,防止同一目标雾节点因负责过多的数据切片下载而承担过多的处理压力,处理设备可以对同一目标雾节点所能够同时处理的数据切片下载数量进行控制。
其中,具体的控制方法可以从多个方面来进行,例如可以基于切片下载请求的发起方进行控制或基于切片下载请求的接收方进行控制。可以理解的是,在通过并行的方式发起切片下载请求时,在CDN中的雾节点数量一定时,并行发起的请求数量越多,单一雾节点收到过多切片下载请求的概率就会越大。因此,在一种可能的实现方式中,在基于请求的发起方进行控制时,处理设备可以根据内容分发网络中的雾节点数量确定最大并发数,该最大并发数用于对处理设备并行发起的切片下载请求数量进行控制。例如,当CDN中雾节点数量较多时,处理设备可以确定较大的最大并发数;当CDN中雾节点数量较少时,处理设备可以确定较小的最大并发数。
在通过并行的方式向不同数据切片对应的目标雾节点发送切片下载请求时,处理设备可以设定同时下载的数据切片的数量小于等于该最大并发数,从而将同时下载的数量控制在一个贴合当前CDN中雾节点情况的范围内,一定程度上降低了同一雾节点接收到过多下载请求的可能性。
此外,处理设备也可以基于切片下载请求的接收方,即基于雾节点的角度来进行请求数量的控制。例如,基于每一个雾节点自身的处理性能和网络带宽,都可以设定有对应的最大下载数量,该最大下载数量是指该雾节点在同一时间内能够响应的切片下载请求数量。处理设备在为多个数据切片分配对应的目标雾节点时,可以先获取各个目标雾节点所对应的最大下载数量以及当前已占用的下载数量,该已占用的下载数量是指各个目标雾节点中正在处理的切片下载请求数量。通过最大下载数量以及已占用的下载数量,处理设备可以获知各个目标雾节点所能够接收的切片下载请求数量,从而将还没有被占满的目标雾节点做为该数据切片对应的目标雾节点。
同时,为了进一步提高下载速度以及下载成功率,在确定多个数据切片分别对应的目标雾节点时,处理设备还可以为同一数据切片选择多个目标雾节点进行下载。例如,在图1所示的场景中,终端设备101可以选择雾节点2和雾节点3一起下载数据切片1,通过这种方法,即使其中有一个雾节点出现故障,终端设备101也能够通过另外一个雾节点成功下载该数据切片。
此外,由于UDP传输具有不可靠性,在通过雾节点下载目标文件时,目标文件在一定时间内可能无法被完整的从雾节点中进行下载。因此,为了进一步提高数据下载的成功率,处理设备可以在通过雾节点下载这一方法的基础上,再结合其他的下载方式共同完成下载。
其中,由于雾节点本身是CDN中的边缘设备,因此在使用雾节点进行下载时,为了获取到CDN中的雾节点集合,下载方也需要接入CDN中。由此可见,处理设备同样可以调用CDN自身所拥有的数据下载服务。因此,在一种可能的实现方式中,为了提高数据下载的成功率与便利程度,若处理设备确定目标文件中的目标部分未被下载,则可以向内容分发网络中的资源服务器发送针对目标部分的下载请求。其中,目标部分可以是未下载的目标文件中的任意部分,资源服务器是CDN中用于进行数据资源下载控制的服务器。
资源服务器在收到该下载请求后,可以根据其中所包括的目标部分的信息,为处理设备分配较为合适的缓存服务器用于提供该目标部分的数据下载,该缓存服务器中包括有该目标部分的数据资源。例如,资源服务器首先可以确定出CDN所包括的多台缓存服务器中具有该目标部分资源的服务器,然后根据此次下载的下载方在CDN中的接入位置,分配与该下载方传输距离较近的缓存服务器进行数据下载。
在上述数据下载过程可以看出,在处理设备获取到针对目标文件的数据下载请求时,都需要先确定出该目标文件对应的雾节点集合。可以理解的是,若该针对该目标文件的数据下载请求不是首次发起,那么在此次确定雾节点集合之前,处理设备就已经确定过该目标文件对应的雾节点集合。基于此,为了提高数据下载的速率,处理设备可以将已经确定出的雾节点结合与该目标文件形成映射关系并保存在本地中。这样,在一次次数据下载的过程中,处理设备自身就会记录有大量的资源文件与雾节点之间的映射关系。
在获取到数据下载请求后,为了提高雾节点集合的确定速度,处理设备可以先根据该目标文件的标识,查询该资源文件与雾节点的映射关系。若处理设备在之前处理过针对同一目标文件的数据下载请求,则在该映射关系中可能包括有与该目标文件对应的雾节点。若该映射关系中具有目标文件对应的雾节点,那么处理设备在确定雾节点集合时,就无须再与CDN进行交互,可以根据与目标文件对应的雾节点来确定雾节点集合,从而降低了与CDN的交互次数。
此外,在确定雾节点集合时,为了进一步提高数据下载的可靠性和下载速度,处理设备可以根据雾节点的相关信息,对雾节点进行进一步的筛选。其中,能够影响到数据下载速度的因素可以包括多种,例如数据下载时的传输距离、网络带宽等。在数据下载时,数据的下载方和提供方之间的传输距离越近,在相同的网络带宽下,数据传输所消耗的时间也就越短,数据下载的速度也就越快。
因此,在一种可能的实现方式中,处理设备可以通过数据下载的传输距离,对具有目标文件的雾节点进行进一步的筛选。上已述及,数据下载的下载方和雾节点都接入在CDN中,因此,处理设备可以根据发起数据下载请求的处理设备(即此次数据下载的下载方)在内容分发网络中的接入位置,确定目标文件对应的雾节点集合,该雾节点集合中的雾节点与处理设备的数据传输距离满足条件。
例如,在确定出具有目标文件的雾节点后,处理设备可以根据下载方在CDN中的接入位置以及各个雾节点在CDN中的接入位置,确定出下载方与各个雾节点之间的数据传输距离。处理设备可以预设一个传输距离阈值,将不超过该阈值做为确定条件,从而将满足该条件的雾节点做为目标文件对应的雾节点集合。
在该数据下载方法的实际应用过程中,根据不同的应用场景,数据下载请求的获取来源也可以包括多种。例如,在一种可能的实现方式中,下载方可以包括多种业务应用,例如各种视频应用、音频应用、图片处理应用等。在下载方的使用过程中,各个业务应用都可能需要从外界获取一定的文件资源,例如在视频应用的使用过程中,用户可能想要观看某一本地未存储的视频,该视频应用就需要从外界获取该视频文件播放给用户。
处理设备可以从业务应用获取针对目标文件的数据下载请求,该目标文件应用于该业务应用中。例如,处理设备可以获取针对图片文件的数据下载请求,该图片文件用于使图片处理应用进行图片处理;处理设备也可以获取针对音频文件的数据下载请求,该音频文件用于使音频应用进行音乐播放。通过这种方式,处理设备可以统一对业务应用所需的目标文件进行数据下载,而不需要业务应用自身来进行数据下载,从而降低了业务应用的开发难度,减少了各个业务应用的资源消耗。
例如,处理设备可以是负责为业务应用进行数据下载的对等内容分发网络软件开发工具包(Peer Content Delivery Network Software Development Kit,简称PCDNSDK),业务应用只需要向该PCDN SDK发起数据下载请求,就可以获取到PCDN SDK返回的目标文件,而不需要业务应用自身去进行数据下载。
接下来,将结合一种实际应用场景,对本申请实施例提供的一种数据下载方法进行介绍。在该实际应用场景中,如图4所示,处理设备为终端设备,该终端设备可以为用户在日常生活中使用的智能手机。在终端设备中具有各种业务APP,例如可以为各种视频APP、音频APP等。在业务APP中具有音视频播放器和下载组件等,通过该下载组件,可以向PCDN SDK来发起数据下载请求,PCDN SKD可以负责终端设备中安装的业务APP的数据下载。
如图5所示,图5为一种实际应用场景中数据下载方法的示意图。在进行数据下载前,业务APP首先要初始化PCDN SDK,调用PCDN SDK的接口,使PCDN SDK能够开始工作。业务APP可以向PCDN SDK发送业务初始化请求,该业务初始化请求中可以包括业务标识、日志存储路径、媒体存取控制(Media Access Control Address,简称MAC)地址、网络类型等参数。其中,业务标识用于标识该业务APP所对应的业务类型,日志存储路径用于指示该业务APP中日志保存的位置,MAC地址用于在网络中标识该终端设备,网络类型是指该终端设备所接入的网络类型,例如可以为无线网络、4G网络等。
PCDN SDK在接收该业务初始化请求后,可以开始进行内部初始化,即根据上述过程中获取的网络参数、MAC地址、日志存储路径、业务标识等,对自身进行设置。随后,PCDNSDK可以向登录服务器发起SDK初始化请求,该初始化请求的目的在于从登录服务器中获取查询服务器的地址。登录服务器可以向PCDN SDK进行初始化返回,在返回的信息中包括查询服务器的地址。在获取到查询服务器的地址后,PCDN SDK的初始化过程结束。
随后,在用户使用终端设备中的各种业务APP时,可能会需要业务APP获取各种业务数据,该业务数据为本实际应用场景中的目标文件。例如,在通过视频APP观看在线视频时,该视频APP需要获取该视频文件的业务数据。此时,业务APP可以调用PCDN SDK,向PCDNSDK发起数据下载请求,该数据下载请求中包括业务数据对应的的资源文件名、下载起始位置、下载结束位置和超时时间参数等。其中,该调用过程为异步调用过程,最大程度上降低了调用所需的时间。
PCDN SDK可以根据数据下载请求中的相关信息,以及从登录服务器中获取到的查询服务器地址,向查询服务器发起查询请求,用于查询雾节点信息。查询服务器可以根据业务数据的相关信息,从CDN中接入的雾节点中查询具有该业务数据的雾节点,讲这些雾节点确定为雾节点集合返回给PCDN SDK。
PCDN SDK在接收到雾节点集合后,首先可以将该雾节点集合与业务数据形成映射关系,通过上述日志存储路径保存在终端设备本地。随后,PCDN SDK可以向雾节点集合中的雾节点发起穿透请求,该穿透请求用于建立终端设备与雾节点之间的内网穿透连接。
雾节点在完成穿透后,可以向PCDN SDK返回雾节点穿透请求回复,用于通知PCDNSDK穿透完成。随后,PCDN SDK可以对目标文件进行数据切片处理。然后,PCDN SDK可以对雾节点集合中的雾节点进行评估,从中筛选出传输距离较短、可用带宽较多的雾节点做为目标雾节点。
PCDN SDK可以向目标雾节点发起切片下载请求,从目标雾节点中传输相应的数据切片,该切片下载请求中可以包括业务数据的标识、切片起始位置和切片结束位置等参数。在传输过程中,目标雾节点在返回切片数据时可以包括以下多种情况:
(1)带宽资源不足,即目标雾节点的可用带宽资源无法支撑该数据切片的下载,暂时无法下载该数据切片。
(2)没有业务数据,即目标雾节点中并不存在业务数据。由于雾节点中所具有的数据存在一定的变动性,因此虽然在确定雾节点集合时,该目标雾节点中具有该业务数据,但是在下载时,可能由于该目标雾节点的用户删除了该业务数据等原因,导致业务数据缺失。
(3)缺少该数据切片,即目标雾节点中的业务数据可能并不完整,不包括所需下载的数据切片对应的这部分业务数据。
(4)下载成功。
此外,为了提高下载的成功率,PCDN SDK可以根据上述过程中获取的超时时间参数,确定用于判断的时间阈值。在下载时间达到该时间阈值时,PCDN SDK可以向目标雾节点发送确认字符(Acknowledge character,简称ACK)应答,该ACK应答用于通知目标雾节点还有哪些数据切片的数据包没有发送完成。目标雾节点在接收该ACK应答后,可以向PCDN SDK补发这部分数据包。
若在一定时间内,目标雾节点向PCDN SDK传输了全部数据切片的数据包,那么在目标雾节点返回最后一份切片数据后,PCDN SDK可以向业务APP返回该业务数据,这个过程同样是一个异步过程,在接收到全部数据的同时可以立即向业务APP进行发送。
若在一定时间内,目标雾节点未能够发送全部的数据切片,PCDN SDK可以停止从目标雾节点中下载业务数据,转而通过CDN进行剩余的业务数据下载。
当业务APP不需要再下载业务数据后,由于雾节点保持内网穿透连接需要耗费终端设备的网络带宽资源,因此为了节省这部分网络带宽资源,业务APP可以向PCDN SDK发送业务反初始化信息。PCDN SDK接收到该信息后,可以释放这部分网络带宽资源,并通知所有建立了内网穿透连接的雾节点离开。
可以理解的是,在整个数据下载过程中,PCDN SDK的初始化和反初始化只需执行一次。如图6所示,图6为一种数据下载过程的示意图,其中步骤601和步骤604在整个下载过程中只需执行一次,而只要业务APP还有想要下载的数据,步骤602和步骤603就可以重复执行。
基于上述实施例提供的一种数据下载方法,本申请实施例还提供了一种数据下载装置,参见图7,图7为本申请提供的一种数据下载装置700的结构框图,装置700包括第一获取单元701、第一确定单元702、切片单元703、第二确定单元704、第一发送单元705和整合单元706:
第一获取单元701,用于获取针对目标文件的数据下载请求;
第一确定单元702,用于确定所述目标文件对应的雾节点集合;所述雾节点集合中的雾节点为内容分发网络中的边缘设备;
切片单元703,用于对所述目标文件进行切片,得到多个数据切片的切片信息;所述多个数据切片构成所述目标文件;
第二确定单元704,用于从所述雾节点集合中确定所述多个数据切片分别对应的目标雾节点;
第一发送单元705,用于根据所述切片信息,向所述数据切片对应的目标雾节点发送切片下载请求,所述切片下载请求包括所述目标文件的标识和所述数据切片在所述目标文件中的数据范围;
整合单元706,用于根据所述多个数据切片,得到所述目标文件。
在一种可能的实现方式中,第二确定单元704具体用于
根据与所述雾节点集合中雾节点的内网穿透连接,确定所述雾节点的可用带宽参数;
根据所述可用带宽参数从所述雾节点集合中确定目标雾节点;
从所述目标雾节点中确定出所述多个数据切片分别对应的目标雾节点。
在一种可能的实现方式中,第一发送单元705具体用于:
通过与所述目标雾节点间的内网穿透连接,向所述目标雾节点发送切片下载请求。在一种可能的实现方式中,所述数据下载请求中还包括超时时间参数,目标切片为所述多个数据切片中的任意一个,装置700还包括第二获取单元和第三确定单元:
第二获取单元,用于从所述目标切片所对应的目标雾节点获取构成所述目标切片的多个数据包;
第三确定单元,用于若在根据所述超时时间参数确定的时间阈值内,确定未获取全部所述多个数据包,向所述目标切片所对应的目标雾节点发送应答消息,所述应答消息用于指示发送未获取的数据包。
在一种可能的实现方式中,切片单元703具体用于
根据所述目标文件涉及的数据下载场景确定对应的切片大小;
根据所述切片大小对所述目标文件进行切分,确定构成所述目标文件的多个数据切片。
在一种可能的实现方式中,第一发送单元705具体用于:
通过并行的方式向不同数据切片对应的目标雾节点发送切片下载请求;其中,同时下载的数据切片的数量小于等于最大并发数,所述最大并发数是根据所述内容分发网络中的雾节点数量确定的。
在一种可能的实现方式中,第一确定单元702具体用于
向所述内容分发网络中的查询服务器发送查询请求,所述查询请求包括所述目标文件的标识;
从所述查询服务器获取所述目标文件对应的雾节点集合。
在一种可能的实现方式中,装置700还包括查询单元:
根据所述目标文件的标识查询资源文件与雾节点的映射关系;
若所述映射关系中具有与所述目标文件对应的雾节点,第一确定单元702具体用于:
根据与所述目标文件对应的雾节点确定所述雾节点集合;
若所述映射关系中不具有与所述目标文件对应的雾节点,执行所述向所述内容分发网络中的查询服务器发送查询请求的步骤。
在一种可能的实现方式中,第一确定单元702具体用于:
根据发起所述数据下载请求的处理设备在所述内容分发网络的接入位置,确定所述目标文件对应的雾节点集合,所述雾节点集合中的雾节点与所述处理设备的数据传输距离满足条件。
在一种可能的实现方式中,装置700还包括第二发送单元:
第二发送单元,用于若确定所述目标文件中的目标部分未被下载,向所述内容分发网络中的资源服务器发送针对所述目标部分的下载请求。
在一种可能的实现方式中,第一获取单元701具体用于:
从业务应用获取针对目标文件的所述数据下载请求,所述目标文件应用于所述业务应用中。
本申请实施例还提供了一种用于数据下载的设备,下面结合附图对该设备进行介绍。请参见图8所示,本申请实施例提供了一种设备,该设备还可以是终端设备,该终端设备可以为包括手机、平板电脑、个人数字助理(Personal Digital Assistant,简称PDA)、销售终端(Point of Sales,简称POS)、车载电脑等任意智能终端,以终端设备为手机为例:
图8示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图8,手机包括:射频(Radio Frequency,简称RF)电路810、存储器820、输入单元830、显示单元840、传感器850、音频电路860、无线保真(wireless fidelity,简称WiFi)模块870、处理器880、以及电源890等部件。本领域技术人员可以理解,图8中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图8对手机的各个构成部件进行具体的介绍:
RF电路810可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器880处理;另外,将设计上行的数据发送给基站。通常,RF电路810包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,简称LNA)、双工器等。此外,RF电路810还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(Global Systemof Mobile communication,简称GSM)、通用分组无线服务(General Packet RadioService,简称GPRS)、码分多址(Code Division Multiple Access,简称CDMA)、宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)、长期演进(Long TermEvolution,简称LTE)、电子邮件、短消息服务(Short Messaging Service,简称SMS)等。
存储器820可用于存储软件程序以及模块,处理器880通过运行存储在存储器820的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元830可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元830可包括触控面板831以及其他输入设备832。触控面板831,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板831上或在触控面板831附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器880,并能接收处理器880发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板831。除了触控面板831,输入单元830还可以包括其他输入设备832。具体地,其他输入设备832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元840可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元840可包括显示面板841,可选的,可以采用液晶显示器(Liquid CrystalDisplay,简称LCD)、有机发光二极管(Organic Light-Emitting Diode,简称OLED)等形式来配置显示面板841。进一步的,触控面板831可覆盖显示面板841,当触控面板831检测到在其上或附近的触摸操作后,传送给处理器880以确定触摸事件的类型,随后处理器880根据触摸事件的类型在显示面板841上提供相应的视觉输出。虽然在图8中,触控面板831与显示面板841是做为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板831与显示面板841集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器850,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板841的亮度,接近传感器可在手机移动到耳边时,关闭显示面板841和/或背光。做为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等; 至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路860、扬声器861,传声器862可提供用户与手机之间的音频接口。音频电路860可将接收到的音频数据转换后的电信号,传输到扬声器861,由扬声器861转换为声音信号输出;另一方面,传声器862将收集的声音信号转换为电信号,由音频电路860接收后转换为音频数据,再将音频数据输出处理器880处理后,经RF电路810以发送给比如另一手机,或者将音频数据输出至存储器820以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块870可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块870,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器880是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器880可包括一个或多个处理单元;优选的,处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器880中。
手机还包括给各个部件供电的电源890(比如电池),优选的,电源可以通过电源管理***与处理器880逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,该终端设备所包括的处理器880还具有以下功能:
获取针对目标文件的数据下载请求;
确定所述目标文件对应的雾节点集合;所述雾节点集合中的雾节点为内容分发网络中的边缘设备;
对所述目标文件进行切片,得到多个数据切片的切片信息;所述多个数据切片构成所述目标文件;
从所述雾节点集合中确定所述多个数据切片分别对应的目标雾节点;
根据所述切片信息,向所述数据切片对应的目标雾节点发送切片下载请求,所述切片下载请求包括所述目标文件的标识和所述数据切片在所述目标文件中的数据范围;
根据所述多个数据切片,得到所述目标文件。
本申请实施例还提供一种服务器,请参见图9所示,图9为本申请实施例提供的服务器900的结构图,服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(Central Processing Units,简称CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在服务器900上执行存储介质930中的一系列指令操作。
服务器900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作***941,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于图9所示的服务器结构。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的数据下载方法中的任意一种实施方式。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及***实施例仅仅是示意性的,其中做为分离部件说明的单元可以是或者也可以不是物理上分开的,做为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (15)
1.一种数据下载方法,其特征在于,所述方法包括:
获取针对目标文件的数据下载请求;
确定所述目标文件对应的雾节点集合;所述雾节点集合中的雾节点为内容分发网络中的边缘设备;
根据所述雾节点对应的空闲带宽资源,对所述目标文件进行切片,得到多个数据切片的切片信息;所述多个数据切片构成所述目标文件;
从所述雾节点集合中确定所述多个数据切片分别对应的目标雾节点;
根据所述切片信息,向所述数据切片对应的目标雾节点发送切片下载请求,所述切片下载请求包括所述目标文件的标识和所述数据切片在所述目标文件中的数据范围;
根据所述多个数据切片,得到所述目标文件。
2.根据权利要求1所述的方法,其特征在于,所述从所述雾节点集合中确定所述多个数据切片分别对应的目标雾节点,包括:
根据与所述雾节点集合中雾节点的内网穿透连接,确定所述雾节点的可用带宽参数;
根据所述可用带宽参数从所述雾节点集合中确定目标雾节点;
从所述目标雾节点中确定出所述多个数据切片分别对应的目标雾节点。
3.根据权利要求2所述的方法,其特征在于,所述向所述数据切片对应的目标雾节点发送切片下载请求,包括:
通过与所述目标雾节点间的内网穿透连接,向所述目标雾节点发送切片下载请求。
4.根据权利要求1所述的方法,其特征在于,所述数据下载请求中还包括超时时间参数,目标切片为所述多个数据切片中的任意一个,在所述向所述数据切片对应的目标雾节点发送切片下载请求之后,所述方法还包括:
从所述目标切片所对应的目标雾节点获取构成所述目标切片的多个数据包;
若在根据所述超时时间参数确定的时间阈值内,确定未获取全部所述多个数据包,向所述目标切片所对应的目标雾节点发送应答消息,所述应答消息用于指示发送未获取的数据包。
5.根据权利要求1所述的方法,其特征在于,所述对所述目标文件进行切片,包括:
根据所述目标文件涉及的数据下载场景确定对应的切片大小;
根据所述切片大小对所述目标文件进行切分,确定构成所述目标文件的多个数据切片。
6.根据权利要求1所述的方法,其特征在于,所述向所述数据切片对应的目标雾节点发送切片下载请求,包括:
通过并行的方式向不同数据切片对应的目标雾节点发送切片下载请求;其中,同时下载的数据切片的数量小于等于最大并发数,所述最大并发数是根据所述内容分发网络中的雾节点数量确定的。
7.根据权利要求1所述的方法,其特征在于,所述确定所述目标文件对应的雾节点集合,包括:
向所述内容分发网络中的查询服务器发送查询请求,所述查询请求包括所述目标文件的标识;
从所述查询服务器获取所述目标文件对应的雾节点集合。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
根据所述目标文件的标识查询资源文件与雾节点的映射关系;
若所述映射关系中具有与所述目标文件对应的雾节点,所述确定所述目标文件对应的雾节点集合,包括:根据与所述目标文件对应的雾节点确定所述雾节点集合;
若所述映射关系中不具有与所述目标文件对应的雾节点,执行所述向所述内容分发网络中的查询服务器发送查询请求的步骤。
9.根据权利要求1-8任意一项所述的方法,其特征在于,所述确定所述目标文件对应的雾节点集合,包括:
根据发起所述数据下载请求的处理设备在所述内容分发网络的接入位置,确定所述目标文件对应的雾节点集合,所述雾节点集合中的雾节点与所述处理设备的数据传输距离满足条件。
10.根据权利要求1-8任意一项所述的方法,其特征在于,在所述根据所述多个数据切片,得到所述目标文件之前,所述方法还包括:
若确定所述目标文件中的目标部分未被下载,向所述内容分发网络中的资源服务器发送针对所述目标部分的下载请求。
11.根据权利要求1所述的方法,其特征在于,所述获取针对目标文件的数据下载请求,包括:
从业务应用获取针对目标文件的所述数据下载请求,所述目标文件应用于所述业务应用中。
12.一种数据下载装置,其特征在于,所述装置包括第一获取单元、第一确定单元、切片单元、第二确定单元、第一发送单元和整合单元:
所述第一获取单元,用于获取针对目标文件的数据下载请求;
所述第一确定单元,用于确定所述目标文件对应的雾节点集合;所述雾节点集合中的雾节点为内容分发网络中的边缘设备;
所述切片单元,用于根据所述雾节点对应的空闲带宽资源,对所述目标文件进行切片,得到多个数据切片的切片信息;所述多个数据切片构成所述目标文件;
所述第二确定单元,用于从所述雾节点集合中确定所述多个数据切片分别对应的目标雾节点;
所述第一发送单元,用于根据所述切片信息,向所述数据切片对应的目标雾节点发送切片下载请求,所述切片下载请求包括所述目标文件的标识和所述数据切片在所述目标文件中的数据范围;
所述整合单元,用于根据所述多个数据切片,得到所述目标文件。
13.根据权利要求12所述的装置,其特征在于,所述第二确定单元具体用于:
根据与所述雾节点集合中雾节点的内网穿透连接,确定所述雾节点的可用带宽参数;
根据所述可用带宽参数从所述雾节点集合中确定目标雾节点;
从所述目标雾节点中确定出所述多个数据切片分别对应的目标雾节点。
14.一种用于数据下载的设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-11中任意一项所述的数据下载方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-11中任意一项所述的数据下载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767402.XA CN111629075B (zh) | 2020-08-03 | 2020-08-03 | 一种数据下载方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767402.XA CN111629075B (zh) | 2020-08-03 | 2020-08-03 | 一种数据下载方法和相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111629075A CN111629075A (zh) | 2020-09-04 |
CN111629075B true CN111629075B (zh) | 2020-12-18 |
Family
ID=72272197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010767402.XA Active CN111629075B (zh) | 2020-08-03 | 2020-08-03 | 一种数据下载方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111629075B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4221233A4 (en) * | 2021-05-17 | 2024-01-24 | Tencent Technology (Shenzhen) Company Limited | METHOD AND APPARATUS FOR DOWNLOADING DATA, COMPUTER DEVICE AND STORAGE MEDIUM |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112118461B (zh) * | 2020-09-22 | 2022-10-18 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种音视频文件存储和分发方法与装置 |
CN114422519B (zh) * | 2020-10-14 | 2024-01-09 | 腾讯科技(深圳)有限公司 | 一种数据请求的处理方法、装置、电子设备及存储介质 |
CN112311874B (zh) * | 2020-10-29 | 2023-04-18 | 广州博冠信息科技有限公司 | 媒体数据处理方法、装置、存储介质及电子设备 |
CN112685097B (zh) * | 2020-12-28 | 2024-04-16 | 北京达佳互联信息技术有限公司 | 一种数据处理方法和装置 |
CN113163003B (zh) * | 2021-04-09 | 2023-05-30 | 北京汇钧科技有限公司 | 文件传输方法、云端服务器、客户端以及雾节点路由器 |
CN113596166B (zh) * | 2021-08-02 | 2023-09-01 | 北京金山云网络技术有限公司 | 数据获取方法、装置、计算机设备和存储介质 |
CN113645288B (zh) * | 2021-08-02 | 2023-03-28 | 北京金山云网络技术有限公司 | 数据下载方法、装置、计算机设备和存储介质 |
CN115002216B (zh) * | 2022-04-27 | 2024-02-23 | 北京奇艺世纪科技有限公司 | 一种下载方法、装置、终端设备以及可读存储介质 |
CN115242780A (zh) * | 2022-07-26 | 2022-10-25 | 北京知道创宇信息技术股份有限公司 | 文件下载方法、装置、下载管理器及可读存储介质 |
CN118233455B (zh) * | 2024-05-27 | 2024-08-20 | 杭州政云数据技术有限公司 | 基于内网的文件传输方法、装置、设备及介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100405795C (zh) * | 2005-02-24 | 2008-07-23 | 广东省电信有限公司研究院 | 分布式对等流媒体的服务***及其点播节目的实现方法 |
CN101146022B (zh) * | 2006-09-11 | 2011-08-17 | 上海思华科技股份有限公司 | 节点重叠内容分发网络 |
CN101257396B (zh) * | 2007-03-02 | 2010-12-08 | 中国科学院声学研究所 | 一种基于p2p技术的多域内容分发***及相应的方法 |
CN101282281B (zh) * | 2007-04-03 | 2011-03-30 | 华为技术有限公司 | 一种媒体分发***、装置及流媒体播放方法 |
CN101087403B (zh) * | 2007-05-31 | 2010-10-06 | 杭州搜视网络有限公司 | 基于p2p技术上的分布式流媒体点播***及其点播流媒体节目的实现方法 |
CN109951514B (zh) * | 2019-01-16 | 2022-03-25 | 平安科技(深圳)有限公司 | 基于云存储的文件处理方法、***及计算机设备 |
CN110602229A (zh) * | 2019-09-20 | 2019-12-20 | 中国银行股份有限公司 | 基于动态切片的终端***版本下载方法、装置及*** |
-
2020
- 2020-08-03 CN CN202010767402.XA patent/CN111629075B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4221233A4 (en) * | 2021-05-17 | 2024-01-24 | Tencent Technology (Shenzhen) Company Limited | METHOD AND APPARATUS FOR DOWNLOADING DATA, COMPUTER DEVICE AND STORAGE MEDIUM |
Also Published As
Publication number | Publication date |
---|---|
CN111629075A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111629075B (zh) | 一种数据下载方法和相关装置 | |
US10635449B2 (en) | Method and apparatus for running game client | |
CN108667884B (zh) | 镜像分发方法、镜像获取方法及装置 | |
CN105554522B (zh) | 在群组内播放音频的方法、服务器及终端 | |
CN110213315B (zh) | 一种路径确定方法和装置 | |
CN111416745A (zh) | 一种网络切片确定方法和相关装置 | |
CN110620822A (zh) | 一种网元确定方法和装置 | |
CN107800585B (zh) | 网络通信的方法和装置、推送消息的方法和装置 | |
CN111444237A (zh) | 服务器***、数据传输方法及电子设备 | |
CN113950125B (zh) | 一种应用程序中网络加速的方法、装置以及存储介质 | |
CN106230703A (zh) | 聊天记录的处理和获取方法以及装置 | |
CN111194098B (zh) | 链路建立方法、装置、通信***及计算机可读介质 | |
CN105227598A (zh) | 一种基于云存储的资源分享方法、装置和*** | |
US10158896B2 (en) | Video channel allocation management method and related device, and communication system | |
CN115242805A (zh) | 基于gossip的分布式MQTT消息传递方法、传递***及存储介质 | |
CN105025064B (zh) | 下载文件的方法、装置及*** | |
CN111475843B (zh) | 一种数据处理方法和相关装置 | |
CN111371916B (zh) | 一种数据处理方法及相关设备 | |
CN110417861B (zh) | 一种信息推送方法以及相关装置 | |
CN114124924A (zh) | 一种确定配置信息的方法、设备及*** | |
CN116596202A (zh) | 工单处理方法、相关装置及存储介质 | |
CN113473455B (zh) | 一种终端应用联网的方法及终端 | |
CN109002535B (zh) | 一种数据更新方法和装置 | |
CN109992361B (zh) | 应用冻结方法、装置、终端及计算机可读存储介质 | |
CN112153154A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028552 Country of ref document: HK |