CN111314403B - 资源一致性的校验方法和装置 - Google Patents
资源一致性的校验方法和装置 Download PDFInfo
- Publication number
- CN111314403B CN111314403B CN201811521169.6A CN201811521169A CN111314403B CN 111314403 B CN111314403 B CN 111314403B CN 201811521169 A CN201811521169 A CN 201811521169A CN 111314403 B CN111314403 B CN 111314403B
- Authority
- CN
- China
- Prior art keywords
- resource
- data
- node
- block
- check
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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/12—Applying verification of the received information
-
- 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]
Abstract
本申请公开了一种资源一致性的校验方法和装置。该方法可以应用于下载系统的下载节点,所述下载系统还包括上传节点和CDN节点;所述方法包括:确定第一校验数据,所述第一校验数据是从CDN节点下载的目标资源的第一指定数据块对应的校验数据;获取第二校验数据,所述第二校验数据是从第一上传节点发送的第一分块校验信息中获取的对应于所述第一指定数据块的校验数据;确认所述第一校验数据和所述第二校验数据是否匹配;本发明实施例提出的资源一致性校验方法和装置解决现有技术中无法确认CDN节点中的目标文件是否正确的问题。
Description
技术领域
本申请涉及信息处理领域,特别是涉及一种资源一致性的校验方法和装置。
背景技术
P2P全称peer to peer,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。P2P网络系统中的每个终端,可以称为一个P2P节点。在P2P网络中,节点与节点之间共享资源,可以相互上传和下载资源,称为P2P分享。在一次资源分享中,下载资源的P2P节点称为下载节点,在一次资源分享中,上传资源的P2P节点称为上传节点。P2P终端节点上可以运行的P2P加速器,其可以是集成在App上的一个动态库SO,也可以是一个独立的可执行程序。
在PCDN(P2P CDN)网络系统,数据流经多个传输环节,只要某个环节把控不严,就可能会引入数据不一致的问题,例如以下几种场景:
1.运营商劫持,导致数据被篡改;
2.URL刷新,导致刷新前后的数据不一致;
3.不同的CDN节点,由于版本升级和迭代的关系,可能会存在数据不一致的情况。
一般,PCDN系统中的下载节点会从上传节点和CDN节点下载数据,如果上传节点和CDN节点提供的数据内容不一致,下载节点收到并拼接好数据,再发送给播放器播放的时候,就会出现花屏等各种播放问题。因此,确保数据的一致性对保证用户的播放体验非常关键。
目前业界有多种方法确认下载后的文件是否与源文件一致,例如业界常用校验数据,例如MD5值进行校验。
软件下载站点的某软件信息通常会有其MD5值,它的作用就在于用户可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。
现有技术提出了一些利用MD5值校验文件是否发生变化的方案,例如如下两种方案:
第一种方案通常包括如下步骤:
1,初始几个下载节点下载完文件后,计算整个文件的MD5值,并发布到服务器上;
2,服务器通过投票算法,确定一个正确的MD5值;
3,下载节点A向上传节点请求P2P数据的时候,请求信息中携带文件的资源ID,由服务端根据资源ID查找对应的MD5值,返回给下载节点;下载节点A再发送给上传节点B用于后续校验;
4,上传节点B校验请求信息中的MD5值和本地的MD5值是否一致,如一致,再提供数据。
5,下载节点A下载完整个文件后,校验整个文件的MD5,若一致则保留,若不一致则丢弃脏数据。
这种方案至少存在如下缺点:整个文件丢弃数据浪费大;必须整个文件下载完后才能确认数据是否是正确的;只确保P2P节点之间的数据的正确性,不能确保P2P节点的数据和CDN的数据是一致的。
第二种方案通常包括如下步骤:
1,初始几个下载节点按固定大小的数据分块(例如100KB)下载,每下载完一个数据分块,就保存下来;
2,当文件下载完后,将所有分块的MD5校验信息合并,再计算一个MD5值,并发布到服务器上;
3,服务器通过投票算法,投出一个正确的MD5值;
4,下载节点A向上传节点请求P2P数据的时候,请求信息中带上文件的MD5值;
5,上传节点B校验请求信息中的MD5值和本地的MD5值是否一致,一致再提供数据。
6,下载节点A下载完一个数据分块后,校验当前数据分块的MD5,若一致则保留,若不一致则丢弃脏数据,重新下载。
但是,这种方法虽然解决了必须下载整个文件才能校验的问题,但是只确保P2P节点之间的数据的正确性,不能确保P2P节点的数据和CDN的数据是一致的这一问题仍然存在。
发明内容
鉴于上述问题,本发明一实施例提出一种资源一致性的校验方法和装置,以解决现有技术存在的问题。
为了解决上述问题,本申请一实施例公开一种一种资源一致性校验方法,应用于下载系统的下载节点,所述下载系统还包括上传节点和CDN节点;所述方法包括:
确定第一校验数据,所述第一校验数据是从CDN节点下载的目标资源的第一指定数据块对应的校验数据;
获取第二校验数据,所述第二校验数据是从第一上传节点发送的第一分块校验信息中获取的对应于所述第一指定数据块的校验数据;
确认所述第一校验数据和所述第二校验数据是否匹配。
为了解决上述问题,本申请一实施例公开一种资源一致性的校验装置,包括:
第一校验数据确定模块,用于确定第一校验数据,所述第一校验数据是从CDN节点下载的目标资源的第一指定数据块对应的校验数据;
第二校验数据获取模块,用于获取第二校验数据,所述第二校验数据是从第一上传节点发送的第一分块校验信息中获取的对应于所述第一指定数据块的校验数据;
第一判断模块,用于确认所述第一校验数据和所述第二校验数据是否匹配。
本申请一实施例还公开一种终端设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述终端设备执行上述的方法。
本申请一实施例还公开一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得处理器执行上述的方法。
由上述可知,本申请实施例包括以下优点:
在本发明前述示例提出的资源一致性校验方法中,通过第一次校验数据的匹配确认,确认上传节点中的目标文件的校验数据和CDN节点的校验数据是否一致,避免CDN节点中的目标文件与上传节点中的目标文件不一致,解决现有技术中无法确认CDN节点中的目标文件是否正确的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请核心构思的示意图。
图2是本发明第一实施例中的资源一致性的校验方法的部分步骤的流程性示意图,
图3是本申请第二实施例的资源一致性的校验方法的流程图。
图4是本申请第二实施例的资源一致性的校验方法的另一实施方式流程图。
图5是本申请第三实施例的资源一致性的校验装置的方框图。
图6是本申请第三实施例的资源一致性的校验装置的方框图。
图7示意性地示出了用于执行根据本发明的方法的终端设备的框图。
图8示意性地示出了用于保持或者携带实现根据本发明的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本发明的核心构思之一在于,在原有的文件分级校验方案的基础上加以扩展,引入了确认校验数据值和CDN数据是否一致的步骤,确保下载节点拿到的P2P数据与CDN节点的数据是一致。
以下结合多幅附图,对本发明一实施例提出的资源一致性校验方法进行介绍、需要说明的是,该实施例仅是其中一种用于举例说明的实施方式,其中包含的细节要素并非本发明的实施要素。
在一个实施例中,用于实现本发明的资源一致性校验的系统,如图1所示,其可以包括多个下载节点10和多个上传节点20,以及至少一个CDN节点40。在可选实施例中,该系统还可以包括服务器30。
在一个P2P下载方案中,每个客户端可以同时作为下载节点10,也可以作为上传节点20。在某个客户端需要从网络中的服务器或其他客户端请求下载某一资源时,它的角色是下载节点;当某个客户端中存在某一资源,且其加入了该资源的节点列表中,在接收到请求提供该资源时,它的角色是上传节点。客户端可以在下载节点和上传节点之间转换角色。
以下通过多个阶段对本发明的流程进行介绍。图2为下述实施例中部分步骤的流程示意图,为了清晰地描述,省略了部分的步骤,而只保留了另一部分步骤。
第一实施例
在第一实施例中,所述的资源一致性校验方法包括如下阶段:1,下载任务准备阶段;2,下载任务的开始阶段;3,下载节点对MD5做第一次确认;4,上传节点对MD5做二次确认;5,下载节点对分块数据做三次确认;6,资源发布与服务端投票。以下分别进行介绍。
1.下载任务准备阶段
这一阶段,为下载节点10从其自身的应用程序(App)获取需要的目标资源(例如需要点播的视频等)的地址,根据该地址向内容分发网络(CDN)节点40请求目标资源对应的头部数据,并向服务器30请求目标资源的资源信息和存储有目标资源的上传节点20的列表。
该阶段可以包括如下多个步骤:
1.1,下载节点收到该下载节点自身的客户端App发来的需要点播的资源(例如需要播放的视频)的请求,例如是HTTP请求,并从中解析出资源(例如音频资源、视频资源、软件资源等)的地址,该地址例如是统一资源定位符URL。获得URL。
1.2,下载节点判断客户App发过来HTPP请求中解析出的URL,是否符合加速条件。若不符合,则直接从CDN节点40请求,若符合,继续执行下述步骤。
下载节点10从上一步骤1.1的URL中提取出特征信息,生成资源ID值。在这一步骤中,下载节点10例如判断该URL符合加速条件,则可以开启P2P加速下载。
1.3,在一实施例中,下载节点10启动下载任务,为了减少首播时间,提高秒开率,下载节点10向CDN节点40请求头部数据,同时向服务器30请求资源信息和节点列表。
上述的资源信息,可以指与目标资源相关的信息,包括资源ID,大小,MD5值等;上述的节点列表是反映目标资源和节点的映射关系,例如有哪些上传节点20中存在该目标资源。
2.下载任务的开始阶段
在下载任务的开始阶段,下载节点10向服务器30请求资源信息,服务器30解析收到的请求并进行查询,当查到后发给下载节点10,由下载节点10进行保存。
该阶段可以包括如下多个步骤:
2.1下载节点10向服务器30请求资源信息,请求中包了该资源的资源ID信息。
2.2服务器30收到下载节点10中的加速器发送的请求,解析该请求得到资源ID信息。
2.3服务器30根据上述步骤2.2解析得到的资源ID,从服务器30的本地内存中存储的资源列表中,查询对应的资源。若没有查询到,则返回失败信息,告知下载节点10加速信息为空。若查到资源信息,则继续执行下一步。
2.4服务器30将上述步骤2.3查到的资源信息打包,发送给下载节点10中安装的加速器。所述资源信息包括资源ID、资源大小、整个目标资源的MD5值、节点列表;
2.5下载节点10收到并解析服务器30返回的资源信息和节点列表,并保存到下载节点10的本地缓存中。
3.下载节点10对MD5做第一次确认。
在这一阶段,下载节点10获取上传节点20的信息,向上传节点20请求分块校验信息,上传节点20在接收到该请求后进行解析,并根据解析出的资源ID进行查找。在找到对应的资源信息之后,可选地,上传节点20可以确认本地存储的分块校验信息的MD5值是否与解析获得的分块校验信息的MD5值是否一致。如一致,证明目标资源的版本相同,上传节点20将分块校验信息读取并发送给下载节点10,供下载节点10保存。下载节点将CDN节点40中的分块数据的MD5值确定出,并与下载节点10从上传节点20中拿到的分块校验信息中对应数据分块的MD5值进行比较,从而确定CDN节点40中的目标资源是否正确。
值得注意的是,前述和后述的确定MD5值的方法可以包括计算,或者从指定区域获取等方式,在此并不限定。
这一阶段可以具体包括如下步骤:
3.1下载节点10从节点列表中获取一个上传节点20;该上传节点20对应的节点信息包括:节点的公网地址,节点的公网端口,节点的Relay地址,节点的Relay端口,节点的地址类型等信息。
3.2下载节点10向步骤3.1取出的上传节点20发送请求,请求分块校验信息。请求中包含:资源ID、分块校验信息的MD5值、分块校验信息的大小。
分块校验信息是指将文件切按固定大小(如:64KB)切分成多个数据块,确定每个数据块的MD5值,将这些数据的MD5值全都合起来,拼成一个文件叫做分块校验信息。分块校验信息也是在生成整个目标资源的MD5值的时候一起生成的,和整个目标资源的MD5值不一样的是,分块校验信息是保存在本地的资源文件的文件头中,并没有上报到服务器30上。
分块校验信息形如:MD5[A],MD5[B],MD5[C]…
AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCC…
3.3上传节点20收到下载节点10发送的分块校验信息的请求。
3.4上传节点20从步骤3.3收到的请求中,解析出资源ID,分块校验信息的MD5值,分块校验信息的大小等。
3.5上传节点20根据资源ID从上传节点20本地内存中存储的资源列表中,查找该目标资源是否存在。若没有查找到,则返回通知下载节点10没有该资源。反之,继续执行下述步骤。
3.6上传节点20根据步骤3.5从上传节点20本地的资源列表中查找到步骤3.4解析出来的资源ID对应的资源信息,包括资源ID、资源大小、整个目标资源的MD5值、分块校验信息的MD5值、文件存储的路径等。
3.7上传节点20将步骤3.6查找到的分块校验信息的MD5值和步骤3.4解析得到的分块校验信息的MD5值做比较,判断是否一致。若不一致,则返回通知下载节点10文件不一致。反之,继续执行下述步骤。
3.8上传节点20根据步骤3.6查到文件存储路径,打开目标资源,读取分块校验信息,并打包发送给下载节点10。
3.9下载节点10收到步骤3.8上传节点20发送的请求,解析出分块校验信息,并存储到下载节点10本地内存中。
3.10下载节点10将前述第一阶段的步骤1.3收到的从CDN节点40下载的最近一个完整的数据块,确定MD5值,并和分块校验信息中对应数据块的MD5值做比较,若一致,则说明该校验信息是可信的,执行流程4,反之认为不可信,下载任务只从CDN节点40下载数据。
如果将文件按固定大小(64KB)切分成多个数据块,前述“一个完整数据块”的定义,就是一个切分出来的64KB数据,例如[0,65535],[65536,131071]…
此时确定出的MD5值是CDN节点40中的分块数据的MD5值,用它和下载节点10从上传节点20拿到的分块校验信息中对应数据分块的MD5值做比较,可以确定CDN节点40中的文件是否正确。
4.上传节点20对MD5做二次确认。
在这一阶段,下载节点10将目标资源拆分成为多个P2P任务,并获取指定上传节点20,向该上传节点20发送P2P任务信息。上传节点20接收并解析该任务信息,根据其中携带的资源ID在本地查找,在找到目标资源之后,根据下载节点10给的P2P任务信息确定需要做分块校验的数据块,并确定该数据块的MD5值。上传节点20将该确定出的MD5值与根据文件存储路径打开的文件中的对应数据块的MD5值进行比较,确认二者是否匹配。如匹配,则取出对应的数据块发送给下载节点10进行保存。
这一阶段具体包括如下步骤:
4.1下载节点10将整个目标资源分解成多个P2P任务,形成一个P2P任务池,存放在内存中。
4.2下载节点10从前述步骤2.5中存储的节点列表中按照特定规则或者随机地获取一个上传节点20。
4.3下载节点10向步骤4.2取出的该上传节点20发送P2P任务,任务信息例如可以包括如下一者或多者:资源ID、整个目标资源的MD5值、文件的起始位置、数据块的大小等。
4.4上传节点20收到下载节点10发送过来的P2P任务,解析得到任务信息,该任务信息例如包括如下一者或多者:资源ID、整个目标资源的MD5值、文件的起始位置、数据块的大小等。
4.5上传节点20根据步骤4.4解析得到的资源ID信息,从上传节点20本地存储的资源列表中查找对应的资源。若找不到,则返回通知下载节点10没有该资源。反之,继续执行下述步骤。
4.6上传节点20根据步骤4.5查找得到本地的资源信息,该资源信息例如可以包括如下一者或多者:资源ID、资源大小、整个目标资源的MD5值、分块校验信息的MD5值,文件存储的路径等。
4.7上传节点20根据步骤4.6查找到的整个目标资源的MD5值和步骤4.4解析得到的整个目标文件的MD5值做比较。若不一致,则返回通知下载节点10文件不一致。反之,则继续执行下述步骤。
4.8上传节点20根据步骤4.6查找到文件存储路径,打开文件。
4.9上传节点20根据步骤4.4解析出来的数据块的起始位置和数据块的大小,确定出需要做分块校验的数据块。
例如,数据块的起始位置是8KB,数据块大小是9KB,则对应的范围为[8KB,17KB)。若分块校验的分块大小是10KB,则请求的数据块,落在[0KB,10KB)和[10KB,20KB)两个分块中。
4.10上传节点20从步骤4.8打开的文件中,读取出步骤4.9确定出来的需要做校验的分块数据。
4.11上传节点20对步骤4.10读取出来的分块数据,确定每个分块的MD5值。
4.12上传节点20从步骤4.8打开的文件中,读取分块校验信息。
4.13上传节点20从步骤4.12的分块校验信息中提取步骤4.9需要做校验的分块的MD5值。
4.14上传节点20将步骤4.11确定出的MD5值和步骤4.13提取出来的MD5值做比较。若不一致,则返回通知下载节点10,数据错误。反之,继续执行下述步骤。
4.15上传节点20从校验成功的分块数据中读取步骤4.4解析出来的数据块。如从[0KB,10KB)和[10KB,20KB)两个分块中取出[8KB,17KB)的数据块。
4.16上传节点20将步骤4.15取出的数据返回给下载节点10。
4.17下载节点10收到上传节点20发送过来的数据,存放到下载节点10本地内存中或者写入到磁盘文件中。
5.下载节点10对分块数据做三次确认
在这一阶段,下载节点10将服务器30传送的分块校验信息写入新创建的资源文件中,并在下载完一个数据块后,确定该数据块的MD5值。下载节点将分块校验信息中对应的数据块的MD5值和下载的数据块确定的MD5值对比,在确定一致之后写入新创建的资源文件中。通过这一阶段的操作,可以在一个数据块下载完成之后即与原先存储的MD5值进行对比,避免了数据全部下载完成之后才发现数据不一致。
这一阶段可以包括如下步骤:
5.1下载节点10在启动下载任务之后,在指定的磁盘目录下,创建资源文件,文件名例如可以为资源ID。同时将文件存储路径,记录到内存中。
5.2下载节点10打开资源文件。
5.3下载节点10将2.5中的分块校验信息写入到5.2打开的文件中。
5.4下载节点10重复前述阶段4,收到数据。
5.5下载节点10当一个分块的数据完了,例如第0个分块,[0KB,10KB)的数据收完了,就可确定当前分块的MD5值。
值得注意的是,这个分块大小是由切分规则定的,在实际操作中,所有资源都可以统一地按固定大小切分。
5.6下载节点10根据分块的序号从步骤5.3中的分块校验信息中,提取对应的MD5值。
例如,分块校验信息中第0个分块的MD5值是:
AAAAAAAAAAAAAAAA。
5.7下载节点10将步骤5.5确定得到的MD5值和步骤5.6提取出来的MD5值做比较。若MD5值一致,则说明数据是正确的,反之数据有误,需要删除重新下载。
5.8下载节点10将5.7校验正确的数据写入到5.2打开的文件中。
6.资源发布与服务端投票
在这一阶段,在下载节点10下载了全部目标资源之后,可以进行MD5值的匹配比较,当匹配正确后,将目标文件和资源信息写入前述新建的资源文件中,并向服务器30请求发布。当服务器30查找到这些目标资源原先已存时,将该下载节点10加入节点列表,在下一次其他的下载节点请求该目标资源时,当前的下载节点10可以作为P2P加速时的上传节点。
这一阶段具体可以包括如下步骤:
6.1下载节点10重复前述阶段4和阶段5,直到整个文件的数据下载完毕。
6.2作为一个可选步骤,下载节点10确定整个文件的MD5值,并和2.5从服务器30获得的MD5值做比较。若MD5值一致,则文件是正确的,反之整个文件有误,需要删除重新下载。
6.3下载节点10将资源信息包括资源ID、资源大小、整个目标资源的MD5值、分块校验信息等,写入到5.2打开的文件中。
6.4下载节点10向服务器30发送资源发布请求。发布请求的信息例如可以包括如下一项或多项:资源ID、资源大小、整个目标资源的MD5值、分块校验信息、当前节点的信息等。
6.5服务器30收到下载节点10的加速器发送的资源发布请求并解析,得到资源信息,例如包括资源ID,资源大小,整个目标资源的MD5值,分块校验信息、当前节点的信息等。
6.6服务器30根据步骤6.5解析得到的资源ID从服务器30本地资源列表中查找该资源。若当前资源列表中没有找到,则将该资源的信息添加到资源列表中。若当前资源列表中存在时,执行下一步6.7。
6.7服务器30将步骤6.6查找到的该资源历史的MD5信息和6.5解析得到的整个目标资源ID的MD5信息,通过例如投票算法进行投票。若投票结果一致,则将步骤6.5的节点信息添加到该资源的节点列表中,并返回通知下载节点10的加速器发布成功。反之,则不添加,并返回通知加速器发布失败。
6.8下载节点10收到服务器30返回的发布结果。若发布失败,则删除资源;反之则保留资源。
在本发明前述示例提出的资源一致性校验方法中,通过第一次校验数据的匹配确认,确认上传节点20中的目标文件的校验数据和CDN节点40的校验数据是否一致,避免CDN节点中的目标文件与上传节点中的目标文件不一致,解决现有技术中第二种方案的无法确认CDN节点中的目标文件是否正确的问题;此外,通过第二次校验数据的匹配确认,将单个数据块的所携带的校验数据与所确定的校验数据是否一致,防止目标文件被修改却未检测出,确保P2P数据一致性的同时,将数据范围缩小一个数据块,解决了现有技术中第一种方案的问题。
在可选实施例中,本发明实施例提出的资源一致性校验方法,综合利用CDN数据确认、上传节点MD5值确认、下载节点校验信息确认、下载节点分块数据校验等维度,多方案相结合,系统性的解决了数据不一致的问题。
本发明实施例提出的资源一致性校验方法,确认CDN数据和P2P数据的一致性的时候,无须校验所有数据,通过动态随机算法,选择一个完整的数据块校验,用较小的资源开销,解决了CDN和P2P数据一致性的问题。
本发明实施例提出的资源一致性校验方法,利用分块数据做校验,检验结果的实时性更高,并且校验失败时,浪费的流量最小。
第二实施例
本发明第二实施例提出一种资源一致性的校验方法。应用于下载系统,该下载系统如图1所示,包括下载节点10、上传节点20和CDN节点40。在可选实施例中,所述下载系统还可以包括服务器30。
图3所示为本发明第二实施例的资源一致性的校验方法的步骤流程图。如图3所示,本发明实施例的资源一致性的校验方法包括如下步骤:
S101,确定第一校验数据,所述第一校验数据是从CDN节点下载的目标资源的第一指定数据块对应的校验数据;
根据前述第一实施例的第一阶段的步骤1.3,下载节点10启动下载任务,为了减少首播时间,提高秒开率,下载节点10向CDN节点40请求头部数据,获取第一指定数据块。
根据前述第一实施例的第三阶段的步骤3.10,下载节点10将前述第一阶段的步骤1.3收到的从CDN节点40下载的最近一个完整的数据块,确定第一校验数据。第一校验数据例如为目标资源的第一指定数据块对应的MD5值。确定的方法可以包括计算或者从指定区域获取等,在此并不限定。
在本实施例中为了前后一致,校验数据均以MD5值举例说明,在其他实施例中,校验数据可以为其他数据,只要是能够通过文件生成的数据,并且能代表文件的特征即可。在优选实施例中,一个校验数据和生成该校验数据的文件具有唯一对应性。
S102,获取第二校验数据,所述第二校验数据是从第一上传节点发送的第一分块校验信息中获取的对应于所述第一指定数据块的校验数据;
这一步骤可以参考前述第一实施例的第三阶段的步骤3.8,在上传节点20根据步骤3.6查到文件存储路径,打开目标资源,读取第一分块校验信息,并打包发送给下载节点10。下载节点10则获取该第二校验数据。
S103,确认所述第一校验数据和所述第二校验数据是否匹配;
这一步骤可以参考前述第一实施例的第三阶段的步骤3.10。下载节点10将前述第一阶段的步骤1.3收到的从CDN节点40下载的最近一个完整的数据块确定出的MD5值,与第一分块校验信息中对应数据块的MD5值做比较,若一致,则说明该校验信息是可信的,执行后续阶段4,反之认为不可信,在这种情况下下载任务只从CDN节点40下载数据。
在本发明第二实施例提出的资源一致性校验方法中,通过第一次校验数据的匹配确认,确认上传节点中的目标文件的校验数据和CDN节点的校验数据是否一致,避免CDN节点中的目标文件与上传节点中的目标文件不一致,解决现有技术中无法确认CDN节点中的目标文件是否正确的问题。
在可选实施例中,如图4所示,在步骤S103,即在CDN节点的校验数据与上传节点发送的文件校验信息中的校验数据匹配后,可以进行第二阶段的分块验证,即执行步骤S104。
S104,确定第三校验数据,所述第三校验数据是目标资源的第二指定数据块对应的校验数据;
这一步骤可以参考前述第一实施例的第五阶段的步骤5.5。当一个分块的数据下载完毕,例如第0个分块——[0KB,10KB)的数据接收完毕,下载节点10就可确定当前分块的MD5值。
S105,获取第四校验数据,所述第四校验数据是从服务器发送的分块校验信息中提取的校验数据;
这一步骤可以参考前述第一实施例的第五阶段的步骤5.6。下载节点10根据分块的序号从步骤5.3中的分块校验信息中,提取对应的MD5值。例如,分块校验信息中第0个分块的MD5值是:
AAAAAAAAAAAAAAAA。
S106,确认所述第三校验数据和所述第四校验数据是否匹配。
这一步骤可以参考前述第一实施例的第五阶段的步骤5.7。下载节点10将步骤5.5确定得到的MD5值和步骤5.6提取出来的MD5值做比较。
在比较之后,可以通过分块数据的MD5值是否匹配确认目标资源是否一致。即完成了文件的校验。
在一实施例中,若MD5值一致,则说明数据是正确的,反之数据有误,需要删除重新下载。
由上述可知,本发明第二实施例提出的资源一致性的校验方法至少具有如下技术效果:
在本发明前述示例提出的资源一致性校验方法中,通过第一次校验数据的匹配确认,确认上传节点20中的目标文件的校验数据和CDN节点40的校验数据是否一致,避免CDN节点中的目标文件与上传节点中的目标文件不一致,解决现有技术中第二种方案的无法确认CDN节点中的目标文件是否正确的问题;此外,通过第二次校验数据的匹配确认,将单个数据块的所携带的校验数据与所确定的校验数据是否一致,防止目标文件被修改却未检测出,确保P2P数据一致性的同时,将数据范围缩小一个数据块,解决了现有技术中第一种方案的问题。
在一可选实施例中,可以参考第一实施例的第三阶段的步骤3.2,在所述获取第二校验数据的步骤之前,所述方法还包括:
向第一上传节点发送获取第一分块校验信息的请求,所述请求包括:目标资源的资源ID、目标资源的第二分块校验信息、第二分块校验信息的大小;
其中,所述第一分块校验信息为所述第一上传节点存储的分块校验信息,所述第二分块校验信息为下载节点存储的分块校验信息。
在一可选实施例中,可以参考第一实施例的第五阶段的步骤5.3,所述确定第三校验数据的步骤之前,所述方法还可以包括:
将服务器发送的分块校验信息写入新建资源文件中;所述获取第四校验数据的步骤中,所述服务器发送的分块校验信息是从所述新建资源文件中提取的。
在一可选实施例中,可以参考第一实施例的第二阶段的步骤2.1,在向第一上传节点发送获取第一分块校验信息的请求之前,所述方法还包括:
向服务器请求目标资源的资源信息和资源信息对应的上传节点列表;所述资源信息包括如下至少其中之一:资源ID、资源大小、资源的第五校验数据;
此外,可以参考第一实施例的第二阶段的步骤2.5,该方法还可以包括如下步骤:
接收服务器发送的所述资源信息和上传节点列表。
此外,可以参考第一实施例的第三阶段的步骤3.1,从所述上传节点列表中获取所述第一上传节点。
在一可选实施例中,可以参考第一实施例的第四阶段的步骤4.1-4.3,在确认所述第一校验数据和所述第二校验数据是否匹配之后,所述方法还可以包括:
将目标资源拆分为多个资源单元,每个资源单元对应一个下载任务;
获取第二上传节点;
向第二上传节点发送下载任务信息,所述下载任务包括如下至少一者:资源ID、资源校验数据、资源单元的起始位置和数据块大小。
另外,可以参考第一实施例的第四阶段的步骤4.16,所述方法还可以包括:
接收第二上传节点发送的资源单元。
在一可选实施例中,可以参考第一实施例的第五阶段的步骤5.1,在获取第四校验数据的步骤之前,所述方法还包括:
创建新建资源文件;
可以参考第一实施例的第五阶段的步骤5.8,所述确认所述第三校验数据和所述第四校验数据是否匹配步骤之后,所述方法还包括:
当判断为匹配时,将所述第二指定数据块写入所述新建资源文件中。
在一可选实施例中,可以参考第一实施例的第六阶段的步骤6.2-6.4,所述方法还包括:
当所述目标资源下载完成之后,确定所述目标资源的第六校验数据;
当所确定的第六校验数据与服务器发送的资源信息中的第七校验数据匹配时,将所述资源的匹配后的校验数据和分块校验信息写入所述新建资源文件中。
向服务器发送资源发布请求,所述资源发布请求包括如下一者或多者:资源ID、资源大小、目标资源的匹配后的校验数据、分块校验信息、下载节点的信息。
在一可选实施例中,可以参考第一实施例的第四阶段的步骤4.4-4.6,所述向第二上传节点发送下载任务信息的步骤之后,所述方法还包括:
4.4第二上传节点获取所述下载任务信息,所述下载任务信息包括如下一者或多者:资源ID、资源校验数据、资源单元的起始位置和数据块大小;
4.5第二上传节点根据所述下载任务信息中的资源ID在本地查找对应的目标资源;
4.6第二上传节点根据在本地查找到的目标资源,获取目标资源的资源信息,所述资源信息包括如下一者或多者:资源ID、资源大小、资源校验数据、分块校验信息的校验数据、资源存储路径;
另外,可以参考第一实施例的第四阶段的步骤4.9,所述方法还可以包括:
4.9第二上传节点根据所述下载任务信息,从根据所述资源存储路径确定的所述目标资源中确定需要块校验的数据块;
另外,可以参考第一实施例的第四阶段的步骤4.11-4.14,所述方法还可以包括:
4.11第二上传节点确定所上述待校验数据块的校验数据;
4.12第二上传节点从所述目标资源中获取分块校验信息;
4.13第二上传节点从所述分块校验信息中获取所待校验数据块的校验数据;
4.14判断所确定的待校验数据块的校验数据与从所述分块校验信息中获取的校验数据是否匹配。
在一可选实施例中,可以参考第一实施例的第四阶段的步骤4.7和4.8,所述方法还可以包括:所述方法还包括:
4.7判断查找到的目标资源的资源信息中的校验数据和第二上传节点获取到的所述下载任务信息中的校验数据是否匹配;
4.8当判断为匹配时,第二上传节点根据所述资源存储路径打开本地的所述目标资源。
在一可选实施例中,可以参考第一实施例的第四阶段的步骤4.15,所述判断所确定的待校验数据块的校验数据与从所述分块校验信息中获取的校验数据是否匹配的步骤之后,所述方法还包括:
4.15当判断为匹配时,获取所述资源单元并发送至下载节点;
在一可选实施例中,可以参考第一实施例的第二阶段的步骤2.2-2.4,所述方法还包括:
2.2所述服务器接收并解析所述下载节点发送的资源信息和上传节点列表,获取资源ID;
2.3所述服务器根据获取的所述资源ID,从服务器的资源列表中查找对应的资源;
2.4所述服务器将查找到的资源对应的资源信息发送至所述下载节点,所述资源信息包括资源ID、资源大小、资源的校验数据、上传节点列表。
在一实施例中,可以参考第一实施例的第三阶段的步骤3.3,向第一上传节点发送获取第一分块校验信息的请求的步骤之后,所述方法还包括:
3.3所述第一上传节点接收并解析所述下载节点发送的获取第一分块校验信息的请求,所述请求包括资源ID、分块校验信息的校验数据,分块校验信息的大小;
另外,可以参考第一实施例的第三阶段的步骤3.5-3.8,该方法还可以包括:
3.5所述第一上传节点根据所述资源ID从本地内存中存储的资源列表中查找该所述目标资源;
3.6所述第一上传节点从本地获取所述资源ID对应的资源信息;所述资源信息包括如下一者或多者:资源ID、资源大小、资源的校验数据、分块校验信息的校验数据、资源存储的路径;
3.7所述第一上传节点判断查找到的分块校验信息的校验数据与解析出的分块校验信息的校验数据是否匹配;
3.8当判断为匹配时,第一上传节点根据文件存储路径将文件的分块校验信息发送至下载节点。
第三实施例
本发明第三实施例提出一种资源一致性的校验装置,应用于下载系统的下载节点,所述下载系统还包括上传节点和CDN节点。图5所示为该实施例提出的资源一致性的校验装置的方框图。如图5所示,该装置包括如下模块:
第一校验数据确定模块301,用于确定第一校验数据,所述第一校验数据是从CDN节点下载的目标资源的第一指定数据块对应的校验数据;
第二校验数据获取模块302,用于获取第二校验数据,所述第二校验数据是从第一上传节点发送的第一分块校验信息中获取的对应于所述第一指定数据块的校验数据;
第一判断模块303,用于确认所述第一校验数据和所述第二校验数据是否匹配。
本实施例提出的资源一致性的校验装置至少具有如下优点:
在本实施例提出的资源一致性的校验装置中,通过第一次校验数据的匹配确认,确认上传节点中的目标文件的校验数据和CDN节点的校验数据是否一致,避免CDN节点中的目标文件与上传节点中的目标文件不一致,解决现有技术中第二种方案的无法确认CDN节点中的目标文件是否正确的问题。
在可选实施例中,所述装置还可以包括如下模块:
第三校验数据确定模块,用于确定第三校验数据,所述第三校验数据是目标资源的第二指定数据块对应的校验数据;
第四校验数据获取模块,用于获取第四校验数据,所述第四校验数据是从服务器发送的分块校验信息中提取的校验数据;
第二判断模块,用于确认所述第三校验数据和所述第四校验数据是否匹配。
利用上述模块,本发明实施例提出的资源一致性校验装置,通过第二次校验数据的匹配确认,将单个数据块的所携带的校验数据与所确定的校验数据是否一致,防止目标文件被修改却未检测出,确保P2P数据一致性的同时,将数据范围缩小一个数据块,解决了现有技术中第一种方案的问题。
第四实施例
本发明第四实施例提出一种资源一致性的校验装置,图6所示为该实施例提出的资源一致性的校验装置的方框图。如图6所示,该装置可以包括如下模块:
第一校验数据确定模块401,用于确定第一校验数据,所述第一校验数据是从CDN节点下载的目标资源的第一指定数据块对应的校验数据;
第二校验数据获取模块402,用于获取第二校验数据,所述第二校验数据是从第一上传节点发送的第一分块校验信息中获取的对应于所述第一指定数据块的校验数据;
第一判断模块403,用于确认所述第一校验数据和所述第二校验数据是否匹配;
第三校验数据确定模块404,用于确定第三校验数据,所述第三校验数据是目标资源的第二指定数据块对应的校验数据;
第四校验数据获取模块405,用于获取第四校验数据,所述第四校验数据是从服务器发送的分块校验信息中提取的校验数据;
第二判断模块406,用于确认所述第三校验数据和所述第四校验数据是否匹配。
在一可选实施例中,所述装置还包括:
第八校验数据获取模块407,用于所述第二上传节点获取第八校验数据,所述第八校验数据是下载节点传送的目标资源的待校验数据块的校验数据;
第九校验数据确定模块408,用于所述第二上传节点确定第九校验数据,所述第九校验数据是所述第二上传节点从下载节点发送的资源路径中查找的目标资源的待校验数据块对应的校验数据;
第三判断模块409,用于所述第二上传节点判断所述第八数据块与第九数据块是否匹配。
在一实施例中,所述装置还包括:
第一请求模块,用于向服务器请求目标资源的资源信息和资源信息对应的上传节点列表;所述资源信息包括:资源ID、资源大小,资源的校验数据;
第二接收模块,用于接收服务器发送的所述资源信息和上传节点列表。
第一指定模块,用于从所述上传节点列表中获取指定上传节点。
在一实施例中,所述装置还包括:
第一拆分模块,用于将目标资源拆分为多个资源单元,每个资源单元对应一个下载任务;
上传节点获取模块,用于获取第二上传节点;
第二发送模块,用于向第二上传节点发送下载任务信息,所述下载任务包括资源ID、资源校验数据、资源单元的起始位置和数据块大小;
第三接收模块,用于接收第二上传节点发送的资源单元。
在一实施例中,所述装置还包括:
第一写入模块,用于将服务器发送的分块校验信息写入新建资源文件中;第一确定模块,用于当目标资源的单位数据块下载完成后,确定所述单位数据块的校验数据;
提取模块,用于从所述新建资源文件的分块校验信息中提取出所述单位数据块的校验数据;
第二判断模块,用于判断所述提取出的单位数据块的校验数据与确定出的单位数据块的校验数据是否匹配;
在一实施例中,在将服务器发送的分块校验信息写入新建资源文件中的步骤之前,所述装置还包括:
创建模块,用于创建新建资源文件;
第二写入模块,用于当判断为匹配时,将所述单位数据块写入所述新建资源文件中。
在一实施例中,还包括:
第二确定模块,用于当所述目标资源下载完成之后,确定所述目标资源的校验数据;
第三写入模块,用于当所述确定获得的所述校验数据与服务器发送的资源信息中的校验数据匹配时,将所述资源的校验数据和分块校验信息写入所述新建资源文件中。
第二请求模块,用于向服务器发送资源发布请求,所述资源发布请求包括如下一者或多者:资源ID、资源大小、整个目标资源的校验数据、分块校验信息、下载节点的信息。
在一实施例中,所述装置还包括:
下载任务信息获取模块,用于第二上传节点获取所述下载任务信息,所述下载任务信息包括如下一者或多者:资源ID、资源校验数据、资源单元的起始位置和数据块大小;
第一查找模块,用于第二上传节点根据所述下载任务信息中的资源ID在本地查找对应的目标资源;
第一资源信息获取模块,用于第二上传节点根据在本地查找到的目标资源,获取目标资源的资源信息,所述资源信息包括如下一者或多者:资源ID、资源大小、资源校验数据、分块校验信息的校验数据、资源存储路径;
确定模块,用于第二上传节点根据所述下载任务信息,从根据所述资源存储路径确定的所述目标资源中确定需要块校验的数据块;
第三确定模块,用于第二上传节点确定所上述待校验数据块的校验数据;
第四获取模块,用于第二上传节点从所述目标资源中获取分块校验信息;
第五获取模块,用于第二上传节点从所述分块校验信息中获取所待校验数据块的校验数据;
第三判断模块,用于判断所述确定出的待校验数据块的校验数据与从所述分块校验信息中获取的校验数据是否匹配。
在一实施例中,所述装置还包括:
第四判断模块,用于判断查找到的目标资源的资源信息中的校验数据和第二上传节点获取到的所述下载任务信息中的校验数据是否匹配;
开启模块,用于当判断为匹配时,第二上传节点根据所述资源存储路径开启本地的所述目标资源。
在一实施例中,所述装置还包括:
资源单元获取模块,用于当判断为匹配时,获取所述资源单元并发送至下载节点;
在一实施例中,所述装置还包括:
资源ID获取模块,用于接收并解析下载节点发送的资源信息和上传节点列表,获取资源ID;
第二查找模块,用于根据获取的所述资源ID,从服务器的资源列表中查找对应的资源;
第三发送模块,用于将查找到的资源对应的资源信息发送至下载节点,所述资源信息包括资源ID、资源大小、资源的校验数据、上传节点列表。
在一实施例中,所述装置还包括:
第四接收模块,用于第一上传节点接收并解析所述下载节点发送的获取第一分块校验信息的请求,所述请求包括资源ID、分块校验信息的校验数据,分块校验信息的大小;
第三查找模块,用于第一上传节点根据所述资源ID从本地内存中存储的资源列表中查找该所述目标资源;
第二资源信息获取模块,用于第一上传节点从本地获取所述资源ID对应的资源信息;所述资源信息包括如下一者或多者:资源ID、资源大小、资源的校验数据、分块校验信息的校验数据、资源存储的路径;
第五判断模块,用于判断查找到的分块校验信息的校验数据与解析出的分块校验信息的校验数据是否匹配;
下载模块,用于当判断为匹配时,根据文件存储路径将文件的分块校验信息发送至下载节点。
在一实施例中,所述校验数据为MD5值。
综上所述,本实施例提出的资源一致性的校验装置至少具有如下优点:
在本实施例提出的资源一致性的校验装置中,通过第一次校验数据的匹配确认,确认上传节点20中的目标文件的校验数据和CDN节点40的校验数据是否一致,避免CDN节点中的目标文件与上传节点中的目标文件不一致,解决现有技术中第二种方案的无法确认CDN节点中的目标文件是否正确的问题;此外,通过第二次校验数据的匹配确认,将单个数据块的所携带的校验数据与所确定的校验数据是否一致,防止目标文件被修改却未检测出,确保P2P数据一致性的同时,将数据范围缩小一个数据块,解决了现有技术中第一种方案的问题。
除此之外,本实施例提出的资源一致性的校验装置至少还包括如下优点:
在可选实施例中,本发明实施例提出的资源一致性校验装置,综合利用CDN数据确认、上传节点MD5值确认、下载节点校验信息确认、下载节点分块数据校验等维度,多方案相结合,系统性的解决了数据不一致的问题。
本发明实施例提出的资源一致性校验方法,确认CDN数据和P2P数据的一致性的时候,无须校验所有数据,通过动态随机算法,选择一个完整的数据块校验,用较小的资源开销,解决了CDN和P2P数据一致性的问题。
本发明实施例提出的资源一致性校验方法,利用分块数据做校验,检验结果的实时性更高,并且校验失败时,浪费的流量最小。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
图7为本申请一实施例提供的终端设备的硬件结构示意图。如图7所示,该终端设备可以包括输入设备90、处理器91、输出设备92、存储器93和至少一个通信总线94。通信总线94用于实现元件之间的通信连接。存储器93可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器93中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器91例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器91通过有线或无线连接耦合到上述输入设备90和输出设备92。
可选的,上述输入设备90可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备92可以包括显示器、音响等输出设备。
在本实施例中,该终端设备的处理器包括用于执行各设备中数据处理装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图8为本申请另一实施例提供的终端设备的硬件结构示意图。图8是对图7在实现过程中的一个具体的实施例。如图8所示,本实施例的终端设备包括处理器101以及存储器102。
处理器101执行存储器102所存放的计算机程序代码,实现上述实施例中图2至图4的资源一致性的校验方法。
存储器102被配置为存储各种类型的数据以支持在终端设备的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器102可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,处理器101设置在处理组件100中。该终端设备还可以包括:通信组件103,电源组件104,多媒体组件105,音频组件106,输入/输出接口107和/或传感器组件108。终端设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件100通常控制终端设备的整体操作。处理组件100可以包括一个或多个处理器101来执行指令,以完成上述图1至图3方法的全部或部分步骤。此外,处理组件100可以包括一个或多个模块,便于处理组件100和其他组件之间的交互。例如,处理组件100可以包括多媒体模块,以方便多媒体组件105和处理组件100之间的交互。
电源组件104为终端设备的各种组件提供电力。电源组件104可以包括电源管理系统,一个或多个电源,及其他与为终端设备生成、管理和分配电力相关联的组件。
多媒体组件105包括在终端设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件106被配置为输出和/或输入音频信号。例如,音频组件106包括一个麦克风(MIC),当终端设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件103发送。在一些实施例中,音频组件106还包括一个扬声器,用于输出音频信号。
输入/输出接口107为处理组件100和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件108包括一个或多个传感器,用于为终端设备提供各个方面的状态评估。例如,传感器组件108可以检测到终端设备的打开/关闭状态,组件的相对定位,用户与终端设备接触的存在或不存在。传感器组件108可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与终端设备间的距离。在一些实施例中,该传感器组件108还可以包括摄像头等。
通信组件103被配置为便于终端设备和其他设备之间有线或无线方式的通信。终端设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该终端设备中可以包括SIM卡插槽,该SIM卡插槽用于插入SIM卡,使得终端设备可以登录GPRS网络,通过互联网与服务端建立通信。
由上可知,在图8实施例中所涉及的通信组件103、音频组件106以及输入/输出接口107、传感器组件108均可以作为图7实施例中的输入设备的实现方式。
本申请实施例提供了一种终端设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述终端设备执行如本申请实施例中一个或多个所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种资源一致性的校验方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (18)
1.一种资源一致性校验方法,应用于下载系统的下载节点,所述下载系统还包括上传节点和CDN节点;所述方法包括:
确定第一校验数据,所述第一校验数据是从CDN节点下载的目标资源的第一指定数据块对应的校验数据;
获取第二校验数据,所述第二校验数据是从第一上传节点发送的第一分块校验信息中获取的对应于所述第一指定数据块的校验数据;
确认所述第一校验数据和所述第二校验数据是否匹配;
确定第三校验数据,所述第三校验数据是目标资源的第二指定数据块对应的校验数据;
获取第四校验数据,所述第四校验数据是从服务器发送的分块校验信息中提取的校验数据;
确认所述第三校验数据和所述第四校验数据是否匹配。
2.根据权利要求1所述的方法,其特征在于,所述获取第二校验数据的步骤之前,所述方法还包括:
向第一上传节点发送获取第一分块校验信息的请求,所述请求包括:目标资源的资源ID、目标资源的第二分块校验信息、第二分块校验信息的大小;
其中,所述第一分块校验信息为所述第一上传节点存储的分块校验信息,所述第二分块校验信息为下载节点存储的分块校验信息。
3.根据权利要求1所述的方法,其特征在于,所述确定第三校验数据的步骤之前,所述方法还包括:
将服务器发送的分块校验信息写入新建资源文件中;
所述获取第四校验数据的步骤中,所述服务器发送的分块校验信息是从所述新建资源文件中提取的。
4.根据权利要求2所述的方法,其特征在于,在向第一上传节点发送获取第一分块校验信息的请求之前,所述方法还包括:
向服务器请求目标资源的资源信息和资源信息对应的上传节点列表;所述资源信息包括如下至少其中之一:资源ID、资源大小、资源的第五校验数据;
接收服务器发送的所述资源信息和上传节点列表;
从所述上传节点列表中获取所述第一上传节点。
5.根据权利要求1所述的方法,其特征在于,在确认所述第一校验数据和所述第二校验数据是否匹配之后,所述方法还包括:
将目标资源拆分为多个资源单元,每个资源单元对应一个下载任务;
获取第二上传节点;
向第二上传节点发送下载任务信息,所述下载任务包括如下至少一者:资源ID、资源校验数据、资源单元的起始位置和数据块大小;
接收第二上传节点发送的资源单元。
6.根据权利要求1所述的方法,其特征在于,在获取第四校验数据的步骤之前,所述方法还包括:
创建新建资源文件;
所述确认所述第三校验数据和所述第四校验数据是否匹配步骤之后,所述方法还包括:
当判断为匹配时,将所述第二指定数据块写入所述新建资源文件中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述目标资源下载完成之后,确定所述目标资源的第六校验数据;
当所述确定获得的所述第六校验数据与服务器发送的资源信息中的第七校验数据匹配时,将所述资源的匹配后的校验数据和分块校验信息写入所述新建资源文件中;
向服务器发送资源发布请求,所述资源发布请求包括如下一者或多者:资源ID、资源大小、目标资源的匹配后的校验数据、分块校验信息、下载节点的信息。
8.根据权利要求5所述的方法,其特征在于,所述向第二上传节点发送下载任务信息的步骤之后,所述方法还包括:
所述第二上传节点获取第八校验数据,所述第八校验数据是下载节点传送的目标资源的待校验数据块的校验数据;
所述第二上传节点确定第九校验数据,所述第九校验数据是所述第二上传节点从下载节点发送的资源路径中查找的目标资源的待校验数据块对应的校验数据;
所述第二上传节点判断第八数据块与第九数据块是否匹配。
9.根据权利要求8所述的方法,其特征在于,所述第二上传节点获取第八校验数据的步骤之前,所述方法还包括:
第二上传节点获取所述下载任务信息,所述下载任务信息包括如下一者或多者:资源ID、资源校验数据、资源单元的起始位置和数据块大小;
第二上传节点根据所述下载任务信息中的资源ID在本地查找对应的目标资源;
所述第二上传节点获取第八校验数据的步骤之后,所述方法还包括:
第二上传节点根据所述下载任务信息,从根据所述资源存储路径确定的所述目标资源中确定需要块校验的数据块;
第二上传节点确定所上述待校验数据块的校验数据;
第二上传节点从所述目标资源中获取分块校验信息。
10.根据权利要求9所述的方法,其特征在于,所述第二上传节点根据所述下载任务信息,从根据所述资源存储路径确定的所述目标资源中确定需要块校验的数据块之前,所述方法还包括:
判断查找到的目标资源的资源信息中的校验数据和第二上传节点获取到的所述下载任务信息中的校验数据是否匹配;
当判断为匹配时,第二上传节点根据所述资源存储路径打开本地的所述目标资源。
11.根据权利要求9或10所述的方法,其特征在于,所述第二上传节点判断所述第八数据块与第九数据块是否匹配步骤之后,所述方法还包括:
当判断为匹配时,获取所述资源单元并发送至下载节点。
12.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述服务器接收并解析所述下载节点发送的资源信息和上传节点列表,获取资源ID;
所述服务器根据获取的所述资源ID,从服务器的资源列表中查找对应的资源;
所述服务器将查找到的资源对应的资源信息发送至所述下载节点,所述资源信息包括资源ID、资源大小、资源的校验数据、上传节点列表。
13.根据权利要求2所述的方法,其特征在于,向第一上传节点发送获取第一分块校验信息的请求的步骤之后,所述方法还包括:
所述第一上传节点接收并解析所述下载节点发送的获取第一分块校验信息的请求,所述请求包括资源ID、分块校验信息的校验数据,分块校验信息的大小;
所述第一上传节点根据所述资源ID从本地内存中存储的资源列表中查找该所述目标资源;
所述第一上传节点从本地获取所述资源ID对应的资源信息;所述资源信息包括如下一者或多者:资源ID、资源大小、资源的校验数据、分块校验信息的校验数据、资源存储的路径;
所述第一上传节点判断查找到的分块校验信息的校验数据与解析出的分块校验信息的校验数据是否匹配;
当判断为匹配时,第一上传节点根据文件存储路径将文件的分块校验信息发送至下载节点。
14.根据权利要求1所述的方法,其特征在于,所述第一校验数据、所上述第二校验数据、所述第三校验数据和所述第四校验数据均为MD5值。
15.一种资源一致性校验装置,包括:
第一校验数据确定模块,用于确定第一校验数据,所述第一校验数据是从CDN节点下载的目标资源的第一指定数据块对应的校验数据;
第二校验数据获取模块,用于获取第二校验数据,所述第二校验数据是从第一上传节点发送的第一分块校验信息中获取的对应于所述第一指定数据块的校验数据;
第一判断模块,用于确认所述第一校验数据和所述第二校验数据是否匹配;
第三校验数据确定模块,用于确定第三校验数据,所述第三校验数据是目标资源的第二指定数据块对应的校验数据;
第四校验数据获取模块,用于获取第四校验数据,所述第四校验数据是从服务器发送的分块校验信息中提取的校验数据;
第二判断模块,用于确认所述第三校验数据和所述第四校验数据是否匹配。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第八校验数据获取模块,用于所述第二上传节点获取第八校验数据,所述第八校验数据是下载节点传送的目标资源的待校验数据块的校验数据;
第九校验数据确定模块,用于所述第二上传节点确定第九校验数据,所述第九校验数据是所述第二上传节点从下载节点发送的资源路径中查找的目标资源的待校验数据块对应的校验数据;
第三判断模块,用于所述第二上传节点判断第八数据块与第九数据块是否匹配。
17.一种终端设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述终端设备执行如权利要求1-14中一个或多个所述的方法。
18.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得处理器执行如权利要求1-14中一个或多个所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811521169.6A CN111314403B (zh) | 2018-12-12 | 2018-12-12 | 资源一致性的校验方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811521169.6A CN111314403B (zh) | 2018-12-12 | 2018-12-12 | 资源一致性的校验方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111314403A CN111314403A (zh) | 2020-06-19 |
CN111314403B true CN111314403B (zh) | 2022-09-02 |
Family
ID=71161323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811521169.6A Active CN111314403B (zh) | 2018-12-12 | 2018-12-12 | 资源一致性的校验方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314403B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398659A (zh) * | 2021-10-28 | 2022-04-26 | 上海哔哩哔哩科技有限公司 | 一种资源校验方法、装置、设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100473008C (zh) * | 2006-06-15 | 2009-03-25 | 腾讯科技(深圳)有限公司 | 单点对多节点并发下载系统和方法 |
CN103269352A (zh) * | 2012-12-07 | 2013-08-28 | 北京奇虎科技有限公司 | 点对点p2p文件下载方法及装置 |
CN104283903B (zh) * | 2013-07-01 | 2019-04-12 | 深圳市腾讯计算机系统有限公司 | 文件的下载方法及装置 |
CN104283933B (zh) * | 2013-07-12 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 下载数据的方法、客户端及系统 |
CN103761162B (zh) * | 2014-01-11 | 2016-12-07 | 深圳清华大学研究院 | 分布式文件系统的数据备份方法 |
WO2015143596A1 (zh) * | 2014-03-24 | 2015-10-01 | 华为技术有限公司 | 文件下载方法、装置和系统 |
CN105208059B (zh) * | 2014-06-19 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 一种内容分发方法、终端、服务器,及系统 |
CN107105037B (zh) * | 2017-04-25 | 2020-06-05 | 上海幻电信息科技有限公司 | 一种基于文件校验的分布式视频cdn资源管理系统及方法 |
CN108282543A (zh) * | 2018-03-05 | 2018-07-13 | 北京云端智度科技有限公司 | 一种cdn节点内容校验方法和系统 |
CN108683668B (zh) * | 2018-05-18 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 内容分发网络中的资源校验方法、装置、存储介质及设备 |
-
2018
- 2018-12-12 CN CN201811521169.6A patent/CN111314403B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111314403A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11032140B2 (en) | Using a template to update a stack of resources | |
US10503493B2 (en) | Distributed versioning of applications using cloud-based systems | |
CN108037946B (zh) | 一种应用程序热更新的方法、系统及服务器 | |
US8812451B2 (en) | Programming model for synchronizing browser caches across devices and web services | |
CN110309161B (zh) | 一种数据同步方法、装置及服务器 | |
US20140298034A1 (en) | Data authenticity assurance method, management computer, and storage medium | |
US7526530B2 (en) | System and method for cacheing web files | |
US9589153B2 (en) | Securing integrity and consistency of a cloud storage service with efficient client operations | |
WO2014106489A1 (zh) | 浏览器崩溃信息的处理方法及系统 | |
CN107528718B (zh) | 获取资源的方法、装置和系统 | |
CN105302920A (zh) | 一种云存储数据的优化管理方法和系统 | |
CN111460394A (zh) | 一种版权文件的验证方法、装置及计算机可读存储介质 | |
US9742884B2 (en) | Retry mechanism for data loading from on-premise datasource to cloud | |
CN111314403B (zh) | 资源一致性的校验方法和装置 | |
CN114553858A (zh) | 一种资源预下载的方法、装置以及设备 | |
CN109672534B (zh) | 网络资源的处理方法、装置、存储介质和电子装置 | |
CN111722994A (zh) | 一种任务请求的响应方法及设备 | |
CN109660496A (zh) | 校验信息的获取、资源校验和发布方法、装置及电子设备 | |
TWI517045B (zh) | JAVA cluster application system code loading and upgrading devices and methods | |
CN115878138A (zh) | 应用预下载方法、装置、计算机、存储介质 | |
US11366796B2 (en) | Systems and methods for compressing keys in hierarchical data structures | |
CN111782721B (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN112738157A (zh) | 一种文件上传方法、系统及设备 | |
CN111221556A (zh) | 一种远程升级rsu镜像方法及系统 | |
CN114721699B (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 |