專利名稱:一種網(wǎng)絡(luò)字節(jié)緩存的實(shí)現(xiàn)方法及其設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)代理緩存技術(shù),尤其涉及一種網(wǎng)絡(luò)字節(jié)緩存的實(shí)現(xiàn)方法及其設(shè)備。
背景技術(shù):
網(wǎng)絡(luò)字節(jié)緩存技術(shù)是把用戶所要請(qǐng)求訪問(wèn)的網(wǎng)絡(luò)資源緩存到本地,在最短的時(shí)間內(nèi)將信息連續(xù)、完整、實(shí)時(shí)地傳遞給最終用戶,從而降低網(wǎng)絡(luò)的帶寬負(fù)荷,并提高數(shù)據(jù)的傳輸速度。圖1為現(xiàn)有技術(shù)字節(jié)緩存(Byte Cache)技術(shù)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。如圖1所示,該網(wǎng)絡(luò)包括一對(duì)網(wǎng)絡(luò)代理緩存設(shè)備,其中一個(gè)網(wǎng)絡(luò)代理緩存設(shè)備靠近發(fā)起連接的用戶,稱為客戶端網(wǎng)絡(luò)代理緩存設(shè)備,用于接收/轉(zhuǎn)發(fā)來(lái)自用戶的訪問(wèn)請(qǐng)求,并緩存相應(yīng)的數(shù)據(jù);另一個(gè)網(wǎng)絡(luò)代理緩存設(shè)備靠近服務(wù)器,稱為服務(wù)端網(wǎng)絡(luò)代理緩存設(shè)備,用于接收/轉(zhuǎn)發(fā)來(lái)自服務(wù)器的用戶所請(qǐng)求的資源,并緩存相應(yīng)的數(shù)據(jù)。圖2為現(xiàn)有技術(shù)字節(jié)緩存技術(shù)客戶端-服務(wù)端的信令圖。如圖2所示,用戶端與服務(wù)端建立一個(gè)連接,客戶端網(wǎng)絡(luò)代理緩存設(shè)備向服務(wù)端網(wǎng)絡(luò)代理緩存設(shè)備轉(zhuǎn)發(fā)用戶的網(wǎng)絡(luò)訪問(wèn)請(qǐng)求,服務(wù)端網(wǎng)絡(luò)代理緩存設(shè)備將從服務(wù)器獲取相應(yīng)的網(wǎng)絡(luò)資源。服務(wù)端網(wǎng)絡(luò)代理緩存設(shè)備將從服務(wù)器獲取的數(shù)據(jù)流基于內(nèi)容指紋(Content Fingerprinting)技術(shù)劃分多個(gè)數(shù)據(jù)塊,為了防止數(shù)據(jù)塊的大小過(guò)大或過(guò)小,數(shù)據(jù)塊的最小限度和最大限度可以被指定,同時(shí)可以限制數(shù)據(jù)塊的平均大小,例如4KB。服務(wù)端網(wǎng)絡(luò)代理緩存設(shè)備將數(shù)據(jù)塊標(biāo)識(shí)符(索引)發(fā)送給客戶端網(wǎng)絡(luò)代理緩存設(shè)備,如果客戶端網(wǎng)絡(luò)代理緩存設(shè)備已經(jīng)緩存了該索引的數(shù)據(jù)塊,則將該索引替換成緩存中的數(shù)據(jù)塊,并將該數(shù)據(jù)塊重組后發(fā)送給用戶;如果客戶端網(wǎng)絡(luò)代理緩存設(shè)備未緩存該索引的數(shù)據(jù)塊,客戶端網(wǎng)絡(luò)代理緩存設(shè)備則向服務(wù)端網(wǎng)絡(luò)代理緩存設(shè)備發(fā)送獲取該索引數(shù)據(jù)塊請(qǐng)求,服務(wù)端網(wǎng)絡(luò)代理緩存設(shè)備向客戶端網(wǎng)絡(luò)代理緩存設(shè)備發(fā)送該索引的原始數(shù)據(jù)塊,客戶端網(wǎng)絡(luò)代理緩存設(shè)備接收該索引的原始數(shù)據(jù)塊,并將數(shù)據(jù)塊重組后發(fā)送給用戶。另外,字節(jié)緩存技術(shù)同樣可以用來(lái)優(yōu)化客戶端向服務(wù)器上傳的數(shù)據(jù)流量。現(xiàn)有技術(shù)字節(jié)緩存技術(shù)的益處在于當(dāng)客戶端網(wǎng)絡(luò)代理緩存設(shè)備能夠以較高的概率將索引恢復(fù)成相應(yīng)的數(shù)據(jù)塊,由于索引的大小遠(yuǎn)遠(yuǎn)小于對(duì)應(yīng)的數(shù)據(jù)塊,整個(gè)系統(tǒng)能夠取得極高的傳輸壓縮比。如果這種操作失敗的概率較高時(shí),則導(dǎo)致需要向服務(wù)端網(wǎng)絡(luò)代理緩存設(shè)備頻繁的請(qǐng)求原始數(shù)據(jù)塊,那么反而會(huì)降低整個(gè)傳輸過(guò)程的效率。如果對(duì)原始數(shù)據(jù)塊的請(qǐng)求失敗,則意味著原始數(shù)據(jù)塊的請(qǐng)求失敗,意味著原始信息的丟失,則該條連接的傳輸就會(huì)中斷。
發(fā)明內(nèi)容
本發(fā)明的目的是解決上述現(xiàn)有技術(shù)存在的問(wèn)題。為實(shí)現(xiàn)上述目的,一方面,本發(fā)明提供了一種網(wǎng)絡(luò)字節(jié)緩存的實(shí)現(xiàn)方法,該方法包括以下步驟:客戶端緩存設(shè)備存儲(chǔ)數(shù)據(jù)塊及其索引信息,并將所存儲(chǔ)的信息發(fā)送給服務(wù)端緩存設(shè)備以保持信息同步,服務(wù)端緩存設(shè)備接收來(lái)自客戶端緩存設(shè)備緩存中的數(shù)據(jù)塊索引信息;服務(wù)端緩存設(shè)備接收并保存所述數(shù)據(jù)塊索引信息;服務(wù)端緩存設(shè)備根據(jù)生成的數(shù)據(jù)塊查找本地?cái)?shù)據(jù)塊索引信息,如果查找成功,則向客戶端緩存設(shè)備發(fā)送該數(shù)據(jù)塊所對(duì)應(yīng)的索引信息。另一方面,本發(fā)明提供了一種網(wǎng)絡(luò)字節(jié)緩存的設(shè)備,該設(shè)備包括接收模塊,用于接收數(shù)據(jù)流信息;數(shù)據(jù)塊生成模塊,用于根據(jù)數(shù)據(jù)流生成數(shù)據(jù)塊;查找模塊,用于根據(jù)數(shù)據(jù)塊索引查找本地?cái)?shù)據(jù)塊;數(shù)據(jù)塊重組模塊,用于重組數(shù)據(jù)塊;發(fā)送模塊,用于發(fā)送數(shù)據(jù)。根據(jù)本發(fā)明的方法及其設(shè)備,能夠極大提高索引命中成功率,減少出錯(cuò)機(jī)率,同時(shí)對(duì)索引信息交互過(guò)程給帶寬資源造成的額外壓力進(jìn)行優(yōu)化。
本發(fā)明的示例性實(shí)施例將從下文中給出的詳細(xì)說(shuō)明和本發(fā)明不同實(shí)施例的附圖中被更完全地理解,然而這不應(yīng)該被視為將本發(fā)明限制于具體的實(shí)施例,而應(yīng)該只是為了解釋和理解。圖1為現(xiàn)有技術(shù)網(wǎng)絡(luò)字節(jié)緩存技術(shù)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);圖2為現(xiàn)有技術(shù)網(wǎng)絡(luò)字節(jié)緩存技術(shù)客戶端-服務(wù)端的信令圖;圖3為本發(fā)明實(shí)施例網(wǎng)絡(luò)字節(jié)緩存的分布式系統(tǒng)應(yīng)用場(chǎng)景圖;圖4為本發(fā)明實(shí)施例網(wǎng)絡(luò)字節(jié)緩存的實(shí)現(xiàn)方法流程圖;圖5為本發(fā)明一實(shí)施例服務(wù)端網(wǎng)絡(luò)字節(jié)緩存的方法流程圖;圖6為本發(fā)明另一實(shí)施例服務(wù)端網(wǎng)絡(luò)字節(jié)緩存的方法流程圖;圖7為本發(fā)明實(shí)施例客戶端網(wǎng)絡(luò)字節(jié)緩存的方法流程圖;圖8為本發(fā)明實(shí)施例網(wǎng)絡(luò)字節(jié)緩存的設(shè)備示意結(jié)構(gòu)圖。
具體實(shí)施例方式本領(lǐng)域的普通技術(shù)人員將意識(shí)到,所述示例性實(shí)施例的下述詳細(xì)說(shuō)明僅僅是說(shuō)明性的,并且不是意在以任何方式加以限制。圖3為本發(fā)明實(shí)施例網(wǎng)絡(luò)字節(jié)緩存的分布式系統(tǒng)應(yīng)用場(chǎng)景圖。如圖所示,用戶A可同時(shí)訪問(wèn)服務(wù)器A和服務(wù)器B,用戶B也可同時(shí)訪問(wèn)服務(wù)器A和服務(wù)器B??蛻舳司彺嬖O(shè)備C (設(shè)備C)與服務(wù)端緩存設(shè)備A (設(shè)備A)、服務(wù)端緩存設(shè)備B (設(shè)備B)分別構(gòu)成對(duì)端設(shè)備。同樣,客戶端緩存設(shè)備D (設(shè)備D)與服務(wù)端緩存設(shè)備A、服務(wù)端緩存設(shè)備B也構(gòu)成對(duì)端設(shè)備。對(duì)端設(shè)備間維護(hù)著穩(wěn)定的信息交互通道。本發(fā)明實(shí)施例網(wǎng)絡(luò)字節(jié)緩存的分布式系統(tǒng)的服務(wù)端緩存設(shè)備A、服務(wù)端緩存設(shè)備B、客戶端緩存設(shè)備C和客戶端緩存設(shè)備D分別具有不同的特征碼(characteristicvalue),例如,服務(wù)端緩存設(shè)備B的特征碼為0x0001、客戶端緩存設(shè)備C的特征碼為0x0010。特征碼具有兩兩正交的特點(diǎn)。本發(fā)明實(shí)施例網(wǎng)絡(luò)字節(jié)緩存的分布式系統(tǒng)的每個(gè)緩存設(shè)備都會(huì)建立一個(gè)索引表,該索弓I表用于描述數(shù)據(jù)塊在整個(gè)系統(tǒng)內(nèi)的分布式存儲(chǔ)情況。索弓丨表中的每個(gè)表項(xiàng)對(duì)應(yīng)一個(gè)數(shù)據(jù)塊的分布式存儲(chǔ)信息。
表I不例了索弓丨表的表項(xiàng)內(nèi)容:表I
權(quán)利要求
1.一種網(wǎng)絡(luò)字節(jié)緩存的實(shí)現(xiàn)方法,其特征在于,所述方法包括: 服務(wù)端緩存設(shè)備接收來(lái)自客戶端緩存設(shè)備緩存中的數(shù)據(jù)塊索引信息; 所述服務(wù)端緩存設(shè)備接收并保存所述數(shù)據(jù)塊索引信息; 所述服務(wù)端緩存設(shè)備根據(jù)生成的數(shù)據(jù)塊查找本地?cái)?shù)據(jù)塊索引信息,如果查找成功,則向客戶端緩存設(shè)備發(fā)送該數(shù)據(jù)塊對(duì)應(yīng)的索引信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述客戶端緩存設(shè)備和所述服務(wù)端緩存設(shè)備分別具有特征碼,索引信息包括表項(xiàng)位圖,表項(xiàng)位圖由所述特征碼構(gòu)成,根據(jù)所述表項(xiàng)位圖確定所述數(shù)據(jù)塊緩存在特征碼相應(yīng)的緩存設(shè)備中。
3.根據(jù)權(quán)利I所述的方法,其特征在于:所述數(shù)據(jù)塊索引信息包括索引表項(xiàng)、位圖表項(xiàng)、時(shí)間戳表項(xiàng)、數(shù)據(jù)塊長(zhǎng)表項(xiàng)和熱點(diǎn)值表項(xiàng)中的一種或多種。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于:當(dāng)所述服務(wù)端緩存設(shè)備接收到數(shù)據(jù)塊索引信息時(shí),查找本地索弓丨表,如果其索引表中沒(méi)有該表項(xiàng),則在本地新建表項(xiàng),該表項(xiàng)中的位圖表項(xiàng)等于所述客戶端緩存設(shè)備的特征碼;如果其索引表中已存在該表項(xiàng),則更新本地索引表中的表項(xiàng)位圖。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述客戶端緩存設(shè)備和/或服務(wù)端緩存設(shè)備根據(jù)熱點(diǎn)值表項(xiàng)中的熱點(diǎn)值刪除老化的表項(xiàng)以及所述表項(xiàng)對(duì)應(yīng)的數(shù)據(jù)塊。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述客戶端緩存設(shè)備和/或服務(wù)端緩存設(shè)備通過(guò)信息同步策略保持索引信息同步。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于:所述信息同步策略由網(wǎng)絡(luò)可用帶寬資源、待發(fā)送信息的大小、和信息被延遲發(fā)送的時(shí)間中的一個(gè)或多個(gè)因素決定。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 服務(wù)端緩存設(shè)備根據(jù)生成的數(shù)據(jù)塊及索引信息判斷客戶端緩存設(shè)備是否已經(jīng)存儲(chǔ)了所述索引所對(duì)應(yīng)的數(shù)據(jù)塊,如果是,則向客戶端緩存設(shè)備發(fā)送所述數(shù)據(jù)塊索引,并在本地內(nèi)存中緩存所述數(shù)據(jù)塊;如果不是,則向客戶端緩存設(shè)備發(fā)送所述數(shù)據(jù)塊。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 服務(wù)端緩存設(shè)備在生成的數(shù)據(jù)塊及索引信息判斷客戶端緩存設(shè)備已經(jīng)存儲(chǔ)了所述索引所對(duì)應(yīng)的數(shù)據(jù)塊的情況下,判斷本地緩存中是否存有所述數(shù)據(jù)塊,如果是,則向客戶端緩存設(shè)備發(fā)送所述數(shù)據(jù)塊,否則向客戶端緩存設(shè)備發(fā)送所述數(shù)據(jù)塊的索引,并在本地緩存所述數(shù)據(jù)塊。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述服務(wù)端緩存設(shè)備使用最近最少使用算法,針對(duì)反復(fù)使用的熱點(diǎn)數(shù)據(jù)塊存儲(chǔ)在本地磁盤的數(shù)據(jù)緩存中。
11.一種網(wǎng)絡(luò)字節(jié)緩存的設(shè)備,其特征在于包括: 接收模塊(701),用于接收數(shù)據(jù)流信息; 數(shù)據(jù)塊生成模塊(702),用于根據(jù)數(shù)據(jù)流生成數(shù)據(jù)塊及其索引。
查找模塊(703),用于根據(jù)數(shù)據(jù)塊索引查找本地?cái)?shù)據(jù)塊; 發(fā)送模塊(705),用于數(shù)據(jù)的發(fā)送。
全文摘要
本發(fā)明公開(kāi)了一種網(wǎng)絡(luò)代理緩存的方法及其設(shè)備,該方法包括以下步驟服務(wù)端緩存設(shè)備接收來(lái)自客戶端緩存設(shè)備緩存中的數(shù)據(jù)塊索引信息;服務(wù)端緩存設(shè)備接收并保存所述數(shù)據(jù)塊索引信息;服務(wù)端緩存設(shè)備根據(jù)生成的數(shù)據(jù)塊查找本地?cái)?shù)據(jù)塊索引信息,如果查找成功,則向客戶端緩存設(shè)備發(fā)送該數(shù)據(jù)塊對(duì)應(yīng)的索引信息。該設(shè)備包括接收模塊、數(shù)據(jù)生成模塊、查找模塊、數(shù)據(jù)塊重組模塊和發(fā)送模塊。本發(fā)明能夠減少緩存命中失敗的可能性,減少出錯(cuò)機(jī)率,同時(shí)對(duì)索引信息交互過(guò)程給帶寬資源造成的額外壓力進(jìn)行優(yōu)化。
文檔編號(hào)H04L29/08GK103188296SQ201110449249
公開(kāi)日2013年7月3日 申請(qǐng)日期2011年12月29日 優(yōu)先權(quán)日2011年12月29日
發(fā)明者才華, 梁志勇, 郭璞, 李浩然 申請(qǐng)人:北京網(wǎng)康科技有限公司