本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其是涉及一種向網(wǎng)絡(luò)中發(fā)送和從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù)的方法和裝置。
背景技術(shù):
NDN(Named Data Networking,命名數(shù)據(jù)網(wǎng)絡(luò))是一種以內(nèi)容為中心的未來互聯(lián)網(wǎng)體系架構(gòu),其試圖逐步替代主宰互聯(lián)網(wǎng)半個(gè)世紀(jì)的TCP/IP網(wǎng)絡(luò)體系。NDN網(wǎng)絡(luò)具有智能轉(zhuǎn)發(fā)、去中心化、與位置無關(guān)等優(yōu)勢(shì),相對(duì)于TCP/IP網(wǎng)絡(luò),NDN網(wǎng)絡(luò)下的應(yīng)用具有更簡(jiǎn)單的結(jié)構(gòu)。這是因?yàn)镹DN層將數(shù)據(jù)的檢索從應(yīng)用層下放到了網(wǎng)絡(luò)層。作為一個(gè)內(nèi)容分發(fā)應(yīng)用,當(dāng)用戶想要某個(gè)特定的數(shù)據(jù)時(shí),只需要事先取得到數(shù)據(jù)的名稱,然后將該名稱發(fā)送到網(wǎng)絡(luò)當(dāng)中,NDN網(wǎng)絡(luò)會(huì)自動(dòng)找到名稱所對(duì)應(yīng)的數(shù)據(jù),然后回傳數(shù)據(jù)。此外,NDN網(wǎng)絡(luò)具有更強(qiáng)、更自然的可擴(kuò)展性。這同樣是因?yàn)镹DN網(wǎng)絡(luò)層負(fù)擔(dān)了更多的功能,同時(shí)又免去了資源定位的邏輯,網(wǎng)絡(luò)中不再需要有指定的節(jié)點(diǎn)來負(fù)責(zé)全局的數(shù)據(jù)調(diào)度,網(wǎng)絡(luò)路由層可以自發(fā)地解決這一問題。
但是,由于硬件設(shè)備的限制,現(xiàn)有的NDN網(wǎng)絡(luò)只能基于Overlay(覆蓋)技術(shù)實(shí)現(xiàn)在現(xiàn)有的TCP/IP網(wǎng)絡(luò)之上,采用ccnx、NFD等軟件的方法實(shí)現(xiàn)NDN網(wǎng)絡(luò)中路由器的功能,這極大地限制和弱化了NDN相比TCP/IP網(wǎng)絡(luò)所具有的優(yōu)勢(shì)。在這種情況下,相比NDN,TCP/IP網(wǎng)絡(luò)也具有網(wǎng)絡(luò)過渡時(shí)期的特殊優(yōu)勢(shì)。第一,IP是一個(gè)基于連接的通信協(xié)議,其網(wǎng)絡(luò)層的控制信息所消耗的網(wǎng)絡(luò)帶寬更少,因此在通信目的地址確定的情況下更適合數(shù)據(jù)傳輸。第二,由于目前的NDN網(wǎng)絡(luò)實(shí)現(xiàn)覆蓋實(shí)現(xiàn)在TCP/IP網(wǎng)絡(luò)之上, NDN網(wǎng)絡(luò)的傳輸效率會(huì)進(jìn)一步低于TCP/IP網(wǎng)絡(luò),產(chǎn)生這種現(xiàn)象的主要因素包括:NDN數(shù)據(jù)包簽名造成的延遲、以及基于TCP/IP Overlay實(shí)現(xiàn)的NDN路由算法經(jīng)歷更多的傳輸路徑等。因此,在基于TCP/IP Overlay技術(shù)實(shí)現(xiàn)的NDN網(wǎng)絡(luò)中,數(shù)據(jù)包的傳輸效率相比TCP/IP網(wǎng)絡(luò)是低效的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的之一是提供一種能夠有效地提高在TCP/IP和NDN網(wǎng)絡(luò)同時(shí)存在的混合網(wǎng)絡(luò)中的內(nèi)容分發(fā)能力的、向網(wǎng)絡(luò)中發(fā)送和從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù)的方法和裝置。
本發(fā)明公開的技術(shù)方案包括:
提供了一種從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù)的方法,包括:將NDN請(qǐng)求包發(fā)送到NDN網(wǎng)絡(luò)中,所述NDN請(qǐng)求包中包含目標(biāo)數(shù)據(jù)的識(shí)別信息;接收從所述NDN網(wǎng)絡(luò)中返回的NDN數(shù)據(jù)包,所述NDN數(shù)據(jù)包中包含擁有所述目標(biāo)數(shù)據(jù)的終端的IP地址;從所述NDN數(shù)據(jù)包中提取所述IP地址;根據(jù)所述IP地址,通過TCP/IP網(wǎng)絡(luò)與所述終端建立TCP/IP通信連接;通過所述TCP/IP通信連接從所述終端獲取所述目標(biāo)數(shù)據(jù)。
本發(fā)明的一些實(shí)施例中,在從所述終端獲取所述目標(biāo)數(shù)據(jù)之后還包括:存儲(chǔ)所述目標(biāo)數(shù)據(jù)和所述目標(biāo)數(shù)據(jù)的識(shí)別信息。
本發(fā)明的一些實(shí)施例中,在從所述終端獲取所述目標(biāo)數(shù)據(jù)之后還包括:將所述目標(biāo)數(shù)據(jù)轉(zhuǎn)換成NDN網(wǎng)絡(luò)數(shù)據(jù)包的格式,并存儲(chǔ)轉(zhuǎn)換成NDN網(wǎng)絡(luò)數(shù)據(jù)包的格式后的目標(biāo)數(shù)據(jù)和所述目標(biāo)數(shù)據(jù)的識(shí)別信息。
本發(fā)明的一些實(shí)施例中還提供了一種向網(wǎng)絡(luò)中發(fā)送目標(biāo)數(shù)據(jù)的方法,包括:從NDN網(wǎng)絡(luò)中接收來自于遠(yuǎn)程終端的NDN請(qǐng)求包;從所述NDN請(qǐng)求包中提取目標(biāo)數(shù)據(jù)的識(shí)別信息;在本地的存儲(chǔ)器中根據(jù)所述識(shí)別信息搜索所述目標(biāo)數(shù)據(jù);當(dāng)所述存儲(chǔ)器中存在所述目標(biāo)數(shù)據(jù)時(shí),將本地的IP地址轉(zhuǎn)換成符合NDN網(wǎng)絡(luò)數(shù)據(jù)包格式的第一NDN數(shù)據(jù)包,并將所述第一 NDN數(shù)據(jù)包通過所述NDN網(wǎng)絡(luò)發(fā)送到所述遠(yuǎn)程終端;接收來自于TCP/IP網(wǎng)絡(luò)的通信連接請(qǐng)求,建立TCP/IP通信連接;通過所述TCP/IP通信連接發(fā)送所述目標(biāo)數(shù)據(jù)。
本發(fā)明的一些實(shí)施例中,還包括,當(dāng)所述存儲(chǔ)器中不存在所述目標(biāo)數(shù)據(jù)時(shí):將所述NDN請(qǐng)求包轉(zhuǎn)發(fā)到NDN網(wǎng)絡(luò)中;接收從所述NDN網(wǎng)絡(luò)中返回的第二NDN數(shù)據(jù)包,所述第二NDN數(shù)據(jù)包中包含擁有所述目標(biāo)數(shù)據(jù)的終端的IP地址;將所述第二NDN數(shù)據(jù)包通過所述NDN網(wǎng)絡(luò)發(fā)送到所述遠(yuǎn)程終端。
本發(fā)明的一些實(shí)施例中還提供了一種從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù)的裝置,包括:NDN網(wǎng)絡(luò)接口;TCP/IP網(wǎng)絡(luò)接口;NDN控制單元,所述NDN控制單元用于實(shí)現(xiàn)根據(jù)NDN協(xié)議的通信;TCP/IP控制單元,所述TCP/IP控制單元用于實(shí)現(xiàn)根據(jù)TCP/IP協(xié)議的通信;控制器,所述控制器用于控制所述NDN控制單元和所述TCP/IP控制單元;其中,在所述控制器的控制下:所述NDN控制單元通過所述NDN網(wǎng)絡(luò)接口將NDN請(qǐng)求包發(fā)送到NDN網(wǎng)絡(luò)中,所述NDN請(qǐng)求包中包含目標(biāo)數(shù)據(jù)的識(shí)別信息;所述NDN控制單元通過所述NDN網(wǎng)絡(luò)接口接收從所述NDN網(wǎng)絡(luò)中返回的包含擁有所述目標(biāo)數(shù)據(jù)的終端的IP地址的NDN數(shù)據(jù)包,并從所述NDN數(shù)據(jù)包中提取所述IP地址;所述TCP/IP控制單元根據(jù)所述IP地址經(jīng)由所述TCP/IP網(wǎng)絡(luò)接口通過TCP/IP網(wǎng)絡(luò)與所述終端建立TCP/IP通信連接,并通過所述TCP/IP通信連接從所述終端獲取所述目標(biāo)數(shù)據(jù)。
本發(fā)明的一些實(shí)施例中,還包括存儲(chǔ)器,所述存儲(chǔ)器用于存儲(chǔ)所述目標(biāo)數(shù)據(jù)和所述目標(biāo)數(shù)據(jù)的識(shí)別信息。
本發(fā)明的一些實(shí)施例中,所述控制器還控制所述NDN控制單元將所述目標(biāo)數(shù)據(jù)轉(zhuǎn)換成NDN網(wǎng)絡(luò)數(shù)據(jù)包的格式,并將轉(zhuǎn)換后的目標(biāo)數(shù)據(jù)和所述目標(biāo)數(shù)據(jù)的識(shí)別信息存儲(chǔ)在所述存儲(chǔ)器中。
本發(fā)明的一些實(shí)施例中還提供了一種向網(wǎng)絡(luò)中發(fā)送目標(biāo)數(shù)據(jù)的裝置, 包括:NDN網(wǎng)絡(luò)接口;TCP/IP網(wǎng)絡(luò)接口;NDN控制單元,所述NDN控制單元用于實(shí)現(xiàn)根據(jù)NDN協(xié)議的通信;TCP/IP控制單元,所述TCP/IP控制單元用于實(shí)現(xiàn)根據(jù)TCP/IP協(xié)議的通信;控制器,所述控制器用于控制所述NDN控制單元和所述TCP/IP控制單元;其中,在所述控制器的控制下:所述NDN控制單元通過所述NDN網(wǎng)絡(luò)接口從NDN網(wǎng)絡(luò)中接收來自于遠(yuǎn)程終端的NDN請(qǐng)求包,并從所述NDN請(qǐng)求包中提取目標(biāo)數(shù)據(jù)的識(shí)別信息;所述NDN控制單元根據(jù)所述識(shí)別信息在本地的存儲(chǔ)器中搜索所述目標(biāo)數(shù)據(jù);當(dāng)所述存儲(chǔ)器中存在所述目標(biāo)數(shù)據(jù)時(shí),所述NDN控制單元將本地的IP地址轉(zhuǎn)換成符合NDN網(wǎng)絡(luò)數(shù)據(jù)包格式的第一NDN數(shù)據(jù)包,并經(jīng)由所述NDN網(wǎng)絡(luò)接口通過所述NDN網(wǎng)絡(luò)將所述第一NDN數(shù)據(jù)包發(fā)送到所述遠(yuǎn)程終端;所述TCP/IP控制單元通過所述TCP/IP網(wǎng)絡(luò)接口接收來自于TCP/IP網(wǎng)絡(luò)的通信連接請(qǐng)求并建立TCP/IP通信連接,并通過所述TCP/IP通信連接發(fā)送所述目標(biāo)數(shù)據(jù)。
本發(fā)明的一些實(shí)施例中,當(dāng)所述存儲(chǔ)器中不存在所述目標(biāo)數(shù)據(jù)時(shí),所述NDN控制單元還通過所述NDN網(wǎng)絡(luò)接口:將所述NDN請(qǐng)求包轉(zhuǎn)發(fā)到NDN網(wǎng)絡(luò)中;接收從所述NDN網(wǎng)絡(luò)中返回的第二NDN數(shù)據(jù)包,所述第二NDN數(shù)據(jù)包中包含擁有所述目標(biāo)數(shù)據(jù)的終端的IP地址;將所述第二NDN數(shù)據(jù)包通過所述NDN網(wǎng)絡(luò)發(fā)送到所述遠(yuǎn)程終端。
本發(fā)明的實(shí)施例中提供的方法和裝置中,同時(shí)包含NDN網(wǎng)絡(luò)和TCP/IP網(wǎng)絡(luò)作為網(wǎng)絡(luò)層協(xié)議,使用NDN網(wǎng)絡(luò)進(jìn)行控制信息的交互以及目標(biāo)數(shù)據(jù)的檢索,使用TCP/IP網(wǎng)絡(luò)來進(jìn)行具體的目標(biāo)數(shù)據(jù)的傳輸,既發(fā)揮了NDN網(wǎng)絡(luò)智能和高效的內(nèi)容分發(fā)優(yōu)勢(shì),同時(shí)又借助了現(xiàn)有網(wǎng)絡(luò)設(shè)備和通信環(huán)境下IP網(wǎng)絡(luò)的高效傳輸能力,有效地提高了在TCP/IP和NDN網(wǎng)絡(luò)同時(shí)存在的混合網(wǎng)絡(luò)中的內(nèi)容分發(fā)能力。
附圖說明
圖1是NDN中三種數(shù)據(jù)結(jié)構(gòu)及其相互關(guān)系的示意圖。
圖2是基于ccnx部署的TCP/IP Overlay的NDN網(wǎng)絡(luò)的物理拓?fù)涞氖疽鈭D。
圖3是與圖2對(duì)應(yīng)的、基于ccnx部署的TCP/IP Overlay的NDN網(wǎng)絡(luò)的邏輯拓?fù)涞氖疽鈭D。
圖4是本發(fā)明一些實(shí)施例的從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù)和/或向網(wǎng)絡(luò)中發(fā)送目標(biāo)數(shù)據(jù)的裝置的框圖結(jié)構(gòu)示意圖。
圖5是本發(fā)明一些實(shí)施例中裝置1作為數(shù)據(jù)請(qǐng)求方從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù)的方法的流程示意圖。
圖6是本發(fā)明一些實(shí)施例的裝置1與網(wǎng)絡(luò)上的其他終端的交互過程的示意圖。
圖7是本發(fā)明一些實(shí)施例中裝置1作為數(shù)據(jù)提供方向網(wǎng)絡(luò)中發(fā)送目標(biāo)數(shù)據(jù)的方法的流程示意圖。
具體實(shí)施方式
下面將結(jié)合附圖詳細(xì)說明本發(fā)明的實(shí)施例的與網(wǎng)絡(luò)間發(fā)送和接收目標(biāo)數(shù)據(jù)的方法的具體步驟以及相關(guān)裝置的具體結(jié)構(gòu)。
在NDN中有兩種類型的傳輸包:Interest包(請(qǐng)求包)和Data包(數(shù)據(jù)包)。請(qǐng)求包的主要作用是用來請(qǐng)求數(shù)據(jù),即請(qǐng)求與之相對(duì)應(yīng)的數(shù)據(jù)包。如圖1所示,NDN網(wǎng)絡(luò)中的路由器包含有3個(gè)主要數(shù)據(jù)結(jié)構(gòu):PIT(Forwarding Information Base,轉(zhuǎn)發(fā)信息庫(kù))、FIB(Pending Interest Table,待定興趣表)和CS(Content Store,內(nèi)容存儲(chǔ))。數(shù)據(jù)的消費(fèi)者(接收端)通過向網(wǎng)絡(luò)中發(fā)送特定名稱(name)的請(qǐng)求包來請(qǐng)求需要的數(shù)據(jù)(本文中稱之為“目標(biāo)數(shù)據(jù)”),網(wǎng)絡(luò)中的路由器基于FIB中的信息對(duì)請(qǐng)求包進(jìn)行轉(zhuǎn)發(fā);任何接收到該請(qǐng)求包的網(wǎng)絡(luò)節(jié)點(diǎn),如果擁有可以滿足這個(gè)請(qǐng)求包的數(shù)據(jù),就可以回復(fù)一個(gè)數(shù)據(jù)包,從而將數(shù)據(jù)內(nèi)容發(fā)送到接收端。數(shù)據(jù)包的 傳輸只是作為對(duì)請(qǐng)求包的響應(yīng),請(qǐng)求包自身不需要進(jìn)行路由轉(zhuǎn)發(fā),它基于PIT中的信息實(shí)現(xiàn)沿請(qǐng)求包被傳輸?shù)南喾绰窂椒祷亍?shù)據(jù)包經(jīng)過的所有中間路由器都會(huì)將轉(zhuǎn)發(fā)的數(shù)據(jù)包緩存在自己的CS中。
假設(shè)基于ccnx部署的TCP/IP Overlay的NDN網(wǎng)絡(luò)拓?fù)淙缯f明書附圖2所示,其中節(jié)點(diǎn)C、D、I為NDN網(wǎng)絡(luò)中的路由器,R1、R2和R3為TCP/IP網(wǎng)絡(luò)中的路由器,A、B、E、F、G、H、J為終端。圖中實(shí)線連接線表示TCP/IP網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的連接情況,虛線連接線表示NDN網(wǎng)絡(luò)下各個(gè)節(jié)點(diǎn)的連接情況。當(dāng)只考慮NDN網(wǎng)絡(luò)節(jié)點(diǎn)而忽略掉下層的TCP/IP網(wǎng)絡(luò)可得到NDN網(wǎng)絡(luò)中的邏輯拓?fù)淙鐖D3所示。
假設(shè)一個(gè)數(shù)據(jù)包從節(jié)點(diǎn)A傳輸?shù)焦?jié)點(diǎn)G,根據(jù)圖2所示拓?fù)浣Y(jié)構(gòu),在TCP/IP網(wǎng)絡(luò)下,該數(shù)據(jù)包最終將經(jīng)過如下路徑進(jìn)行傳輸:A→R1→R2→G;而在基于TCP/IP Overlay技術(shù)實(shí)現(xiàn)的上述NDN網(wǎng)絡(luò)中,數(shù)據(jù)包從節(jié)點(diǎn)A傳輸?shù)焦?jié)點(diǎn)G經(jīng)過的傳輸路徑為:A→R1→C→R1→R2→R3→I→R3→R2→G??梢姡诨赥CP/IP Overlay技術(shù)實(shí)現(xiàn)的NDN網(wǎng)絡(luò)中,數(shù)據(jù)包的傳輸效率相比TCP/IP網(wǎng)絡(luò)是低效的。
本發(fā)明的實(shí)施例中,提出了一種基于TCP/IP Overlay技術(shù)實(shí)現(xiàn)的NDN網(wǎng)絡(luò)下與網(wǎng)絡(luò)之間進(jìn)行數(shù)據(jù)的發(fā)送和接收的方法和裝置,其使用NDN網(wǎng)絡(luò)負(fù)責(zé)控制信息的交互以及數(shù)據(jù)的檢索,使用TCP/IP網(wǎng)絡(luò)來負(fù)責(zé)具體數(shù)據(jù)的傳輸,既發(fā)揮了NDN網(wǎng)絡(luò)智能和高效的內(nèi)容分發(fā)優(yōu)勢(shì),同時(shí)又借助了現(xiàn)有網(wǎng)絡(luò)設(shè)備和通信環(huán)境下IP網(wǎng)絡(luò)的高效傳輸能力。下面將結(jié)合附圖進(jìn)行詳細(xì)說明。
圖4為本發(fā)明一個(gè)實(shí)施例的從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù)和/或向網(wǎng)絡(luò)中發(fā)送目標(biāo)數(shù)據(jù)的裝置的框圖結(jié)構(gòu)示意圖。
如圖4所示,本發(fā)明的一些實(shí)施例中,從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù)和/或向網(wǎng)絡(luò)中發(fā)送目標(biāo)數(shù)據(jù)的裝置1可以包括控制器10、NDN控制單元20、TCP/IP控制單元30、NDN網(wǎng)絡(luò)接口50、TCP/IP網(wǎng)絡(luò)接口60和存儲(chǔ)器70。
NDN網(wǎng)絡(luò)接口50能夠與NDN網(wǎng)絡(luò)2連接,即能夠?qū)⒀b置1連接到NDN網(wǎng)絡(luò)2上。TCP/IP網(wǎng)絡(luò)接口60能夠與TCP/IP網(wǎng)絡(luò)3連接,即能夠?qū)⒀b置1連接到TCP/IP網(wǎng)絡(luò)3上。
NDN控制單元20能夠?qū)崿F(xiàn)根據(jù)NDN協(xié)議的通信。當(dāng)NDN網(wǎng)絡(luò)接口50連接到NDN網(wǎng)絡(luò)2時(shí),通過NDN控制單元20,裝置1能夠作為NDN網(wǎng)絡(luò)2的一個(gè)節(jié)點(diǎn)或者終端,通過NDN網(wǎng)絡(luò)2實(shí)現(xiàn)與NDN網(wǎng)絡(luò)上的其他節(jié)點(diǎn)或者終端間的、符合NDN協(xié)議的數(shù)據(jù)通信。
類似地,TCP/IP控制單元30能夠?qū)崿F(xiàn)根據(jù)TCP/IP協(xié)議的通信。當(dāng)TCP/IP網(wǎng)絡(luò)接口60連接到TCP/IP網(wǎng)絡(luò)3時(shí),通過TCP/IP控制單元30,裝置1能夠作為TCP/IP網(wǎng)絡(luò)3的一個(gè)節(jié)點(diǎn)或者終端,通過TCP/IP網(wǎng)絡(luò)3實(shí)現(xiàn)與TCP/IP網(wǎng)絡(luò)上的其他節(jié)點(diǎn)或者終端間的、符合TCP/IP協(xié)議的數(shù)據(jù)通信。
控制器10控制裝置1的工作,例如控制NDN控制單元20和TCP/IP控制單元30的工作。一些實(shí)施例中,控制器10還可以控制裝置1中所包含的其他器件、元件、電路和/或設(shè)備的工作。
本發(fā)明的實(shí)施例中,前述的以及下文中將要描述的控制器10、NDN控制單元20、TCP/IP控制單元30、NDN網(wǎng)絡(luò)接口50、TCP/IP網(wǎng)絡(luò)接口60和存儲(chǔ)器70可以是分離的元件或者電路;或者,這些元件或者這些元件中的一個(gè)或者多個(gè)的一些部分可以共同組合實(shí)現(xiàn)在一個(gè)或者多個(gè)元件或者電路中,本發(fā)明對(duì)此不作限制。例如,一些實(shí)施例中,這些元件中的一個(gè)或者多個(gè)的全部或者部分可以由微處理器、專用集成電路、可編程邏輯器件(例如FPGA等等)等等實(shí)現(xiàn)。
本發(fā)明的實(shí)施例中,裝置1可以作為數(shù)據(jù)請(qǐng)求方,向網(wǎng)絡(luò)上請(qǐng)求并獲取目標(biāo)數(shù)據(jù);也可以作為數(shù)據(jù)提供方,向網(wǎng)絡(luò)上的其他終端提供目標(biāo)數(shù)據(jù);或者也可以僅僅作為網(wǎng)絡(luò)上的其他數(shù)據(jù)請(qǐng)求方向網(wǎng)絡(luò)上的其他數(shù)據(jù)提供方請(qǐng)求目標(biāo)數(shù)據(jù)的中間轉(zhuǎn)接節(jié)點(diǎn)。下文中將分別進(jìn)行說明。
實(shí)施例一:裝置1作為數(shù)據(jù)請(qǐng)求方。
圖5為一些實(shí)施例中裝置1作為數(shù)據(jù)請(qǐng)求方從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù)的方法的流程示意圖。
如圖1所示,本實(shí)施例中,當(dāng)裝置1本身(例如,裝置1本身中包含圖1中未顯示的其他業(yè)務(wù)邏輯模塊,該業(yè)務(wù)邏輯模塊需要從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù);或者圖1中顯示的裝置1的單元需要從網(wǎng)絡(luò)中獲取目標(biāo)數(shù)據(jù);等等)或者連接到裝置1上的其他電子設(shè)備需要通過網(wǎng)絡(luò)請(qǐng)求獲得目標(biāo)數(shù)據(jù)時(shí),在步驟100中,控制器10可以控制NDN控制單元20將該請(qǐng)求構(gòu)造成符合NDN協(xié)議的NDN請(qǐng)求包,并將構(gòu)造的NDN請(qǐng)求包通過NDN網(wǎng)絡(luò)接口50發(fā)送到NDN網(wǎng)絡(luò)2中。
這里,該NDN請(qǐng)求包中可以包含所需要的目標(biāo)數(shù)據(jù)的識(shí)別信息。本發(fā)明的實(shí)施例中,這里的識(shí)別信息可以是任何適合的能夠識(shí)別所需要的目標(biāo)數(shù)據(jù)的信息。例如,一些實(shí)施例中,該識(shí)別信息可以是所需要的目標(biāo)數(shù)據(jù)的名稱,等等。一些實(shí)施例中,該識(shí)別信息可以在請(qǐng)求包中的name字段中包含或者體現(xiàn)。
NDN請(qǐng)求包發(fā)送到NDN網(wǎng)絡(luò)2上之后,NDN網(wǎng)絡(luò)2上的其他終端或者節(jié)點(diǎn)可以如前文所述對(duì)該NDN請(qǐng)求包進(jìn)行響應(yīng),并返回?cái)?shù)據(jù)包(該響應(yīng)過程將在下文中在裝置1作為數(shù)據(jù)提供方的實(shí)施例中進(jìn)行詳細(xì)說明)。
如下文中所述,本發(fā)明的實(shí)施例中,用NDN網(wǎng)絡(luò)進(jìn)行傳輸?shù)氖强刂菩畔?例如,擁有目標(biāo)數(shù)據(jù)的數(shù)據(jù)源或終端的IP地址,等等),而非目標(biāo)數(shù)據(jù)本身。因此,NDN網(wǎng)絡(luò)2上的其他終端或者節(jié)點(diǎn)響應(yīng)該NDN請(qǐng)求包而返回的NDN數(shù)據(jù)包中可以包含該終端或者節(jié)點(diǎn)的控制信息(例如,IP地址等等),而不包含目標(biāo)數(shù)據(jù)本身。為了使該做出響應(yīng)的終端或者節(jié)點(diǎn)識(shí)別響應(yīng)當(dāng)前的NDN請(qǐng)求包而返回的NDN數(shù)據(jù)包中可以只需要包含控制信息(例如,IP地址等等)而不需要包含目標(biāo)數(shù)據(jù)本身的情況,在構(gòu)造NDN請(qǐng) 求包時(shí),可以在NDN請(qǐng)求包中設(shè)置相應(yīng)的第一工作模式標(biāo)識(shí),該第一工作模式標(biāo)識(shí)可以標(biāo)示該NDN請(qǐng)求包是需要將目標(biāo)數(shù)據(jù)直接作為NDN數(shù)據(jù)包返回,還是需要將擁有目標(biāo)數(shù)據(jù)的終端的IP地址作為NDN數(shù)據(jù)包返回。類似地,做出響應(yīng)的終端或者節(jié)點(diǎn)返回的NDN數(shù)據(jù)包中也可以包含相應(yīng)的第二工作模式標(biāo)識(shí),該第二工作模式標(biāo)識(shí)可以表示該NDN數(shù)據(jù)包是包含了目標(biāo)數(shù)據(jù)的NDN數(shù)據(jù)包,還是包含了擁有目標(biāo)數(shù)據(jù)的終端的IP地址的數(shù)據(jù)包。這樣,接收到NDN請(qǐng)求包或者NDN數(shù)據(jù)包的終端根據(jù)第一工作模式標(biāo)識(shí)或者第二工作模式標(biāo)識(shí)即可知曉應(yīng)該如何響應(yīng)接收到的NDN請(qǐng)求包或者應(yīng)該對(duì)接收到的NDN數(shù)據(jù)包如何進(jìn)行后續(xù)處理。
本發(fā)明的一些實(shí)施例中,這里的第一工作模式標(biāo)識(shí)與第二工作模式標(biāo)識(shí)可以相同地定義,也可以不同地定義。
例如,一些實(shí)施例中,可以在NDN請(qǐng)求包中設(shè)置標(biāo)志位或者在NDN請(qǐng)求包中加入特定的字段(例如,加入特定的字段作為NDN請(qǐng)求包中的name字段的前綴或者后綴,或者該特定字段也可以加入在NDN請(qǐng)求包中的其他任何適合的位置,該特定的字段可以是任何適合的能夠標(biāo)示當(dāng)前工作模式的字段,例如,/IP-NDN-hybrid-network/,等等)。例如,當(dāng)該標(biāo)志位為1或者NDN請(qǐng)求包中包含某個(gè)特定字段時(shí),做出響應(yīng)的終端或者節(jié)點(diǎn)將控制信息(例如,IP地址等等)作為NDN數(shù)據(jù)包返回,也即按照本發(fā)明實(shí)施例中提供的方法進(jìn)行通信;而當(dāng)標(biāo)志位為0或者NDN請(qǐng)求包中不包含該特定字段時(shí),做出響應(yīng)的終端或者節(jié)點(diǎn)按照NDN網(wǎng)絡(luò)下常規(guī)的方式工作(例如,將目標(biāo)數(shù)據(jù)直接作為NDN數(shù)據(jù)包返回)。
一些實(shí)施例中,做出響應(yīng)的終端或者節(jié)點(diǎn)在針對(duì)NDN請(qǐng)求包做出響應(yīng)時(shí),也可以在NDN數(shù)據(jù)包中設(shè)置標(biāo)志位或者在NDN數(shù)據(jù)包中加入特定的字段(例如,/IP-NDN-hybrid-network/,等等)。例如,當(dāng)該標(biāo)志位為1或者NDN包含某個(gè)特定字段時(shí),表明該NDN數(shù)據(jù)包中包含擁有目標(biāo)數(shù)據(jù)的終端的IP地址;而當(dāng)標(biāo)志位為0或者請(qǐng)求包中不包含該特定字段時(shí),表明 該NDN數(shù)據(jù)包中包含目標(biāo)數(shù)據(jù)。
或者,一些實(shí)施例中,也可以直接將網(wǎng)絡(luò)上的所有終端或者節(jié)點(diǎn)配置成只能按照本發(fā)明實(shí)施例中提供的方式工作,即,網(wǎng)絡(luò)上的終端或者節(jié)點(diǎn)默認(rèn)在返回的NDN數(shù)據(jù)包中只包含控制信息(例如,擁有目標(biāo)數(shù)據(jù)的終端的IP地址),而不包含目標(biāo)數(shù)據(jù)本身。
NDN網(wǎng)絡(luò)2返回NDN數(shù)據(jù)包時(shí),在步驟102中,NDN控制單元20可以通過NDN網(wǎng)絡(luò)接口50接收從NDN網(wǎng)絡(luò)2中返回的NDN數(shù)據(jù)包。該NDN數(shù)據(jù)包中將包含NDN網(wǎng)絡(luò)2上擁有該目標(biāo)數(shù)據(jù)的終端的IP地址。然后,在步驟106中,NDN控制單元20可以從該NDN數(shù)據(jù)包中提取出該IP地址。
獲得了該IP地址之后,在步驟108中,控制器10可以將該IP地址發(fā)送到TCP/IP控制單元30。TCP/IP控制單元30根據(jù)該IP地址經(jīng)由TCP/IP網(wǎng)絡(luò)接口60并通過TCP/IP網(wǎng)絡(luò)3與該IP地址所對(duì)應(yīng)的該終端建立直接的TCP/IP通信連接。兩個(gè)終端之間建立TCP/IP通信連接的方法可以使用本領(lǐng)域內(nèi)常用的建立TCP/IP通信連接的方法,在此不再詳述。
在建立了TCP/IP通信連接之后,TCP/IP控制單元30即可通過該TCP/IP通信連接(也即通過TCP/IP網(wǎng)絡(luò)3)向該終端發(fā)出請(qǐng)求目標(biāo)數(shù)據(jù)的請(qǐng)求;該終端接收到該請(qǐng)求目標(biāo)數(shù)據(jù)的請(qǐng)求之后,即可以將目標(biāo)數(shù)據(jù)通過該TCP/IP通信連接發(fā)送到裝置1(下文中將在裝置1作為數(shù)據(jù)提供方的實(shí)施例中進(jìn)行詳細(xì)說明)。這樣,裝置1即從這個(gè)終端獲得了所需要的目標(biāo)數(shù)據(jù)。
本實(shí)施例中,裝置1與網(wǎng)絡(luò)上的其他終端的交互過程的示意圖如圖6所示??梢?,本實(shí)施例中,使用NDN網(wǎng)絡(luò)來進(jìn)行請(qǐng)求包(其中包含控制信息)的交互以及目標(biāo)數(shù)據(jù)的檢索,而使用TCP/IP網(wǎng)絡(luò)來進(jìn)行具體數(shù)據(jù)的傳輸,既發(fā)揮了NDN網(wǎng)絡(luò)智能和高效的內(nèi)容分發(fā)優(yōu)勢(shì),同時(shí)又借助了現(xiàn)有網(wǎng)絡(luò)設(shè)備和通信環(huán)境下TCP/IP網(wǎng)絡(luò)的高效傳輸能力,從而有效地提高了在 TCP/IP和NDN網(wǎng)絡(luò)同時(shí)存在的混合網(wǎng)絡(luò)中的內(nèi)容分發(fā)能力。
一些實(shí)施例中,在從與該IP地址對(duì)應(yīng)的終端獲得了目標(biāo)數(shù)據(jù)之后,可以將該目標(biāo)數(shù)據(jù)和該目標(biāo)數(shù)據(jù)的識(shí)別信息存儲(chǔ)在本地的存儲(chǔ)器(例如,存儲(chǔ)器70或者裝置1的NDN控制單元20中的NDN數(shù)據(jù)結(jié)構(gòu)的CS,等等)中,以供后續(xù)網(wǎng)絡(luò)上其他終端進(jìn)行檢索和請(qǐng)求獲取。例如,一些實(shí)施例中,接收到目標(biāo)數(shù)據(jù)之后,可以將目標(biāo)數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器70中,并將目標(biāo)數(shù)據(jù)的識(shí)別信息(例如,請(qǐng)求包中的name字段)更新存儲(chǔ)到NDN控制單元20中的CS中。
一些實(shí)施例中,在從與該IP地址對(duì)應(yīng)的終端獲得了目標(biāo)數(shù)據(jù)之后,NDN控制單元20可以將該目標(biāo)數(shù)據(jù)轉(zhuǎn)換成NDN網(wǎng)絡(luò)數(shù)據(jù)包的格式,并將轉(zhuǎn)換后的目標(biāo)數(shù)據(jù)和該目標(biāo)數(shù)據(jù)的識(shí)別信息(例如,請(qǐng)求包中的name字段)存儲(chǔ)在本地的存儲(chǔ)器(例如,存儲(chǔ)器70或者裝置1的NDN控制單元20中的NDN數(shù)據(jù)結(jié)構(gòu)的CS,等等),以供后續(xù)網(wǎng)絡(luò)上的其他終端直接單獨(dú)通過NDN網(wǎng)絡(luò)進(jìn)行檢索和請(qǐng)求獲取。
實(shí)施例二:裝置1作為數(shù)據(jù)提供方。
圖7為一些實(shí)施例中裝置1作為數(shù)據(jù)提供方向網(wǎng)絡(luò)中發(fā)送目標(biāo)數(shù)據(jù)的方法的流程示意圖。
如圖7所示,當(dāng)裝置1作為NDN網(wǎng)絡(luò)上的一個(gè)終端接收到來自于遠(yuǎn)程終端(例如,NDN網(wǎng)絡(luò)中的上一個(gè)節(jié)點(diǎn)或者終端)的NDN請(qǐng)求包時(shí),在步驟200,NDN控制單元20通過NDN網(wǎng)絡(luò)接口50從NDN網(wǎng)絡(luò)2中接收來自于遠(yuǎn)程終端的該NDN請(qǐng)求包。如前文所述,該NDN請(qǐng)求包中包含有數(shù)據(jù)請(qǐng)求方所需要的目標(biāo)數(shù)據(jù)的識(shí)別信息。因此,本步驟中,NDN控制單元20可以從該NDN請(qǐng)求包中提取目標(biāo)數(shù)據(jù)的該識(shí)別信息。
然后,在步驟201中,NDN控制單元20可以在本地(例如,裝置1或者包含裝置1的設(shè)備)的存儲(chǔ)器(例如,存儲(chǔ)器70或者其他存儲(chǔ)設(shè)備或 存儲(chǔ)單元,例如前述的NDN數(shù)據(jù)結(jié)構(gòu)中的CS)中根據(jù)該識(shí)別信息搜索目標(biāo)數(shù)據(jù)。例如,一些實(shí)施例中,NDN控制單元20可以提取接收的NDN請(qǐng)求包中的name字段,根據(jù)該name字段的內(nèi)容在NDN控制單元20的NDN數(shù)據(jù)結(jié)構(gòu)中的CS中搜索與該name字段匹配的記錄,如果存在與該name字段匹配的記錄,則本地存在該識(shí)別信息所指示的目標(biāo)數(shù)據(jù),并且根據(jù)該匹配的記錄可以獲得該目標(biāo)數(shù)據(jù);否則本地不存在該目標(biāo)數(shù)據(jù)。
在步驟202中,控制器10可以判斷本地的存儲(chǔ)器中是否存在識(shí)別信息所指示的目標(biāo)數(shù)據(jù)。
當(dāng)本地的存儲(chǔ)器中存在識(shí)別信息所指示的目標(biāo)數(shù)據(jù)時(shí),在步驟203中,NDN控制單元可以將本地的IP地址轉(zhuǎn)換成符合NDN網(wǎng)絡(luò)數(shù)據(jù)包格式的第一NDN數(shù)據(jù)包,并將該第一NDN數(shù)據(jù)包經(jīng)由NDN網(wǎng)絡(luò)接口50通過NDN網(wǎng)絡(luò)2發(fā)送到該遠(yuǎn)程終端(即發(fā)送被裝置1接收到的NDN請(qǐng)求包的終端)。
該遠(yuǎn)程終端可能是原始數(shù)據(jù)請(qǐng)求方,即需要該目標(biāo)數(shù)據(jù)的終端;也可能是中間節(jié)點(diǎn),即該遠(yuǎn)程終端只是作為中間節(jié)點(diǎn)轉(zhuǎn)發(fā)該NDN請(qǐng)求包。當(dāng)該遠(yuǎn)程終端是中間節(jié)點(diǎn)時(shí),它將把接收到的該第一NDN數(shù)據(jù)包原路轉(zhuǎn)發(fā),依次類推,直到該第一NDN數(shù)據(jù)包被轉(zhuǎn)發(fā)到原始數(shù)據(jù)請(qǐng)求方。
原始數(shù)據(jù)請(qǐng)求方接收到第一NDN數(shù)據(jù)包之后,與前文中所述的實(shí)施例一中類似,原始數(shù)據(jù)請(qǐng)求方將從第一NDN數(shù)據(jù)包中提取其中包含的IP地址(即裝置1本地的IP地址),然后通過TCP/IP網(wǎng)絡(luò)直接與裝置1建立通信連接。
此時(shí),在步驟205中,TCP/IP控制單元30可以通過TCP/IP網(wǎng)絡(luò)接口60從該TCP/IP網(wǎng)絡(luò)3接收原始數(shù)據(jù)請(qǐng)求方發(fā)過來的通信連接請(qǐng)求,并與原始數(shù)據(jù)請(qǐng)求方建立直接的TCP/IP通信連接。建立該TCP/IP通信連接之后,原始數(shù)據(jù)請(qǐng)求方將通過該TCP/IP通信連接發(fā)送請(qǐng)求目標(biāo)數(shù)據(jù)的請(qǐng)求(如實(shí)施例一中所述)。TCP/IP控制單元30接收到原始數(shù)據(jù)請(qǐng)求方發(fā)送的該請(qǐng)求目標(biāo)數(shù)據(jù)的請(qǐng)求之后,即可通過該TCP/IP通信連接(也即通過TCP/IP網(wǎng) 絡(luò)3)將前述的識(shí)別信息所指示的目標(biāo)數(shù)據(jù)發(fā)送到原始數(shù)據(jù)請(qǐng)求方。
裝置1與原始數(shù)據(jù)請(qǐng)求方之間通過已經(jīng)建立的TCP/IP通信連接進(jìn)行數(shù)據(jù)交換的方法可以使用本領(lǐng)域內(nèi)常用的方法,在此不再進(jìn)一步地詳述。
而當(dāng)本地的存儲(chǔ)器中不存在識(shí)別信息所指示的目標(biāo)數(shù)據(jù)時(shí),在步驟206中,NDN控制單元20可以通過NDN網(wǎng)絡(luò)接口50將該NDN請(qǐng)求包轉(zhuǎn)發(fā)到NDN網(wǎng)絡(luò)中,例如轉(zhuǎn)發(fā)到NDN網(wǎng)絡(luò)中的下一個(gè)終端。
如果下一個(gè)終端中存在識(shí)別信息所指示的目標(biāo)數(shù)據(jù),則該終端將返回包含其IP地址的NDN數(shù)據(jù)包;如果下一個(gè)終端中不存在識(shí)別信息所指示的目標(biāo)數(shù)據(jù),則它將繼續(xù)轉(zhuǎn)發(fā)該NDN請(qǐng)求包,直到到達(dá)NDN網(wǎng)絡(luò)2中擁有該識(shí)別信息所指示的目標(biāo)數(shù)據(jù)的終端或者該NDN請(qǐng)求包因?yàn)槌瑫r(shí)而廢棄。當(dāng)NDN網(wǎng)絡(luò)2中存在擁有識(shí)別信息所指示的目標(biāo)數(shù)據(jù)的終端并且該NDN請(qǐng)求包到達(dá)該終端時(shí),該終端將做出響應(yīng),原路返回包含其IP地址的NDN數(shù)據(jù)包。這些返回的NDN數(shù)據(jù)包會(huì)到達(dá)裝置1。本文中,將裝置1把NDN請(qǐng)求包轉(zhuǎn)發(fā)到NDN網(wǎng)絡(luò)2之后返回到裝置1來的NDN數(shù)據(jù)包稱之為第二NDN數(shù)據(jù)包。容易理解,該第二NDN數(shù)據(jù)包中包含有擁有前述的識(shí)別信息所指示的目標(biāo)數(shù)據(jù)的終端的IP地址。
此時(shí),在步驟207中,NDN控制單元20可以通過NDN網(wǎng)絡(luò)接口50接收從NDN網(wǎng)絡(luò)2中返回的該第二NDN數(shù)據(jù)包,并將該第二NDN數(shù)據(jù)包通過NDN網(wǎng)絡(luò)2發(fā)送到前述的遠(yuǎn)程終端(即發(fā)送被裝置1接收到的NDN請(qǐng)求包的終端)。
本發(fā)明的實(shí)施例中提供的方法和裝置中,同時(shí)包含NDN網(wǎng)絡(luò)和TCP/IP網(wǎng)絡(luò)作為網(wǎng)絡(luò)層協(xié)議,并且使用NDN網(wǎng)絡(luò)進(jìn)行NDN請(qǐng)求包的交互以及目標(biāo)數(shù)據(jù)的檢索,而使用TCP/IP網(wǎng)絡(luò)來進(jìn)行具體目標(biāo)數(shù)據(jù)的傳輸。請(qǐng)求包中包含的是控制信息(例如IP地址)而不包含具體的目標(biāo)數(shù)據(jù),因此傳輸?shù)臄?shù)據(jù)量非常小,它由經(jīng)過較多的路由器或者節(jié)點(diǎn)的NDN網(wǎng)絡(luò)進(jìn)行傳輸,既可以發(fā)揮NDN網(wǎng)絡(luò)智能和高效的內(nèi)容分發(fā)的特點(diǎn),以利于在網(wǎng)絡(luò)中智能、 快速地檢索到擁有目標(biāo)數(shù)據(jù)的數(shù)據(jù)源或終端,也因?yàn)閭鬏數(shù)臄?shù)據(jù)量小而不會(huì)顯著地影響傳輸效率;而數(shù)據(jù)量大的具體的目標(biāo)數(shù)據(jù)本身則由經(jīng)過較少的路由器的TCP/IP網(wǎng)絡(luò)進(jìn)行傳輸,可以顯著提高傳輸效率。因此,本發(fā)明的實(shí)施例的方法和裝置中,既發(fā)揮了NDN網(wǎng)絡(luò)智能和高效的內(nèi)容分發(fā)優(yōu)勢(shì),同時(shí)又借助了現(xiàn)有網(wǎng)絡(luò)設(shè)備和通信環(huán)境下TCP/IP網(wǎng)絡(luò)的高效傳輸能力,有效地提高了在TCP/IP和NDN網(wǎng)絡(luò)同時(shí)存在的混合網(wǎng)絡(luò)中的內(nèi)容分發(fā)能力和效率。
本發(fā)明的實(shí)施例中提供的方法可以使用軟件、硬件、固件或它們的結(jié)合實(shí)現(xiàn),本發(fā)明對(duì)此不作限制。
以上通過具體的實(shí)施例對(duì)本發(fā)明進(jìn)行了說明,但本發(fā)明并不限于這些具體的實(shí)施例。本領(lǐng)域技術(shù)人員應(yīng)該明白,還可以對(duì)本發(fā)明做各種修改、等同替換、變化等等,這些變換只要未背離本發(fā)明的精神,都應(yīng)在本發(fā)明的保護(hù)范圍之內(nèi)。此外,以上多處所述的“一個(gè)實(shí)施例”表示不同的實(shí)施例,當(dāng)然也可以將其全部或部分結(jié)合在一個(gè)實(shí)施例中。