專利名稱:云存儲文件傳輸協(xié)議(cftp)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機網(wǎng)絡(luò)領(lǐng)域,尤其涉及云計算、云存儲系統(tǒng)中的文件傳輸。
背景技術(shù):
云計算(CloudComputing)是分布式計算(Distributed Computing)、并行計 算(ParallelComputing)、網(wǎng)格計算(Grid Computing)、網(wǎng)絡(luò)存儲(Network Storage Technologies)、虛擬化(Visualization)、負(fù)載均衡(Load Balance)等傳統(tǒng)計算機技術(shù) 和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。它通過網(wǎng)絡(luò)把多個成本相對較低的計算實體整合成一個具有 強大計算能力的完美系統(tǒng),并借助各種應(yīng)用服務(wù)把強大的計算能力分布到終端用戶手中。 其基本原理是將計算任務(wù)通過網(wǎng)絡(luò)分配給多臺計算機執(zhí)行。每臺計算機稱為云計算網(wǎng)絡(luò)計 算節(jié)點,執(zhí)行計算任務(wù)的全部計算機整體稱為云端,發(fā)出任務(wù)請求的計算機或者手機等其 他設(shè)備稱為終端。云存儲是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各 種不同類型的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪 問功能的一個系統(tǒng)。當(dāng)云計算系統(tǒng)運算和處理的核心是大量數(shù)據(jù)的存儲和管理時,云計算 系統(tǒng)中就需要配置大量的存儲設(shè)備,那么云計算系統(tǒng)就轉(zhuǎn)變成為一個云存儲系統(tǒng),所以云 存儲是一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)。目前云計算的終端與云端的文件傳輸一般采用流行的FTP協(xié)議和基于TCP/IP的 WEBDAV協(xié)議。FTP協(xié)議有速度快、穩(wěn)定、支持?jǐn)帱c續(xù)傳等優(yōu)點,缺點是缺乏對分布式存儲的 支持,不支持協(xié)同工作。WEBDAV協(xié)議可支持協(xié)同工作,缺點是傳輸不穩(wěn)定、不支持?jǐn)帱c續(xù)傳, 對超過100M的文件支持非常差。國內(nèi)目前網(wǎng)絡(luò)存在不同運營商之間訪問速度慢的問題,因此在傳統(tǒng)互聯(lián)網(wǎng)的文件 傳輸中,還有一種經(jīng)常使用的協(xié)議,點對點傳輸協(xié)議(P2P),該協(xié)議優(yōu)點是速度非??欤С?多服務(wù)器同時下載,缺點是獨占終端大量網(wǎng)絡(luò)帶寬,導(dǎo)致其他網(wǎng)絡(luò)服務(wù)質(zhì)量變差,所以云計 算和云存儲一般不采用此協(xié)議。本云儲存?zhèn)鬏攨f(xié)議(CFTP)不僅結(jié)合了 FTP、TCP/IP、P2P協(xié)議的優(yōu)點,同時加入了 云端服務(wù)器計算功能,能在快速、穩(wěn)定的傳輸,并且支持?jǐn)帱c續(xù)傳,支持云存儲設(shè)備,支持協(xié) 同工作,不占用終端其他網(wǎng)絡(luò)服務(wù)帶寬。和P2P協(xié)議相比,本協(xié)議是利用云端的計算能力和 云存儲節(jié)點及其緩存機制來達(dá)到速度最優(yōu),傳輸能得到有效的保障,而P2P協(xié)議則利用正 在下載的終端來優(yōu)化速度,速度和穩(wěn)定性都得不到保障。本協(xié)議核心工作原理是終端發(fā)送 文件傳輸請求后,目標(biāo)文件被拆分成很多數(shù)據(jù)塊發(fā)送給云端存儲節(jié)點緩存,云端服務(wù)器計 算出最優(yōu)路徑,然后發(fā)送給終端。
發(fā)明內(nèi)容
使用具有云計算或者云存儲環(huán)境的云端與用戶終端進(jìn)行文件傳輸?shù)囊环N方法,包 括計算最優(yōu)路徑,并在路徑所包含的計算節(jié)點或者云存儲節(jié)點緩存數(shù)據(jù),使用終端獲得最佳下載和上傳速度。本協(xié)議分服務(wù)器端和終端。協(xié)議服務(wù)器端布署在云計算環(huán)境的云端,協(xié)議啟動后,會主動檢測和紀(jì)錄所在云 端的節(jié)點,并定時計算這些節(jié)點之間的網(wǎng)絡(luò)速度和網(wǎng)絡(luò)繁忙程度。協(xié)議終端同時布署在終端設(shè)備和云端各節(jié)點上,在終端發(fā)出文件傳輸請求后,本 協(xié)議會被啟動,首先會測試終端之間、終端通過最優(yōu)路徑節(jié)點速度,計算文件大小獲得兩者 的傳送時間,如果終端之間的傳輸時間小于目標(biāo)終端與終端通過最優(yōu)路徑節(jié)點的時間(比 如局域網(wǎng)內(nèi)文件傳輸),則直接在終端之間傳輸文件,無需經(jīng)過云端。如果終端之間的傳輸 時間大于終端通過最優(yōu)路徑節(jié)點的傳輸時間,則啟動云端緩存,并給文件傳輸加速。當(dāng)云端節(jié)點之間互相傳輸文件,則把文件源節(jié)點和目標(biāo)節(jié)點試為兩個終端。文件傳輸前,首先文件源終端會通過CRC算法計算文件唯一識別碼,并將識別碼 發(fā)送給目標(biāo)終端,目標(biāo)終端會在文件傳輸完成后再次計算唯一識別碼,并核對文件是否正 確。文件在傳輸過程中是分塊傳輸,每個文件數(shù)據(jù)塊還會拆分成更多的數(shù)據(jù)包進(jìn)行傳 輸,不同的節(jié)點和終端均可以同時下載不同的或者相同的文件數(shù)據(jù)塊,而每個節(jié)點服務(wù)器 的文件數(shù)據(jù)塊是根據(jù)網(wǎng)絡(luò)傳輸速度和網(wǎng)絡(luò)帶寬空閑狀況來分配的,目標(biāo)終端最終獲得所有 的數(shù)據(jù)塊,并將所有的數(shù)據(jù)塊合并成目標(biāo)文件。文件數(shù)據(jù)塊中的第一個數(shù)據(jù)包,包含整個文件唯一識別碼,分塊文件數(shù)據(jù)大小,文 件數(shù)據(jù)塊的位置編號,上一個文件塊的唯一識別碼和本文件塊唯一識別碼,這些信息用于 某個節(jié)點接收完文件數(shù)據(jù)塊后合成文件緩存文件,并識別這些文件數(shù)據(jù)塊是否被改動,確 保文件安全。數(shù)據(jù)包包含協(xié)議對數(shù)據(jù)包的識別信息,數(shù)據(jù)包的位置信息和加密的數(shù)據(jù)內(nèi)容,接 收到數(shù)據(jù)包后會將數(shù)據(jù)解密并存儲到臨時文件中,最終合成文件數(shù)據(jù)塊。本協(xié)議對跨運營商的終端之間文件交換有很大的加速作用。云端數(shù)據(jù)緩存對大量 不同的終端下載同樣的文件有極大的速度提升,并節(jié)省垮網(wǎng)流量。附圖簡要說明可參考附圖更好的理解本發(fā)明結(jié)構(gòu)和運行這兩方面的細(xì)節(jié),其中
圖1是本發(fā)明云存儲文件傳輸協(xié)議(CFTP)的用戶使用示意2是本發(fā)明CFTP的實現(xiàn)流程3是本發(fā)明CFTP的云端傳輸流程圖
圖4是本發(fā)明CFTP的功能框圖
具體實施例方式首先本協(xié)議的使用對象是能夠使用云存儲的系統(tǒng),因為沒有云端的存儲節(jié)點無法 建立文件緩存。參看圖1和圖2,終端A和終端B可以是用戶的PC電腦、智能手機或者平板電腦 等其他支持存儲的設(shè)備,也可是云端的某個節(jié)點,當(dāng)是云端的節(jié)點時,我們把該節(jié)點試為終端。假設(shè)終端A向目標(biāo)文件所在的終端B發(fā)出文件傳輸請求,終端B首先會向云端最 近同時也是相對空閑的節(jié)點發(fā)出請求(由于云存儲系統(tǒng)的存在,所以該節(jié)點一定存在),通知云端有文件需要傳送給終端A,該節(jié)點接收到請求后開始計算最優(yōu)路徑,并計算終端A通 過最優(yōu)路徑接收終端B發(fā)出的文件的時間,并反饋給終端B。在計算最優(yōu)路徑傳輸時間的時 候,云端節(jié)點會同時查找最優(yōu)路徑上的文件緩存,如果發(fā)現(xiàn)文件緩存會減去相應(yīng)緩存帶來 的加速時間。終端B在等待云端節(jié)點反饋的同時計算終端A直接接收終端B的文件的時間,如 果在終端A、B之間的傳輸時間小于通過最優(yōu)路徑的傳輸時間,則直接將文件傳輸給終端A, 否則,終端B通知云端節(jié)點采用最優(yōu)路徑傳輸。一旦啟動了最優(yōu)路徑傳輸,就會利用到云端的強大計算能力和存儲能力,如圖3 所示,離終端B最近的計算節(jié)點會根據(jù)最優(yōu)路徑上所有節(jié)點的網(wǎng)絡(luò)速度和空閑情況分配任 務(wù),該任務(wù)會發(fā)送給所有節(jié)和終端A,終端A和相關(guān)節(jié)點會同時開始下載文件。文件傳送任務(wù)在開始的時候并不一定包括所有文件塊。當(dāng)部分節(jié)點已經(jīng)完成接收 任務(wù)時,會自動建立文件緩存,并將結(jié)果反饋給離終端B最近的節(jié)點,該節(jié)點受到反饋后重 新計算和分配任務(wù),直至所有文件數(shù)據(jù)被傳送完畢。根據(jù)終端B的實際網(wǎng)絡(luò)使用情況,也有可能剛開始下載任務(wù)只分配給部分?jǐn)?shù)據(jù)給 離終端B最近的節(jié)點,當(dāng)該節(jié)點完成數(shù)據(jù)塊后在通過重新計算由其他節(jié)點和終端A同時從 該節(jié)點接收數(shù)據(jù)。如果在整個文件傳送過程中負(fù)責(zé)分配任務(wù)的節(jié)點出現(xiàn)故障,其他節(jié)點會自動接替 該節(jié)點分配任務(wù)。圖4是本協(xié)議的功能框圖,本協(xié)議首先會監(jiān)聽某個計算機設(shè)備端口,當(dāng)有符合本 協(xié)議的數(shù)據(jù)包到達(dá)后開始處理,數(shù)據(jù)包包含了協(xié)議命令,主要分為圖4所示的六種功能。計算命令上文中所說的終端B發(fā)送文件傳送請求就屬于計算命令,終端B會要求 節(jié)點計算出最優(yōu)路徑,分配傳輸任務(wù)。而在其他節(jié)點則會接收到任務(wù)分配節(jié)點發(fā)出的命令 而開始執(zhí)行任務(wù)。尋找緩存尋找緩存的命令中會包含目標(biāo)文件的唯一識別碼,通過該識別碼本節(jié) 點來判斷是否有緩存,如果有會反饋,反饋信息包括是否存在,緩存文件在目標(biāo)文件中的位 置以及緩存文件的識別碼。接收緩存這個命令要求本節(jié)點從某個節(jié)點或者終端上接收文件數(shù)據(jù),本節(jié)點會 首先接收識別信息,并判別數(shù)據(jù)是否有效,然后開始接收數(shù)據(jù),當(dāng)指定數(shù)據(jù)接收完成后,會 合并成文件緩存,并將相關(guān)信息反饋給最優(yōu)路徑上的其他節(jié)點。發(fā)送緩存這個命令要求本節(jié)點向其他節(jié)點發(fā)送緩存數(shù)據(jù),同樣為了文件的安全 性,首先會發(fā)送目標(biāo)文件和緩存文件的相關(guān)信息給其他節(jié)點,在確認(rèn)數(shù)據(jù)正確后開始發(fā)送 數(shù)據(jù),發(fā)送完成后反饋給分配任務(wù)的節(jié)點。節(jié)點變化本命令是無論在是否有數(shù)據(jù)任務(wù)的時候都會定時執(zhí)行的,主要是為了 記錄所有離本節(jié)點較近的節(jié)點及本節(jié)點到這些節(jié)點的速度,包括新增加的和被移除的,這 樣可以最快的計算出最優(yōu)路徑,在每一次監(jiān)測后更新數(shù)據(jù)。終端測速這個命令是由有文件傳輸任務(wù)的終端發(fā)出的,以此獲得離終端最近的 節(jié)點。
權(quán)利要求
一種云存儲環(huán)境下的文件傳輸方法,包括利用云存儲設(shè)備進(jìn)行文件拆分緩存,計算節(jié)點計算最優(yōu)路徑,并使之達(dá)到最快傳輸速度。
2.如權(quán)利要求1所述的方法,其中每個云存儲節(jié)點和目標(biāo)文件所在終端都可以同時向 其他云存儲節(jié)點和請求文件所在的終端發(fā)送文件數(shù)據(jù),并可以合成為緩存文件。
3.如權(quán)利要求1所述的方法,由離目標(biāo)文件所在終端最近的云端節(jié)點計算和分配任 務(wù),如果在任務(wù)實施過程中該節(jié)點出現(xiàn)故障,會被其他節(jié)點代替。
全文摘要
一種新的云存儲文件傳輸協(xié)議,使用具有云計算或者云存儲環(huán)境的云端與用戶終端進(jìn)行文件傳輸?shù)囊环N方法,終端發(fā)送文件傳輸請求后,目標(biāo)文件被拆分成很多數(shù)據(jù)塊發(fā)送給云端存儲節(jié)點緩存,云端服務(wù)器計算出最優(yōu)路徑,然后發(fā)送給終端,使用終端獲得最佳下載和上傳速度。
文檔編號H04L29/08GK101997924SQ20101055317
公開日2011年3月30日 申請日期2010年11月22日 優(yōu)先權(quán)日2010年11月22日
發(fā)明者楊文軍 申請人:楊文軍