一種基于ndn緩存優(yōu)化的文件傳輸方法以及裝置的制造方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及網(wǎng)絡(luò)通信
技術(shù)領(lǐng)域:
,尤其涉及一種網(wǎng)絡(luò)通信中的數(shù)據(jù)傳輸?!?br>背景技術(shù):
】[0002]互聯(lián)網(wǎng)的發(fā)明徹底改變了人類對(duì)信息存儲(chǔ)、表示、處理的方式,是二十世紀(jì)人類最偉大的發(fā)明之一?;ヂ?lián)網(wǎng)是最大的計(jì)算機(jī)網(wǎng)絡(luò),自誕生以來就存在著集中式與分布式兩種不同的工作方式。其中C/S架構(gòu)(client/serverarchitecture)是互聯(lián)網(wǎng)最成熟,應(yīng)用最廣泛的架構(gòu)。當(dāng)前許多重要的互聯(lián)網(wǎng)應(yīng)用協(xié)議均采用該架構(gòu),如HTTP、FTP、SMTP等。這種模式的特點(diǎn)是,服務(wù)器始終處于運(yùn)行狀態(tài),被動(dòng)等待客戶端的接入。由客戶端向服務(wù)器發(fā)送請(qǐng)求,經(jīng)過服務(wù)器處理后返回給客戶端想要的信息。這種模式在互聯(lián)網(wǎng)初期得到了很好的應(yīng)用,但是隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)規(guī)模急劇增長,服務(wù)器的負(fù)擔(dān)越來越重,C/S架構(gòu)的效率低以及擴(kuò)展性差等特點(diǎn)逐漸暴露。因此急需一種新的網(wǎng)絡(luò)架構(gòu)以滿足網(wǎng)絡(luò)的發(fā)展需求。因此,P2P(PeertoPeer)網(wǎng)絡(luò)孕育而生。[0003]P2P網(wǎng)絡(luò)是指網(wǎng)絡(luò)中的用戶或者主機(jī)通過某個(gè)網(wǎng)絡(luò)應(yīng)用程序,來達(dá)到信息的傳播或資源的共享,每個(gè)結(jié)點(diǎn)在網(wǎng)絡(luò)中的地位是對(duì)等的,都可以提供并且接收內(nèi)容和服務(wù)。P2P可以理解為一種網(wǎng)絡(luò)概念,也可以理解為一種應(yīng)用。其核心思想是去中心化,最大程度上消除對(duì)中央服務(wù)器的依賴,實(shí)現(xiàn)網(wǎng)絡(luò)結(jié)點(diǎn)之間的完全對(duì)等關(guān)系。P2P具有以下幾個(gè)優(yōu)勢(shì):P2P的拓?fù)鋭?dòng)態(tài)性,P2P網(wǎng)絡(luò)是分布式的動(dòng)態(tài)網(wǎng)絡(luò),隨著結(jié)點(diǎn)的增加,網(wǎng)絡(luò)的總資源和服務(wù)能力也會(huì)同步得到補(bǔ)充,能夠很好的滿足用戶的需求。同時(shí)由于資源分布在多個(gè)結(jié)點(diǎn)上,緩解了傳統(tǒng)網(wǎng)絡(luò)中對(duì)中央服務(wù)器計(jì)算和存儲(chǔ)等方面的壓力,很好地實(shí)現(xiàn)了網(wǎng)絡(luò)負(fù)載均衡。[0004]P2P網(wǎng)絡(luò)已經(jīng)得到了學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注,誕生了許多相關(guān)協(xié)議和應(yīng)用。如用于即時(shí)通信的Skype、QQ、MSN等,用于文件資源共享的Napster、Gnutella等,用于公司協(xié)同辦公的軟件Groove等。在P2P網(wǎng)絡(luò)架構(gòu)方面,大致可以分為三個(gè)階段。第一代P2P網(wǎng)絡(luò)是混合式架構(gòu),以Napster和BitTorrent等為代表,它們往往將C/S架構(gòu)與P2P架構(gòu)混合使用,通過中央服務(wù)器或者超級(jí)結(jié)點(diǎn)來控制與協(xié)調(diào)整個(gè)加入網(wǎng)絡(luò)的結(jié)點(diǎn)。第二代P2P網(wǎng)絡(luò)是無結(jié)構(gòu)網(wǎng)絡(luò),以分布、松散的結(jié)構(gòu)來組織網(wǎng)絡(luò),以Gnutella、KaZaA、Freenet等為代表。第三代P2P網(wǎng)絡(luò)是結(jié)構(gòu)化網(wǎng)絡(luò),以準(zhǔn)確、嚴(yán)格的結(jié)構(gòu)組織網(wǎng)絡(luò),可以準(zhǔn)確地定位資源和結(jié)點(diǎn)。以Pastry、Chord、CAN等為代表。[0005]P2P網(wǎng)絡(luò)的核心機(jī)制是在TCP/IP架構(gòu)的應(yīng)用層建立邏輯上的覆蓋網(wǎng)絡(luò)(overlaynetwork)。封裝其下面的傳輸層、網(wǎng)絡(luò)層、鏈路層,使得P2P網(wǎng)絡(luò)的研宄者和開發(fā)者不必關(guān)心其他層的工作機(jī)制。如圖1所示,基于IP的P2P覆蓋網(wǎng),需要依靠DHT(distributedhashtable,分布式散列表)來定位P2P網(wǎng)絡(luò)中的資源與主機(jī),路由P2P信息。P2P覆蓋網(wǎng)和底層物理網(wǎng)的拓?fù)浣Y(jié)構(gòu)一般不同,P2P覆蓋網(wǎng)中的一跳往往對(duì)應(yīng)底層物理網(wǎng)的多跳。P2P網(wǎng)絡(luò)中的信息傳遞也常因?yàn)椴灰恢滦詫?dǎo)致請(qǐng)求超時(shí)或者丟包。此外,覆蓋網(wǎng)絡(luò)的DHT,維護(hù)機(jī)制復(fù)雜,結(jié)點(diǎn)頻繁加入和退出所造成的網(wǎng)絡(luò)波動(dòng)會(huì)極大的增加DHT的維護(hù)代價(jià)。這也是基于IP的全分布式P2P拓?fù)浯嬖诘闹饕獑栴}。此外,DHT算法采用分布式哈希函數(shù),文件是通過對(duì)文件名進(jìn)行哈希得到的二進(jìn)制關(guān)鍵值,文件的查詢是按照關(guān)鍵值進(jìn)行的。因此只支持精確查詢,無法進(jìn)行模糊匹配。給查詢帶來了極大的限制。[0006]在基于IP的P2P網(wǎng)絡(luò)中還有一個(gè)重要的問題是NAT穿越。P2P通信需要解決的最基本的問題是如何連接其他終端獲得信息、資源和服務(wù)。在解決P2P覆蓋網(wǎng)的應(yīng)用層定位后,還需要解決在IP網(wǎng)絡(luò)層如何穿越NAT和防火墻的問題,以進(jìn)行Peer節(jié)點(diǎn)之間的直接通信。首先,防火墻會(huì)對(duì)IP進(jìn)行過濾,限制防火墻之外的連接。NAT技術(shù)雖然能夠使得內(nèi)部網(wǎng)絡(luò)地址映射到外部網(wǎng)絡(luò)地址,但是要求內(nèi)部網(wǎng)絡(luò)首先發(fā)起對(duì)外連接,否則外部無法與內(nèi)部網(wǎng)絡(luò)直接通信。[0007]IP協(xié)議最初的設(shè)計(jì)目標(biāo)是為了通過網(wǎng)絡(luò),使得計(jì)算機(jī)之間能夠進(jìn)行計(jì)算資源的共享。隨著互聯(lián)網(wǎng)的高速發(fā)展,云計(jì)算、物聯(lián)網(wǎng)、社交網(wǎng)絡(luò)、視頻分享網(wǎng)站等網(wǎng)絡(luò)應(yīng)用的普及,網(wǎng)絡(luò)規(guī)模的急劇增大,其中視頻流量在網(wǎng)絡(luò)流量中的比例顯著增加。據(jù)統(tǒng)計(jì),到2017年69%的網(wǎng)絡(luò)流量將來自視頻流量,而其中內(nèi)容分發(fā)網(wǎng)絡(luò)傳輸?shù)囊曨l流量將占2/3,人們對(duì)內(nèi)容本身的需求將遠(yuǎn)遠(yuǎn)大于透明的主機(jī)與主機(jī)之間的數(shù)據(jù)傳輸。網(wǎng)絡(luò)通信模式已經(jīng)從面向主機(jī)的端到端的模式轉(zhuǎn)化為以用戶驅(qū)動(dòng)的信息內(nèi)容獲取為主。IP網(wǎng)絡(luò)架構(gòu)由于其先天的設(shè)計(jì)缺陷,面臨著多方面的考驗(yàn):網(wǎng)絡(luò)利用率、信息分發(fā)效率、移動(dòng)性、安全性、服務(wù)質(zhì)量等。NDN網(wǎng)絡(luò)(NamedDataNetwork)在該背景下運(yùn)用而生。[0008]NDN網(wǎng)絡(luò)也成為內(nèi)容中心網(wǎng)絡(luò)(ContentCentricNetwork,CCN)。其基本通信模式是以命名內(nèi)容(NamedData)為中心,用戶請(qǐng)求命名內(nèi)容、內(nèi)容發(fā)布者(服務(wù)器)發(fā)布和傳輸命名內(nèi)容、NDN路由器緩存和轉(zhuǎn)發(fā)命名內(nèi)容。NDN網(wǎng)絡(luò)的根本思想在于信息的傳播,而不再關(guān)心網(wǎng)絡(luò)結(jié)點(diǎn)的物理位置,而且每個(gè)結(jié)點(diǎn)在網(wǎng)絡(luò)中只是與其上級(jí)路由器與下級(jí)路由器進(jìn)行交互,每個(gè)結(jié)點(diǎn)在網(wǎng)絡(luò)的地位和功能是完全對(duì)等的,同時(shí)消除了內(nèi)網(wǎng)與外網(wǎng)的區(qū)別,這對(duì)其于P2P網(wǎng)絡(luò)在協(xié)議層的融合提供了可能,并且徹底解決基于IP協(xié)議的P2P網(wǎng)絡(luò)所存在的拓?fù)洳灰恢乱约癗AT穿越等問題。此外,NDN網(wǎng)絡(luò)中,數(shù)據(jù)的命名規(guī)則類似于當(dāng)前Web的URL,可以進(jìn)行聚類,方便資源的模糊匹配和定位。[0009]基于NDN網(wǎng)絡(luò)的P2P文件傳輸,現(xiàn)有技術(shù),例如CN103457999A,采用的是分布式的網(wǎng)絡(luò)構(gòu)架,省去了傳統(tǒng)P2P文件共享系統(tǒng)中心服務(wù)器。該發(fā)明利用了NDN網(wǎng)絡(luò)架構(gòu)所具有的自然的網(wǎng)絡(luò)聯(lián)通性,很好的解決了NAT穿越問題。通過NDN路由器類似于中繼轉(zhuǎn)發(fā)的方法,簡(jiǎn)單轉(zhuǎn)發(fā)請(qǐng)求包,數(shù)據(jù)包按照請(qǐng)求包的反向路徑返回即可。內(nèi)網(wǎng)用戶不再具有IP網(wǎng)絡(luò)架構(gòu)中的特殊性。[0010]但是,現(xiàn)有技術(shù)中基于NDN的P2P的應(yīng)用,每個(gè)用戶仍需要維護(hù)一個(gè)當(dāng)前在線用戶的列表,其中NDN網(wǎng)絡(luò)僅僅作為P2P網(wǎng)絡(luò)的底層物理實(shí)現(xiàn)。用戶還是只能同其他當(dāng)前在線用戶進(jìn)行文件的共享。據(jù)統(tǒng)計(jì)P2P文件共享網(wǎng)絡(luò)中,用戶在上傳文件后,4小時(shí)內(nèi)的下線率為48%,12小時(shí)內(nèi)的下線率為82%?!?br/>發(fā)明內(nèi)容】[0011]鑒于上述的分析,針對(duì)現(xiàn)有技術(shù)存在的問題,本發(fā)明旨在提供一種基于緩存優(yōu)化的文件傳輸方法以及裝置,用以解決現(xiàn)有技術(shù)中存在的共享文件生存時(shí)間短、網(wǎng)絡(luò)數(shù)據(jù)冗余率高,以及吞噬帶寬大的技術(shù)問題。[0012]本發(fā)明的目的主要是通過以下技術(shù)方案實(shí)現(xiàn)的:一種對(duì)等裝置之間的文件傳輸方法,其特征在于,步驟一,當(dāng)該對(duì)等裝置接收到內(nèi)容分塊請(qǐng)求時(shí),首先查詢內(nèi)容緩存裝置中是否存在相應(yīng)的內(nèi)容分塊,如果存在,則將相應(yīng)的內(nèi)容分塊從請(qǐng)求端口發(fā)送出去;步驟二,若內(nèi)容緩存裝置中不存在請(qǐng)求的內(nèi)容分塊時(shí),則查詢等待響應(yīng)列表,若等待響應(yīng)列表中包括所述內(nèi)容分塊的名稱時(shí),將請(qǐng)求端口記錄在所述名稱對(duì)應(yīng)的表項(xiàng);步驟三,若等待響應(yīng)列表中不存在所述內(nèi)容分塊的名稱時(shí),則查找轉(zhuǎn)發(fā)信息表,若轉(zhuǎn)發(fā)信息表中不存在所述內(nèi)容分塊的名稱以及所述請(qǐng)求端口的組合時(shí),將所述內(nèi)容分塊的名稱以及所述請(qǐng)求端口記錄在等待響應(yīng)列表中,并將所述的內(nèi)容分塊請(qǐng)求轉(zhuǎn)發(fā)出去。[0013]優(yōu)選的,在步驟三中,當(dāng)轉(zhuǎn)發(fā)信息表中存在所述內(nèi)容分塊的名稱以及所述請(qǐng)求端口的組合時(shí),將所述內(nèi)容分塊請(qǐng)求丟棄。[0014]優(yōu)選的,所述對(duì)等裝置包括用戶端設(shè)備或路由器。[0015]優(yōu)選的,當(dāng)一個(gè)發(fā)送出去的內(nèi)容分塊請(qǐng)求超過一定時(shí)間沒有收到相應(yīng)的內(nèi)容分塊,則在所述等待響應(yīng)列表中刪除該內(nèi)容分塊對(duì)應(yīng)的表項(xiàng)。[0016]優(yōu)選的,用戶端設(shè)備加入對(duì)等網(wǎng)絡(luò)時(shí)可以通過自舉操作執(zhí)行下面兩個(gè)操作之一:一,用戶端設(shè)備聲明自己能夠向網(wǎng)絡(luò)分享的內(nèi)容分塊的名稱以及存儲(chǔ)路徑;二,用戶端設(shè)備發(fā)出內(nèi)容分塊請(qǐng)求。[0017]優(yōu)選的,所述等待響應(yīng)列表中,內(nèi)容分塊名稱對(duì)應(yīng)一個(gè)以上的請(qǐng)求端口。[0018]優(yōu)選的,當(dāng)對(duì)等裝置接收到內(nèi)容分塊后,若內(nèi)容緩存裝置中不存在相應(yīng)的內(nèi)容分塊,則查找等待響應(yīng)列表,根據(jù)等待響應(yīng)列表中內(nèi)容分塊名稱對(duì)應(yīng)的一個(gè)以上請(qǐng)求端口將所述內(nèi)容分塊轉(zhuǎn)發(fā)出去,并刪除等待響應(yīng)列表中對(duì)應(yīng)的表項(xiàng)。[0019]優(yōu)選的,若內(nèi)容緩存裝置中不存在相應(yīng)的內(nèi)容分塊,將接收到的內(nèi)容分塊進(jìn)行存儲(chǔ)。[0020]優(yōu)選的,若內(nèi)容緩存裝置中不存在相應(yīng)的內(nèi)容分塊,根據(jù)緩存策略決定是否保存接收到的當(dāng)前第1頁1 2 3 4