稱(chēng)、接收內(nèi)容數(shù)據(jù)包的端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間;當(dāng)查詢(xún)到所述NFT表中存在第二表項(xiàng)時(shí),所述節(jié)點(diǎn)按照所述第二表項(xiàng)中的發(fā)送內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第二表項(xiàng)中記錄的名稱(chēng)為所述第一命名,所述第二表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口不為空,且所述發(fā)送內(nèi)容數(shù)據(jù)包的端口不是所述第一端口。由此,本發(fā)明實(shí)施例給出了一種優(yōu)先向遠(yuǎn)離服務(wù)器的方向路由請(qǐng)求的技術(shù)方案,其可增加中途命中內(nèi)容的概率,并縮短響應(yīng)請(qǐng)求的時(shí)間,并且,由于本發(fā)明實(shí)施例優(yōu)先向遠(yuǎn)離服務(wù)器的方向路由請(qǐng)求,其可降低作為內(nèi)容源的服務(wù)器的負(fù)擔(dān)。
【附圖說(shuō)明】
[0079]圖1為本發(fā)明的基于緩存的路由方法的第一實(shí)施例的流程示意圖;
[0080]圖2為本發(fā)明的基于緩存的路由方法的第二實(shí)施例的流程示意圖;
[0081]圖3為本發(fā)明的基于緩存的路由方法的第三實(shí)施例的流程示意圖;
[0082]圖4為本發(fā)明的基于緩存的路由方法的第四實(shí)施例的流程示意圖;
[0083]圖5為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第一實(shí)施例的結(jié)構(gòu)組成示意圖;
[0084]圖6為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第二實(shí)施例的結(jié)構(gòu)組成示意圖;
[0085]圖7為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第三實(shí)施例的結(jié)構(gòu)組成示意圖;
[0086]圖8為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第四實(shí)施例的結(jié)構(gòu)組成示意圖;
[0087]圖9為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第五實(shí)施例的結(jié)構(gòu)組成示意圖;
[0088]圖10為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第六實(shí)施例的結(jié)構(gòu)組成示意圖;
[0089]圖11為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第七實(shí)施例的結(jié)構(gòu)組成示意圖;
[0090]圖12為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第八實(shí)施例的結(jié)構(gòu)組成示意圖。
具體實(shí)施例
[0091]圖1為本發(fā)明的基于緩存的路由方法的第一實(shí)施例的流程示意圖。如圖1所示,其可包括:
[0092]步驟SI 10,當(dāng)節(jié)點(diǎn)從第一端口收到第一命名的請(qǐng)求數(shù)據(jù)包時(shí),查詢(xún)所述節(jié)點(diǎn)的內(nèi)容存儲(chǔ)器CS。
[0093]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的節(jié)點(diǎn)為以?xún)?nèi)容為中心的網(wǎng)絡(luò)(CCN、NDD、PERSnT,Net Inf等)中的節(jié)點(diǎn),因此,本發(fā)明實(shí)施例的節(jié)點(diǎn)當(dāng)有內(nèi)容數(shù)據(jù)包經(jīng)過(guò)時(shí),會(huì)緩存經(jīng)過(guò)的內(nèi)容數(shù)據(jù)包,因此,在步驟S110,可通過(guò)發(fā)起請(qǐng)求數(shù)據(jù)包以請(qǐng)求內(nèi)容的方式來(lái)獲取節(jié)點(diǎn)緩存的內(nèi)容數(shù)據(jù)。
[0094]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的節(jié)點(diǎn)緩存內(nèi)容數(shù)據(jù)包的流程可包括:
[0095]a、當(dāng)節(jié)點(diǎn)的第三端口(可與步驟SllO中的第一端口為相同或不同的端口)收到第二命名(可與步驟SllO中的第一命名的數(shù)據(jù)包的名稱(chēng)相同或者不同)的內(nèi)容數(shù)據(jù)包時(shí),將該數(shù)據(jù)包存儲(chǔ)在當(dāng)前節(jié)點(diǎn),并將數(shù)據(jù)包的第二命名寫(xiě)入CS表中,并記錄下該第三端口的信息。
[0096]b、按照所述節(jié)點(diǎn)的PIT中記錄的接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)上述內(nèi)容數(shù)據(jù)包;其中,PIT中接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口可是一個(gè)或多個(gè),因此,節(jié)點(diǎn)需要向一個(gè)或多個(gè)端口轉(zhuǎn)發(fā)所述內(nèi)容數(shù)據(jù)包。
[0097]C、在所述PIT中接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口中選擇一個(gè)第二端口。
[0098]具體的選擇方法可以包括:隨機(jī)選擇,或者按照端口序號(hào)的升降序選擇,或者根據(jù)連接端口的鏈路的狀態(tài)進(jìn)行選擇(例如:選擇連接鏈路狀態(tài)好的端口),還可以根據(jù)其他方法進(jìn)行選擇。
[0099]d、查看所述節(jié)點(diǎn)的NFT表,如果NFT表中存在名稱(chēng)與所述第二命名對(duì)應(yīng)的表項(xiàng),則更新所述對(duì)應(yīng)的表項(xiàng)中接收內(nèi)容數(shù)據(jù)包的端口(表中記為:Upface)的內(nèi)容為所述第三端口和更新所述對(duì)應(yīng)的表項(xiàng)中發(fā)送內(nèi)容數(shù)據(jù)包的端口(表中記為:D0wnfaCe)的內(nèi)容為所述第二端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間(表中記為:Time)的內(nèi)容為所述內(nèi)容數(shù)據(jù)包到達(dá)第三端口的時(shí)間;如果NFT表中不存在名稱(chēng)與所述第二命名對(duì)應(yīng)的表項(xiàng),則在所述NFT表中生成第六表項(xiàng),所述第六表項(xiàng)的名稱(chēng)為所述第二命名,接收內(nèi)容數(shù)據(jù)包的端口 Upface為所述第二端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口 Downface為所述節(jié)點(diǎn)的PIT表中選中的第二端口,以及接收內(nèi)容數(shù)據(jù)包的時(shí)間Time為所述第二端口接收到所述內(nèi)容數(shù)據(jù)報(bào)的時(shí)間。
[0100]除此之外,在C之后,還可刪除節(jié)點(diǎn)的PIT表中關(guān)于第二命名的PIT表項(xiàng)。該刪除動(dòng)作可以發(fā)生在步驟d之前或之后,或與d同時(shí)執(zhí)行。
[0101]除此之外,在節(jié)點(diǎn)接收到內(nèi)容數(shù)據(jù)包的一段時(shí)間后,節(jié)點(diǎn)中的所述第二命名的內(nèi)容數(shù)據(jù)包可能會(huì)被刪除,同時(shí)CS表中對(duì)應(yīng)第二命名的條目也會(huì)被刪除。刪除原因不作限定,可能是超時(shí),可能是被替換,以及其他等等。也即,本發(fā)明實(shí)施例的節(jié)點(diǎn)對(duì)內(nèi)容的緩存是有一定的時(shí)間限制的。
[0102]因此,在一些可行的實(shí)施方式中,當(dāng)節(jié)點(diǎn)接收到的對(duì)應(yīng)于步驟SllO的請(qǐng)求數(shù)據(jù)包的內(nèi)容數(shù)據(jù)包已經(jīng)被刪除時(shí),在步驟Sl1則不能在節(jié)點(diǎn)的CS中查詢(xún)到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容?;蛘?,在另一些可行的實(shí)施方式中,步驟SllO中的節(jié)點(diǎn)之前并未接收過(guò)內(nèi)容數(shù)據(jù),則在步驟SllO同樣不能在節(jié)點(diǎn)的CS中查詢(xún)到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容。
[0103]步驟S111,當(dāng)未在所述節(jié)點(diǎn)的CS中查詢(xún)到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容時(shí),查詢(xún)所述節(jié)點(diǎn)的待定請(qǐng)求表PIT。
[0104]步驟S112,當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢(xún)到第一表項(xiàng)時(shí),查詢(xún)所述節(jié)點(diǎn)的下一端口表NFT表;所述第一表項(xiàng)中記錄的名稱(chēng)為所述第一命名,所述第一表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口包括所述第一端口 ;所述NFT表中記錄的屬性包括名稱(chēng)、接收內(nèi)容數(shù)據(jù)包的端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間。
[0105]具體實(shí)現(xiàn)中,在步驟S112,未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢(xún)到第一表項(xiàng)的情況可能有以下幾種:
[0106]第一,PIT表中不存在名稱(chēng)為第一命名的表項(xiàng);
[0107]第二,PIT表中不存在名稱(chēng)為第一命名的表項(xiàng),但是存在第五表項(xiàng),所述第五表項(xiàng)名稱(chēng)為第一命名,所述第五表項(xiàng)中接收請(qǐng)求數(shù)據(jù)包的端口中不包括所述第一端口。
[0108]因此,在一些可行的實(shí)施方式中,當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢(xún)到第一表項(xiàng)時(shí)還可在節(jié)點(diǎn)中生成所述第一表項(xiàng),對(duì)于上述的第一種情況,生成第一表項(xiàng)是一個(gè)全新建立第一表項(xiàng)的過(guò)程,對(duì)于上述的第二種情況,則只需要將所述第一端口增加到所述PIT表中名稱(chēng)為第一命名的表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口中即可。
[0109]步驟S113,當(dāng)查詢(xún)到所述NFT表中存在第二表項(xiàng)時(shí),所述節(jié)點(diǎn)按照所述第二表項(xiàng)中的發(fā)送內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第二表項(xiàng)中記錄的名稱(chēng)為所述第一命名,所述第二表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口不為空,且所述發(fā)送內(nèi)容數(shù)據(jù)包的端口不是所述第一端口。
[0110]具體實(shí)現(xiàn)中,在步驟S113可首先查詢(xún)所述NFT表中是否存在名稱(chēng)為第一命名的表項(xiàng),如果存在,則進(jìn)一步查詢(xún)所述名稱(chēng)為第一命名的表項(xiàng)的發(fā)送內(nèi)容數(shù)據(jù)包的端口Downface是否不為空,且不是所述第一端口,如果是,則認(rèn)為查詢(xún)到所述第二表項(xiàng)。并進(jìn)一步按照所述第二表項(xiàng)的發(fā)送內(nèi)容數(shù)據(jù)包的端口 Downface中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包。由于本發(fā)明實(shí)施例的NFT表中的Downface中記錄的端口記錄的是節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送內(nèi)容數(shù)據(jù)報(bào)的端口,因此與Downface相連的其他節(jié)點(diǎn)相對(duì)所述節(jié)點(diǎn)會(huì)更遠(yuǎn)離服務(wù)器中心,因此,本發(fā)明實(shí)施例給出了一種優(yōu)先向遠(yuǎn)離服務(wù)器的方向路由請(qǐng)求的技術(shù)方案,其可增加中途命中內(nèi)容的概率,并縮短響應(yīng)請(qǐng)求的時(shí)間,并且,由于本發(fā)明實(shí)施例優(yōu)先向遠(yuǎn)離服務(wù)器的方向路由請(qǐng)求,其可降低作為內(nèi)容源的服務(wù)器的負(fù)擔(dān)。
[0111]圖2為本發(fā)明的基于緩存的路由方法的第二實(shí)施例的流程示意圖。如圖2所示,其可包括:
[0112]步驟SI 10,當(dāng)節(jié)點(diǎn)從第一端口收到第一命名的請(qǐng)求數(shù)據(jù)包時(shí),查詢(xún)所述節(jié)點(diǎn)的內(nèi)容存儲(chǔ)器CS。
[0113]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的節(jié)點(diǎn)為以?xún)?nèi)容為中心的網(wǎng)絡(luò)(CCN、NDD、PERSnT,Net Inf等)中的節(jié)點(diǎn),因此,本發(fā)明實(shí)施例的節(jié)點(diǎn)當(dāng)有內(nèi)容數(shù)據(jù)包經(jīng)過(guò)時(shí),會(huì)緩存經(jīng)過(guò)的內(nèi)容數(shù)據(jù)包,因此,在步驟SllO本發(fā)明實(shí)施例的節(jié)點(diǎn)可通過(guò)發(fā)起請(qǐng)求數(shù)據(jù)包以請(qǐng)求內(nèi)容的方式來(lái)獲取內(nèi)容數(shù)據(jù)。
[0114]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的節(jié)點(diǎn)緩存內(nèi)容數(shù)據(jù)包的流程可包括:
[0115]a、當(dāng)節(jié)點(diǎn)的第三端口(可與步驟SllO中的第一端口為相同或不同的端口)收到第二命名(可與步驟SllO中的第一命名的數(shù)據(jù)包的名稱(chēng)相同或者不同)的內(nèi)容數(shù)據(jù)包時(shí),將該數(shù)據(jù)包存儲(chǔ)在當(dāng)前節(jié)點(diǎn),并將數(shù)據(jù)包的第二命名寫(xiě)入CS表中,并記錄下該第三端口的信息。
[0116]b、按照所述節(jié)點(diǎn)的PIT中記錄的接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)上述內(nèi)容數(shù)據(jù)包;其中,PIT中接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口可是一個(gè)或多個(gè),因此,節(jié)點(diǎn)需要向一個(gè)或多個(gè)端口轉(zhuǎn)發(fā)所述內(nèi)容數(shù)據(jù)包。
[0117]C、在所述PIT中接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口中選擇一個(gè)第二端口。
[0118]具體的選擇方法可以包括:隨機(jī)選擇,或者按照端口序號(hào)的升降序選擇,或者根據(jù)連接端口的鏈路的狀態(tài)進(jìn)行選擇(例如:選擇連接鏈路狀態(tài)好的端口),還可以根據(jù)其他方法進(jìn)行選擇。
[0119]d、查看所述節(jié)點(diǎn)的NFT表,如果NFT表中存在名稱(chēng)與所述第二命名對(duì)應(yīng)的表項(xiàng),則更新所述對(duì)應(yīng)的表項(xiàng)中接收內(nèi)容數(shù)據(jù)包的端口(表中記為:Upface)的內(nèi)容為所述第三端口和更新所述對(duì)應(yīng)的表項(xiàng)中發(fā)送內(nèi)容數(shù)據(jù)包的端口(表中記為:D0wnfaCe)的內(nèi)容為所述第二端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間(表中記為:Time)的內(nèi)容為所述內(nèi)容數(shù)據(jù)包到達(dá)第三端口的時(shí)間;如果NFT表中不存在名稱(chēng)與所述第二命名對(duì)應(yīng)的表項(xiàng),則在所述NFT表中生成第六表項(xiàng),所述第六表項(xiàng)的名稱(chēng)為所述第二命名,接收內(nèi)容數(shù)據(jù)包的端口 Upface為所述第二端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口 Downface為所述節(jié)點(diǎn)的PIT表中選中的第二端口,以及接收內(nèi)容數(shù)據(jù)包的時(shí)間Time為所述第二端口接收到所述內(nèi)容數(shù)據(jù)報(bào)的時(shí)間。
[0120]除此之外,在c之后,還可刪除節(jié)點(diǎn)的PIT表中關(guān)于第二命名的PIT表項(xiàng)。該刪除動(dòng)作可以發(fā)生在步驟d之前或之后,或與d同時(shí)執(zhí)行。
[0121]除此之外,在節(jié)點(diǎn)接收到內(nèi)容數(shù)據(jù)包的一段時(shí)間后,節(jié)點(diǎn)中的所述第二命名的內(nèi)容數(shù)據(jù)包可能會(huì)被刪除,同時(shí)CS表中對(duì)應(yīng)第二命名的條目也會(huì)被刪除。刪除原因不作限定,可能是超時(shí),可能是被替換,以及其他等等。也即,本發(fā)明實(shí)施例的節(jié)點(diǎn)對(duì)內(nèi)容的緩存是有一定的時(shí)間限制的。
[0122]因此,在一些可行的實(shí)施方式中,當(dāng)節(jié)點(diǎn)接收到的對(duì)應(yīng)于步驟SllO的請(qǐng)求數(shù)據(jù)包的內(nèi)容數(shù)據(jù)包已經(jīng)被刪除時(shí),在步驟SllO則不能在節(jié)點(diǎn)的CS中查詢(xún)到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容?;蛘撸诹硪恍┛尚械膶?shí)施方式中,步驟SllO中的節(jié)點(diǎn)之前并未接收過(guò)內(nèi)容數(shù)據(jù),則在步驟SllO同樣不能在節(jié)點(diǎn)的CS中查詢(xún)到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容。
[0123]步驟S111,當(dāng)未在所述節(jié)點(diǎn)的CS中查詢(xún)到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容時(shí),查詢(xún)所述節(jié)點(diǎn)的待定請(qǐng)求表PIT。
[0124]步驟S112,當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢(xún)到第一表項(xiàng)時(shí),查詢(xún)所述節(jié)點(diǎn)的下一端口表NFT表;所述第一表項(xiàng)中記錄的名稱(chēng)為所述第一命名,所述第一表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口包括所述第一端口 ;所述NFT表中記錄的屬性包括名稱(chēng)、接收內(nèi)容數(shù)據(jù)包的端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間。
[0125]具體實(shí)現(xiàn)中,在步驟S112,未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢(xún)到第一表項(xiàng)的情況可能有以下幾種:
[0126]第一、PIT表中不存在名稱(chēng)為第一命名的表項(xiàng);
[0127]第二、PIT表中不存在名稱(chēng)為第一命名的表項(xiàng),但是存在第五表項(xiàng),所述第五表項(xiàng)名稱(chēng)為第一命名,所述第五表項(xiàng)中接收請(qǐng)求數(shù)據(jù)包的端口中不包括所述第一端口。
[0128]因此,在一些可行的實(shí)施方式中,當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢(xún)到第一表項(xiàng)時(shí)還可在節(jié)點(diǎn)中生成所述第一表項(xiàng),對(duì)于上述的第一種情況,生成第一表項(xiàng)是一個(gè)全新建立第一表項(xiàng)的過(guò)程,對(duì)于上述的第二種情況,則只需要將所述第一端口增加到所述PIT表中名稱(chēng)為第一命名的表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口中即可。
[0129]步驟S113,當(dāng)查詢(xún)到所述NFT表中存在第二表項(xiàng)時(shí),所述節(jié)點(diǎn)按照所述第二表項(xiàng)中的發(fā)送內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第二表項(xiàng)中記錄的名稱(chēng)為所述第一命名,所述第二表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口不為空,且所述發(fā)送內(nèi)容數(shù)據(jù)包的端口不是所述第一端口。
[0130]步驟S123,當(dāng)查詢(xún)到所述NFT表中不存在所述第二表項(xiàng),但查詢(xún)到所述NFT表中存在第三表項(xiàng)時(shí),所述節(jié)點(diǎn)按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第三表項(xiàng)中記錄的名稱(chēng)為所述第一命名,所述第三表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口為空。
[0131]在一些可行的實(shí)施方式中,在步驟S123,當(dāng)所述節(jié)點(diǎn)按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,還包括:刪除所述NFT表中的所述第三表項(xiàng)。
[0132]步驟S124,當(dāng)查詢(xún)到所述NFT表中不存在所述第二表項(xiàng),但查詢(xún)到所述NFT表中存在第四表項(xiàng)時(shí),所述節(jié)點(diǎn)按照所述第四表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第四表項(xiàng)中記錄的名稱(chēng)為所述第一命名,所述第四表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口為所述第一端口。
[0133]在一些可行的實(shí)施方式中,在步驟S124,當(dāng)所述節(jié)點(diǎn)按照所述第四表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,還包括:當(dāng)所述節(jié)點(diǎn)的PIT表的第一表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口包括所述NFT表中的第四表項(xiàng)中接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口和發(fā)送內(nèi)容數(shù)據(jù)包的端口中記錄的端口,則在所述PIT表的第一表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口中刪除所述第四表項(xiàng)中接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口和發(fā)送內(nèi)容數(shù)據(jù)包的端口中記錄的端口 ;刪除所述NFT表中的所述第四表項(xiàng)。
[0134]步驟S125,當(dāng)查詢(xún)到所述NFT表中不存在名稱(chēng)為所述第一命名的表項(xiàng)時(shí),且所述節(jié)點(diǎn)的PIT表中名稱(chēng)為所述第一命名的表項(xiàng)是為新建表項(xiàng),查詢(xún)所述節(jié)點(diǎn)的FIB表項(xiàng);當(dāng)查詢(xún)到所述NFT表中不存在名稱(chēng)為所述第一命名的表項(xiàng)時(shí),但所述節(jié)點(diǎn)的PIT表中名稱(chēng)為所述第一命名的表項(xiàng)是并非為新建表項(xiàng),丟棄所述第一命名的請(qǐng)求數(shù)據(jù)包。
[0135]具體實(shí)現(xiàn)中,步驟S113、S123_S125可沒(méi)有先后順序之分。
[0136]圖3為本發(fā)明的基于緩存的路由方法的第三實(shí)施例的流程示意圖。如圖3所示,其可包括:
[0137]步驟S310,當(dāng)節(jié)點(diǎn)從第一端口收到第一命名的請(qǐng)求數(shù)據(jù)包時(shí),查詢(xún)所述節(jié)點(diǎn)的內(nèi)容存儲(chǔ)器CS。
[0138]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的節(jié)點(diǎn)為以?xún)?nèi)容為中心的網(wǎng)絡(luò)(CCN、NDD、PERSnT,Net Inf等)中的節(jié)點(diǎn),因此,本發(fā)明實(shí)施例的節(jié)點(diǎn)當(dāng)有內(nèi)容數(shù)據(jù)包經(jīng)過(guò)時(shí),會(huì)緩存經(jīng)過(guò)的內(nèi)容數(shù)據(jù)包,因此,在步驟S310本發(fā)明實(shí)施例的節(jié)點(diǎn)可通過(guò)發(fā)起請(qǐng)求數(shù)據(jù)包以請(qǐng)求內(nèi)容的方式來(lái)獲取內(nèi)容數(shù)據(jù)。
[0139]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的節(jié)點(diǎn)緩存內(nèi)容數(shù)據(jù)包的流程可包括:
[0140]a、當(dāng)節(jié)點(diǎn)的第三端口(可與步驟S310中的第一端口為相同或不同的端口)收到第二命名(可與步驟S310中的第一命名的數(shù)據(jù)包的名稱(chēng)相同或者不同)的內(nèi)容數(shù)據(jù)包時(shí),將該數(shù)據(jù)包存儲(chǔ)在當(dāng)前節(jié)點(diǎn),并將數(shù)據(jù)包的第二命名寫(xiě)入CS表中,并記錄下該第三端口的信息。
[0141]b、按照所述節(jié)點(diǎn)的PIT中記錄的接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)上述內(nèi)容數(shù)據(jù)包;其中,PIT中接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口可是一個(gè)或多個(gè),因此,節(jié)點(diǎn)需要向一個(gè)或多個(gè)端口轉(zhuǎn)發(fā)所述內(nèi)容數(shù)據(jù)包。
[0142]C、在所述PIT中接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口中選擇一個(gè)第二端口。
[0143]具體的選擇方法可以包括:隨機(jī)選擇,或者按照端口序號(hào)的升降序選擇,或者根據(jù)連接端口的鏈路的狀態(tài)進(jìn)行選擇(例如:選擇連接鏈路狀態(tài)好的端口),還可以根據(jù)其他方法進(jìn)行選擇。
[0144]d、查看所述節(jié)點(diǎn)的NFT表,如果NFT表中存在名稱(chēng)與所述第二命名對(duì)應(yīng)的表項(xiàng),則更新所述對(duì)應(yīng)的表項(xiàng)中接收內(nèi)容數(shù)據(jù)包的端口(表中記為:Upface)的內(nèi)容為所述第三端口和更新所述對(duì)應(yīng)的表項(xiàng)中發(fā)送內(nèi)容數(shù)據(jù)包的端口(表中記為:D0wnfaCe)的內(nèi)容為所述第二端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間(表中記為:Time)的內(nèi)容為所述內(nèi)容數(shù)據(jù)包到達(dá)第三端口的時(shí)間;如果NFT表中不存在名稱(chēng)與所述第二命名對(duì)應(yīng)的表項(xiàng),則在所述NFT表中生成第六表項(xiàng),所述第六表項(xiàng)的名稱(chēng)為所述第二命名,接收內(nèi)容數(shù)據(jù)包的端口 Upface為所述第二端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口 Downface為所述節(jié)點(diǎn)的PIT表中選中的第二端口,以及接收內(nèi)容數(shù)據(jù)包的時(shí)間Time為所述第二端口接收到所述內(nèi)容數(shù)據(jù)報(bào)的時(shí)間。
[0145]除此之外,在c之后,還可刪除節(jié)點(diǎn)的PIT表中關(guān)于第二命名的PIT表項(xiàng)。該刪除動(dòng)作可以發(fā)生在步驟d之前或之后,或與d同時(shí)執(zhí)行。
[0146]除此之外,在節(jié)點(diǎn)接收到內(nèi)容數(shù)據(jù)包的一段時(shí)間后,節(jié)點(diǎn)中的所述第二命名的內(nèi)容數(shù)據(jù)包可能會(huì)被刪除,同時(shí)CS表中對(duì)應(yīng)第二命名的條目也會(huì)被刪除。刪除原因不作限定,可能是超時(shí),可能是被替換,以及其他等等。也即,本發(fā)明實(shí)施例的節(jié)點(diǎn)對(duì)內(nèi)容的緩存是有一定的時(shí)間限制的。
[0147]因此,在一些可行的實(shí)施方式中,當(dāng)節(jié)點(diǎn)接收到的對(duì)應(yīng)于步驟S310的請(qǐng)求數(shù)據(jù)包的內(nèi)容數(shù)據(jù)包已經(jīng)被刪除時(shí),在步驟S310則不能在節(jié)點(diǎn)的CS中查詢(xún)到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容。或者,在另一些可行的實(shí)施方式中,步驟S310中的節(jié)點(diǎn)之前并未接收過(guò)內(nèi)容數(shù)據(jù),則在步驟S310同樣不能在節(jié)點(diǎn)的CS中查詢(xún)到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容。
[0148]步驟S311,當(dāng)未在所述節(jié)點(diǎn)的CS中查詢(xún)到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容時(shí),查詢(xún)所述節(jié)點(diǎn)的待定請(qǐng)求表pit。
[0149]步驟S312,當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢(xún)到第一表項(xiàng)時(shí),判斷是否在所述PIT表中查詢(xún)到第五表項(xiàng),第五表項(xiàng)存在,判斷所述第一命名的請(qǐng)求數(shù)據(jù)包是否按照所述節(jié)點(diǎn)的上一跳節(jié)點(diǎn)的NFT表中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)來(lái)的,如果判斷為是,執(zhí)行步驟S313 ;如果判斷為否,在所述節(jié)點(diǎn)的PIT中生成所述第一表項(xiàng),丟棄所述第一命名的請(qǐng)求數(shù)據(jù)包。當(dāng)?shù)谖灞眄?xiàng)不存在,(即PIT表中不存在名稱(chēng)為第一命名的表項(xiàng)),執(zhí)行步驟S313。步驟S313,查詢(xún)所述節(jié)點(diǎn)的下一端口表NFT表;所述第一表項(xiàng)中記錄的名稱(chēng)為所述第一命名,所述第一表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口包括所述第一端口 ;所述NFT表中記錄的屬性包括名稱(chēng)、接收內(nèi)容數(shù)據(jù)包的端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間。
[0150]具體實(shí)現(xiàn)中,在步驟S312,未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢(xún)到第一表項(xiàng)的情況可能有以下幾種:
[0151]第一,PIT表中不存在名稱(chēng)為第一命名的表項(xiàng);
[0152]第二,PIT表中不存在名稱(chēng)為第一命名的表項(xiàng),但是存在第五表項(xiàng),所述第五表項(xiàng)名稱(chēng)為第一命名,所述第五表項(xiàng)中接收請(qǐng)求數(shù)據(jù)包的端口中不包括所述第一端口。
[0153]因此,在一些可行的實(shí)施方式中,當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢(xún)到第一表項(xiàng)時(shí)還可在節(jié)點(diǎn)中生成所述第一表項(xiàng),對(duì)于上述的第一種情況,生成第一表項(xiàng)是一個(gè)全新建立第一表項(xiàng)的過(guò)程,對(duì)于上述的第二種情況,則只需要將所述第一端口增加到所述PIT表中名稱(chēng)為第一命名的表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口中即可。
[0154]步驟S314,當(dāng)查詢(xún)到所述NFT表中存在第二表項(xiàng)時(shí),所述節(jié)點(diǎn)按照所述第二表項(xiàng)中的發(fā)送內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第二表項(xiàng)中記錄的名稱(chēng)為所述第一命名,所述第二表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口不為空,且所述發(fā)送內(nèi)容數(shù)據(jù)包的端口不是所述第一端口。
[0155]具體實(shí)現(xiàn)中,在步驟S113可首先查詢(xún)所述NFT表中是否存在名稱(chēng)為第一命名的表項(xiàng),如果存在,則進(jìn)一步查詢(xún)所述名稱(chēng)為第一命名的表項(xiàng)的發(fā)送內(nèi)容數(shù)據(jù)包的端口Downface是否不為空,且不是所述第一端口,如果是,則認(rèn)為查詢(xún)到所述第二表項(xiàng)。并進(jìn)一步按照所述第二表項(xiàng)的發(fā)送內(nèi)容數(shù)據(jù)包的端口 Downface中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包。由于本發(fā)明實(shí)施例的NFT表中的Downface中記錄的端口記錄的是節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送內(nèi)容數(shù)據(jù)報(bào)的端口,因此與Downface相連的其他節(jié)點(diǎn)相對(duì)所述節(jié)點(diǎn)會(huì)更遠(yuǎn)離服務(wù)器中心,因此,本發(fā)明實(shí)施例給出了一種優(yōu)先向遠(yuǎn)離服務(wù)器的方向路由請(qǐng)求的技術(shù)方案,其可增加中途命中內(nèi)容的概率,并縮短響應(yīng)請(qǐng)求的時(shí)間,并且,由于本發(fā)明實(shí)施例優(yōu)先向遠(yuǎn)離服務(wù)器的方向路由請(qǐng)求,其可降低作為內(nèi)容源的服務(wù)器的負(fù)擔(dān)。
[0156]圖4為本發(fā)明的基于緩存的路由方法的第四實(shí)施例的流程示意圖。如圖4所示,其可包括:
[0157]步驟S310,當(dāng)節(jié)點(diǎn)從第一端口收到第一命名的請(qǐng)求數(shù)據(jù)包時(shí),查詢(xún)所述節(jié)點(diǎn)的內(nèi)容存儲(chǔ)器CS。
[0158]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例