CN111327697B - 一种数据下载方法、装置、设备及存储介质 - Google Patents
一种数据下载方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111327697B CN111327697B CN202010099704.4A CN202010099704A CN111327697B CN 111327697 B CN111327697 B CN 111327697B CN 202010099704 A CN202010099704 A CN 202010099704A CN 111327697 B CN111327697 B CN 111327697B
- Authority
- CN
- China
- Prior art keywords
- domain name
- server
- download
- downloading
- request
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种数据下载方法、装置、设备及存储介质;所述方法包括:获取已托管的目标应用的下载请求,并获取所述下载请求对应的第一域名;确定所述第一域名对应的IP地址;当所述IP地址符合劫持条件时,基于预设的转发劫持规则确定所述IP地址对应的调度服务器,并对所述第一域名进行更新,得到第二域名;将所述第二域名对应的下载请求发送至调度服务器,以获取请求下载的数据。如此,能够在保证下载速度的同时,提高下载成功率。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据下载方法、装置、设备及存储介质。
背景技术
随着互联网技术以及智能终端的发展,诸如手机、平板电脑等移动智能终端已成为人们日常生活和工作不可或缺的物品。人们可以通过移动智能终端下载并安装各种应用程序,以进行工作、生活和娱乐,另外在应用程序的使用过程中,还可能会下载需要的文件。
在流量突发,或者网络连接状态不稳定的情况下,容易出现下载失败的问题,在相关技术中,出现下载失败时一般是采用简单重试或者尝试其他内容分发网络(CDN,ContentDelivery Network)节点等解决方式,以对下载失败进行补救。
但是不断进行下载重试,在一定程度上继续恶化了CDN节点的高负载情况,导致下载失败的概率更大。同时,在CDN节点高负载情况下,带宽得不到保障,下载速度较慢。
发明内容
本申请实施例提供一种数据下载方法、装置及存储介质,能够在保证下载速度的同时,提高下载成功率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据下载方法,包括:
获取已托管的目标应用的下载请求,并获取该下载请求对应的第一域名;
确定该第一域名对应的IP地址;
当所述IP地址符合劫持条件时,基于预设的转发劫持规则对该第一域名进行更新,得到第二域名,并确定该第二域名对应的调度服务器;
将该第二域名对应的下载请求发送至调度服务器,以获取请求下载的数据。
本申请实施例提供一种数据下载方法,包括:
接收下载加速客户端发送的下载请求,其中,该下载请求中携带有第二域名,所述第二域名是进行下载劫持后得到的;
当自身没有存储有请求下载的数据时,向该下载加速客户端发送跳转请求,其中,该跳转请求中携带有至少一个第三域名,以使得该下载加载客户端基于第三域名获取请求下载的数据。
本申请实施例提供一种数据下载装置,包括:
第一获取模块,用于获取已托管的目标应用的下载请求,并获取该下载请求对应的第一域名;
第一确定模块,用于确定该第一域名对应的IP地址;
第二确定模块,用于当该IP地址符合劫持条件时,基于预设的转发劫持规则对该第一域名进行更新,得到第二域名,并确定该第二域名对应的调度服务器;
第一发送模块,用于将该第二域名对应的下载请求发送至调度服务器,以获取请求下载的数据。
本申请实施例提供一种数据下载装置,包括:
第一接收模块,用于接收下载加速客户端发送的下载请求,其中,该下载请求中携带有第二域名,该第二域名是进行下载劫持后得到的;
第二发送模块,用于当自身没有存储有请求下载的数据时,向该下载加速客户端发送跳转请求,其中,该跳转请求中携带有至少一个第三域名,以使得该下载加载客户端基于第三域名获取请求下载的数据。
本申请实施例提供一种数据下载设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行该存储器中存储的可执行指令时,实现本申请实施例提供的方法。
本申请实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的方法。
本申请实施例具有以下有益效果:
在本申请实施例提供的数据下载方法中,在获取已托管的目标应用的下载请求后,获取该下载请求对应的第一域名;进而对第一域名进行域名解析,以确定该第一域名对应的网际互连协议(IP,Internet Protocol)地址;当对应的 IP地址符合劫持条件时,基于预设的转发劫持规则确定该IP地址对应的调度服务器,并对该第一域名进行更新,得到第二域名,如此就完成了下载域名劫持;此后将该第二域名对应的下载请求发送至调度服务器,以获取请求下载的数据,从而通过劫持业务的下载请求来进行下载优化,以使劫持到的下载请求能够从更优的下载资源获取到请求下载的数据,能够在保证下载速度的同时,提高下载成功率。
附图说明
图1A为本申请实施例数据下载方法的一种网络架构示意图;
图1B为本申请实施例数据下载方法的另一种网络架构示意图;
图2是本申请实施例提供的用户终端100的组成结构示意图;
图3为本申请实施例提供的数据下载方法的一种实现流程示意图;
图4为本申请实施例提供的数据下载方法的又一种实现流程示意图;
图5为本申请实施例提供的数据下载方法的再一种实现流程示意图;
图6A为本申请实施例提供的下载请求劫持原理示意图;
图6B为本申请实施例进行域名解析结果收集的实现逻辑示意图;
图7为本申请实施例将下载域名劫持后的下载流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)统一定位符(URL,Uniform Resource Locator),因特网上或服务程序上用于指定信息位置的表示方法。
2)302跳转:302是超文本传输协议(Hyper Text Transfer Protocol,HTTP) 协议中定义的一个错误码,后台在返回的HTTP头部中还会带上重定向的URL 地址,让客户端进行新的URL请求。
3)P2P:Peer-To-Peer,一种网络技术和网络拓扑结构,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。
下面说明实现本申请实施例的装置的示例性应用,本申请实施例提供的装置可以实施为终端设备。下面,将说明装置实施为终端设备时涵盖终端设备的示例性应用。
参见图1A,图1A为本申请实施例数据下载方法的一种网络架构示意图,如图1A所示,在该网络架构中至少包括用户终端100、调度服务器200、文件下载服务器300和节点服务器400。为实现支撑一个示例性应用,用户终端10 0和调度服务器200、用户终端100和节点服务器400(例如可以是CDN服务器、互联网数据中心(IDC,Internet Data Center)服务器等),以及调度服务器200和数据下载服务器300、数据下载服务器300和节点服务器400之间分别通过网络(图1A中未示出)连接,该网络可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
在本申请实施例中,用户终端100中可以安装有各种各样的应用程序(Ap p,Application),例如可以是购物App、即时通讯App、视频观看App、游戏A pp等,另外,用户终端100中还可以安装有专门用于下载加速的App。用户在使用各种App的过程中,可能需要下载数据,当用户通过某一App(例如可以是游戏App)发出下载数据的请求时,如果该App为托管到下载加速App的应用程序,那么下载加速App会截获到该下载请求,下载加速App获取该下载请求的第一域名和对应的IP地址,当基于该IP地址确定符合劫持条件时,进行下载域名劫持,并基于新的域名将下载请求发送至调度服务器200,调度服务器200接收到下载请求后,向用户终端100发送一跳转请求,并将下载请求发送至存储有所请求数据的数据下载服务器300,数据下载服务器300查找到该数据后,将该数据发送至各个节点服务器400,用户终端100基于跳转请求中携带的域名从对应的节点服务器400处下载所请求的数据。
在本申请实施例中,服务器不应简单理解为一个或一类服务器,而是根据上述的示例,在实际应用中为了支撑应用或网页而部署的各种可能形式的服务器,例如可以是云服务器、服务器集群等。
图1B为本申请实施例数据下载方法的另一种网络架构示意图,如图1B所示,在该网络架构中至少包括用户终端101(示例性地示出用户终端101-1、用户终端101-2和用户终端101-3,其中,用户终端101-1为请求下载数据的终端,用户终端101-2和用户终端101-3为种子服务器)、调度服务器201。为实现支撑一个示例性应用,用户终端101-1、用户终端101-2和用户终端101-3分别和调度服务器200通过网络连接,该网络可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
用户终端101中可以安装有各种各样的App,另外,用户终端101中还可以安装有专门用于下载加速的App。用户在使用各种App的过程中,可能需要下载数据,当用户终端101-1对应的用户通过某一App(例如可以是游戏App) 发出下载数据的请求时,如果该App为托管到下载加速App的应用程序,那么下载加速App会截获到该下载请求,下载加速App获取该下载请求的第一域名和对应的IP地址,当基于该IP地址确定符合劫持条件时,进行下载域名劫持,并基于新的域名将下载请求发送至调度服务器200。假设用户终端101-2和用户终端101-3中存储有请求下载的数据,并且用户终端101-2和101-3制作了数据种子并将下载链接发送至调度服务器200,那么调度服务器200接收到下载请求后,向用户终端101-1发送一跳转请求,该跳转请求中携带有用户终端101- 2和用户终端101-3所提供的下载地址,用户终端101-1在接收到跳转请求后,从用户终端101-2和用户终端101-3中的至少一个中获取请求下载的数据。
本申请实施例提供的装置可以实施为硬件或者软硬件结合的方式,下面说明本申请实施例提供的装置的各种示例性实施。
根据图2示出的用户终端100的示例性结构,可以预见用户终端100的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用的特殊需求。
图2所示的用户终端100包括:至少一个处理器110、存储器140、至少一个网络接口120和用户接口130。用户终端100中的每个组件通过总线系统15 0耦合在一起。可理解,总线系统150用于实现这些组件之间的连接通信。总线系统150除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统150。
用户接口130可以包括显示器、键盘、鼠标、触感板和触摸屏等。
存储器140可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Acces s Memory)。本申请实施例描述的存储器140旨在包括任意适合类型的存储器。
本申请实施例中的存储器140能够存储数据以支持用户终端100的操作。这些数据的示例包括:用于在用户终端100上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。
作为本申请实施例提供的方法采用软件实施的示例,本申请实施例所提供的方法可以直接体现为由处理器110执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器140,处理器110读取存储器140中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器110以及连接到总线150的其他组件)完成本申请实施例提供的方法。
作为示例,处理器110可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的数据下载方法。
参见图3,图3为本申请实施例提供的数据下载方法的一种实现流程示意图,应用于图1A所示的用户终端100或应用于图1B所示的用户终端101-1,将结合图3示出的步骤进行说明。
步骤S101,获取已托管的目标应用的下载请求,并获取该下载请求对应的第一域名。
这里,用户终端可以是智能手机、平板电脑、笔记本电脑等便携式智能终端,还可以是桌面电脑、台式电脑等不便移动的智能终端。用户终端中安装有各类App,并且在用户终端中还安装有能够加快下载速度的下载加速App。当有应用托管到下载加速App后,下载加速App启动后,会建立一个VPN进程,该VPN进程管理需要加速的应用的全部流量。
在本申请实施例中,用户请求下载的数据可以是应用的安装包文件,还可以是视频文件、音频文件、还可以是图片、文档等,当然也可以是其他形式的数据。当用户在使用目标应用的过程中,需要下载数据时,会基于用户操作触发一个下载请求,在实现时,该下载请求可以是URL地址,该URL地址中包括下载请求对应的第一域名,还包括请求下载的数据的标识。
例如,下载请求可以是:http://download.b.com/aaa.tar.gz,那么第一域名为download.b.com,文件标识为aaa.tar.gz,该下载请求也即表示请求从download. b.com网站中下载aaa.tar.gz这一文件。
步骤S102,确定该第一域名对应的IP地址。
这里,步骤S102在实现时,通过域名解析确定第一域名对应的IP地址,进一步地,可以将第一域名携带于域名解析请求中发送给本地域名服务器,本地域名服务器查找到第一域名对应的IP地址后,将该IP地址携带于响应报文中返回给用户终端,当本地域名服务器未查找到第一域名对应的IP地址时,则向根域名服务器发送解析请求,进而获取到第一域名对应的IP地址。
在一些实施例中,在步骤S102之后,该数据下载方法还包括:判断该IP 地址是否符合劫持条件,其中,当该IP地址符合劫持条件时,进入步骤S103;当该IP地址不符合劫持条件时,将下载请求发送至第一域名对应的服务器,以获取请求下载的数据。
判断一个IP地址是否符合劫持条件,在实现时,可以是通过判断该IP地址是否存在于从下载加速服务器发送的域名解析结果中,在该域名解析结果中包括第一域名对应的各个解析结果,也即第一域名对应的各个IP地址,其中,当该IP地址存在于域名解析结果中,认为该IP地址符合劫持条件,当该IP地址不存在于域名解析结果中时,认为该IP地址不符合劫持条件。
步骤S103,当该IP地址符合劫持条件时,基于预设的转发劫持规则对该第一域名进行更新,得到第二域名,并确定该第二域名对应的调度服务器。
这里,当该IP地址符合劫持条件时,进行下载域名劫持,也即基于预设的转发劫持规则对第一域名进行更新,从而得到第二域名,并确定第二域名对应的调度服务器。假设转发劫持规则规定,将download.b.com更新为download.h ijack.com,那么也即第二域名为download.hijack.com,该域名对应着特殊的指定服务器,也即调度服务器。
步骤S104,将该第二域名对应的下载请求发送至调度服务器,以获取请求下载的数据。
这里,将第一域名更新为第二域名后,会得到新的下载请求,承接上述举例,当第二域名为download.hijack.com时,其对应的下载请求为http://downloa d.hijack.com/aaa.tar.gz,将该下载请求发送至调度服务器,以获取aaa.tar.gz这一数据。
在本申请实施例中,调度服务器在接收到该下载请求后,会向用户终端返回一个302跳转请求,该跳转请求中携带有另一下载地址,以通知用户终端从跳转请求中携带的下载地址继续请求数据。
在本申请实施例提供的数据下载方法中,在获取已托管的目标应用的下载请求后,获取该下载请求对应的第一域名;进而对第一域名进行域名解析,以确定该第一域名对应的IP地址;当对应的IP地址符合劫持条件时,基于预设的转发劫持规则确定该IP地址对应的调度服务器,并对该第一域名进行更新,得到第二域名,如此就完成了下载域名劫持;此后将该第二域名对应的下载请求发送至调度服务器,以获取请求下载的数据,从而通过劫持业务的下载请求来进行下载优化,以使劫持到的下载请求能够从更优的下载资源获取到请求下载的数据,能够在保证下载速度的同时,提高下载成功率。
在一些实施例中,图3所示的步骤S104可以通过下述的步骤S1041至步骤S1044实现,以下对各步骤进行说明。
步骤S1041,将该第二域名对应的下载请求发送至调度服务器。
这里,将第二域名对应的下载请求发送至调度服务器后,调度服务器可以首先查看自身是否存储有请求下载的数据,当调度服务器自身存储有请求下载的数据时,可以直接将该数据返回给用户终端;但是由于调度服务器主要用于进行下载调度,因此一般不会存储有请求下载的数据,当调度服务器自身没有存储有请求下载的数据时,则向用户终端返回一个跳转请求,例如可以是302 跳转请求,以通知用户终端通过另一域名继续请求该数据。
步骤S1042,接收调服服务器发送的跳转请求。
这里,该跳转请求中携带有至少一个第三域名。在本申请实施例中,跳转请求中携带的第三域名可以指向的是CDN节点设备(在其他实施例中还可以称为节点服务器或者CDN服务器)或IDC节点设备(在其他实施例中还可以称为节点服务器或IDC服务器),当第三域名指向的是CDN节点设备或IDC节点设备时,一般此时跳转请求中携带的是一个第三域名。需要说明的是,发送给用户终端的第三域名,已经按热点地区通过域名解析的方式调度到了不同的 IDC集群和CDN集群,以保证负载均衡和体验优化。
在一些实施例中,第三域名可以指向的是种子服务器,其中种子服务器一般是其他用户终端,计算能力和存储能力都相对有限,此时跳转请求中携带的可以是多个第三域名,每个域名对应的种子服务器中可以是存储有部分数据内容,也可以是存储有全部数据内容。
在一些实施例中,跳转请求中还可以携带有数据属性信息,例如包括数据占用的空间大小等。
步骤S1043,向第三域名对应的第一服务器发送下载请求。
这里,当跳转请求中携带有至少两个(也即两个或者两个以上)第三域名时,步骤S1043在实现时可以是:启动至少两个线程,并发向至少两个第三域名对应的第一服务器发送下载请求。该实现方式可以是适用于多个第三域名对应的服务器中存储有部分数据内容的场景。
在一些实施例中,当跳转请求中携带有至少两个第三域名时,且每个第三域名对应的服务器中存储有全部数据内容时,步骤S1043在实现时还可以是:从至少两个第三域名中选择出一个第三域名,向选择出的这个第三域名对应的第一服务器发送下载请求。
步骤S1044,接收并存储该第一服务器发送的数据。
这里,第一服务器在接收到下载请求后,会基于下载请求中携带的数据标识,查找出请求下载的数据,并将该数据发送给用户终端,用户终端接收到后,存储该数据。这样对于用户来说,并不会感知到是进行了下载劫持,其下载请求得到了及时响应,并在保证下载速度的同时,能够保证下载速率。
在一些实施例中,当用户终端获取到请求下载的数据之后,可以在征得对应用户的同意的情况下,可以通过下述步骤将自身作为种子服务器,为其他客户端提供下载数据:
步骤S105,在获取到请求下载的数据后,响应于制作数据种子的操作指令,生成该数据的下载地址。
这里,在制作数据种子时,可以将整个数据制作数据种子,还可以将数据的一部分制作数据种子。在制作数据种子时,用户终端还可以设定数据种子的开放时间、有效期限等。
步骤S106,将该下载地址发送至调度服务器。
这里,在实际实现时,将下载地址发送至调度服务器时,还可以同时将数据大小发送至调度服务器,以便调度服务器能够根据数据大小确定是完整的数据,还是一部分数据。
通过上述的步骤S105至步骤S106,能够使得用户终端作为种子服务器,为其他用户提供自己下载的数据,也即实现P2P下载,从而能够最大化地提升用户下载速度和下载体验。
在一些实施例中,为了确定解析出的IP地址是否满足劫持条件,需要提前进行域名解析结果采集,从而设定劫持条件,并配置转发劫持规则,在实际实现过程中,可以通过以下步骤实现:
步骤S201,将第一域名发送至下载加速服务器,以使得下载加速服务器将携带有第一域名的解析任务下发至其他下载加速客户端进行解析。
这里,下载加速服务器可以是该下载加速客户端对应的服务器,对应其他实施例中的云控服务器。将第一域名发送至下载加速服务器后,下载加速服务器会将携带有第一域名的解析任务下发至其他下载加速客户端,以使得其他下载加速客户端对第一域名进行解析,在本申请实施例中,可以是下载加速服务器将解析任务下发给所有安装有下载加速App的用户终端,以尽可能全面的收集域名解析结果。
在本申请实施例中,其他下载加速客户端接收到第一域名后,进行第一域名解析,以获取对应的解析结果,并上报解析结果。其中,其他下载加速客户端在获取到解析结果后,可以将解析结果直接上报到下载加速服务器,由下载加速服务器基于收集到的所有解析结果进行统计和去重,从而得到最终的域名解析结果。在一些实施例中,其他下载加速客户端在获取到解析结果后,可以将解析结果上报给专门进行数据统计的数据统计服务器,由数据统计服务器进行统计和去重,以得到最终的域名解析结果,进而数据统计服务器再将最终的域名解析结果发送至下载加速服务器,由下载加速服务器将第一域名的域名解析结果发送至用户终端。
步骤S202,接收下载加速服务器发送的该第一域名的域名解析结果。
这里,该域名解析结果中包括多个IP地址。由于在进行域名解析结果采集时,下载加速服务器将解析任务下发给了所有安装有下载加速App的用户终端,因此最终得到的域名解析结果中已经尽最大限度地包含了第一域名对应的所有 IP地址。
步骤S203,基于该域名解析结果配置转发劫持规则。
这里,转发劫持规则中至少包括当下载请求对应的IP地址存在于该域名解析结果中时,将下载请求转发至预设的调度服务器,将下载请求转发至预设的调度服务器,也即将下载请求中的第一域名更新为调度服务器对应的第二域名。
通过上述的步骤S201至步骤S203即完成了域名解析结果收集和转发劫持规则配置,这样在下载加速App截获到某一应用的下载请求时,当该下载请求对应的IP地址在域名解析结果中,即认为满足劫持条件,进而根据配置好的转发劫持规则,将该请求转发到特定的调度服务器中,从而使得下载请求能够得到更加及时准确的响应。
基于前述的实施例,本申请实施例再提供一种数据下载方法,应用于图1 A或图1B中的调度服务器,图4为本申请实施例提供的又一种数据下载方法的实现流程示意图,如图4所示,该数据下载方法包括:
步骤S401,接收下载加速客户端发送的下载请求。
这里,该下载请求中携带有第二域名,该第二域名是进行下载劫持后得到的。
步骤S402,判断自身是否存储有请求下载的数据。
这里,当自身存储有请求下载的数据时,进入步骤S403,将请求下载的数据发送至用户终端;当自身没有存储有请求下载的数据时,进入步骤S404。
步骤S403,将请求下载的数据发送至下载加速客户端。
这里,当调度服务器自身存储有请求下载的数据时,直接将该数据发送至下载加速客户端即可。
步骤S404,向该下载加速客户端发送跳转请求。
这里,该跳转请求中携带有至少一个第三域名,以使得该下载加载客户端基于第三域名获取请求下载的数据。该第三域名对应的第一服务器可以是CDN 服务器,还可以是IDC服务器,当然还可以是作为种子服务器的其他用户终端。
在一些实施例中,当该第三域名对应的第一服务器为CDN服务器或者ID C服务器时,在步骤S404之后,该数据下载方法还包括:
步骤S405,向存储有请求下载的数据的第二服务器发送下载请求,以使得该第二服务器将请求下载的数据发送至第一服务器。
这里,由于调度服务器在跳转请求中携带有第三域名,那么为了保证用户终端能够从第三域名对应的第一服务器获取到请求下载的数据,那么当第一服务器为CDN服务器或者IDC服务器时,需要调度服务器向存储有请求下载的数据的第二服务器,将该数据同步到所有的CDN服务器或者IDC服务器,以使得第三域名对应的第一服务器中有该请求,从而保证能够下载成功。
在一些实施例中,当调度服务器向用户终端(或者说下载加速客户端)发送跳转请求时,会基于下载方式不同而有不同的实现方式,当下载方式为常规下载方式时,上述的步骤S404可以通过以下步骤实现:
步骤S4041a,当自身没有存储有请求下载的数据时,获取存储有该数据的各个服务器的负载信息。
这里,各个服务器可以是CDN服务器或者IDC服务器。各个服务器的负载信息用于表示各个服务器当前的负荷情况,可以是用百分比表示,例如一个服务器的负载信息可以是70%,表示该服务器的计算能力或者存储能力已经占用了自身总的计算能力或存储能力的70%。
步骤S4042a,基于各个服务器的负载信息,从存储有该数据的各个服务器中确定满足负载条件的各个目标服务器。
这里,负载条件可以是负载信息低于预设的负载阈值,例如该负载阈值可以是65%,那么步骤S4042a在实现时可以是将存储有该数据的各个服务器中确定负载信息小于负载阈值的服务器确定为目标服务器。
步骤S4043a,获取该下载加速客户端所处的第一位置信息和各个目标服务器的第二位置信息。
这里,第一位置信息可以是根据安装该下载加速客户端的用户终端的IP地址确定的,同样地,各个目标服务器的第二位置信息也可以是根据自身的IP地址确定的。在本申请实施例中,第一位置信息和第二位置信息可以是用经纬度表示。
步骤S4044a,基于第一位置信息和各个第二位置信息,从各个目标服务器中确定第一服务器。
这里,步骤S4044a在实现时,可以是根据第一位置信息和各个第二位置信息确定出下载加速客户端和各个目标服务器之间的距离,进而再根据下载加速客户端和各个目标服务器之间的距离,从各个目标服务器中确定第一服务器,进一步地,可以是将与下载加速客户端距离最近的目标服务器确定为第一服务器,在一些实施例中,还可以是将与下载加速客户端之间的距离小于一定阈值,且负载信息最小的确定为第一服务器。
步骤S4045a,基于该第一服务器对应的下载地址,确定第三域名,并将向该下载加速客户端发送携带有该第三域名的跳转请求。
通过上述的步骤S4041a至步骤S4045a能够保证跳转请求中携带的第三域名对应的第一服务器为负载较低且离下载加速客户端较近的服务器,从而保证负载均衡,并且能够提升下载体验。
在一些实施例中,当是P2P下载时,上述的步骤S404可以通过以下步骤实现:
步骤S4041b,当自身没有存储有请求下载的数据时,获取该下载加速客户端所处的第一位置信息和存储有该数据的各个种子服务器的第三位置信息。
这里,类似地,第一位置信息是由安装有下载加速客户端的用户终端的IP 地址确定的,第三位置信息是由各个种子服务器的IP地址确定的。第一位置信息和第三位置信息可以用经纬度表示。
步骤S4042b,基于该第一位置信息和各个第三位置信息,从存储有该数据的各个种子服务器中确定第一服务器。
这里,步骤S4042b在实现时,可以是根据第一位置信息和各个第三位置信息确定下载加速客户端和各个种子服务器之间的距离,进而再根据下载加速客户端和各个种子服务器之间的距离,从各个种子服务器中确定第一服务器。
步骤S4043b,基于该第一服务器对应的下载地址,确定第三域名,并将向该下载加速客户端发送携带有该第三域名的跳转请求。
通过上述的步骤S4041b至步骤S4043b,能够使得跳转请求中携带的第三域名是根据种子的分布情况,或者按省份运营商和地理位置等信息确定出来的,从而保证提供更快的下载速度。
基于前述的实施例,本申请实施例再提供一种数据下载方法,应用于图1 A所示的网络架构,图5为本申请实施例提供的数据下载的再一种实现流程示意图,如图5所示,该数据下载方法包括:
步骤S501,用户终端中的下载加速客户端获取已托管的目标应用的下载请求,并获取该下载请求对应的第一域名。
这里,用户终端中安装有下载加速客户端(也即下载加速App),用户终端中还安装有各种其他应用的客户端。当其他应用托管到下载加速客户端时,当用户在使用这些应用的过程中需要下载数据时,下载加速客户端可以截获到下载请求,并获取该下载请求对应的第一域名。
步骤S502,用户终端确定该第一域名对应的IP地址。
这里,通过域名解析确定第一域名对应的IP地址,进一步地,可以将第一域名携带于域名解析请求中发送给本地域名服务器,本地域名服务器查找到第一域名对应的IP地址后,将该IP地址携带于响应报文中返回给用户终端,当本地域名服务器未查找到第一域名对应的IP地址时,则向根域名服务器发送解析请求,进而获取到第一域名对应的IP地址。
步骤S503,当该IP地址符合劫持条件时,用户终端基于预设的转发劫持规则对该第一域名进行更新,得到第二域名,并确定该第二域名对应的调度服务器。
这里,当该IP地址符合劫持条件时,进行下载域名劫持,也即基于预设的转发劫持规则对第一域名进行更新,从而得到第二域名,并确定第二域名对应的调度服务器。
举例来说,最初的下载请求为http://download.h.com/mmm.tar.gz,即第一域名为download.h.com,转发劫持规则为将download.h.com更新为download.q.co m,也即第二域名为download.q.com。
步骤S504,用户终端将该第二域名对应的下载请求发送至调度服务器,以获取请求下载的数据。
这里,将第一域名更新为第二域名之后,第二域名对应的下载请求为http: //download.q.com/mmm.tar.gz。
步骤S505,当调度服务器自身没有存储有请求下载的数据时,向该下载加速客户端发送跳转请求。
这里,该跳转请求中携带有至少一个第三域名,以使得该下载加载客户端基于第三域名获取请求下载的数据。第三域名对应的第一服务器可以是CDN 服务器,还可以是IDC服务器。
步骤S506,调度服务器向存储有请求下载的数据的第二服务器发送下载请求,以使得该第二服务器将请求下载的数据发送至第一服务器。
这里,第二服务器对应图1A中的数据下载服务器,第一服务器对应图1A 中的节点服务器。
步骤S507,第二服务器将请求下载的数据同步到第一服务器。
步骤S508,用户终端向第三域名对应的第一服务器发送下载请求。
这里,第一服务器在接收到下载请求后,基于下载请求中携带的数据标识,查找到请求下载的数据,并将数据发送给用户终端。
步骤S509,用户终端接收并存储该第一服务器发送的数据。
在本申请实施例提供的数据下载方法中,当用户终端中所安装的下载加速客户端截获到下载请求时,对下载请求中的第一域名进行域名解析得到对应的 IP地址,进而IP地址满足劫持条件时,进行下载域名劫持,从而将下载请求转发给更新后的第二域名对应的调度服务器,进而由调度服务器向用户终端发送一跳转请求,以使得用户终端通过跳转请求中携带的第三域名,向更优的服务器发送下载请求,从而使得用户下载到更优的下载资源,能够在应用下载流量突发时显著提升用户的下载速度,从而提高下载体验。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
相比于现有下载失败重试方案,在本申请实施例中提出一种通过劫持业务的下载请求来进行下载优化的方案。在实际实现过程中,可以通过下载加速A pp和对应的调度服务器实现,以下对本申请实施例提供的下载优化方案进行说明。
图6A为本申请实施例提供的下载请求劫持原理示意图,如图6A所示,下载加速App601启动之后,会建立一个VPN进程602,并将需要加速的应用(例如业务A)的全部流量托管给该VPN进程。当业务A发起一个下载请求后,该VPN进程会收集该业务A的下载相关域名,例如download.a.com,并开始进行域名解析收集。此时业务A可以继续自己逻辑。
进行域名解析收集在实现时,该VPN进行将获取到的业务A的下载域名上报至后台(例如,云控服务器),后台接收到VPN进程上报的域名后,根据已有配置查询该域名的解析结果,或者下发域名解析任务到所有的下载加速A PP用户进行执行,收集该域名的解析结果。当后台收集到该域名的解析结果后,将该解析结果返回给下载加载App,此时下载加速App可以基于接收到的解析结果配置VPN的转发劫持规则,进行下载相关劫持,即一旦业务A的请求目标IP地址在域名解析结果中,则转发该请求到指定的特殊服务器。业务A的其他非下载类请求不做任何处理。
通过上述过程即完成了对业务A的下载请求的劫持处理逻辑。在业务A看来,其下载请求还是能够得到处理,因此无需关注谁进行的处理。
图6B为本申请实施例进行域名解析结果收集的实现逻辑示意图,如图6B 所示,下载加速App客户端601在截获到业务A的下载域名之后,通过接口上报至后台(也即云控服务器612)。云控服务器612下发解析任务到所有的加速 App用户,以使得下载加速APP用户对域名进行解析,下载加速App解析完成之后,再上报到数据收集统计服务器613,该数据收集统计服务器613进行去重等处理后更新域名对应的IP到云控服务器612的配置文件中,然后由云控服务器612将该配置文件下发至下载加速App客户端601,以使得下载加速App 客户端601根据该配置文件进行转发劫持配置,并进行下载劫持,也即将截获到的业务A的下载域名进行更改。
举例来说,业务A客户端的原始下载请求是wget http://download.a.com/xxx.tar.gz,即下载download.a.com这个网站下的xxx.tar.gz这个文件。经过了加速APP的劫持处理之后,会将该下载请求改为wget http://download.hijack.com/ xxx.tar.gz发送出去,即保持了文件名不变,但域名变了。
图7为本申请实施例将下载域名劫持后的下载流程示意图,如图7所示,在加速APP将下载域名劫持后的下载流程包括:
步骤S701,下载加速App客户端将被劫持后的下载请求发送给调度服务器。
这里,在实际实现时,将被劫持后的下载请求发送给调度服务器也即将更改后的域名发送给调度服务器。承接上述举例,也即将wget http://download.hi jack.com/xxx.tar.gz发送给调度服务器。
步骤S702,调度服务器接收到该下载请求之后,回复一个302跳转给加速 APP客户端,以使得该加速APP客户端通过另一个新的域名去请求下载文件。
这里,在本申请实施例中,假设302跳转中携带的新的域名为http://download.best.com/xxx.tar.gz。
步骤S703,调度服务器向新包下载服务器发送下载请求,以获取请求下载的文件。
因为调度服务器不会存储所有的文件,当调度服务器中没有请求下载的文件时,调度服务器向存储有该文件的服务器发送下载请求,以获得请求下载的文件。该新包下载服务器接收到下载请求后,获取请求下载的文件,承接上述举例,该新包下载服务器下载最新的xxx.tar.gz文件。
步骤S704,新包下载服务器将请求下载的文件同步到所有的IDC节点和C DN节点。
这里,一旦同步完成,调度服务器无需再向新包下载服务器进行请求下载新文件了。
步骤S705,加速APP客户端接收到302跳转请求之后,按照跳转请求携带的域名下载文件。
承接上述举例,加速APP客户端按照http://download.best.com/xxx.tar.gz进行下载。此时IDC服务器和CDN上服务器都有了相应的xxx.tar.gz文件了。特别地,最终下载域名download.best.com已经按热点地区通过域名解析的方式调度到了不同的IDC集群和CDN集群,以保证负载均衡和体验优化。
在上述的实现过程中,加速APP客户端在接收到最后的http://download.best.com/xxx.tar.gz请求后,可以按常规方式进行下载,因为后台的原因,此类下载相比原始的下载有更好的带宽保证和文件正确性保证。
同时,为了最大化提升用户速度和下载体验,也可以通过加速器APP的P 2P下载进行。
在本申请实施例中,再提供一种针对移动应用的P2P下载实现方案,该实现方案包括以下步骤:
步骤S711,加速APP客户端截获业务A的下载请求。
步骤S712,加速APP客户端确定下载请求对应的目标IP地址满足转发劫持规则时,对下载请求对应的域名进行下载劫持,得到新的域名。
步骤S713,加速APP客户端向调度服务器发送下载请求。
这里,发送给调度服务器的下载请求中携带有更改后的新的域名。
步骤S714,调度服务器接收到该下载请求之后,回复一个302跳转给加速 APP客户端,以使得该加速APP客户端通过另一个新的域名去请求下载文件。
在该步骤中,调度服务器不会直接返回上文中提到的http://download.best.com/xxx.tar.gz。而是根据现有种子的分布情况,按省份运营商和地理位置等信息,下发多个下载地址。
例如可以是下发如下三个下载地址:
http://download.bestA.com/xxx.tar.gz 0-500;
http://download.bestB.com/xxx.tar.gz 501-1028;
http://download.best.com/xxx.tar.gz 1029-5088。
即告诉客户端,目前附近有3个下载源可以下载,每个源文件可以下载部分文件大小,客户端可以自主决定如何下载。
步骤S715,加速器APP客户端在收到P2P下载信息之后,可以启动多个线程并发向多个下载源进行下载,从而获得更快的下载速度。
在本申请实施例中,当加速APP下载完成,且征得用户同意之后,可以将自己下载的文件上传到后台,告知后台自己可以作为种子服务器给其他玩家进行下载,并上报自己的下载链接。
相比于现有下载失败重试方案,本申请实施例提出通过劫持业务的下载请求来进行下载优化的方案,一方面,劫持到用户的下载请求后可以通过302调整让用户下载到更优的下载资源,另一方面,还可以通过P2P下载来最大化提升下载速度,从而提升用户的下载体验,对于大包类的下载应用(例如游戏安装包都1-5G)在应用下载流量突发的时候能够显著提升用户下载体验。
下面继续说明本申请实施例提供的数据下载装置80的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器140的数据下载装置80中的软件模块可以包括:
第一获取模块,用于获取已托管的目标应用的下载请求,并获取该下载请求对应的第一域名;
第一确定模块,用于确定该第一域名对应的IP地址;
第二确定模块,用于当该IP地址符合劫持条件时,基于预设的转发劫持规则确定该IP地址对应的调度服务器,并对该第一域名进行更新,得到第二域名;
第一发送模块,用于将该第二域名对应的下载请求发送至调度服务器,以获取请求下载的数据。
在一些实施例中,该第一发送模块,还用于:
将该第二域名对应的下载请求发送至调度服务器;
接收调服服务器发送的跳转请求,该跳转请求中携带有至少一个第三域名;
向第三域名对应的第一服务器发送下载请求;
接收并存储该第一服务器发送的数据。
在一些实施例中,当该跳转请求中携带有至少两个第三域名时,该第一发送模块,还用于:
启动至少两个线程,并发向该至少两个第三域名对应的服务器发送下载请求。
在一些实施例中,该数据下载装置还包括:
生成模块,用于在获取到请求下载的数据后,响应于制作数据种子的操作指令,生成该数据的下载地址;
第三发送模块,用于将该下载地址发送至该调度服务器。
在一些实施例中,该数据下载装置还包括:
第四发送模块,用于将第一域名发送至云控服务器,以使得云控服务器将携带有第一域名的解析任务下发至其他下载加速客户端进行解析;
第二接收模块,用于接收云控服务器发送的第一域名的域名解析结果,其中,该域名解析结果中包括多个IP地址;
规则配置模块,用于基于该域名解析结果配置转发劫持规则,其中,该转发劫持规则中至少包括当下载请求对应的IP地址存在于该域名解析结果中时,将下载请求转发至预设的调度服务器。
本申请实施例再提供一种数据下载装置,应用于调度服务器,该数据下载装置至少包括:
第一接收模块,用于接收下载加速客户端发送的下载请求,其中,该下载请求中携带有第二域名,该第二域名是进行下载劫持后得到的;
第二发送模块,用于当自身没有存储有请求下载的数据时,向下载加速客户端发送跳转请求,其中,跳转请求中携带有至少一个第三域名,以使得下载加载客户端基于第三域名获取请求下载的数据。
在一些实施例中,当该第三域名对应的第一服务器为CDN服务器或者ID C服务器时,该数据下载装置还包括:
第五发送模块,用于向存储有请求下载的数据的第二服务器发送下载请求,以使得第二服务器将请求下载的数据发送至第一服务器。
在一些实施例中,该第二发送模块,还用于:
当自身没有存储有请求下载的数据时,获取存储有该数据的各个服务器的负载信息;
基于各个服务器的负载信息,从存储有该数据的各个服务器中确定满足负载条件的各个目标服务器;
获取该下载加速客户端所处的第一位置信息和各个目标服务器的第二位置信息;
基于该第一位置信息和各个第二位置信息,从各个目标服务器中确定第一服务器;
基于该第一服务器对应的下载地址,确定第三域名,并将向该下载加速客户端发送携带有该第三域名的跳转请求。
在一些实施例中,该第二发送模块,还用于:
当自身没有存储有请求下载的数据时,获取下载加速客户端所处的第一位置信息和存储有该数据的各个种子服务器的第三位置信息;
基于该第一位置信息和各个第三位置信息,从存储有该数据的各个种子服务器中确定第一服务器;
基于该第一服务器对应的下载地址,确定第三域名,并将向该下载加速客户端发送携带有第三域名的跳转请求。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3、图4和图5示出的方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EE PROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (12)
1.一种数据下载方法,其特征在于,应用于用户终端,所述方法包括:
获取已托管的目标应用的下载请求,并获取所述下载请求对应的第一域名;
确定所述第一域名对应的网际互连协议IP地址;
当所述IP地址符合劫持条件时,基于预设的转发劫持规则对所述第一域名进行更新,得到第二域名,并确定所述第二域名对应的调度服务器,其中,当所述IP地址存在于从下载加速服务器发送的域名解析结果中时,确定所述IP地址符合劫持条件;
将所述第二域名对应的下载请求发送至所述调度服务器,以从更优的下载资源获取请求下载的数据;
所述将所述第二域名对应的下载请求发送至所述调度服务器,以从更优的下载资源获取请求下载的数据,包括:
将所述第二域名对应的下载请求发送至所述调度服务器;
接收所述调度服务器发送的跳转请求,所述跳转请求中携带有至少一个第三域名;
向第三域名对应的第一服务器发送下载请求;
接收并存储所述第一服务器发送的数据。
2.根据权利要求1中所述的方法,其特征在于,当所述跳转请求中携带有至少两个第三域名时,所述向第三域名对应的服务器发送下载请求,包括:
启动至少两个线程,并发向所述至少两个第三域名对应的服务器发送下载请求。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在获取到请求下载的数据后,响应于制作数据种子的操作指令,生成所述数据的下载地址;
将所述下载地址发送至所述调度服务器。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
将所述第一域名发送至下载加速服务器,以使得下载加速服务器将携带有第一域名的解析任务下发至其他下载加速客户端进行解析;
接收下载加速服务器发送的所述第一域名的域名解析结果,其中所述域名解析结果中包括多个IP地址;
基于所述域名解析结果配置转发劫持规则,其中所述转发劫持规则中至少包括当下载请求对应的IP地址存在于所述域名解析结果中时,将下载请求转发至预设的调度服务器。
5.一种数据下载方法,其特征在于,应用于调度服务器,所述方法包括:
接收下载加速客户端发送的下载请求,其中,所述下载请求中携带有第二域名,所述第二域名是对IP地址符合劫持条件的第一域名进行下载劫持后得到的,其中,当所述IP地址存在于从下载加速服务器发送的域名解析结果中时,确定所述IP地址符合劫持条件;
当自身没有存储有请求下载的数据时,向所述下载加速客户端发送跳转请求,其中,所述跳转请求中携带有至少一个第三域名,以使得所述下载加速客户端基于第三域名从更优的下载资源获取请求下载的数据。
6.根据权利要求5中所述的方法,其特征在于,当所述第三域名对应的第一服务器为内容分发网络CDN服务器或者互联网数据中心IDC服务器时,所述方法还包括:
向存储有请求下载的数据的第二服务器发送下载请求,以使得所述第二服务器将请求下载的数据发送至所述第一服务器。
7.根据权利要求5中所述的方法,其特征在于,所述当自身没有存储有请求下载的数据时,向所述下载加速客户端发送跳转请求,包括:
当自身没有存储有请求下载的数据时,获取存储有所述数据的各个服务器的负载信息;
基于各个服务器的负载信息,从存储有所述数据的各个服务器中确定满足负载条件的各个目标服务器;
获取所述下载加速客户端所处的第一位置信息和各个目标服务器的第二位置信息;
基于所述第一位置信息和各个第二位置信息,从所述各个目标服务器中确定第一服务器;
基于所述第一服务器对应的下载地址,确定第三域名,并将向所述下载加速客户端发送携带有所述第三域名的跳转请求。
8.根据权利要求5中所述的方法,其特征在于,所述当自身没有存储有请求下载的数据时,向所述下载加速客户端发送跳转请求,包括:
当自身没有存储有请求下载的数据时,获取所述下载加速客户端所处的第一位置信息和存储有所述数据的各个种子服务器的第三位置信息;
基于所述第一位置信息和各个第三位置信息,从存储有所述数据的各个种子服务器中确定第一服务器;
基于所述第一服务器对应的下载地址,确定第三域名,并将向所述下载加速客户端发送携带有所述第三域名的跳转请求。
9.一种数据下载装置,其特征在于,应用于用户终端,所述装置包括:
第一获取模块,用于获取已托管的目标应用的下载请求,并获取所述下载请求对应的第一域名;
第一确定模块,用于确定所述第一域名对应的IP地址;
第二确定模块,用于当所述IP地址符合劫持条件时,基于预设的转发劫持规则对所述第一域名进行更新,得到第二域名,并确定所述第二域名对应的调度服务器,其中,当所述IP地址存在于从下载加速服务器发送的域名解析结果中时,确定所述IP地址符合劫持条件;
第一发送模块,用于将所述第二域名对应的下载请求发送至调度服务器,以从更优的下载资源获取请求下载的数据;
所述第一发送模块,还用于:将所述第二域名对应的下载请求发送至所述调度服务器;接收所述调度服务器发送的跳转请求,所述跳转请求中携带有至少一个第三域名;向第三域名对应的第一服务器发送下载请求;接收并存储所述第一服务器发送的数据。
10.一种数据下载装置,其特征在于,应用于调度服务器,所述装置包括:
第一接收模块,用于接收下载加速客户端发送的下载请求,其中,所述下载请求中携带有第二域名,所述第二域名是对IP地址符合劫持条件的第一域名进行下载劫持后得到的,其中,当所述IP地址存在于从下载加速服务器发送的域名解析结果中时,确定所述IP地址符合劫持条件;
第二发送模块,用于当自身没有存储有请求下载的数据时,向所述下载加速客户端发送跳转请求,其中,所述跳转请求中携带有至少一个第三域名,以使得所述下载加速客户端基于第三域名从更优的下载资源获取请求下载的数据。
11.一种数据下载设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至4或5至8任一项所述的方法。
12.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至4或5至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010099704.4A CN111327697B (zh) | 2020-02-18 | 2020-02-18 | 一种数据下载方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010099704.4A CN111327697B (zh) | 2020-02-18 | 2020-02-18 | 一种数据下载方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111327697A CN111327697A (zh) | 2020-06-23 |
CN111327697B true CN111327697B (zh) | 2022-01-11 |
Family
ID=71171110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010099704.4A Active CN111327697B (zh) | 2020-02-18 | 2020-02-18 | 一种数据下载方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111327697B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873048B (zh) * | 2020-06-12 | 2023-05-12 | 腾讯科技(上海)有限公司 | 应用下载平台中应用包的下载方法及系统 |
CN112449012B (zh) * | 2020-11-17 | 2024-04-05 | 中国平安财产保险股份有限公司 | 数据资源调度方法、系统、服务器及读存储介质 |
CN112532764A (zh) * | 2020-12-01 | 2021-03-19 | 上海哔哩哔哩科技有限公司 | 数据获取方法及装置 |
CN113938478B (zh) * | 2021-09-13 | 2024-04-09 | 杭州当贝网络科技有限公司 | 一种下载的方法和系统 |
CN114584808B (zh) * | 2022-03-01 | 2023-09-22 | 抖音视界有限公司 | 一种视频流获取方法、装置、系统、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404378A (zh) * | 2010-09-07 | 2012-04-04 | 成都索贝数码科技股份有限公司 | 一种流媒体分发传输网络系统 |
CN102647460A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 一种业务数据下载方法和移动终端 |
CN103595743A (zh) * | 2012-08-16 | 2014-02-19 | 腾讯科技(深圳)有限公司 | 一种下载应用软件的方法、装置及系统 |
CN108353095A (zh) * | 2017-09-30 | 2018-07-31 | 深圳前海达闼云端智能科技有限公司 | 域名解析方法、客户端、边缘节点及域名解析系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10263958B2 (en) * | 2010-03-18 | 2019-04-16 | Nominum, Inc. | Internet mediation |
CN102843445B (zh) * | 2012-09-29 | 2016-01-13 | 北京奇虎科技有限公司 | 一种浏览器及其进行域名解析的方法 |
US9953037B1 (en) * | 2013-03-08 | 2018-04-24 | Amazon Technologies, Inc. | Accelerating file downloads |
CN106453671A (zh) * | 2015-08-07 | 2017-02-22 | 中国电信股份有限公司 | 用于cdn 调度的方法、客户端、服务器和系统 |
-
2020
- 2020-02-18 CN CN202010099704.4A patent/CN111327697B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404378A (zh) * | 2010-09-07 | 2012-04-04 | 成都索贝数码科技股份有限公司 | 一种流媒体分发传输网络系统 |
CN102647460A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 一种业务数据下载方法和移动终端 |
CN103595743A (zh) * | 2012-08-16 | 2014-02-19 | 腾讯科技(深圳)有限公司 | 一种下载应用软件的方法、装置及系统 |
CN108353095A (zh) * | 2017-09-30 | 2018-07-31 | 深圳前海达闼云端智能科技有限公司 | 域名解析方法、客户端、边缘节点及域名解析系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111327697A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111327697B (zh) | 一种数据下载方法、装置、设备及存储介质 | |
EP3813338A1 (en) | Method and system for scheduling edge cdn node | |
JP7252356B2 (ja) | モバイルエッジコンピューティングノードの選択方法、装置及びシステム並びにコンピュータプログラム | |
US20220094761A1 (en) | Server Invocation Method and Proxy Server | |
CN112087312A (zh) | 一种提供边缘服务的方法、装置和设备 | |
CA2603236C (en) | System and method of device-to-server registration | |
US20170099345A1 (en) | Content delivery network load balancing | |
CN105812435B (zh) | 应用升级数据包处理方法、装置、电子设备及系统 | |
WO2012151993A1 (zh) | 业务推送方法和装置 | |
WO2021051747A1 (zh) | 数据更新方法、系统、装置、电子设备及计算机存储介质 | |
CN102868935A (zh) | 在内容分发网络中响应多源的调度方法 | |
CN102420863B (zh) | 一种快速分发文件系统和方法及装置 | |
CN109451804A (zh) | 在信息中心网络中实现同时进行的多播传递的http内容完整性 | |
US20110113131A1 (en) | Method of Load Balance Based on BS Architecture | |
CN101925158A (zh) | 号码详情的获取系统及方法 | |
CN109716731A (zh) | 用于提供可靠和高效数据传送的系统和方法 | |
CN112423145B (zh) | 数据处理方法、装置、系统、服务器及介质 | |
CN112398802B (zh) | 数据下载方法及相关设备 | |
CN106815053A (zh) | 一种数据更新方法、装置、数据调用端及数据更新系统 | |
CN115883657A (zh) | 一种云盘服务加速调度的方法及系统 | |
JP2019041241A (ja) | 振り分けシステム | |
CN110995890B (zh) | 域名请求的调度方法及装置 | |
CN107147701B (zh) | 一种弱联网应用托管服务系统及其托管方法 | |
CN115714813B (zh) | 一种边缘设备调度的方法、装置、电子设备及存储介质 | |
CN115412530B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024055 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |