亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)傳輸方法及其系統(tǒng)與流程

文檔序號:12890111閱讀:278來源:國知局
一種數(shù)據(jù)傳輸方法及其系統(tǒng)與流程

本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)傳輸方法及其系統(tǒng)、計算機存儲介質(zhì)、邊緣節(jié)點設(shè)備和中轉(zhuǎn)節(jié)點設(shè)備。



背景技術(shù):

內(nèi)容分發(fā)網(wǎng)絡(luò)(contentdeliverynetwork,cdn)構(gòu)建在互聯(lián)網(wǎng)上,依靠部署在各地的邊緣服務(wù)器,通過中心平臺的負(fù)載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。

當(dāng)終端用戶向cdn邊緣節(jié)點請求數(shù)據(jù)時,cdn邊緣節(jié)點可能會像cdn中轉(zhuǎn)節(jié)點請求所需的數(shù)據(jù)。目前,當(dāng)前普遍的做法是向中轉(zhuǎn)節(jié)點發(fā)起一個請求,中轉(zhuǎn)節(jié)點返回全量或者分片的數(shù)據(jù),然后邊緣節(jié)點緩存這些數(shù)據(jù),當(dāng)下次再有用戶請求時,邊緣節(jié)點可以將緩存直接給用戶。但是,在這種情況之下,當(dāng)前邊緣節(jié)點到中轉(zhuǎn)節(jié)點的數(shù)據(jù)傳輸存在以下缺點:

(1)例如,a.abc.com/a.avi文件和a.bcd.com/a.avi文件其實是完全一樣的文件,但是在邊緣節(jié)點那里則需要緩存兩份,這樣就造成了浪費邊緣節(jié)點存儲資源的現(xiàn)象;

(2)當(dāng)邊緣節(jié)點有a.abc.com/a.avi文件的緩存,而沒有a.bcd.com/a.avi文件的緩存時,如果用戶請求a.bcd.com/a.avi文件時,邊緣節(jié)點則需要回到中轉(zhuǎn)節(jié)點拉取數(shù)據(jù),這樣一來耗費了數(shù)據(jù)傳輸?shù)臅r間,也消耗了數(shù)據(jù)傳輸帶寬。

由于以上兩個缺陷的存在,進而造成了數(shù)據(jù)傳輸?shù)男瘦^低,極大的影響了用戶的體驗。



技術(shù)實現(xiàn)要素:

為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種邊緣節(jié)點設(shè)備及其數(shù)據(jù)傳輸方法、計算機存儲介質(zhì)和通信設(shè)備。所述技術(shù)方案如下:

一方面,一種數(shù)據(jù)傳輸方法,其中,所述方法包括以下步驟:

向中轉(zhuǎn)節(jié)點請求獲取數(shù)據(jù)文件;

接收所述中轉(zhuǎn)節(jié)點對所述數(shù)據(jù)文件的響應(yīng)數(shù)據(jù)包,所述響應(yīng)數(shù)據(jù)包中包含唯一標(biāo)識所述數(shù)據(jù)件文的特征碼;

查詢特征碼記錄庫中是否存在所述特征碼;

若存在所述特征碼,則通知所述中轉(zhuǎn)節(jié)點停止傳輸所述數(shù)據(jù)文件,并創(chuàng)建指向所述特征碼對應(yīng)的緩存文件的緩存指向記錄;

將所述緩存文件發(fā)送給所述用戶端。

進一步的,所述方法還包括以下步驟:

若不存在所述特征碼,則接收并緩存所述中轉(zhuǎn)節(jié)點發(fā)送的所述數(shù)據(jù)文件,將所述特征碼記錄到所述特征碼記錄庫中,并將所述數(shù)據(jù)文件發(fā)送給所述用戶端。

進一步的,在所述向中轉(zhuǎn)節(jié)點請求獲取數(shù)據(jù)文件的步驟之前還包括:

接收用戶端獲取所述數(shù)據(jù)文件的請求;

判斷是否緩存有所述數(shù)據(jù)文件;

若緩存有所述數(shù)據(jù)文件,則將所述數(shù)據(jù)文件發(fā)送給所述用戶端;

若沒有緩存所述數(shù)據(jù)文件,則判斷是否有所述數(shù)據(jù)文件對應(yīng)的緩存指向記錄;

若有所述緩存指向記錄,則將所述緩存指向記錄所指向的緩存文件發(fā)送給所述用戶端;

若沒有所述緩存指向記錄,則向所述中轉(zhuǎn)節(jié)點請求獲取所述數(shù)據(jù)文件。

進一步的,所述方法還包括以下步驟:

初始化計算所有或部分緩存文件的特征碼;

所述緩存文件的特征碼如有相同,則將相同特征碼對應(yīng)的緩存文件保留一份,并為相同特征碼對應(yīng)的其它緩存文件創(chuàng)建指向所述保留的緩存文件的緩存指向記錄。

進一步的,所述初始化計算所有或部分緩存文件的特征碼的步驟具體包括:

將所述緩存文件按照預(yù)定的分段長度分成多份,分別算出每一份緩存文件的哈希值,將得到的多個所述哈希值順序排列,再對多個所述哈希值進行哈希計算得出所述緩存文件的特征碼。

另一方面,一種數(shù)據(jù)傳輸方法,其中,所述方法包括以下步驟:

向源站請求獲取數(shù)據(jù)文件;

接收并存儲所述源站發(fā)送的所述數(shù)據(jù)文件,且對所述數(shù)據(jù)文件進行計算得到唯一標(biāo)識所述數(shù)據(jù)文件的特征碼;

查詢特征碼記錄庫中是否存在所述特征碼;

若存在所述特征碼,則創(chuàng)建指向所述特征碼對應(yīng)的緩存文件的緩存指向記錄;

若不存在所述特征碼,則將所述特征碼記錄到所述特征碼記錄庫中;

將所述特征碼添加到響應(yīng)數(shù)據(jù)包中,連同所述數(shù)據(jù)文件或者所述緩存指向記錄指向的緩存文件一起發(fā)送給邊緣節(jié)點。

進一步的,在所述向源站請求獲取數(shù)據(jù)文件的步驟之前還包括:

接收邊緣節(jié)點獲取所述數(shù)據(jù)文件的請求;

判斷是否緩存有所述數(shù)據(jù)文件;

若緩存有所述數(shù)據(jù)文件,則將唯一標(biāo)識所述數(shù)據(jù)文件的特征碼添加到響應(yīng)數(shù)據(jù)包中,并連同所述數(shù)據(jù)文件一起發(fā)送給所述邊緣節(jié)點;

若沒有緩存所述數(shù)據(jù)文件,則判斷是否有所述數(shù)據(jù)文件對應(yīng)的緩存指向記錄;

若有所述緩存指向記錄,將所述特征碼添加到響應(yīng)數(shù)據(jù)包中,并連同所述緩存指向記錄所指向的緩存文件一起發(fā)送給所述邊緣節(jié)點;

若沒有所述緩存指向記錄,則向所述源站請求獲取所述數(shù)據(jù)文件。

進一步的,所述方法還包括以下步驟:

初始化計算所有或部分緩存文件的特征碼;

所述緩存文件的特征碼如有相同,則相同特征碼對應(yīng)的緩存文件保留一份,并為所述相同特征碼對應(yīng)的其它緩存文件創(chuàng)建指向所述保留的緩存文件的緩存指向記錄。

進一步的,所述對所述數(shù)據(jù)文件進行計算得到唯一標(biāo)識所述數(shù)據(jù)文件的特征碼的步驟具體包括:

每獲取到預(yù)定的分段長度的數(shù)據(jù)文件時,對預(yù)定長度的所述數(shù)據(jù)文件進行哈希計算得到哈希值,將得到的多個所述哈希值順序排列,再對多個所述哈希值進行哈希計算得出所述數(shù)據(jù)文件的特征碼。

又一方面,一種數(shù)據(jù)傳輸系統(tǒng),其中,所述數(shù)據(jù)傳輸系統(tǒng)包括相互通信連接的邊緣節(jié)點和中轉(zhuǎn)節(jié)點,其中:

所述邊緣節(jié)點,接收用戶端獲取數(shù)據(jù)文件的請求,并向所述中轉(zhuǎn)節(jié)點請求所述數(shù)據(jù)文件;

所述中轉(zhuǎn)節(jié)點,接收所述邊緣節(jié)點的所述請求,并將響應(yīng)數(shù)據(jù)包發(fā)送給所述邊緣節(jié)點,所述響應(yīng)數(shù)據(jù)包中包含唯一標(biāo)識所述數(shù)據(jù)件文的特征碼;

所述邊緣節(jié)點,查詢特征碼記錄庫中是否存在所述特征碼,若存在所述特征碼,則通知所述中轉(zhuǎn)節(jié)點停止傳輸所述數(shù)據(jù)文件,并創(chuàng)建指向所述特征碼對應(yīng)的緩存文件的緩存指向記錄,將所述緩存文件發(fā)送給所述用戶端。

進一步的,所述邊緣節(jié)點查詢所述特征碼記錄庫中是否存在所述特征碼,若不存在所述特征碼,則接收并緩存所述中轉(zhuǎn)節(jié)點發(fā)送的所述數(shù)據(jù)文件,將所述特征碼記錄到所述特征碼記錄庫中,并將所述數(shù)據(jù)文件發(fā)送給所述用戶端。

進一步的,

所述中轉(zhuǎn)節(jié)點接收所述邊緣節(jié)點的所述請求;

所述中轉(zhuǎn)節(jié)點判斷是否緩存有所述數(shù)據(jù)文件,若緩存有所述數(shù)據(jù)文件,則將唯一標(biāo)識所述數(shù)據(jù)文件的特征碼添加到響應(yīng)數(shù)據(jù)包中,并連同所述數(shù)據(jù)文件一起發(fā)送給所述邊緣節(jié)點;

若沒有緩存所述數(shù)據(jù)文件,則判斷是否有所述數(shù)據(jù)文件對應(yīng)的緩存指向記錄,若有所述緩存指向記錄,則將所述特征碼添加到響應(yīng)數(shù)據(jù)包中,并連同所述緩存指向記錄所指向的緩存文件一起發(fā)送給所述邊緣節(jié)點;若沒有所述緩存指向記錄,則向源站請求獲取所述數(shù)據(jù)文件。

進一步的,

所述中轉(zhuǎn)節(jié)點判斷是否有所述數(shù)據(jù)文件對應(yīng)的緩存指向記錄,若沒有所述緩存指向記錄,則所述向源站請求所述數(shù)據(jù)文件;

所述中轉(zhuǎn)節(jié)點接收并存儲所述源站發(fā)送的所述數(shù)據(jù)文件,且對所述數(shù)據(jù)文件進行計算得到唯一標(biāo)識所述數(shù)據(jù)文件的特征碼;

所述中轉(zhuǎn)節(jié)點查詢特征碼記錄庫中是否存在所述特征碼,若存在所述特征碼,則創(chuàng)建指向所述特征碼對應(yīng)的緩存文件的所述緩存指向記錄;若不存在所述特征碼,則將所述特征碼記錄到所述特征碼記錄庫中;

所述中轉(zhuǎn)節(jié)點將所述特征碼添加到響應(yīng)數(shù)據(jù)包中,連同所述數(shù)據(jù)文件或者所述緩存指向記錄指向的緩存文件一起發(fā)送給所述邊緣節(jié)點。

再一方面,一種計算機存儲介質(zhì),其中,所述計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令用于使所述計算機執(zhí)行上述任一項所述的數(shù)據(jù)傳輸方法。

再一方面,一種邊緣節(jié)點設(shè)備,其中,所述邊緣節(jié)點設(shè)備包括:

存儲器,用于存儲程序指令;

處理器,用于調(diào)用所述存儲器中存儲的程序指令,按照獲得的程序指令執(zhí)行上述任一項所述的數(shù)據(jù)傳輸方法。

再一方面,一種計算機存儲介質(zhì),其中,所述計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令用于使所述計算機執(zhí)行上述任一項所述的數(shù)據(jù)傳輸方法。

再一方面,一種中轉(zhuǎn)節(jié)點設(shè)備,其中,所述中轉(zhuǎn)節(jié)點設(shè)備包括:

存儲器,用于存儲程序指令;

處理器,用于調(diào)用所述存儲器中存儲的程序指令,按照獲得的程序指令執(zhí)行上述任一項所述的數(shù)據(jù)傳輸方法。

本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:在邊緣節(jié)點和/或中轉(zhuǎn)節(jié)點中采用特征碼唯一標(biāo)識數(shù)據(jù)文件,并且在數(shù)據(jù)傳輸時,采用特征碼查詢對比的方式判斷請求的數(shù)據(jù)文件是否和已存儲的緩存文件相同,借此避免相同內(nèi)容的數(shù)據(jù)文件的重復(fù)傳輸和重復(fù)存儲,節(jié)省邊緣節(jié)點和/或中轉(zhuǎn)節(jié)點的存儲資源,節(jié)省網(wǎng)絡(luò)傳輸帶寬。且在利用特征碼查詢比對命中的情況下,可以大大的增加數(shù)據(jù)傳輸?shù)乃俣取?/p>

另外,本發(fā)明充分的利用邊緣節(jié)點和/或中轉(zhuǎn)節(jié)點現(xiàn)有的緩存文件,具有相同特征碼的緩存文件僅保留一份,將相同特征碼對應(yīng)的其它緩存文件創(chuàng)建指向所述保留的緩存文件的緩存指向記錄,進一步節(jié)省邊緣節(jié)點和/或中轉(zhuǎn)節(jié)點存儲資源。

附圖說明

為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明一實施方式中邊緣節(jié)點的數(shù)據(jù)傳輸方法流程圖;

圖2為本發(fā)明一實施方式中圖1所示步驟s11的具體流程圖;

圖3為本發(fā)明一實施方式中中轉(zhuǎn)節(jié)點的數(shù)據(jù)傳輸方法流程圖;

圖4為本發(fā)明一實施方式中數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖;

圖5為本發(fā)明一實施方式邊緣節(jié)點設(shè)備的結(jié)構(gòu)示意圖;

圖6為本發(fā)明一實施方式中轉(zhuǎn)節(jié)點設(shè)備的結(jié)構(gòu)示意圖。

具體實施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細(xì)描述。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

以下將對本發(fā)明所提供的一實施例中的一種數(shù)據(jù)傳輸方法進行詳細(xì)說明,該數(shù)據(jù)傳輸方法可應(yīng)用于內(nèi)容分發(fā)網(wǎng)絡(luò)的邊緣節(jié)點中。

請參閱圖1,為本發(fā)明一實施方式中邊緣節(jié)點的數(shù)據(jù)傳輸方法流程圖。

在本實施方式中,該邊緣節(jié)點的數(shù)據(jù)傳輸方法應(yīng)用于內(nèi)容分發(fā)網(wǎng)絡(luò)(contentdeliverynetwork,cdn),其中該內(nèi)容分發(fā)網(wǎng)絡(luò)包括相互通信連接的邊緣節(jié)點和中轉(zhuǎn)節(jié)點,邊緣節(jié)點和中轉(zhuǎn)節(jié)點均設(shè)置在用戶端與客戶源站之間,其中,所述邊緣節(jié)點與用戶端通信連接,所述中轉(zhuǎn)節(jié)點與客戶源站通信連接,當(dāng)然,所述邊緣節(jié)點和所述中轉(zhuǎn)節(jié)點都是各種類型的服務(wù)器,例如邊緣節(jié)點可以是部署在用戶側(cè)的邊緣服務(wù)器,中轉(zhuǎn)節(jié)點可以是部署網(wǎng)絡(luò)側(cè)的中轉(zhuǎn)服務(wù)器,在此不做限定。

在步驟s11中,接收用戶端獲取數(shù)據(jù)文件的請求,并向中轉(zhuǎn)節(jié)點請求所述數(shù)據(jù)文件。

在本實施方式中,所述接收用戶端獲取數(shù)據(jù)文件的請求,并向中轉(zhuǎn)節(jié)點請求所述數(shù)據(jù)文件的步驟s11具體包括s111-s116這六個子步驟,如圖2所示。

請參閱圖2,為本發(fā)明一實施方式中圖1所示步驟s11的具體流程圖。

在步驟s111中,接收用戶端獲取數(shù)據(jù)文件的請求。

在本實施方式中,以用戶請求訪問數(shù)據(jù)文件a.abc.com/a.avi為例進行說明,當(dāng)用戶需要訪問數(shù)據(jù)文件a.abc.com/a.avi時,首先會利用用戶端向邊緣節(jié)點發(fā)送訪問數(shù)據(jù)文件a.abc.com/a.avi的請求。

在步驟s112中,判斷是否緩存有所述數(shù)據(jù)文件。

在本實施方式中,邊緣節(jié)點在接收到用戶端想要獲取數(shù)據(jù)文件a.abc.com/a.avi的請求之后,首先判斷是否緩存有所述數(shù)據(jù)文件a.abc.com/a.avi。

若緩存有所述數(shù)據(jù)文件,則在步驟s113中,將所述數(shù)據(jù)文件發(fā)送給所述用戶端。

在本實施方式中,若緩存有所述數(shù)據(jù)文件a.abc.com/a.avi,則邊緣節(jié)點直接將緩存的所述數(shù)據(jù)文件a.abc.com/a.avi發(fā)送給所述用戶端。

若沒有緩存所述數(shù)據(jù)文件,則在步驟s114中,判斷是否有所述數(shù)據(jù)文件對應(yīng)的緩存指向記錄。

在本實施方式中,若沒有緩存所述數(shù)據(jù)文件a.abc.com/a.avi,則邊緣節(jié)點還要判斷是否有所述數(shù)據(jù)文件a.abc.com/a.avi對應(yīng)的緩存指向記錄。在本實施方式中,由于數(shù)據(jù)文件a.abc.com/a.avi和數(shù)據(jù)文件a.bcd.com/a.avi其實是內(nèi)容完全一樣的文件,只是歸屬于不同的域名,例如數(shù)據(jù)文件a.abc.com/a.avi是用戶端向域名a.abc.com請求的內(nèi)容為a.avi的數(shù)據(jù)文件,數(shù)據(jù)文件a.bcd.com/a.avi是用戶端向域名a.bcd.com請求的內(nèi)容為a.avi的數(shù)據(jù)文件。為避免相同內(nèi)容的數(shù)據(jù)文件重復(fù)存儲及節(jié)省存儲資源,邊緣節(jié)點在本地硬盤中存儲時,只存儲a.bcd.com/a.avi這個完整的數(shù)據(jù)文件以及一個緩存指向記錄,不存儲實際的數(shù)據(jù)文件a.abc.com/a.avi,其中,該緩存指向記錄用于指向a.bcd.com/a.avi這個完整的數(shù)據(jù)文件,當(dāng)查找a.abc.com/a.avi時,根據(jù)緩存指向記錄,可以自動鏈接或引導(dǎo)至文件a.bcd.com/a.avi。

若有所述緩存指向記錄,則在步驟s115中,將所述緩存指向記錄所指向的緩存文件發(fā)送給所述用戶端。

在本實施方式中,當(dāng)判斷不存在所請求的數(shù)據(jù)文件a.abc.com/a.avi,但是存在數(shù)據(jù)文件a.abc.com/a.avi對應(yīng)的緩存文件指向記錄,則表明邊緣節(jié)點內(nèi)已經(jīng)存儲了一份與數(shù)據(jù)文件a.abc.com/a.avi內(nèi)容相同的緩存文件a.bcd.com/a.avi。邊緣節(jié)點根據(jù)緩存指向記錄查找到緩存文件a.bcd.com/a.avi,并將緩存文件a.bcd.com/a.avi發(fā)送給用戶端,作為對用戶端請求獲取數(shù)據(jù)文件a.abc.com/a.avi的響應(yīng)。

若沒有所述緩存指向記錄,則在步驟s116中,向所述中轉(zhuǎn)節(jié)點請求所述數(shù)據(jù)文件。

當(dāng)邊緣節(jié)點既沒有被請求的數(shù)據(jù)文件a.abc.com/a.avi,又沒有數(shù)據(jù)文件a.abc.com/a.avi對應(yīng)的緩存指向記錄時,邊緣節(jié)點則會向中轉(zhuǎn)節(jié)點發(fā)送獲取數(shù)據(jù)文件a.abc.com/a.avi的請求,以期望能從中轉(zhuǎn)節(jié)點獲取用戶端所需要的數(shù)據(jù)文件a.abc.com/a.avi。

請繼續(xù)參閱圖1,在步驟s12中,接收所述中轉(zhuǎn)節(jié)點對所述數(shù)據(jù)文件的響應(yīng)數(shù)據(jù)包,所述響應(yīng)數(shù)據(jù)包中包含唯一標(biāo)識所述數(shù)據(jù)件文的特征碼。

在本實施方式中,邊緣節(jié)點從中轉(zhuǎn)節(jié)點接收其對數(shù)據(jù)文件a.abc.com/a.avi的響應(yīng)數(shù)據(jù)包,其中,所述響應(yīng)數(shù)據(jù)包中包含唯一標(biāo)識所述數(shù)據(jù)文件a.abc.com/a.avi的特征碼。為了不影響數(shù)據(jù)文件的傳輸,特征碼一般包含在響應(yīng)數(shù)據(jù)包的第一個數(shù)據(jù)包的頭部,且相同內(nèi)容的數(shù)據(jù)文件,特征碼相同,如a.abc.com/a.avi與a.bcd.com/a.avi具有相同的特征碼。根據(jù)數(shù)據(jù)傳輸通常以分段傳輸?shù)姆绞?,最先傳輸?shù)牡谝粋€數(shù)據(jù)包中就已經(jīng)包含了特征碼,邊緣節(jié)點可以根據(jù)該響應(yīng)數(shù)據(jù)包的第一個數(shù)據(jù)包就能獲取到特征碼,在后續(xù)包含數(shù)據(jù)文件的其他數(shù)據(jù)包還未傳輸?shù)那闆r就能進行特征碼的比對。

在步驟s13中,查詢特征碼記錄庫中是否存在所述特征碼。

在本實施方式中,邊緣節(jié)點查詢本地的特征碼記錄庫中是否存在所述特征碼。

