一种网络文件传输的校验方法

文档序号:7730208阅读:310来源:国知局
专利名称:一种网络文件传输的校验方法
技术领域
本发明属于计算机网络领域,具体的说是一种网络文件传输的校验方法。
背景技术
现代网络是生活和工作中不可或缺的部分,人们追加高清晰高品质的多媒体享受,那么高清多媒体文件是以后的发展趋势,但高清多媒体文件的数据量极大,文件数据量可能几个G到十几个G。这种大数据量文件的网络传输的传输效率,稳定可靠性就需要迫切解决。现有网络文件通常进行分块传输,只通过对比文件块的哈希码,判断当前下载的文件块是否正确。在文件传输过程中,有时存在某些恶意数据,发送错误的块内容,以及针对该内容生成的哈希码。终端在接收到该块后,即使自行提取块的哈希码与传输得到的对比,判定块接收正确,实际是伪数据,所以只有文件块哈希码校验并不能完全保证文件校验正确。还有如果等到文件传输完毕后再进行整体文件的哈希计算,若文件数据量极大的情况,则哈希计算本身就需要耗费大量的时间和带宽资源。为克服上述问题,本发明提出一种网络文件传输校验的方法。

发明内容
一种网络文件传输的校验方法,包括如下步骤
1)原始文件上传到服务器,服务器对文件进行分块处理,并确定块的大小、块哈希码, 块数和块二次校验哈希码;
2)终端下载文件,向服务器进行请求文件块,服务器进行查询文件块可下载的地址,向终端返回地址,终端依据该地址进行下载该文件块和块哈希码;
3)终端下载文件块后自行进行哈希计算,与下载文件块哈希码比较,如果相同,判定文件块校验通过;否则,文件块错误,终端重新请求该文件块,重复2)步骤,直到文件块校验通过为止;
4)文件块校验通过,终端保存文件块和块哈希码到文件中;
5)按照2)到4)的步骤请求文件块和块哈希码,直到文件块全部下载完成;
6)终端请求下载文件块二次校验哈希码,服务器返回文件块二次校验哈希码,与对终端保存的文件块哈希码进行二次校验哈希计算,比较两者,如果相同,文件传输结束;否则, 判定文件块中存在错误块,需查找出文件块中的错误块;
7)终端重新请求下载从第一块开始的文件块哈希码,与终端文件保存的块哈希码进行比较,如果相同,判定该文件块数据正确,进行下一个文件块查询,直到最后一块文件块;如果不相同,判定该文件块错误,则请求该地址的文件块下载,并覆盖文件中的该文件块和哈希码;
8)查找到错误文件块后,重新进行文件块二次校验哈希码比较,直到相同为止,文件传输完成并结束。
上述技术方案中,所述的哈希码是文件校验码,采用哈希算法取得。上述技术方案中,所述的服务器端获取的文件块二次校验哈希码是原始文件块哈希码进行的再次哈希计算取得的,是网络文件传输校验的唯一有效值。上述技术方案中,所述的步骤3)中,重新请求文件块时,防止重复下载错误文件块,服务器返回其他地址,与之前的地址不同。上述技术方案中,所述的步骤7)中,终端请求文件块哈希码,服务器返回多个地址,与步骤3)中地址不同,终端分别从多个地址进行下载块哈希码并进行比较,取返回值相同比例最大的作为本次服务器取得的最终块哈希码值。与现有技术相比,除了进行文件块哈希码校验,还进行了文件块哈希码的二次校验,保证文件校验的完全正确性,提高文件传输的可靠性。本发明的文件块二次校验哈希码的是利用文件块哈希码的再次哈希计算取得的,文件块数量有限,对比整个文件的哈希计算需要耗费大量的时间和带宽资源,优势明显。当文件块二次校验哈希码不相同时,利用块哈希码,能够快速查找出文件存在错误文件块,与直接下载文件块的方式比较,节省了大量的带宽资源。本发明特别适用于数据量极大地的文件传输,如高清多媒体文件传输。


