通信系统、均衡服务器及数据验证方法

文档序号:7715639阅读:138来源:国知局
专利名称:通信系统、均衡服务器及数据验证方法
技术领域
本发明涉及通信技术领域,尤其涉及一种通信系统、均衡服务器及数据-睑i正方法。
背景技术
服务提供商通常基于网络为用户提供文件服务。 一些情况下,为避免一个服务器难以同时处理众多用户的集中下载,常将文件分为多个数据块,将多个数据块部署在不同服务器上,以分担同一服务器的负荷。用户在获得部署信息后,可从相关服务器上下载属于同一文件的各个数据块。
如现有技术常基于点到点下栽(BT, BitTorrent)系统,为众多并发用户同时提供文件服务。BT系统中,终端通过下载BT客户端,实现为其他终端提供文件服务的服务器功能,从而使得BT系统的文件分发模式具有良好的伸缩性、高效性和可靠性。
BT系统通过扩展名为下载状态描述(torrent)的文件进行下载部署。Torrent文件;故在一个普通的网页(web)服务器上。Torrent文件内包含共享文件的信息,如文件名、大小、文件的散列信息和一个指向跟踪服务器(tracker)的统一资源定位(URL)。用户通过使用BT客户端打开torrent文件同tracker联系。Tracker返回供用户下载同样文件的其他终端的联系信息。用户收到的通过联系信息,与其他终端建立连接,下载其他终端上已有
的属于同一文件的数据块。
实际应用中,为检验其他终端所提供的数据块是否是有效数据,通常在
用户下载完一个数据块后会对该数据块作有效性验证。为实现验证,现有技术通常在torrent文件内设置每个数据块的标准校验值如SHA1值。用户下栽一个数据块后,会将基于下载到的数据块算出的哈希值与从torrent文件中获得的该数据块的标准校验值作对比,若相同,则表示下载到的数据块有效,否则无效。
实现本发明的发明人经研究发现
现有技术的数据块验证技术能适应数据量不大的文件或宽带下载环境,但对于窄带环境如移动网络,或数据量相对较大的文件的下载,现有技术的数据块验证技术的弊端将显著突出。因为torrent文件中需要部署每个数据块的标准校验值,因此,若文件被分为很多个数据块,则torrent文件需要维护的标准校验值也将众多,相应torrent文件的信息量会增大。由于实际应用中,torrent文件会经常^皮传输于多个服务器之间,因此torrent文件信息量的增加将对网络传输造成负担,尤其在窄带环境中;并且将造成传输资源的浪费。而为避免torrent文件过大,若采取增加基本数据块长度的方式来减少数据块总数,将对点对点数据交换性能造成一系列负面影响。
因此,现有数据块验证技术存在torrent文件内含信息冗余,导致浪费传输资源的技术问题。

