基于緩存的路由方法及路由節(jié)點(diǎn)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,特別涉及一種基于緩存的路由方法及路由節(jié)點(diǎn)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)與應(yīng)用的飛速發(fā)展以及互聯(lián)網(wǎng)用戶的快速增長,基于TCP/IP的現(xiàn)有互聯(lián)網(wǎng)逐漸暴露出許多的不適應(yīng),主要包括可擴(kuò)展性差、動(dòng)態(tài)連續(xù)性弱、安全可控性低、運(yùn)營成本高等問題。為此,互聯(lián)網(wǎng)正逐步由主機(jī)中心向內(nèi)容中心轉(zhuǎn)變,世界各國紛紛展開了以內(nèi)容為中心的未來網(wǎng)絡(luò)的研宄,包括北美的內(nèi)容中心網(wǎng)絡(luò)(ContentCentric Network, CCN) /命名數(shù)據(jù)網(wǎng)絡(luò)(named data network,NDN),以及歐盟的追趕網(wǎng)絡(luò)(PERSnT)/網(wǎng)絡(luò)通知網(wǎng)絡(luò)(NetInf)等。雖然這些未來網(wǎng)絡(luò)的架構(gòu)細(xì)節(jié)有些不同,但是都主張?jiān)诰W(wǎng)內(nèi)部署緩存,以請(qǐng)求內(nèi)容的方式來獲取信息。
[0003]典型的以內(nèi)容中心網(wǎng)絡(luò)的節(jié)點(diǎn)主要包含內(nèi)容存儲(chǔ)器(Content Store,CS)、待定請(qǐng)求表(Pending Interest Table,PIT)和前向轉(zhuǎn)發(fā)表(Forward Informat1n Table,F(xiàn)IB) 3個(gè)邏輯部分,其中:
[0004]CS類似于IP路由器的緩存,用于緩存經(jīng)過該節(jié)點(diǎn)的數(shù)據(jù)內(nèi)容(即,內(nèi)容數(shù)據(jù)包),該信息除了為單次會(huì)話服務(wù),還可以為其他用戶會(huì)話服務(wù),因此CS中的緩存數(shù)據(jù)在單次會(huì)話完成后仍然存在于節(jié)點(diǎn)中,以便下一次使用,通常,可采用最近最少使用(LeastRecently Used,LRU)或最少使用頻率(least frequently used,LFU)替換策略來更新 CS中存儲(chǔ)的數(shù)據(jù)內(nèi)容。
[0005]PIT用于記錄經(jīng)過該節(jié)點(diǎn)的請(qǐng)求信息的,依此實(shí)現(xiàn)將所請(qǐng)求的內(nèi)容順利地傳回請(qǐng)求節(jié)點(diǎn)。被請(qǐng)求的內(nèi)容數(shù)據(jù)包是按照pit的指示一步步地發(fā)回請(qǐng)求節(jié)點(diǎn)的。
[0006]FIB和IP路由表處理機(jī)制類似,即將請(qǐng)求數(shù)據(jù)包(也可稱為興趣包)發(fā)往用于存儲(chǔ)請(qǐng)求數(shù)據(jù)包所請(qǐng)求的數(shù)據(jù)內(nèi)容的服務(wù)器端,但是與IP路由表不同的是,F(xiàn)IB可以同時(shí)向多個(gè)方向轉(zhuǎn)發(fā)請(qǐng)求數(shù)據(jù)包。
[0007]當(dāng)前,當(dāng)一個(gè)節(jié)點(diǎn)從一個(gè)接口收到一個(gè)請(qǐng)求數(shù)據(jù)包時(shí),將根據(jù)它所包含的內(nèi)容名進(jìn)行所請(qǐng)求的內(nèi)容的最大匹配查詢,而后根據(jù)查詢結(jié)果進(jìn)行一步的操作。
[0008]查詢的優(yōu)先級(jí)順序依次為CS、PIT、FIB,其查詢步驟具體包括:
[0009](I)CS如果包含請(qǐng)求數(shù)據(jù)包請(qǐng)求的內(nèi)容,就會(huì)直接將相應(yīng)的內(nèi)容發(fā)送到請(qǐng)求端口,并丟棄請(qǐng)求數(shù)據(jù)包,否則繼續(xù)在PIT中繼續(xù)查詢。
[0010](2)PIT如果包含與內(nèi)容名相關(guān)的條目,就將請(qǐng)求端口添加到請(qǐng)求端口列表中,并丟棄請(qǐng)求數(shù)據(jù)包,否則將在FIB中繼續(xù)查詢。
[0011](3)FIB如果包含與內(nèi)容名相關(guān)的條目,就按照FIB的指示將該請(qǐng)求數(shù)據(jù)包轉(zhuǎn)發(fā)到靠近服務(wù)器的下一節(jié)點(diǎn)。
[0012](4)如果以上3種情況都不符合,說明不存在相關(guān)的匹配路由,則丟棄該請(qǐng)求數(shù)據(jù)包。
[0013]由上述流程可知,現(xiàn)有技術(shù)中,當(dāng)節(jié)點(diǎn)接收到請(qǐng)求數(shù)據(jù)包時(shí),如果所述節(jié)點(diǎn)內(nèi)沒有可能獲得緩存的數(shù)據(jù)內(nèi)容(即在CS和PIT均查詢不到),會(huì)根據(jù)節(jié)點(diǎn)的FIB中存儲(chǔ)的路由朝接近服務(wù)器的方向轉(zhuǎn)發(fā)請(qǐng)求數(shù)據(jù)包,但是,越是靠近服務(wù)器的節(jié)點(diǎn)緩存的內(nèi)容更新越頻繁,向靠近服務(wù)器的方向路由請(qǐng)求必然會(huì)降低中途命中內(nèi)容的概率,進(jìn)而增加請(qǐng)求的響應(yīng)時(shí)間。
【發(fā)明內(nèi)容】
[0014]鑒于此,本發(fā)明提供一種基于緩存的路由方法和路由節(jié)點(diǎn),可以增加中途命中內(nèi)容的概率,以及節(jié)省系統(tǒng)對(duì)請(qǐng)求的響應(yīng)時(shí)間。
[0015]本發(fā)明第一方面提供一種基于緩存的路由方法,其可包括:
[0016]當(dāng)節(jié)點(diǎn)從第一端口收到第一命名的請(qǐng)求數(shù)據(jù)包時(shí),查詢所述節(jié)點(diǎn)的內(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 ;
[0017]當(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í)間;
[0018]當(dāng)查詢到所述NFT表中存在第二表項(xiàng)時(shí),所述節(jié)點(diǎn)按照所述第二表項(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ù)包的端口不是所述第一端口。
[0019]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)時(shí),還包括:
[0020]在所述PIT表中生成所述第一表項(xiàng)。
[0021]結(jié)合第一方面,或第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,當(dāng)查詢到所述NFT表中存在第三表項(xiàng)時(shí),所述節(jié)點(diǎn)按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第三表項(xiàng)中記錄的名稱為所述第一命名,所述第三表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口為空。
[0022]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述節(jié)點(diǎn)按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,還包括:
[0023]刪除所述NFT表中的所述第三表項(xiàng)。
[0024]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述節(jié)點(diǎn)按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,還包括:
[0025]當(dāng)所述節(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ù)包的端口中記錄的端口;
[0026]刪除所述NFT表中的所述第三表項(xiàng)。
[0027]結(jié)合第一方面,或第一方面的第一種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,當(dāng)查詢到所述NFT表中存在第四表項(xiàng)時(shí),所述節(jié)點(diǎn)按照所述第四表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包;所述第四表項(xiàng)中記錄的名稱為所述第一命名,所述第四表項(xiàng)中記錄的發(fā)送內(nèi)容數(shù)據(jù)包的端口為所述第一端口。
[0028]結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述節(jié)點(diǎn)按照所述第四表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,還包括:
[0029]當(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ù)包的端口中記錄的端口;
[0030]刪除所述NFT表中的所述第四表項(xiàng)。
[0031]結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,在第七種可能的實(shí)現(xiàn)方式中,所述節(jié)點(diǎn)按照所述第四表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,還包括:
[0032]當(dāng)所述節(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ù)包的端口中記錄的端口;
[0033]刪除所述NFT表中的所述第四表項(xiàng)。
[0034]結(jié)合第一方面,或第一方面的第一種可能的實(shí)現(xiàn)方式,在第八種可能的實(shí)現(xiàn)方式中,當(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ù)包。
[0035]結(jié)合第一方面,或第一方面的第一種可能的實(shí)現(xiàn)方式,在第九種可能的實(shí)現(xiàn)方式中,當(dāng)查詢到所述NFT表中不存在名稱為所述第一命名的表項(xiàng)時(shí),查詢所述節(jié)點(diǎn)的FIB表項(xiàng)。
[0036]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式、第四種可能的實(shí)現(xiàn)方式、第五種可能的實(shí)現(xiàn)方式,第七種可能的實(shí)現(xiàn)方式,第九種可能的實(shí)現(xiàn)方式中任一種,在第十種可能的實(shí)現(xiàn)方式中,當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)之后,查詢所述節(jié)點(diǎn)的下一端口表NFT表之前,包括:
[0037]判斷是否在所述PIT表中查詢到第五表項(xiàng),且所述第一命名的請(qǐng)求數(shù)據(jù)包是否按照所述節(jié)點(diǎn)的上一跳節(jié)點(diǎn)的NFT表中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)來的,如果判斷為是,則查詢所述節(jié)點(diǎn)的下一端口表NFT表;所述第五表項(xiàng)中記錄的名稱為所述第一命名,所述第五表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口不包括所述第一端口。
[0038]本發(fā)明第二方面提供一種路由節(jié)點(diǎn),其可包括:
[0039]存儲(chǔ)模塊,用于存儲(chǔ)內(nèi)容存儲(chǔ)器CS、待定請(qǐng)求表PIT、前向轉(zhuǎn)發(fā)表FIB以及下一端口表 NFT ;
[0040]接收模塊,用于從第一端口接收第一命名的請(qǐng)求數(shù)據(jù)包;
[0041]第一查詢模塊,用于查詢所述節(jié)點(diǎn)的內(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 ;
[0042]第二查詢模塊,用于當(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í)間;
[0043]轉(zhuǎn)發(fā)模塊,用于當(dāng)所述第二查詢模塊查詢到所述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ù)包的端口不是所述第一端口。
[0044]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,本發(fā)明的路由節(jié)點(diǎn)還包括:
[0045]第一生成模塊,用于當(dāng)所述第一查詢模塊未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)時(shí),在所述PIT表中生成所述第一表項(xiàng)。
[0046]結(jié)合第二方面,或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述轉(zhuǎn)發(fā)模塊還用于當(dāng)所述第二查詢模塊查詢到所述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ù)包的端口為空。
[0047]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述路由節(jié)點(diǎn)還可包括:
[0048]第一表項(xiàng)更新模塊,用于當(dāng)所述轉(zhuǎn)發(fā)模塊按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,刪除所述NFT表中的所述第三表項(xiàng)。
[0049]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述路由節(jié)點(diǎn)還可包括:
[0050]第二表項(xiàng)更新模塊,用于當(dāng)所述轉(zhuǎn)發(fā)模塊按照所述第三表項(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)。
[0051]結(jié)合第二方面,或第二方面的第一種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述轉(zhuǎn)發(fā)模塊還用于當(dāng)所述第二查詢模塊查詢到所述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ù)包的端口為所述第一端口 O
[0052]結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述路由節(jié)點(diǎn)還包括:
[0053]第三表項(xiàng)更新模塊,用于當(dāng)所述轉(zhuǎn)發(fā)模塊按照所述第四表項(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)。
[0054]結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第七種可能的實(shí)現(xiàn)方式中,所述路由節(jié)點(diǎn)還包括:
[0055]第四表項(xiàng)更新模塊,用于當(dāng)所述轉(zhuǎn)發(fā)模塊按照所述第四表項(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)。
[0056]結(jié)合第二方面,或第二方面的第一種可能的實(shí)現(xiàn)方式,在第八種可能的實(shí)現(xiàn)方式中,所述路由節(jié)點(diǎn)還包括:
[0057]第三查詢模塊,用于當(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ù)包。
[0058]結(jié)合第二方面,或第二方面的第一種可能的實(shí)現(xiàn)方式,在第九種可能的實(shí)現(xiàn)方式中,所述路由節(jié)點(diǎn)還包括:
[0059]第四查詢模塊,用于當(dāng)所述第二查詢模塊查詢到所述NFT表中不存在名稱為所述第一命名的表項(xiàng)時(shí),查詢所述節(jié)點(diǎn)的FIB表項(xiàng)。
[0060]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式、第四種可能的實(shí)現(xiàn)方式、第五種可能的實(shí)現(xiàn)方式,第七種可能的實(shí)現(xiàn)方式,第九種可能的實(shí)現(xiàn)方式中任一種,在第十種可能的實(shí)現(xiàn)方式中,所述路由節(jié)點(diǎn)還包括:
[0061]判斷模塊,用于當(dāng)所述第一查詢模塊未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)之后,所述第二查詢模塊查詢所述節(jié)點(diǎn)的下一端口表NFT表之前,判斷是否在所述PIT表中查詢到第五表項(xiàng),且所述第一命名的請(qǐng)求數(shù)據(jù)包是否按照所述節(jié)點(diǎn)的上一跳節(jié)點(diǎn)的NFT表中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)來的,如果判斷為是,則所述第二查詢模塊查詢所述節(jié)點(diǎn)的下一端口表NFT表;所述第五表項(xiàng)中記錄的名稱為所述第一命名,所述第五表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口不包括所述第一端口。
[0062]本發(fā)明第三方面提供一種路由節(jié)點(diǎn),其包括存儲(chǔ)器、接收裝置、處理器以及發(fā)送裝置,其中:
[0063]所述存儲(chǔ)器,用于存儲(chǔ)內(nèi)容存儲(chǔ)器CS、待定請(qǐng)求表PIT、前向轉(zhuǎn)發(fā)表FIB以及下一端口表NFT ;
[0064]所述接收裝置,用于從第一端口接收第一命名的請(qǐng)求數(shù)據(jù)包;
[0065]所述處理器,用于查詢所述節(jié)點(diǎn)的內(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í)間;
[0066]所述發(fā)送裝置,用于當(dāng)所述處理器查詢到所述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ù)包的端口不是所述第一端口。
[0067]結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述處理器還用于當(dāng)未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)時(shí),在所述PIT表中生成所述第一表項(xiàng)。
[0068]結(jié)合第三方面,或第三方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述發(fā)送裝置還用于當(dāng)所述處理器查詢到所述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ù)包的端口為空。
[0069]結(jié)合第三方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述處理器還用于當(dāng)所述發(fā)送裝置按照所述第三表項(xiàng)中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)所述請(qǐng)求數(shù)據(jù)包之后,刪除所述NFT表中的所述第三表項(xiàng)。
[0070]結(jié)合第三方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述處理器還用于當(dāng)所述發(fā)送裝置按照所述第三表項(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)。
[0071]結(jié)合第三方面,或第三方面的第一種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述發(fā)送裝置還用于當(dāng)所述處理器查詢到所述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ù)包的端口為所述第一端
□ O
[0072]結(jié)合第三方面的第五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述處理器還用于當(dāng)所述發(fā)送裝置按照所述第四表項(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)。
[0073]結(jié)合第三方面的第五種可能的實(shí)現(xiàn)方式,在第七種可能的實(shí)現(xiàn)方式中,所述處理器還用于當(dāng)所述發(fā)送裝置按照所述第四表項(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)。
[0074]結(jié)合第三方面,或第三方面的第一種可能的實(shí)現(xiàn)方式,在第八種可能的實(shí)現(xiàn)方式中,所述處理器還用于當(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ù)包。
[0075]結(jié)合第三方面,或第三方面的第一種可能的實(shí)現(xiàn)方式,在第九種可能的實(shí)現(xiàn)方式中,所述處理器還于當(dāng)查詢到所述NFT表中不存在名稱為所述第一命名的表項(xiàng)時(shí),查詢所述節(jié)點(diǎn)的FIB表項(xiàng)。
[0076]結(jié)合第三方面的第二種可能的實(shí)現(xiàn)方式、第四種可能的實(shí)現(xiàn)方式、第五種可能的實(shí)現(xiàn)方式,第七種可能的實(shí)現(xiàn)方式,第九種可能的實(shí)現(xiàn)方式中任一種,在第十種可能的實(shí)現(xiàn)方式中,當(dāng)所述處理器未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)之后,查詢所述節(jié)點(diǎn)的下一端口表NFT表之前,所述處理器還用于判斷是否在所述PIT表中查詢到第五表項(xiàng),且所述第一命名的請(qǐng)求數(shù)據(jù)包是否按照所述節(jié)點(diǎn)的上一跳節(jié)點(diǎn)的NFT表中的接收內(nèi)容數(shù)據(jù)包的端口中記錄的端口轉(zhuǎn)發(fā)來的,如果判斷為是,則所述第二查詢模塊查詢所述節(jié)點(diǎn)的下一端口表NFT表;所述第五表項(xiàng)中記錄的名稱為所述第一命名,所述第五表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口不包括所述第一端口。
[0077]本發(fā)明第四方面提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),該計(jì)算機(jī)存儲(chǔ)介質(zhì)可存儲(chǔ)有程序,給程序執(zhí)行時(shí)可包括本發(fā)明所述方法的部分或全部步驟。
[0078]由上可見,在本發(fā)明的一些可行的實(shí)施方式中,當(dāng)節(jié)點(diǎn)從第一端口收到第一命名的請(qǐng)求數(shù)據(jù)包時(shí),若未在所述節(jié)點(diǎn)的待定請(qǐng)求表PIT表中查詢到第一表項(xiàng)時(shí),查詢所述節(jié)點(diǎn)的下一端口表NFT表;所述第一表項(xiàng)中記錄的名稱為所述第一命名,所述第一表項(xiàng)中記錄的接收請(qǐng)求數(shù)據(jù)包的端口包括所述第一端口 ;所述NFT表中記錄的屬性包括名