QQ/TM传送文件保证完整性的方法

对于经常用QQ/TM传文件的同学来说,应该没少碰到文件传输出错的情况。大部分的时候,传输出错会发生在因网络不稳定而频繁断线、续传的情况下。所以为了保证尽量不出错,所以还是来稍微了解一下QQ/TM的续传机制。

相信不少同学碰到过再次接收相同文件的时候无法续传的现象,想要续传是有一定条件的。那就是,传输是发送方主动断开的,如果是因为掉线、接收方重启或者其他种种情况发生的断开,那么很大几率无法进行续传。

此时想要恢复续传可以参照如下的方法:

1、将已经传送一部分的.tmp文件改一个其他名字
2、让发送方传送该文件,发送个几K之后,让发送方主动断开
3、删除刚刚接收到的tmp文件,并把之前的tmp文件改名为和刚刚删掉的tmp一样
4、再次让发送方传送,此时就可以续传了

现在来说说如何保证传送文件的完整性。

1、将文件用rar打包
这个是最最简单的方法,rar在解压的时候会进行crc校验,一旦出错会立刻提示用户。

2、rar打包并添加恢复记录
这个就更保险一些,一旦出错之后还可以使用rr进行修复。

3、利用BT的hash功能进行校验
如果传送的是大文件并且没有用rar打包,或者rr不足以修复,就可以使用这个方法。发送方用BT客户端(如uTorrent)给文件生成一个种子,再把种子或者磁力链接发给接收方并且开始做种。接收方用BT客户端打开种子文件或磁力链接,并把文件保存到与已接收文件相同的位置。此时BT客户端会发现文件已存在,并且开始进行hash校验。因为没有tracker服务器的参与,所以接收方需要手动添加发送方的IP和端口到用户列表里。校验完毕之后,客户端会开始从发送方那里下载损坏的部分。不过此方法对于内网同学来说会比较麻烦,需要做端口映射或者打开路由器的uPnP功能。

暂时想到的方法就是这些……

=================================我是分割线=================================

下面随便聊聊,说说为啥我会写这个……

昨天大虾给我传HOTD的BDMV,总共4个分卷,每个分卷3,906,250KB。这个就是断断续续传完的,最终导致了悲剧的后果……囧。我收到全部4个分卷之后,就开始解压。没想到的是,仅仅是双击打开第一个分卷rar就报错说“不可预料的文件末端”,出错文件是分卷2。结果我一看,分卷2的文件大小是3,906,251KB……我擦咧!?头一次遇到传着传着还传大了的情况!!我感到无比惊奇啊!!

还好这rar有5%的rr,尝试修复,结果修复不能……囧

于是问大虾要了分卷2制作的种子,进行hash,结果让我无语……UT显示下载量是80%!没错是80%!!整整少了20%的内容,5%的rr根本无能为力啊!到现在我都搞不清为啥会这样,不过幸好这80%都是从头开始连续的。于是我用FreeCommander的文件拆分功能,把这个不完整的文件按照78%和22%的体积比例给拆开。之后按照上面的恢复续传的方法,让78%的文件作为tmp文件进行续传,最后解决了问题,避免了彻底重传的悲剧……囧

所以说QQ/TM对传大文件要多加小心啊

另外还有一个比较奇怪的事情,就是QQ/TM传文件的速度非常快。怎么解释呢,就是说,用它传文件的时候,速度非常明显快于其他传输方法。我和大虾的测试结果是这样:
对传:800K左右
我从大虾FTP下载:15K左右
我从大虾HTTP下载:15K左右
大虾做种我用BT下载:10K左右……

FTP和HTTP,无论我用10线还是20线,都是一样的悲剧速度……BT更悲剧,连这俩都不如。完全无法和对传的速度相比。这该怎么解释?我能做出的猜测就是TX自己有一个路由表,使用他的IM客户端进行文件传送的时候,会通过这个路由表进行优化的路由选择,达到高速。其他的原因我是想不出来了,总不会是TX做了代理服务器进行中转吧……囧。希望有知道的同学告诉我一下m(_ _)m

Orico PCIe-USB3.0扩展卡入手 & 西数USB3.0移动硬盘速度测试

之前买了个西数的500G USB3.0移动硬盘,不过一直是接在机器的USB2.0接口上用的,速度打了不少折扣。于是我不能忍了,买了块3.0的扩展卡。

刚刚扩展卡入手,进行了速度测试。

首先是读取速度:

USB2_Read

USB3_Read

3.0的设备即使在2.0接口下也会达到很好的速度,在这个速度测试里得到了验证。在切换到3.0接口之后,读取速度翻了一倍。但是说实话并没有达到我理想中的速度,瓶颈或许就是出在硬盘自身上,这个没有办法了,除非弄个外置盒搞Raid了。

接下来是写入速度,写入速度用Fastcopy复制一个600多M的文件来测试:

总计读取 = 615.9 MB
总计写入 = 615.9 MB
总计文件 = 1 (0)
总计时间 = 27.34 秒
传输速度 = 22.52 MB/秒
文件速度 = 0.04 个文件/秒

总计读取 = 615.9 MB
总计写入 = 615.9 MB
总计文件 = 1 (0)
总计时间 = 8.91 秒
传输速度 = 69.15 MB/秒
文件速度 = 0.11 个文件/秒

写入速度的提升也是非常明显的,这个已经远远超过U盘的速度了。

小插曲:Orico这个扩展卡有提供额外的D型4pin供电插口,不过刚开始的时候我没有插。在进行写入测试的时候,速度一直维持在32M左右,让我觉得很诧异。之后把额外供电接上,才达到了这个正常的速度。买了这个扩展卡的同学,记得把额外供电接上~