一种对数据块进行校验的方法和装置的制作方法

文档序号:7716149阅读:145来源:国知局
专利名称:一种对数据块进行校验的方法和装置的制作方法
技术领域
本发明涉及对分布式网络中传输的数据块进行校验的方法和装置,尤其涉及在基 于点对点协议网络中传输的数据块的校验方法和装置。
背景技术
随着互联网技术的迅速发展,人们越来越多地通过互联网进行数据的传播、交换 和共享。然而,由于在网络中传输的数据可能受到各种干扰的影响。事实证明,在网络上传 输未经验证的数据或仅经过简单验证的数据具有很高风险。例如,用户设备之间传输的数 据块很容易受到噪声干扰、介质错误以及硬件错误等非人为因素的影响而出现错误,也很 容易被第三方截取,从而引发数据被篡改、注入病毒等一系列破坏。特别是在基于P2P协议 的视频点播系统中,由于数据是分散传播的,当错误的数据扩散到整个系统中时,系统中会 出现大量的错误数据,影响用户的正常观看,而降低数据传输的有效性。在现有的基于点对点(P2P)协议的视频点播系统中,服务器端首先基于确定算法 对数据块生成该数据块在服务器端的校验信息。当用户设备请求并成功获取该数据块后, 基于同样的确定算法在用户设备端生成该数据块的校验信息,并将该数据块用户设备端的 校验信息与服务器端的校验信息相比较。本领域技术人员可以理解,如果服务器端和用户 设备端的校验信息相同,则认为用户设备获取的数据块正确,反之,则认为该数据块错误。 这种校验机制有效的提高了对数据块传输中错误的鉴别,保障了网络传输的安全性。进一步的,本领域技术人员可以理解,使用上述机制的前提在于该数据块需要首 先被存储在分布式网络的服务器端。基于上述条件,服务器才可以进一步生成数据块的加 密信息。但是,在服务器端存储大量的数据块,无疑会占用很多硬件资源。尤其对于提供视 频服务的机构来说,电影电视剧都需要占用大量存储空间。此外,将来自第三方的大量数据 块传输至网络服务器端也需要占用网络资源,例如带宽。对于如何解决上述问题,在无需将 数据块下载到服务器的情况下有效生成数据块的校验信息,目前尚无成熟可行的方案。

发明内容
为了解决现有技术存在的上述问题,特提出本发明。根据本发明的第一方面,提供了一种用户设备向分布式网络中的服务器端提供数 据块的校验信息的方法,该方法包括从独立于所述分布式网络的第三方获取所述数据块; 基于预定算法生成所述数据块的校验信息;将所述数据块的校验信息发送至所述服务器 端,所述数据块的校验信息用于作为所述数据块的服务器端校验信息。根据本发明的第二方面,提供了一种在分布式网络的服务器端通过数据块校验信 息进行辅助校验的方法,该方法包括接收来自用户设备的数据块的用户端校验信息,所述 数据块对应确定的第三方下载地址,所述用户端校验信息由用户设备基于预定算法生成, 所述第三方独立于所述分布式网络;建立所述数据块的索引信息,将所述数据块的所述用 户端校验信息作为所述数据块的服务器端校验信息,所述索引信息包括所述数据块对应的所述第三方下载地址和所述服务器端校验信息。根据本发明的第三方面,提供了一种用户设备向分布式网络中的服务器端提供数 据块的校验信息的提供装置,该提供装置包括获取装置、生成装置和第一发送装置,其中, 所述获取装置用于从独立于所述分布式网络的第三方获取所述数据块;所述生成装置用 于基于预定算法生成所述数据块的校验信息;所述第一发送装置用于将所述数据块的校验 信息发送至所述服务器端,所述数据块的校验信息用于作为所述数据块的服务器端校验信 肩、ο根据本发明的第四方面,提供了一种用户设备向分布式网络中的服务器端提供数 据块的校验信息的提供装置,该提供装置包括获取装置、生成装置和第一发送装置,所述获 取装置用于从独立于所述分布式网络的第三方获取所述数据块;所述生成装置用于基于预 定算法生成所述数据块的校验信息;所述第一发送装置用于将所述数据块的校验信息发送 至所述服务器端,所述数据块的校验信息用于作为所述数据块的服务器端校验信息。综上所述,在本发明的技术方案中,从第三方下载数据块的用户设备负责对下载 到的数据块进行校验,生成校验信息,再将该校验信息上传给服务器作为服务器端的校验 信息。本领域技术人员理解,在本发明的技术方案中,服务器端只需存储从第三方下载到的 数据块的相关信息,而无须留出大量存储空间存储该数据块,即可以使得该数据块在分布 式网络中正常传输。因此,通过使用本发明提供的方法和装置可以有效地节省存储空间,同 时节约网络资源,提高系统效率。


