[发明专利]一种P2P下载文件完整性校验方法有效
| 申请号: | 200910091937.3 | 申请日: | 2009-09-01 |
| 公开(公告)号: | CN101651709A | 公开(公告)日: | 2010-02-17 |
| 发明(设计)人: | 王劲林;贺鹏程;邓浩江;孙鹏 | 申请(专利权)人: | 中国科学院声学研究所 |
| 主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06;G06F11/00 |
| 代理公司: | 北京法思腾知识产权代理有限公司 | 代理人: | 杨小蓉 |
| 地址: | 100190北京市海淀区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 p2p 下载 文件 完整性 校验 方法 | ||
技术领域
本发明涉及网络通信P2P数据分发领域,特别涉及一种P2P下载文件完整性校 验方法。
背景技术
P2P下载是目前互联网文件下载的主要方式,不同于传统的C/S模式,P2P下载 的数据来自多个不同的节点,而且没有办法确保所有的节点都可信,因此必须对下 载的文件进行完整性校验。目前主流的P2P下载协议,如eMule和BitTorrent,大多 通过将一个文件分成不同的文件块,每下载完成一个完整的文件块后,对其采用MD4 或者SHA1哈希算法进行完整性校验,以便于快速定位出现错误的文件块,从而保 证整个文件的完整性。
对于特定平台,TCP异步接收缓冲区的大小和哈希计算的能力通常是固定的。 同时,对于大文件的下载,为了减少传输原始文件块哈希值带来的通信开销,文件 块也不可能过小。例如:eMule的文件块大小固定为9.28MB;BitTorrent的文件块大 小根据文件大小确定,一个4GB的大文件,其文件块大小通常为2MB或者4MB。 特别的,对于嵌入式平台上的P2P下载,由于其计算能力低下,如果要使哈希计算 的时间足够短,必须使文件块的大小足够小,如16KB,直接减小文件块大小显然不 是可行办法。因此,理论上,现有的文件完整性校验带来的时间延迟主要由两部分 构成:
1)哈希计算时间。由于MD4和SHA1这类哈希算法的时间复杂度通常为O(n), 其中n是文件块字节数,文件块越大,时间开销越大。例如,100Mbps的网络上传 输4MB的数据块,理论最短传输时间大约是320毫秒;一台主频为2.4GHz的普通 计算机计算一个大小为4M的文件的SHA1哈希值,其总时间开销大约是75毫秒; 而在一台主频为200MHz的嵌入式设备上,时间开销则达到700毫秒。
2)传输时间开销。文件完整性校验大多是分块校验,在每一个分块校验过程中, 应用程序将会暂停接收数据,如果暂停时间过长,可能使发送节点将接收节点从发 送服务队列中移除甚至断开与节点的传输连接。最终使得节点必须再等待一段时间 才能够获取发送节点的服务。因此,这部分的时间开销如果过大,将进一步降低文 件传输的性能。
另外,也可以采用开启额外线程来进行哈希计算,使得哈希计算与数据接收并 行进行。但是,一方面开启新线程来进行文件完整性校验会增加系统软件的复杂度; 另一方面由于P2P下载过程中,节点需要同时从多个伙伴节点下载数据,将导致开 启过多线程,反而可能会增加系统开销,降低效率。一些文献结合其提出的校验框 架和协议,提出了基于块的概率校验算法,其思想是选择性的对部分文件块进行校 验以减少整个文件完整性校验过程中的计算开销,但并不能完全避免漏检,因此, 并不适合于可靠性要求很高的文件下载。
发明内容
本发明的目的是,针对现有的文件完整性校验方法的不足,提出一种P2P下载 文件完整性校验方法,在P2P下载过程中,利用TCP异步接收缓冲区隐藏P2P下载 过程中的文件完整性校验延迟,提高P2P下载的效率,特别是提高哈希计算能力低 下的嵌入式P2P下载的效率。本发明可以应用于BitTorrent协议以及其它类似的P2P 下载协议。
由于TCP基于滑动窗口的流量控值机制,运行于操作系统内核的TCP协议栈, 对于每一个TCP连接通常都有一个TCP异步接收缓冲区;所谓的TCP异步接收缓 冲区是指,当上层应用在处理其它事务而没有从TCP协议栈读取网络数据时,TCP 协议栈依然保持正常的数据接收,并将数据缓存在操作系统内核的一块内存区。TCP 异步接收缓冲区的大小取决于具体的协议栈实现,通常为65535字节左右。因此, 如果应用程序暂停接收数据的时间足够短,使得这段时间内TCP异步接收缓冲区没 有填满,那么底层的数据接收实际是不受影响的。换句话说,如果每一次哈希计算 的时间足够短或者TCP异步接收缓冲区足够大,前面提到的文件完整性校验延迟是 可以完全隐藏的。
为了实现上述目的,本发明提供一种P2P下载文件完整性校验方法,该方法根 据下载客户端的特征参数将文件块分为子数据块,当接收到一个子数据块时,利用 哈希算法,计算该子块的哈希摘要,并更新文件块的哈希向量;当下载并计算完最 后一个子块的哈希值时,随即生成文件块的哈希值,在下载过程中对文件完整性校 验延迟进行隐藏;
所述的P2P下载文件完整性校验方法包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910091937.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种大机组推力盘与联轴器同时液压拆装结构
- 下一篇:便携式无绳水泵





