專利名稱:動態(tài)數(shù)據(jù)壓縮技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)壓縮技術(shù),特別涉及一種通過對數(shù)據(jù)流作壓縮測 試以選擇恰當(dāng)壓縮策略來平衡系統(tǒng)負(fù)載、以達(dá)到在既定系統(tǒng)能力下提升廣 域網(wǎng)間數(shù)據(jù)轉(zhuǎn)發(fā)速度的動態(tài)數(shù)據(jù)壓縮技術(shù)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的迅速普及和網(wǎng)民數(shù)量的不斷飆升,獲取信息的速度快慢 已經(jīng)成為制約互聯(lián)網(wǎng)發(fā)展的重要因素。如何在現(xiàn)有的網(wǎng)絡(luò)資源下提高用戶獲取信息的速度,已成為困擾眾多數(shù)據(jù)中心、ISP和企業(yè)的一大難題。因此網(wǎng)絡(luò)加速產(chǎn)品應(yīng)運而生,而且將成為未來互聯(lián)網(wǎng)上不可或缺的一部分。網(wǎng)絡(luò)上傳輸?shù)?0。/。以上數(shù)據(jù)都是基于HTTP/HTTPS的超文本數(shù)據(jù),因而網(wǎng) 絡(luò)加速產(chǎn)品也主要針對這部分進(jìn)行加速處理。目前主要的網(wǎng)絡(luò)加速技術(shù)有數(shù)據(jù)壓縮傳輸、緩存和使用SSL加速器等, 這些技術(shù)在節(jié)省網(wǎng)絡(luò)帶寬、縮短網(wǎng)絡(luò)傳輸時間和減少服務(wù)器運算負(fù)擔(dān)方面 有著顯著的成效,可以在一定程度上加快網(wǎng)絡(luò)訪問速度。另外,在高丟包 率高延遲的網(wǎng)絡(luò)環(huán)境下使用TCP上層應(yīng)用時,不少網(wǎng)絡(luò)加速產(chǎn)品也采用對 具體應(yīng)用層協(xié)議甚至TCP協(xié)議本身進(jìn)行優(yōu)化的方法,以達(dá)到加速的效果。發(fā)明內(nèi)容本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)中的不足之處,提供一種通過特 征提取方法快速識別網(wǎng)絡(luò)輸入數(shù)據(jù),并依據(jù)數(shù)據(jù)流倉庫將重復(fù)的數(shù)據(jù)替換 成有效的編碼,在遠(yuǎn)端的流cache設(shè)備會將編碼翻譯回原來的數(shù)據(jù),從而 減少了在廣域網(wǎng)上傳輸?shù)臄?shù)據(jù)量。由于數(shù)據(jù)流倉庫很大(可通過硬盤保存, 幾百兆到幾百千GB不等),可保存比通常壓縮方法更多的重復(fù)模式。因此, 可在數(shù)據(jù)流庫中找到絕大多數(shù)的冗余信息,大幅降低網(wǎng)絡(luò)數(shù)據(jù)傳輸量,提 高帶寬利用率的一種通過流緩存實現(xiàn)網(wǎng)間數(shù)據(jù)傳輸加速的動態(tài)數(shù)據(jù)壓縮技 術(shù)。本發(fā)明的目的在于提供一種通過對數(shù)據(jù)流作壓縮測試以選擇恰當(dāng)?shù)膲嚎s策略來平衡系統(tǒng)負(fù)載、以達(dá)到在既定系統(tǒng)能力下提升廣域網(wǎng)間的動態(tài)數(shù)據(jù)壓縮技術(shù)。它包括壓縮算法的動態(tài)選擇和壓縮測試輪次的動態(tài)計算壓 縮算法的動態(tài)選擇對于每輪將要回發(fā)給客戶端的緩沖,根據(jù)其上次壓縮 狀態(tài),作新一輪的動態(tài)壓縮測試,根據(jù)測試結(jié)果動態(tài)選擇壓縮算法,和決 定下一輪壓縮測試輪次。壓縮測試輪次的計算當(dāng)壓縮測試效果較差時, 認(rèn)為測試失敗,下一個測試輪次將會是step次之后,若連續(xù)失敗N次,則 下一個測試輪次定在更大的跨步,例如ITstep次之后。 本發(fā)明的目的可以通過以下措施來達(dá)到這種動態(tài)數(shù)據(jù)壓縮技術(shù)(壓縮算法的動態(tài)選擇和壓縮測試輪次的動態(tài) 計算),其特殊之處在于,它包括以下步驟 (D初始化(步驟101);(2)提取連接的壓縮狀態(tài)S ,檢查輪次T(步驟102); (s)檢測S是否為待選算法中的一種(步驟103); (4)若S不為待選算法中的一種則檢測當(dāng)前是否為檢查輪次(步驟104); (s)若步驟104的檢測結(jié)果為否,則發(fā)送未壓縮數(shù)據(jù)(步驟110);(6) 若步驟104的檢測結(jié)果為是,則依次用所有待選算法壓縮數(shù)據(jù),檢 查其壓縮比(步驟105);(7) 檢測其壓縮比是否達(dá)到最小要求(步驟106);(8) 若步驟106的檢測結(jié)果為是,則更新S , 一發(fā)送此算法壓縮后的數(shù) 據(jù)(步驟107)后,結(jié)束(步驟115);(9) 若步驟106的檢測結(jié)果為否,則檢測是否還有待選算法(步驟108); 袖若步驟108的檢測結(jié)果為是,則返回步驟105 ;(")若步驟108的檢測結(jié)果為否,則調(diào)整T到更大的跨步(步驟109);(12) 發(fā)送未壓縮數(shù)據(jù)(步驟110)至結(jié)束(步驟115);(13) 若S為待選算法中的一種,則采用對應(yīng)算法壓縮數(shù)據(jù)(步驟111);(14) 檢測壓縮比是否達(dá)到最小要求(步驟112);d5)若步驟112的檢測結(jié)果為是,則發(fā)送壓縮后的數(shù)據(jù)(步驟113); (16)若步驟112的檢測結(jié)果為否,則把S和T重新初始化(步驟114),并發(fā)送未壓縮數(shù)據(jù)(步驟114);(17)結(jié)束(步驟115)本發(fā)明具有如下優(yōu)點1 .相對于現(xiàn)有的加速技術(shù),本發(fā)明最大的特點在于實現(xiàn)簡單、實施成 本低。它不像緩存技術(shù)或硬件加速器等在實施時需要高成本的設(shè)備投入, 也不像協(xié)議優(yōu)化等需要深入底層了解各種復(fù)雜的協(xié)議原理。本發(fā)明在實現(xiàn) 上充分利用基于同一連接的數(shù)據(jù)傳輸?shù)淖陨硖攸c,只需了解壓縮算法的特 點即可。2. 本發(fā)明充分利用了基于同一連接的數(shù)據(jù)傳輸?shù)奶攸c,對不同的連接 采用了恰當(dāng)?shù)膲嚎s策略,從而在既定系統(tǒng)能力下提高了數(shù)據(jù)轉(zhuǎn)發(fā)速度,大 大增強(qiáng)了用戶體驗。3. 動態(tài)壓縮技術(shù)還可以很方便地跟現(xiàn)有的加速技術(shù)結(jié)合使用,以更進(jìn) 一步提升網(wǎng)絡(luò)速度。實施時只需在客戶端部署一客戶端程序,在應(yīng)用服務(wù) 端部署AppProxy服務(wù)器即可,可以廣泛應(yīng)用于代理服務(wù)器、各種VPN產(chǎn) 品或其他基于C/S的系統(tǒng)中。4 .本發(fā)明開發(fā)了一種應(yīng)用代理系統(tǒng)AppProxy ,并在網(wǎng)絡(luò)數(shù)據(jù)的壓縮 技術(shù)的研究與開發(fā)過程中,對各種壓縮算法作了測試實驗。實驗結(jié)果表明, 在同樣的運行環(huán)境下,對不同類型的數(shù)據(jù),不同的算法在壓縮比和占用系 統(tǒng)負(fù)載方面會有較大的差距。最有代表性的是對超文本數(shù)據(jù),算法2相對 算法1有較大的壓縮比差距和較大的系統(tǒng)負(fù)載占用差距,而對其它一些測 試數(shù)據(jù),壓縮比差距就要小許多。5.在傳輸技術(shù)的研究與開發(fā)過程中,對大量的基于連接的網(wǎng)絡(luò)傳輸作 了測試統(tǒng)計,統(tǒng)計結(jié)果表明,同一連接內(nèi)所傳輸?shù)臄?shù)據(jù)流,若把它們按定 長X分成多塊,則在相近轉(zhuǎn)發(fā)的多塊數(shù)據(jù)的壓縮方面的特性基本上是一致 的,包括是否具有壓縮價值,和采用的壓縮算法能夠達(dá)到的壓縮比率等。
圖1是本發(fā)明的動態(tài)數(shù)據(jù)壓縮技術(shù)的流程圖。圖2是本發(fā)明的一個較佳實施例的流程圖。
具體實施方式
本發(fā)明下面將結(jié)合附圖作進(jìn)一步詳述 請參閱附圖所示,所述動態(tài)數(shù)據(jù)壓縮技術(shù),包括以下步驟 (DAppProxy開始轉(zhuǎn)連接時,把以下數(shù)據(jù)與連接關(guān)聯(lián) 上次壓縮狀態(tài)S-無壓縮,回發(fā)數(shù)據(jù)輪次A=0 ; 下次檢查輪次已=1 ;連續(xù)失敗次數(shù)「=1 (步驟201);(2) 當(dāng)步驟201的連接上有新一輪服務(wù)端數(shù)據(jù)回發(fā)客戶端之前,設(shè)數(shù)據(jù) 長度為X ; A則遞增一,即A++ (步驟202);(3) 判斷壓縮狀態(tài)S(步驟203);(4) 若步驟203的判斷結(jié)果為否,則進(jìn)一步判斷數(shù)據(jù)輪次A的值是否與 檢查輪次B的值相同(步驟204);(5) 若步驟204的判斷結(jié)果為否,則轉(zhuǎn)發(fā)無壓縮數(shù)據(jù)(步驟205); (e)若步驟204的判斷結(jié)果為是,則作算法1壓縮,得長度Y(步驟206);(7) 判斷數(shù)據(jù)長度X是否大于系統(tǒng)指定的最小壓縮比m與作算法1壓縮, 所得長度Y的乘積(步驟207);(8) 若步驟207的判斷結(jié)果為否,則認(rèn)為測試失敗,下一個測試輪次將 會在st印次之后若連續(xù)失敗F次則下一個測試輪次定在Pst印次之后, 即B+=*F , F十+(步驟208);(g)轉(zhuǎn)發(fā)無壓縮數(shù)據(jù)(步驟205);do)若步驟207的判斷結(jié)果為是,則作算法2壓縮,得長度Z(步驟209); (")判斷數(shù)據(jù)長度X是否大于系統(tǒng)指定的最小壓縮比m與m、步驟209 長度Z的乘積(步驟210);(12) 若步驟210的判斷結(jié)果為否則轉(zhuǎn)發(fā)算法1壓縮數(shù)據(jù)S:算法1(步驟 213);(13) 若步驟210的判斷結(jié)果為是則轉(zhuǎn)發(fā)算法2壓縮數(shù)據(jù)S-算法2(步驟 217);(14) 若步驟203的判斷結(jié)果為是,則先使用算法1測試,作算法1壓縮 得長度Y(步驟211);(15) 判斷壓縮率是否達(dá)到最小要求,即數(shù)據(jù)長度X是否大于系統(tǒng)指定的 最小壓縮比m與步驟211長度Y的乘積(步驟212);(16) 若步驟212的判斷結(jié)果為是,則轉(zhuǎn)發(fā)算法1壓縮數(shù)據(jù),S-算法1(步 驟213);(17) 若步驟212的判斷結(jié)果為否,則轉(zhuǎn)發(fā)無壓縮數(shù)據(jù),3=無壓縮,檢查 輪次B-數(shù)據(jù)輪次A+step ,連續(xù)失敗次數(shù)卩=1(步驟214);(is)若步驟212的判斷結(jié)果為否,在算法1測試失敗后,使用算法2壓 縮,得長度Z(步驟215);(19)判斷壓縮率是否達(dá)到最小要求,即數(shù)據(jù)長度X是否大于系統(tǒng)指定最 小壓縮比m與m、步驟215長度Z的乘積(步驟216);(2Q)若步驟216的判斷結(jié)果為否,則轉(zhuǎn)發(fā)無壓縮數(shù)據(jù),3=無壓縮,檢查 輪次已=數(shù)據(jù)輪次A+st印,連續(xù)失敗次數(shù)F4(步驟214);(21)若步驟216的判斷結(jié)果為是,則轉(zhuǎn)發(fā)算法2壓縮數(shù)據(jù)S-算法2(步 驟217)。以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明權(quán)利要求范圍所做的 均等變化與修飾,皆應(yīng)屬本發(fā)明權(quán)利要求的涵蓋范圍。
權(quán)利要求
1、一種動態(tài)數(shù)據(jù)壓縮技術(shù),其特征在于,它包括以下步驟(1)初始化(步驟101);(2)提取連接的壓縮狀態(tài)S,檢查輪次T(步驟102);(3)檢測S是否為待選算法中的一種(步驟103);(4)若S不為待選算法中的一種,則檢測當(dāng)前是否為檢查輪次(步驟104);(5)若步驟104的檢測結(jié)果為否,則發(fā)送未壓縮數(shù)據(jù)(步驟110);(6)若步驟104的檢測結(jié)果為是,則依次用所有待選算法壓縮數(shù)據(jù),檢查其壓縮比(步驟105);(7)檢測其壓縮比是否達(dá)到最小要求(步驟106);(8)若步驟106的檢測結(jié)果為是,則更新S,并發(fā)送此算法壓縮后的數(shù)據(jù)(步驟107)后,結(jié)束(步驟115);(9)若步驟106的檢測結(jié)果為否,則檢測是否還有待選算法(步驟108);(10)若步驟108的檢測結(jié)果為是,則返回步驟105;(11)若步驟108的檢測結(jié)果為否,則調(diào)整T到更大的跨步(步驟109);(12)發(fā)送未壓縮數(shù)據(jù)(步驟110)至結(jié)束(步驟115);(13)若S為待選算法中的一種,則采用對應(yīng)算法壓縮數(shù)據(jù)(步驟111);(14)檢測壓縮比是否達(dá)到最小要求(步驟112);(15)若步驟112的檢測結(jié)果為是,則發(fā)送壓縮后的數(shù)據(jù)(步驟113);(16)若步驟112的檢測結(jié)果為否,則把S和T重新初始化(步驟114),并發(fā)送未壓縮數(shù)據(jù)(步驟114);(17)結(jié)束(步驟115)。
全文摘要
本發(fā)明涉及一種動態(tài)數(shù)據(jù)壓縮技術(shù),是通過對數(shù)據(jù)流作壓縮測試以選擇恰當(dāng)?shù)膲嚎s策略來平衡系統(tǒng)負(fù)載、以達(dá)到在既定系統(tǒng)能力下提升廣域網(wǎng)間數(shù)據(jù)轉(zhuǎn)發(fā)速度的方法。該動態(tài)數(shù)據(jù)壓縮技術(shù)包含的主要步驟如下(1)壓縮算法的動態(tài)選擇對于每輪將要回發(fā)給客戶端的緩沖,根據(jù)其上次壓縮狀態(tài),作新一輪的動態(tài)壓縮測試,根據(jù)測試結(jié)果動態(tài)選擇壓縮算法,和決定下一輪壓縮測試輪次。(2)壓縮測試輪次的計算當(dāng)壓縮測試效果較差時,認(rèn)為測試失敗,下一個測試輪次將會是step次之后,若連續(xù)失敗N次,則下一個測試輪次定在N*step次之后。該動態(tài)數(shù)據(jù)壓縮技術(shù)可廣泛應(yīng)用于代理服務(wù)器、各種VPN產(chǎn)品或其它基于C/S的系統(tǒng)中。
文檔編號H03M7/30GK101237301SQ20081006539
公開日2008年8月6日 申請日期2008年2月22日 優(yōu)先權(quán)日2008年2月22日
發(fā)明者李偉浩 申請人:深圳市深信服電子科技有限公司