首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

断点续传有关问题

2012-03-16 
断点续传问题想做一个断点续传程序,基本原理应该明白了(不知有没有理解错误!)假如,开始我向对方传c:\a.rm

断点续传问题
想做一个断点续传程序,基本原理应该明白了(不知有没有理解错误!)
假如,开始我向对方传c:\a.rm文件,中途断掉,下次我传c:\directory\a.rm,虽然这两个文件名都是a.rm,但内容是完全不同的,
那对方怎么知道是新的文件还是上次未传完的文件,或者说,是续传,还是重新传?

我知道它是有可能请求文件的验算值,但对于大文件来说,生成那个验证值就会花费一定的时间,那效率不是会变低下!

有什么比较高效且准确的方法判断吗?谢谢~~~~~


[解决办法]
打错字,重发。


鉴别是不是同一个文件,基本上要用文件的hash来比较。

你点到点传文件,不是只有一路文件的数据。一般需要两路。一路信令,一路文件数据。
要传文件的时候,发送方就把把文件用MD5算一下,把得到的hash值作为信令的一部分发给对方,对方保存。
然后才开始传文件。

中途发生断点。

后面再发起文件发送的时候,同样的,发送方计算MD5把hash值发给发送方,接收方比较一下已有的hash跟新收到的hash就可以确定是不是要续传还是新文件。接收方这个时候是不需要计算的。

也就是计算文件的hash,只发生一次,在发送方。、

计算一个文件的hash,几百兆的文件也就几秒或者10多秒,这个相对于整个文件传输完成需要的时间是非常小的(所以因为网速有限,大家可能一般不会传太大的文件,当传比较大的文件,上百兆的,大家基本不会期待它很快传完,如果几十分钟能传完就觉得可以了。这个时候传之前计算hash话掉的几秒-10几秒用户应该完全可以接受)。


- 千里孤行

热点排行