通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它 特征、目的和优点将会变得更明显图1为根据本发明的一个具体实施方式
的分布式网络和第三方的结构示意图;图2为根据本发明的一个具体实施方式
的提供数据块校验信息的方法流程图;图3为根据本发明的一个具体实施方式
的生成数据块的校验信息的方法流程图;图4为根据本发明的一个具体实施方式
的提供数据块校验信息的提供装置的框 图;图5为根据本发明的一个具体实施方式
的通过数据块校验信息进行辅助校验的 辅助装置的框图。
具体实施例方式以下参照附图对本发明作进一步地详细说明。应当理解,本发明提供了一种对在 网络中对来自第三方的数据块进行校验的机制,该机制尤其适用于基于点对点协议(P2P) 协议的网络。此外,本发明中的数据块可以是音/视频文件、文本、图片等,也可以是文件或 者文件分片。此外还需要说明的是,本文中提及的用户设备可以是各种移动终端(例如手 机、个人数字助理(PDA)、笔记本电脑等)或者是固定终端(例如台式计算机等)。以下结合附图对本发明的具体实施例进行描述。首先,结合本发明第一方面和第二方面的实施例,对本发明技术方案的方法部分 进行详细描述。
图1为根据本发明的一个具体实施方式
的网络结构示意图。如图1所示,服务器 svl和第一用户设备pi、第二用户设备p2、第三用户设备p3和第四用户设备p4构成了一个 简化的P2P网络。其中,各个用户设备与分别服务器svl相连,也与该网络中的其它用户设 备相连。此外,第一用户设备Pl还与第三方下载源tl相连。第三方指的是位于该P2P网 络之外的,独立的下载源。换而言之,第一用户设备Pl可以从网络中的服务器svl或其它 用户设备获取数据块,或者进行信息交互,也可以从第三方下载源tl获取数据块,与第三 方下载源tl进行信息交互。图2为根据本发明的一个具体实施方式
的提供数据块校验信息的方法流程图。以 下根据图2并结合图1对第一用户设备pi向服务器端提供数据块的校验信息的方法,以及 服务器端通过数据块校验信息进行辅助校验的方法进行详细说明。图1中的第一用户设备pi需要下载数据块A,而在其所在的P2P网络中不提供数 据块A的下载。首先,在步骤Sl中,第一用户设备Pl从独立于P2P网络的第三方tl获取数据块 A。其中,第三方下载源tl不处在第一用户设备pi、第二用户设备p2、第三用户设备p3和 第四用户设备P4和服务器svl构成的P2P网络中,第三方下载源tl与第一用户设备pi相 连。接着,在步骤S2中,第一用户设备pi基于预定算法生成数据块A的校验信息。典型地,第一用户设备Pl可以使用加密算法作为预定算法生成校验信息。典型 的,该预定算法包括但不限于MD5算法(Message-Digest Algorithm 5,信息-摘要算法), CRC (Cyclical Redundancy Check,循环冗余码校验),SHA (Secure Hash Algorithm,安全 散列算法)和Hash (哈希算法)。在本实施例中,不失一般性地采用MD5算法,MD5算法的 核心在于能够将任意长度的字符串经过一系列演算,从而使其变换成一个128比特的长整 数,其可以实现即使知道源程序和算法描述,也无法将一个MD5值还原成原始的字符串。优选的,该预定算法的规则可以是P2P网络的服务器端通知第一用户设备Pl的。 同时,服务器端也将该预定算法通知其它需要下载数据块A的用户设备。可以理解,只有基 于同样的预定算法在用户设备端生成校验信息,才能保证通过用户设备端和服务器端的校 验信息比对判断数据块A的下载是否正确。进一步需要说明的是,第一用户设备pi生成的数据块A的校验信息可以包括数据 块A每个数据块文件分片的校验信息。图3为根据本发明的一个具体实施方式
的生成数据 块的校验信息的方法流程图。以下结合图3对生成数据块分片的校验信息的流程进行详细 描述。在步骤S21中,第一用户设备pi将步骤Sl中下载到的数据块A划分为多个数据 块分片,即分片s0,si, s2,...,sN0本领域的技术人员能够理解,这种分片的思路是应用 P2P技术的前提,通过将各个数据块分片提供给P2P网络中的各个节点,加速了用户设备下 载影片的速度,同时大大减轻了网络服务器的负担。至于各个片段的实际大小,可以根据网 络和影片的实际情况确定。其具体分片手段为本领域中的成熟技术手段,此处不再赘述。在步骤S22中,第一用户设备Pl对分片s0,si, s2,. . .,sN分别生成校验值。优 选的,其中每个数据块分片的校验值是唯一的。以使用MD5算法获得分片sO的校验信息为例,首先,对分片sO进行初始分组处理,每个分组通常为512位,接着分别再将每个分组进一步划分为16个32位的分组。然后,对分组后的子分组变量进行“填充”,使其字节长度对512求余的结果等于 448(即N*512+448,N为一个正整数),具体地,在该分组数据块的最后位尾部填充一个“1” 和多个“0”直至满足上述条件,之后在该结果后面添加一个以64位二进制表示的填充前信 息长度,此时的子分组数据块的字节长度等于N*512+448+64 = (N+l)*512。最后,设定四个32位的被称为链接变量(Chaining Variable)的整数参数A、B、 C、D,并对“填充”后的子分组变量进行四轮循环计算(共64步)。具体地,首先将四个链接变量复制到另外四个变量中a = A,b = B,c = C,d = D0然后,将四个变量中的任意三个变量做一次非线形函数运算(假设所述非线形函 数分别为F(x,y,z)、G(x,y,z)、H(x,y,z)和I (x,y,z)),然后将所得结果加上第四个变
量、一个子分组(假设Mj表示第j个子分组,j = 0,1......15)和一个随机常数(假设
所述随机常数为ti,其中,ti在每步运算中的值不同,不失一般性地,在第i步中,ti是 4294967296 Xabs (sin (i))的整数部分),再将所得叠加值向右移动不定位(假设所述不定 位为s,其中,s在每步运算中的值不同),并加上上述四个变量其中之一,用所得换算值覆 盖所述四个变量其中之一。假设FF(a,b,C,d,Mj,s,ti)表示£1 =卜+((£1+尔03,(3,(1)+11]_+衍) << s, GG(a, b, c, d, Mj, s, ti) ^^ a = b+((a+ (G(b, c, d)+Mj+ti) << s, HH(a, b, c, d, Mj, s, ti) ^7^ a = b+((a+ (H(b, c, d)+Mj+ti) << s, II (a, b, c, d, Mj, s, ti) ^7^ a = b+((a+(I(b, c, d)+Mj+ti) << s,则四轮循环计算具体如下第一轮:FF(a, b, c, d, MO, s, ti) ;FF(d, a, b, c, Ml, s, ti) ;FF(c, d, a, b, M2, s, ti) ;FF(b, c, d, a,M3, s, ti) ;FF(a,b, c, d,M4, s, ti) ;FF(d, a,b, c,M5, s, ti) ;FF(c, d, a,
b,M6, s, ti) ;FF(b, c, d, a, M7, s, ti) ;FF(a, b, c, d, M8, s, ti) ;FF(d, a, b, c, M9, s, ti); FF(c, d, a, b, M10, s, ti) ;FF(b, c, d, a, Mil, s, ti) ;FF(a, b, c, d, M12, s, ti) ;FF(d, a, b,
c,M13, s, ti) ;FF(c, d, a, b, M14, s, ti) ;FF(b, c, d, a, M15, s, ti)。第二轮:GG(a,b, c, d, Ml, s, ti) ;GG(d, a, b, c, M6, s, ti) ;GG(c, d, a, b, Mil, s, ti) ;GG(b, c, d, a, MO, s, ti) ;GG(a, b, c, d, M5, s, ti) ;GG(d, a, b, c, M10, s, ti) ;GG(c, d,
a,b, M15, s, ti) ;GG(b, c, d, a, M4, s, ti) ;GG(a, b, c, d, M9, s, ti) ;GG(d, a, b, c, M14, s, ti) ;GG(c, d, a, b, M3, s, ti) ;GG(b, c, d, a, M8, s, ti) ;GG(a, b, c, d, M13, s, ti) ;GG(d, a,
b,c, M2, s, ti) ;GG(c, d, a, b, M7, s, ti) ;GG(b, c, d, a, M12, s, ti)。第三轮:HH(a,b, c, d, M5, s, ti) ;HH(d, a, b, c, M8, s, ti) ;HH(c, d, a, b, Mil, s, ti) ;HH(b, c, d, a, M14, s, ti) ;HH(a, b, c, d, Ml, s, ti) ;HH(d, a, b, c, M4, s, ti) ;HH(c, d, a, b, M7, s, ti) ;HH(b, c, d, a, M10, s, ti) ;HH(a, b, c, d, M13, s, ti) ;HH(d, a, b, c, M0, s, ti) ;HH(c, d, a, b, M3, s, ti) ;HH(b, c, d, a, M6, s, ti 5) ;HH(a, b, c, d, M9, s, ti) ;HH(d, a, b, c, M12, s, ti) ;HH(c, d, a, b, M15, s, ti) ;HH(b, c, d, a, M2, s, ti)。:II (a, b, c, d, M0, s, ti) ;II (d, a, b, c, M7, s, ti) ;II (c, d, a, b, M14, s, ti) ;II (b, c, d, a, M5, s, ti) ;II (a, b, c, d, M12, s, ti) ;II (d, a, b, c, M3, s, ti) ;II (c, d,
a,b, M10, s, ti) ;II (b, c, d, a, Ml, s, ti) ;II (a, b, c, d, M8, s, ti) ;II (d, a, b, c, M15, s, ti) ;II (c,d, a, b, M6, s, ti) ;II (b, c, d, a, M13, s, ti) ;II (a, b, c, d, M4, s, ti) ;II (d, a,
b,c, Mil, s, ti) ;II (c, d, a, b, M2, s, ti) ;II (b, c, d, a, M9, s, ti)。
最后,将所述四个链接变量A、B、C、D分别加上四个变量a、b、c、d,并继续用下一 分组数据块继续进行上述循环计算,最后输出的四个链接变量的级联即为分片s0的MD5值
keyc0O需要说明的是,在本实施例中所采用的MD5算法可以被本领域技术人员采用任何 已知的算法规则进行替换,其并不能用于限定本发明的保护范围。 在完成了对分片sO进行加密处理之后,重复执行上述MD5算法步骤3,以对其余分 片sl-sN分别进行加密处理,从而得到各个数据块分片的MD5值,即各个数据块分片的校验 信息 keycl 至 keycN。可替换地,也可以采用CRC算法或SHA算法或Hash算法对所述各个数据块分片进 行加密处理,这样得到的CRC值或SHA值或Hash值也可以被用作所述各个数据块分片的校
验信息。以上对数据块的校验信息包括各个数据块分片的校验信息的情形进行了详细描 述。本领域技术人员应当知晓,在P2P网络传输中往往以文件分片为单位进行下载,以数据 块分片为单位生成校验信息的优势在于,可以在获取每个分片后进行校验,如果出现错误, 只需要对该数据块分片进行处理,例如重新下载正确的分片,而不会影响整个数据块的正 常下载使用。优选的,步骤S22中,还生成了数据块A的相关信息,所属相关信息包括数据块A 的长度、数据块分片的个数,每个数据块分片的长度中的至少一项。本领域技术人员应当理 解,上述示例并不对相关信息构成限定。上述相关信息应当是从数据块A中生成提取,可以 在传输中起到基本的校验作用的信息。本领域技术人员同时也应该理解,可选的,在步骤S2中,还可以基于预定算法对 数据块A整体进行加密,生成数据块A的总校验信息key。t。tal。优选的,生成总校验信息的 keyctotal的预定算法可以与生成数据块分片的校验信息的算法相同,此处不再赘述。可选 的,生成总校验信息的key。t。tal的预定算法也可以与生成数据块分片的校验信息的算法相 同不同。需要注意的是,在其它请求用户设备中生成校验信息的预定算法,应当与第一用户 设备Pl中的预定算法相对应才能起到校验下载数据块的目的。举例来说,数据块A在第一 用户设备Pl中生成的总校验信息key。t。tal的生成预定算法必须与请求用户设备中总校验 信息keyrt。tal的生成预定算法相同。可选的,数据块A的校验信息可以同时包括总校验信息key。t。tal与各个数据块分 片的校验信息key。。至key。N。在步骤S3中,第一用户设备pi将数据块A的校验信息发送至服务器端。其中,数 据块A的校验信息用于作为数据块A的服务器端校验信息。如果步骤b中生成了数据块的 其他相关信息,则将上述相关信息也发送至服务器端。优选的,第一用户设备pi向服务器端发送数据块A的第三方下载源tl的地址。 本领域技术人员可以理解,如果P2P网络中原本不提供数据块A的下载,则可以通过服务 器svl将该第三方下载源tl的地址发送给需要下载数据块A的请求用户设备,从而实现使 P2P网络中用户设备从第三方下载源tl以及网络中已保存数据块A的用户设备获取该数据 块,而无需在服务器svl自身存储该数据块。在步骤S4中,服务器svl接收来自第一用户设备Pl的数据块A的校验信息,以及数据块A对应的第三方下载源tl的地址。根据具体实施情况的不同,数据块A的校验信息 key。可以包括总校验信息key。t。tal和/或各个数据块分片的校验信息key。。至key。N。如果 步骤S2中同时生成了数据块A的相关信息,则服务器svl还接收来自第一用户设备pi的 相关信息。该相关信息包括数据块A的长度,数据块分片的个数,和每个数据块分片的长度 中的至少一项。在步骤S5中,服务器svl建立数据块A的索引信息,将数据块A的用户端校验信 息key。作为服务器端的校验信息key”该索引信息包括数据块A对应的第三方下载源tl 的地址以及服务器端的校验信息keyp应当理解,在服务器svl建立数据块A的索引信息 的目的在于,当P2P网络中的请求用户设备请求进行数据块A的相关操作,例如下载数据块 A时,服务器svl能够向该请求用户设备提供该操作所必要的校验信息,及时检测出下载过 程中文件出错,避免错误扩散。优选的,当网络中作为种子的存储有数据块A的用户设备数 量不足时,服务器svl也可以提供数据块A的第三方下载源tl的地址,以使请求用户设备 直接从第三方下载源tl下载数据块A,提高下载效率。因此,对应请求用户设备请求下载数据块A的具体实施例,步骤S5后还进一步有 步骤S6。在步骤S6中,服务器svl将数据块A的索引信息发送至请求用户设备。索引信息 的发送可能基于请求用户设备的请求消息(例如,用户设备请求收看某电视剧),也可能由 服务器svl主动推送(服务器推送某广告)。请求用户设备通过索引信息得到数据块A的 校验信息。在下载得到数据块A’后,请求用户设备可以基于与第一用户设备pi对应的相 同算法计算自身下载得到的数据块A’的校验信息keyp,如果用户端校验信息keyp与服务 器端的校验信息ke^相同,则认为下载到的数据块A’与数据块A相同,下载正确,反之,则 认为不同,进入下一步后续处理。以下结合本发明第三方面和第四方面的实施例,对本发明技术方案的装置部分进 行详细描述。图1为根据本发明的一个具体实施方式
的网络结构示意图。其具体构成与上文实 施例中相同,此处不再赘述。图4为根据本发明的一个具体实施方式
的提供数据块校验信息的提供装置的框 图。图5为根据本发明的一个具体实施方式
的通过数据块校验信息进行辅助校验的辅助装 置的框图。以下根据图4和图5并结合图1对第一用户设备pi向服务器端提供数据块的 校验信息的提供装置,以及服务器端通过数据块校验信息进行辅助校验的辅助装置进行详 细说明。其中,提供装置1位于第一用户设备P 1中,包括获取装置10、生成装置11,和第 一发送装置12。辅助装置2位于网络的服务器端,其包括接收装置20和信息建立装置21。图1中的第一用户设备pi需要下载数据块A,而在其所在的P2P网络中不提供数 据块A的下载。首先,第一用户设备ρ 1中的获取装置10从独立于P2P网络的第三方下载源tl获 取数据块A。其中,第三方下载源tl不处在第一用户设备pi至第四用户设备和服务器svl 构成的P2P网络中,第三方下载源tl与第一用户设备pi相连。接着,第一用户设备pi通过生成装置11基于预定算法生成数据块A的校验信息。典型地,生成装置11可以使用加密算法作为预定算法生成校验信息。典型的,该预定算法包括但不限于MD5算法(Message-Digest Algorithm 5,信息-摘要算法), CRC (Cyclical Redundancy Check,循环冗余码校验),SHA (Secure Hash Algorithm,安全 散列算法)和Hash (哈希算法)。在本实施例中,不失一般性地采用MD5算法,MD5算法的 核心在于能够将任意长度的字符串经过一系列演算,从而使其变换成一个128比特的长整 数,其可以实现即使知道源程序和算法描述,也无法将一个MD5值还原成原始的字符串。优选的,该预定算法的规则可以是P2P网络的服务器端通知第一用户设备pi的。 同时,服务器端也将该预定算法通知其它需要下载数据块A的用户设备。可以理解,只有基 于同样的预定算法在用户设备端生成校验信息,才能保证通过用户设备端和服务器端的校 验信息比对判断数据块A的下载是否正确。进一步需要说明的是,生成装置11生成的数据块A的校验信息可以包括数据块A 每个数据块文件分片的校验信息。优选的,生成装置11还包括分片装置110和分片校验装 置 111。分片装置110将下载到的数据块A划分为多个数据块分片,即分片sO,sl,s2,..., sN0本领域的技术人员能够理解,这种分片的思路是应用P2P技术的前提,通过将各个数据 块分片提供给P2P网络中的各个节点,加速了用户设备下载影片的速度,同时大大减轻了 网络服务器的负担。至于各个片段的实际大小,可以根据网络和影片的实际情况确定。其 具体分片手段为本领域中的成熟技术手段,此处不再赘述。分片校验装置111对分片sO,sl, s2, .... , sN分别生成校验值。优选的,其中每 个数据块分片的校验值是唯一的。以使用MD5算法获得分片sO的校验信息为例,首先,对分片sO进行初始分组处 理,每个分组通常为512位,接着分别再将每个分组进一步划分为16个32位的分组。然后,对分组后的子分组变量进行“填充”,使其字节长度对512求余的结果等于 448(即N*512+448,N为一个正整数),具体地,在该分组数据块的最后位尾部填充一个“1” 和多个“0”直至满足上述条件,之后在该结果后面添加一个以64位二进制表示的填充前信 息长度,此时的子分组数据块的字节长度等于N*512+448+64 = (N+l)*512。最后,设定四个32位的被称为链接变量(Chaining Variable)的整数参数A、B、 C、D,并对“填充”后的子分组变量进行四轮循环计算(共64步)。具体地,首先将四个链接变量复制到另外四个变量中a = A,b = B,c = C,d = D0然后,将四个变量中的任意三个变量做一次非线形函数运算(假设所述非线形函 数分别为F(x,y,ζ)、G(x,y,ζ)、H(χ, y,ζ)和I (x,y,ζ)),然后将所得结果加上第四个变
量、一个子分组(假设Mj表示第j个子分组,j = 0,1......15)和一个随机常数(假设
所述随机常数为ti,其中,ti在每步运算中的值不同,不失一般性地,在第i步中,ti是 4294967296 Xabs (sin (i))的整数部分),再将所得叠加值向右移动不定位(假设所述不定 位为s,其中,s在每步运算中的值不同),并加上上述四个变量其中之一,用所得换算值覆 盖所述四个变量其中之一。假设 FF (a,b,c,d,M j,s,t i)表示 a = b+ ((a+ (F (b,c,d) +M j+t i) << s, GG(a, b, c, d,Mj,s, ti) ^^ a = b+((a+ (G(b, c, d)+Mj+ti) << s, HH(a, b, c, d, Mj, s, ti) ^7^ a = b+((a+ (H(b, c, d)+Mj+ti) << s, II (a, b, c, d, Mj, s, ti) ^7^ a = b+((a+(I(b, c, d)+Mj+ti) << s,则四轮循环计算具体如下
H—:FF(a, b, c, d, MO, s, ti) ;FF(d, a, b, c, Ml, s, ti) ;FF(c, d, a, b, M2, s, ti) ;FF(b, c, d, a,M3, s, ti) ;FF(a,b, c, d,M4, s, ti) ;FF(d, a,b, c,M5, s, ti) ;FF(c, d, a,
b,M6, s, ti) ;FF(b, c, d, a, M7, s, ti) ;FF(a, b, c, d, M8, s, ti) ;FF(d, a, b, c, M9, s, ti); FF(c, d, a, b, MlO, s, ti) ;FF(b, c, d, a, Mil, s, ti) ;FF(a, b, c, d, M12, s, ti) ;FF(d, a, b,
c,M13, s, ti) ;FF(c, d, a, b, M14, s, ti) ;FF(b, c, d, a, M15, s, ti)。第二轮:GG(a,b, c, d, Ml, s, ti) ;GG(d, a, b, c, M6, s, ti) ;GG(c, d, a, b, Mil, s, ti) ;GG (b, c, d, a, MO, s, ti) ;GG (a, b, c, d, M5, s, ti) ;GG (d, a, b, c, MlO, s, ti) ;GG (c, d,
a,b, M15, s, ti) ;GG(b, c, d, a, M4, s, ti) ;GG(a, b, c, d, M9, s, ti) ;GG(d, a, b, c, M14, s, ti) ;GG(c, d, a, b, M3, s, ti) ;GG(b, c, d, a, M8, s, ti) ;GG(a, b, c, d, M13, s, ti) ;GG(d, a,
b,c, M2, s, ti) ;GG(c, d, a, b, M7, s, ti) ;GG(b, c, d, a, M12, s, ti)。第三轮:HH(a,b, c, d, M5, s, ti) ;HH(d, a, b, c, M8, s, ti) ;HH(c, d, a, b, Mil, s, ti) ;HH(b, c, d, a, M14, s, ti) ;HH(a, b, c, d, Ml, s, ti) ;HH(d, a, b, c, M4, s, ti) ;HH(c, d, a, b, M7, s, ti) ;HH(b, c, d, a, M10, s, ti) ;HH(a, b, c, d, M13, s, ti) ;HH(d, a, b, c, MO, s, ti) ;HH(c, d, a, b, M3, s, ti) ;HH(b, c, d, a, M6, s, ti 5) ;HH(a, b, c, d, M9, s, ti) ;HH(d, a, b, c, M12, s, ti) ;HH(c, d, a, b, M15, s, ti) ;HH(b, c, d, a, M2, s, ti)。:II (a, b, c, d, MO, s, ti) ;II (d, a, b, c, M7, s, ti) ;II (c, d, a, b, M14, s, ti) ;II (b, c, d, a, M5, s, ti) ;II (a, b, c, d, M12, s, ti) ;II (d, a, b, c, M3, s, ti) ;II (c, d,
a,b, MlO, s, ti) ;II (b, c, d, a, Ml, s, ti) ;II (a, b, c, d, M8, s, ti) ;II (d, a, b, c, M15, s, ti) ;II (c,d, a, b, M6, s, ti) ;II (b, c, d, a, M13, s, ti) ;II (a, b, c, d, M4, s, ti) ;II (d, a,
b,c, Mil, s, ti) ;II (c, d, a, b, M2, s, ti) ;II (b, c, d, a, M9, s, ti)。最后,将所述四个链接变量A、B、C、D分别加上四个变量a、b、c、d,并继续用下一 分组数据块继续进行上述循环计算,最后输出的四个链接变量的级联即为分片s0的MD5值 keyc0O需要说明的是,在本实施例中所采用的MD5算法可以被本领域技术人员采用任何 已知的算法规则进行替换,其并不能用于限定本发明的保护范围。在分片校验装置111完成了对分片s0进行加密处理之后,重复执行上述MD5算法 步骤3,以对其余分片sl-sN分别进行加密处理,从而得到各个数据块分片的MD5值,即各个 数据块分片的校验信息keyc;1至key。N。可替换地,也可以采用CRC算法或SHA算法或Hash算法对所述各个数据块分片进 行加密处理,这样得到的CRC值或SHA值或Hash值也可以被用作所述各个数据块分片的校
验信息。以上对数据块的校验信息包括各个数据块分片的校验信息的情形进行了详细描 述。本领域技术人员应当知晓,在P2P网络传输中往往以文件分片为单位进行下载,以数据 块分片为单位生成校验信息的优势在于,可以在获取每个分片后进行校验,如果出现错误, 只需要对该数据块分片进行处理,例如重新下载正确的分片,而不会影响整个数据块的正 常下载使用。优选的,生成装置11还生成了数据块A的相关信息,所属相关信息包括数据块A 的长度、数据块分片的个数,每个数据块分片的长度中的至少一项。本领域技术人员应当理 解,上述示例并不对相关信息构成限定。上述相关信息应当是从数据块A中生成提取,可以在传输中起到基本的校验作用的信息。本领域技术人员同时也应该理解,可选的,分片校验装置111还可以基于预定算 法对数据块A整体进行加密,生成数据块A的总校验信息key。t。tal。优选的,生成总校验信 息的key。t。tal的预定算法可以与生成数据块分片的校验信息的算法相同,此处不再赘述。可 选的,生成总校验信息的key。t。tal的预定算法也可以与生成数据块分片的校验信息的算法 相同不同。需要注意的是,在其它请求用户设备中生成校验信息的预定算法,应当与第一用 户设备Pl中的预定算法相对应才能起到校验下载数据块的目的。举例来说,数据块A在第 一用户设备Pl中生成的总校验信息key。t。tal的生成预定算法必须与请求用户设备中总校 验信息keyrt。tal的生成预定算法相同。可选的,数据块A的校验信息可以同时包括总校验信息key。t。tal与各个数据块分 片的校验信息key。。至key。N。第一发送装置12将数据块A的校验信息发送至服务器svl。其中,数据块A的校 验信息用于作为数据块A的服务器端校验信息。如果生成装置11生成了数据块的其他相 关信息,则将上述相关信息也发送至服务器svl。优选的,第一用户设备pi向服务器svl发送数据块A的第三方下载tl的地址。 本领域技术人员可以理解,如果P2P网络中原本不提供数据块A的下载,则可以通过服务 器svl将该第三方下载源tl的地址发送给需要下载数据块A的请求用户设备,从而实现使 P2P网络中用户设备从第三方下载源tl以及网络中已保存数据块A的用户设备获取该数据 块,而无需在服务器svl自身存储该数据块。服务器svl的接收装置20接收来自第一用户设备pi的数据块A的校验信息,以 及数据块A对应的第三方下载源tl的地址。根据具体实施情况的不同,数据块A的校验信 息key。可以包括总校验信息key。t。tal和/或各个数据块分片的校验信息key。。至key。N。如 果生成装置11同时生成了数据块A的相关信息,则服务器svl还接收来自第一用户设备pi 的相关信息。该相关信息包括数据块A的长度,数据块分片的个数,和每个数据块分片的长 度中的至少一项。接着,服务器svl的信息建立装置21建立数据块A的索引信息,将数据块A的用 户端校验信息key。作为服务器端的校验信息ke^,该索引信息包括数据块A对应的第三方 下载源tl的地址以及服务器端的校验信息key—应当理解,在服务器svl建立数据块A的 索引信息的目的在于,当P2P网络中的请求用户设备请求进行数据块A的相关操作,例如下 载数据块A时,服务器svl能够向该请求用户设备提供该操作所必要的校验信息,及时检测 出下载过程中文件出错,避免错误扩散。优选的,当网络中作为种子的存储有数据块A的用 户设备数量不足时,服务器svl也可以提供数据块A的第三方下载源tl的地址,以使请求 用户设备直接从第三方下载源tl下载数据块A,提高下载效率。因此,对应请求用户设备请求下载数据块A的具体实施例,辅助装置2还包括第二 发送装置22。第二发送装置22将数据块A的索引信息发送至请求用户设备。索引信息的发送 可能基于请求用户设备的请求消息(例如,用户设备请求收看某电视剧),也可能由服务器 svl主动推送(服务器推送某广告)。请求用户设备通过索引信息得到数据块A的校验信 息。在下载得到数据块A’后,请求用户设备可以基于与第一用户设备pi对应的相同算法计算自身下载得到的数据块A’的校验信息keyp,如果用户端校验信息keyp与服务器端的 校验信息ke^相同,则认为下载到的数据块A’与数据块A相同,下载正确,反之,则认为不 同,进入下一步后续处理。 以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述 特定实施方式,本领域技术人员可以在所附权利要求的范围内做出各种变形或修改。
权利要求
1.一种用户设备向分布式网络中的服务器端提供数据块的校验信息的方法,其特征在 于,该方法包括以下步骤a.从独立于所述分布式网络的第三方获取所述数据块;b.基于预定算法生成所述数据块的校验信息;c.将所述数据块的校验信息发送至所述服务器端,所述数据块的校验信息用于作为所 述数据块的服务器端校验信息。
2.根据权利要求1所述的方法,其特征在于,所述步骤b还包括bl.将所述数据块划分为多个数据块分片;b2.基于所述预定算法分别生成所述数据块的每个所述数据块分片的校验信息,其中, 每个所述数据块分片的校验信息是唯一的;所述步骤c还包括一将每个所述数据块分片的校验信息发送至所述服务器端,所述数据块分片的校验信 息用于作为所述数据块分片的服务器端校验信息。
3.根据权利要求2所述的方法,其特征在于,所述数据块的校验信息包括每个所述数 据块分片的校验信息和所述数据块的总校验信息,所述步骤b还包括-基于所述预定算法对数据块整体进行加密,生成所述数据块的总校验信息。
4.根据权利要求2所述的方法,其特征在于,所述步骤1^2还包括-生成所述数据块的相关信息,所述相关信息包括所述数据块的长度,所述数据块分片 的个数,每个所述数据块分片的长度中的至少一项;所述步骤c还包括-发送所述相关信息至所述服务器端。
5.根据权利要求1所述的方法,其特征在于,所述步骤c还包括-向所述服务器端上报所述数据块的第三方下载地址。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述预定算法为MD5或SHAl 加密算法。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述数据块为多媒体文件或 多媒体文件的分片。
8.—种在分布式网络的服务器端通过数据块校验信息进行辅助校验的方法,其特征在 于,该方法包括以下步骤A.接收来自用户设备的数据块的用户端校验信息,所述数据块对应确定的第三方下载 地址,所述用户端校验信息由用户设备基于预定算法生成,所述第三方独立于所述分布式 网络;B.建立所述数据块的索引信息,将所述数据块的所述用户端校验信息作为所述数据块 的服务器端校验信息,所述索引信息包括所述数据块对应的所述第三方下载地址和所述服 务器端校验信息。
9.根据权利要求8所述的方法,其特征在于,所述数据块包括多个数据块分片,所述用 户端校验信息包括每个数据块分片的用户端校验信息和由用户设备加密生成的所述数据 块的总校验信息。
10.根据权利要求9所述的方法,其特征在于,所述步骤A还包括-接收来自用户设备的所述数据块的相关信息;所述步骤B还包括-在索引信息中建立所述数据块与其相关信息之间的对应关系。
11.根据权利要求10所述的方法,其特征在于,所述相关信息包括所述数据块的长度, 所述数据块分片的个数,每个所述数据块的长度中的至少一项。
12.根据权利要求8所述的方法,其特征在于,所述步骤B之后还包括以下步骤C.将所述数据块的索引信息发送至所述请求用户设备,所述服务器端校验信息用于与 所述请求用户设备生成的数据块校验信息比较,以判断用户设备下载的数据块是否正确。
13.根据权利要求8至12中任一项所述的方法,其特征在于,所述预定算法为MD5或 SHAl加密算法。
14.根据权利要求8至12中任一项所述的方法,其特征在于,所述数据块为多媒体文件 或多媒体文件的分片。
15.一种用户设备向分布式网络中的服务器端提供数据块的校验信息的提供装置,其 特征在于,所述提供装置包括获取装置、生成装置和第一发送装置,所述获取装置用于从独立于所述分布式网络的第三方获取所述数据块;所述生成装置用于基于预定算法生成所述数据块的校验信息;所述第一发送装置用于将所述数据块的校验信息发送至所述服务器端,所述数据块的 校验信息用于作为所述数据块的服务器端校验信息。
16.根据权利要求15所述的提供装置,其特征在于,所述生成装置还包括分片装置和 分片校验装置所述分片装置用于将所述数据块划分为多个数据块分片;所述分片校验装置用于基于所述预定算法分别生成所述数据块的每个所述数据块分 片的校验信息,其中,每个所述数据块分片的校验信息是唯一的;所述第一发送装置还用于将每个所述数据块分片的校验信息发送至所述服务器端,所 述数据块分片的校验信息用于作为所述数据块分片的服务器端校验信息。
17.根据权利要求16所述的提供装置,其特征在于,所述数据块的校验信息包括每个 所述数据块分片的校验信息和所述数据块的总校验信息,所述生成装置还用于基于所述预 定算法对数据块整体进行加密,生成所述数据块的总校验信息。
18.根据权利要求16所述的提供装置,其特征在于,所述生成装置还用于生成所述数 据块的相关信息,所述相关信息包括所述数据块的长度,所述数据块分片的个数,每个所述 数据块分片的长度中的至少一项;所述第一发送装置还用于发送所述相关信息至所述服务器端。
19.根据权利要求15所述的提供装置,其特征在于,所述第一发送装置还用于向所述 服务器端上报所述数据块的第三方下载地址。
20.根据权利要求15至19中任一项所述的提供装置,其特征在于,所述预定算法为 MD5或SHAl加密算法。
21.根据权利要求15至19中任一项所述的提供装置,其特征在于,所述数据块为多媒 体文件或多媒体文件的分片。
22.—种在分布式网络的服务器端通过数据块校验信息进行辅助校验的辅助装置,其3特征在于,所述辅助装置包括接收装置和信息建立装置,所述接收装置用于接收来自用户设备的数据块的用户端校验信息,所述数据块对应确 定的第三方下载地址,所述用户端校验信息由用户设备基于预定算法生成,所述第三方独 立于所述分布式网络;所述信息建立装置用于建立所述数据块的索引信息,将所述数据块的所述用户端校验 信息作为所述数据块的服务器端校验信息,所述索引信息包括所述数据块对应的所述第三 方下载地址和所述服务器端校验信息。
23.根据权利要求22所述的辅助装置,其特征在于,所述数据块包括多个数据块分片, 所述用户端校验信息包括每个数据块分片的用户端校验信息和由用户设备加密生成的所 述数据块的总校验信息。
24.根据权利要求23所述的辅助装置,其特征在于,所述接收装置还用于接收来自用 户设备的所述数据块的相关信息;所述信息建立装置还用于在索引信息中建立所述数据块与其相关信息之间的对应关系。
25.根据权利要求M所述的辅助装置,其特征在于,所述相关信息包括所述数据块的 长度,所述数据块分片的个数,每个所述数据块分片的长度中的至少一项。
26.根据权利要求22所述的辅助装置,其特征在于,所述辅助装置还包括第二发送装置,所述第二发送装置用于将所述数据块的索引信息发送至所述请求用户设备,所述服务 器端校验信息用于与所述请求用户设备生成的数据块校验信息比较,以判断用户设备下载 的数据块是否正确。
27.根据权利要求22至沈中任一项所述的辅助装置,其特征在于,所述预定算法为 MD5或SHAl加密算法。
28.根据权利要求8至12中任一项所述的辅助装置,其特征在于,所述数据块为多媒体 文件或多媒体文件的分片。
全文摘要
本发明旨在提供一种数据块校验的方法,其涉及生成来自第三方的数据块的服务器端的校验信息,以及利用该校验信息判断下载数据块正确性,以及防止错误扩散的方法。其主要包括以下步骤,用户设备直接生成该数据块的校验信息,并将该校验信息发送给数据块作为该数据块的服务器端校验信息。而请求用户设备只需获取该数据块的服务器端校验信息就可以与自身生成的校验信息对比,判断下载到的数据块是否正确。通过使用本发明的技术方案,服务器无需存储该数据块,大大节省了存储资源,提高了网络传输的效率。
文档编号H04L29/06GK102064906SQ20091019898
公开日2011年5月18日 申请日期2009年11月18日 优先权日2009年11月18日
发明者姚欣, 朱巍, 王闻宇 申请人:突触计算机系统(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1