一種數(shù)據(jù)傳輸?shù)姆椒ê脱b置制造方法
【專利摘要】本發(fā)明實(shí)施例公開一種數(shù)據(jù)傳輸?shù)姆椒ê脱b置。其中,所述方法包括:接收待傳輸?shù)臄?shù)據(jù)塊,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)數(shù)據(jù)塊分割操作獲得;判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,如果是,則獲取所述連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列的二級(jí)緩存指紋,所述二級(jí)緩存指紋由所述指紋信息序列經(jīng)過二級(jí)緩存得到;將所述二級(jí)緩存指紋代替所述連續(xù)重復(fù)的數(shù)據(jù)塊進(jìn)行傳輸。本發(fā)明實(shí)施例能夠在傳輸數(shù)據(jù)的過程中減小網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
【專利說明】一種數(shù)據(jù)傳輸?shù)姆椒ê脱b置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)處理【技術(shù)領(lǐng)域】,特別涉及一種數(shù)據(jù)傳輸?shù)姆椒ê脱b置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)和通信技術(shù)的發(fā)展,Internet網(wǎng)絡(luò)在過去的十幾年中迅猛發(fā)展,但擁塞問題越來越嚴(yán)重。
[0003]數(shù)據(jù)緩存技術(shù)主要用來解決帶寬瓶頸、應(yīng)用延遲問題。
[0004]現(xiàn)有技術(shù)中,字節(jié)緩存(protocol-dependentredundancy elimination)主要包括兩個(gè)步驟:數(shù)據(jù)分塊和匹配檢測。
[0005]在數(shù)據(jù)分塊階段,采用適當(dāng)?shù)乃惴▽?duì)數(shù)據(jù)流進(jìn)行劃分,盡量使對(duì)數(shù)據(jù)流添加修改刪除等局部操作對(duì)后續(xù)未變化數(shù)據(jù)的劃分位置不產(chǎn)生影響,并對(duì)每個(gè)分塊計(jì)算指紋。
[0006]在匹配檢測階段,現(xiàn)有方案通常直接對(duì)數(shù)據(jù)塊進(jìn)行指紋計(jì)算,并在以前的指紋集合中進(jìn)行查找,判斷該指紋是否重復(fù),如果重復(fù),則認(rèn)為該數(shù)據(jù)塊已經(jīng)出現(xiàn)過。在后續(xù)數(shù)據(jù)傳輸過程中,用檢測出的重復(fù)指紋塊的指紋信息代替該重復(fù)數(shù)據(jù)塊,即:不發(fā)送該重復(fù)數(shù)據(jù)塊而發(fā)送該重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的指紋信息。
[0007]按照現(xiàn)有技術(shù)中的字節(jié)緩存方法,假設(shè)數(shù)據(jù)塊的平均長度為W,數(shù)據(jù)流的總長為し如果假設(shè)該L長度的數(shù)據(jù)流以前已經(jīng)全部出現(xiàn)過,因此,對(duì)于該數(shù)據(jù)流,可以只傳輸其全部指紋標(biāo)識(shí),設(shè)每個(gè)指紋標(biāo)識(shí)長度為M,則網(wǎng)絡(luò)傳輸數(shù)據(jù)總長為N=M*L/W。
[0008]可以獲知,現(xiàn)有字節(jié)緩存方法中,N同W呈反比關(guān)系。因此,為了進(jìn)ー步縮減網(wǎng)絡(luò)中傳輸數(shù)據(jù)量,必須盡量増大W。然而,過大的W將導(dǎo)致過大的平均分塊長度。由于檢測粒度為ー個(gè)數(shù)據(jù)塊,當(dāng)ー個(gè)數(shù)據(jù)塊過大,即數(shù)據(jù)塊長度過長吋,即使該分塊中大部分是重復(fù)數(shù)據(jù),但只要存在非重復(fù)數(shù)據(jù),該分塊將計(jì)算出新的指紋,并被認(rèn)為是新數(shù)據(jù),需要進(jìn)行指紋傳輸。此外,當(dāng)數(shù)據(jù)塊長度取得較小時(shí),原有大分塊中重復(fù)的那一部分將很快被小分塊檢測出來。由此,重復(fù)數(shù)據(jù)檢測率K同數(shù)據(jù)塊平均長度W呈近似反比關(guān)系。
[0009]為了提高檢測率,需要減小W,然而,當(dāng)減小W吋,數(shù)據(jù)塊增多,則數(shù)據(jù)塊為重復(fù)數(shù)據(jù)塊時(shí),替代該數(shù)據(jù)塊傳輸?shù)闹讣y信息也隨之增多。如果數(shù)據(jù)塊重復(fù)幾率較大,那么,將多次傳輸該數(shù)據(jù)塊對(duì)應(yīng)的指紋信息,增大網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的實(shí)施例中提供了一種數(shù)據(jù)傳輸?shù)姆椒ê脱b置,能夠在傳輸數(shù)據(jù)的過程中減小網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
[0011]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例公開了如下技術(shù)方案:
[0012]第一方面,提供一種數(shù)據(jù)傳輸?shù)姆椒?,包?
[0013]接收待傳輸?shù)臄?shù)據(jù)塊,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)數(shù)據(jù)塊分割操作獲得;
[0014]判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,如果是,則獲取所述連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列的ニ級(jí)緩存指紋,所述ニ級(jí)緩存指紋由所述指紋信息序列經(jīng)過ニ級(jí)緩存得到;
[0015]將所述ニ級(jí)緩存指紋代替所述連續(xù)重復(fù)的數(shù)據(jù)塊進(jìn)行傳輸。
[0016]結(jié)合上述第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,包括:
[0017]查找保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息以及所述已傳輸數(shù)據(jù)塊的順序信息;
[0018]將多個(gè)所述數(shù)據(jù)塊對(duì)應(yīng)的指紋信息與所述保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息進(jìn)行匹配,如果匹配,且多個(gè)所述數(shù)據(jù)塊的順序與所述已傳輸數(shù)據(jù)塊中相同數(shù)據(jù)塊的順序相同,則確定多個(gè)所述數(shù)據(jù)塊為連續(xù)重復(fù)數(shù)據(jù)塊;否則,確定多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊。
[0019]結(jié)合上述第一方面,和第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,還包括:
[0020]如果多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊,則計(jì)算每個(gè)數(shù)據(jù)塊的指紋信息;
[0021]將所述每個(gè)數(shù)據(jù)塊的指紋信息代替對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行傳輸。
[0022]結(jié)合上述第一方面,和第一種可能的實(shí)現(xiàn)方式,和第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)數(shù)據(jù)塊操作獲得,包括:所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)過Rabin算法進(jìn)行不定長分塊獲得。
[0023]結(jié)合上述第一方面,和第一種可能的實(shí)現(xiàn)方式,和第二種可能的實(shí)現(xiàn)方式,和第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述已接收的數(shù)據(jù)塊的指紋信息按照散列的形式進(jìn)行保存。
[0024]第二方面,提供ー種數(shù)據(jù)傳輸裝置,包括:
[0025]接收模塊,用于接收待傳輸?shù)臄?shù)據(jù)塊,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)數(shù)據(jù)塊分割操作獲得;
[0026]判斷模塊,用于判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,如果是,則觸發(fā)ニ級(jí)緩存指紋獲取模塊;
[0027]所述ニ級(jí)緩存指紋獲取模塊,用于當(dāng)多個(gè)所述數(shù)據(jù)塊為連續(xù)重復(fù)數(shù)據(jù)塊時(shí),獲取所述連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列的ニ級(jí)緩存指紋,所述ニ級(jí)緩存指紋由所述指紋信息序列經(jīng)過ニ級(jí)緩存得到;
[0028]傳輸模塊,用于將所述ニ級(jí)緩存指紋代替所述連續(xù)重復(fù)的數(shù)據(jù)塊進(jìn)行傳輸。
[0029]結(jié)合上述第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述判斷模塊,包括:
[0030]查找單元,用于查找保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息以及所述已傳輸數(shù)據(jù)塊的順序信息;
[0031]匹配単元,用于將多個(gè)所述數(shù)據(jù)塊對(duì)應(yīng)的指紋信息與所述保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息進(jìn)行匹配,如果匹配,且多個(gè)所述數(shù)據(jù)塊的順序與所述已接收數(shù)據(jù)塊中相同數(shù)據(jù)塊的順序相同,則觸發(fā)第一結(jié)果單元;否則,觸發(fā)第二結(jié)果單元;
[0032]所述第一結(jié)果單元,用于確定多個(gè)所述數(shù)據(jù)塊為連續(xù)重復(fù)數(shù)據(jù)塊;
[0033]所述第二結(jié)果單元,用于確定多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊。
[0034]結(jié)合上述第二方面,和第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述傳輸模塊還用于:
[0035]如果多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊,則計(jì)算每個(gè)數(shù)據(jù)塊的指紋信息,將所述每個(gè)數(shù)據(jù)塊的指紋信息代替對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行傳輸。
[0036]結(jié)合上述第二方面,和第一種可能的實(shí)現(xiàn)方式,和第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)數(shù)據(jù)塊操作獲得,包括:
[0037]所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)過Rabin算法進(jìn)行不定長分塊獲得。
[0038]結(jié)合上述第二方面,和第一種可能的實(shí)現(xiàn)方式,和第二種可能的實(shí)現(xiàn)方式,和第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述已接收的數(shù)據(jù)塊的指紋信息按照散列的形式進(jìn)行保存。
[0039]第三方面,提供一種服務(wù)器,包括:處理器、存儲(chǔ)器、總線和通信接ロ ;所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)執(zhí)行指令,所述處理器與所述存儲(chǔ)器通過所述總線連接,當(dāng)所述服務(wù)器運(yùn)行吋,所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的所述計(jì)算機(jī)執(zhí)行指令,并通過所述通信接ロ與所述服務(wù)器外部的設(shè)備進(jìn)行通信,以使所述服務(wù)器執(zhí)行如權(quán)利要求1-5中任一項(xiàng)所述的數(shù)據(jù)傳輸?shù)姆椒ā?br>
[0040]本發(fā)明提供了一種數(shù)據(jù)傳輸?shù)姆椒ê脱b置,當(dāng)原始數(shù)據(jù)流被分割為數(shù)據(jù)塊進(jìn)行傳輸時(shí),當(dāng)出現(xiàn)已傳輸過的重復(fù)數(shù)據(jù)塊時(shí),并不是直接以重復(fù)數(shù)據(jù)塊的指紋信息代替該重復(fù)數(shù)據(jù)塊進(jìn)行傳輸,而是判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,如果是,則獲取所述連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列的ニ級(jí)緩存指紋,將該ニ級(jí)緩存指紋代替指紋信息序列進(jìn)行傳輸,通過ニ級(jí)緩存,將指紋信息序列進(jìn)行縮減,從而減小網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
【專利附圖】
【附圖說明】
[0041]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0042]圖1所示為本發(fā)明一種數(shù)據(jù)傳輸?shù)姆椒▽?shí)施例的流程圖;
[0043]圖2所示為圖1中步驟102的流程圖;
[0044]圖3所示為本發(fā)明實(shí)施例中數(shù)據(jù)流經(jīng)Rabin算法進(jìn)行不定長分塊操作,產(chǎn)生的數(shù)據(jù)塊形式示意圖;
[0045]圖4所示為本發(fā)明ー種數(shù)據(jù)傳輸裝置實(shí)施例的結(jié)構(gòu)框圖;
[0046]圖5所示為圖4中判斷模塊402的結(jié)構(gòu)框圖;
[0047]圖6所示為本發(fā)明一種服務(wù)器實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0048]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例中技術(shù)方案作進(jìn)ー步詳細(xì)的說明。
[0049]本發(fā)明公開了ー種數(shù)據(jù)傳輸?shù)姆椒ê脱b置,能夠在傳輸數(shù)據(jù)的過程中減小網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
[0050]參見圖1,為本發(fā)明提供的一種數(shù)據(jù)傳輸?shù)姆椒▽?shí)施例,該實(shí)施例可以包括以下執(zhí)行步驟:[0051]步驟101、接收待傳輸?shù)臄?shù)據(jù)塊,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)數(shù)據(jù)塊分割操作獲得。
[0052]該步驟中,待傳輸?shù)脑紨?shù)據(jù)流被分割為數(shù)據(jù)塊進(jìn)行傳輸,具體地,可以采用不定長分塊的方式對(duì)原始數(shù)據(jù)流進(jìn)行分塊操作。
[0053]步驟102、判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,如果是,則繼續(xù)步驟103。
[0054]該步驟中,對(duì)于順序接收的多個(gè)數(shù)據(jù)塊進(jìn)行判斷,確定該多個(gè)數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊。如果在接收該多個(gè)數(shù)據(jù)塊之前,已經(jīng)接收過同樣的數(shù)據(jù)塊,且該多個(gè)數(shù)據(jù)塊的接收順序與之前同樣的數(shù)據(jù)塊連續(xù)出現(xiàn)的順序一致,則該多個(gè)數(shù)據(jù)塊為連續(xù)重復(fù)數(shù)據(jù)塊。
[0055]步驟103、獲取所述連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列的ニ級(jí)緩存指紋,所述ニ級(jí)緩存指紋由所述指紋信息序列經(jīng)過ニ級(jí)緩存得到。
[0056]按照字節(jié)緩存技木,對(duì)于重復(fù)傳輸?shù)臄?shù)據(jù)塊,在后續(xù)數(shù)據(jù)傳輸過程中,用重復(fù)傳輸?shù)臄?shù)據(jù)塊對(duì)應(yīng)的指紋信息代替該重復(fù)數(shù)據(jù)塊進(jìn)行傳輸,即:不發(fā)送數(shù)據(jù)塊而發(fā)送該數(shù)據(jù)塊對(duì)應(yīng)的指紋信息。
[0057]該步驟中,對(duì)于連續(xù)重復(fù)的數(shù)據(jù)塊,需要獲取每個(gè)數(shù)據(jù)塊對(duì)應(yīng)的指紋信息,進(jìn)而得到該連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列,并將該指紋信息序列進(jìn)行ニ級(jí)緩存,得到一個(gè)ニ級(jí)緩存指紋。
[0058]步驟104、將所述ニ級(jí)緩存指紋代替所述連續(xù)重復(fù)的數(shù)據(jù)塊進(jìn)行傳輸。
[0059]該步驟中,對(duì)于連續(xù)重復(fù)的數(shù)據(jù)塊,傳輸時(shí)不再一一傳輸其中每個(gè)數(shù)據(jù)塊對(duì)應(yīng)的指紋信息,而是傳輸連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的ニ級(jí)緩存指紋。
[0060]通過將連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列縮減為ー個(gè)ニ級(jí)緩存指紋,并利用該ニ級(jí)緩存指紋代替指紋信息序列進(jìn)行傳輸,能夠減少數(shù)據(jù)傳輸量。
[0061]本發(fā)明實(shí)施例中,當(dāng)原始數(shù)據(jù)流被分割為數(shù)據(jù)塊進(jìn)行傳輸時(shí),當(dāng)出現(xiàn)已傳輸過的重復(fù)數(shù)據(jù)塊時(shí),并不是直接以重復(fù)數(shù)據(jù)塊的指紋信息代替該重復(fù)數(shù)據(jù)塊進(jìn)行傳輸,而是判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,如果是,則獲取所述連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列的ニ級(jí)緩存指紋,將該ニ級(jí)緩存指紋代替指紋信息序列進(jìn)行傳輸,通過ニ級(jí)緩存,將指紋信息序列進(jìn)行縮減,從而減小網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
[0062]本發(fā)明實(shí)施例中,上述步驟102中,判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊的實(shí)現(xiàn)方式如圖2所示,具體包括:
[0063]步驟201、查找保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息以及所述已傳輸數(shù)據(jù)塊的順序
信息;
[0064]在字節(jié)緩存中,針對(duì)每個(gè)數(shù)據(jù)塊,利用一個(gè)簡短的特征值來進(jìn)行唯一標(biāo)識(shí),該特征值就是指紋,通??梢圆捎胔ash的方式求出。
[0065]對(duì)于已傳輸?shù)臄?shù)據(jù)塊,通常保存每個(gè)數(shù)據(jù)塊的指紋信息。此外,該步驟中,還額外保存了各個(gè)數(shù)據(jù)塊在原始數(shù)據(jù)流中的順序信息。因此,通過查找,可以獲得已傳輸?shù)臄?shù)據(jù)塊的指紋信息以及所述已傳輸數(shù)據(jù)塊的順序信息。
[0066]步驟202、將多個(gè)所述數(shù)據(jù)塊對(duì)應(yīng)的指紋信息與所述保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息進(jìn)行匹配,如果匹配,則繼續(xù)步驟203 ;如果不匹配,則繼續(xù)步驟204 ;
[0067]步驟203、判斷多個(gè)所述數(shù)據(jù)塊的順序是否與所述已傳輸數(shù)據(jù)塊中相同數(shù)據(jù)塊的順序相同,如果是,則繼續(xù)步驟205 ;否則,繼續(xù)步驟206 ;[0068]步驟204、確定所述數(shù)據(jù)塊為非重復(fù)數(shù)據(jù)塊;
[0069]步驟205、確定多個(gè)所述數(shù)據(jù)塊為連續(xù)重復(fù)數(shù)據(jù)塊;
[0070]步驟206、確定多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊。
[0071]上述實(shí)現(xiàn)方式中,通過將待傳輸?shù)亩鄠€(gè)數(shù)據(jù)塊對(duì)應(yīng)的指紋信息與保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息進(jìn)行匹配,如果匹配,則表示在接收該多個(gè)數(shù)據(jù)塊之前,已經(jīng)接收并傳輸過同樣的數(shù)據(jù)塊,該多個(gè)數(shù)據(jù)塊屬于重復(fù)數(shù)據(jù)塊,進(jìn)而,繼續(xù)判斷多個(gè)所述數(shù)據(jù)塊的順序與所述已傳輸數(shù)據(jù)塊中相同數(shù)據(jù)塊的順序是否相同,即判斷所述多個(gè)數(shù)據(jù)塊是否已經(jīng)按照當(dāng)前順序在所述已傳輸數(shù)據(jù)塊中出現(xiàn)過,如果順序一致,則該多個(gè)數(shù)據(jù)塊為連續(xù)重復(fù)數(shù)據(jù)塊。
[0072]本發(fā)明實(shí)施例中,如果多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊,則計(jì)算每個(gè)數(shù)據(jù)塊的指紋信息;將所述每個(gè)數(shù)據(jù)塊的指紋信息代替對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行傳輸。
[0073]為了提高重復(fù)數(shù)據(jù)塊的檢測率,本發(fā)明實(shí)施例采用低粒度的數(shù)據(jù)流分割方式,利用Rabin算法,對(duì)原始數(shù)據(jù)流進(jìn)行不定長分塊。
[0074]為了便于對(duì)本發(fā)明技術(shù)方案的理解,下面通過具體實(shí)現(xiàn)方式對(duì)上述技術(shù)方案進(jìn)行詳細(xì)的說明。
[0075]假設(shè)數(shù)據(jù)流按照從左到右進(jìn)行傳輸,類似ー個(gè)FIFtXFirst Input First Output,先入先出隊(duì)列)。數(shù)據(jù)流經(jīng)Rabin算法進(jìn)行不定長分塊操作,產(chǎn)生的數(shù)據(jù)塊形式如圖3所示,其中,Al?A7分別表示分割獲得的數(shù)據(jù)塊。經(jīng)過數(shù)據(jù)分塊操作,依次產(chǎn)生ニ元組<A1,H1>,<A2, H2>,〈A3,H3>, <A4, H4>, <A5, H5>,〈Al,Hl>,〈Al,Hl>, <A2, H2>,〈A3,H3>, <A6, H6>,<A7,H7>,即:數(shù)據(jù)塊Al對(duì)應(yīng)指紋的哈希值為H1,數(shù)據(jù)塊A2對(duì)應(yīng)指紋的哈希值為H2,數(shù)據(jù)塊A3對(duì)應(yīng)指紋的哈希值為H3,數(shù)據(jù)塊A4對(duì)應(yīng)指紋的哈希值為H4,數(shù)據(jù)塊A5對(duì)應(yīng)指紋的哈希值為H5,數(shù)據(jù)塊A6對(duì)應(yīng)指紋的哈希值為H6,數(shù)據(jù)塊A7對(duì)應(yīng)指紋的哈希值為H7。
[0076]對(duì)于第一次出現(xiàn)的數(shù)據(jù)塊,則直接傳輸數(shù)據(jù)塊本身。對(duì)于在數(shù)據(jù)塊A5之后接收到的數(shù)據(jù)塊A1、A1、A2及A3,其中,對(duì)于首先接收到的Al,因之前傳輸過,因此為重復(fù)數(shù)據(jù)塊;對(duì)于該數(shù)據(jù)塊Al之后的數(shù)據(jù)塊Al、A2及A3,因之前順序傳輸過數(shù)據(jù)塊Al、A2及A3,因此為連續(xù)重復(fù)的數(shù)據(jù)塊。在傳輸階段,對(duì)于重復(fù)數(shù)據(jù)塊Al,不需傳輸數(shù)據(jù)塊Al本身,只需傳輸其對(duì)應(yīng)的指紋信息Fl,通過指紋信息Fl標(biāo)示該重復(fù)數(shù)據(jù)塊Al之前在何處出現(xiàn)過。對(duì)于連續(xù)重復(fù)的數(shù)據(jù)塊A1、A2及A3,按照現(xiàn)有技術(shù)方案,需要分別傳輸數(shù)據(jù)塊A1、A2及A3對(duì)應(yīng)的指紋信息F1、F2及F3。為了進(jìn)一歩減小網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,對(duì)連續(xù)重復(fù)的數(shù)據(jù)塊A1、A2及A3對(duì)應(yīng)的指紋信息序列進(jìn)行ニ級(jí)緩存,將指紋信息序列F1、F2、F3進(jìn)ー步ニ級(jí)緩存,縮減為ー個(gè)ニ級(jí)緩存指紋F123,利用ニ級(jí)緩存指紋F123標(biāo)示其對(duì)應(yīng)連續(xù)且按序重復(fù)的數(shù)據(jù)塊Al、A2 及 A3。
[0077]進(jìn)ー步,對(duì)本發(fā)明實(shí)施例中數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)進(jìn)行如下說明。
[0078]以下數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)原始數(shù)據(jù)流經(jīng)過分塊操作得到的數(shù)據(jù)塊的指紋。
[0079]
【權(quán)利要求】
1.一種數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,包? 接收待傳輸?shù)臄?shù)據(jù)塊,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)數(shù)據(jù)塊分割操作獲得; 判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,如果是,則獲取所述連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列的二級(jí)緩存指紋,所述二級(jí)緩存指紋由所述指紋信息序列經(jīng)過二級(jí)緩存得到; 將所述二級(jí)緩存指紋代替所述連續(xù)重復(fù)的數(shù)據(jù)塊進(jìn)行傳輸。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,包括: 查找保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息以及所述已傳輸數(shù)據(jù)塊的順序信息; 將多個(gè)所述數(shù)據(jù)塊對(duì)應(yīng)的指紋信息與所述保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息進(jìn)行匹配,如果匹配,且多個(gè)所述數(shù)據(jù)塊的順序與所述已傳輸數(shù)據(jù)塊中相同數(shù)據(jù)塊的順序相同,則確定多個(gè)所述數(shù)據(jù)塊為連續(xù)重復(fù)數(shù)據(jù)塊;否則,確定多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 如果多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊,則計(jì)算每個(gè)數(shù)據(jù)塊的指紋信息; 將所述每個(gè)數(shù)據(jù)塊的指紋信息代替對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行傳輸。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)數(shù)據(jù)塊操作獲得,包括: 所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)過Rabin算法進(jìn)行不定長分塊獲得。
5.根據(jù)權(quán)利要求2-4中任一項(xiàng)所述的方法,其特征在于,所述已接收的數(shù)據(jù)塊的指紋信息按照散列的形式進(jìn)行保存。
6.ー種數(shù)據(jù)傳輸裝置,其特征在于,包括: 接收模塊,用于接收待傳輸?shù)臄?shù)據(jù)塊,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)數(shù)據(jù)塊分割操作獲得; 判斷模塊,用于判斷多個(gè)所述數(shù)據(jù)塊是否為連續(xù)重復(fù)數(shù)據(jù)塊,如果是,則觸發(fā)二級(jí)緩存指紋獲取模塊; 所述二級(jí)緩存指紋獲取模塊,用于當(dāng)多個(gè)所述數(shù)據(jù)塊為連續(xù)重復(fù)數(shù)據(jù)塊時(shí),獲取所述連續(xù)重復(fù)的數(shù)據(jù)塊對(duì)應(yīng)的指紋信息序列的二級(jí)緩存指紋,所述二級(jí)緩存指紋由所述指紋信息序列經(jīng)過二級(jí)緩存得到; 傳輸模塊,用于將所述二級(jí)緩存指紋代替所述連續(xù)重復(fù)的數(shù)據(jù)塊進(jìn)行傳輸。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述判斷模塊,包括: 查找單元,用于查找保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息以及所述已傳輸數(shù)據(jù)塊的順序信息; 匹配単元,用于將多個(gè)所述數(shù)據(jù)塊對(duì)應(yīng)的指紋信息與所述保存的已傳輸?shù)臄?shù)據(jù)塊的指紋信息進(jìn)行匹配,如果匹配,且多個(gè)所述數(shù)據(jù)塊的順序與所述已接收數(shù)據(jù)塊中相同數(shù)據(jù)塊的順序相同,則觸發(fā)第一結(jié)果單元;否則,觸發(fā)第二結(jié)果單元; 所述第一結(jié)果單元,用于確定多個(gè)所述數(shù)據(jù)塊為連續(xù)重復(fù)數(shù)據(jù)塊; 所述第二結(jié)果單元,用于確定多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述傳輸模塊還用于: 如果多個(gè)所述數(shù)據(jù)塊為非連續(xù)重復(fù)數(shù)據(jù)塊,則計(jì)算每個(gè)數(shù)據(jù)塊的指紋信息,將所述每個(gè)數(shù)據(jù)塊的指紋信息代替對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行傳輸。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)塊由原始數(shù)據(jù)流經(jīng)過Rabin算法進(jìn)行不定長分塊獲得。
10.根據(jù)權(quán)利要求6-9中任一項(xiàng)所述的裝置,其特征在于,所述已接收的數(shù)據(jù)塊的指紋信息按照散列的形式進(jìn)行保存。
11.一種服務(wù)器,其特征在于,包括:處理器、存儲(chǔ)器、總線和通信接ロ ;所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)執(zhí)行指令,所述處理器與所述存儲(chǔ)器通過所述總線連接,當(dāng)所述服務(wù)器運(yùn)行吋,所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的所述計(jì)算機(jī)執(zhí)行指令,并通過所述通信接ロ與所述服務(wù)器外部的設(shè)備進(jìn)行通信,以使所述服務(wù)器執(zhí)行如權(quán)利要求1-5中任一項(xiàng)所述的數(shù)據(jù)傳輸?shù)姆椒?。
【文檔編號(hào)】H04L29/08GK103609091SQ201380000699
【公開日】2014年2月26日 申請(qǐng)日期:2013年6月24日 優(yōu)先權(quán)日:2013年6月24日
【發(fā)明者】陳崢, 楊思茗, 覃偉峰 申請(qǐng)人:華為技術(shù)有限公司