发明内容
本发明提供一种通信系统、均衡服务器及数据验证方法,解决现有技术中存在的torrent文件内含信息冗余,导致浪费传输资源的技术问题。
为解决上述技术问题,本发明提供一种通信系统,包括终端、验证模块和服务器系统;
所述服务器系统收到所述终端发送的文件下栽请求后,向所述终端返回所述文件的描述信息;所述描述信息包含一 个验证参考码;
所述终端根据收到的所述描述信息提供的文件下载地址,从所述服务器系统内获取组成所述文件的各个数据块;
所述验证模块从所述终端与所述服务器系统处获取算法参数,并根据预设算法,算出所述各个数据块的验证码;所述验证模块比较所述验证码与所述验证参考码,若所述验证码与所述验证参考码相同,则该数据块有效,否则,该数据块无效。
优选地,所述服务器系统包括均衡服务器与至少一个数据服务器;所述均衡服务器用于处理所迷终端的文件下载请求,向所述终端提供所述描述信息;据块。
优选地,所述验证模块设置于所述终端或所述均衡服务器内。优选地,所述预设算法为哈希树模型;每个数据块对应于所述哈希树模型上的叶子节点;所述终端提供的算法参数为数据块对应于哈希树模型上的叶子节点哈希值;所述服务器系统提供的算法参数包括从该数据块所在叶子节点到所述哈希树模型中的根节点的路径上,除该叶子节点之外其他各节点的哈希值;
所述验证模块基于所述哈希树模型,根据所述叶子节点哈希值与所述其他各节点的哈希值,算出所述根节点的哈希值,用作所述验证码;所述验证参考码为所述根节点的预设哈希值。
优选地,所述均衡服务器维护所述哈希树模型中所有节点的哈希值。
优选地,对于验证结果为有效的验证,所述均衡力良务器用于标记该-验证所用到的所有节点的哈希值为有效值。
为解决上述技术问题,本发明提供一种均衡服务器,包括处理模块、验证模块和存储模块;
所述处理模块接收终端发送的文件下载请求,向所迷终端返回所述文件的描述信息,以使所述终端根据收到的所述描述信息提供的文件下栽地址,从数据服务器内获取组成所述文件的各个数据块,其中,所述描述信息包含一个验证参考码;
所述验证模块从所述终端与所述存储模块处获取算法参数,并根据预设算法,算出所述各个数据块的验证码;所述验证模块比较所述验证码与所述验证参考码,若所述验证码与所述验证参考码相同,则该数据块有效,否则,该数据块无效。
为解决上述技术问题,本发明提供一种数据验证方法,应用于上述通信
系统,包括
所述服务器系统收到所述终端发送的文件下载请求后,向所迷终端返回所述文件的描述信息;所述描述信息包含一个验证参考码;
所述终端根据收到的所述描述信息提供的文件下栽地址,从所述服务器系统内获取组成所述文件的各个数据块;
所述验证模块从所述终端与所述服务器系统处获取算法参数,并根据预设算法,算出每个数据块的验证码;
所述验证模块比较所述验证码与所述验证参考码,若所述验证码与所述验证参考码相同,则该数据块有效,否则,该H据块无效。
优选地,所述服务器系统包括均衡服务器与至少一个数据服务器;
所述均衡服务器处理所述终端的文件下栽请求,向所迷终端提供所述描述信息;
所述至少一个数据服务器向所述终端提供组成所述文件的各个数据块。优选地,所述预设算法为哈希树模型;每个数据块对应于所迷哈希树模型上的叶子节点;所述终端提供的算法参数为数据块对应于哈希树模型上的叶子节点哈希值;所述服务器系统提供的算法参数包括从该数据块所在叶子节点到所述哈希树模型中的根节点的路径上,除该叶子节点之外其他各
节点的哈希值;
所述验证模块基于所述哈希树模型,根据所述叶子节点哈希值与所述其他各节点的哈希值,算出所述根节点的哈希值,用作所述验证码;所述验证参考码为所述根节点的预设哈希值。
相比较现有技术,本发明提供的技术方案存在以下有益技术效果本发明提供的技术方案,通过预设哈希树算法,将哈希树模型应用到文件下载中的数据块有效性验证中,使得整个文件服务过程要用到的校验文件
8即描述信息中只需保存一个验证参考值,基于哈希树模型,利用该验证参考值验证所有数据块的有效性,可在保证验证结果准确性的前提下,极大程度地减小描述信息所携带的信息量,相应有效减轻网络负担,节约传输资源,减少校验文件传输代价,同时能准确定位出问题的文件块,有效减少重传代价,提高文件下栽的传输效率。


