著录项信息
专利名称 | 一种数据传输的方法和装置 |
申请号 | CN201380000699.5 | 申请日期 | 2013-06-24 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-02-26 | 公开/公告号 | CN103609091A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 陈峥;杨思茗;覃伟峰 |
代理机构 | 北京弘权知识产权代理事务所(普通合伙) | 代理人 | 陈蕾;许伟群 |
摘要
本发明实施例公开一种数据传输的方法和装置。其中,所述方法包括:接收待传输的数据块,所述数据块由原始数据流经数据块分割操作获得;判断多个所述数据块是否为连续重复数据块,如果是,则获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,所述二级缓存指纹由所述指纹信息序列经过二级缓存得到;将所述二级缓存指纹代替所述连续重复的数据块进行传输。本发明实施例能够在传输数据的过程中减小网络传输的数据量。
1.一种数据传输的方法,其特征在于,包括:
接收待传输的数据块,所述数据块由原始数据流经数据块分割操作获得;
判断多个所述数据块是否为连续重复数据块,如果是,则获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,所述二级缓存指纹由所述指纹信息序列经过二级缓存得到;
将所述二级缓存指纹代替所述连续重复的数据块进行传输;
其中,所述判断多个所述数据块是否为连续重复数据块,包括:
查找保存的已传输的数据块的指纹信息以及所述已传输数据块的顺序信息;
将多个所述数据块对应的指纹信息与所述保存的已传输的数据块的指纹信息进行匹配,如果匹配,且多个所述数据块的顺序与所述已传输数据块中相同数据块的顺序相同,则确定多个所述数据块为连续重复数据块;否则,确定多个所述数据块为非连续重复数据块;
所述已接收的数据块的指纹信息按照散列的形式进行保存,并将有冲突的散列项按照链表连接。
2.根据权利要求1所述的方法,其特征在于,还包括:
如果多个所述数据块为非连续重复数据块,则计算每个数据块的指纹信息;
将所述每个数据块的指纹信息代替对应的数据块进行传输。
3.根据权利要求1所述的方法,其特征在于,所述数据块由原始数据流经数据块操作获得,包括:
所述数据块由原始数据流经过Rabin算法进行不定长分块获得。
4.一种数据传输装置,其特征在于,包括:
接收模块,用于接收待传输的数据块,所述数据块由原始数据流经数据块分割操作获得;
判断模块,用于判断多个所述数据块是否为连续重复数据块,如果是,则触发二级缓存指纹获取模块;
所述二级缓存指纹获取模块,用于当多个所述数据块为连续重复数据块时,获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,所述二级缓存指纹由所述指纹信息序列经过二级缓存得到;
传输模块,用于将所述二级缓存指纹代替所述连续重复的数据块进行传输;
所述判断模块,包括:
查找单元,用于查找保存的已传输的数据块的指纹信息以及所述已传输数据块的顺序信息;
匹配单元,用于将多个所述数据块对应的指纹信息与所述保存的已传输的数据块的指纹信息进行匹配,如果匹配,且多个所述数据块的顺序与所述已接收数据块中相同数据块的顺序相同,则触发第一结果单元;否则,触发第二结果单元;
所述第一结果单元,用于确定多个所述数据块为连续重复数据块;
所述第二结果单元,用于确定多个所述数据块为非连续重复数据块;
所述已接收的数据块的指纹信息按照散列的形式进行保存,并将有冲突的散列项按照链表连接。
5.根据权利要求4所述的装置,其特征在于,所述传输模块还用于:
如果多个所述数据块为非连续重复数据块,则计算每个数据块的指纹信息,将所述每个数据块的指纹信息代替对应的数据块进行传输。
6.根据权利要求4所述的装置,其特征在于,所述数据块由原始数据流经过Rabin算法进行不定长分块获得。
7.一种服务器,其特征在于,包括:处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述服务器运行时,所述处理器执行所述存储器存储的所述计算机执行指令,并通过所述通信接口与所述服务器外部的设备进行通信,以使所述服务器执行如权利要求1-3中任一项所述的数据传输的方法。
一种数据传输的方法和装置\n技术领域\n[0001] 本发明涉及网络数据处理技术领域,特别涉及一种数据传输的方法和装置。\n背景技术\n[0002] 随着计算机和通信技术的发展,Internet网络在过去的十几年中迅猛发展,但拥塞问题越来越严重。\n[0003] 数据缓存技术主要用来解决带宽瓶颈、应用延迟问题。\n[0004] 现有技术中,字节缓存(protocol-dependent redundancy elimination)主要包括两个步骤:数据分块和匹配检测。\n[0005] 在数据分块阶段,采用适当的算法对数据流进行划分,尽量使对数据流添加修改删除等局部操作对后续未变化数据的划分位置不产生影响,并对每个分块计算指纹。\n[0006] 在匹配检测阶段,现有方案通常直接对数据块进行指纹计算,并在以前的指纹集合中进行查找,判断该指纹是否重复,如果重复,则认为该数据块已经出现过。在后续数据传输过程中,用检测出的重复指纹块的指纹信息代替该重复数据块,即:不发送该重复数据块而发送该重复数据块对应的指纹信息。\n[0007] 按照现有技术中的字节缓存方法,假设数据块的平均长度为W,数据流的总长为L,如果假设该L长度的数据流以前已经全部出现过,因此,对于该数据流,可以只传输其全部指纹标识,设每个指纹标识长度为M,则网络传输数据总长为N=M*L/W。\n[0008] 可以获知,现有字节缓存方法中,N同W呈反比关系。因此,为了进一步缩减网络中传输数据量,必须尽量增大W。然而,过大的W将导致过大的平均分块长度。由于检测粒度为一个数据块,当一个数据块过大,即数据块长度过长时,即使该分块中大部分是重复数据,但只要存在非重复数据,该分块将计算出新的指纹,并被认为是新数据,需要进行指纹传输。此外,当数据块长度取得较小时,原有大分块中重复的那一部分将很快被小分块检测出来。由此,重复数据检测率K同数据块平均长度W呈近似反比关系。\n[0009] 为了提高检测率,需要减小W,然而,当减小W时,数据块增多,则数据块为重复数据块时,替代该数据块传输的指纹信息也随之增多。如果数据块重复几率较大,那么,将多次传输该数据块对应的指纹信息,增大网络传输的数据量。\n发明内容\n[0010] 本发明的实施例中提供了一种数据传输的方法和装置,能够在传输数据的过程中减小网络传输的数据量。\n[0011] 为了解决上述技术问题,本发明实施例公开了如下技术方案:\n[0012] 第一方面,提供一种数据传输的方法,包括:\n[0013] 接收待传输的数据块,所述数据块由原始数据流经数据块分割操作获得;\n[0014] 判断多个所述数据块是否为连续重复数据块,如果是,则获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,所述二级缓存指纹由所述指纹信息序列经过二级缓存得到;\n[0015] 将所述二级缓存指纹代替所述连续重复的数据块进行传输。\n[0016] 结合上述第一方面,在第一种可能的实现方式中,所述判断多个所述数据块是否为连续重复数据块,包括:\n[0017] 查找保存的已传输的数据块的指纹信息以及所述已传输数据块的顺序信息;\n[0018] 将多个所述数据块对应的指纹信息与所述保存的已传输的数据块的指纹信息进行匹配,如果匹配,且多个所述数据块的顺序与所述已传输数据块中相同数据块的顺序相同,则确定多个所述数据块为连续重复数据块;否则,确定多个所述数据块为非连续重复数据块。\n[0019] 结合上述第一方面,和第一种可能的实现方式,在第二种可能的实现方式中,还包括:\n[0020] 如果多个所述数据块为非连续重复数据块,则计算每个数据块的指纹信息;\n[0021] 将所述每个数据块的指纹信息代替对应的数据块进行传输。\n[0022] 结合上述第一方面,和第一种可能的实现方式,和第二种可能的实现方式,在第三种可能的实现方式中,所述数据块由原始数据流经数据块操作获得,包括:所述数据块由原始数据流经过Rabin算法进行不定长分块获得。\n[0023] 结合上述第一方面,和第一种可能的实现方式,和第二种可能的实现方式,和第三种可能的实现方式,在第四种可能的实现方式中,所述已接收的数据块的指纹信息按照散列的形式进行保存。\n[0024] 第二方面,提供一种数据传输装置,包括:\n[0025] 接收模块,用于接收待传输的数据块,所述数据块由原始数据流经数据块分割操作获得;\n[0026] 判断模块,用于判断多个所述数据块是否为连续重复数据块,如果是,则触发二级缓存指纹获取模块;\n[0027] 所述二级缓存指纹获取模块,用于当多个所述数据块为连续重复数据块时,获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,所述二级缓存指纹由所述指纹信息序列经过二级缓存得到;\n[0028] 传输模块,用于将所述二级缓存指纹代替所述连续重复的数据块进行传输。\n[0029] 结合上述第二方面,在第一种可能的实现方式中,所述判断模块,包括:\n[0030] 查找单元,用于查找保存的已传输的数据块的指纹信息以及所述已传输数据块的顺序信息;\n[0031] 匹配单元,用于将多个所述数据块对应的指纹信息与所述保存的已传输的数据块的指纹信息进行匹配,如果匹配,且多个所述数据块的顺序与所述已接收数据块中相同数据块的顺序相同,则触发第一结果单元;否则,触发第二结果单元;\n[0032] 所述第一结果单元,用于确定多个所述数据块为连续重复数据块;\n[0033] 所述第二结果单元,用于确定多个所述数据块为非连续重复数据块。\n[0034] 结合上述第二方面,和第一种可能的实现方式,在第二种可能的实现方式中,所述传输模块还用于:\n[0035] 如果多个所述数据块为非连续重复数据块,则计算每个数据块的指纹信息,将所述每个数据块的指纹信息代替对应的数据块进行传输。\n[0036] 结合上述第二方面,和第一种可能的实现方式,和第二种可能的实现方式,在第三种可能的实现方式中,所述数据块由原始数据流经数据块操作获得,包括:\n[0037] 所述数据块由原始数据流经过Rabin算法进行不定长分块获得。\n[0038] 结合上述第二方面,和第一种可能的实现方式,和第二种可能的实现方式,和第三种可能的实现方式,在第四种可能的实现方式中,所述已接收的数据块的指纹信息按照散列的形式进行保存。\n[0039] 第三方面,提供一种服务器,包括:处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述服务器运行时,所述处理器执行所述存储器存储的所述计算机执行指令,并通过所述通信接口与所述服务器外部的设备进行通信,以使所述服务器执行如权利要求1-5中任一项所述的数据传输的方法。\n[0040] 本发明提供了一种数据传输的方法和装置,当原始数据流被分割为数据块进行传输时,当出现已传输过的重复数据块时,并不是直接以重复数据块的指纹信息代替该重复数据块进行传输,而是判断多个所述数据块是否为连续重复数据块,如果是,则获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,将该二级缓存指纹代替指纹信息序列进行传输,通过二级缓存,将指纹信息序列进行缩减,从而减小网络传输的数据量。\n附图说明\n[0041] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。\n[0042] 图1所示为本发明一种数据传输的方法实施例的流程图;\n[0043] 图2所示为图1中步骤102的流程图;\n[0044] 图3所示为本发明实施例中数据流经Rabin算法进行不定长分块操作,产生的数据块形式示意图;\n[0045] 图4所示为本发明一种数据传输装置实施例的结构框图;\n[0046] 图5所示为图4中判断模块402的结构框图;\n[0047] 图6所示为本发明一种服务器实施例的结构框图。\n具体实施方式\n[0048] 为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。\n[0049] 本发明公开了一种数据传输的方法和装置,能够在传输数据的过程中减小网络传输的数据量。\n[0050] 参见图1,为本发明提供的一种数据传输的方法实施例,该实施例可以包括以下执行步骤:\n[0051] 步骤101、接收待传输的数据块,所述数据块由原始数据流经数据块分割操作获得。\n[0052] 该步骤中,待传输的原始数据流被分割为数据块进行传输,具体地,可以采用不定长分块的方式对原始数据流进行分块操作。\n[0053] 步骤102、判断多个所述数据块是否为连续重复数据块,如果是,则继续步骤103。\n[0054] 该步骤中,对于顺序接收的多个数据块进行判断,确定该多个数据块是否为连续重复数据块。如果在接收该多个数据块之前,已经接收过同样的数据块,且该多个数据块的接收顺序与之前同样的数据块连续出现的顺序一致,则该多个数据块为连续重复数据块。\n[0055] 步骤103、获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,所述二级缓存指纹由所述指纹信息序列经过二级缓存得到。\n[0056] 按照字节缓存技术,对于重复传输的数据块,在后续数据传输过程中,用重复传输的数据块对应的指纹信息代替该重复数据块进行传输,即:不发送数据块而发送该数据块对应的指纹信息。\n[0057] 该步骤中,对于连续重复的数据块,需要获取每个数据块对应的指纹信息,进而得到该连续重复的数据块对应的指纹信息序列,并将该指纹信息序列进行二级缓存,得到一个二级缓存指纹。\n[0058] 步骤104、将所述二级缓存指纹代替所述连续重复的数据块进行传输。\n[0059] 该步骤中,对于连续重复的数据块,传输时不再一一传输其中每个数据块对应的指纹信息,而是传输连续重复的数据块对应的二级缓存指纹。\n[0060] 通过将连续重复的数据块对应的指纹信息序列缩减为一个二级缓存指纹,并利用该二级缓存指纹代替指纹信息序列进行传输,能够减少数据传输量。\n[0061] 本发明实施例中,当原始数据流被分割为数据块进行传输时,当出现已传输过的重复数据块时,并不是直接以重复数据块的指纹信息代替该重复数据块进行传输,而是判断多个所述数据块是否为连续重复数据块,如果是,则获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,将该二级缓存指纹代替指纹信息序列进行传输,通过二级缓存,将指纹信息序列进行缩减,从而减小网络传输的数据量。\n[0062] 本发明实施例中,上述步骤102中,判断多个所述数据块是否为连续重复数据块的实现方式如图2所示,具体包括:\n[0063] 步骤201、查找保存的已传输的数据块的指纹信息以及所述已传输数据块的顺序信息;\n[0064] 在字节缓存中,针对每个数据块,利用一个简短的特征值来进行唯一标识,该特征值就是指纹,通常可以采用hash的方式求出。\n[0065] 对于已传输的数据块,通常保存每个数据块的指纹信息。此外,该步骤中,还额外保存了各个数据块在原始数据流中的顺序信息。因此,通过查找,可以获得已传输的数据块的指纹信息以及所述已传输数据块的顺序信息。\n[0066] 步骤202、将多个所述数据块对应的指纹信息与所述保存的已传输的数据块的指纹信息进行匹配,如果匹配,则继续步骤203;如果不匹配,则继续步骤204;\n[0067] 步骤203、判断多个所述数据块的顺序是否与所述已传输数据块中相同数据块的顺序相同,如果是,则继续步骤205;否则,继续步骤206;\n[0068] 步骤204、确定所述数据块为非重复数据块;\n[0069] 步骤205、确定多个所述数据块为连续重复数据块;\n[0070] 步骤206、确定多个所述数据块为非连续重复数据块。\n[0071] 上述实现方式中,通过将待传输的多个数据块对应的指纹信息与保存的已传输的数据块的指纹信息进行匹配,如果匹配,则表示在接收该多个数据块之前,已经接收并传输过同样的数据块,该多个数据块属于重复数据块,进而,继续判断多个所述数据块的顺序与所述已传输数据块中相同数据块的顺序是否相同,即判断所述多个数据块是否已经按照当前顺序在所述已传输数据块中出现过,如果顺序一致,则该多个数据块为连续重复数据块。\n[0072] 本发明实施例中,如果多个所述数据块为非连续重复数据块,则计算每个数据块的指纹信息;将所述每个数据块的指纹信息代替对应的数据块进行传输。\n[0073] 为了提高重复数据块的检测率,本发明实施例采用低粒度的数据流分割方式,利用Rabin算法,对原始数据流进行不定长分块。\n[0074] 为了便于对本发明技术方案的理解,下面通过具体实现方式对上述技术方案进行详细的说明。\n[0075] 假设数据流按照从左到右进行传输,类似一个FIFO(First Input First Output,先入先出队列)。数据流经Rabin算法进行不定长分块操作,产生的数据块形式如图3所示,其中,A1~A7分别表示分割获得的数据块。经过数据分块操作,依次产生二元组
,,,,,,,,,,,即:数据块A1对应指纹的哈希值为H1,数据块A2对应指纹的哈希值为H2,数据块A3对应指纹的哈希值为H3,数据块A4对应指纹的哈希值为H4,数据块A5对应指纹的哈希值为H5,数据块A6对应指纹的哈希值为H6,数据块A7对应指纹的哈希值为H7。\n[0076] 对于第一次出现的数据块,则直接传输数据块本身。对于在数据块A5之后接收到的数据块A1、A1、A2及A3,其中,对于首先接收到的A1,因之前传输过,因此为重复数据块;对于该数据块A1之后的数据块A1、A2及A3,因之前顺序传输过数据块A1、A2及A3,因此为连续重复的数据块。在传输阶段,对于重复数据块A1,不需传输数据块A1本身,只需传输其对应的指纹信息F1,通过指纹信息F1标示该重复数据块A1之前在何处出现过。对于连续重复的数据块A1、A2及A3,按照现有技术方案,需要分别传输数据块A1、A2及A3对应的指纹信息F1、F2及F3。为了进一步减小网络传输的数据量,对连续重复的数据块A1、A2及A3对应的指纹信息序列进行二级缓存,将指纹信息序列F1、F2、F3进一步二级缓存,缩减为一个二级缓存指纹F123,利用二级缓存指纹F123标示其对应连续且按序重复的数据块A1、A2及A3。\n[0077] 进一步,对本发明实施例中数据块的数据结构进行如下说明。\n[0078] 以下数据结构对应原始数据流经过分块操作得到的数据块的指纹。\n[0079]\n[0080]\n[0081] 上述数据结构定义如下:\n[0082] Fingerinfo:该结构体对应全局唯一的指纹,其pdata项指向对应的数据块在内存中的首地址,len项表示了数据块长度,dupsegdeque项是一个队列,记录了之前出现过的内容与该fingerinfo表征的数据块相同的指纹在全局顺序队列seqfifo中的中的位置序号。\n[0083] 为了便于快速查找当前待传输数据块的指纹值是否存在于已保存的指纹集合中,对指纹值信息进行散列,在每个散列项中,可能产生冲突,因此将所有冲突项按照链表连接,即hashnext项和hashpre项。由于系统内存有限,仅保存部分fingerinfo,采用LRU(Least Recently Used,最近最少使用)原则来唤出不用的fingerinfo结构以及对应信息,所有的fingerinfo链接在一个链表上,通过lrunext项和lrupre项进行遍历。\n[0084] 上述全局顺序队列Seqfifo为记录之前出现过的数据块的传输顺序队列,定义为deque seqfifo。其中,每个项的具体值是该数据块对应的全局唯一的fingerinfo的地址。\n[0085] 此外,利用下面Duplevelhead结构记录当前数据块到来时,之前已传输的连续重复数据块数目,以及对应位置。\n[0086]\n[0087]\n[0088] 其中,level记录了连续重复的数据块数目,lastidlist中记录了所有连续重复level个的数据块的连续块的首址,由于某些连续序列往往频繁出现,lastidlist可以采用链表形式实现,以记录当前所有按照该顺序出现的连续重复序列在seqfifo中的起始位置。\n[0089] 具体地,通过rabin不定长数据块分割方法,获得数据块segA,并通过RSHash函数计算获得segA的指纹为hashA,并在已保存的用散列表优化的指纹集合sethash中查找是否存在指纹为hashA的fingerinfo。\n[0090] 如果存在指纹为hashA的fingerinfo,则设该fingerinfo为finA,说明segA为重复数据块,并且当前其对应的数据块还在内存中,将其标记为重复数据块,利用其信息更新duplevelhead的对应项,如果最后duplevelhead->duplevelhead的所有项对应在Seqfifo中的项后一个项均不是segA,即duplevelhead->lastidlist的项数目最后从1变为0,则将dupolevelhead的信息调整后输出,并刷新dupolevelhead为segA的信息,否则,将\ndupolevelhead中的level加1,并进一步缩小duplevelhead->lastidlist的项数目。用LRU更新finA到链表最开始,最后在Seqfifo队列末尾添加一个新项表示当前数据块,并将其值设置为finA的地址;\n[0091] 如果不存在指纹为hashA的fingerinfo,则新建一个fingerinfo,设为finAnew,将其添加到sethash中对应位置,将内存中开辟一个空间存放segA的数据,并将其地址大小信息都填写到finAnew中,此时,由于是新数据块,所以调整并输出当前保存了以前连续重复数据块信息的结构体duplevelhead,并删除duplevelhead,接着,根据LRU算法更新该finAnew到LRU链表头,并根据LRU链表数目是否满判断是否删除最后一个fingerinfo结构及其对应信息,在Seqfifo队列末尾添加一个新项表示当前新块,并将其值设置为finAnew的地址,最后将该新数据块输出。\n[0092] 相应上述数据传输的方法,本发明实施例还提供了一种数据传输装置,如图4所示,该装置具体可以包括:\n[0093] 接收模块401,用于接收待传输的数据块,所述数据块由原始数据流经数据块分割操作获得;\n[0094] 判断模块402,用于判断多个所述数据块是否为连续重复数据块,如果是,则触发二级缓存指纹获取模块403;\n[0095] 所述二级缓存指纹获取模块403,用于当多个所述数据块为连续重复数据块时,获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,所述二级缓存指纹由所述指纹信息序列经过二级缓存得到;\n[0096] 传输模块404,用于将所述二级缓存指纹代替所述连续重复的数据块进行传输。\n[0097] 本发明实施例中,当原始数据流被分割为数据块进行传输时,当出现已传输过的重复数据块时,并不是直接以重复数据块的指纹信息代替该重复数据块进行传输,而是通过判断模块判断多个所述数据块是否为连续重复数据块,如果是,则通过二级缓存指纹获取模块获取所述连续重复的数据块对应的指纹信息序列的二级缓存指纹,将该二级缓存指纹代替指纹信息序列进行传输。通过二级缓存,将指纹信息序列进行缩减,从而减小网络传输的数据量。\n[0098] 在本发明提供的一种具体实施例中,如图5所示,所述判断模块402,具体可以包括:\n[0099] 查找单元501,用于查找保存的已传输的数据块的指纹信息以及所述已传输数据块的顺序信息;\n[0100] 匹配单元502,用于将多个所述数据块对应的指纹信息与所述保存的已传输的数据块的指纹信息进行匹配,如果匹配,且多个所述数据块的顺序与所述已接收数据块中相同数据块的顺序相同,则触发第一结果单元503;否则,触发第二结果单元504;\n[0101] 所述第一结果单元503,用于确定多个所述数据块为连续重复数据块;\n[0102] 所述第二结果单元504,用于确定多个所述数据块为非连续重复数据块。\n[0103] 此外,在本发明提供的一种具体实施例中,所述传输模块还用于:\n[0104] 如果多个所述数据块为非连续重复数据块,则计算每个数据块的指纹信息,将所述每个数据块的指纹信息代替对应的数据块进行传输。\n[0105] 为了提高重复数据块的检测率,本发明实施例采用低粒度的数据流分割方式,利用Rabin算法,对原始数据流进行不定长分块。\n[0106] 为了便于快速查找当前待传输数据块的指纹值是否存在于已保存的指纹集合中,所述已接收的数据块的指纹信息按照散列的形式进行保存。\n[0107] 如图6所示,本发明还提供了一种基于计算机系统实现数据传输的服务器,具体实现中,本发明实施例的服务器可以包括:处理器601、存储器602、总线603和通信接口604等物理模块,其中,所述存储器602用于存储计算机执行指令,所述处理器601与所述存储器\n602通过所述总线603连接,当所述服务器601运行时,所述处理器601执行所述存储器602存储的所述计算机执行指令,并通过所述通信接口604与所述集群管理设备外部的设备进行通信,以使所述服务器执行本发明各实施例所述的数据传输的方法。处理器可以是中央处理器(central processing unit,CPU)、专用集成电路(application-specific \nintegrated circuit, ASIC)等。\n[0108] 具体实现中,计算机存储介质可存储有程序,该程序执行时可包括本发明实施例提供的数据传输的方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。\n[0109] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。\n[0110] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。\n[0111] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。\n[0112] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。\n[0113] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。\n[0114] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。\n[0115] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。法律信息
- 2020-09-22
专利权的转移
登记生效日: 2020.09.02
专利权人由北京博知川科技服务有限公司变更为河南精工工程管理咨询有限公司
地址由101300 北京市顺义区顺畅大道14号院5号楼12层1206变更为450046 河南省郑州市(郑东)商务外环路25号16层1606号
- 2020-09-22
专利权的转移
登记生效日: 2020.09.02
专利权人由华为技术有限公司变更为广东高航知识产权运营有限公司
地址由518129 广东省深圳市龙岗区坂田华为总部办公楼变更为510000 广东省广州市五山路371-1号中公教育大厦2414-2416室
- 2020-09-22
专利权的转移
登记生效日: 2020.09.02
专利权人由广东高航知识产权运营有限公司变更为北京博知川科技服务有限公司
地址由510000 广东省广州市五山路371-1号中公教育大厦2414-2416室变更为101300 北京市顺义区顺畅大道14号院5号楼12层1206
- 2017-01-11
- 2014-03-26
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 201380000699.5
申请日: 2013.06.24
- 2014-02-26
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-12-09
|
2003-10-28
| | |
2
| |
2013-05-22
|
2013-01-24
| | |
3
| |
2007-01-24
|
2006-07-26
| | |
4
| |
2011-04-27
|
2010-12-08
| | |
5
| |
2013-03-27
|
2012-11-21
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |