專利名稱:一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,用以實(shí)現(xiàn)內(nèi)容信息互聯(lián)。
背景技術(shù):
現(xiàn)在互聯(lián)網(wǎng)的主要使用需求是內(nèi)容的獲取和分發(fā),雖然應(yīng)用發(fā)生了這么大的變化,但互聯(lián)網(wǎng)的體系結(jié)構(gòu)仍然是Host-to-Host (主機(jī)到主機(jī))通信模式,對(duì)于以發(fā)布和獲取信息為主的互聯(lián)網(wǎng),Host-to-Host通信模式存在明顯的不足,無法滿足現(xiàn)有用戶的網(wǎng)絡(luò)服務(wù)需求,根據(jù)現(xiàn)有用戶需求,互聯(lián)網(wǎng)將從面向連接轉(zhuǎn)向面向內(nèi)容,實(shí)現(xiàn)內(nèi)容的互聯(lián)。以內(nèi)容為核心的網(wǎng)絡(luò)用內(nèi)容名稱取代傳統(tǒng)的IP,改變了 Host-to-Host通信模式。從網(wǎng)絡(luò)的角度看,以內(nèi)容為核心的網(wǎng)絡(luò)不再關(guān)心獲取數(shù)據(jù)的路徑,只關(guān)注獲取數(shù)據(jù)的名稱,直接抓取名稱相符的數(shù)據(jù)。另外,網(wǎng)絡(luò)中內(nèi)建存儲(chǔ)功能,用來緩存經(jīng)過的數(shù)據(jù)包,用以加快其他用戶訪問緩存數(shù)據(jù)包的響應(yīng)時(shí)間,同時(shí)可減少網(wǎng)絡(luò)中的流量。內(nèi)容互聯(lián)網(wǎng)最主要的驅(qū)動(dòng)力就是對(duì)內(nèi)容的 需求,因此在網(wǎng)絡(luò)上主要的數(shù)據(jù)包有內(nèi)容請(qǐng)求包和數(shù)據(jù)包兩種,僅通過兩種包的傳遞來完成數(shù)據(jù)的交互。內(nèi)容互聯(lián)網(wǎng)改變了傳統(tǒng)Host-to-Host通信模式,滿足了現(xiàn)有用戶的網(wǎng)絡(luò)服務(wù)需求,但也引入了一些新的問題,具體問題如下:1.由于沒有固定的目標(biāo)主機(jī),路由將采用內(nèi)容請(qǐng)求包泛洪的模式來尋找數(shù)據(jù),這樣造成網(wǎng)間冗余流量過剩,浪費(fèi)網(wǎng)絡(luò)資源;2.內(nèi)容請(qǐng)求包到達(dá)網(wǎng)絡(luò)中的每一處節(jié)點(diǎn),若有其想要尋找內(nèi)容,都會(huì)將數(shù)據(jù)返回給內(nèi)容請(qǐng)求者,造成內(nèi)容請(qǐng)求者要處理繁雜的數(shù)據(jù)內(nèi)容,提高消耗;3.內(nèi)容請(qǐng)求者每發(fā)出一個(gè)內(nèi)容請(qǐng)求包,就要?dú)v經(jīng)區(qū)域內(nèi)的所有節(jié)點(diǎn),導(dǎo)致數(shù)據(jù)回傳延遲明顯上升,降低了用戶的網(wǎng)絡(luò)體驗(yàn);4.內(nèi)容請(qǐng)求者對(duì)網(wǎng)絡(luò)中的內(nèi)容分布處于完全未知的狀態(tài),導(dǎo)致內(nèi)容請(qǐng)求包的傳播具有盲目性,不能用最短的時(shí)間找到所需求數(shù)據(jù),極大的影響了網(wǎng)絡(luò)性能。綜上所述,當(dāng)前的內(nèi)容互聯(lián)網(wǎng)缺乏查找目標(biāo)內(nèi)容準(zhǔn)確性,增大了網(wǎng)絡(luò)開銷,網(wǎng)間冗余過大,在當(dāng)今網(wǎng)絡(luò)數(shù)據(jù)繁雜的情況下,無法達(dá)到預(yù)期的用戶體驗(yàn)效果。
發(fā)明內(nèi)容
為解決現(xiàn)有的內(nèi)容互聯(lián)網(wǎng)缺乏查找目標(biāo)內(nèi)容準(zhǔn)確性,網(wǎng)絡(luò)開銷大,網(wǎng)間冗余過大的問題,本發(fā)明提供一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,該方法在保證網(wǎng)絡(luò)以內(nèi)容為中心的前提下,能夠彌補(bǔ)目前內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)的不足,提高內(nèi)容命中率,提升網(wǎng)絡(luò)用戶體驗(yàn),減少網(wǎng)間冗余開銷,降低數(shù)據(jù)回傳延遲。為解決上述技術(shù)問題,本發(fā)明的實(shí)施例提供一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,在該方法執(zhí)行之前,預(yù)先在每個(gè)路由器中設(shè)置內(nèi)容名稱表路由模塊,各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱前綴和下一跳路由器ID的內(nèi)容路由表;該方法包括:當(dāng)任一路由器收到內(nèi)容請(qǐng)求時(shí),查詢本地緩存中是否存在與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是,則該路由器將本地緩存中與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)原路發(fā)給所述當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求方,否則,該路由器在本地預(yù)先存儲(chǔ)的內(nèi)容路由表中查找與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄,并將當(dāng)前內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)到與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄中所記錄的下一跳路由器上。優(yōu)選地,上述內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法中,所述查詢本地緩存中是否存在與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是,則該路由器將本地緩存中與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)原路發(fā)給所述當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求方,包括:該路由器查詢本地內(nèi)容存儲(chǔ)器中是否有與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是則該路由器直接將本地內(nèi)容存儲(chǔ)器中與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)發(fā)送到收到當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求端口并丟棄當(dāng)前內(nèi)容請(qǐng)求包,否則,查詢本地待定請(qǐng)求表中是否有與當(dāng)前內(nèi)容請(qǐng)求相同的請(qǐng)求記錄,若是則將當(dāng)前內(nèi)容請(qǐng)求加入所述本地待定請(qǐng)求表并丟棄當(dāng)前內(nèi)容請(qǐng)求包,待與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)回傳時(shí)將其發(fā)送到收到當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求端口;所述該路由器在本地預(yù)先存儲(chǔ)的內(nèi)容路由表中查找與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄,并將當(dāng)前內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)到與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄中所記錄的下一跳路由器上,包括:查詢本地內(nèi)容路由表中是否包含與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄,若是,則前向轉(zhuǎn)發(fā)表根據(jù)對(duì)內(nèi)容路由表檢索計(jì)算得出的路由路徑將當(dāng)前內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)到與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄中所記錄的下一跳路由器上,并將發(fā)送當(dāng)前內(nèi)容請(qǐng)求的轉(zhuǎn)發(fā)端口從本地前向轉(zhuǎn)發(fā)表的端口列表中刪除;否則,判斷該路由器剩下的端口是否空,若是則向該路由器所有剩下的端口轉(zhuǎn)發(fā)當(dāng)前內(nèi)容請(qǐng)求,并在本地前向轉(zhuǎn)發(fā)表中形成新的記錄有所述當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴和本地轉(zhuǎn)發(fā)端口的記錄。優(yōu)選地,所述各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱前綴和下一跳路由器的內(nèi)容路由表,包括: 初始化定義Hello包、內(nèi)容名稱前綴信息、內(nèi)容路由表、內(nèi)容路由表請(qǐng)求消息、內(nèi)容名稱前綴描述信息;當(dāng)前路由器周期性向其周圍路由器廣播存活時(shí)間為一跳的Hello包;收到所述當(dāng)前路由器廣播的Hello包的路由器向所述當(dāng)前路由器周期性發(fā)送存活時(shí)間為一跳的Hello包,并確認(rèn)所述當(dāng)前路由器為自己的鄰居;所述當(dāng)前路由器收到鄰居路由器發(fā)來的Hello包時(shí),確認(rèn)該鄰居路由器為自己的鄰居,隨后以泛洪模式向當(dāng)前網(wǎng)絡(luò)發(fā)送包括本地存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴的內(nèi)容名稱前
綴信息;鄰居路由器根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表,并向所述當(dāng)前路由器發(fā)送前綴信息確認(rèn)消息NPI_Ack ;所述當(dāng)前路由器收到其鄰居路由器發(fā)來的前綴信息確認(rèn)消息NPI_Ack,確認(rèn)本地內(nèi)容宣告完畢并向該鄰居路由器發(fā)送內(nèi)容路由表請(qǐng)求消息;
鄰居路由器收到所述當(dāng)前路由器發(fā)來的內(nèi)容路由表請(qǐng)求消息時(shí),向所述當(dāng)前路由器回復(fù)用于描述自身所存儲(chǔ)的內(nèi)容路由表的內(nèi)容名稱前綴描述信息;所述當(dāng)前路由器根據(jù)其鄰居路由器發(fā)來的內(nèi)容名稱前綴描述信息更新本地存儲(chǔ)的內(nèi)容路由表,并向其鄰居路由器返回確認(rèn)信息。優(yōu)選地,所述初始化定義Hello包、內(nèi)容名稱前綴信息、內(nèi)容路由表、內(nèi)容路由表請(qǐng)求消息、內(nèi)容名稱前綴描述信息,包括:定義所述Hello包包括Hello包的發(fā)送周期與存活時(shí)間、生成該Hello包的路由器ID、生成該Hello包的路由器與鄰居路由器相互連接的端口號(hào);定義每條所述內(nèi)容名稱前綴信息只攜帶唯一的內(nèi)容名稱前綴,內(nèi)容名稱前綴信息包括:此條內(nèi)容名稱前綴信息的存活時(shí)間、此條內(nèi)容名稱前綴信息中可選擇的參數(shù)字段、此條內(nèi)容名稱前綴信息所歷經(jīng)的跳數(shù)、產(chǎn)生該內(nèi)容名稱前綴信息的路由器ID、此條內(nèi)容名稱前綴信息所經(jīng)歷的上一跳的路由器ID、該內(nèi)容名稱前綴信息所記錄的內(nèi)容名稱前綴對(duì)應(yīng)的數(shù)據(jù)所在的路由器ID、此條內(nèi)容名稱前綴信息當(dāng)前到達(dá)的路由器的端口號(hào)、用于檢測(cè)該內(nèi)容名稱前綴信息是否為復(fù)制品或重傳數(shù)據(jù)的內(nèi)容名稱前綴信息序列號(hào)、此條內(nèi)容名稱前綴信息的頭部除去其存活時(shí)間部分的校驗(yàn)和、此條內(nèi)容名稱前綴信息頭部的總長度和內(nèi)容名稱iu綴;定義所述內(nèi)容路由表中的每條記錄包括:內(nèi)容名稱如綴,當(dāng)如內(nèi)容名稱如綴對(duì)應(yīng)的數(shù)據(jù)的存儲(chǔ)路由器ID,下一跳路由器ID,下一跳路由器的端口號(hào)和當(dāng)前內(nèi)容名稱前綴在當(dāng)前內(nèi)容路由表中的存活時(shí)間;定義內(nèi)容路由表請(qǐng)求消息包括:發(fā)起該內(nèi)容路由表請(qǐng)求消息的路由器ID、接收該內(nèi)容路由表請(qǐng)求消息的路由器ID、路由器狀態(tài)和該內(nèi)容路由表請(qǐng)求消息序列號(hào);定義內(nèi)容名稱前綴描述信息包括:該內(nèi)容名稱前綴描述信息對(duì)應(yīng)的內(nèi)容路由表請(qǐng)求消息序列號(hào)、可選擇參數(shù)字段、發(fā)`起該內(nèi)容名稱前綴描述信息的路由器ID、接收該內(nèi)容名稱前綴描述信息的路由器ID、該內(nèi)容名稱前綴描述信息的校驗(yàn)和、該內(nèi)容名稱前綴描述信息的總長度、發(fā)起該內(nèi)容名稱前綴描述信息的路由器所存儲(chǔ)的內(nèi)容路由表的具體內(nèi)容。優(yōu)選地,上述內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法中,所述各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱前綴和下一跳路由器的內(nèi)容路由表之后,還包括路由器數(shù)據(jù)更新過程,所述路由器數(shù)據(jù)更新過程包括步驟:當(dāng)有數(shù)據(jù)包經(jīng)過任一路由器時(shí),該路由器判斷當(dāng)前經(jīng)過的數(shù)據(jù)包內(nèi)的數(shù)據(jù)是否為新數(shù)據(jù),若否,則直接結(jié)束路由器數(shù)據(jù)更新過程,若是,則該路由器采用機(jī)會(huì)存儲(chǔ)方式按照設(shè)定概率將經(jīng)過的數(shù)據(jù)包存儲(chǔ)于本地的內(nèi)容存儲(chǔ)器中,隨后本地的內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)平面生成內(nèi)容存儲(chǔ)器更新消息并將所述內(nèi)容存儲(chǔ)器更新消息發(fā)送給本地的內(nèi)容名稱表路由模塊;該路由器中的內(nèi)容名稱表路由模塊在正常運(yùn)行狀態(tài)下收到所述內(nèi)容存儲(chǔ)器更新消息時(shí),向本地的內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)平面發(fā)送用于詢問本地的內(nèi)容存儲(chǔ)器存儲(chǔ)的更新內(nèi)容的內(nèi)容存儲(chǔ)器問詢消息;該路由器中的內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)平面讀取收到的內(nèi)容存儲(chǔ)器問詢消息,生成包含本地內(nèi)容存儲(chǔ)器新存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴的內(nèi)容存儲(chǔ)器答復(fù)消息,并將所述內(nèi)容存儲(chǔ)器答復(fù)消息發(fā)送給本地的內(nèi)容名稱表路由模塊;該路由器中的內(nèi)容名稱表路由模塊根據(jù)收到的內(nèi)容存儲(chǔ)器答復(fù)消息,生成包含該路由器中的內(nèi)容存儲(chǔ)器新存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴的內(nèi)容名稱前綴信息并將其以泛洪方式發(fā)送給當(dāng)前網(wǎng)絡(luò)中的其他路由器;收到內(nèi)容名稱前綴信息的路由器根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表并向該內(nèi)容名稱前綴信息的發(fā)送方路由器返回前綴信息確認(rèn)消息NPI_Ack ;發(fā)送該內(nèi)容名稱前綴信息的路由器收到其他路由器返回的前綴信息確認(rèn)消息NPI_Ack,確認(rèn)本地內(nèi)容宣告完畢,結(jié)束數(shù)據(jù)更新過程。優(yōu)選地,上述內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法中,在所述各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱前綴和下一跳路由器的內(nèi)容路由表過程中或者在所述路由器數(shù)據(jù)更新過程中,路由器根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表并向該內(nèi)容名稱前綴信息的發(fā)送方路由器返回前綴信息確認(rèn)消息NPI_Ack,具體包括:收到其他路由器發(fā)來的內(nèi)容名稱前綴信息的路由器根據(jù)該內(nèi)容名稱前綴信息中記錄的內(nèi)容名稱前綴信息序列號(hào)判斷收到的內(nèi)容名稱前綴信息是否為最新信息,若否,則直接結(jié)束此流程,若是,則當(dāng)前收到內(nèi)容名稱前綴信息的路由器中的內(nèi)容名稱表路由模塊根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表,并向向其所屬的路由器發(fā)送內(nèi)容名稱前綴信息的路由器發(fā)送前綴信息確認(rèn)消息。優(yōu)選地,上述內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法中,所述當(dāng)前路由器根據(jù)其鄰居路由器發(fā)來的內(nèi)容名稱前綴描述信息更新本地存儲(chǔ)的內(nèi)容路由表或者所述當(dāng)前收到內(nèi)容名稱前綴信息的路由器中的內(nèi)容名稱表路由模塊根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表,包括:S41:路由器收到其他路由器發(fā)來的最新的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息時(shí),判斷本地內(nèi)容 存儲(chǔ)器中是否有與當(dāng)前收到的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息中記錄的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是則結(jié)束該路由器的內(nèi)容路由表更新過程;否則執(zhí)行S42 ;S42:判斷本地存儲(chǔ)的內(nèi)容路由表中是否有內(nèi)容名稱前綴與當(dāng)前收到的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息中的內(nèi)容名稱前綴相同的記錄存在,若是,則根據(jù)收到的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息更新本地存儲(chǔ)的內(nèi)容路由表中具有相同內(nèi)容名稱前綴的記錄;否則,根據(jù)收到的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息在本地存儲(chǔ)的內(nèi)容路由表中增加關(guān)于該內(nèi)容名稱如綴的新記錄。優(yōu)選地,上述任一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法中,所述內(nèi)容名稱前綴依次包括該內(nèi)容名稱前綴對(duì)應(yīng)的數(shù)據(jù)的全網(wǎng)可路由的名字、內(nèi)容類型、內(nèi)容名稱、版本時(shí)間信息和分段息。本發(fā)明的上述技術(shù)方案的有益效果如下:本發(fā)明實(shí)施例提供了一種基于內(nèi)容互聯(lián)網(wǎng)、以內(nèi)容為核心所構(gòu)建的內(nèi)容路由表的內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,該方法將傳統(tǒng)互聯(lián)網(wǎng)面向連接的路由方式改變?yōu)閮?nèi)容互聯(lián)網(wǎng)以內(nèi)容為核心,面向內(nèi)容的路由轉(zhuǎn)發(fā)方案,采用該方法時(shí)路由以數(shù)據(jù)內(nèi)容為基礎(chǔ),以內(nèi)容名稱為核心進(jìn)行數(shù)據(jù)查找與搜索,可從網(wǎng)絡(luò)中擁有其內(nèi)容的其他節(jié)點(diǎn)獲取數(shù)據(jù)而不必非從源地址獲得數(shù)據(jù)內(nèi)容,因此能夠降低內(nèi)容互聯(lián)網(wǎng)中內(nèi)容請(qǐng)求包轉(zhuǎn)發(fā)過程中的盲目性與不確定性,使內(nèi)容請(qǐng)求包的轉(zhuǎn)發(fā)具有目的性與指向性,從而降低用戶獲取目標(biāo)內(nèi)容的延遲,彌補(bǔ)目前內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)的不足。采用該方法能夠提高數(shù)據(jù)的命中率和網(wǎng)絡(luò)轉(zhuǎn)發(fā)效率,減少網(wǎng)間冗余開銷,降低數(shù)據(jù)回傳延遲,降低數(shù)據(jù)查找延遲,最終提升網(wǎng)絡(luò)用戶體驗(yàn)。
圖1為本發(fā)明實(shí)施例提供的一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法流程圖;圖2為圖1所示方法執(zhí)行之前內(nèi)容互聯(lián)網(wǎng)中各路由器的初始化過程;圖3為圖2所示流程之后對(duì)網(wǎng)絡(luò)中的路由器數(shù)據(jù)的更新方法流程圖;圖4為S28和S38中路由器根據(jù)其他路由器發(fā)來的內(nèi)容名稱前綴描述信息或內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表的方法流程圖。
具體實(shí)施方式
為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。本發(fā)明提供一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,在該方法執(zhí)行之前,需要進(jìn)行系統(tǒng)準(zhǔn)備,即:預(yù)先在內(nèi)容互聯(lián)網(wǎng)的每個(gè)路由器中設(shè)置內(nèi)容名稱表路由模塊(Name TableRouter,NTR),并預(yù)先將內(nèi)容互聯(lián)網(wǎng)分為以內(nèi)容為中心的轉(zhuǎn)發(fā)平面(CND)和以內(nèi)容名稱索引為核心的路由平面。各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱前綴和下一跳路由器ID的內(nèi)容路由表。將內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)平面和以路由平面的結(jié)構(gòu)組成與運(yùn)行情況分模塊進(jìn)行描述:內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)平面具有內(nèi)容存儲(chǔ)、內(nèi)容更新、數(shù)據(jù)轉(zhuǎn)發(fā)、數(shù)據(jù)檢驗(yàn)四個(gè)主要功能,轉(zhuǎn)發(fā)平面分為內(nèi)容存儲(chǔ)器(CS)、待定請(qǐng)求表(PRT)和前向轉(zhuǎn)發(fā)表(FIB)三個(gè)部分。其中內(nèi)容存儲(chǔ)器在通告階段與維護(hù)更新階段具有不同狀態(tài),在通告階段內(nèi)容存儲(chǔ)器進(jìn)入數(shù)據(jù)廣播狀態(tài),該狀態(tài)下,內(nèi)容存儲(chǔ)器與NTR進(jìn)行交互,向網(wǎng)絡(luò)中其他節(jié)點(diǎn)廣播其存儲(chǔ)內(nèi)容名稱,并暫停存儲(chǔ)與更新功能,在維護(hù)更新階段,內(nèi)容存儲(chǔ)器開啟存儲(chǔ)與更新狀態(tài)。內(nèi)容互聯(lián)網(wǎng)路由平面具有生成內(nèi)容名稱前綴(Name Prefix Information,NPlMIf息、維護(hù)更新內(nèi)容路由表、路由選擇和數(shù)據(jù)檢驗(yàn)四大功能。路由平面中的NTR模塊是構(gòu)建內(nèi)容拓?fù)渚W(wǎng)絡(luò)的核心,為內(nèi)容請(qǐng)求包的轉(zhuǎn)發(fā)提供路由決策。NTR模塊用于產(chǎn)生、發(fā)送、接收與檢測(cè)內(nèi)容名稱前綴信息并對(duì)內(nèi)容路由表進(jìn)行維護(hù)更新,通過路由內(nèi)部消息與CND進(jìn)行交互,時(shí)時(shí)更新內(nèi)容路由表,并詢問路由器內(nèi)最新存儲(chǔ)數(shù)據(jù),生成內(nèi)容名稱前綴信息用于告知網(wǎng)絡(luò)其他節(jié)點(diǎn),維護(hù)相應(yīng)內(nèi)容路由表。圖1所示為本發(fā)明實(shí)施例提供的一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法流程圖,該方法包括:S1:當(dāng)任一路由器收到內(nèi)容請(qǐng)求時(shí),查詢本地緩存中是否存在與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是,則執(zhí)行S2,否則執(zhí)行S3 ;S2:該路由器將本地緩存中與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)原路發(fā)給所述當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求方;
S3:該路由器在本地預(yù)先存儲(chǔ)的內(nèi)容路由表中查找與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄,并將當(dāng)前內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)到與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄中所記錄的下一跳路由器上。圖1所示流程中,S1-S2具體包括:該路由器查詢本地內(nèi)容存儲(chǔ)器CS中是否有與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是則該路由器直接將本地內(nèi)容存儲(chǔ)器中與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)發(fā)送到收到當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求端口并丟棄當(dāng)前內(nèi)容請(qǐng)求包,否則,查詢本地待定請(qǐng)求表PRT中是否有與當(dāng)前內(nèi)容請(qǐng)求相同的請(qǐng)求記錄,若是則將當(dāng)前內(nèi)容請(qǐng)求加入所述本地待定請(qǐng)求表并丟棄當(dāng)前內(nèi)容請(qǐng)求包,待與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)回傳時(shí)將其發(fā)送到收到當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求端口。步驟S3具體包括:該路由器查詢本地內(nèi)容路由表中是否包含與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄,若是,則前向轉(zhuǎn)發(fā)表FIB根據(jù)對(duì)內(nèi)容路由表檢索計(jì)算得出的路由路徑將當(dāng)前內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)到與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄中所記錄的下一跳路由器上,并將發(fā)送當(dāng)前內(nèi)容請(qǐng)求的轉(zhuǎn)發(fā)端口從本地前向轉(zhuǎn)發(fā)表的端口列表中刪除;否則,判斷該路由器剩下的端口是否空,若是則向該路由器所有剩下的端口轉(zhuǎn)發(fā)當(dāng)前內(nèi)容請(qǐng)求,并在本地前向轉(zhuǎn)發(fā)表FIB中形成新的記錄有所述當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴和本地轉(zhuǎn)發(fā)端口的記錄。圖2所示為圖1所示方法執(zhí)行之前內(nèi)容互聯(lián)網(wǎng)中各路由器的初始化過程,即各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱前綴和下一跳路由器的內(nèi)容路由表的方法流程圖,包括以下步驟:S21:初始化定義Hello包、內(nèi)容名稱前綴NPI信息、內(nèi)容路由表、內(nèi)容路由表請(qǐng)求(Name Prefix Table Request,NPTR)消息、內(nèi)容名稱前綴描述(Name Prefix Description,NPD)信息;此步驟中為路由器配置信息交互所需的字段和相應(yīng)字段所實(shí)現(xiàn)的功能,在路由器的存儲(chǔ)器中為內(nèi)容路由表項(xiàng)、路由參數(shù)和其他一些數(shù)據(jù)分配相應(yīng)的存儲(chǔ)空間。
S22:當(dāng)前路由器A周期性向其周圍路由器廣播存活時(shí)間為一跳的Hello包。圖中為方便表示,僅畫出了收到當(dāng)前路由器A廣播的Hello包的一個(gè)路由器B。S23:收到所述當(dāng)前路由器廣播的Hello包的路由器B向所述當(dāng)前路由器周期性發(fā)送存活時(shí)間為一跳的Hello包,并確認(rèn)所述當(dāng)前路由器A為自己的鄰居。S24:所述當(dāng)前路由器A收到鄰居路由器B發(fā)來的Hello包時(shí),確認(rèn)該鄰居路由器B為自己的鄰居,隨后以泛洪模式向當(dāng)前網(wǎng)絡(luò)發(fā)送包括本地存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴的內(nèi)容名稱如綴 目息;其中,每條NPI包含序列號(hào),以避免在網(wǎng)絡(luò)內(nèi)發(fā)生重復(fù)。S25:鄰居路由器B根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表,并向當(dāng)前路由器A發(fā)送前綴信息確認(rèn)消息NPI_Ack ;S26:當(dāng)前路由器A收到其鄰居路由器B發(fā)來的前綴信息確認(rèn)消息NPI_Ack,確認(rèn)本地內(nèi)容宣告完畢并向該鄰居路由器B發(fā)送內(nèi)容路由表請(qǐng)求消息;S27:鄰居路由器B收到當(dāng)前路由器A發(fā)來的內(nèi)容路由表請(qǐng)求消息時(shí),向當(dāng)前路由器A回復(fù)用于描述自身所存儲(chǔ)的內(nèi)容路由表的內(nèi)容名稱前綴描述信息;S28:當(dāng)前路由器A根據(jù)其鄰居路由器B發(fā)來的內(nèi)容名稱前綴描述信息更新本地存儲(chǔ)的內(nèi)容路由表,并向其鄰居路由器B返回確認(rèn)信息,此時(shí)路由器器A和鄰居路由器器B完成鄰居交互。顯然,在網(wǎng)絡(luò)中的路由器初始化完成后,該網(wǎng)絡(luò)進(jìn)入正式運(yùn)行階段,即使用圖1所示的路由轉(zhuǎn)發(fā)方法對(duì)內(nèi)容請(qǐng)求在路由器間進(jìn)行轉(zhuǎn)發(fā),后期只需對(duì)該網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)更新維護(hù)。其中,當(dāng)某個(gè)時(shí)刻該網(wǎng)絡(luò)中有新節(jié)點(diǎn)路由器產(chǎn)生時(shí),采用圖2所示的方法進(jìn)行路由器初始化,即:該節(jié)點(diǎn)路由器先進(jìn)入通告階段,向網(wǎng)絡(luò)中廣播Hello信息,信息的存活時(shí)間為一跳,用于發(fā)現(xiàn)自己的鄰居,與鄰居節(jié)點(diǎn)進(jìn)行一次握手后,確認(rèn)為鄰居關(guān)系;隨后該節(jié)點(diǎn)收到鄰居節(jié)點(diǎn)的確認(rèn)信息并進(jìn)行驗(yàn)證后,與鄰居節(jié)點(diǎn)建立鄰居關(guān)系并以泛洪模式向全網(wǎng)發(fā)送NP I,告知網(wǎng)絡(luò)中其他節(jié)點(diǎn),本節(jié)點(diǎn)內(nèi)的數(shù)據(jù)的內(nèi)容名稱;隨后向鄰居節(jié)點(diǎn)請(qǐng)求內(nèi)容路由表,用于更新自身節(jié)點(diǎn)內(nèi)容路由表,完成鄰居交互。圖2所示流程中,S21具體包括對(duì)以下5種數(shù)據(jù)包的初始化定義:1、定義 Hello 包:當(dāng)節(jié)點(diǎn)在網(wǎng)絡(luò)中啟動(dòng),需要廣播Hello包用于探測(cè)網(wǎng)絡(luò)中鄰居節(jié)點(diǎn),建立鄰居關(guān)系,用于構(gòu)建內(nèi)容網(wǎng)絡(luò)拓?fù)洹6xHello包包括Hello包的發(fā)送周期與存活時(shí)間、生成該Hello包的路由器ID、生成該Hello包的路由器與鄰居路由器相互連接的端口號(hào)。Hello包具體內(nèi)容如下表I中的第2-3行所示:表I
權(quán)利要求
1.一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,其特征在于,在該方法執(zhí)行之前,在每個(gè)路由器中設(shè)置內(nèi)容名稱表路由模塊,各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱前綴和下一跳路由器ID的內(nèi)容路由表; 該方法包括: 當(dāng)任一路由器收到內(nèi)容請(qǐng)求時(shí),查詢本地緩存中是否存在與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是,則該路由器將本地緩存中與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)原路發(fā)給所述當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求方,否則,該路由器在本地預(yù)先存儲(chǔ)的內(nèi)容路由表中查找與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄,并將當(dāng)前內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)到與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄中所記錄的下一跳路由器上。
2.根據(jù)權(quán)利要求1所述的一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,其特征在于,所述查詢本地緩存中是否存在與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是,則該路由器將本地緩存中與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)原路發(fā)給所述當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求方,包括:該路由器查詢本地內(nèi)容存儲(chǔ)器中是否有與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是則該路由器直接將本地內(nèi)容存儲(chǔ)器中與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)發(fā)送到收到當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求端口并丟棄當(dāng)前內(nèi)容請(qǐng)求包,否則,查詢本地待定請(qǐng)求表中是否有與當(dāng)前內(nèi)容請(qǐng)求相同的請(qǐng)求記錄,若是則將當(dāng)前內(nèi)容請(qǐng)求加入所述本地待定請(qǐng)求表并丟棄當(dāng)前內(nèi)容請(qǐng)求包,待與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)回傳時(shí)將其發(fā)送到收到當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求端口; 所述該路由器在本地預(yù)先存儲(chǔ)的內(nèi)容路由表中查找與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄,并將當(dāng)前內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)到與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄中所記錄的下一跳路由器上,包括:查詢本地內(nèi)容路由表中是否包含與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄,若是,則前向轉(zhuǎn)發(fā)表根據(jù)對(duì)內(nèi)容路由表檢索計(jì)算得出的路由路徑將當(dāng)前內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)到與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄中所記錄的下一跳路由器上,并將發(fā)送當(dāng)前內(nèi)容請(qǐng)求的轉(zhuǎn)發(fā)端口從本地前向轉(zhuǎn)發(fā)表的端口列表中刪除;否則,判斷該路由器剩下的端口是否空,若是則向該路由器所有剩下的端口轉(zhuǎn)發(fā)當(dāng)前內(nèi)容請(qǐng)求,并在本地前向轉(zhuǎn)發(fā)表中形成新的記錄有所述當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴和本地轉(zhuǎn)發(fā)端口的記錄。
3.根據(jù)權(quán)利要求2所述的一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,其特征在于,所述各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱如綴和下一跳路由器ID的內(nèi)容路由表,包括: 初始化定義Hello包、內(nèi)容名稱前綴信息、內(nèi)容路由表、內(nèi)容路由表請(qǐng)求消息、內(nèi)容名稱前綴描述信息; 當(dāng)前路由器周期性向其周圍路由器廣播存活時(shí)間為一跳的Hello包; 收到所述當(dāng)前路由器廣播的Hello包的路由器向所述當(dāng)前路由器周期性發(fā)送存活時(shí)間為一跳的Hello包,并確認(rèn)所述當(dāng)前路由器為自己的鄰居; 所述當(dāng)前路由 器收到鄰居路由器發(fā)來的Hello包時(shí),確認(rèn)該鄰居路由器為自己的鄰居,隨后以泛洪模式向當(dāng)前網(wǎng)絡(luò)發(fā)送包括本地存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴的內(nèi)容名稱前綴信息;鄰居路由器根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表,并向所述當(dāng)前路由器發(fā)送前綴信息確認(rèn)消息NPI_Ack ; 所述當(dāng)前路由器收到其鄰居路由器發(fā)來的前綴信息確認(rèn)消息NPI_Ack,確認(rèn)本地內(nèi)容宣告完畢并向該鄰居路由器發(fā)送內(nèi)容路由表請(qǐng)求消息; 鄰居路由器收到所述當(dāng)前路由器發(fā)來的內(nèi)容路由表請(qǐng)求消息時(shí),向所述當(dāng)前路由器回復(fù)用于描述自身所存儲(chǔ)的內(nèi)容路由表的內(nèi)容名稱前綴描述信息; 所述當(dāng)前路由器根據(jù)其鄰居路由器發(fā)來的內(nèi)容名稱前綴描述信息更新本地存儲(chǔ)的內(nèi)容路由表,并向其鄰居路由器返回確認(rèn)信息。
4.根據(jù)權(quán)利要求3所述的一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,其特征在于,所述初始化定義Hello包、內(nèi)容名稱前綴信息、內(nèi)容路由表、內(nèi)容路由表請(qǐng)求消息、內(nèi)容名稱前綴描述信息,包括: 定義所述He I 1包包括He I 1包的發(fā)送周期與存活時(shí)間、生成該He I 1包的路由器ID、生成該Hello包的路由器與鄰居路由器相互連接的端口號(hào); 定義每條所述內(nèi)容名稱前綴信息只攜帶唯一的內(nèi)容名稱前綴,內(nèi)容名稱前綴信息包括:此條內(nèi)容名稱前綴信息的存活時(shí)間、此條內(nèi)容名稱前綴信息中可選擇的參數(shù)字段、此條內(nèi)容名稱前綴信息所歷經(jīng)的跳數(shù)、產(chǎn)生該內(nèi)容名稱前綴信息的路由器ID、此條內(nèi)容名稱前綴信息所經(jīng)歷的上一 跳的路由器ID、該內(nèi)容名稱前綴信息所記錄的內(nèi)容名稱前綴對(duì)應(yīng)的數(shù)據(jù)所在的路由器ID、此條內(nèi)容名稱前綴信息當(dāng)前到達(dá)的路由器的端口號(hào)、用于檢測(cè)該內(nèi)容名稱前綴信息是否為復(fù)制品或重傳數(shù)據(jù)的內(nèi)容名稱前綴信息序列號(hào)、此條內(nèi)容名稱前綴信息的頭部除去其存活時(shí)間部分的校驗(yàn)和、此條內(nèi)容名稱前綴信息頭部的總長度和內(nèi)容名稱iu綴; 定義所述內(nèi)容路由表中的每條記錄包括:內(nèi)容名稱前綴,當(dāng)前內(nèi)容名稱前綴對(duì)應(yīng)的數(shù)據(jù)的存儲(chǔ)路由器ID,下一跳路由器ID,下一跳路由器的端口號(hào)和當(dāng)前內(nèi)容名稱前綴在當(dāng)前內(nèi)容路由表中的存活時(shí)間; 定義內(nèi)容路由表請(qǐng)求消息包括:發(fā)起該內(nèi)容路由表請(qǐng)求消息的路由器ID、接收該內(nèi)容路由表請(qǐng)求消息的路由器ID、路由器狀態(tài)和該內(nèi)容路由表請(qǐng)求消息序列號(hào); 定義內(nèi)容名稱前綴描述信息包括:該內(nèi)容名稱前綴描述信息對(duì)應(yīng)的內(nèi)容路由表請(qǐng)求消息序列號(hào)、可選擇參數(shù)字段、發(fā)起該內(nèi)容名稱前綴描述信息的路由器ID、接收該內(nèi)容名稱前綴描述信息的路由器ID、該內(nèi)容名稱前綴描述信息的校驗(yàn)和、該內(nèi)容名稱前綴描述信息的總長度、發(fā)起該內(nèi)容名稱前綴描述信息的路由器所存儲(chǔ)的內(nèi)容路由表的具體內(nèi)容。
5.根據(jù)權(quán)利要求4所述的一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,其特征在于,所述各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱如綴和下一跳路由器ID的內(nèi)容路由表之后,還包括路由器數(shù)據(jù)更新過程, 所述路由器數(shù)據(jù)更新過程包括步驟: 當(dāng)有數(shù)據(jù)包經(jīng)過任一路由器時(shí),該路由器判斷當(dāng)前經(jīng)過的數(shù)據(jù)包內(nèi)的數(shù)據(jù)是否為新數(shù)據(jù),若否,則直接結(jié)束路由器數(shù)據(jù)更新過程,若是,則該路由器采用機(jī)會(huì)存儲(chǔ)方式按照設(shè)定概率將經(jīng)過的數(shù)據(jù)包存儲(chǔ)于本地的內(nèi)容存儲(chǔ)器中,隨后本地的內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)平面生成內(nèi)容存儲(chǔ)器更新消息并將所述內(nèi)容存儲(chǔ)器更新消息發(fā)送給本地的內(nèi)容名稱表路由模塊;該路由器中的內(nèi)容名稱表路由模塊在正常運(yùn)行狀態(tài)下收到所述內(nèi)容存儲(chǔ)器更新消息時(shí),向本地的內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)平面發(fā)送用于詢問本地的內(nèi)容存儲(chǔ)器存儲(chǔ)的更新內(nèi)容的內(nèi)容存儲(chǔ)器問詢消息; 該路由器中的內(nèi)容互聯(lián)網(wǎng)轉(zhuǎn)發(fā)平面讀取收到的內(nèi)容存儲(chǔ)器問詢消息,生成包含本地內(nèi)容存儲(chǔ)器新存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴的內(nèi)容存儲(chǔ)器答復(fù)消息,并將所述內(nèi)容存儲(chǔ)器答復(fù)消息發(fā)送給本地的內(nèi)容名稱表路由模塊; 該路由器中的內(nèi)容名稱表路由模塊根據(jù)收到的內(nèi)容存儲(chǔ)器答復(fù)消息,生成包含該路由器中的內(nèi)容存儲(chǔ)器新存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴的內(nèi)容名稱前綴信息并將其以泛洪方式發(fā)送給當(dāng)前網(wǎng)絡(luò)中的其他路由器; 收到內(nèi)容名稱前綴信息的路由器根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表并向該內(nèi)容名稱前綴信息的發(fā)送方路由器返回前綴信息確認(rèn)消息NPI_Ack ; 發(fā)送該內(nèi)容名稱前綴信息的路由器收到其他路由器返回的前綴信息確認(rèn)消息NPI_Ack,確認(rèn)本地內(nèi)容宣告完畢,結(jié)束數(shù)據(jù)更新過程。
6.根據(jù)權(quán)利要求5所述的一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,其特征在于,在所述各路由器中的內(nèi)容名稱表路由模塊預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱 前綴和下一跳路由器ID的內(nèi)容路由表過程中,或者在所述路由器數(shù)據(jù)更新過程中,路由器根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表并向該內(nèi)容名稱前綴信息的發(fā)送方路由器返回前綴信息確認(rèn)消息NPI_Ack,具體包括: 收到其他路由器發(fā)來的內(nèi)容名稱前綴信息的路由器根據(jù)該內(nèi)容名稱前綴信息中記錄的內(nèi)容名稱前綴信息序列號(hào)判斷收到的內(nèi)容名稱前綴信息是否為最新信息,若否,則直接結(jié)束此流程,若是,則當(dāng)前收到內(nèi)容名稱前綴信息的路由器中的內(nèi)容名稱表路由模塊根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表,并向其所屬的路由器發(fā)送內(nèi)容名稱前綴信息的路由器發(fā)送前綴信息確認(rèn)消息。
7.根據(jù)權(quán)利要求6所述的一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,其特征在于,所述當(dāng)前路由器根據(jù)其鄰居路由器發(fā)來的內(nèi)容名稱前綴描述信息更新本地存儲(chǔ)的內(nèi)容路由表或者所述當(dāng)前收到內(nèi)容名稱前綴信息的路由器中的內(nèi)容名稱表路由模塊根據(jù)收到的內(nèi)容名稱前綴信息更新本地存儲(chǔ)的內(nèi)容路由表,包括: 541:路由器中收到其他路由器發(fā)來的最新的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息時(shí),判斷本地內(nèi)容存儲(chǔ)器中是否有與當(dāng)前收到的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息中記錄的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是則結(jié)束該路由器的內(nèi)容路由表更新過程;否則執(zhí)行S42 ; 542:判斷本地存儲(chǔ)的內(nèi)容路由表中是否有內(nèi)容名稱前綴與當(dāng)前收到的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息中的內(nèi)容名稱前綴相同的記錄存在,若是,則根據(jù)收到的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息更新本地存儲(chǔ)的內(nèi)容路由表中具有相同內(nèi)容名稱前綴的記錄;否則,根據(jù)收到的內(nèi)容名稱前綴信息/內(nèi)容名稱前綴描述信息在本地存儲(chǔ)的內(nèi)容路由表中增加關(guān)于該內(nèi)容名稱如綴的新記錄。
8.根據(jù)權(quán)利要求1至7任一項(xiàng)所述的一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,其特征在于,所述內(nèi)容名稱前綴依次包括該內(nèi)容名稱前綴對(duì)應(yīng)的數(shù)據(jù)的全網(wǎng)可路由的名字、內(nèi)容類型、內(nèi)容名稱、版本時(shí)間信息和分段信息。
全文摘要
本發(fā)明提供一種內(nèi)容互聯(lián)網(wǎng)的路由轉(zhuǎn)發(fā)方法,該方法實(shí)施前,預(yù)先根據(jù)當(dāng)前網(wǎng)絡(luò)中其他路由器存儲(chǔ)的數(shù)據(jù)的內(nèi)容名稱前綴構(gòu)建并存儲(chǔ)記錄有內(nèi)容名稱前綴和下一跳路由器的內(nèi)容路由表;該方法包括當(dāng)任一路由器收到內(nèi)容請(qǐng)求時(shí),查詢本地緩存中是否存在與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù),若是則該路由器將本地緩存中與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的數(shù)據(jù)原路發(fā)給所述當(dāng)前內(nèi)容請(qǐng)求的請(qǐng)求方,否則在本地預(yù)先存儲(chǔ)的內(nèi)容路由表中查找與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄,并將當(dāng)前內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)到與當(dāng)前內(nèi)容請(qǐng)求所請(qǐng)求的內(nèi)容名稱前綴相匹配的記錄中所記錄的下一跳路由器上。該方法能夠提高數(shù)據(jù)的命中率和網(wǎng)絡(luò)轉(zhuǎn)發(fā)效率。
文檔編號(hào)H04L12/741GK103236971SQ20131017525
公開日2013年8月7日 申請(qǐng)日期2013年5月13日 優(yōu)先權(quán)日2013年5月13日
發(fā)明者呂博良, 陽小龍, 張敏, 隆克平 申請(qǐng)人:北京科技大學(xué)