通常,如果邊緣節(jié)點不是全新節(jié)點,即邊緣節(jié)點已存儲有緩存文件,為了采用特征碼唯一標(biāo)識數(shù)據(jù)文件及后續(xù)特征碼的查詢和比對,需要對已有緩存文件進行特征碼計算及初始化的處理。故在一實施例中,邊緣節(jié)點的數(shù)據(jù)傳輸方法還包括以下步驟:

初始化計算所有或部分緩存文件的特征碼,邊緣節(jié)點內(nèi)緩存文件的特征碼如有相同,則將相同特征碼對應(yīng)的緩存文件保留一份,并為相同特征碼對應(yīng)的其它緩存文件創(chuàng)建指向所述保留的緩存文件的緩存指向記錄。如此,實際內(nèi)容相同的緩存文件只占用了一份緩存文件大小的存儲空間,其它相同內(nèi)容的緩存文件采用緩存指向記錄的形式存儲記錄,大大節(jié)省了存儲空間。

在一實施例中,特征碼的計算采用分段哈希的計算方式。例如初始化計算所有或部分緩存文件的特征碼的步驟具體包括:

將緩存文件按照預(yù)定的分段長度分成多份,分別算出每一份緩存文件的哈希(hash)值,將得到的多個哈希值順序排列,再對多個所述哈希值進行一次哈希計算得出緩存文件的特征碼。所有的緩存文件的特征碼都存儲在邊緣節(jié)點的本地特征碼記錄庫中,內(nèi)容相同的緩存文件由相同的特征碼唯一標(biāo)識。

請繼續(xù)參考圖1,若存在所述特征碼,則在步驟s14中,通知所述中轉(zhuǎn)節(jié)點停止傳輸所述數(shù)據(jù)文件,并創(chuàng)建指向所述特征碼對應(yīng)的緩存文件的緩存指向記錄。

在本實施方式中,因為相同內(nèi)容的數(shù)據(jù)文件,不管其歸屬于哪個域名,都采用相同的特征碼來標(biāo)識,若存在所述特征碼,則表示邊緣節(jié)點中已存在與請求的數(shù)據(jù)文件a.abc.com/a.avi內(nèi)容相同的緩存文件a.abc.com/a.avi。邊緣節(jié)點通知中轉(zhuǎn)節(jié)點停止傳輸數(shù)據(jù)文件a.abc.com/a.avi,也即停止傳輸所述響應(yīng)數(shù)據(jù)包,關(guān)閉邊緣節(jié)點與中轉(zhuǎn)節(jié)點之間的連接,避免數(shù)據(jù)文件的重復(fù)傳輸,節(jié)省了網(wǎng)絡(luò)帶寬。并創(chuàng)建指向所述特征碼對應(yīng)的緩存文件a.bcd.com/a.avi的緩存指向記錄,以備下次收到請求獲取數(shù)據(jù)文件a.abc.com/a.avi時,可以直接根據(jù)緩存指向記錄將緩存文件a.bcd.com/a.avi響應(yīng)給用戶端。

在步驟s15中,將所述緩存文件發(fā)送給所述用戶端。

因為特征碼相同,故請求的數(shù)據(jù)文件a.abc.com/a.avi與邊緣節(jié)點的緩存文件a.bcd.com/a.avi內(nèi)容實質(zhì)相同,邊緣節(jié)點將本地已存儲的緩存文件a.bcd.com/a.avi發(fā)送給用戶端,作為對用戶端請求獲取數(shù)據(jù)文件a.abc.com/a.avi的響應(yīng)。

若不存在所述特征碼,則在步驟s16中,接收并緩存所述中轉(zhuǎn)節(jié)點發(fā)送的所述數(shù)據(jù)文件,將所述特征碼記錄到所述特征碼記錄庫中,并將所述數(shù)據(jù)文件發(fā)送給所述用戶端。

在本實施方式中,若不存在所述特征碼,則表明邊緣節(jié)點需要從中轉(zhuǎn)節(jié)點獲取所述a.abc.com/a.avi數(shù)據(jù)文件,此時邊緣節(jié)點從中轉(zhuǎn)節(jié)點接收并緩存所述a.abc.com/a.avi數(shù)據(jù)文件,然后將步驟s12中響應(yīng)數(shù)據(jù)包中的特征碼記錄到本地特征碼記錄庫中,用以標(biāo)識數(shù)據(jù)文件a.abc.com/a.avi,用于后續(xù)的請求相同數(shù)據(jù)文件的特征碼對比,并將獲取到的所述a.abc.com/a.avi數(shù)據(jù)文件發(fā)送給所述用戶端。

本發(fā)明實施例提供的數(shù)據(jù)傳輸方法,在邊緣節(jié)點中采用特征碼唯一標(biāo)識數(shù)據(jù)文件,并且在邊緣節(jié)點接收中轉(zhuǎn)節(jié)點的數(shù)據(jù)傳輸時,采用特征碼查詢對比的方式判斷請求的數(shù)據(jù)文件是否和已緩存的緩存文件相同,借此避免相同內(nèi)容的數(shù)據(jù)文件的重復(fù)傳輸和重復(fù)存儲,節(jié)省了邊緣節(jié)點的存儲資源,節(jié)省了邊緣節(jié)點和中轉(zhuǎn)節(jié)點之間的網(wǎng)絡(luò)傳輸帶寬。且在利用特征碼查詢比對命中的情況下,邊緣節(jié)點可以直接將緩存文件作為用戶端請求的數(shù)據(jù)文件發(fā)送給用戶端,而無需等中轉(zhuǎn)節(jié)點傳輸數(shù)據(jù)文件,再將數(shù)據(jù)文件響應(yīng)給用戶端,可以大大的增加數(shù)據(jù)傳輸?shù)乃俣取?/p>

