基于文件传输中文件损坏检测和恢复办法

基于文件传输中文件损坏检测和恢复办法

摘 要:在网络上文件传输是一种常见的应用,讨论在文件传输完成后检测错误和恢复数据的办法。

关键词:文件传输;文件校验;恢复

中图分类号;TP3 文献标识码:A 文章编号:1671―7597(2010)1020180―01

1前言

在网络应用中,文件传输是一种常见的网络应用。网络用尸可以方便地通过文件传输分享计算机的文件。常见的文件传输协议有FTP,Bit Torrent和Edonkey等等。但是由于网络传输的不稳定性,文件在传输当中经常容易出现错误。而且由于计算机资源大多为二进制资源,只要一个字节出现问题就有可能导致整个资源完全不能使用。随着网络带宽的不断增加和高清视频文件的出现,网络上出现一些容量高达数G甚至数十G的大文件,由于这些文件太大,文件在传输中出错的概率也大大的增加,如果传完才发现文件损坏且无法使用,这样势必会大大的浪费了时间和网络资源。本文讨论了在文件传输完成后检测错误和恢复数据的办法,提出了对传输完成的文件检测其完整性的办法,同时通过一些专用的软件工具和方法,增加传输数据的冗余度,以便在文件破损的情况下对文件进行修复。

2文件检测方法

网络文件在传输过程中容易出现损坏,也有可能在传输中被恶意修改,造成客户端下载的文件与服务器端的文件不一致。为了解决这些问题,需要对服务器端的文件和客户端的软件进行一致性检查,常用的的办法有以下几种。

2.1 MD5文件检测

MD5是message―digest algorithm 5(信息一摘要算法)的缩写,它通过一定的算法,根据源数据的每一位bit最终产生一个128bit(22位十六进制数)的校验值。它被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变。因此,我们可以通过对比同一文件的MD5值,来校验这个文件是否被“篡改”过。

在文件传输过程中,先在服务器端放入需要共享的文件和文件所生成的MD5值,客户端下载到文件后,通过软件计算出MD5值,通过对比服务器端和本地客户端文件的MD5值是否一致来验证文件在传输当中是否被破坏或被修改。

常见的MD5校验工具有WinMD511 MD5sum等等。

2.2 SFV文件检测

SFV是Simple File Verification(简单文件校验)的简写,SFV文件是一个简单的文本文件,它利用CRC32算法来完成简易的文件检测功能,对每个文件计算出一个数值并写入一个,SFV文本文件中。一般下载后会使用SFV工具对下载得到的文件进行计算,并将结果和文件中的结果进行比对,如果不同则表明下载的文件有误,需要重新下载。并用一个程序来计算指定一个或一批文件的校验、大小、日期等,并保存下来。SFV最常用在RAR、MP3、ISO等档案格式。

常见的sfv工具有QuickSFV、flashsfv。

3错误传输文件的恢复

文件传输完成后如果发现下载的文件在传输中已经改变,则说明文件在传输中间已经被破坏或被修改,通常的解决办法是重新下载,而实际上被破坏的文件与原文件不相符的部分只有很少的部分,这里介绍一些专用的软件工具和方法对下载的文件进行恢复。

3.1使用tar软件进行数据恢复

网络的传输的软件很多都是使用了压缩软件进行了压缩,WinRAR就是一款常见的压缩软件。WinRAR本身有一定的数据恢复功能。一般情况下,如果压缩包中损坏的数据是连续的,并且损坏的文件大小不超过压缩包设定的恢复用冗余数据的大小,那么WinRAR就可以自己完成数据恢复的工作,不过这需要在winRAR中进行设置,打开WinRAR,在“General”菜单下选中“Put Recovery Record”,然后在“Advented”菜单下选择中“Recovery Record”,选择恢复文件占原文件大小的比率,一般选l%一2%即可。这样,以后制作的压缩包就有自动恢复功能了,如果下载的文件有小的损坏,WinRAR直接就可以帮助你恢复数据,而不用重新下载。

3.2 Quickpar错误数据恢复

Quickpar软件是使用Reed Solomon算法进行文件校验,用以检测文件在传输当中是否被破坏,同时也可以使用文件生成的Par2校验文件对破损文进行一定程度上的恢复。

在文件提供下载的时候,在服务器端同时提供源文件和其通过quickpar生成的par2校验文件。文件下载完成后

