劉保健,黃 杰 ,王寶生 ,張瀟曉
(1.國防科學(xué)技術(shù)大學(xué)計算機(jī)學(xué)院 長沙 410073;2.西北工業(yè)大學(xué)計算機(jī)學(xué)院 西安 710072)
隨著互聯(lián)網(wǎng)中傳輸數(shù)據(jù)體積的逐漸增大,數(shù)據(jù)傳輸對網(wǎng)絡(luò)帶寬構(gòu)成了巨大的挑戰(zhàn),而網(wǎng)絡(luò)傳輸性能的提升,又不能僅依靠網(wǎng)絡(luò)帶寬的提升。數(shù)據(jù)研究表明,網(wǎng)絡(luò)傳輸?shù)乃俾什⒉皇请S著帶寬的增加而一直增加的。因此,廣域網(wǎng)(wide area network,WAN)傳輸優(yōu)化技術(shù)成為近些年來研究領(lǐng)域的熱點問題。
研究發(fā)現(xiàn),廣域網(wǎng)中傳輸?shù)臄?shù)據(jù)存在著大量重復(fù)。在不同環(huán)境中,重復(fù)數(shù)據(jù)比例也不一樣。在普通高校網(wǎng)絡(luò)中,存在大約25%的冗余數(shù)據(jù),而在企業(yè)網(wǎng)絡(luò)中,則存在大約50%的冗余數(shù)據(jù)[1]。導(dǎo)致重復(fù)數(shù)據(jù)產(chǎn)生的原因有很多,譬如,大量用戶訪問相同的Web資源,P2P形式的文件下載與上傳,還有現(xiàn)在大型公司對文檔的統(tǒng)一化管理,每一份文檔或者其他數(shù)據(jù)資源在下載之后修改很小的部分,會被再次上傳到服務(wù)器等。因此,需要尋求一種策略,降低這些無用的重復(fù)傳輸,從而節(jié)省網(wǎng)絡(luò)帶寬。而大量重復(fù)數(shù)據(jù)的存在,必將使冗余數(shù)據(jù)消除成為一種非常行之有效的廣域網(wǎng)優(yōu)化技術(shù)。
很多系統(tǒng)都研究了如何高效地剔除傳輸鏈路中的重復(fù)數(shù)據(jù),從而提升網(wǎng)絡(luò)傳輸效率。一些系統(tǒng)在應(yīng)用層和對象級做優(yōu)化,例如Web緩存[2]和P2P[3]緩存,它們將頻繁訪問的對象和請求存儲在緩存中。基于字典的算法,譬如GZIP[4],從對象中去除重復(fù)字節(jié)。很多研究者都在積極探索應(yīng)用層和對象級的有效方法,以改進(jìn)算法,優(yōu)化設(shè)計[5~7]。
近年來,一種新的不依賴于協(xié)議的冗余數(shù)據(jù)消除算法被開發(fā)和驗證,用于消除網(wǎng)絡(luò)數(shù)據(jù)分組中的重復(fù)字符串,這一理念首次在參考文獻(xiàn)[8]中被提出。這一理念已逐步被各廣域網(wǎng)加速廠商應(yīng)用到它們的設(shè)備中,也有越來越多的學(xué)者致力于對算法的改進(jìn),以提升效率。
廣域網(wǎng)傳輸數(shù)據(jù)流中的冗余數(shù)據(jù)消除主要面臨著以下兩個問題。
· 廣域網(wǎng)中的數(shù)據(jù)流是實時流量,必須被及時處理,具有較高的計算效率,不然就會大幅增加數(shù)據(jù)處理時延。
·廣域網(wǎng)中的傳輸數(shù)據(jù)流具有時間的延續(xù)性,它會一直存在,所以基于數(shù)據(jù)流的冗余數(shù)據(jù)消除并不能像文件備份系統(tǒng)中的冗余數(shù)據(jù)消除策略,將所有數(shù)據(jù)都存儲在系統(tǒng)中以待掃描檢測,所以如何高效地選取存儲在內(nèi)存中的數(shù)據(jù)也是極其重要的問題之一。
針對以上兩個主要問題,提出了基于應(yīng)用層協(xié)議識別的冗余數(shù)據(jù)消除 (protocol identification redundancy elimination,PI-RE)算法。在廣域網(wǎng)傳輸過程中,不同應(yīng)用層協(xié)議下傳輸?shù)臄?shù)據(jù)有著不同的冗余度,所以基于應(yīng)用層協(xié)議識別的冗余數(shù)據(jù)消除策略必將提升冗余消除度。
現(xiàn)在,冗余數(shù)據(jù)消除技術(shù)需要部署額外的硬件或者軟件資源,例如Web緩存已經(jīng)部署并且應(yīng)用了若干年。然而,對象級別的緩存并不能消除所有的冗余數(shù)據(jù)[8],傳統(tǒng)的對象級別的冗余數(shù)據(jù)消除技術(shù)針對僅對對象做出細(xì)微改變的冗余檢測并沒有很好的效果。因此,要想更多地檢測出冗余數(shù)據(jù),必須在更小粒度的數(shù)據(jù)中檢測冗余,將數(shù)據(jù)流劃分為連續(xù)的字節(jié)序列,從而檢測冗余。
這樣,冗余數(shù)據(jù)消除技術(shù)就被劃分為以下幾個技術(shù)問題:字節(jié)序列要取多長;如何唯一地表示字節(jié)序列;由于內(nèi)存有限,什么樣的字節(jié)序列更應(yīng)該存儲下來;如何判斷兩個字節(jié)序列是否相同。這些問題都是冗余數(shù)據(jù)消除技術(shù)需要考慮的技術(shù)細(xì)節(jié)。
變長分塊 CDC(content defined chuking)算法,是冗余數(shù)據(jù)消除技術(shù)中通用的數(shù)據(jù)塊劃分算法,數(shù)據(jù)塊可以是定長,也可以是變長。定長CDC如圖1所示。
在廣域網(wǎng)傳輸數(shù)據(jù)流中,使用CDC聯(lián)合指紋計算進(jìn)行冗余消除,CDC使用定長數(shù)據(jù)塊,指紋計算采用SHA-1或者Rabin指紋。
因為內(nèi)存有限,選擇什么樣的數(shù)據(jù)塊存入緩存,是整個冗余數(shù)據(jù)消除算法的核心問題。
·MODP:是在參考文獻(xiàn)[8]中提出的,它的選取方法是將每一個數(shù)據(jù)塊的指紋值對P取余,選擇計算結(jié)果等于0的數(shù)據(jù)塊。P是2的指數(shù)值,這種算法不受文件微小變化的影響,但是對于數(shù)據(jù)塊的選擇不可控。
·WINN:這一算法的數(shù)據(jù)塊選取方式是通過計算每一個數(shù)據(jù)塊的指紋,在每一個固定的長度區(qū)間,選擇指紋值最大的那一個數(shù)據(jù)塊。和MODP相比,這一算法有著固定的采樣率。這一選取算法很好地提升了冗余數(shù)據(jù)的檢測,尤其在HTTP頁面上[9]。
·MAXP:MODP和WINN的最大問題是需要計算每一個數(shù)據(jù)塊的指紋,從而產(chǎn)生較大的計算量。MAXP[9]僅在需要的時候才計算指紋,MAXP雖然基于WINN算法,但是它并不是通過比較指紋的局部最大值,而是通過數(shù)據(jù)塊中的數(shù)據(jù)字節(jié)來尋找局部最大值,減少了指紋計算的開銷,在冗余度檢測方面的貢獻(xiàn),它和WINN是一樣的。
·基于內(nèi)容感知的數(shù)據(jù)塊選擇,不同的數(shù)據(jù)產(chǎn)生冗余的潛在能力是不同的,譬如HTML文檔和MP3文件,HTML文檔大概有70%的數(shù)據(jù)是冗余的,而MP3只有不到1%[10]。因此,在MP3和HTML文檔的數(shù)據(jù)塊采樣是不應(yīng)該相同的,HTML文檔應(yīng)該有更高的采樣率,而MP3應(yīng)該忽略不計。
圖1 定長CDC算法
為了在以后可以方便地更改算法,采取在應(yīng)用層執(zhí)行數(shù)據(jù)塊處理的策略,在每一次的算法升級過程中,并不需要重新編譯內(nèi)核,在內(nèi)核和應(yīng)用層通過Netlink創(chuàng)建通信鏈路,將發(fā)送端網(wǎng)絡(luò)層的數(shù)據(jù)分組原封不動地發(fā)往用戶層,在用戶層進(jìn)行數(shù)據(jù)處理。
在發(fā)送端的處理流程中,數(shù)據(jù)塊的選取是整個冗余數(shù)據(jù)消除技術(shù)的重點問題,選取算法的好壞,直接影響著冗余數(shù)據(jù)的檢測。
緩存管理也是冗余數(shù)據(jù)消除技術(shù)中另一個不可或缺的重點內(nèi)容,因為緩存空間的有限性,必須高質(zhì)量地使用緩存,將最有用的數(shù)據(jù)存入緩存。
PI-RE系統(tǒng)實現(xiàn)的發(fā)送端基本結(jié)構(gòu)如圖2所示。
圖2 發(fā)送端基本結(jié)構(gòu)
遠(yuǎn)程同步模塊用于與接收端同步數(shù)據(jù)緩存項。數(shù)據(jù)塊選取和緩存管理的詳細(xì)描述將在第4節(jié)給出。
PI-RE的接收端基本結(jié)構(gòu)如圖3所示。
遠(yuǎn)程同步模塊用于與發(fā)送端同步緩存,網(wǎng)卡0接收發(fā)送端發(fā)送來的數(shù)據(jù),結(jié)合緩存,通過數(shù)據(jù)還原模塊還原成為原始數(shù)據(jù)再經(jīng)網(wǎng)卡1發(fā)送出去。
協(xié)議識別的方式主要有基于端口的協(xié)議識別和基于報文載荷內(nèi)容的協(xié)議識別,前者在網(wǎng)絡(luò)發(fā)展早期協(xié)議識別率高,但目前絕大多數(shù)應(yīng)用程序多采用隨機(jī)端口,因此在協(xié)議識別的準(zhǔn)確率上已無法滿足需求,而基于報文載荷內(nèi)容的協(xié)議識別的準(zhǔn)確率比前者高[11],因此本系統(tǒng)采用的是基于報文載荷內(nèi)容的協(xié)議識別技術(shù)。
系統(tǒng)的協(xié)議識別是基于PCRE的協(xié)議識別,通過讀取IP分組載荷的內(nèi)容對OSI 7層中的應(yīng)用層協(xié)議進(jìn)行匹配,其關(guān)鍵是獲取標(biāo)識協(xié)議類型的正則表達(dá)式。而基于PCRE的正則表達(dá)式首先對正則表達(dá)式進(jìn)行編譯,然后通過匹配引擎來實現(xiàn)。
系統(tǒng)采用L7過濾器所提供的特征字符串,匹配引擎采用PCRE,報文經(jīng)過PCRE匹配,匹配到的報文予以標(biāo)記相對應(yīng)的編號,用于生成統(tǒng)計流量信息。
指紋的生成考慮的主要問題是計算的開銷,指紋計算方式也有很多種,常用的計算方式有MD5、SHA-1和Rabin指紋[12],但是MD5[13]和 SHA[14]在計算數(shù)據(jù)流中的數(shù)據(jù)塊指紋方面計算效率不是很好,因此,選擇Rabin指紋。
計算一個字節(jié)序列的Rabin指紋,字節(jié)序列為t1,t2,t3,…tβ,計算如下:
P和M是常整形數(shù),這個形式的表達(dá)式可以計算每一個長度為 β的子字節(jié)串{{t1,t2,…tβ},{t2,t3,…tβ+1},…},如果連續(xù)計算指紋,在計算完成第一個指紋后,接下來計算如下:
這樣就可以大大提升指紋的計算效率。
由于緩存空間的有限性,選擇什么樣的數(shù)據(jù)塊存入緩存,將是一個至關(guān)重要的問題,因為將每一個字節(jié)都存入緩存是不現(xiàn)實的。前面第2節(jié)提到的若干基本算法對所有數(shù)據(jù)都一視同仁,而由于不同數(shù)據(jù)對冗余度的潛在貢獻(xiàn)并不是相同的,所以后來有學(xué)者提出了基于內(nèi)容感知的數(shù)據(jù)塊選取算法。通過對冗余數(shù)據(jù)的統(tǒng)計研究發(fā)現(xiàn),重復(fù)傳輸?shù)臄?shù)據(jù)不僅和其內(nèi)容有關(guān),而且隨著應(yīng)用層協(xié)議的不同,對冗余度的貢獻(xiàn)也不相同。
既然重復(fù)數(shù)據(jù)與上層的應(yīng)用層協(xié)議相關(guān),就可以把應(yīng)用層協(xié)議作為數(shù)據(jù)塊選取的限定條件,提升其性能。而且經(jīng)統(tǒng)計表明,不同協(xié)議類型的數(shù)據(jù),在總傳輸數(shù)據(jù)中的比例是不同的。所以,將應(yīng)用層協(xié)議類型作為采樣頻率的限定條件,必將可以提升性能。不同協(xié)議的數(shù)據(jù)在廣域網(wǎng)中所占比例及數(shù)據(jù)冗余比例見表1。
表1 關(guān)鍵協(xié)議冗余度貢獻(xiàn)
首先,每接收到一個應(yīng)用層數(shù)據(jù)分組,先分析其應(yīng)用層協(xié)議類型,然后再根據(jù)其不同的協(xié)議類型調(diào)整數(shù)據(jù)塊采樣頻率,潛在冗余貢獻(xiàn)越大,采樣周期越短,采樣越多。而對于那些幾乎對冗余不會有什么貢獻(xiàn)的數(shù)據(jù),直接略過。
緩存空間的有限性使得必須有高效的緩存管理手段,才能更加高效地利用有限的緩存空間。
現(xiàn)在通用的緩存管理算法主要包括先進(jìn)先出(FIFO)、最近最少使用(LRU)。
FIFO算法實現(xiàn)簡單,幾乎不存在開銷問題,但是對于緩存的管理效果不是很好,而LRU較FIFO有更好的效果提升,但是代價也有提升。LSA是參考文獻(xiàn)[10]提出的一種緩存置換算法,該算法在基于使用頻率的置換算法基礎(chǔ)上加入了基于時間的衰退,因為單單基于使用頻率的置換算法,容易造成緩存污染。緩存污染是指,如果緩存中的某些項在一段時間內(nèi)有著較高的活躍度,但是隨著時間的遞增,這些曾經(jīng)活躍的緩存項不再有用,但是它們的使用頻率仍舊很高,導(dǎo)致無法被置換出緩存。LSA加入時間因素,該算法設(shè)定一個時間值,每當(dāng)一個固定的時間到達(dá),就清空緩存,因為算法的提出者認(rèn)為,某一數(shù)據(jù)塊的重復(fù)具有時間局限性,LSA算法可以有效地避免緩存污染。本文將對緩存管理做出進(jìn)一步的優(yōu)化。
LSA雖然較LRU在提升緩存管理的效果上有所進(jìn)步,但是該算法在處理緩存項的問題上過于激進(jìn)。
本文提出的改進(jìn)算法將剔除時間因素,通過添加計數(shù)值和緩存清理觸發(fā)機(jī)制來維護(hù)緩存。加入時間因素可以有效地避免緩存污染,通過緩存清理觸發(fā)機(jī)制,同樣可以有效地避免緩存污染。維護(hù)數(shù)據(jù)塊的重復(fù)命中計數(shù)可以更加高效地提升緩存的利用效率。
算法基本思路:在每一個數(shù)據(jù)塊加入緩存的同時,為其添加一個關(guān)聯(lián)屬性,用于記錄該數(shù)據(jù)塊每一次產(chǎn)生的重復(fù)傳輸。當(dāng)緩存被填滿時,該記錄值是某一個緩存數(shù)據(jù)塊是否被清理出緩存的有效評價指標(biāo)。每次當(dāng)緩存被填滿時,觸發(fā)緩存清理機(jī)制,遍歷緩存中的緩存項,將緩存中重復(fù)命中次數(shù)為零的緩存項清理出緩存,并將重復(fù)命中次數(shù)不為零的緩存項的重復(fù)命中次數(shù)清零。算法的具體實現(xiàn)步驟在第4節(jié)給出。
廣域網(wǎng)上傳輸?shù)臄?shù)據(jù)流具有其獨有的特性,所以在消除冗余數(shù)據(jù)的過程中,它并不能像分布式系統(tǒng)中的文件備份傳輸那樣,擁有數(shù)據(jù)副本,數(shù)據(jù)流的典型特征就是它的無限性。因此,必須選擇一種高效的數(shù)據(jù)緩存策略,數(shù)據(jù)塊的選取就是其中最為重要的步驟之一。
在數(shù)據(jù)塊選取模塊中,重要的數(shù)據(jù)結(jié)構(gòu)主要有兩個:一個用來檢測重復(fù)命中,另一個用來存儲緩存數(shù)據(jù)項。
在該系統(tǒng)中,檢測命中使用散列表結(jié)構(gòu),散列表節(jié)點的結(jié)構(gòu)為:
其中fingerprint為 32 bit的 Rabin指紋,key為緩存數(shù)據(jù)塊的唯一標(biāo)識符,也代表了該指紋對應(yīng)的數(shù)據(jù)塊在緩存數(shù)組中的位置。
數(shù)據(jù)緩存使用數(shù)組來完成,數(shù)組大小為65 535,數(shù)組節(jié)點的結(jié)構(gòu)為:
其中,hit為該緩存數(shù)據(jù)重復(fù)命中的次數(shù),fingerprint為緩存數(shù)據(jù)所對應(yīng)的指紋值。
數(shù)據(jù)塊選取模塊的具體執(zhí)行步驟如圖4所示。數(shù)據(jù)塊選取的主要步驟如下:
圖4 數(shù)據(jù)塊選取流程
(1)獲取來自內(nèi)核層的數(shù)據(jù)報文;(2)如果報文長度小于64 byte,將不對該報文做處理;(3)通過簡單的協(xié)議識別技術(shù),判斷該數(shù)據(jù)報文的應(yīng)用層協(xié)議類別,根據(jù)不同的協(xié)議類別,初始化數(shù)據(jù)塊選取參數(shù)P;
(4)通過變長分塊算法CDC分割每一個報文,計算每一個CDC分塊的32 byte的Rabin指紋,在每P個連續(xù)指紋值中選取局部最大值,存入緩存,并獲取該數(shù)據(jù)塊在緩存數(shù)組中的位置,該位置即為這個數(shù)據(jù)塊所對應(yīng)的key;
(5)與遠(yuǎn)程接收端同步
協(xié)議識別采用基于PCRE的匹配引擎,應(yīng)用層協(xié)議采用L7過濾器,PCRE首先對選取的正則表達(dá)式進(jìn)行編譯,通過調(diào)用pcre_compile函數(shù),生成編譯好的正則表達(dá)式的PCRE內(nèi)部結(jié)構(gòu),然后將獲取的應(yīng)用層數(shù)據(jù)分組內(nèi)容部分與編譯好的正則表達(dá)式進(jìn)行匹配,通過調(diào)用pcre_exec函數(shù),匹配正確返回對應(yīng)協(xié)議類型。
協(xié)議識別部分的結(jié)構(gòu)如圖5所示。
圖5 協(xié)議識別結(jié)構(gòu)描述
緩存空間的有限性,決定了緩存管理在提升冗余消除的效率方面起著決定性的作用。在之前學(xué)者的研究中,已經(jīng)提出的FIFO和LRU有優(yōu)點,但也存在著缺點,所以這里提出了一種新的緩存置換算法。
在緩存未滿的時候,將按序把需要存入緩存的數(shù)據(jù)存起來;當(dāng)緩存已滿的時候,則觸發(fā)置換算法,置換算法的詳細(xì)步驟如圖6所示。
圖6 緩存置換流程
在本文所提出的系統(tǒng)中,內(nèi)核層的主要工作分為如下3個部分。
·將每一個用于發(fā)送的應(yīng)用層數(shù)據(jù)發(fā)往用戶層;
· 接收來自用戶層的緩存結(jié)構(gòu),并把接收到的結(jié)構(gòu)體存入緩存;
·掃描即將發(fā)送的應(yīng)用層數(shù)據(jù)。
與數(shù)據(jù)緩存做匹配,把匹配到的冗余數(shù)據(jù)用獨一無二的key來替換,從而減少冗余數(shù)據(jù)的傳輸。內(nèi)核層擁有和用戶層完全相同的散列表,但是卻不需要緩存數(shù)組。冗余匹配通過指紋來完成,其步驟如下:
(1)掃描應(yīng)用層數(shù)據(jù)分組;
(2)通過CDC算法把數(shù)據(jù)分組分塊,計算每一塊的Rabin指紋,與散列表中的數(shù)據(jù)做匹配,如果匹配不成功,則跳過,如果匹配成功,則用散列表中該指紋值對應(yīng)的key替換原數(shù)據(jù)。
本文采用真實的廣域網(wǎng)傳輸數(shù)據(jù)進(jìn)行實驗,以驗證PI-RE的算法性能。實驗使用的流量是某大型局域網(wǎng)與廣域網(wǎng)接口上捕捉的真實數(shù)據(jù)流量,實驗數(shù)據(jù)較大,可以很好地驗證算法性能。實驗所用的數(shù)據(jù)分4次捕捉,捕捉數(shù)據(jù)的時間固定在每天的同一時間段。
為了更加直觀明了地展現(xiàn)算法性能,將該算法與MAXP算法通過實驗數(shù)據(jù)的統(tǒng)計結(jié)果進(jìn)行對比,并且在數(shù)據(jù)塊選取算法一致的情況下,使用所提出的緩存管理算法與LRU算法和FIFO做對比。
將PI-RE算法的數(shù)據(jù)塊選擇算法與MAXP算法的性能進(jìn)行對比,性能評價指標(biāo)主要分兩部分:帶寬節(jié)約率和執(zhí)行時間,寬帶節(jié)約率計算如下:
5.2.1 數(shù)據(jù)選擇算法比較
上述兩種算法,數(shù)據(jù)塊大小都選擇64 byte,緩存管理算法采用FIFO。兩種數(shù)據(jù)選擇算法的比較見表2。
表2 MAXP和PI-RE數(shù)據(jù)選擇算法比較
由表2可以看出,PI-RE在冗余數(shù)據(jù)的消除方面較MAXP有著不錯的提升,大約有15%的性能提升。而且因為PI-RE系統(tǒng)分為內(nèi)核態(tài)和用戶態(tài),所以在數(shù)據(jù)處理時間方面,并沒有因為算法復(fù)雜化而有太大的差別。
5.2.2 緩存管理算法比較
表3中的兩種算法,數(shù)據(jù)塊選擇算法都采用PI-RE算法,數(shù)據(jù)塊大小選為64 byte。
表3 LRU和PI-RE緩存管理算法比較
通過兩種緩存管理算法的比較可以發(fā)現(xiàn),新的緩存管理算法在冗余度的提升方面大約為10%,而在數(shù)據(jù)處理的速度上有著很大的提升,可以達(dá)到20%。
本文提出的PI-RE算法是一種基于數(shù)據(jù)緩存的冗余數(shù)據(jù)消除策略,能夠有效地減少廣域網(wǎng)中傳輸?shù)娜哂鄶?shù)據(jù)傳輸,該方法靈活、可擴(kuò)展。較之原有的MAXP+LRU有大約20%的性能提升。針對不同的傳輸環(huán)境,只需要在用戶態(tài)對算法進(jìn)行更改,便可以達(dá)到更好的消除效果。
在下一步的工作中,將會繼續(xù)對廣域網(wǎng)中的冗余數(shù)據(jù)進(jìn)行分析,抽象提取出它們的共同特點,以便更好地識別并預(yù)測,更加有效地提升冗余消除效率。
1 Anand A,Muthukrishnan A,Ram jee A R.Redundancy in network traffic:findings and implications.Proceedings of ACM SIGMETRICS,Seattle,WA,USA,2009:37~48
2 Squid web proxy cache.http://www.squid-cache.org
3 PeerApp:P2P and media caching.http://www.peerapp.com
4 Ziv J,Lempel A.A universal algorithm for sequential data compression.IEEE Transactionson Information Theory,1977,23(3):337~343
5 Gupta A,Akella A,Seshan S,et al.Understanding and Exploiting Network Traffic Redundancy.Technical Report#1592,University ofWisconsin,2007
6 Halepovic E,Williamson C,Ghaderi M.Low-overhead dynamic samplingforredundanttrafficelimination.JournalofCommunications,2012,7(1):28~38
7 Aronovich L,Asher R,Bachmat E,et al.The design of a similarity based reduplication system.Proceedings of the Israeli Experimental Systems Conference,Israel,2009:1~14
8 Spring N,Wetherall D.A protocol-independent technique for eliminating redundant network traffic.Proceedings of ACM SIGCOMM,Stockholm,Sweden,2000:87~95
9 Bjorner N,Blass A,Gurevich Y.Content-Dependent Chunking for Differential Compression,the Local Maximum Approac.Technical Report 109,Microsoft Research,2007
10 Halepovic E,Williamson C,Ghaderi M.Enhancing redundant network traffic elimination.Computer Networks,2012,56(2):795~809
11 陳曙輝.基于內(nèi)容分析的高速網(wǎng)絡(luò)協(xié)議識別技術(shù)研究.國防科學(xué)技術(shù)大學(xué)博士學(xué)位論文,2007
12 Rabin M O.Fingerprinting by Random Polynomials.Technical Report TR-15-81,Department of Computer Science,Harvard University,1981
13 Rivest R.The MD5 Message-Digest Algorithm,Networking Working Group Requests for Comment.MIT Laboratory for Computer Science and RSA Data Security,Inc,RFC-1321,1992
14 National Institute of Standards and Technology.Specications for Secure Hash Standard,1995