以下將對本發(fā)明提供的另一實施例中的一種數(shù)據(jù)傳輸方法進行詳細(xì)說明,該數(shù)據(jù)傳輸方法可應(yīng)用于內(nèi)容分發(fā)網(wǎng)絡(luò)的中轉(zhuǎn)節(jié)點中。

請參閱圖3,所示為本發(fā)明一實施方式中中轉(zhuǎn)節(jié)點的數(shù)據(jù)傳輸方法流程圖。

在步驟s201中,接收邊緣節(jié)點獲取數(shù)據(jù)文件的請求。

在本實施方式中,中轉(zhuǎn)節(jié)點接收邊緣節(jié)點獲取數(shù)據(jù)文件的請求,從前述圖2對應(yīng)實施例的步驟s116可知,當(dāng)邊緣節(jié)點既沒有緩存文件,又沒有緩存指向記錄時,邊緣節(jié)點則會向中轉(zhuǎn)節(jié)點發(fā)送請求,以期望能從中轉(zhuǎn)節(jié)點獲取用戶端所需要的數(shù)據(jù)文件a.abc.com/a.avi。

在步驟s202中,判斷是否緩存有所述數(shù)據(jù)文件。

在本實施方式中,中轉(zhuǎn)節(jié)點判斷是否緩存有數(shù)據(jù)文件a.abc.com/a.avi。

若緩存有所述數(shù)據(jù)文件,則在步驟s203中,將唯一標(biāo)識所述數(shù)據(jù)文件的特征碼添加到響應(yīng)數(shù)據(jù)包中,并連同所述數(shù)據(jù)文件一起發(fā)送給所述邊緣節(jié)點。

例如,若緩存有所述數(shù)據(jù)文件a.abc.com/a.avi,則中轉(zhuǎn)節(jié)點將唯一標(biāo)識所述數(shù)據(jù)文件a.abc.com/a.avi的特征碼添加到響應(yīng)數(shù)據(jù)包中,并連同所述數(shù)據(jù)文件a.abc.com/a.avi一起發(fā)送給所述邊緣節(jié)點。響應(yīng)數(shù)據(jù)包中的特征碼可用于邊緣節(jié)點接收該響應(yīng)數(shù)據(jù)包時判斷邊緣節(jié)點本地特征碼記錄庫中是否有相同的特征碼,也即判斷邊緣節(jié)點中是否已存儲有與該數(shù)據(jù)文件內(nèi)容相同的緩存文件。

若沒有緩存所述數(shù)據(jù)文件,則在步驟s204中,判斷是否有所述數(shù)據(jù)文件對應(yīng)的緩存指向記錄。

在本實施方式中,若沒有緩存所述數(shù)據(jù)文件,則中轉(zhuǎn)節(jié)點判斷是否有所述數(shù)據(jù)文件a.abc.com/a.avi對應(yīng)的緩存指向記錄。在本實施方式中,由于數(shù)據(jù)文件a.abc.com/a.avi和數(shù)據(jù)文件a.bcd.com/a.avi其實是內(nèi)容完全一樣的文件,中轉(zhuǎn)節(jié)點在本地硬盤中存儲時,只存儲a.bcd.com/a.avi這個完整的數(shù)據(jù)文件以及一個緩存指向記錄,不存儲實際的數(shù)據(jù)文件a.abc.com/a.avi,其中,該緩存指向記錄用于指向a.bcd.com/a.avi這個完整的數(shù)據(jù)文件。

若有所述緩存指向記錄,則在步驟s205中,將所述特征碼添加到響應(yīng)數(shù)據(jù)包中,并連同將所述緩存指向記錄所指向的緩存文件一起發(fā)送給所述邊緣節(jié)點。

在本實施方式中,若有所述緩存指向記錄,中轉(zhuǎn)節(jié)點根據(jù)緩存指向記錄查找到緩存文件a.bcd.com/a.avi,并將將所述特征碼添加到響應(yīng)數(shù)據(jù)包中,特征碼包含在響應(yīng)數(shù)據(jù)包的第一個數(shù)據(jù)包的頭部,并連同所述緩存文件a.bcd.com/a.avi一起發(fā)送給所述邊緣節(jié)點,作為對邊緣節(jié)點請求獲取數(shù)據(jù)文件a.abc.com/a.avi的響應(yīng)。

若沒有所述緩存指向記錄,則在步驟s206中,向源站請求所述數(shù)據(jù)文件。

在本實施方式中,沒有緩存對應(yīng)的數(shù)據(jù)文件,又若沒有所述緩存指向記錄,則表明中轉(zhuǎn)節(jié)點只能向客戶源站獲取幫助,以從客戶源站獲取邊緣節(jié)點所需要獲取的數(shù)據(jù)文件a.abc.com/a.avi。

在步驟s207中,接收并存儲所述源站發(fā)送的所述數(shù)據(jù)文件,且對所述數(shù)據(jù)文件進行計算得到唯一標(biāo)識所述數(shù)據(jù)文件的特征碼。

在本實施方式中,中轉(zhuǎn)節(jié)點從客戶源站接收并存儲所述數(shù)據(jù)文件a.abc.com/a.avi,且對所述數(shù)據(jù)文件a.abc.com/a.avi進行計算得到唯一標(biāo)識所述a.abc.com/a.avi數(shù)據(jù)文件的特征碼。在本實施方式中,采用哈希算法計算得到唯一標(biāo)識所述a.abc.com/a.avi數(shù)據(jù)文件的特征碼。例如,當(dāng)中轉(zhuǎn)節(jié)點從源站獲取數(shù)據(jù)文件時,一般都是一個數(shù)據(jù)包一個數(shù)據(jù)包的傳輸,每獲取到預(yù)定的分段長度的數(shù)據(jù)文件時,對預(yù)定長度的所述數(shù)據(jù)文件進行哈希計算得到哈希值,直至所述數(shù)據(jù)文件獲取完畢,得到多個哈希值,將得到的多個哈希值順序排列,再對多個所述哈希值進行哈希計算得出所述數(shù)據(jù)文件的特征碼。

