CN106550023A - 一种用于为用户提供指定文件分块的方法与装置 - Google Patents
一种用于为用户提供指定文件分块的方法与装置 Download PDFInfo
- Publication number
- CN106550023A CN106550023A CN201610930736.8A CN201610930736A CN106550023A CN 106550023 A CN106550023 A CN 106550023A CN 201610930736 A CN201610930736 A CN 201610930736A CN 106550023 A CN106550023 A CN 106550023A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- specified
- network equipment
- piecemeal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明的目的是提供为用户提供指定文件分块的方法与装置。具体地,用户向第一网络设备发送对文件的第一下载请求,相应地,第一网络设备接收用户对文件的第一下载请求,其中,第一下载请求中包含用户所请求的该文件的指定数据范围;接着,当第一网络设备中未存储该文件或该文件的部分数据时,第一网络设备通过与第二网络设备的交互,开始下载该文件并确定指定数据范围所对应的指定文件分块;随后,第一网络设备根据当前下载该文件的当前下载完成度,确定指定文件分块的当前下载状态;接着,第一网络设备根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及的一种为用户提供指定文件分块技术。
背景技术
当前,当用户向一个CDN网络(Content Delivery Network,即内容分发网络)中的CDN服务器请求下载一个该CDN服务器中并未存储的文件时,该CDN服务器会向具有该文件的数据源服务器请求完整地下载该文件,并同时将用户对该文件的下载请求代理(proxy)到数据源服务器。在CDN服务器完整下载该文件之前,CDN服务器会将该数据源服务器所返回的结果直接返回给用户。由于这种处理方式会要求数据源服务器既向CDN服务器提供该文件,又同时向用户提供该文件,因此,这种处理方式大大地占用了数据源服务器的带宽和流量。
并且,有时用户仅请求文件中的部分数据。在这种情况下,上述处理方式更显得不够灵活,既不能及时响应用户的下载需求,又使得数据源服务器将用户并不需要的数据提供给CDN服务器,浪费了数据源服务器的带宽和流量。
发明内容
本发明的目的是提供为用户提供指定文件分块的方法与装置。
根据本发明的一个方面,提供了一种在第一网络设备中为用户提供指定文件分块的方法,其中,该方法包括:
-接收用户对文件的第一下载请求,其中,所述第一下载请求中包含用户所请求所述文件的指定数据范围;
-当第一网络设备中未存储所述文件或所述文件的部分数据时,通过与第二网络设备的交互,开始下载所述文件并确定所述指定数据范围所对应的指定文件分块,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块;
-根据当前下载所述文件的当前下载完成度,确定所述指定文件分块的当前下载状态;
-根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户。
根据本发明的又一个方面,还提供了一种在第二网络设备中为用户提供指定文件分块的方法,其中,该方法包括:
-通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件并确定所述指定数据范围所对应的指定文件分块,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块。
根据本发明的另一个方面,还提供了一种在第一网络设备中为用户提供指定文件分块的装置,其中,该装置包括:
-用于接收用户对文件的第一下载请求的装置,其中,所述第一下载请求中包含用户所请求所述文件的指定数据范围;
-用于当第一网络设备中未存储所述文件或所述文件的部分数据时,通过与第二网络设备的交互,开始下载所述文件并确定所述指定数据范围所对应的指定文件分块的装置,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块;
-用于根据当前下载所述文件的当前下载完成度,确定所述指定文件分块的当前下载状态的装置;
-用于根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户的装置。
根据本发明的再一个方面,还提供了一种在第二网络设备中为用户提供指定文件分块的装置,其中,该装置包括:
-用于通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件并确定所述指定数据范围所对应的指定文件分块的装置,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块。
与现有技术相比,本发明可由第一网络设备和第二网络设备相配合来实现为用户提供指定文件分块。具体地,用户向第一网络设备发送对文件的第一下载请求,相应地,第一网络设备接收用户对文件的第一下载请求,其中,第一下载请求中包含用户所请求的该文件的指定数据范围;接着,当第一网络设备中未存储该文件时,第一网络设备通过与第二网络设备的交互,开始下载该文件并确定指定数据范围所对应的指定文件分块,相应地,第二网络设备辅助第一网络设备开始下载该文件并确定指定数据范围所对应的指定文件分块,其中,该文件的一个或多个数据范围分别对应于相应的文件分块;随后,第一网络设备根据当前下载该文件的当前下载完成度,确定指定文件分块的当前下载状态;接着,第一网络设备根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户。
与现有技术中需要数据源服务器同时提供文件给CDN服务器以及用户的处理方式相比,本发明方案中第一网络设备可以确定用户所请求的文件的指定数据范围所对应的指定文件分块,并在随后的步骤中根据该指定文件分块的当前下载状态,将从第二网络设备所获得的文件的该指定文件分块中的部分或全部数据提供给用户。因此,一方面,本发明方案中仅需第二网络设备将文件提供给第一网络设备,而由第一网络设备来响应用户的下载请求,从而本发明方案可以节省第二网络设备(例如第一网络设备的上一级节点设备、又如数据源服务器等)的带宽和流量。另一方面,第一网络设备可以更快速、精准地向用户提供其所请求的文件中对应于用户所指定的指定数据范围的部分数据。经实验数据证明,第一网络设备向用户提供其所请求的部分数据的时延完全可以被用户所接受,提升了用户的使用体验。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个实施例的一种第一网络设备与第二网络设备相配合来为用户提供指定文件分块的方法流程图;
图2示出根据本发明一个实施例的分别在第一网络设备和第二网络设备中相配合来为用户提供指定文件分块的装置示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的程序指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备例如包括用户设备与网络设备。其中,所述用户设备包括但不限于智能手机、PDA、PC、笔记本电脑等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
本文后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
本发明可由第一网络设备和第二网络设备相配合来实现。具体地,用户向第一网络设备发送对文件的第一下载请求,相应地,第一网络设备接收用户对文件的第一下载请求,其中,第一下载请求中包含用户所请求的该文件的指定数据范围;接着,当第一网络设备中未存储该文件时,第一网络设备通过与第二网络设备的交互,开始下载该文件并确定指定数据范围所对应的指定文件分块,相应地,第二网络设备辅助第一网络设备开始下载该文件并确定指定数据范围所对应的指定文件分块,其中,该文件的一个或多个数据范围分别对应于相应的文件分块;随后,第一网络设备根据当前下载该文件的当前下载完成度,确定指定文件分块的当前下载状态;接着,第一网络设备根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户。
其中,CDN网络可以包含多级。其中最高级为数据源服务器。第一网络设备例如CDN网络中的某一级CDN服务器,其也可以被称为CDN网络中的一个节点。第二网络设备为第一网络设备的上一级缓存节点。第二网络设备可以为普通的CDN服务器,也可以为最高级的节点,也即,数据源服务器,或者也可以被称为源站。
当低一级CDN服务器中未存储用户所请求的文件时,该低一级CDN服务器通过与上一级CDN服务器(上一级CDN服务器中可能存储有用户所请求的文件)的交互,开始下载用户文件并确定指定数据范围所对应的指定文件分块;随后,低一级CDN服务器根据当前下载该文件的当前下载完成度,确定指定文件分块的当前下载状态;接着,低一级CDN服务器根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户。
与现有技术中需要数据源服务器同时提供文件给CDN服务器以及用户的处理方式相比,本发明方案仅需数据源服务器将文件提供给CDN服务器,而由CDN服务器来响应用户的下载请求,因而,本发明方案节省了数据源服务器的带宽和流量。并且,对于用户仅请求下载文件中的部分数据的情况,CDN服务器可以确定用户所请求的文件的指定数据范围所对应的指定文件分块,并根据该指定文件分块的当前下载状态,将该指定文件分块中的部分或全部数据提供给用户,从而可以更快速、精准地向用户提供其所请求的部分数据。经实验数据证明,CDN服务器向用户提供其所请求的部分数据的时延完全可以被用户所接受,提升了用户的使用体验。
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个实施例的一种第一网络设备与第二网络设备相配合来为用户提供指定文件分块的方法流程图。
在步骤S1中,用户向第一网络设备发送对文件的第一下载请求,相应地,第一网络设备接收用户对文件的第一下载请求,其中,第一下载请求中包含用户所请求的该文件的指定数据范围;步骤S2中,当第一网络设备中未存储该文件时,第一网络设备通过与第二网络设备的交互,开始下载该文件并确定指定数据范围所对应的指定文件分块,相应地,第二网络设备辅助第一网络设备开始下载该文件并确定指定数据范围所对应的指定文件分块,其中,该文件的一个或多个数据范围分别对应于相应的文件分块;步骤S3中,第一网络设备根据当前下载该文件的当前下载完成度,确定指定文件分块的当前下载状态;步骤S4中,第一网络设备根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户。
具体地,在步骤S1中,用户向第一网络设备发送对文件的第一下载请求,相应地,第一网络设备接收用户对文件的第一下载请求,其中,第一下载请求中包含用户所请求的该文件的指定数据范围。
在此,用户所请求的文件可以为任意格式的文件,例如视频、音频、文档等。
用户所请求的文件的指定数据范围意指用户所指定请求的该文件中部分数据的范围。例如,对于一10MB的文件,用户仅请求该文件中从3MB到4MB的部分数据,则用户所请求的该文件的指定数据范围为[3MB,4MB]。用户所发送的第一下载请求可以为http请求,该http请求中header部分中Range字段例如可以为Range:a-b。
步骤S2中,当第一网络设备中未存储该文件或该文件的部分数据时,第一网络设备通过与第二网络设备的交互,开始下载该文件并确定指定数据范围所对应的指定文件分块,相应地,第二网络设备辅助第一网络设备开始下载该文件并确定指定数据范围所对应的指定文件分块,其中,该文件的一个或多个数据范围分别对应于相应的文件分块。
其中,第一网络设备在存储文件时,可以将该文件的头部数据以及该文件的文件内容均进行存储。其中,该文件的头部数据中例如可以包含此文件中哪些文件分块已经被下载、哪些文件分块没有被下载、文件大小、CRC校验码等信息。
第一网络设备可以根据用户所请求下载的文件,查询该文件所对应的头部数据,以确定用户所请求下载的文件是否被完整存储、或者该文件中用户所请求下载的文件分块是否有被存储。
在此,第一网络设备中有可能并未存储该文件的整个部分,还有可能是未存储用户所请求下载的指定数据范围所对应的数据(但是第一网络设备中有存储该文件中其他数据范围所对应的数据),即存储在第一网络设备中的文件不是完整的,只有某些文件分块,而用户所请求下载的指定数据范围是第一网络设备中当前未存储的文件分块。用户所请求的文件可以被确定为多个数据范围。例如,对于一个4MB的文件来说,其例如可以被分为4个数据范围,并且,其中,每一个数据范围分别对应于相应的文件分块。也即,[0MB,1MB]对应于第1个文件分块,[1MB,2MB]对应于第2个文件分块,[2MB,3MB]对应于第3个文件分块,[3MB,4MB]对应于第4个文件分块。本领域技术人员应能理解,这种按照1MB的大小来划分数据范围的方式仅为举例。其他现有的或今后可能出现的划分文件的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
与现有技术中需要数据源服务器同时提供文件给CDN服务器以及用户的处理方式相比,本发明方案中第一网络设备可以确定用户所请求的文件的指定数据范围所对应的指定文件分块,并在随后的步骤中根据该指定文件分块的当前下载状态,将从第二网络设备所获得的文件的该指定文件分块中的部分或全部数据提供给用户。因此,一方面,本发明方案中仅需第二网络设备将文件提供给第一网络设备,而由第一网络设备来响应用户的下载请求,从而本发明方案可以节省第二网络设备(例如数据源服务器)的带宽和流量。另一方面,第一网络设备可以更快速、精准地向用户提供其所请求的文件中对应于用户所指定的指定数据范围的部分数据。经实验数据证明,第一网络设备向用户提供其所请求的部分数据的时延完全可以被用户所接受,提升了用户的使用体验。
优选地,第一网络设备向第二网络设备发送对文件的第二下载请求,以开始下载该第二网络设备响应该第二下载请求所返回的文件。相应地,第二网络设备接收第一网络设备所发送的对文件的第二下载请求,以将该文件返回给第一网络设备。
在此,第二下载请求中包含用户所请求的文件的标识信息,如文件名称、文件编号等。第二网络设备通过查询该文件的标识信息,来获取该文件,并将该文件提供给第一网络设备。
优选地,第一网络设备确定指定数据范围所对应的指定文件分块的方式包括但不限于以下2种:
1)第一网络设备向第二网络设备发送对文件的大小的获取请求,相应地,第二网络设备接收第一网络设备所发送的对该文件的大小的获取请求。随后,第二网络设备将该文件的大小返回给第一网络设备,相应地,第一网络设备获取第二网络设备所返回的该文件的大小。接着,第一网络设备根据该文件的大小,对该文件进行切分,以确定该文件的一个或多个数据范围与相应的文件分块的对应关系。随后,第一网络设备根据第一下载请求中所包含的用户所请求该文件的指定数据范围,查询所确定的该文件的一个或多个数据范围与相应的文件分块的对应关系,以确定指定数据范围所对应的指定文件分块。
例如,示例A,在接收第一网络设备所发送的对一文件的大小的获取请求之后,第二网络设备确定该文件的大小为10MB,并将该文件的大小返回给第一网络设备。接着,第一网络设备根据该文件的大小(10MB),将该文件切分为5个数据范围,分别为[0MB,2MB]对应于第1个文件分块,[2MB,4MB]对应于第2个文件分块,[4MB,6MB]对应于第3个文件分块,[6MB,8MB]对应于第4个文件分块,[8MB,10MB]对应于第5个文件分块。第一下载请求中所包含的用户所请求该文件的指定数据范围例如为[5MB,7MB],则第一网络设备根据该指定数据范围,查询所确定的该文件的一个或多个数据范围与相应的文件分块的对应关系,以确定指定数据范围对应于第3个和第4个文件分块,也即,指定文件分块为第3个和第4个文件分块。
2)第一网络设备将第一下载请求中所包含的用户所请求文件的指定数据范围提供给第二网络设备,以由第二网络设备根据指定数据范围,查询文件的一个或多个数据范围与相应的文件分块的对应关系,确定指定数据范围所对应的指定文件分块。相应地,第二网络设备接收第一网络设备所发送的第一下载请求中所包含的用户所请求该文件的指定数据范围。接着,第二网络设备根据指定数据范围,查询该文件的一个或多个数据范围与相应的文件分块的对应关系,确定指定数据范围所对应的指定文件分块。随后,第二网络设备将该指定数据范围所对应的指定文件分块返回给第一网络设备。相应地,第一网络设备接收第二网络设备所返回的该指定数据范围所对应的指定文件分块。
例如,示例B,第一下载请求中所包含的用户所请求文件的指定数据范围为[4MB,6MB],第一网络设备将该指定数据范围提供给第二网络设备。该文件的一个或多个数据范围与相应的文件分块的对应关系例如可以为[0MB,2MB]对应于第1个文件分块,[2MB,4MB]对应于第2个文件分块,[4MB,6MB]对应于第3个文件分块,[6MB,8MB]对应于第4个文件分块,[8MB,10MB]对应于第5个文件分块。在接收该指定数据范围之后,第二网络设备根据该指定数据范围,查询前述该文件的一个或多个数据范围与相应的文件分块的对应关系,确定指定数据范围([4MB,6MB])对应于第3个文件分块,也即,指定文件分块为第3个文件分块。随后,第二网络设备将该指定数据范围对应于第3个文件分块的信息返回给第一网络设备。相应地,第一网络设备接收第二网络设备所返回的该指定数据范围对应于第3个文件分块的信息。
步骤S3中,第一网络设备根据当前下载该文件的当前下载完成度,确定指定文件分块的当前下载状态。
在此,由于在步骤S2中,第一网络设备已经开始下载用户所请求的文件,因此,该文件已经处于下载状态。该文件的当前下载完成度例如可以为0%、1%、10%、20%等。或者,该文件的当前下载完成度也可以为未完成、部分完成、已完成等。指定文件分块的当前下载状态例如可以为已经获得、正在获得、尚未获得等。
例如,既前示例A,第一网络设备已确定该文件包含5个文件分块,而且该文件的当前下载完成度为60%,指定文件分块为第3个和第4个文件分块。则第一网络设备可以确定第3个文件分块的当前下载状态为已经获得,第4个文件分块的当前下载完成度为尚未获得。
又如,既前示例B,第一网络设备已确定该文件包含5个文件分块,而且该文件的当前下载完成度为50%,指定文件分块为第3个文件分块。则第一网络设备可以确定第3个文件分块的当前下载状态为正在获得。
步骤S4中,第一网络设备根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户。
在此,第一网络设备可以根据指定文件分块不同的当前下载状态(已经获得、正在获得和尚未获得),按照不同的方式将制定文件分块种的部分或全部数据提供给用户。
优选地,第一网络设备可以将指定文件分块中对应于指定数据范围的部分数据提供给用户。
例如,用户所请求文件的指定数据范围为[1MB,2MB],而指定文件分块所对应的数据范围为[0MB,2MB],则第一网络设备可以将该指定文件分块中从1MB开始到结束这部分数据提供给用户,而无需将该指定文件分块中用户未请求的[0MB,1MB]这部分数据提供给用户。
优选地,第一网络设备根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户的方式包括但不限于以下3种情况:
1)当已经获得指定文件分块时,第一网络设备可以将该指定文件分块中的部分或全部数据提供给用户。
在此,第一网络设备可以将指定文件分块的全部数据均提供给用户。或者,第一网络设备也可以将指定文件分块的部分数据,例如对应于指定数据范围的部分数据,提供给用户。
2)当正在获得所述指定文件分块时,第一网络设备等待并当已经获得该指定文件分块中部分或全部数据时,将该指定文件分块中的部分或全部数据提供给用户。
例如,第一网络设备当前正在获得并且未完全地获得指定文件分块,则第一网络设备可以等待并当已经完全获得该指定文件分块中的全部数据时,再将该指定文件分块中的全部数据提供给用户,或者,第一网络设备也可以等待并当已经获得该指定文件分块中的部分数据时,再将该指定文件分块中的相应部分数据提供给用户,如对应于指定数据范围的部分数据。
又如,第一网络设备当前正在获得并且未完全地获得指定文件分块,则第一网络设备可以等待并当已经完全获得该指定文件分块中的部分数据时,如该指定文件分块中对应于指定数据范围的部分数据时,将相应的部分数据提供给用户。
3)如果尚未获得指定文件分块,第一网络设备则向第二网络设备发送对指定文件分块的第三下载请求,当正在获得第二网络设备响应第三下载请求所返回的指定文件分块时,等待并当已经获得指定文件分块中部分或全部数据时,将指定文件分块中的部分或全部数据提供给用户。
在此,第三下载请求中可以包含文件的标识信息以及指定文件分块的标识信息,如第2个文件分块、和/或第3个文件分块等。第二网络设备接收该第三下载请求之后,可以根据文件的标识信息和指定文件分块的标识信息,获得相应的指定文件分块。随后,第二网络设备可以将该指定文件分块返回给第一网络设备。相应地,第一网络设备等待并当已经获得指定文件分块中部分或全部数据时,将指定文件分块中的部分或全部数据提供给用户。在此,第一网络设备等待并当已经获得指定文件分块中部分或全部数据时,将指定文件分块中的部分或全部数据提供给用户与前述第2)种方式中将指定文件分块中的部分或全部数据提供给用户的方式相同或基本相同,因此不再赘述,并以引用的方式包含于此。
在此,第一网络设备所确定的多个指定文件分块的当前下载状态也可以分别为不同的。例如,用户所请求下载文件的指定数据范围是0-10MB,假设每个文件分块的大小是256KB(每个文件分块的大小可以是动态调整的),则用户请求的是第0个至第39个的文件分块。假设第一网络设备每次发送给用户的最大数据是1MB(这也可以是动态调整的,即每次给用户最多发送4个文件分块),第一网络设备订阅编号为第0个的文件分块,然后第一网络设备判断从第0个文件分块及后面存在的连续文件分块(查询本地索引),存在第0个文件分块就发送第0个文件分块,存在第0个和第1个文件分块就发送第0个和第1个文件分块,最多发送第0个、第1个、第2个、第3个文件分块给用户。假设第0个、第1个、第3个文件分块存在,而第2个文件分块不存在,则第一网络设备只发送第0个和第1个文件分块,等待用户的用户设备接收完成。当用户的用户设备接收完成后,第一网络设备订阅编号为2的第2个文件分块,然后判断第2个文件分块及后面存在的连续文件块。因为第2个文件分块不存在,则第一网络设备需要去第二网络设备下载第2个文件分块(第一网络设备可以将第2个文件分块从编号2转成数据范围的形式rang:512KB-768KB,发送给第二网络设备)。第一网络设备下载完成第2个文件分块后,第一网络设备判断从第2个文件分块及后面存在的连续文件块,继续前面的过程,循环订阅和发送文件分块。
这种向用户提供文件分块的方式可以进一步减少回源带宽。也即,第一网络设备不需要将整个文件全部下载下来,只需要下载相应的文件分块。同时,第一网络设备能更快地将文件发送给用户,每当从第二网络设备下载一部分的文件分块就可以发送给用户。如上面的示例中,用户请求下载数据范围0-10M的文件,每当第一网络设备从第二网络设备下载一个文件分块(256KB,可根据需要动态调整),第一网络设备就可以向用户提供该文件分块的数据(256KB),而不需等待0-10M全部下载完成才向用户提供数据。
与现有技术中需要数据源服务器同时提供文件给CDN服务器以及用户的处理方式相比,本发明方案中第一网络设备可以确定用户所请求的文件的指定数据范围所对应的指定文件分块,并根据该指定文件分块的当前下载状态,将从第二网络设备所获得的文件的该指定文件分块中的部分或全部数据提供给用户。因此,一方面,本发明方案中仅需第二网络设备将文件提供给第一网络设备,而由第一网络设备来响应用户的下载请求,从而本发明方案可以节省第二网络设备(例如第一网络设备的上一级节点设备、又如数据源服务器等)的带宽和流量。另一方面,第一网络设备可以更快速、精准地向用户提供其所请求的文件中对应于用户所指定的指定数据范围的部分数据。经实验数据证明,第一网络设备向用户提供其所请求的部分数据的时延完全可以被用户所接受,提升了用户的使用体验。
图2示出根据本发明一个实施例的分别在第一网络设备和第二网络设备中相配合来为用户提供指定文件分块的装置示意图。其中,第一网络设备包括在第一网络设备中为用户提供指定文件分块的装置,也即第一提供装置20。进一步地,第一提供装置20包括装置21-24。第二网络设备包括在第二网络设备中辅助第一网络设备为用户提供指定文件分块的装置,也即第二提供装置30。进一步地,第二提供装置30包括装置31。
如图2所示,用户向第一网络设备发送对文件的第一下载请求,相应地,第一网络设备的装置21接收用户对文件的第一下载请求(为便于区分,以下将装置21称为请求接收装置21),其中,第一下载请求中包含用户所请求的该文件的指定数据范围;接着,当第一网络设备中未存储该文件或该文件的部分数据时,第一网络设备的装置22通过与第二网络设备的交互,开始下载该文件并确定指定数据范围所对应的指定文件分块(为便于区分,以下将装置22称为第一交互装置22),相应地,第二网络设备的装置31辅助第一网络设备开始下载该文件并确定指定数据范围所对应的指定文件分块(为便于区分,以下将装置31称为第二交互装置31),其中,该文件的一个或多个数据范围分别对应于相应的文件分块;随后,第一网络设备的装置23根据当前下载该文件的当前下载完成度,确定指定文件分块的当前下载状态(为便于区分,以下将装置23称为状态确定装置23);接着,第一网络设备的装置24根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户(为便于区分,以下将装置24称为数据提供装置24)。
具体地,用户向第一网络设备发送对文件的第一下载请求,相应地,第一网络设备的请求接收装置21接收用户对文件的第一下载请求,其中,第一下载请求中包含用户所请求的该文件的指定数据范围。
在此,用户所请求的文件可以为任意格式的文件,例如视频、音频、文档等。
用户所请求的文件的指定数据范围意指用户所指定请求的该文件中部分数据的范围。例如,对于一10MB的文件,用户仅请求该文件中从3MB到4MB的部分数据,则用户所请求的该文件的指定数据范围为[3MB,4MB]。用户所发送的第一下载请求可以为http请求,该http请求中header部分中Range字段例如可以为Range:a-b。
随后,当第一网络设备中未存储该文件或该文件的部分数据时,第一网络设备的第一交互装置22通过与第二网络设备的交互,开始下载该文件并确定指定数据范围所对应的指定文件分块,相应地,第二网络设备的第二交互装置31辅助第一网络设备开始下载该文件并确定指定数据范围所对应的指定文件分块,其中,该文件的一个或多个数据范围分别对应于相应的文件分块。
其中,第一网络设备在存储文件时,可以将该文件的头部数据以及该文件的文件内容均进行存储。其中,该文件的头部数据中例如可以包含此文件中哪些文件分块已经被下载、哪些文件分块没有被下载、文件大小、CRC校验码等信息。
第一网络设备的第一交互装置22可以根据用户所请求下载的文件,查询该文件所对应的头部数据,以确定用户所请求下载的文件是否被完整存储、或者该文件中用户所请求下载的文件分块是否有被存储。
在此,第一网络设备中有可能并未存储该文件的整个部分,还有可能是未存储用户所请求下载的指定数据范围所对应的数据(但是第一网络设备中有存储该文件中其他数据范围所对应的数据),即存储在第一网络设备中的文件不是完整的,只有某些文件分块,而用户所请求下载的指定数据范围是第一网络设备中当前未存储的文件分块。
用户所请求的文件可以被确定为多个数据范围。例如,对于一个4MB的文件来说,其例如可以被分为4个数据范围,并且,其中,每一个数据范围分别对应于相应的文件分块。也即,[0MB,1MB]对应于第1个文件分块,[1MB,2MB]对应于第2个文件分块,[2MB,3MB]对应于第3个文件分块,[3MB,4MB]对应于第4个文件分块。本领域技术人员应能理解,这种按照1MB的大小来划分数据范围的方式仅为举例。其他现有的或今后可能出现的划分文件的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
与现有技术中需要数据源服务器同时提供文件给CDN服务器以及用户的处理方式相比,本发明方案中第一网络设备可以确定用户所请求的文件的指定数据范围所对应的指定文件分块,并在随后的操作中根据该指定文件分块的当前下载状态,将从第二网络设备所获得的文件的该指定文件分块中的部分或全部数据提供给用户。因此,一方面,本发明方案中仅需第二网络设备将文件提供给第一网络设备,而由第一网络设备来响应用户的下载请求,从而本发明方案可以节省第二网络设备(例如数据源服务器)的带宽和流量。另一方面,第一网络设备可以更快速、精准地向用户提供其所请求的文件中对应于用户所指定的指定数据范围的部分数据。经实验数据证明,第一网络设备向用户提供其所请求的部分数据的时延完全可以被用户所接受,提升了用户的使用体验。
优选地,第一网络设备的第一交互装置22向第二网络设备发送对文件的第二下载请求,以开始下载该第二网络设备响应该第二下载请求所返回的文件。相应地,第二网络设备的第二交互装置31接收第一网络设备所发送的对文件的第二下载请求,以将该文件返回给第一网络设备。
在此,第二下载请求中包含用户所请求的文件的标识信息,如文件名称、文件编号等。第二网络设备的的第二交互装置31通过查询该文件的标识信息,来获取该文件,并将该文件提供给第一网络设备。
在此,第一交互装置22所执行的开始下载文件的操作也可以由第一交互装置22中所包含的一特定装置执行。相似地,第二交互装置31所执行的辅助第一网络设备开始下载文件的操作也可以由第二交互装置31中所包含的一特定装置执行。
优选地,第一网络设备的第一交互装置22确定指定数据范围所对应的指定文件分块的方式包括但不限于以下2种:
1)第一网络设备的第一交互装置22向第二网络设备发送对文件的大小的获取请求,相应地,第二网络设备的第二交互装置31接收第一网络设备所发送的对该文件的大小的获取请求。随后,第二网络设备的第二交互装置31将该文件的大小返回给第一网络设备,相应地,第一网络设备的第一交互装置22获取第二网络设备所返回的该文件的大小。接着,第一网络设备的第一交互装置22根据该文件的大小,对该文件进行切分,以确定该文件的一个或多个数据范围与相应的文件分块的对应关系。随后,第一网络设备的第一交互装置22根据第一下载请求中所包含的用户所请求该文件的指定数据范围,查询所确定的该文件的一个或多个数据范围与相应的文件分块的对应关系,以确定指定数据范围所对应的指定文件分块。
例如,示例C,在接收第一网络设备的第一交互装置22所发送的对一文件的大小的获取请求之后,第二网络设备的第二交互装置31确定该文件的大小为10MB,并将该文件的大小返回给第一网络设备。接着,第一网络设备的第一交互装置22根据该文件的大小(10MB),将该文件切分为5个数据范围,分别为[0MB,2MB]对应于第1个文件分块,[2MB,4MB]对应于第2个文件分块,[4MB,6MB]对应于第3个文件分块,[6MB,8MB]对应于第4个文件分块,[8MB,10MB]对应于第5个文件分块。第一下载请求中所包含的用户所请求该文件的指定数据范围例如为[5MB,7MB],则第一网络设备的第一交互装置22根据该指定数据范围,查询所确定的该文件的一个或多个数据范围与相应的文件分块的对应关系,以确定指定数据范围对应于第3个和第4个文件分块,也即,指定文件分块为第3个和第4个文件分块。
2)第一网络设备的第一交互装置22将第一下载请求中所包含的用户所请求文件的指定数据范围提供给第二网络设备,以由第二网络设备的第二交互装置31根据指定数据范围,查询文件的一个或多个数据范围与相应的文件分块的对应关系,确定指定数据范围所对应的指定文件分块。相应地,第二网络设备的第二交互装置31接收第一网络设备的第一交互装置22所发送的第一下载请求中所包含的用户所请求该文件的指定数据范围。接着,第二网络设备的第二交互装置31根据指定数据范围,查询该文件的一个或多个数据范围与相应的文件分块的对应关系,确定指定数据范围所对应的指定文件分块。随后,第二网络设备的第二交互装置31将该指定数据范围所对应的指定文件分块返回给第一网络设备。相应地,第一网络设备的第一交互装置22接收第二网络设备所返回的该指定数据范围所对应的指定文件分块。
例如,示例D,第一下载请求中所包含的用户所请求文件的指定数据范围为[4MB,6MB],第一网络设备的第一交互装置22将该指定数据范围提供给第二网络设备。该文件的一个或多个数据范围与相应的文件分块的对应关系例如可以为[0MB,2MB]对应于第1个文件分块,[2MB,4MB]对应于第2个文件分块,[4MB,6MB]对应于第3个文件分块,[6MB,8MB]对应于第4个文件分块,[8MB,10MB]对应于第5个文件分块。在接收该指定数据范围之后,第二网络设备的第二交互装置31根据该指定数据范围,查询前述该文件的一个或多个数据范围与相应的文件分块的对应关系,确定指定数据范围([4MB,6MB])对应于第3个文件分块,也即,指定文件分块为第3个文件分块。随后,第二网络设备的第二交互装置31将该指定数据范围对应于第3个文件分块的信息返回给第一网络设备。相应地,第一网络设备的第一交互装置22接收第二网络设备所返回的该指定数据范围对应于第3个文件分块的信息。
在此,第一交互装置22所执行的确定指定数据范围所对应的指定文件分块的操作也可以由第一交互装置22中所包含的一特定装置执行。相似地,第二交互装置31所执行的辅助第一网络设备确定指定数据范围所对应的指定文件分块的操作也可以由第二交互装置31中所包含的一特定装置执行。
随后,第一网络设备的状态确定装置23根据当前下载该文件的当前下载完成度,确定指定文件分块的当前下载状态。
在此,由于在之前的操作中,第一网络设备的第一交互装置22已经开始下载用户所请求的文件,因此,该文件已经处于下载状态。该文件的当前下载完成度例如可以为0%、1%、10%、20%等。或者,该文件的当前下载完成度也可以为未完成、部分完成、已完成等。指定文件分块的当前下载状态例如可以为已经获得、正在获得、尚未获得等。
例如,既前示例C,第一网络设备的第一交互装置22已确定该文件包含5个文件分块,而且该文件的当前下载完成度为60%,指定文件分块为第3个和第4个文件分块。则第一网络设备的状态确定装置23可以确定第3个文件分块的当前下载状态为已经获得,第4个文件分块的当前下载完成度为尚未获得。
又如,既前示例D,第一网络设备的第一交互装置22已确定该文件包含5个文件分块,而且该文件的当前下载完成度为50%,指定文件分块为第3个文件分块。则第一网络设备的状态确定装置23可以确定第3个文件分块的当前下载状态为正在获得。
随后,第一网络设备的数据提供装置24根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户。
在此,第一网络设备的数据提供装置24可以根据指定文件分块不同的当前下载状态(已经获得、正在获得和尚未获得),按照不同的方式将制定文件分块种的部分或全部数据提供给用户。
优选地,第一网络设备的数据提供装置24可以将指定文件分块中对应于指定数据范围的部分数据提供给用户。
例如,用户所请求文件的指定数据范围为[1MB,2MB],而指定文件分块所对应的数据范围为[0MB,2MB],则第一网络设备的数据提供装置24可以将该指定文件分块中从1MB开始到结束这部分数据提供给用户,而无需将该指定文件分块中用户未请求的[0MB,1MB]这部分数据提供给用户。
优选地,第一网络设备的数据提供装置24根据指定文件分块的当前下载状态,将指定文件分块中的部分或全部数据提供给用户的方式包括但不限于以下3种情况:
1)当第一网络设备已经获得指定文件分块时,第一网络设备的数据提供装置24可以将该指定文件分块中的部分或全部数据提供给用户。
在此,第一网络设备的数据提供装置24可以将指定文件分块的全部数据均提供给用户。或者,第一网络设备的数据提供装置24也可以将指定文件分块的部分数据,例如对应于指定数据范围的部分数据,提供给用户。
2)当第一网络设备正在获得所述指定文件分块时,第一网络设备的数据提供装置24等待并当已经获得该指定文件分块中部分或全部数据时,将该指定文件分块中的部分或全部数据提供给用户。
例如,第一网络设备当前正在获得并且未完全地获得指定文件分块,则第一网络设备的数据提供装置24可以等待并当已经完全获得该指定文件分块中的全部数据时,再将该指定文件分块中的全部数据提供给用户,或者,第一网络设备的数据提供装置24也可以等待并当已经获得该指定文件分块中的部分数据时,再将该指定文件分块中的相应部分数据提供给用户,如对应于指定数据范围的部分数据。
又如,第一网络设备当前正在获得并且未完全地获得指定文件分块,则第一网络设备的数据提供装置24可以等待并当已经完全获得该指定文件分块中的部分数据时,如该指定文件分块中对应于指定数据范围的部分数据时,将相应的部分数据提供给用户。
3)如果第一网络设备尚未获得指定文件分块,第一网络设备的数据提供装置24则向第二网络设备发送对指定文件分块的第三下载请求,当第一网络设备正在获得第二网络设备响应第三下载请求所返回的指定文件分块时,第一网络设备的数据提供装置24等待并当已经获得指定文件分块中部分或全部数据时,将指定文件分块中的部分或全部数据提供给用户。
在此,第三下载请求中可以包含文件的标识信息以及指定文件分块的标识信息,如第2个文件分块、和/或第3个文件分块等。第二网络设备接收该第三下载请求之后,可以根据文件的标识信息和指定文件分块的标识信息,获得相应的指定文件分块。随后,第二网络设备可以将该指定文件分块返回给第一网络设备。相应地,第一网络设备等待并当已经获得指定文件分块中部分或全部数据时,第一网络设备的数据提供装置24将指定文件分块中的部分或全部数据提供给用户。在此,第一网络设备等待并当已经获得指定文件分块中部分或全部数据时,由第一网络设备的数据提供装置24将指定文件分块中的部分或全部数据提供给用户与前述第2)种方式中数据提供装置24将指定文件分块中的部分或全部数据提供给用户的方式相同或基本相同,因此不再赘述,并以引用的方式包含于此。
在此,第一网络设备的状态确定装置23所确定的多个指定文件分块的当前下载状态也可以分别为不同的。例如,用户所请求下载文件的指定数据范围是0-10MB,假设每个文件分块的大小是256KB(每个文件分块的大小可以是动态调整的),则用户请求的是第0个至第39个的文件分块。假设第一网络设备的数据提供装置24每次发送给用户的最大数据是1MB(这也可以是动态调整的,即每次给用户最多发送4个文件分块),数据提供装置24可以订阅编号为第0个的文件分块,然后数据提供装置24判断从第0个文件分块及后面存在的连续文件分块(查询本地索引),存在第0个文件分块就发送第0个文件分块,存在第0个和第1个文件分块就发送第0个和第1个文件分块,最多发送第0个、第1个、第2个、第3个文件分块给用户。假设第0个、第1个、第3个文件分块存在,而第2个文件分块不存在,则第一网络设备的数据提供装置24只发送第0个和第1个文件分块,等待用户的用户设备接收完成。当用户的用户设备接收完成后,第一网络设备的数据提供装置24订阅编号为2的第2个文件分块,然后判断第2个文件分块及后面存在的连续文件块。因为第2个文件分块不存在,则第一网络设备的数据提供装置24需要去第二网络设备下载第2个文件分块(第一网络设备可以将第2个文件分块从编号2转成数据范围的形式rang:512KB-768KB,发送给第二网络设备)。第一网络设备的数据提供装置24下载完成第2个文件分块后,第一网络设备的数据提供装置24判断从第2个文件分块及后面存在的连续文件块,继续前面的过程,循环订阅和发送文件分块。
这种向用户提供文件分块的方式可以进一步减少回源带宽。也即,第一网络设备不需要将整个文件全部下载下来,只需要下载相应的文件分块。同时,第一网络设备能更快地将文件发送给用户,每当从第二网络设备下载一部分的文件分块就可以发送给用户。如上面的示例中,用户请求下载数据范围0-10M的文件,每当第一网络设备从第二网络设备下载一个文件分块(256KB,可根据需要动态调整),第一网络设备就可以向用户提供该文件分块的数据(256KB),而不需等待0-10M全部下载完成才向用户提供数据。
与现有技术中需要数据源服务器同时提供文件给CDN服务器以及用户的处理方式相比,本发明方案中第一网络设备可以确定用户所请求的文件的指定数据范围所对应的指定文件分块,并根据该指定文件分块的当前下载状态,将从第二网络设备所获得的文件的该指定文件分块中的部分或全部数据提供给用户。因此,一方面,本发明方案中仅需第二网络设备将文件提供给第一网络设备,而由第一网络设备来响应用户的下载请求,从而本发明方案可以节省第二网络设备(例如第一网络设备的上一级节点设备、又如数据源服务器等)的带宽和流量。另一方面,第一网络设备可以更快速、精准地向用户提供其所请求的文件中对应于用户所指定的指定数据范围的部分数据。经实验数据证明,第一网络设备向用户提供其所请求的部分数据的时延完全可以被用户所接受,提升了用户的使用体验。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
虽然前面特别示出并且描述了示例性实施例,但是本领域技术人员将会理解的是,在不背离权利要求书的精神和范围的情况下,在其形式和细节方面可以有所变化。这里所寻求的保护在所附权利要求书中做了阐述。在下列编号条款中规定了各个实施例的这些和其他方面:
1.一种在第一网络设备中为用户提供指定文件分块的方法,其中,该方法包括:
-接收用户对文件的第一下载请求,其中,所述第一下载请求中包含用户所请求所述文件的指定数据范围;
-当第一网络设备中未存储所述文件或所述文件的部分数据时,通过与第二网络设备的交互,开始下载所述文件并确定所述指定数据范围所对应的指定文件分块,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块;
-根据当前下载所述文件的当前下载完成度,确定所述指定文件分块的当前下载状态;
-根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户。
2.根据条款1所述的方法,其中,所述通过与第二网络设备的交互,开始下载所述文件的步骤具体包括:
-向第二网络设备发送对所述文件的第二下载请求,以开始下载所述第二网络设备响应所述第二下载请求所返回的所述文件。
3.根据条款1或2所述的方法,其中,所述通过与所述第二网络设备的交互,确定所述指定数据范围所对应的指定文件分块的步骤具体包括:
-向所述第二网络设备发送对所述文件的大小的获取请求;
-获取所述第二网络设备所返回的所述文件的大小;
-根据所述文件的大小,对所述文件进行切分,以确定所述文件的一个或多个数据范围与相应的文件分块的对应关系;
-根据所述第一下载请求中所包含的用户所请求所述文件的指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,以确定所述指定数据范围所对应的指定文件分块。
4.根据条款1或2所述的方法,其中,所述通过与所述第二网络设备的交互,确定所述指定数据范围所对应的指定文件分块的步骤具体包括:
-将所述第一下载请求中所包含的用户所请求所述文件的指定数据范围提供给所述第二网络设备,以由所述第二网络设备根据所述指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,确定所述指定数据范围所对应的指定文件分块;
-接收所述第二网络设备所返回的所述指定数据范围所对应的指定文件分块。
5.根据条款1至4中任一项所述的方法,其中,所述根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户的步骤具体包括:
i当已经获得所述指定文件分块时,将所述指定文件分块中的部分或全部数据提供给所述用户;
ii当正在获得所述指定文件分块时,等待并当已经获得所述指定文件分块中部分或全部数据时,将所述指定文件分块中的部分或全部数据提供给所述用户;
iii如果尚未获得所述指定文件分块,则向所述第二网络设备发送对所述指定文件分块的第三下载请求,当正在获得所述第二网络设备响应所述第三下载请求所返回的所述指定文件分块时,等待并当已经获得所述指定文件分块中部分或全部数据时,将所述指定文件分块中的部分或全部数据提供给所述用户。
6.根据条款1至5中任一项所述的方法,其中,所述将所述指定文件分块中的部分或全部数据提供给所述用户的步骤具体包括:
-将所述指定文件分块中对应于所述指定数据范围的部分数据提供给所述用户。
7.一种在第二网络设备中为用户提供指定文件分块的方法,其中,该方法包括:
-通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件并确定所述指定数据范围所对应的指定文件分块,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块。
8.根据条款7所述的方法,其中,所述通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件的步骤具体包括:
-接收第一网络设备所发送的对文件的第二下载请求,以将所述文件返回给所述第一网络设备。
9.根据条款7或8所述的方法,其中,所述通过与所述第一网络设备的交互,辅助所述第一网络设备确定所述指定数据范围所对应的指定文件分块的步骤具体包括:
-接收所述第一网络设备所发送的对所述文件的大小的获取请求;
-将所述文件的大小返回给所述第一网络设备。
10.根据条款7或8所述的方法,其中,所述通过与所述第一网络设备的交互,辅助所述第一网络设备确定所述指定数据范围所对应的指定文件分块的步骤具体包括:
-接收所述第一网络设备所发送的所述第一下载请求中所包含的用户所请求所述文件的指定数据范围;
-根据所述指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,确定所述指定数据范围所对应的指定文件分块;
-将所述指定数据范围所对应的指定文件分块返回给所述第一网络设备。
11.一种在第一网络设备中为用户提供指定文件分块的装置,其中,该装置包括:
-用于接收用户对文件的第一下载请求的装置,其中,所述第一下载请求中包含用户所请求所述文件的指定数据范围;
-用于当第一网络设备中未存储所述文件或所述文件的部分数据时,通过与第二网络设备的交互,开始下载所述文件并确定所述指定数据范围所对应的指定文件分块的装置,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块;
-用于根据当前下载所述文件的当前下载完成度,确定所述指定文件分块的当前下载状态的装置;
-用于根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户的装置。
12.根据条款11所述的装置,其中,所述通过与第二网络设备的交互,开始下载所述文件的操作具体包括:
-向第二网络设备发送对所述文件的第二下载请求,以开始下载所述第二网络设备响应所述第二下载请求所返回的所述文件。
13.根据条款11或12所述的装置,其中,所述通过与所述第二网络设备的交互,确定所述指定数据范围所对应的指定文件分块的操作具体包括:
-向所述第二网络设备发送对所述文件的大小的获取请求;
-获取所述第二网络设备所返回的所述文件的大小;
-根据所述文件的大小,对所述文件进行切分,以确定所述文件的一个或多个数据范围与相应的文件分块的对应关系;
-根据所述第一下载请求中所包含的用户所请求所述文件的指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,以确定所述指定数据范围所对应的指定文件分块。
14.根据条款11或12所述的装置,其中,所述通过与所述第二网络设备的交互,确定所述指定数据范围所对应的指定文件分块的操作具体包括:
-将所述第一下载请求中所包含的用户所请求所述文件的指定数据范围提供给所述第二网络设备,以由所述第二网络设备根据所述指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,确定所述指定数据范围所对应的指定文件分块;
-接收所述第二网络设备所返回的所述指定数据范围所对应的指定文件分块。
15.根据条款11至14中任一项所述的装置,其中,所述根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户的装置具体用于:
i当已经获得所述指定文件分块时,将所述指定文件分块中的部分或全部数据提供给所述用户;
ii当正在获得所述指定文件分块时,等待并当已经获得所述指定文件分块中部分或全部数据时,将所述指定文件分块中的部分或全部数据提供给所述用户;
iii如果尚未获得所述指定文件分块,则向所述第二网络设备发送对所述指定文件分块的第三下载请求,当正在获得所述第二网络设备响应所述第三下载请求所返回的所述指定文件分块时,等待并当已经获得所述指定文件分块中部分或全部数据时,将所述指定文件分块中的部分或全部数据提供给所述用户。
16.根据条款11至15中任一项所述的装置,其中,所述将所述指定文件分块中的部分或全部数据提供给所述用户的操作具体包括:
-将所述指定文件分块中对应于所述指定数据范围的部分数据提供给所述用户。
17.一种在第二网络设备中为用户提供指定文件分块的装置,其中,该装置包括:
-用于通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件并确定所述指定数据范围所对应的指定文件分块的装置,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块。
18.根据条款17所述的装置,其中,所述通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件的操作具体包括:
-接收第一网络设备所发送的对文件的第二下载请求,以将所述文件返回给所述第一网络设备。
19.根据条款17或18所述的装置,其中,所述通过与所述第一网络设备的交互,辅助所述第一网络设备确定所述指定数据范围所对应的指定文件分块的操作具体包括:
-接收所述第一网络设备所发送的对所述文件的大小的获取请求;
-将所述文件的大小返回给所述第一网络设备。
20.根据条款17或18所述的装置,其中,所述通过与所述第一网络设备的交互,辅助所述第一网络设备确定所述指定数据范围所对应的指定文件分块的操作具体包括:
-接收所述第一网络设备所发送的所述第一下载请求中所包含的用户所请求所述文件的指定数据范围;
-根据所述指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,确定所述指定数据范围所对应的指定文件分块;
-将所述指定数据范围所对应的指定文件分块返回给所述第一网络设备。
Claims (20)
1.一种在第一网络设备中为用户提供指定文件分块的方法,其中,该方法包括:
-接收用户对文件的第一下载请求,其中,所述第一下载请求中包含用户所请求所述文件的指定数据范围;
-当第一网络设备中未存储所述文件或所述文件的部分数据时,通过与第二网络设备的交互,开始下载所述文件并确定所述指定数据范围所对应的指定文件分块,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块;
-根据当前下载所述文件的当前下载完成度,确定所述指定文件分块的当前下载状态;
-根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户。
2.根据权利要求1所述的方法,其中,所述通过与第二网络设备的交互,开始下载所述文件的步骤具体包括:
-向第二网络设备发送对所述文件的第二下载请求,以开始下载所述第二网络设备响应所述第二下载请求所返回的所述文件。
3.根据权利要求1或2所述的方法,其中,所述通过与所述第二网络设备的交互,确定所述指定数据范围所对应的指定文件分块的步骤具体包括:
-向所述第二网络设备发送对所述文件的大小的获取请求;
-获取所述第二网络设备所返回的所述文件的大小;
-根据所述文件的大小,对所述文件进行切分,以确定所述文件的一个或多个数据范围与相应的文件分块的对应关系;
-根据所述第一下载请求中所包含的用户所请求所述文件的指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,以确定所述指定数据范围所对应的指定文件分块。
4.根据权利要求1或2所述的方法,其中,所述通过与所述第二网络设备的交互,确定所述指定数据范围所对应的指定文件分块的步骤具体包括:
-将所述第一下载请求中所包含的用户所请求所述文件的指定数据范围提供给所述第二网络设备,以由所述第二网络设备根据所述指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,确定所述指定数据范围所对应的指定文件分块;
-接收所述第二网络设备所返回的所述指定数据范围所对应的指定文件分块。
5.根据权利要求1至4中任一项所述的方法,其中,所述根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户的步骤具体包括:
i当已经获得所述指定文件分块时,将所述指定文件分块中的部分或全部数据提供给所述用户;
ii当正在获得所述指定文件分块时,等待并当已经获得所述指定文件分块中部分或全部数据时,将所述指定文件分块中的部分或全部数据提供给所述用户;
iii如果尚未获得所述指定文件分块,则向所述第二网络设备发送对所述指定文件分块的第三下载请求,当正在获得所述第二网络设备响应所述第三下载请求所返回的所述指定文件分块时,等待并当已经获得所述指定文件分块中部分或全部数据时,将所述指定文件分块中的部分或全部数据提供给所述用户。
6.根据权利要求1至5中任一项所述的方法,其中,所述将所述指定文件分块中的部分或全部数据提供给所述用户的步骤具体包括:
-将所述指定文件分块中对应于所述指定数据范围的部分数据提供给所述用户。
7.一种在第二网络设备中为用户提供指定文件分块的方法,其中,该方法包括:
-通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件并确定所述指定数据范围所对应的指定文件分块,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块。
8.根据权利要求7所述的方法,其中,所述通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件的步骤具体包括:
-接收第一网络设备所发送的对文件的第二下载请求,以将所述文件返回给所述第一网络设备。
9.根据权利要求7或8所述的方法,其中,所述通过与所述第一网络设备的交互,辅助所述第一网络设备确定所述指定数据范围所对应的指定文件分块的步骤具体包括:
-接收所述第一网络设备所发送的对所述文件的大小的获取请求;
-将所述文件的大小返回给所述第一网络设备。
10.根据权利要求7或8所述的方法,其中,所述通过与所述第一网络设备的交互,辅助所述第一网络设备确定所述指定数据范围所对应的指定文件分块的步骤具体包括:
-接收所述第一网络设备所发送的所述第一下载请求中所包含的用户所请求所述文件的指定数据范围;
-根据所述指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,确定所述指定数据范围所对应的指定文件分块;
-将所述指定数据范围所对应的指定文件分块返回给所述第一网络设备。
11.一种在第一网络设备中为用户提供指定文件分块的装置,其中,该装置包括:
-用于接收用户对文件的第一下载请求的装置,其中,所述第一下载请求中包含用户所请求所述文件的指定数据范围;
-用于当第一网络设备中未存储所述文件或所述文件的部分数据时,通过与第二网络设备的交互,开始下载所述文件并确定所述指定数据范围所对应的指定文件分块的装置,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块;
-用于根据当前下载所述文件的当前下载完成度,确定所述指定文件分块的当前下载状态的装置;
-用于根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户的装置。
12.根据权利要求11所述的装置,其中,所述通过与第二网络设备的交互,开始下载所述文件的操作具体包括:
-向第二网络设备发送对所述文件的第二下载请求,以开始下载所述第二网络设备响应所述第二下载请求所返回的所述文件。
13.根据权利要求11或12所述的装置,其中,所述通过与所述第二网络设备的交互,确定所述指定数据范围所对应的指定文件分块的操作具体包括:
-向所述第二网络设备发送对所述文件的大小的获取请求;
-获取所述第二网络设备所返回的所述文件的大小;
-根据所述文件的大小,对所述文件进行切分,以确定所述文件的一个或多个数据范围与相应的文件分块的对应关系;
-根据所述第一下载请求中所包含的用户所请求所述文件的指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,以确定所述指定数据范围所对应的指定文件分块。
14.根据权利要求11或12所述的装置,其中,所述通过与所述第二网络设备的交互,确定所述指定数据范围所对应的指定文件分块的操作具体包括:
-将所述第一下载请求中所包含的用户所请求所述文件的指定数据范围提供给所述第二网络设备,以由所述第二网络设备根据所述指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,确定所述指定数据范围所对应的指定文件分块;
-接收所述第二网络设备所返回的所述指定数据范围所对应的指定文件分块。
15.根据权利要求11至14中任一项所述的装置,其中,所述根据所述指定文件分块的当前下载状态,将所述指定文件分块中的部分或全部数据提供给所述用户的装置具体用于:
i当已经获得所述指定文件分块时,将所述指定文件分块中的部分或全部数据提供给所述用户;
ii当正在获得所述指定文件分块时,等待并当已经获得所述指定文件分块中部分或全部数据时,将所述指定文件分块中的部分或全部数据提供给所述用户;
iii如果尚未获得所述指定文件分块,则向所述第二网络设备发送对所述指定文件分块的第三下载请求,当正在获得所述第二网络设备响应所述第三下载请求所返回的所述指定文件分块时,等待并当已经获得所述指定文件分块中部分或全部数据时,将所述指定文件分块中的部分或全部数据提供给所述用户。
16.根据权利要求11至15中任一项所述的装置,其中,所述将所述指定文件分块中的部分或全部数据提供给所述用户的操作具体包括:
-将所述指定文件分块中对应于所述指定数据范围的部分数据提供给所述用户。
17.一种在第二网络设备中为用户提供指定文件分块的装置,其中,该装置包括:
-用于通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件并确定所述指定数据范围所对应的指定文件分块的装置,其中,所述文件的一个或多个数据范围分别对应于相应的文件分块。
18.根据权利要求17所述的装置,其中,所述通过与第一网络设备的交互,辅助所述第一网络设备开始下载用户所请求下载的文件的操作具体包括:
-接收第一网络设备所发送的对文件的第二下载请求,以将所述文件返回给所述第一网络设备。
19.根据权利要求17或18所述的装置,其中,所述通过与所述第一网络设备的交互,辅助所述第一网络设备确定所述指定数据范围所对应的指定文件分块的操作具体包括:
-接收所述第一网络设备所发送的对所述文件的大小的获取请求;
-将所述文件的大小返回给所述第一网络设备。
20.根据权利要求17或18所述的装置,其中,所述通过与所述第一网络设备的交互,辅助所述第一网络设备确定所述指定数据范围所对应的指定文件分块的操作具体包括:
-接收所述第一网络设备所发送的所述第一下载请求中所包含的用户所请求所述文件的指定数据范围;
-根据所述指定数据范围,查询所述文件的一个或多个数据范围与相应的文件分块的对应关系,确定所述指定数据范围所对应的指定文件分块;
-将所述指定数据范围所对应的指定文件分块返回给所述第一网络设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610930736.8A CN106550023A (zh) | 2016-10-31 | 2016-10-31 | 一种用于为用户提供指定文件分块的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610930736.8A CN106550023A (zh) | 2016-10-31 | 2016-10-31 | 一种用于为用户提供指定文件分块的方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106550023A true CN106550023A (zh) | 2017-03-29 |
Family
ID=58393459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610930736.8A Pending CN106550023A (zh) | 2016-10-31 | 2016-10-31 | 一种用于为用户提供指定文件分块的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106550023A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108173953A (zh) * | 2017-12-29 | 2018-06-15 | 北京奇虎科技有限公司 | 一种基于内容分发网络cdn的文件分发方法和装置 |
CN108346031A (zh) * | 2018-01-18 | 2018-07-31 | 北京汽车研究总院有限公司 | 一种数据交互方法及*** |
CN108566370A (zh) * | 2018-02-11 | 2018-09-21 | 北京奇艺世纪科技有限公司 | 一种数据回源的方法以及装置 |
CN112055044A (zh) * | 2020-07-20 | 2020-12-08 | 云盾智慧安全科技有限公司 | 数据请求方法及服务器、计算机可存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102484652A (zh) * | 2009-08-28 | 2012-05-30 | 苹果公司 | 内容分发网络上的分块下载 |
CN102547478A (zh) * | 2012-02-20 | 2012-07-04 | 北京蓝汛通信技术有限责任公司 | 基于cdn的流媒体触发式切片点播***和方法 |
CN103747112A (zh) * | 2013-12-24 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种cdn回源的方法、第一服务器及*** |
WO2015096801A1 (en) * | 2013-12-26 | 2015-07-02 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for accelerating data transmission in a network communication system |
CN104935648A (zh) * | 2015-06-03 | 2015-09-23 | 北京快网科技有限公司 | 一种高性价比的cdn***及文件预推、分片缓存的方法 |
-
2016
- 2016-10-31 CN CN201610930736.8A patent/CN106550023A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102484652A (zh) * | 2009-08-28 | 2012-05-30 | 苹果公司 | 内容分发网络上的分块下载 |
CN102547478A (zh) * | 2012-02-20 | 2012-07-04 | 北京蓝汛通信技术有限责任公司 | 基于cdn的流媒体触发式切片点播***和方法 |
CN103747112A (zh) * | 2013-12-24 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种cdn回源的方法、第一服务器及*** |
WO2015096801A1 (en) * | 2013-12-26 | 2015-07-02 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for accelerating data transmission in a network communication system |
CN104935648A (zh) * | 2015-06-03 | 2015-09-23 | 北京快网科技有限公司 | 一种高性价比的cdn***及文件预推、分片缓存的方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108173953A (zh) * | 2017-12-29 | 2018-06-15 | 北京奇虎科技有限公司 | 一种基于内容分发网络cdn的文件分发方法和装置 |
CN108346031A (zh) * | 2018-01-18 | 2018-07-31 | 北京汽车研究总院有限公司 | 一种数据交互方法及*** |
CN108346031B (zh) * | 2018-01-18 | 2021-03-09 | 北京汽车集团越野车有限公司 | 一种数据交互方法及*** |
CN108566370A (zh) * | 2018-02-11 | 2018-09-21 | 北京奇艺世纪科技有限公司 | 一种数据回源的方法以及装置 |
CN112055044A (zh) * | 2020-07-20 | 2020-12-08 | 云盾智慧安全科技有限公司 | 数据请求方法及服务器、计算机可存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106550023A (zh) | 一种用于为用户提供指定文件分块的方法与装置 | |
CN103995748B (zh) | 智能终端的任务处理方法及*** | |
CN107545058B (zh) | 一种页面加载方法、服务器及浏览器 | |
CN102289473A (zh) | 一种多服务器分页查询的装置及方法 | |
CN109379299A (zh) | 一种数据流量的限制方法、装置和*** | |
CN104866116A (zh) | 一种用于输出表情信息的方法和装置 | |
CN106815880A (zh) | 动画复用方法和*** | |
CN107391402A (zh) | 一种数据运算方法、装置及一种数据运算卡 | |
CN102685209B (zh) | 一种协助用户设备收发即时消息的方法、装置和设备 | |
CN109495553A (zh) | 一种网页显示控制方法、***及反向代理服务器 | |
CN108200127A (zh) | 数据发送方法、装置、服务器、终端及存储介质 | |
CN106156132A (zh) | 图片加载显示方法和装置 | |
CN104572981B (zh) | 一种网页页面缓存处理方法和移动终端设备 | |
CN109451347A (zh) | 一种特效制作方法、装置、终端及计算机可读存储介质 | |
CN106484417A (zh) | 一种应用程序列表展示方法及装置 | |
CN110087120B (zh) | 在线列表与本地列表的同窗切换方法、及计算设备 | |
CN116059631A (zh) | 对象渲染方法、装置、电子设备及计算机可读存储介质 | |
CN115203603A (zh) | 表格页面渲染方法、装置、电子装置和存储介质 | |
CN108170391A (zh) | 页面显示方法、装置及电子设备 | |
CN110297997B (zh) | 页面显示方法、装置及设备 | |
CN112688980B (zh) | 资源分发方法、装置、计算机设备 | |
CN106843952A (zh) | 更新应用中功能模块的方法与装置 | |
CN113626113A (zh) | 一种页面渲染方法和装置 | |
CN107577399A (zh) | 一种图片拼接方法及装置 | |
CN102970352A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170329 |