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

“QQ/TM传送文件保证完整性的方法”的7个回复

  1. 于是继续保持分小卷的传统… = =

    至于内俩 TCP 协议好像要受到各层的扫描 偶就经常被最后一层卡巴扫得啥都接不到…
    记得以前 QQ 有显示过“建立 UDP 连接”的提示…

  2. 难道是传说中的“对传文件,先扫描HASH,再扫描QQ邮箱中转是否有同样文件,对传加速(仅限VIP?)”?猜的。。。飘过。。。

  3. 感觉是因为腾讯用的UDP传输算法很暴力,在高延迟的网络下也有好的效果,不过带来的后果是其它程序的网速可能会被严重拖慢。(小水管ADSL表示QQ上传文件的时候看网页的速度是慢得吐血。。。

  4. 话说……直接用TBTB会比较方便吧,可以起到校验的作用,tbc/tbr文件用QQ高速对传,应该不需要这么tmp/rar啊,BT/FTP/HTTP啊地折腾吧?

发表评论

电子邮件地址不会被公开。 必填项已用*标注