在步驟s208中,查詢特征碼記錄庫中是否存在所述特征碼。

在本實施方式中,中轉(zhuǎn)節(jié)點查詢本地的特征碼記錄庫中是否存在所述特征碼。

通常,如果中轉(zhuǎn)節(jié)點不是全新節(jié)點,即中轉(zhuǎn)節(jié)點已存儲有緩存文件,為了采用特征碼唯一標(biāo)識數(shù)據(jù)文件及后續(xù)特征碼的查詢和比對,需要對已有緩存文件進行特征碼計算及初始化的處理。故在一實施例中,中轉(zhuǎn)節(jié)點的數(shù)據(jù)傳輸方法還包括以下步驟:

初始化計算所有或部分緩存文件的特征碼,中轉(zhuǎn)節(jié)點內(nèi)緩存文件的特征碼如有相同,則將相同特征碼對應(yīng)的緩存文件保留一份,并為相同特征碼對應(yīng)的其它緩存文件創(chuàng)建指向所述保留的緩存文件的緩存指向記錄。如此,實際內(nèi)容相同的緩存文件只占用了一份緩存文件大小的存儲空間,其它相同內(nèi)容的緩存文件采用緩存指向記錄的形式存儲記錄,大大節(jié)省了中轉(zhuǎn)節(jié)點的存儲空間。

若存在所述特征碼,則在步驟s209中,創(chuàng)建指向所述特征碼對應(yīng)的緩存文件的所述緩存指向記錄。

在本實施方式中,若存在所述特征碼,則中轉(zhuǎn)節(jié)點創(chuàng)建指向所述特征碼對應(yīng)的緩存文件的所述緩存指向記錄,以備下次收到請求獲取數(shù)據(jù)文件a.abc.com/a.avi時,可以直接根據(jù)緩存指向記錄將緩存文件a.bcd.com/a.avi響應(yīng)給邊緣節(jié)點。

若不存在所述特征碼,則在步驟s210中,將所述特征碼記錄到所述特征碼記錄庫中。

在本實施例中,若不存在所述特征碼,則表明中轉(zhuǎn)節(jié)點中不存在與所述被請求的數(shù)據(jù)文件a.abc.com/a.avi內(nèi)容相同的緩存文件,故將所述特征碼記錄到本地特征碼記錄庫中,以備下次收到請求獲取數(shù)據(jù)文件a.abc.com/a.avi時進行特征碼的查詢和比對。

在步驟s211中,將所述特征碼添加到響應(yīng)數(shù)據(jù)包中,連同所述數(shù)據(jù)文件或者所述緩存指向記錄指向的緩存文件一起發(fā)送給所述邊緣節(jié)點。

在本實施方式中,中轉(zhuǎn)節(jié)點將所述特征碼添加到響應(yīng)數(shù)據(jù)包中,連同所述數(shù)據(jù)文件a.abc.com/a.avi或者所述緩存指向記錄指向的緩存文件a.bcd.com/a.avi一起發(fā)送給所述邊緣節(jié)點。

本發(fā)明實施例提供的數(shù)據(jù)傳輸方法,在中轉(zhuǎn)節(jié)點中采用特征碼唯一標(biāo)識數(shù)據(jù)文件,并且在中轉(zhuǎn)節(jié)點接收源站的數(shù)據(jù)文件時,采用特征碼查詢對比的方式判斷數(shù)據(jù)文件是否和已存儲的緩存文件相同,借此避免相同內(nèi)容的數(shù)據(jù)文件的重復(fù)存儲,節(jié)省了中轉(zhuǎn)節(jié)點的存儲資源。另外,中轉(zhuǎn)節(jié)點將數(shù)據(jù)文件發(fā)送給邊緣節(jié)點時,采用將特征碼加入響應(yīng)數(shù)據(jù)包的方式,以利于后續(xù)邊緣節(jié)點根據(jù)該特征碼進行查詢比對邊緣節(jié)點中是否有內(nèi)容相同的緩存文件,該方式可避免數(shù)據(jù)文件的重復(fù)傳輸,節(jié)省網(wǎng)絡(luò)傳輸帶寬。

請參閱圖4,所示為本發(fā)明一實施方式中數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖。

在本實施方式中,數(shù)據(jù)傳輸系統(tǒng)10基于內(nèi)容分發(fā)網(wǎng)絡(luò),包括相互通信連接的邊緣節(jié)點101和中轉(zhuǎn)節(jié)點102,邊緣節(jié)點101和中轉(zhuǎn)節(jié)點102均設(shè)置在用戶端11與客戶源站12之間,其中,邊緣節(jié)點101與用戶端11通信連接,中轉(zhuǎn)節(jié)點102與客戶源站12通信連接,當(dāng)然,邊緣節(jié)點101和中轉(zhuǎn)節(jié)點102都是各種類型的服務(wù)器,例如邊緣節(jié)點101可以是部署在用戶側(cè)的邊緣服務(wù)器,中轉(zhuǎn)節(jié)點102可以是部署網(wǎng)絡(luò)側(cè)的中轉(zhuǎn)服務(wù)器,在此不做限定。

邊緣節(jié)點101,接收用戶端11獲取數(shù)據(jù)文件的請求,并向中轉(zhuǎn)節(jié)點102請求數(shù)據(jù)文件。

中轉(zhuǎn)節(jié)點102,接收邊緣節(jié)點101的請求,并將響應(yīng)數(shù)據(jù)包發(fā)送給邊緣節(jié)點101,響應(yīng)數(shù)據(jù)包中包含唯一標(biāo)識數(shù)據(jù)件文的特征碼;