图1是本发明的实施例提供的通信系统的结构示意图;图2是本发明的实施例中哈希树模型结构示意图;图3是本发明提供的通信系统的另一结构示意图;图4是本发明实施例中数据验证方法的流程图;图5是本发明的实施例中哈希树模型结构另一示意图;图6是本发明中验证数据块有效性的流程图;图7是本发明中验证数据块有效性的另一流程图;图8是本发明中均衡服务器的结构示意图。
具体实施例方式
下面结合附图,详细说明本发明技术方案的具体实现。
参见图1,图1是本发明提供的通信系统的结构示意图,该通信系统包括终端IOI、验证模块102和服务器系统103;其中,
服务器系统103收到终端101发送的文件下载请求后,向终端101返回文件的描述信息;终端101根据收到的描述信息所提供的文件下载地址,从服务器系统103内获取组成待下栽文件的各个数据块;
验证模块102从终端101与服务器系统103处获取算法参数,并根据预设算法,算出每个数据块的验证码;上述描述信息包含一个验证参考码,该验证参考码用于验证每个数据块的有效性;
验证模块102比较算出的验证码与已设的验证参考码,若算出验证码与
9验证参考码相同,则该数据块有效,否则,该数据块无效。
具体地,预设算法可以是哈希(HASH)树模型;每个数据块对应于哈希树模型上的叶子节点。需要说明的是,终端101提供的算法参数,如为数据块对应于哈希树模型上的叶子节点哈希值;服务器系统103提供的算法参数包括从该数据块所在叶子节点到哈希树模型中的根节点的路径上,除该叶子节点之外其他各节点的哈希值;具体地,其他各节点包括该叶子节点的兄弟节点以及该叶子节点到根节点的路径节点。
验证模块102基于哈希树模型,根据叶子节点哈希值与其他各节点的哈希值,算出根节点的哈希值,用作该数据块的验证码;其中,验证参考码为根节点的预设哈希值。若算出的数据块的验证码与根节点的预设哈希值相同,则表示该数据块有效,否则表示该数据块无效,需要重新下载。实际应用中也可根据需要设置其他算法。
本发明中的描述信息类似于现有校验文件如torrent文件,但与torrent文件所不同的是,本发明中,描述信息只需携带一个验证参考码,而无需携带每个数据块的哈希值,并基于哈希树模型,可在保证验证结果准确性的前提下,极大程度地减小描述信息所携带的信息量,相应有效减轻网络负担,节约传输资源,提高文件下载的传输效率。
为便于更好地理解本发明,对哈希树模型如Merkle树作简要说明。
Merkle树结构通常是树的每一个叶结点是一条指令加上该指令的哈希值构成,每个父节点下面的所有子结点的哈希值組合到一起再进行HASH运算就得到它们的父节点;这个过程一直进行下去直至得到树的根结点。其主要优点是仅需通过对树根结点的一次签名运算就可以对树上所有的叶结点独立地提供完整性认证。哈希树模型通常被用作数据的安全性认证,如被用作制作密钥。而本发明中,将哈希树模型用于文件传输中的数据块有效性验证,扩展哈希树模型的应用。
参见图2,图2是本发明的实施例中哈希树模型结构示意图。图2中,待下载文件被分为7个数据块,每个数据块分别对应图2所示哈希树的一个叶子节点P0 P6。该实施例中,设哈希树模型为二元Merkle树。则根据二 元Merkle树,增加一个叶子节点P7, P7仅用于填充校验,而无需当作数据 块传送.每个叶子节点均有一个SHA1值。将同一父节点下的两个叶子节点 的p合希值相加用SHA1函数求出的^^备希值即为父节点的^^合希值,依此类推, 直到求出根节点的哈希值H0。树中的叶子节点P0 P7的哈希值分别为 H7 H14,用于计算根节点哈希值的其他节点的哈希值如H1 H6为路径节点 上的路径哈希值。
改进过的数据块校验策略,就是在校验文件中,不用保存所有数据块的 SHA1值,而只保存根节点的SHA1,即HO的值,有效减小校验文件的信息 量。实际应用中,可根据需要使用三元Merkle树或更多元Merkle树。
参见图3,图3是本发明提供的通信系统的另一结构示意图。与图l相 比,图3中,服务器系统103可包含多个服务器,如均衡服务器,以及用于 提供数据块的各个服务器,如BT系统中的各个终端。并且验证模块102可 设置于均衡服务器上。实际应用中,若终端101的能力够强,也可根据需要 将验证模块102设置于终端101内。
图3中,多个服务器的设置可有效分担单个服务器的处理负荷。其中, 均衡服务器可用于处理终端101的文件下栽请求,向终端101提供描述信息; 并且可用均衡服务器来维护以下信息
Merkle树所有节点SHA1校验值(包括各个数据块的SHA1校验值以 及路径哈希值);
对于验证结果为有效的验证,均衡服务器所记栽的该验证所用到的所有 节点的哈希值为有效值的标记。
参见图4,图4是本发明的实施例中数据验证方法的流程图,该流程所 示方法可应用于上述通信系统,包括以下步骤
步骤401、服务器系统103收到终端101发送的文件下载请求后,向终 端101返回文件的描述信息;终端101根据收到的描述信息所提供的文件下
栽地址,从服务器系统103内获取组成待下载文件的各个数据块。步骤402、验证模块102从终端101与服务器系统103处获取算法参数, 并根据预设算法,算出每个数据块的验证码;描述信息包含一个验证参考码, 该验证参考码用于-验证每个数据块的有效性。
步骤403、验证模块102比较算出的验证码与已设的验证参考码,若算 出验证码与验证参考码相同,则该数i居块有效,否则,该数据块无效。
下面结合图5所示哈希树以及图3所示通信系统,说明本发明中验证数 据块有效性的具体实现。
参见图6,图6是本发明中验证数据块有效性的流程图,该流程中,验 证模块设置于均衡服务器上,该流程可包括以下步骤
步骤601、终端向均衡服务器发送要求下载文件的文件下载请求。
步骤602、均衡服务器收到文件下载请求后,向终端返回该文件的描述 信息,该描述信息包括所述文件的下载地址以及一个Merkle树根节点root 的验证参考值。
步骤603、终端根据收到的描述信息,到指定数据服务器1下栽数据块 Blockl,当下载完成后,计算该数据块的HASH(Blockl)值。
该步骤603中,终端向验证模块提供数据块本身的哈希值,由验证模块 用于计算数据块的验证值。
步骤604、终端请求均衡服务器验证数据块的有效性,将HASH(Blockl) 及根节点root的验证参考值传给均衡服务器。
步骤605、均衡服务器根据所维护的哈希树模型,以及该模型上各节点 的哈希值,找到在节点Blockl通向根节点root的路径上,除节点Blockl之 外其他节点即节点Blockl的兄弟节点Block2与路径节点path2的哈希值 HASH(Block2), HASH(path2),根据
HASH(root)-HASH(HASH(path2),HASH(HASH(Block2)),HASH(Blockl));算 出根节点Boot的哈希值。
步骤606、均衡服务器比较终端保存的根节点root的验证参考值与 HASH(root)是否相等,若相等,则数据块Blockl有效;否则,数据块Blockl
12无效。
其中,根节点root的验证参考值由终端发送给均衡服务器。
参见图7,图7是本发明中验证数据块有效性的另一流程图,该流程中,
验证模块设置于终端上,该流程可包括以下步骤
步骤701、终端向均衡服务器发送要求下载文件的文件下载请求。 步骤702、均衡服务器收到文件下载请求后,向终端返回该文件的描述
信息,该描述信息包括所述文件的下载地址以及一个Merkle树根节点root
的验证参考值。
步骤703、终端根据收到的描述信息,到指定数据服务器1下载数据块 Blockl,当下载完成后,计算该数据块的HASH(Blockl)值。
步骤704、终端开始验证数据块的有效性,根据所维护的哈希树模型, 以及该模型上各节点的哈希值,找到在节点Blockl通向根节点root的路径 上,除节点Blockl之外其他节点即节点Blockl的兄弟节点Block2与路径节 点path2的哈希值HASH(Block2), HASH(path2),根据 HASH(root)=HASH(HASH(path2),HASH(HASH(Block2)),HASH(Blockl));算 出根节点Boot的哈希值。
实际应用中,也可将相关参数存放在均衡服务器上,由终端向均衡服 务器获取。
步骤705、终端比较所保存的根节点root的验证参考值与HASH(root) 是否相等,若相等,则数据块Blockl有效;否则,数据块Blodd无效。
本发明还提供一种均衡服务器,图8是该服务器的结构示意图,该服务 器包括处理模块801、验证模块102和存储模块802;
处理模块801接收终端发送的文件下载请求,向终端返回文件的描述信 息,以便所述终端根据收到的描述信息提供的文件下载地址,从数据服务器 内获取组成文件的各个数据块,其中,所述描述信息包含一个验证参考码, 该验证参考码用于验证每个数据块的有效性;
验证模块102从终端与存储模块802处获取算法参数,并根据预设算法,
13算出每个数据块的验证码;
验证模块102比较算出的验证码与所述验证参考码,若所述验证码与所 述验证参考码相同,则该数据块有效,否则,该数据块无效。
具体地,上述预设算法可以是哈希(HASH)树模型;每个数据块对应 于哈希树模型上的叶子节点。从终端获取的算法参数,如为数据块对应于哈 希树模型上的叶子节点哈希值;从存储模块802获取的算法参数包括从该 数据块所在叶子节点到哈希树模型中的根节点的路径上,除该叶子节点之外 其他各节点的哈希值;具体地,其他各节点包括该叶子节点的兄弟节点以 及该叶子节点到根节点的路径节点。
验证模块102基于哈希树模型,根据叶子节点哈希值与其他各节点的哈 希值,算出根节点的哈希值,用作该数据块的验证码;其中,验证参考码为 根节点的预设哈希值。若算出的数据块的验证码与根节点的预设哈希值相 同,则表示该数据块有效,否则表示该数据块无效,需要重新下载。实际应 用中也可根据需要设置其他算法。
综上,本发明提供的技术方案,通过预设哈希树算法,将哈希树模型应 用到文件下载中的数据块有效性验证中,使得整个文件服务过程要用到的校 验文件即描述信息中只需保存一个验证参考值,基于哈希树模型,利用该验 证参考值验证所有数据块的有效性,可在保证验证结果准确性的前提下,极 大程度地减小描述信息所携带的信息量,相应有效减轻网络负担,节约传输 资源,减少校验文件传输代价,同时能准确定位出问题的文件块,有效减少 重传代价,提高文件下载的传输效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以作出若千改进和润 饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种通信系统,其特征在于,包括终端、验证模块和服务器系统;所述服务器系统收到所述终端发送的文件下载请求后,向所述终端返回所述文件的描述信息;所述描述信息包含一个验证参考码;所述终端根据收到的所述描述信息提供的文件下载地址,从所述服务器系统内获取组成所述文件的各个数据块;所述验证模块从所述终端与所述服务器系统处获取算法参数,并根据预设算法,算出所述各个数据块的验证码;所述验证模块比较所述验证码与所述验证参考码,若所述验证码与所述验证参考码相同,则该数据块有效,否则,该数据块无效。
2、 根据权利要求1所述的通信系统,其特征在于,所述服务器系统包 括均衡服务器与至少一个数据服务器;所述均衡服务器用于处理所述终端的文件下载请求,向所述终端提供所 述描述信息;所述至少一个数据服务器用于向所述终端提供组成所述文件的各个数 据块。
3、 根据权利要求2所述的通信系统,其特征在于,所述验证模块设置 于所述终端或所述均衡服务器内。
4、 根据权利要求l、 2或3所述的通信系统,其特征在于,所述预设算 法为哈希树模型;每个数据块对应于所述哈希树模型上的叶子节点;所述终 端提供的算法参数为数据块对应于哈希树模型上的叶子节点哈希值;所述 服务器系统提供的算法参数包括从该数据块所在叶子节点到所述哈希树模 型中的根节点的路径上,除该叶子节点之外其他各节点的哈希值;所述验证模块基于所述哈希树模型,根据所述叶子节点哈希值与所述其 他各节点的哈希值,算出所述根节点的哈希值,用作所述验证码;所述验证 参考码为所述根节点的预设哈希值。
5、 根据权利要求4所述的通信系统,其特征在于,所述均衡服务器维 护所述哈希树模型中所有节点的哈希值。
6、 根据权利要求4所述的通信系统,其特征在于,对于验证结果为有 效的验证,所述均衡服务器用于标记该验证所用到的所有节点的哈希值为有 效值。
7、 一种均衡服务器,其特征在于,包括处理模块、验证模块和存储模块;所述处理模块接收终端发送的文件下载请求,向所述终端返回所述文件 的描述信息,以使所述终端根据收到的所述描述信息提供的文件下栽地址, 从数据服务器内获取组成所述文件的各个数据块,其中,所述描述信息包含一个-验证参考码;所述验证模块从所述终端与所述存储模块处获取算法参数,并根据预设 算法,算出所述各个数据块的验证码;所述验证模块比较所述验证码与所述验证参考码,若所述验证码与所述 验证参考码相同,则该数据块有效,否则,该数据块无效。
8、 一种数据验证方法,其特征在于,应用于如权利要求1所述的通信 系统,包括所述服务器系统收到所述终端发送的文件下载请求后,向所述终端返回 所述文件的描述信息;所述描述信息包含一个验证参考码;所述终端根据收到的所述描述信息提供的文件下载地址,从所述服务器 系统内获取组成所述文件的各个数据块;所述验证模块从所述终端与所述服务器系统处获取算法参数,并根据预 设算法,算出所述各个数据块的验证码;所述验证模块比较所述验证码与所述验证参考码,若所述验证码与所述 验证参考码相同,则该数据块有效,否则,该数据块无效。
9、 根据权利要求8所述的方法,其特征在于,所述服务器系统包括 均衡服务器与至少一个数据服务器;所述均衡服务器处理所述终端的文件下载请求,向所述终端提供所述描述信息;所述至少一个数据服务器向所述终端提供组成所述文件的各个数据块。
10、根据权利要求8或9所述的方法,其特征在于,所述预设算法为哈希树模型;每个数据块对应于所述哈希树模型上的叶子节点;所述终端提供的算法参数为数据块对应于哈希树模型上的叶子节点哈希值;所述服务器系统提供的算法参数包括从该数据块所在叶子节点到所述哈希树模型中的根节点的路径上,除该叶子节点之外其他各节点的哈希值;所述验证模块基于所述哈希树模型,根据所述叶子节点哈希值与所述其他各节点的哈希值,算出所述根节点的哈希值,用作所述验证码;所述验证参考码为所述根节点的预设哈希值。
全文摘要
本发明提供一种通信系统、均衡服务器及数据验证方法,其中方法包括服务器系统收到终端发送的文件下载请求后,向终端返回所述文件的描述信息;终端根据收到的所述描述信息提供的文件下载地址,从服务器系统内获取组成所述文件的各个数据块;验证模块从所述终端与所述服务器系统处获取算法参数,并根据预设算法,算出每个数据块的验证码;所述描述信息包含一个验证参考码,所述验证参考码用于验证每个数据块的有效性;所述验证模块比较所述验证码与所述验证参考码,若所述验证码与所述验证参考码相同,则该数据块有效,否则,该数据块无效。本发明技术方案可有效减小描述信息所携带的信息量,节约传输资源,减少校验文件传输代价。
文档编号H04L29/08GK101651719SQ20091019225
公开日2010年2月17日 申请日期2009年9月11日 优先权日2009年9月11日
发明者(请求不公开姓名) 申请人:广东宇天信通通信科技有限公司;浙江宇天科技有限公司;夏 阳
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1