本發(fā)明屬于通信技術(shù)領(lǐng)域,涉及一種內(nèi)容中心網(wǎng)絡(luò)中內(nèi)容目標(biāo)的分段轉(zhuǎn)發(fā)策略。
背景技術(shù):
信息中心網(wǎng)絡(luò)(Information-Centric Networks,ICNs)是未來網(wǎng)絡(luò)的重要組成部分,ICN旨在建立一種簡(jiǎn)單、通用、靈活的通信架構(gòu),這種架構(gòu)以內(nèi)容為中心而不再以主機(jī)為中心,即ICN更關(guān)注的是內(nèi)容本身,而不是內(nèi)容存儲(chǔ)的地理位置。ICN典型特征之一是網(wǎng)絡(luò)內(nèi)置緩存,路由器上部署高速存儲(chǔ)設(shè)備緩存網(wǎng)絡(luò)中的部分內(nèi)容對(duì)象,用戶請(qǐng)求緩存的內(nèi)容時(shí),路由器直接將內(nèi)容回復(fù)給用戶,而無需再向上游內(nèi)容提供商請(qǐng)求,這樣可以縮短用戶獲取內(nèi)容的時(shí)間,提高QoS。內(nèi)容中心網(wǎng)絡(luò)(Content-Centric Networking,CCN)是ICN網(wǎng)絡(luò)架構(gòu)之一。CCN中具有網(wǎng)絡(luò)內(nèi)置緩存功能的路由器要維護(hù)三種數(shù)據(jù)結(jié)構(gòu),即FIB(Forwarding Information Base)、PIT(Pending Interest Table)和CS(Content Store)。其中,F(xiàn)IB與IP網(wǎng)絡(luò)中的FIB表功能類似,主要用于請(qǐng)求信息的路由轉(zhuǎn)發(fā)。請(qǐng)求在向上轉(zhuǎn)發(fā)的同時(shí),會(huì)在PIT中留下內(nèi)容請(qǐng)求信息對(duì)應(yīng)的到達(dá)端口號(hào)信息等,便于該內(nèi)容對(duì)象的回傳。CS根據(jù)緩存決策,確定是否存儲(chǔ)收到的內(nèi)容數(shù)據(jù)包。
CCN通信流程如圖1所示。內(nèi)容消費(fèi)者,即發(fā)送請(qǐng)求(興趣包)的用戶,向網(wǎng)絡(luò)發(fā)送請(qǐng)求①,路由器收到數(shù)據(jù)包時(shí)優(yōu)先查找本地CS,若在CS找到請(qǐng)求內(nèi)容,則根據(jù)PIT表將內(nèi)容返回至消費(fèi)者⑥→⑧;若緩存中沒有該內(nèi)容對(duì)象,則繼續(xù)查找PIT,確認(rèn)是否已經(jīng)向上請(qǐng)求過該內(nèi)容,如果是,則在對(duì)應(yīng)表項(xiàng)中添加端口號(hào);如果PIT中沒有該內(nèi)容條目,則在PIT表中添加該請(qǐng)求信息,同時(shí)根據(jù)FIB將該請(qǐng)求興趣包向上游節(jié)點(diǎn)轉(zhuǎn)發(fā)②→④。內(nèi)容提供商收到興趣包后,將簽名后的內(nèi)容對(duì)象按原路由方式返回⑤→⑧;CCN中內(nèi)容提供商會(huì)對(duì)自己提供的內(nèi)容對(duì)象進(jìn)行簽名,消費(fèi)者或路由器通過計(jì)算加密的哈希值驗(yàn)證收到的數(shù)據(jù)包是否一致,在圖1中,如果內(nèi)容提供方P1為惡意內(nèi)容提供商,即P1用正確的內(nèi)容簽名提供虛假內(nèi)容。當(dāng)請(qǐng)求興趣包被發(fā)送到P1時(shí),P1將偽造的內(nèi)容按原路由方式返回給消費(fèi)者。這些被偽造的內(nèi)容與消費(fèi)者所請(qǐng)求內(nèi)容命名結(jié)構(gòu)相匹配,但卻與消費(fèi)者所希望獲得的內(nèi)容并不一致,諸如廣告等虛假信息。
由于現(xiàn)有的傳輸網(wǎng)節(jié)點(diǎn)無法對(duì)內(nèi)容進(jìn)行甄別,在很大程度上依然使用虛假內(nèi)容來響應(yīng)后續(xù)請(qǐng)求。網(wǎng)絡(luò)的這種無意識(shí)性將會(huì)導(dǎo)致諸多問題,從運(yùn)營商的角度看主要有:
①網(wǎng)絡(luò)無法提供正確內(nèi)容,導(dǎo)致用戶反復(fù)發(fā)出對(duì)相同內(nèi)容的請(qǐng)求,造成網(wǎng)絡(luò)資源浪費(fèi),甚至擁塞;
②網(wǎng)絡(luò)在相當(dāng)長的時(shí)間內(nèi)無法提供正確的內(nèi)容,這將極大降低網(wǎng)絡(luò)的服務(wù)質(zhì)量,導(dǎo)致客源流失。
從消費(fèi)者的角度看主要有:
①消費(fèi)者忙于對(duì)虛假內(nèi)容的簽名進(jìn)行驗(yàn)證,消費(fèi)者端的資源被嚴(yán)重消耗;
②消費(fèi)者多次獲取到虛假內(nèi)容,極大地降低用戶體驗(yàn)。
根據(jù)上述分析可知,惡意內(nèi)容提供商向網(wǎng)絡(luò)回復(fù)虛假內(nèi)容會(huì)對(duì)運(yùn)營商和用戶產(chǎn)生嚴(yán)重影響。針對(duì)上述問題,要保證消費(fèi)者不會(huì)接受收到的虛假數(shù)據(jù)包,現(xiàn)在主要有兩種方式:
①在終端用戶側(cè)對(duì)內(nèi)容對(duì)象進(jìn)行驗(yàn)證,即用戶收到簽名后根據(jù)獲取到的公鑰來判別內(nèi)容提供商的簽名是否正確。該方法雖然可以發(fā)現(xiàn)虛假內(nèi)容,但其將會(huì)給消費(fèi)者應(yīng)用程序帶來嚴(yán)重負(fù)擔(dān),嚴(yán)重的會(huì)導(dǎo)致應(yīng)用進(jìn)程崩潰。
②網(wǎng)絡(luò)中所有節(jié)點(diǎn)驗(yàn)證通過它的每個(gè)數(shù)據(jù)包,即:傳輸路徑上的每個(gè)節(jié)點(diǎn)均對(duì)內(nèi)容提供商返回的數(shù)據(jù)包的簽名進(jìn)行校驗(yàn),校驗(yàn)的方法與終端用戶校驗(yàn)的方法一致。該方法雖然可以有效避免消費(fèi)者收到虛假內(nèi)容,但傳輸路徑上的每個(gè)節(jié)點(diǎn)都對(duì)數(shù)據(jù)包的簽名進(jìn)行驗(yàn)證時(shí),不僅要考慮節(jié)點(diǎn)的計(jì)算能力,而且獲取驗(yàn)證密鑰的過程將會(huì)增加鏈路時(shí)延,嚴(yán)重降低網(wǎng)絡(luò)的服務(wù)質(zhì)量而且該方法會(huì)極大地增加節(jié)點(diǎn)負(fù)擔(dān)。
上述兩種方案各有優(yōu)缺點(diǎn),由于網(wǎng)絡(luò)驗(yàn)證通過的所有數(shù)據(jù)包至少在目前探討的CCN體系中并不可取,因此,我們提出一種折衷方案,關(guān)鍵節(jié)點(diǎn)驗(yàn)證方案。關(guān)鍵節(jié)點(diǎn)驗(yàn)證方案是指,選擇網(wǎng)絡(luò)中部分節(jié)點(diǎn)進(jìn)行內(nèi)容驗(yàn)證。此方案結(jié)合上述兩種方案的優(yōu)點(diǎn),能夠保證服務(wù)質(zhì)量。同時(shí),能有效避免它們的缺點(diǎn),減輕網(wǎng)路中節(jié)點(diǎn)的計(jì)算負(fù)擔(dān),同時(shí)也減少眾多節(jié)點(diǎn)獲取密鑰而產(chǎn)生的時(shí)延。ICN網(wǎng)絡(luò)中從內(nèi)容源獲取數(shù)據(jù)包,會(huì)經(jīng)過網(wǎng)絡(luò)中多個(gè)路由器但是具體選擇哪一個(gè)或者哪一些路由器進(jìn)行內(nèi)容包的驗(yàn)證,使得網(wǎng)絡(luò)性能最佳,這是關(guān)鍵節(jié)點(diǎn)驗(yàn)證方案要解決的問題。
關(guān)鍵節(jié)點(diǎn)驗(yàn)證方案在CCN簽名機(jī)制基礎(chǔ)上,利用基于內(nèi)容名的路由方式,使中間路由器可以對(duì)內(nèi)容目標(biāo)進(jìn)行驗(yàn)證,盡早發(fā)現(xiàn)虛假內(nèi)容,并停止向下游傳遞該虛假內(nèi)容,因此避免了傳送虛假內(nèi)容而造成網(wǎng)絡(luò)資源的浪費(fèi)。同時(shí),該ICN路由器會(huì)重構(gòu)并重發(fā)請(qǐng)求,盡最大努力為消費(fèi)者獲取正確內(nèi)容。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明旨在解決以上現(xiàn)有技術(shù)的問題。提出了一種能夠保證服務(wù)質(zhì)量、減輕網(wǎng)路中節(jié)點(diǎn)的計(jì)算負(fù)擔(dān)、同時(shí)也減少眾多節(jié)點(diǎn)獲取密鑰而產(chǎn)生的時(shí)延的應(yīng)對(duì)信息中心網(wǎng)絡(luò)惡意內(nèi)容傳播的解決方法。本發(fā)明的技術(shù)方案如下:
一種應(yīng)對(duì)信息中心網(wǎng)絡(luò)惡意內(nèi)容傳播的解決方法,包括步驟:用戶發(fā)送興趣包請(qǐng)求;內(nèi)容提供商根據(jù)內(nèi)容請(qǐng)求回復(fù)內(nèi)容對(duì)象,其還包括以下步驟:在請(qǐng)求的內(nèi)容對(duì)象包的保留字段中添加驗(yàn)證判斷字段Checkout、驗(yàn)證節(jié)點(diǎn)的確定步驟及對(duì)關(guān)鍵節(jié)點(diǎn)的驗(yàn)證步驟;當(dāng)有惡意內(nèi)容提供商沿興趣包請(qǐng)求路由的反向路徑回復(fù)數(shù)據(jù)包至用戶時(shí),中間節(jié)點(diǎn)根據(jù)驗(yàn)證節(jié)點(diǎn)確定策略確定是否對(duì)數(shù)據(jù)包進(jìn)行驗(yàn)證,確定進(jìn)行驗(yàn)證的節(jié)點(diǎn)執(zhí)行“節(jié)點(diǎn)驗(yàn)證流程”。
進(jìn)一步的,所述驗(yàn)證判斷字段為1比特的Checkout字段,在數(shù)據(jù)包中用C表示,數(shù)據(jù)傳輸路徑上的節(jié)點(diǎn)能夠根據(jù)該字段值來判別數(shù)據(jù)包簽名是否已經(jīng)被驗(yàn)證,當(dāng)Checkout字段取值為0時(shí)代表數(shù)據(jù)包沒有被驗(yàn)證,當(dāng)Checkout字段取值為1時(shí)代表簽名已經(jīng)被驗(yàn)證。
進(jìn)一步的,所述內(nèi)容對(duì)象驗(yàn)證節(jié)點(diǎn)的確定步驟包括以下三種情況:
情況一:當(dāng)轉(zhuǎn)發(fā)路徑上每個(gè)節(jié)點(diǎn)根據(jù)自身的緩存策略決定緩存返回的內(nèi)容時(shí),無論數(shù)據(jù)包中Checkout字段是否為1,該節(jié)點(diǎn)均需對(duì)返回?cái)?shù)據(jù)包的簽名進(jìn)行驗(yàn)證;如果簽名驗(yàn)證通過,節(jié)點(diǎn)將數(shù)據(jù)包頭中Checkout字段的值設(shè)為1;
情況二:如果內(nèi)容在該節(jié)點(diǎn)上的請(qǐng)求頻率超過節(jié)點(diǎn)請(qǐng)求門限,且驗(yàn)證字段為0時(shí),該節(jié)點(diǎn)即為需驗(yàn)證節(jié)點(diǎn),對(duì)收到的數(shù)據(jù)包進(jìn)行驗(yàn)證,同樣地,如果驗(yàn)證成功,節(jié)點(diǎn)將數(shù)據(jù)包頭中Checkout字段值設(shè)為1;
情況三:如果數(shù)據(jù)包沿原路徑返回直到最后一跳即到達(dá)消費(fèi)者的接入路由器,數(shù)據(jù)包仍未被驗(yàn)證,即Checkout字段值為0,此時(shí)該接入路由器節(jié)點(diǎn)即為需驗(yàn)證節(jié)點(diǎn),此時(shí),接入路由器將負(fù)責(zé)數(shù)據(jù)包驗(yàn)證工作。
進(jìn)一步的,所述情況二內(nèi)容在節(jié)點(diǎn)上的請(qǐng)求頻率門限的確定為:路由器節(jié)點(diǎn)根據(jù)最近的請(qǐng)求情況為每一類請(qǐng)求的內(nèi)容的請(qǐng)求次數(shù)計(jì)算出一個(gè)平均值E,當(dāng)對(duì)于某種內(nèi)容的請(qǐng)求次數(shù)超過節(jié)點(diǎn)收到的內(nèi)容請(qǐng)求的平均值E時(shí),節(jié)點(diǎn)則對(duì)該內(nèi)容進(jìn)行驗(yàn)證。
進(jìn)一步的,所述驗(yàn)證字段為在數(shù)據(jù)包的保留字段中新增加一個(gè)HopLimit字段,用于表示興趣包的生存時(shí)間值。
進(jìn)一步的,所述確定進(jìn)行驗(yàn)證的節(jié)點(diǎn)根據(jù)驗(yàn)證字段判斷執(zhí)行節(jié)點(diǎn)驗(yàn)證流程包括步驟:確定進(jìn)行驗(yàn)證的節(jié)點(diǎn)利用本節(jié)點(diǎn)獲取到的公鑰對(duì)數(shù)據(jù)包重新計(jì)算簽名如RSA算法,若簽名與內(nèi)容提供商提供的簽名一致則驗(yàn)證通過,節(jié)點(diǎn)將數(shù)據(jù)包轉(zhuǎn)發(fā)至下一跳;若重新計(jì)算得到簽名與內(nèi)容提供商提供的簽名不一致,即表示簽名驗(yàn)證不通過,則該節(jié)點(diǎn)檢查返回?cái)?shù)據(jù)包的HopLimit是否為0,如果為0,則將InterestReturn包轉(zhuǎn)發(fā)至下一跳,并依次轉(zhuǎn)發(fā)至消費(fèi)者,通告消費(fèi)者數(shù)據(jù)包驗(yàn)證不通過且HopLimit值為0;如果不為0,節(jié)點(diǎn)則利用PIT內(nèi)對(duì)于該請(qǐng)求的記錄重新構(gòu)造請(qǐng)求信息,然后復(fù)制該HopLimit的值,并丟棄數(shù)據(jù)包;最后,節(jié)點(diǎn)將上述HopLimit值添加到新構(gòu)造的請(qǐng)求當(dāng)中,并將該請(qǐng)求轉(zhuǎn)發(fā)至下一跳,向其他路徑進(jìn)行請(qǐng)求。
進(jìn)一步的,所述興趣包的PacketType值為0,數(shù)據(jù)包PacketType值為1,InterestReturn包的值為2,ReturnCode的不同值表示不同的錯(cuò)誤情況,消費(fèi)者通過檢查ReturnCode的值即可探查到內(nèi)容獲取失敗的原因。
本發(fā)明的優(yōu)點(diǎn)及有益效果如下:
1、本發(fā)明標(biāo)識(shí)是否已經(jīng)進(jìn)行驗(yàn)證操作Checkout字段只占1個(gè)比特,因此其在數(shù)據(jù)包中所占的開銷很少。
2、利用基于內(nèi)容名的路由方式,使中間路由器可以對(duì)內(nèi)容目標(biāo)進(jìn)行驗(yàn)證,盡早發(fā)現(xiàn)虛假內(nèi)容,并停止向下游傳遞該虛假內(nèi)容,因此避免了傳送虛假內(nèi)容而造成網(wǎng)絡(luò)資源的浪費(fèi)。
3、對(duì)內(nèi)容對(duì)象進(jìn)行驗(yàn)證的ICN路由器會(huì)重構(gòu)并重發(fā)請(qǐng)求,盡最大努力為消費(fèi)者獲取正確內(nèi)容,保證服務(wù)質(zhì)量。
附圖說明
圖1是惡意內(nèi)容提供商回復(fù)虛假內(nèi)容示意圖及CCN通信拓?fù)鋱D;
圖2本發(fā)明優(yōu)選實(shí)施例的方案整體流程圖
圖3為本發(fā)明的技術(shù)方案的實(shí)施例1的實(shí)現(xiàn)圖;
圖4為本發(fā)明的技術(shù)方案的實(shí)施例2的實(shí)現(xiàn)圖;
圖5 Checkout字段在數(shù)據(jù)包中的位置;
圖6 HopLimit字段;
圖7 InterestReturn包固定頭部。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、詳細(xì)地描述。所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是,
如圖1所示為本發(fā)明所述的一種應(yīng)對(duì)信息中心網(wǎng)絡(luò)惡意內(nèi)容傳播解決方法的工作流程圖,如圖所示,該方法包括驗(yàn)證節(jié)點(diǎn)確定策略和節(jié)點(diǎn)驗(yàn)證流程兩個(gè)模塊。其中驗(yàn)證節(jié)點(diǎn)確定策略模塊主要用于確定對(duì)內(nèi)容對(duì)象進(jìn)行驗(yàn)證的關(guān)鍵節(jié)點(diǎn),節(jié)點(diǎn)驗(yàn)證流程則是關(guān)鍵節(jié)點(diǎn)確定后節(jié)點(diǎn)對(duì)內(nèi)容對(duì)象簽名進(jìn)行驗(yàn)證的流程。
本方案提出在請(qǐng)求的內(nèi)容對(duì)象包的保留字段中添加1比特的Checkout字段(在數(shù)據(jù)包中用C表示,如圖5所示),數(shù)據(jù)傳輸路徑上的節(jié)點(diǎn)能夠根據(jù)該字段值來判別數(shù)據(jù)包簽名是否已經(jīng)被驗(yàn)證。當(dāng)Checkout字段取值為0時(shí)代表數(shù)據(jù)包沒有被驗(yàn)證,當(dāng)Checkout字段取值為1時(shí)代表簽名已經(jīng)被驗(yàn)證。值得注意的是,Checkout字段只占1個(gè)比特,因此其在數(shù)據(jù)包中所占的開銷很少,這也是本方案的優(yōu)點(diǎn)之一。
我們將本方法分為兩部分(整體方案如圖2所示),即:完成簽名驗(yàn)證工作節(jié)點(diǎn)確定策略以及節(jié)點(diǎn)驗(yàn)證流程。綜合考慮CCN節(jié)點(diǎn)自身?xiàng)l件和節(jié)點(diǎn)緩存策略,我們提出完成簽名驗(yàn)證工作節(jié)點(diǎn)的確定策略。共有三種情況:
其一:轉(zhuǎn)發(fā)路徑上每個(gè)節(jié)點(diǎn)根據(jù)自身的緩存策略決定緩存返回的內(nèi)容時(shí),無論數(shù)據(jù)包中Checkout字段是否為1,該節(jié)點(diǎn)對(duì)返回?cái)?shù)據(jù)包的簽名進(jìn)行驗(yàn)證;如果簽名驗(yàn)證通過,節(jié)點(diǎn)將數(shù)據(jù)包頭中Checkout字段的值設(shè)為1。
其二:如果內(nèi)容在該節(jié)點(diǎn)上的請(qǐng)求頻率超過節(jié)點(diǎn)請(qǐng)求門限,且驗(yàn)證字段為0,節(jié)點(diǎn)需對(duì)收到的數(shù)據(jù)包進(jìn)行驗(yàn)證。同樣地,如果驗(yàn)證成功,節(jié)點(diǎn)將數(shù)據(jù)包頭中Checkout字段值設(shè)為1。針對(duì)如何確定請(qǐng)求門限這一問題,一個(gè)可行方案是:路由器節(jié)點(diǎn)根據(jù)最近的請(qǐng)求情況為每一類請(qǐng)求的內(nèi)容的請(qǐng)求次數(shù)計(jì)算出一個(gè)平均值E。當(dāng)對(duì)于某種內(nèi)容的請(qǐng)求次數(shù)超過節(jié)點(diǎn)收到的內(nèi)容請(qǐng)求的平均值E時(shí),節(jié)點(diǎn)則對(duì)該內(nèi)容進(jìn)行驗(yàn)證。
其三:如果數(shù)據(jù)包沿原路徑返回直到最后一跳(消費(fèi)者的接入路由器),數(shù)據(jù)包仍未被驗(yàn)證,即Checkout字段值為0,此時(shí),接入路由器將負(fù)責(zé)驗(yàn)證工作。
在本方案中,當(dāng)某一路由器收到數(shù)據(jù)包時(shí),首先判斷是否需要緩存該內(nèi)容,其次依次進(jìn)行第二、第三種情況的判斷。若傳輸路徑上某節(jié)點(diǎn)對(duì)返回的數(shù)據(jù)包簽名進(jìn)行了驗(yàn)證,它便將Checkout字段標(biāo)記為1;其他節(jié)點(diǎn)若無需緩存該內(nèi)容,則不再對(duì)該數(shù)據(jù)包進(jìn)行驗(yàn)證。
上述內(nèi)容是確定驗(yàn)證節(jié)點(diǎn)的策略以及三種情況在某一節(jié)點(diǎn)中的判別順序。當(dāng)某節(jié)點(diǎn)需要對(duì)數(shù)據(jù)包簽名進(jìn)行驗(yàn)證時(shí),該節(jié)點(diǎn)開始執(zhí)行節(jié)點(diǎn)驗(yàn)證流程。
在設(shè)計(jì)節(jié)點(diǎn)驗(yàn)證流程時(shí),由于在數(shù)據(jù)包中并沒有類似于HopLimit的字段,而對(duì)于興趣包HopLimit實(shí)時(shí)值的記錄非常重要,該值將決定是否重新構(gòu)造請(qǐng)求信息,因此提出在數(shù)據(jù)包的保留字段中新增加一個(gè)HopLimit字段,當(dāng)請(qǐng)求包被發(fā)送到內(nèi)容提供商時(shí),內(nèi)容提供商復(fù)制請(qǐng)求包的HopLimit值,并將其添加到自己的HopLimit字段當(dāng)中,然后再將數(shù)據(jù)包裝發(fā)給下游節(jié)點(diǎn)。新增加的HopLimit字段如附圖6所示。
節(jié)點(diǎn)驗(yàn)證流程的主要內(nèi)容是:節(jié)點(diǎn)利用本節(jié)點(diǎn)獲取到的公鑰對(duì)數(shù)據(jù)包重新計(jì)算簽名,若簽名與內(nèi)容提供商提供的簽名一致則驗(yàn)證通過,節(jié)點(diǎn)將數(shù)據(jù)包轉(zhuǎn)發(fā)至下一跳;若重新計(jì)算得到簽名與內(nèi)容提供商提供的簽名不一致,即表示簽名驗(yàn)證不通過,則該節(jié)點(diǎn)檢查返回?cái)?shù)據(jù)包的HopLimit是否為0,如果為0,則將InterestReturn包(固定頭部如圖7所示)轉(zhuǎn)發(fā)至下一跳,并依次轉(zhuǎn)發(fā)至消費(fèi)者,通告消費(fèi)者數(shù)據(jù)包驗(yàn)證不通過且HopLimit值為0。如果不為0,節(jié)點(diǎn)則利用PIT(Pending Interest Table)內(nèi)對(duì)于該請(qǐng)求的記錄重新構(gòu)造請(qǐng)求信息,然后復(fù)制該HopLimit的值,并丟棄數(shù)據(jù)包。最后,節(jié)點(diǎn)將上述HopLimit值添加到新構(gòu)造的請(qǐng)求當(dāng)中,并將該請(qǐng)求轉(zhuǎn)發(fā)至下一跳,向其他路徑進(jìn)行請(qǐng)求。
圖7是InterestReturn包的固定頭部。Interest包、數(shù)據(jù)包以及InterestReturn包的固定首部具有相似的結(jié)構(gòu)。其中Interest包的PacketType值為0,數(shù)據(jù)包PacketType值為1,InterestReturn包的值為2。ReturnCode的不同值表示不同的錯(cuò)誤情況,消費(fèi)者通過檢查ReturnCode的值即可探查到內(nèi)容獲取失敗的原因。
實(shí)施例1:
圖3所示為CCN通信拓?fù)鋱D。如圖所示,鏈路上實(shí)線箭頭標(biāo)識(shí)的是用戶興趣包的發(fā)送過程,虛線箭頭標(biāo)識(shí)的是內(nèi)容提供商回復(fù)內(nèi)容對(duì)象的過程,R1、R3、R5為傳輸路徑上的中間路由器。
步驟301:消費(fèi)者向網(wǎng)絡(luò)發(fā)送請(qǐng)求①,到達(dá)路由器R1,R1在PIT表中添加該請(qǐng)求信息,同時(shí)根據(jù)FIB將該請(qǐng)求興趣包向上游節(jié)點(diǎn)轉(zhuǎn)發(fā)②→④。
步驟302:惡意內(nèi)容提供商P1收到興趣包后,復(fù)制興趣包中HopLimit值,并將興趣包丟棄。P1偽造內(nèi)容對(duì)象并將復(fù)制的HopLimit值添加到內(nèi)容對(duì)象中,然后用正確的公鑰進(jìn)行簽名,將簽名后的內(nèi)容對(duì)象按原路由反向路徑轉(zhuǎn)發(fā)至下一跳⑤,內(nèi)容對(duì)象到達(dá)R5,R5根據(jù)緩存決定策略決定緩存該內(nèi)容。
步驟303:R5執(zhí)行節(jié)點(diǎn)驗(yàn)證流程,R5利用本節(jié)點(diǎn)獲取到的公鑰對(duì)數(shù)據(jù)包重新計(jì)算簽名:
(1)若R5對(duì)當(dāng)前內(nèi)容對(duì)象重新計(jì)算得到的簽名與內(nèi)容提供商提供的簽名一致,R5將數(shù)據(jù)包轉(zhuǎn)發(fā)至下一跳,并沿原路由返回至消費(fèi)者⑥→⑧。
(2)若R5對(duì)當(dāng)前內(nèi)容對(duì)象重新計(jì)算得到的簽名與內(nèi)容提供商提供的簽名不一致,R5檢查返回內(nèi)容對(duì)象的HopLimit,此時(shí)HopLimtit值為0,R5丟棄數(shù)據(jù)包,將InterestReturn包轉(zhuǎn)發(fā)至下一跳,并依次轉(zhuǎn)發(fā)至消費(fèi)者⑥→⑧,通告消費(fèi)者數(shù)據(jù)包簽名驗(yàn)證未通過且HopLimit到期。
(3)若R5對(duì)當(dāng)前內(nèi)容對(duì)象重新計(jì)算得到的簽名與內(nèi)容提供商提供的簽名不一致,R5檢查返回內(nèi)容對(duì)象的HopLimit,此時(shí)HopLimtit值不為0,R5利用PIT內(nèi)對(duì)于該請(qǐng)求的記錄重新構(gòu)造請(qǐng)求信息,然后復(fù)制該HopLimit值,并丟棄數(shù)據(jù)包。最后,R5將上述HopLimit值添加到重構(gòu)請(qǐng)求包,將請(qǐng)求轉(zhuǎn)發(fā)至下一跳,向其他路徑進(jìn)行請(qǐng)求。
步驟304:根據(jù)上述規(guī)則,R5根據(jù)簽名驗(yàn)證結(jié)果執(zhí)行相應(yīng)操作。
實(shí)施例2:
圖4為網(wǎng)絡(luò)運(yùn)行中的另一種情況。
步驟401:消費(fèi)者向網(wǎng)絡(luò)發(fā)送請(qǐng)求,中間路由器轉(zhuǎn)發(fā)興趣包至內(nèi)容提供商P1①→④。
步驟402:惡意內(nèi)容提供商P1收到興趣包后,復(fù)制興趣包中HopLimit值,并將興趣包丟棄。P1偽造內(nèi)容對(duì)象并將復(fù)制的HopLimit值添加到內(nèi)容對(duì)象中,然后用正確的公鑰進(jìn)行簽名,將簽名后的內(nèi)容對(duì)象按原路由回復(fù)⑤→⑦。
步驟403:R1檢查收到的內(nèi)容對(duì)象,此時(shí)Checkout字段值為0,消費(fèi)者接入路由器R1負(fù)責(zé)對(duì)內(nèi)容對(duì)象進(jìn)行驗(yàn)證。
(1)若R1簽名驗(yàn)證為通過R1將數(shù)據(jù)包發(fā)送給用戶;
(2)若R1簽名驗(yàn)證結(jié)果為未通過且內(nèi)容對(duì)象HopLimit為0,R1丟棄數(shù)據(jù)包,將InterestReturn包轉(zhuǎn)發(fā)至下一跳,并依次轉(zhuǎn)發(fā)至消費(fèi)者⑥→⑧。
(3)若R1簽名驗(yàn)證結(jié)果為未通過且內(nèi)容對(duì)象HopLimit不為0,R1利用PIT內(nèi)對(duì)于該請(qǐng)求的記錄重新構(gòu)造請(qǐng)求信息,并復(fù)制內(nèi)容對(duì)象HopLimit值,丟棄數(shù)據(jù)包。最后,R1將上述HopLimit值添加到重構(gòu)請(qǐng)求包,將請(qǐng)求轉(zhuǎn)發(fā)至下一跳,向其他路徑進(jìn)行請(qǐng)求。
步驟404:根據(jù)上述規(guī)則,R1根據(jù)簽名驗(yàn)證結(jié)果執(zhí)行相應(yīng)操作。
以上這些實(shí)施例應(yīng)理解為僅用于說明本發(fā)明而不用于限制本發(fā)明的保護(hù)范圍。在閱讀了本發(fā)明的記載的內(nèi)容之后,技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等效變化和修飾同樣落入本發(fā)明權(quán)利要求所限定的范圍。