文件服务器恢复测试,基于文件传输中文件损坏检测和恢复办法.doc相关推荐

  1. 使用ADB Pull文件传输中卡住的解决方法

    使用ADB Pull文件传输中卡住的解决方法 原因分析: 尝试的方法 最终解决方法 优化方法 原因分析: 硬件:PCIE转USB3.0(无供电),PC到手机延长线15M. 使用同一ADB.exe程序在 ...

  2. java socket 传输压缩文件_java基于socket传输zip文件功能示例

    本文实例讲述了java基于socket传输zip文件的方法.分享给大家供大家参考,具体如下: 服务器端程序: import java.io.*; import java.net.*; import j ...

  3. java p2p文件传输_P2P文件传输软件的设计与实现

    摘要:本系统是在深入了解P2P技术和JAVA实现平台的基础上,设计实现的基于JAVA的P2P文件传输软件,在局域网内实现点对点的文件传输功能.本系统的优点是在一个网络内每个Windows平台的客户机只 ...

  4. 微信文件传输助手文件存储位置问题

    记录微信中文件传输助手文件存储位置问题. 参考手机型号:华为Mate10. 文件位于:Android\data\com.tencent.mm\MicroMsg\Download 上述位置是文档的位置, ...

  5. 一种基于光强传输方程的散射成像相位恢复仿真研究

    目录 一.前言 二.基于光强传输方程的散斑相位恢复仿真实例 2.1 基于双平面的光强轴向微分估计 2.2 基于多平面的光强轴向微分估计 参考文献 一.前言 当光线经过云雾.烟尘等散射介质时,会引起光子 ...

  6. python读取文件夹-Python按顺序读取文件夹中文件

    参考资料: 涉及到文件操作,我们有时候会读取一个文件夹中的所有的文件.这些文件可能是文件名完全混乱的,也可能是完全格式化的(如1.png,2.png...).下面介绍Python中的几种按顺序(假如有 ...

  7. QListWidget读取本地文件夹中文件并显示名字,双击读取xml数据

    文章目录 前言 一.读取本地文件并显示 二.双击读取数据 前言 本文主要是为了解决QListWidget读取本地文件夹中文件,并且显示的问题.然后双击读取其中xml数据 一.读取本地文件并显示 如下的 ...

  8. 合并文件夹中子目录_01 Linux之统计文件夹中文件个数以及目录个数

    案例分析: 今天遇到了一个需要统计路径下目录个数的问题 如果一个一个的去数会很麻烦,找到了一篇文章刚好提到这个,于是我将方法整理了一下. 该方法的链接: Linux统计文件夹中文件个数以及目录个数_S ...

  9. 使用java对文件夹中文件后缀进行修改

    使用java对文件夹中文件后缀进行修改 在网上找到的项目资料,本打算学习下,结果给的资料是ziw格式,需要使用为知笔记才能打开,百度半天没有找到为知笔记的下载方式,但是看到可以转换格式为zip,然后进 ...

最新文章

  1. Android-PullLayout
  2. factorytalkview 卡 86_徕卡M党的街拍小贴士
  3. SpringMVC Controller的返回类型
  4. bat判断3306端口号是否被占用
  5. 算法设计与分析——贪心算法——最优装载问题
  6. 【转】UML基础: 第 2 部分 - 对象图 (Object Diagram)
  7. setState是同步的还是异步的(都有)
  8. 小汤学编程之JavaEE学习day08——Maven
  9. linux下备份mysql日志_Linux下使用Logrotate对MySQL日志进行轮转备份
  10. linux weblogic java_options_linux系统启动weblogic受管服务器报unable to get file lock, will ret_daring的解决...
  11. 英特尔技术流新帅履职,给员工们一些“笔记”学习一下
  12. php 获取有道翻译,python爬虫 身边的翻译专家——获取有道翻译结果
  13. 链接数据库 并且进行查询操作
  14. 会议管理系统java_javaweb会议管理系统
  15. TouchDesigner学习 全屏输出
  16. python管理系统学习
  17. linux重新分区丢失数据恢复,Linux数据恢复专题(1)——恢复丢失的分区(转载)...
  18. allegro使用汇总
  19. android客户端框架,最新的一版,通用Android 客户端架构设计,只有你还没看过
  20. 手把手带你 Unity 入门之从零创建一个时钟(GameObjects 与 Scripts)

热门文章

  1. windows服务器安全事件日志事件编号与描述
  2. mongodb Reconfig attempted to install a config that would change the implicit default write concern.
  3. Detection in Crowded Scenes: One Proposal, Multiple Predictions(拥挤场景下的检测:一个提议,多个预测)
  4. CSP 2021 复赛游记
  5. java愤怒的小鸟代码_用java实现小游戏“愤怒的小鸟”附源码和效果演示
  6. FT2232器件Bit Mode函数
  7. 用“番茄工作法”克服拖延症
  8. IOS iap处理逻辑流程图再次梳理
  9. “浪”的量子力学解释
  10. 【历史上的今天】3 月 12 日:万维网概念被提出;Google Code 停运;仙童半导体公司被收购