图1服务器与终端下载结构图。图2是文件完整传输校验流程图。
具体实施例方式下面结合附图和具体实施例,对本发明的各个细节进行详细描述。图1服务器与终端下载结构图。服务器是资源调配中心,在整个网络文件传输中起纽带的作用。服务器也是大型的数据库,记录所有终端节点信息,包括终端IP地址、终端序列号、终端路径、所有文件块二次校验哈希码等,建立终端节点信息表,可以进行随时访问和查询。文件第一次进行合法正确数据上传,服务器记录了该文件上传时的文件ID、文件大小、文件块大小、文件块哈希码、文件块二次校验哈希码等文件信息。尤其是文件块二次校验哈希码是由该文件的所有文件块哈希码进行再次哈希计算得到的值,是文件下载完毕校验的唯一有效值。文件ID与文件块二次校验哈希码是一一对应的,服务器记录该信息不会更改。终端在整个网络中就是节点,所有的终端在服务器的调度下进行上传文件、下载文件等工作。终端要求下载文件,首先向服务器端请求下载文件块。服务器通过查询终端节点信息表,返回该文件块存在的终端上传节点地址,终端从该上传节点地址上下载该文件块和块哈希码。如图2所示,本发明实施例所述方法具体包括以下步骤
步骤101、终端向服务器请求文件块,服务器端返回上传节点的地址,该上传存在终端需要的文件块,终端下载到文件块和块哈希码。步骤102、终端将下载得到的文件块自行进行哈希计算,取得块哈希码,再与服务器获取得的块哈希码进行比较,如果不相同,则重新请求该文件块和块哈希码。
步骤103、如果上述比较相同,则认为校验通过,数据正确,将文件块和块哈希码保存到文件中。步骤104、查询文件块是否全部下载完整,如果没有全部下载完成,进行下一个文件块和块哈希码请求,即返回步骤101。步骤105、如果文件块已经全部下载完成,终端对文件的所有块哈希码进行自行哈希计算得到文件块二次校验哈希码,并向服务器请求并下载得到该文件的二次校验哈希码。从服务器得到的文件块二次校验哈希码是原始文件块哈希码进行的再次哈希计算取得的,是网络文件完整校验的唯一有效值。步骤106、将自行计算的文件块二次校验哈希码与服务器得到文件块二次校验哈希码进行比较,如果不相同,说明之前终端下载的文件块肯定存在错误文件块数据。因为文件块都有保存块哈希码,所以可以利用块哈希码进行比较,不需要重新下载每块文件块数据来进行比较,可以节省大量的宽带占用和时间。终端首先从文件第一块(K=O)哈希码进行请求,服务器端返回与之前不同的多个上传节点地址,终端分别从多个地址进行下载块哈希玛,并对这些值进行比较,取返回值相同比例最大的作为本次服务器取得的最终块哈希玛值,再与终端文件保存的块哈希码进行比较,如果相同,则进行下一个块(K+1)的哈希码请求,直到最后一块文件块为止;如果和文件中保存的块哈希码不同,则认为该文件块数据是错误的,所以请求向这个新的上传节点请求文件块数据,下载并保存文件块和哈希码。如果文件块数据错误已经查找并修正之后,再次进行文件块二次校验哈希码进行比较,如果不相同,循环步骤106,直至文件块二次校验哈希码核对成功,表示终端文件下载完成。步骤107、终端文件下载完成,表示文件传输校验结束。最后应该说明的是,上述实施例只是对本发明的说明,而不是对本发明的限制,任何不超出本发明实质精神范围内的发明创造,均落入本发明的保护范围之内。
权利要求
1.一种网络文件传输的校验方法,包括如下步骤1)原始文件上传到服务器,服务器对文件进行分块处理,并确定块的大小、块哈希码, 块数和块二次校验哈希码;2)终端下载文件,向服务器进行请求文件块,服务器进行查询文件块可下载的地址,向终端返回地址,终端依据该地址进行下载该文件块和块哈希码;3)终端下载文件块后自行进行哈希计算,与下载文件块哈希码比较,如果相同,判定文件块校验通过;否则,文件块错误,终端重新请求该文件块,重复2)步骤,直到文件块校验通过为止;4)文件块校验通过,终端保存文件块和块哈希码到文件中;5)按照2)到4)的步骤请求文件块和块哈希码,直到文件块全部下载完成;6)终端请求下载文件块二次校验哈希码,服务器返回文件块二次校验哈希码,与对终端保存的文件块哈希码进行二次校验哈希计算,比较两者,如果相同,文件传输结束;否则, 判定文件块中存在错误块,需查找出文件块中的错误块;7)终端重新请求下载从第一块开始的文件块哈希码,与终端文件保存的块哈希码进行比较,如果相同,判定该文件块数据正确,进行下一个文件块查询,直到最后一块文件块;如果不相同,判定该文件块错误,则请求该地址的文件块下载,并覆盖文件中的该文件块和哈希码;8)查找到错误文件块后,重新进行文件块二次校验哈希码比较,直到相同为止,文件传输完成并结束。
2.依据权利要求1所述的网络文件传输的校验方法,其特征在于,所述的哈希码是文件校验码,采用哈希算法取得。
3.依据权利要求1所述的网络文件传输的校验方法,其特征在于,所述的服务器端获取的文件块二次校验哈希码是原始文件块哈希码进行的再次哈希计算取得的,是网络文件传输校验的唯一有效值。
4.依据权利要求1所述的网络文件传输的校验方法,其特征在于,所述步骤3)中,重新请求文件块时,防止重复下载错误文件块,服务器返回其他地址,与之前的地址不同。
5.依据权利要求1所述的网络文件传输的校验方法,其特征在于,所述步骤7)中,终端请求文件块哈希码,服务器返回多个地址,与步骤3)中地址不同,终端分别从多个地址进行下载块哈希码并进行比较,取返回值相同比例最大的作为本次服务器取得的最终块哈希码值。
全文摘要
本发明提出了一种网络文件传输的校验方法。本方法采用文件分块传输数据和块的哈希码,块传输结束后,提取块哈希码并与传输获得的值对比,如果出错则从另外数据源进行重传,否则保持块数据,以及块哈希码到文件中。待文件传输完成后,从服务器上获得文件块二次校验哈希码,并对保持块哈希码的文件进行二次校验哈希码提取,最后对比,如有不同,则重新向服务器请求其他文件服务端的地址,并重传。反复以上过程,直至文件块二次校验哈希码对比成功。与现有技术相比,除了进行文件块哈希码校验,还进行了文件块哈希码的二次校验,保证文件校验的完全正确性,提高文件传输的可靠性。本发明的文件块二次校验哈希码的是利用文件块哈希码的再次哈希计算取得的,文件块数量有限,对比整个文件的哈希计算需要耗费大量的时间,优势明显。当文件块二次校验哈希码不相同时,利用块哈希码,能够快速查找出文件存在错误文件块,与直接下载文件块进行比较,节省了大量的宽带资源。
文档编号H04L29/08GK102325167SQ20111020528
公开日2012年1月18日 申请日期2011年7月21日 优先权日2011年7月21日
发明者刘亮, 潘红民, 王可心 申请人:杭州微元科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1