邊緣節(jié)點101,查詢特征碼記錄庫中是否存在特征碼,若存在特征碼,則通知中轉(zhuǎn)節(jié)點102停止傳輸數(shù)據(jù)文件,并創(chuàng)建指向特征碼對應(yīng)的緩存文件的緩存指向記錄,將緩存文件發(fā)送給用戶端11。

在本實施方式中,邊緣節(jié)點101查詢特征碼記錄庫中是否存在特征碼,若不存在特征碼,則接收并緩存中轉(zhuǎn)節(jié)點102發(fā)送的數(shù)據(jù)文件,將特征碼記錄到特征碼記錄庫中,并將數(shù)據(jù)文件發(fā)送給用戶端11。

在本實施方式中,中轉(zhuǎn)節(jié)點102接收邊緣節(jié)點101的請求。

在本實施方式中,中轉(zhuǎn)節(jié)點102判斷是否緩存有數(shù)據(jù)文件,若緩存有數(shù)據(jù)文件,則將唯一標(biāo)識數(shù)據(jù)文件的特征碼添加到響應(yīng)數(shù)據(jù)包中,并連同數(shù)據(jù)文件一起發(fā)送給邊緣節(jié)點101。

若沒有緩存數(shù)據(jù)文件,則中轉(zhuǎn)節(jié)點102判斷是否有數(shù)據(jù)文件對應(yīng)的緩存指向記錄,若有緩存指向記錄,則將緩存指向記錄所指向的緩存文件發(fā)送給邊緣節(jié)點101,將特征碼添加到響應(yīng)數(shù)據(jù)包中,并連同緩存文件一起發(fā)送給邊緣節(jié)點101。

在本實施方式中,中轉(zhuǎn)節(jié)點102判斷是否有數(shù)據(jù)文件對應(yīng)的緩存指向記錄,若沒有緩存指向記錄,則向客戶源站12請求數(shù)據(jù)文件。

在本實施方式中,中轉(zhuǎn)節(jié)點102接收并存儲客戶源站12發(fā)送的數(shù)據(jù)文件,且對數(shù)據(jù)文件進行計算得到唯一標(biāo)識數(shù)據(jù)文件的特征碼。

在本實施方式中,中轉(zhuǎn)節(jié)點102查詢特征碼記錄庫中是否存在特征碼,若存在特征碼,則創(chuàng)建指向特征碼對應(yīng)的緩存文件的緩存指向記錄;若不存在特征碼,則將特征碼記錄到特征碼記錄庫中。

在本實施方式中,中轉(zhuǎn)節(jié)點102將特征碼添加到響應(yīng)數(shù)據(jù)包中,連同數(shù)據(jù)文件或者緩存指向記錄指向的緩存文件一起發(fā)送給邊緣節(jié)點101。

其中,邊緣節(jié)點101對請求數(shù)據(jù)具體的處理過程如前所述的邊緣節(jié)點的數(shù)據(jù)傳輸方法的處理過程相同,在此不做重復(fù)描述。

其中,中轉(zhuǎn)節(jié)點102,對請求數(shù)據(jù)具體的處理過程如前所述的中轉(zhuǎn)節(jié)點的數(shù)據(jù)傳輸方法的處理過程相同,在此不做重復(fù)描述。

此外,本發(fā)明還提供一種計算機存儲介質(zhì),其中,所述計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令用于使所述計算機執(zhí)行上述邊緣節(jié)點的數(shù)據(jù)傳輸方法。

請參閱圖5,圖5為本發(fā)明一實施方式中邊緣節(jié)點設(shè)備的結(jié)構(gòu)示意圖。所述邊緣節(jié)點設(shè)備包括:

存儲器501,用于存儲程序指令;

處理器502,用于調(diào)用所述存儲器中存儲的程序指令,按照獲得的程序指令執(zhí)行上述邊緣節(jié)點的數(shù)據(jù)傳輸方法。

此外,本發(fā)明還提供一種計算機存儲介質(zhì),其中,所述計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令用于使所述計算機執(zhí)行上述中轉(zhuǎn)節(jié)點的數(shù)據(jù)傳輸方法。

請參閱圖6,圖6為本發(fā)明一實施方式中中轉(zhuǎn)節(jié)點設(shè)備的結(jié)構(gòu)示意圖。所述中轉(zhuǎn)節(jié)點設(shè)備包括:

存儲器601,用于存儲程序指令;

處理器602,用于調(diào)用所述存儲器中存儲的程序指令,按照獲得的程序指令執(zhí)行上述中轉(zhuǎn)節(jié)點的數(shù)據(jù)傳輸方法。

本發(fā)明提供的一種數(shù)據(jù)傳輸方法及其系統(tǒng)、計算機存儲介質(zhì)、邊緣節(jié)點設(shè)備和中轉(zhuǎn)節(jié)點設(shè)備,在邊緣節(jié)點和中轉(zhuǎn)節(jié)點中都采用特征碼的形式唯一標(biāo)識數(shù)據(jù)文件,并且采用特征碼對比的方式避免重復(fù)傳輸和重復(fù)存儲,而且利用高效的特征碼傳輸方式可以大大的增加數(shù)據(jù)傳輸?shù)乃俣?,實現(xiàn)秒傳,對現(xiàn)有數(shù)據(jù)傳輸基本無干擾,同時本發(fā)明充分的利用邊緣節(jié)點現(xiàn)有的緩存數(shù)據(jù),節(jié)省邊緣節(jié)點存儲資源,節(jié)省邊緣節(jié)點到中轉(zhuǎn)節(jié)點的網(wǎng)絡(luò)傳輸帶寬。

以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。

通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。

以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1