CN101651709B - 一种p2p下载文件完整性校验方法 - Google Patents

一种p2p下载文件完整性校验方法 Download PDF

Info

Publication number
CN101651709B
CN101651709B CN200910091937A CN200910091937A CN101651709B CN 101651709 B CN101651709 B CN 101651709B CN 200910091937 A CN200910091937 A CN 200910091937A CN 200910091937 A CN200910091937 A CN 200910091937A CN 101651709 B CN101651709 B CN 101651709B
Authority
CN
China
Prior art keywords
download
hash
file
sub
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910091937A
Other languages
English (en)
Other versions
CN101651709A (zh
Inventor
王劲林
贺鹏程
邓浩江
孙鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinrand Network Technology Co ltd
Original Assignee
Institute of Acoustics CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN200910091937A priority Critical patent/CN101651709B/zh
Publication of CN101651709A publication Critical patent/CN101651709A/zh
Application granted granted Critical
Publication of CN101651709B publication Critical patent/CN101651709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种P2P下载文件完整性校验方法,该方法根据下载客户端的特征参数将文件块分为子数据块,当接收到一个子数据块时,利用哈希算法,计算该子块的哈希摘要,并更新文件块的哈希向量;当下载并计算完最后一个子块的哈希值时,随即生成文件块的哈希值,在下载过程中对文件完整性校验的延迟进行隐藏;本发明充分利用了TCP异步接收缓冲区,使得P2P下载过程中的校验的延迟可以被完全隐藏,有效提高了P2P下载的效率,特别是嵌入式平台的上的P2P下载的效率。而且本发明不依赖于具体的校验框架或者协议,特别是本方法的核心思想,可以直接应用到现有的P2P下载协议中,如eMule协议和BitTorrent协议,具有较强的实用性。

Description

一种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下载文件完整性校验方法包括以下步骤:
(1)下载节点从种子文件服务器下载种子文件;下载过程中进行文件完整性校验的过程包括:从节点请求下载指定文件块数据,以所确定的子数据块的大小为单位,从节点顺序接收数据;
(2)下载节点根据平台哈希计算能力、下载带宽和TCP异步接收缓冲区大小,计算能够隐藏哈希计算延迟的最大子数据块长度lmax,并根据计算所得的最大子数据块大小将文件分为多个子数据块;
(3)下载节点通过种子文件里的中央索引服务器地址,登录中央索引服务器,请求拥有下载文件数据的节点列表;
(4)下载节点从中央索引服务器返回的节点列表中选择伙伴节点,并同时向多个所选择的伙伴节点分别请求下载不同的文件块;
(5)下载节点将文件块分为k个子数据块;
(6)下载节点从伙伴节点接收数据,并在接收过程中几乎同步完成文件块哈希值的计算;
(7)用计算出的文件块的哈希值与种子文件中,该文件块的原始哈希值进行比较,如果一致,则表明该文件块是没有篡改过的合法数据,将其存入文件中,否则,丢弃该文件块,并向其它节点请求下载该文件块;
(8)重复步骤(4)到(7)直到整个文件下载完成。
所述的步骤(2)中计算最大子数据块长度的方法,根据下载平台哈希计算能力、网络带宽和TCP异步接收缓冲区的大小按照公式(i)计算出最大子数据块的长度:
l max = b · υ h υ - - - ( i )
式(i)中,b是TCP异步接收缓冲区大小,单位:字节;υh是平台每秒哈希计算的字节数,单位:字节/秒;υ是平台网络下载带宽,单位:字节/秒。
所述的步骤(5)中文件块划分为k个子数据块的方法,子数据块数目k由公式(ii)计算得到;最后一个子数据块的长度llast由公式(iii)计算得到;
Figure GDA0000118653020000032
llast=L-(k-1)·lmax    (iii);
式中,L是指文件块的长度。
所述的步骤(6)中文件块数据的接收方法中,下载节点按步骤(5)所确定的各个子数据块的长度为单位,从伙伴节点顺序接收各个子数据块的数据。
所述的步骤(6)中计算文件块哈希值的方法中,下载节点每从伙伴节点接收到一个块子数据块就计算该子数据块的哈希摘要,并更新文件块的哈希向量;接收完最后一个子数据块并完成文件块哈希向量的最终更新后,由文件块哈希向量生成整个文件块的哈希值。
在步骤(6)计算子数据块摘要的过程中,为了避免因为下载节点性能的波动引起计算时间增加,还需要采取以下步骤:
A.开始计算时,设置计算定时器,用来测量计算哈希所耗费的时间,并根据所采用的哈希算法,在计算流程中设置合适的计算时间检查点;
B.根据哈希算法进行子数据块哈希摘要的计算;
C.每当执行到计算时间检查点,检查哈希计算时间是否超过最大缓冲时间τ;
D.如果哈希计算时间超过τ,则转向E;否则转向B继续哈希摘要的计算;
E.暂停哈希计算,将TCP异步接收缓冲区的数据立即取出,以保证底层数据的正常接收;
F重置定时器,转向B,从暂停的位置开始继续执行哈希摘要计算的后续流程;
G.结束哈希块摘要的计算,完成文件块哈希向量的更新。
需要注意的是,步骤(4)可能同时向多个伙伴节点分别请求不同的文件块下载。
所述的步骤C中,获得最大缓冲时间τ需要按照公式(iv)进行计算:
τ = b υ - - - ( iv ) ;
式中,b是TCP异步接收缓冲区大小,单位:字节;υ是平台网络下载带宽,单位:字节/秒。
由于TCP异步接收缓冲区的存在,根据步骤(2)和(5)将原本较大的文件块分成多个子数据块后,采用步骤(6)所述方法,下载节点在计算子数据块哈希值的过程中,仍然可以保持数据的正常接收,从而在下载过程中隐藏了哈希计算产生的延迟。
对文件完整性校验延迟进行隐藏的方法。包括根据下载客户端的特征参数将文件块分为子数据块、以及下载过程中进行文件完整性校验的方法和流程。将文件块分为子数据块的方法包括:根据下载客户端TCP接收缓冲区的大小、下载客户端的下载带宽和客户端的计算能力,计算最大子数据块大小;根据计算所得的最大子数据块大小将文件分为多个子数据块。下载过程中进行文件完整性校验的过程包括:从节点请求下载指定文件块数据,以所确定的子数据块的大小为单位,从节点顺序接收数据;当接收到一个子数据块时,利用哈希算法,计算该子块的哈希摘要,并更新文件块的哈希向量;当下载并计算完最后一个子块的哈希值时,随即生成文件块的哈希值。由于有效利用了下载客户端TCP异步接收缓冲区,较小子数据块的哈希计算产生的延迟刚好可以被其隐藏,从而有效提高了P2P下载的效率。该方法简单有效,特别适合于计算能力弱的嵌入式平台。
本发明的文件下载以及校验过程的完整步骤如下:
(1)下载节点从种子文件服务器下载种子文件。
(2)下载节点根据平台哈希计算能力、下载带宽和TCP异步接收缓冲区大小,根据公式(i)计算出最大缓冲时间τ,根据公式(ii)计算能够隐藏哈希计算延迟的最大子数据块长度lmax
τ = b υ - - - ( i )
Figure GDA0000118653020000052
上述二式中,b是TCP异步接收缓冲区大小,单位:字节;υh是平台每秒哈希计算的字节数,单位:字节/秒;υ是平台网络下载带宽,单位:字节/秒。
(3)下载节点通过种子文件里的中央索引服务器地址,登录中央索引服务器,请求拥有下载文件数据的节点列表。
(4)下载节点从中央索引服务器返回的节点列表中选择伙伴节点,并向其请求文件块数据。
(5)下载节点将文件块按照每块大小为lmax字节,将文件块分为
Figure GDA0000118653020000053
个子数据块,其中最后一个子数据块长度llast由公式(iv)计算得到,其它子数据块长度为lmax
llast=L-(k-1)·lmax    (iv)
(6)下载节点以子数据块为单位按顺序从伙伴节点接收数据。每接收到一个子数据块,就计算该子数据块的哈希摘要,并更新文件块的哈希向量。当接收完最后一个子数据块并完成文件块的哈希向量的最终更新时,由哈希向量生成整个文件块的哈希值。
(7)用计算出的文件块的哈希值与种子文件中,该文件块的原始哈希值进行比较,如果一致,则表明该数据块是没有篡改过的合法数据,将其标记为已下载并存入文件中,否则,丢弃该文件块。
(8)重复步骤(4)到(7)直到整个文件下载完成。
本发明的P2P下载文件完整性校验方法中,所述的下载节点在文件块数据的接收过程中就进行文件块的哈希值计算,由于TCP异步接收缓冲区的存在,步骤(6)中下载节点在计算子数据块哈希值的过程中,仍然保持数据的正常接收,从而在下载过程中隐藏了哈希计算产生的延迟。
本发明的优点在于:充分利用了TCP异步接收缓冲区,使得P2P下载过程中的校验延迟可以被完全隐藏,有效提高了P2P下载的效率,特别是嵌入式平台的上的P2P下载的效率。从具体实施的情况看,根据不同平台性能的差异,本方法可以减少10%到30%的总下载时间,对于在嵌入式平台上用P2P协议下载大文件的性能改善特别明显。
本发明的优点还在于:所提方法不依赖于具体的校验框架或者协议,特别是本方法的核心思想,可以直接应用到现有的P2P下载协议中,如eMule协议和BitTorrent协议,具有较好的可行性。
附图说明
图1为典型的P2P下载系统结构图;
图2本发明中P2P文件完整性校验延迟隐藏方法流程;
图3基于SHA1的具体哈希计算流程;
图4基于SHA1的子数据块摘要计算流程。
图面说明
1、下载节点  2、种子节点  3、中央索引服务器  4、种子文件服务器
具体实施方式
下面结合附图和具体实施方式,对本发明的P2P下载文件完整性校验延迟隐藏方法进行说明。
在对本发明的P2P下载文件完整性校验延迟隐藏方法进行说明前,首先对本发明的应用场景进行说明。如图1所示,本发明所涉及的P2P下载系统包括:
下载节点1:从网络中其它节点下载数据的节点。通常,在P2P网络中,一个下载节点也会向其它下载节点上传数据。
种子节点2:拥有完整文件数据的节点。种子节点只向其它下载节点上传数据,不下载数据。
中央索引服务器3:维护整个P2P网络中的所有节点信息,包括下载节点和种子节点。并向下载节点提供网络中其它节点的信息。
种子文件服务器4:存储下载文件的种子信息文件,并通过Web等方式发布种子信息文件。种子文件主要包含中央索引服务器地址、下载文件的名称、长度、文件块大小、文件哈希信息和各个文件块的原始哈希值等信息。
如图2所示,所述文件下载以及校验过程包括以下步骤:
步骤201、下载节点从种子文件服务器下载种子文件。
步骤202、下载节点根据平台哈希计算能力、下载带宽和TCP异步接收缓冲区大小,根据公式(i)计算出最大缓冲时间τ,根据公式(ii)计算能够隐藏哈希计算延迟的最大子数据块长度lmax
τ = b υ - - - ( i )
Figure GDA0000118653020000072
上述二式中,b是TCP异步接收缓冲区大小,单位:字节;υh是平台每秒哈希计算的字节数,单位:字节/秒;υ是平台网络下载带宽,单位:字节/秒。
步骤203、下载节点通过种子文件里的中央索引服务器地址,登录中央索引服务器,请求拥有下载文件数据的节点列表。
步骤204、下载节点从中央索引服务器返回的节点列表中选择伙伴节点,并向其请求文件块数据。
步骤205、下载节点将文件块按照每块大小为lmax字节,将文件块分为
Figure GDA0000118653020000073
个子数据块,其中最后一个子数据块长度llast由公式(iii)计算得到,其它子数据块长度为lmax
llast=L-(k-1)·lmax    (iv)
步骤206、下载节点以子数据块为单位按顺序从伙伴节点接收数据。每接收到一个子数据块,就计算该子数据块的哈希摘要,并更新文件块的哈希向量。当接收完最后一个子数据块并完成文件块的哈希向量的最终更新时,整个文件块的哈希值立即由哈希向量生成。每接收到一个子数据块,就计算该子数据块的哈希值,并更新文件块的哈希值。当接收完最后一个子数据块并完成文件块哈希值更新时,整个文件块的哈希值计算即完成。
步骤207、用计算出的文件块的哈希值与种子文件中,该文件块的原始哈希值进行比较,如果一致,则表明该数据块是没有篡改过的合法数据,将其标记为已下载并存入文件中,否则,丢弃该文件块。
步骤208、重复步骤204到207直到整个文件下载完成。
具体实施中,公式(i)和(ii)中的相关参数可以实际测得。
在步骤206计算子数据块摘要的过程中,为了避免因为下载节点性能的波动引起计算时间增加,还需要采取以下步骤:
206-A.开始计算时,设置计算定时器,用来测量计算哈希所耗费的时间,并根据所采用的哈希算法,在计算流程中设置合适的计算时间检查点;
206-B.根据哈希算法进行子数据块哈希摘要的计算;
206-C.每当执行到计算时间检查点,检查哈希计算时间是否超过最大缓冲时间τ;
206-D.如果哈希计算时间超过τ,则转向206-F;否则转向206-C继续哈希摘要的计算;
206-E.暂停哈希计算,将TCP异步接收缓冲区的数据立即取出,以保证底层数据的正常接收;
206-F.重置定时器,转向206-B,从暂停的位置开始继续执行哈希摘要计算的后续流程;
206-G.结束哈希块摘要的计算,完成文件块哈希向量的更新。
下面,以采用BitTorrent协议下载数据为例说明本方法的具体实施,并假设下载节点的平台参数如下:文件哈希计算的速率大约是53MB/s,网络带宽为100Mbps,TCP异步接收缓冲区大小为64KB。根据公式(i),可以计算得到最佳子数据块长度lmax=271KB,为了避免测量误差带来的影响,实际使用中可以取lmax=256KB。假设下载的文件长度为4GB,文件块长度为4MB,则,可以根据公式(ii)计算得到每一个文件块可以分为k=16个子数据块,根据公式(iii)可以计算得到最后一个子数据块的长度llast=256KB,其它子数据块的长度为256KB。
由于BitTorrent采用SHA1哈希算法来计算每个文件块的哈希值,并对其进行校验,结合本发明所提延迟隐藏方法后,其文件块的哈希计算步骤如下:
步骤301、根据SHA1标准算法,设置文件块的初始哈希向量;
步骤302、从伙伴节点接收一个子数据块;
步骤303、判断该子数据块是否是最后一个子数据块,若是则转向步骤304,否则转向步骤305;
步骤304、在最后一个子数据块末尾追加1比特′1′,而后追加k比特′0′,使得消息总长度模512后等于448。最后追加8字节文件块的总长度。
步骤305、将追加信息后的子数据块分为长度为512比特的N个子消息块:Chunk[i];
步骤306、根据SHA1标准算法,顺序计算每一个Chunk的摘要信息,并用计算结果更新文件块的哈希向量,更新方法如图3中对应步骤所示;
步骤307、如果该子数据块是最后一个子数据块,则转向步骤308,则否转向步骤302;
步骤308、将文件块的哈希向量按照图3中对应的步骤所示,拼接起来,生成最终的文件块的哈希值;
在步骤306计算子数据块摘要的过程中,为了避免因为下载节点性能的波动引起计算时间增加,还需要采取以下步骤:
306-A.开始计算时,设置计算定时器,用来测量计算哈希所耗费的时间,并根据所采用的SHA1哈希算法,在计算流程中每计算512比特数据就设置一个时间检查点;
306-B.根据哈希算法进行子数据块哈希摘要的计算;
306-C.每当执行到计算时间检查点,检查哈希计算时间是否超过最大缓冲时间τ;
306-D.如果哈希计算时间超过τ,则转向206-E。否则转向206-B继续哈希摘要的计算;
306-E.暂停哈希计算,将TCP异步接收缓冲区的数据立即取出,以保证底层数据的正常接收;
306-F.重置定时器,转向206-B,从暂停的位置开始继续执行哈希摘要计算的后续流程;
306-G.结束哈希块摘要的计算,完成文件块哈希向量的更新。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (7)

1.一种P2P下载文件完整性校验方法,该方法根据下载客户端的特征参数将文件块分为子数据块,当接收到一个子数据块时,利用哈希算法,计算该子块的哈希摘要,并更新文件块的哈希向量;当下载并计算完最后一个子块的哈希值时,随即生成文件块的哈希值,在下载过程中对文件完整性校验延迟进行隐藏;
所述的P2P下载文件完整性校验方法包括以下步骤:
(1)下载节点从种子文件服务器下载种子文件;下载过程中进行文件完整性校验的过程包括:从节点请求下载指定文件块数据,以所确定的子数据块的大小为单位,从节点顺序接收数据;
(2)下载节点根据平台哈希计算能力、下载带宽和TCP异步接收缓冲区大小,计算能够隐藏哈希计算延迟的最大子数据块长度lmax,并根据计算所得的最大子数据块大小将文件分为多个子数据块;
(3)下载节点通过种子文件里的中央索引服务器地址,登录中央索引服务器,请求拥有下载文件数据的节点列表;
(4)下载节点从中央索引服务器返回的节点列表中选择伙伴节点,并同时向多个所选择的伙伴节点分别请求下载不同的文件块;
(5)下载节点将文件块分为k个子数据块;
(6)下载节点从伙伴节点接收数据,并在接收过程中几乎同步完成文件块哈希值的计算;
(7)用计算出的文件块的哈希值与种子文件中,该文件块的原始哈希值进行比较,如果一致,则表明该文件块是没有篡改过的合法数据,将其存入文件中,否则,丢弃该文件块,并向其它节点请求下载该文件块;
(8)重复步骤(4)到(7)直到整个文件下载完成。
2.根据权利要求1所述的P2P下载文件完整性校验方法,其特征在于,所述的步骤(2)中计算最大子数据块长度的方法,根据下载平台哈希计算能力、网络带宽和TCP异步接收缓冲区的大小按照公式(i)计算出最大子数据块的长度:
l max = b · υ h υ - - - ( i )
式(i)中,b是TCP异步接收缓冲区大小,单位:字节;υh是平台每秒哈希计算的字节数,单位:字节/秒;υ是平台网络下载带宽,单位:字节/秒。
3.根据权利要求1所述的P2P下载文件完整性校验方法,其特征在于,所述的步骤(5)中文件块划分为k个子数据块的方法,子数据块数目k由公式(ii)计算得到;最后一个子数据块的长度llast由公式(iii)计算得到;其它子数据块长度为lmax,由公式(i)计算得到:
Figure FDA0000118653010000021
llast=L-(k-1)·lmax    (iii);
式中,L是指文件块的长度。
4.根据权利要求1所述的P2P下载文件完整性校验方法,其特征在于,所述的步骤(6)中文件块数据的接收方法中,下载节点按步骤(5)所确定的各个子数据块的长度为单位,从伙伴节点顺序接收各个子数据块的数据。
5.根据权利要求1所述的P2P下载文件完整性校验方法,其特征在于,所述的步骤(6)中计算文件块哈希值的方法中,下载节点每从伙伴节点接收到一个子数据块就计算该子数据块的哈希摘要,并更新文件块的哈希向量;接收完最后一个子数据块并完成文件块哈希向量的最终更新后,由文件块哈希向量生成整个文件块的哈希值。
6.根据权利要求5所述的P2P下载文件完整性校验方法,其特征在于,所述的步骤(6)中计算子数据块的哈希摘要的方法,包括以下步骤:
A.开始计算时,设置计算定时器,用来测量计算哈希所耗费的时间,并根据所采用的哈希算法,在计算流程中设置合适的计算时间检查点;
B.根据哈希算法进行子数据块哈希摘要的计算;
C.每当执行到计算时间检查点,检查哈希计算时间是否超过最大缓冲时间τ;
D.如果哈希计算时间超过τ,则转向E;否则转向B继续哈希摘要的计算;
E.暂停哈希计算,将TCP异步接收缓冲区的数据立即取出,以保证底层数据的正常接收;
F.重置定时器,转向B,从暂停的位置开始继续执行哈希摘要计算的后续流程;
G.结束哈希块摘要的计算,完成文件块哈希向量的更新。
7.根据权利要求6所述的P2P下载文件完整性校验方法,其特征在于,所述的步骤C中,获得最大缓冲时间τ需要按照公式(iv)进行计算:
τ = b υ - - - ( iv ) ;
式中,b是TCP异步接收缓冲区大小,单位:字节;υ是平台网络下载带宽,单位:字节/秒。
CN200910091937A 2009-09-01 2009-09-01 一种p2p下载文件完整性校验方法 Active CN101651709B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910091937A CN101651709B (zh) 2009-09-01 2009-09-01 一种p2p下载文件完整性校验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910091937A CN101651709B (zh) 2009-09-01 2009-09-01 一种p2p下载文件完整性校验方法

Publications (2)

Publication Number Publication Date
CN101651709A CN101651709A (zh) 2010-02-17
CN101651709B true CN101651709B (zh) 2012-09-05

Family

ID=41673814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910091937A Active CN101651709B (zh) 2009-09-01 2009-09-01 一种p2p下载文件完整性校验方法

Country Status (1)

Country Link
CN (1) CN101651709B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101945125A (zh) * 2010-08-30 2011-01-12 北京邮电大学 一种文件传输的方法和装置
CN102546731B (zh) * 2010-12-30 2015-03-11 中国移动通信集团公司 点对点流媒体系统的子块完整性校验方法和系统
CN102739704A (zh) * 2011-04-02 2012-10-17 中兴通讯股份有限公司 一种对等网络中数据迁移的方法及系统
CN103369002B (zh) * 2012-03-30 2018-03-27 腾讯科技(深圳)有限公司 一种资源下载的方法及系统
CN103699610A (zh) * 2013-12-13 2014-04-02 乐视网信息技术(北京)股份有限公司 一种生成文件校验信息的方法、文件校验方法及设备
CN104486614A (zh) * 2014-12-10 2015-04-01 央视国际网络无锡有限公司 Mp4视频格式损坏检测方法
CN105208135B (zh) * 2015-10-26 2019-06-14 天津书生云科技有限公司 一种文件传输方法和设备
CN105227680A (zh) * 2015-10-26 2016-01-06 广东佳学信息科技有限公司 一种智能设备文件下载有效性控制方法
CN106060046A (zh) * 2016-05-30 2016-10-26 努比亚技术有限公司 一种防止下载劫持的装置、移动终端和方法
CN108632318B (zh) 2017-03-21 2022-02-22 腾讯科技(深圳)有限公司 一种数据校验方法、数据发送方法、相关装置及系统
CN110351310B (zh) * 2018-04-02 2024-06-18 北京京东尚科信息技术有限公司 一种基于层级树的文件分发方法和装置
CN112883427A (zh) * 2019-11-29 2021-06-01 航天信息股份有限公司 文件完整性的检测方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155296A (zh) * 2006-09-29 2008-04-02 中国科学技术大学 数据传输的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155296A (zh) * 2006-09-29 2008-04-02 中国科学技术大学 数据传输的方法

Also Published As

Publication number Publication date
CN101651709A (zh) 2010-02-17

Similar Documents

Publication Publication Date Title
CN101651709B (zh) 一种p2p下载文件完整性校验方法
US9158806B2 (en) Integrity checking and selective deduplication based on network parameters
KR101745456B1 (ko) HiL 시뮬레이션 환경에서 대용량 데이터를 전송하기 위한 전자제어 장치, 이를 포함하는 시스템 및 그 방법
RU2016113701A (ru) Система связи, узел, сервер управления, способ осуществления связи и программа
WO2012142844A1 (zh) 一种基于p2p的文件分发系统及分片方法
CN103227818A (zh) 终端、服务器、文件传输方法、文件存储管理系统和方法
CN107179878A (zh) 基于应用优化的数据存储的方法和装置
CN104580371A (zh) 机会网络中文件固定和可变大小分片、传输、副本控制法
CN112702267B (zh) 分布式训练路由方法、系统、储存介质及计算机设备
CN105072194A (zh) 一种分布式文件系统中的存储数据修复结构及修复方法
US9313291B2 (en) Systems and methods for transparent communication with bandwidth conservation and HTTP caching
JP5609584B2 (ja) シェーピング装置及び方法
CN107682235A (zh) 一种基于卡尔曼滤波的传输时延预测数据调度方法
CN115189908A (zh) 一种基于网络数字孪生体的随机攻击生存性评估方法
BR112021003214A2 (pt) método de transmissão de pacote de dados e aparelho de transmissão de pacote de dados
CN105681425B (zh) 基于分布式存储系统的多节点修复方法及其系统
CN107196991A (zh) 一种面向网络编码集群系统的数据更新方法
KR102425039B1 (ko) 분산 딥러닝 환경에서 데이터 압축 장치 및 방법
CN111835640B (zh) 基于连续时间聚合图的最短时延路由方法
CN105610670B (zh) 以太网交换网络的通信方法和装置
CN114710692B (zh) 多媒体文件处理方法和装置
CN103200104A (zh) 一种基于流量预测的启发式路由表更新方法
CN108897707A (zh) 一种多控制器的容量统计方法、装置及设备
WO2010139161A1 (zh) 一种m2m平台及大容量下载的负荷分担实现方法
Shen et al. Bandwidth-aware delayed repair in distributed storage systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210729

Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001

Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd.

Address before: 100190 Institute of acoustics, Chinese Academy of Sciences, No. 21 West Fourth Ring Road, Haidian District, Beijing

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

TR01 Transfer of patent right