一种在文件传输中的完整性校验方法

文档序号:7665438阅读:1774来源:国知局

专利名称::一种在文件传输中的完整性校验方法
技术领域
:本发明属于计算机网络领域,具体地说,本发明涉及一种文件传输中的才交-睑方法。
背景技术
:文件传输技术是计算机网络技术的一个重要组成部分,目前通用的文件传输技术包括文件拷贝、FTP文件传输协议、TCP/IP传输协议等。在文件传输过程中,有时会出现数据丟失(或损坏)的问题,为解决这一问题,需要对接收到的文件数据进行完整性验证。常见的数据完整性验证算法包括MD5和SHA1。SHA1算法对路由器等网络组件的要求较高。而MD5是由RSA发明一种消息摘要算法,具有快速和高效的优点。另外,使用JAVA语言开发的应用程序,可以方便的嵌入MD5算法。目前,Internet上很多国外的网站提供的下载资源都会同时提供一个md5验证文件。在接收端对整个文件进行一次md5编码,一旦验证失败,则将文件重新传输一遍。这种完整性校验方法能够有效地防止数据丟失(或损坏),但当传输的文件数据量较大时,特别是传输媒体文件时,重新传输整个文件将耗费大量的资源,极大地影响传输速度,甚至还会造成网络拥塞,因此,迫切需要一种适合于大数据量文件传输的完整性验证方法。
发明内容本发明的目的是克服现有技术的不足,提供一种适合于大数据量文件传输的完整性验证方法。为实现上述发明目的,本发明提供的在文件传输中的完整性校验方法,包括如下步骤l)在文件传输的发送端,对待传输的文件进行分块处理,得到多个子文件块;2)分别提取每个子文件块的校验码,将各子文件块及其校验码传输至接收端;3)在接收端,提取每个接收到的子文件块的校验码;4)对于每个子文件块,将步骤3)中提取的该子文件块的校验码与接收到的同一子文件块的校验码进行比对,当两个校验码一致时,该子文件块通过校验;当两个校验码不一致时,重新传输该子文件块。上述技术方案中,所述提取校验码的方法可以采用MD5算法或CRC算法。上述技术方案中,所述子文件块的数据量为256k的整数倍。上述技术方案中,所述子文件块的数据量在1M至IOM的范围内。上述技术方案中,所述完整性校验方法还包括步骤5),该步骤如下在接收端,将通过校验的各子文件块写入本地的物理文件,得到原传输文件。上述技术方案中,所述待传输文件为媒体文件。上述技术方案中,所述步骤4)中,为重新传输子文件块设置一个最大次数,当一个子文件块重传次数达到该最大次数时,则舍弃该子文件块。与现有技术相比,本发明具有如下技术效果由于本发明基于每个子文件块进行完整性校验,因此能够以较小的代价进行损坏数据的再传输,降低了大数据量文件重新传输的带宽及资源占用率,在最大程度上降低网络环境的设备压力,又可以充分保证媒体文件的完整。本发明特别适用于大数据量的媒体文件传输。图1是本发明一个实施例的在文件传输过程中进行完整性校验的流程图。具体实施例方式本发明的基本构思是采取优化分块的方式,对文件进行合理的分割,并对每个分块进4亍一次编码MD5的-险证。一旦分块-险证失败,可以只对当前数据块重新传输,从而大大节省了数据恢复所耗费的时间。下面结合具体实施例,对本发明的各个细节作进一步地描述。4实施例1在传输过程中,在正常的情况下,本实施例的服务器端(即数据发送端)需要做的工作如下读取本地的物理文件的内容到内存;使用指定的完整性算法,计算内存中的数据的消息摘要;将数据和数据消息摘要发送到网络。本实施例的客户端(即数据接收端)需要做的工作如下接受来自网络的数据传输;使用指定的完整性算法,验证接收到的数据;将验证成功的数据写入本地的物理文件。本实施例首先需要对文件进行分块。对文件分块的每一块大小,要同时考虑网络、摘要、硬盘的各种要素。从整体上来讲,子文件块的数据量大小最好是256的整数倍,且子文件块的数据量必须大于读取文件块大小和读取网络块大小。(其中读取文件块就是把文件读到内存中的一次操作,比如IOM的文件,如果申请了1M的内存,每次读到内存中后,处理完毕后,再次从文件中读1M的内容,连续读10次;读取网络块是指把网络数据包读到内存当中的一次操作)在分块完毕后,对文件的读、写操作,对网络的收、发操作,对内容的摘要、验证操作,每一种操作都是以文件块作为操作单位,所以文件分块的方式和每一块的大小直接影响了传输、验证的效率。图l是本实施例的流程图,该图示出了在完成文件分块后,基于子文件块进行文件传输的详细流程,简要描述如下a)开始文件传输,选择一子文件块;b)判断是否需要对文件进行验证,如果判断为是,则对该子文件块进行MD5编码,并将所得MD5编码传输给客户端,同时将该子文件块也传输给客户端;如果判断为否,则只需将子文件块传输给客户端即可;c)在客户端接收到子文件块后,再次判断是否需要对文件进行验证,如果判断为否,则回到步骤a),选择下一个子文件块进行传输;如果判断为是,则对接收到的子文件块重新进行MD5编码,然后判断该MD5编码与接收到的MD5编码是否一致,当编码一致时,当前子文件块通过校验,回到步骤a),选择下一个子文件块进行传输,当编码不一致时,则重新传输当前子文件块。不断重复上述过程,直至待传输文件的所有子文件块均传输完毕。另外,可以为重新传输子文件块设置一个最大次数,当一个子文件块重传次数达到最大次数时,舍弃该子文件块。下面结合实验数据,进一步分析本实施例的文件分块方式及每一块的大小对传输、验证的效率的影响。实验平台的配置以及操作系统如下服务端Windows2003Server3GCpu1G内存千兆网卡客户端Windows2003Server3GCpu1G内存千兆网卡测试素材为10G的AVI文件关于读取文件的测试参数。在实验环境下,使用EMCcx500的盘阵,多次实验10G的文件,使用本实施例的方法进行文件传输,其读写速度如表1所示。表l<table>tableseeoriginaldocumentpage6</column></row><table>在实验环境下,使用EMCcx500的盘阵,多次实验1G的文件,使用本实施例的方法进行文件传输,其读写速度如表2所示。表2<table>tableseeoriginaldocumentpage6</column></row><table>从表l、表2中,可以看出读写的文件越小速度越快;分块大小在1024KB左右,读写速度最快(针对测试的EMCcx500盘阵)。关于读取网络的测试参数。测试方式为,在千兆网的环境下,服务端向客户端不停的发送数据包,在客户端计算综合速度。测试结果如表3所示,表3<table>tableseeoriginaldocumentpage7</column></row><table>可以看出,分块大小对网络传输速度的影响不大,几乎可以达到千兆网环境下的传输速度峰值。关于验证算法的测试参数,在实验环境下,使用md5算法,对存在于内存中的块进行摘要计算。参数如下:采用1Mbuffer时31毫秒采用2Mbuffer时62毫秒采用3Mbuffer时IIO毫秒采用4Mbuffer时94毫秒采用5Mbuffer时94毫秒采用6Mbuffer时125亳秒采用7Mbuffer时141亳秒采用8Mbuffer时172毫秒采用9Mbuffer时188毫秒其中buffer是指緩存,也就是指分块(子文件块)的大小。可以看出分块的大小越大,验证所需要的时间也越多;分块大小在1M--IOM的范围内,所需要的时间都很短,不影响正常传送。在传输的过程中,需要客户端、服务端同时使用相同的摘要算法,对已经传输的内容进行校验。校验算法方面,可以对多种协议调用做了抽象,在传输协议看来,验证7算法都是同一个抽象的接口。通过配置,使用者可以选择使用MD5算法还是CRC算法等等。在实际应用中,常常使用的是MD5算法。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。权利要求1.一种在文件传输中的完整性校验方法,包括如下步骤1)在文件传输的发送端,对待传输的文件进行分块处理,得到多个子文件块;2)分别提取每个子文件块的校验码,将各子文件块及其校验码传输至接收端;3)在接收端,提取每个接收到的子文件块的校验码;4)对于每个子文件块,将步骤3)中提取的该子文件块的校验码与接收到的同一子文件块的校验码进行比对,当两个校验码一致时,该子文件块通过校验;当两个校验码不一致时,重新传输该子文件块。2.根据权利要求1所述的在文件传输中的完整性校验方法,其特征在于,所述提取校验码的方法可以采用MD5算法或CRC算法算法。3.根据权利要求1所述的在文件传输中的完整性校验方法,其特征在于,所述子文件块的数据量为256k的整数倍。4.根据权利要求1所述的在文件传输中的完整性校验方法,其特征在于,所述子文件块的数据量在1M至IOM的范围内。5.根据权利要求1所述的在文件传输中的完整性校验方法,其特征在于,所述完整性校验方法还包括步骤5),该步骤如下在接收端,将通过校验的各子文件块写入本地的物理文件,得到原传输文件。6.根据权利要求1所述的在文件传输中的完整性校验方法,其特征在于,所述待传输文件为媒体文件。,7.根据权利要求1所述的在文件传输中的完整性校验方法,其特征在于,所述步骤4)中,为重新传输子文件块设置一个最大次数,当一个子文件块重传次数达到该最大次数时,则舍弃该子文件块。全文摘要本发明提供一种在文件传输中的完整性校验方法,该方法包括如下步骤对待传输的文件进行分块处理,得到多个子文件块;分别提取每个子文件块的校验码,将各子文件块及其校验码传输至接收端;在接收端,提取每个接收到的子文件块的校验码;对于每个子文件块,将提取的该子文件块的校验码与接收到的同一子文件块的校验码进行比对,当两个校验码一致时,该子文件块通过校验;当两个校验码不一致时,重新传输该子文件块。与现有技术相比,本发明的优点是能够以较小的代价进行损坏数据的再传输,降低了大数据量文件重新传输的带宽及资源占用率,在最大程度上降低网络环境的设备压力,又可以充分保证媒体文件的完整。文档编号H04L29/08GK101453478SQ20071017824公开日2009年6月10日申请日期2007年11月28日优先权日2007年11月28日发明者伟孙,王弋珵,祎赵申请人:新奥特(北京)视频技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1