发明名称 |
一种P2P下载文件完整性校验方法 |
摘要 |
本发明涉及一种P2P下载文件完整性校验方法,该方法根据下载客户端的特征参数将文件块分为子数据块,当接收到一个子数据块时,利用哈希算法,计算该子块的哈希摘要,并更新文件块的哈希向量;当下载并计算完最后一个子块的哈希值时,随即生成文件块的哈希值,在下载过程中对文件完整性校验的延迟进行隐藏;本发明充分利用了TCP异步接收缓冲区,使得P2P下载过程中的校验的延迟可以被完全隐藏,有效提高了P2P下载的效率,特别是嵌入式平台的上的P2P下载的效率。而且本发明不依赖于具体的校验框架或者协议,特别是本方法的核心思想,可以直接应用到现有的P2P下载协议中,如eMule协议和BitTorrent协议,具有较强的实用性。 |
申请公布号 |
CN101651709B |
申请公布日期 |
2012.09.05 |
申请号 |
CN200910091937.3 |
申请日期 |
2009.09.01 |
申请人 |
中国科学院声学研究所 |
发明人 |
王劲林;贺鹏程;邓浩江;孙鹏 |
分类号 |
H04L29/08(2006.01)I;H04L29/06(2006.01)I;G06F11/00(2006.01)I |
主分类号 |
H04L29/08(2006.01)I |
代理机构 |
北京法思腾知识产权代理有限公司 11318 |
代理人 |
杨小蓉 |
主权项 |
一种P2P下载文件完整性校验方法,该方法根据下载客户端的特征参数将文件块分为子数据块,当接收到一个子数据块时,利用哈希算法,计算该子块的哈希摘要,并更新文件块的哈希向量;当下载并计算完最后一个子块的哈希值时,随即生成文件块的哈希值,在下载过程中对文件完整性校验延迟进行隐藏;所述的P2P下载文件完整性校验方法包括以下步骤:(1)下载节点从种子文件服务器下载种子文件;下载过程中进行文件完整性校验的过程包括:从节点请求下载指定文件块数据,以所确定的子数据块的大小为单位,从节点顺序接收数据;(2)下载节点根据平台哈希计算能力、下载带宽和TCP异步接收缓冲区大小,计算能够隐藏哈希计算延迟的最大子数据块长度lmax,并根据计算所得的最大子数据块大小将文件分为多个子数据块;(3)下载节点通过种子文件里的中央索引服务器地址,登录中央索引服务器,请求拥有下载文件数据的节点列表;(4)下载节点从中央索引服务器返回的节点列表中选择伙伴节点,并同时向多个所选择的伙伴节点分别请求下载不同的文件块;(5)下载节点将文件块分为k个子数据块;(6)下载节点从伙伴节点接收数据,并在接收过程中几乎同步完成文件块哈希值的计算;(7)用计算出的文件块的哈希值与种子文件中,该文件块的原始哈希值进行比较,如果一致,则表明该文件块是没有篡改过的合法数据,将其存入文件中,否则,丢弃该文件块,并向其它节点请求下载该文件块;(8)重复步骤(4)到(7)直到整个文件下载完成。 |
地址 |
100190 北京市海淀区北四环西路21号中国科学院声学研究所 |