換,以及其他等等。也即,本發(fā)明實(shí)施例的節(jié)點(diǎn)對(duì)內(nèi)容的緩存是有一定的時(shí)間限制的。
[0304]因此,在一些可行的實(shí)施方式中,當(dāng)節(jié)點(diǎn)接收到的對(duì)應(yīng)于接收裝置92接收的請(qǐng)求數(shù)據(jù)包的內(nèi)容數(shù)據(jù)包已經(jīng)被刪除時(shí),處理器93不能在節(jié)點(diǎn)的CS中查詢到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容?;蛘?,在另一些可行的實(shí)施方式中,節(jié)點(diǎn)之前并未接收過(guò)內(nèi)容數(shù)據(jù),則處理器93同樣不能在節(jié)點(diǎn)的CS中查詢到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容。
[0305]具體實(shí)現(xiàn)中,處理器93未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)的情況可能有以下幾種:
[0306]第一,PIT表中不存在名稱為第一命名的表項(xiàng);
[0307]第二,PIT表中不存在名稱為第一命名的表項(xiàng),但是存在第五表項(xiàng),所述第五表項(xiàng)名稱為第一命名,所述第五表項(xiàng)中接收請(qǐng)求數(shù)據(jù)包的端口中不包括所述第一端口。
[0308]因此,在一些可行的實(shí)施方式中,當(dāng)處理器93未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)時(shí),本發(fā)明實(shí)施例的路由節(jié)點(diǎn)還可包括:
[0309]第一生成模塊(未圖示),用于在節(jié)點(diǎn)中生成所述第一表項(xiàng),對(duì)于上述的第一種情況,生成第一表項(xiàng)是一個(gè)全新建立第一表項(xiàng)的過(guò)程,對(duì)于上述的第二種情況,則只需要將所述第一端口增加到所述PIT表中名稱為第一命名的表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口中即可。
[0310]具體實(shí)現(xiàn)中,處理器93可首先查詢所述NFT表中是否存在名稱為第一命名的表項(xiàng),如果存在,則進(jìn)一步查詢所述名稱為第一命名的表項(xiàng)的發(fā)送內(nèi)容數(shù)據(jù)包的端口Downface是否不為空,且不是所述第一端口,如果是,則認(rè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)。
[0311]圖10為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第六實(shí)施例的結(jié)構(gòu)組成示意圖。如圖10所示,其可包括:存儲(chǔ)器101、接收裝置102、處理器103、發(fā)送裝置104,其中:
[0312]存儲(chǔ)器101,用于存儲(chǔ)所述節(jié)點(diǎn)的內(nèi)容存儲(chǔ)器CS、待定請(qǐng)求表PIT、前向轉(zhuǎn)發(fā)表FIB以及下一端口表NFT。
[0313]接收裝置102,用于從第一端口接收第一命名的請(qǐng)求數(shù)據(jù)包;
[0314]處理器103,用于查詢所述存儲(chǔ)器101的內(nèi)容存儲(chǔ)器CS,當(dāng)未在所述節(jié)點(diǎn)的CS中查詢到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容時(shí),查詢所述節(jié)點(diǎn)的待定請(qǐng)求表PIT ;并當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)時(shí),查詢所述節(jié)點(diǎn)的下一端口表NFT表;所述第一表項(xiàng)中記錄的名稱為所述第一命名,所述第一表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口包括所述第一端口 ;所述NFT表中記錄的屬性包括名稱、接收內(nèi)容數(shù)據(jù)包的端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間;
[0315]發(fā)送裝置104,用于當(dāng)所述處理器103查詢到所述NFT表中存在第二表項(xiàng)時(shí),按照所述第二表項(xiàng)中的發(fā)送內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第二表項(xiàng)中記錄的名稱為所述第一命名,所述第二表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口不為空,且所述發(fā)送內(nèi)容數(shù)據(jù)包的端口不是所述第一端口 ;以及,用于當(dāng)所述處理器103查詢到所述NFT表中存在第三表項(xiàng)時(shí),按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第三表項(xiàng)中記錄的名稱為所述第一命名,所述第三表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口為空;以及,用于當(dāng)所述處理器103查詢到所述NFT表中存在第四表項(xiàng)時(shí),按照所述第四表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第四表項(xiàng)中記錄的名稱為所述第一命名,所述第四表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口為所述第一端口。
[0316]在一些可行的實(shí)施方式中,本發(fā)明的路由節(jié)點(diǎn)的處理器103用于當(dāng)查詢到所述NFT表中不存在名稱為所述第一命名的表項(xiàng)時(shí),且所述節(jié)點(diǎn)的PIT表中名稱為所述第一命名的表項(xiàng)是為新建表項(xiàng),查詢所述節(jié)點(diǎn)的FIB表項(xiàng);當(dāng)查詢到所述NFT表中不存在名稱為所述第一命名的表項(xiàng)時(shí),但所述節(jié)點(diǎn)的PIT表中名稱為所述第一命名的表項(xiàng)是并非為新建表項(xiàng),丟棄所述第一命名的請(qǐng)求數(shù)據(jù)包。
[0317]本發(fā)明實(shí)施例的節(jié)點(diǎn)為以內(nèi)容為中心的網(wǎng)絡(luò)(CCN、NDD、PERSnT,NetInf等)中的節(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ù)包,因此,本發(fā)明實(shí)施例的節(jié)點(diǎn)可通過(guò)發(fā)起請(qǐng)求數(shù)據(jù)包以請(qǐng)求內(nèi)容的方式來(lái)獲取內(nèi)容數(shù)據(jù)。
[0318]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的節(jié)點(diǎn)緩存內(nèi)容數(shù)據(jù)包的流程可包括:
[0319]a、當(dāng)節(jié)點(diǎn)的第三端口(可與接收裝置102的第一端口為相同或不同的端口)收到第二命名(可與接收裝置102的第一命名的數(shù)據(jù)包的名稱相同或者不同)的內(nèi)容數(shù)據(jù)包時(shí),將該數(shù)據(jù)包存儲(chǔ)在當(dāng)前節(jié)點(diǎn),并將數(shù)據(jù)包的第二命名寫(xiě)入CS表中,并記錄下該第三端口的信息。
[0320]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ù)包。
[0321]C、在所述PIT中接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口中選擇一個(gè)第二端口。
[0322]具體的選擇方法可以包括:隨機(jī)選擇,或者按照端口序號(hào)的升降序選擇,或者根據(jù)連接端口的鏈路的狀態(tài)進(jìn)行選擇(例如:選擇連接鏈路狀態(tài)好的端口),還可以根據(jù)其他方法進(jìn)行選擇。
[0323]d、查看所述節(jié)點(diǎn)的NFT表,如果NFT表中存在名稱與所述第二命名對(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表中不存在名稱與所述第二命名對(duì)應(yīng)的表項(xiàng),則在所述NFT表中生成第六表項(xiàng),所述第六表項(xià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í)間。
[0324]除此之外,在c之后,還可刪除節(jié)點(diǎn)的PIT表中關(guān)于第二命名的PIT表項(xiàng)。該刪除動(dòng)作可以發(fā)生在步驟d之前或之后,或與d同時(shí)執(zhí)行。
[0325]除此之外,在節(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í)間限制的。
[0326]因此,在一些可行的實(shí)施方式中,當(dāng)節(jié)點(diǎn)接收到的對(duì)應(yīng)于接收裝置102接收的請(qǐng)求數(shù)據(jù)包的內(nèi)容數(shù)據(jù)包已經(jīng)被刪除時(shí),處理器103不能在節(jié)點(diǎn)的CS中查詢到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容。或者,在另一些可行的實(shí)施方式中,節(jié)點(diǎn)之前并未接收過(guò)內(nèi)容數(shù)據(jù),則處理器103同樣不能在節(jié)點(diǎn)的CS中查詢到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容。
[0327]具體實(shí)現(xiàn)中,處理器103未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)的情況可能有以下幾種:
[0328]第一,PIT表中不存在名稱為第一命名的表項(xiàng);
[0329]第二,PIT表中不存在名稱為第一命名的表項(xiàng),但是存在第五表項(xiàng),所述第五表項(xiàng)名稱為第一命名,所述第五表項(xiàng)中接收請(qǐng)求數(shù)據(jù)包的端口中不包括所述第一端口。
[0330]因此,在一些可行的實(shí)施方式中,當(dāng)處理器103未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)時(shí),本發(fā)明實(shí)施例的處理器103還用于在節(jié)點(diǎn)中生成所述第一表項(xiàng),對(duì)于上述的第一種情況,生成第一表項(xiàng)是一個(gè)全新建立第一表項(xiàng)的過(guò)程,對(duì)于上述的第二種情況,則只需要將所述第一端口增加到所述PIT表中名稱為第一命名的表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口中即可。
[0331]具體實(shí)現(xiàn)中,處理器104可首先查詢所述NFT表中是否存在名稱為第一命名的表項(xiàng),如果存在,則進(jìn)一步查詢所述名稱為第一命名的表項(xiàng)的發(fā)送內(nèi)容數(shù)據(jù)包的端口Downface是否不為空,且不是所述第一端口,如果是,則認(rè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)。
[0332]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的處理器103還用于當(dāng)所述發(fā)送裝置104按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,刪除所述NFT表中的所述第三表項(xiàng)。
[0333]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的路由節(jié)點(diǎn)的處理器103還用于當(dāng)所述發(fā)送裝置104按照所述第四表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,且所述節(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)。
[0334]圖11為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第七實(shí)施例的結(jié)構(gòu)組成示意圖。如圖11所示,其可包括:存儲(chǔ)器111、接收裝置112、處理器103、發(fā)送裝置104 ;其中:
[0335]存儲(chǔ)器111,用于存儲(chǔ)所述節(jié)點(diǎn)的內(nèi)容存儲(chǔ)器CS、待定請(qǐng)求表PIT、前向轉(zhuǎn)發(fā)表FIB以及下一端口表NFT。
[0336]接收裝置112,用于從第一端口接收第一命名的請(qǐng)求數(shù)據(jù)包;
[0337]處理器113,用于查詢所述存儲(chǔ)器111的內(nèi)容存儲(chǔ)器CS,當(dāng)未在所述節(jié)點(diǎn)的CS中查詢到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容時(shí),查詢所述節(jié)點(diǎn)的待定請(qǐng)求表PIT ;并當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)之后判斷是否在所述PIT表中查詢到第五表項(xiàng),且所述第一命名的請(qǐng)求數(shù)據(jù)包是否按照所述節(jié)點(diǎn)的上一跳節(jié)點(diǎn)的NFT表中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)來(lái)的,并當(dāng)所述判斷結(jié)果為是時(shí),查詢所述節(jié)點(diǎn)的下一端口表NFT表;所述第一表項(xiàng)中記錄的名稱為所述第一命名,所述第一表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口包括所述第一端口 ;所述NFT表中記錄的屬性包括名稱、接收內(nèi)容數(shù)據(jù)包的端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間;
[0338]發(fā)送裝置114,用于當(dāng)所述處理器113查詢到所述NFT表中存在第二表項(xiàng)時(shí),按照所述第二表項(xiàng)中的發(fā)送內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第二表項(xiàng)中記錄的名稱為所述第一命名,所述第二表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口不為空,且所述發(fā)送內(nèi)容數(shù)據(jù)包的端口不是所述第一端口。
[0339]本發(fā)明實(shí)施例的節(jié)點(diǎn)為以內(nèi)容為中心的網(wǎng)絡(luò)(CCN、NDD、PERSnT,NetInf等)中的節(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ù)包,因此,本發(fā)明實(shí)施例的節(jié)點(diǎn)可通過(guò)發(fā)起請(qǐng)求數(shù)據(jù)包以請(qǐng)求內(nèi)容的方式來(lái)獲取內(nèi)容數(shù)據(jù)。
[0340]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的節(jié)點(diǎn)緩存內(nèi)容數(shù)據(jù)包的流程可包括:
[0341]a、當(dāng)節(jié)點(diǎn)的第三端口(可與接收裝置112的第一端口為相同或不同的端口)收到第二命名(可與接收裝置112的第一命名的數(shù)據(jù)包的名稱相同或者不同)的內(nèi)容數(shù)據(jù)包時(shí),將該數(shù)據(jù)包存儲(chǔ)在當(dāng)前節(jié)點(diǎn),并將數(shù)據(jù)包的第二命名寫(xiě)入CS表中,并記錄下該第三端口的信息。
[0342]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ù)包。
[0343]C、在所述PIT中接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口中選擇一個(gè)第二端口。
[0344]具體的選擇方法可以包括:隨機(jī)選擇,或者按照端口序號(hào)的升降序選擇,或者根據(jù)連接端口的鏈路的狀態(tài)進(jìn)行選擇(例如:選擇連接鏈路狀態(tài)好的端口),還可以根據(jù)其他方法進(jìn)行選擇。
[0345]d、查看所述節(jié)點(diǎn)的NFT表,如果NFT表中存在名稱與所述第二命名對(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表中不存在名稱與所述第二命名對(duì)應(yīng)的表項(xiàng),則在所述NFT表中生成第六表項(xiàng),所述第六表項(xià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í)間。
[0346]除此之外,在c之后,還可刪除節(jié)點(diǎn)的PIT表中關(guān)于第二命名的PIT表項(xiàng)。該刪除動(dòng)作可以發(fā)生在步驟d之前或之后,或與d同時(shí)執(zhí)行。
[0347]除此之外,在節(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í)間限制的。
[0348]因此,在一些可行的實(shí)施方式中,當(dāng)節(jié)點(diǎn)接收到的對(duì)應(yīng)于接收裝置112接收的請(qǐng)求數(shù)據(jù)包的內(nèi)容數(shù)據(jù)包已經(jīng)被刪除時(shí),處理器113不能在節(jié)點(diǎn)的CS中查詢到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容。或者,在另一些可行的實(shí)施方式中,節(jié)點(diǎn)之前并未接收過(guò)內(nèi)容數(shù)據(jù),則處理器113同樣不能在節(jié)點(diǎn)的CS中查詢到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容。
[0349]具體實(shí)現(xiàn)中,處理器113未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)的情況可能有以下幾種:
[0350]第一,PIT表中不存在名稱為第一命名的表項(xiàng);
[0351]第二,PIT表中不存在名稱為第一命名的表項(xiàng),但是存在第五表項(xiàng),所述第五表項(xiàng)名稱為第一命名,所述第五表項(xiàng)中接收請(qǐng)求數(shù)據(jù)包的端口中不包括所述第一端口。
[0352]因此,在一些可行的實(shí)施方式中,當(dāng)處理器113未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)時(shí),本發(fā)明實(shí)施例的處理器113還用于在節(jié)點(diǎn)中生成所述第一表項(xiàng),對(duì)于上述的第一種情況,生成第一表項(xiàng)是一個(gè)全新建立第一表項(xiàng)的過(guò)程,對(duì)于上述的第二種情況,則只需要將所述第一端口增加到所述PIT表中名稱為第一命名的表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口中即可。
[0353]具體實(shí)現(xiàn)中,處理器113可首先查詢所述NFT表中是否存在名稱為第一命名的表項(xiàng),如果存在,則進(jìn)一步查詢所述名稱為第一命名的表項(xiàng)的發(fā)送內(nèi)容數(shù)據(jù)包的端口Downface是否不為空,且不是所述第一端口,如果是,則認(rè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)。
[0354]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的處理器113還用于當(dāng)所述發(fā)送裝置114按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,且所述節(jié)點(diǎn)的PIT表的第一表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口包括所述NFT表中的第三表項(xiàng)中接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口,則在所述PIT表的第一表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口中刪除所述第三表項(xiàng)中接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口 ;并刪除所述NFT表中的所述第三表項(xiàng)。
[0355]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的處理器113還用于當(dāng)所述發(fā)送裝置114按照所述第四表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,且所述節(jié)點(diǎn)的PIT表的第一表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口包括所述NFT表中的第四表項(xiàng)中接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口,則在所述PIT表的第一表項(xiàng)中的接收請(qǐng)求數(shù)據(jù)包的端口中刪除所述第四表項(xiàng)中接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口 ;刪除所述NFT表中的所述第四表項(xiàng)。
[0356]圖12為本發(fā)明的基于緩存的路由節(jié)點(diǎn)的第八實(shí)施例的結(jié)構(gòu)組成示意圖。如圖12所示,其可包括:存儲(chǔ)器121、接收裝置122、處理器123以及發(fā)送裝置124,其中:
[0357]存儲(chǔ)器121,用于存儲(chǔ)所述節(jié)點(diǎn)的內(nèi)容存儲(chǔ)器CS、待定請(qǐng)求表PIT、前向轉(zhuǎn)發(fā)表FIB以及下一端口表NFT。
[0358]接收裝置122,用于從第一端口接收第一命名的請(qǐng)求數(shù)據(jù)包;
[0359]處理器123,用于查詢所述存儲(chǔ)器121的內(nèi)容存儲(chǔ)器CS,當(dāng)未在所述節(jié)點(diǎn)的CS中查詢到所述請(qǐng)求數(shù)據(jù)包所請(qǐng)求的內(nèi)容時(shí),查詢所述節(jié)點(diǎn)的待定請(qǐng)求表PIT ;并當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)之后判斷是否在所述PIT表中查詢到第五表項(xiàng),第五表項(xiàng)存在,判斷所述第一命名的請(qǐng)求數(shù)據(jù)包是否按照所述節(jié)點(diǎn)的上一跳節(jié)點(diǎn)的NFT表中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)來(lái)的,以及當(dāng)所述判斷第一命名的請(qǐng)求數(shù)據(jù)包是否按照所述節(jié)點(diǎn)的上一跳節(jié)點(diǎn)的NFT表中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)來(lái)的判斷結(jié)果為是時(shí),查詢所述節(jié)點(diǎn)的下一端口表NFT表;所述第一表項(xiàng)中記錄的名稱為所述第一命名,所述第一表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口包括所述第一端口 ;所述NFT表中記錄的屬性包括名稱、接收內(nèi)容數(shù)據(jù)包的端口、發(fā)送內(nèi)容數(shù)據(jù)包的端口以及接收內(nèi)容數(shù)據(jù)包的時(shí)間;
[0360]發(fā)送裝置124,用于當(dāng)所述處理器123查詢到所述NFT表中存在第二表項(xiàng)時(shí),按照所述第二表項(xiàng)中的發(fā)送內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第二表項(xiàng)中記錄的名稱為所述第一命名,所述第二表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口不為空,且所述發(fā)送內(nèi)容數(shù)據(jù)包的端口不是所述第一端口 ;以及,用于當(dāng)所述處理器123查詢到所述NFT表中存在第三表項(xiàng)時(shí),按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第三表項(xiàng)中記錄的名稱為所述第一命名,所述第三表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口為空;以及,用于當(dāng)所述處理器123查詢到所述NFT表中存在第四表項(xiàng)時(shí),按照所述第四表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第四表項(xiàng)中記錄的名稱為所述第一命名,所述第四表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口為所述第一端口。
[0361]所述處理器123還用于當(dāng)查詢到所述NFT表中不存在名稱為所述第一命名的表項(xiàng)時(shí),查詢所述節(jié)點(diǎn)的FIB表項(xiàng)。
[0362]本發(fā)明實(shí)施例的節(jié)點(diǎn)為以內(nèi)容為中心的網(wǎng)絡(luò)(CCN、NDD、PERSnT,NetInf等)中的節(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ù)包,因此,本發(fā)明實(shí)施例的節(jié)點(diǎn)可通過(guò)發(fā)起請(qǐng)求數(shù)據(jù)包以請(qǐng)求內(nèi)容的方式來(lái)獲取內(nèi)容數(shù)據(jù)。
[0363]在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的節(jié)點(diǎn)緩存內(nèi)容數(shù)據(jù)包的流程可包括:
[0364]a、當(dāng)節(jié)點(diǎn)的第三端口(可與接收裝置122的第一端口為相同或不同的端口)收到第二命名(可與接收裝置122的第一命名的數(shù)據(jù)包的名稱相同或者不同)的內(nèi)容數(shù)據(jù)包時(shí),將該數(shù)據(jù)包存儲(chǔ)在當(dāng)前節(jié)點(diǎn),并將數(shù)據(jù)包的第二命名寫(xiě)入CS表中,并記錄下該第三端口的信息。
[0365]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ù)包。
[0366]C、在所述PIT中接收請(qǐng)求數(shù)據(jù)包的端口中記錄的端口中選擇一個(gè)第二端口。
[0367]具體的選擇方法可以包括:隨機(jī)選擇,或者按照端口序號(hào)的升降序選擇,或者根據(jù)連接端口的鏈路的狀態(tài)進(jìn)行選擇(例如:選擇連接鏈路狀態(tài)好的端口),還可以根據(jù)其他方法進(jìn)行選擇。
[0368]d、查看所述節(jié)點(diǎn)的NFT表,如果NFT表中存在名稱與所述第二命名對(duì)應(yīng)的表項(xiàng),則更新所述對(duì)應(yīng)的表項(xiàng)中接收內(nèi)容數(shù)