吳志軍,徐新然
(中國(guó)民航大學(xué)電子信息與自動(dòng)化學(xué)院,天津 300300)
廣域信息安全管理系統(tǒng)[1](SWIM,system wide information management)作為新一代空中交通管理(ATM,air traffic management)信息系統(tǒng)的基礎(chǔ),為各航空系統(tǒng)提供高效、靈活、統(tǒng)一的數(shù)據(jù)交互服務(wù)。隨著民航業(yè)快速發(fā)展,航空信息數(shù)據(jù)日益增加,不同ATM 系統(tǒng)間的信息交換愈加頻繁,對(duì)SWIM 數(shù)據(jù)的分發(fā)效率提出了更高要求。因此,研究降低SWIM 數(shù)據(jù)傳輸延遲的措施,對(duì)保證SWIM 信息實(shí)時(shí)性、服務(wù)連續(xù)性和決策正確性具有重要意義。
命名數(shù)據(jù)網(wǎng)絡(luò)[2](NDN,named data networking)是一種流行的信息中心網(wǎng)絡(luò)[3](ICN,information-centric networking)架構(gòu),采用全新的網(wǎng)絡(luò)協(xié)議棧,能實(shí)現(xiàn)網(wǎng)絡(luò)層解析信息名稱、路由緩存信息數(shù)據(jù)等功能,從而較好地解決了計(jì)算機(jī)網(wǎng)絡(luò)中存在的擴(kuò)展性、實(shí)時(shí)性和動(dòng)態(tài)性問(wèn)題[4],減輕數(shù)據(jù)源服務(wù)節(jié)點(diǎn)負(fù)載,提高網(wǎng)絡(luò)性能。目前,研究人員已經(jīng)對(duì)NDN 進(jìn)行深入研究,并將其應(yīng)用于多種網(wǎng)絡(luò)。文獻(xiàn)[5]提出了將NDN 轉(zhuǎn)發(fā)模型應(yīng)用于車聯(lián)網(wǎng),以解決車聯(lián)網(wǎng)應(yīng)用信息共享的安全性和實(shí)時(shí)性問(wèn)題。文獻(xiàn)[6]基于數(shù)據(jù)命名方式設(shè)計(jì)了一種簡(jiǎn)單的車輛信息分發(fā)應(yīng)用,仿真結(jié)果顯示該數(shù)據(jù)命名方式可有效促進(jìn)興趣包和數(shù)據(jù)包的轉(zhuǎn)發(fā),且可實(shí)現(xiàn)數(shù)據(jù)快速傳輸。文獻(xiàn)[7]分析了NDN 在無(wú)線自組織網(wǎng)絡(luò)中的優(yōu)勢(shì),并結(jié)合無(wú)線自組織網(wǎng)絡(luò)特點(diǎn)對(duì)基于NDN 的兩種轉(zhuǎn)發(fā)策略進(jìn)行分析,為改善轉(zhuǎn)發(fā)策略打下基礎(chǔ)。文獻(xiàn)[8]研究了可在NDN 上運(yùn)行的改進(jìn)Apache Hadoop平臺(tái),驗(yàn)證了在NDN 上運(yùn)行大型、復(fù)雜分布式軟件的可行性,展現(xiàn)了NDN 在分布式應(yīng)用程序中實(shí)現(xiàn)重復(fù)讀取的網(wǎng)絡(luò)緩存前景。文獻(xiàn)[9]為命名數(shù)據(jù)網(wǎng)絡(luò)中的無(wú)線傳感器設(shè)計(jì)了數(shù)據(jù)集同步協(xié)議,確保在各種網(wǎng)絡(luò)狀況下數(shù)據(jù)可用性接近100%,且開(kāi)銷可以忽略不計(jì)。由此可見(jiàn),NDN 路由機(jī)制在降低網(wǎng)絡(luò)數(shù)據(jù)傳輸時(shí)延和網(wǎng)絡(luò)負(fù)載方面具有較大優(yōu)勢(shì),可為改善SWIM 網(wǎng)絡(luò)性能提供了一種解決方案。
目前,關(guān)于SWIM 的研究主要集中于SWIM 的架構(gòu)以及SWIM 網(wǎng)絡(luò)的安全性問(wèn)題[10],文獻(xiàn)[11]描述了SWIM 網(wǎng)絡(luò)系統(tǒng)信息實(shí)時(shí)共享的重要性,提出了基于實(shí)時(shí)性的SWIM 架構(gòu)以實(shí)現(xiàn)各應(yīng)用信息傳輸?shù)膶?shí)時(shí)性。然而,在SWIM 網(wǎng)絡(luò)路由方面還未提出有效措施,而網(wǎng)絡(luò)中路由節(jié)點(diǎn)故障難以避免,數(shù)據(jù)傳輸?shù)母邥r(shí)延成為SWIM 信息實(shí)時(shí)性的最大威脅。在對(duì)SWIM 架構(gòu)和NDN路由機(jī)制研究的基礎(chǔ)上,提出基于NDN 的SWIM 網(wǎng)絡(luò)路由機(jī)制,以降低網(wǎng)絡(luò)平均負(fù)載,解決因SWIM 路由節(jié)點(diǎn)故障引起的傳輸時(shí)延過(guò)高等問(wèn)題,從而提高SWIM網(wǎng)絡(luò)的請(qǐng)求響應(yīng)速度,保證SWIM 信息的實(shí)時(shí)性。
SWIM 服務(wù)信息在數(shù)據(jù)交換的過(guò)程中主要使用兩種類型的傳輸包,即興趣包和數(shù)據(jù)包。興趣包主要包括:內(nèi)容名、選擇器和隨機(jī)數(shù)等字段;數(shù)據(jù)包主要包括:內(nèi)容名、簽名、簽名信息和數(shù)據(jù)等字段。
SWIM 中的路由節(jié)點(diǎn)主要維護(hù)3 種表結(jié)構(gòu)以實(shí)現(xiàn)路由轉(zhuǎn)發(fā),即轉(zhuǎn)發(fā)信息表(FIB,forwarding information base)、待定請(qǐng)求表(PIT,pending interest table)和內(nèi)容緩存(CS,content store),其基本格式如圖1所示。
圖1 SWIM 路由中3 種表結(jié)構(gòu)Fig.1 Three related structures of SWIM routing
FIB 負(fù)責(zé)記錄興趣包所要轉(zhuǎn)發(fā)的下一跳節(jié)點(diǎn)與相應(yīng)信息命名的映射,用以確定路由方向(最長(zhǎng)匹配原則);PIT 將跟蹤并記錄興趣包已到達(dá)但預(yù)期數(shù)據(jù)未到達(dá)的輸入端口;CS 作為節(jié)點(diǎn)的本地緩存,用于存儲(chǔ)所經(jīng)過(guò)信息的副本。FIB 中接口有3 種狀態(tài)[12]:
1)端口狀態(tài)正常(GREEN),即由該端口發(fā)送興趣包,相應(yīng)的數(shù)據(jù)包可以返回;
2)端口狀態(tài)未知(YELLOW),端口可能長(zhǎng)時(shí)間未使用時(shí)會(huì)轉(zhuǎn)入該狀態(tài);
3)端口狀態(tài)異常(RED),當(dāng)出現(xiàn)節(jié)點(diǎn)故障或鏈路失效時(shí),相關(guān)端口會(huì)轉(zhuǎn)入該狀態(tài)。
1.1.1 SWIM 信息數(shù)據(jù)的命名
目前SWIM 提供的數(shù)據(jù)交換服務(wù)主要有4 種:飛行數(shù)據(jù)交換服務(wù)、航行情報(bào)交換服務(wù)、氣象信息交換服務(wù)及其他服務(wù)。
SWIM 信息請(qǐng)求者請(qǐng)求信息或信息提供者發(fā)布信息時(shí),將使用SWIM 的信息交換服務(wù)對(duì)信息的特征進(jìn)行提取、描述。這些特征可作為命名的參考,例如飛機(jī)的全球唯一航班標(biāo)識(shí)符(GUFI)可結(jié)合SWIM 數(shù)據(jù)特點(diǎn)具體命名,規(guī)則如表1所示。
表1 SWIM 信息命名規(guī)則Tab.1 SWIM information naming rule
SWIM 網(wǎng)絡(luò)中的興趣包和數(shù)據(jù)包采用內(nèi)容名作為唯一標(biāo)識(shí),實(shí)現(xiàn)了命名的一致性,具有可自驗(yàn)證特點(diǎn),簡(jiǎn)化了內(nèi)容的安全性檢測(cè)。此外,這種命名方式為相關(guān)的路由轉(zhuǎn)發(fā)方式和緩存機(jī)制打下了基礎(chǔ)。這種基于內(nèi)容尋址的通信模式將興趣包與數(shù)據(jù)源地址隔離開(kāi),實(shí)現(xiàn)相同前綴內(nèi)容名的聚合,避免了大量信息數(shù)據(jù)引起的路由表膨脹,從而提高了路由工作效率。另外,層次化的命名方式使得內(nèi)容命名具有很好的擴(kuò)展性,保證了SWIM 數(shù)據(jù)命名的可用性。
1.1.2 SWIM 網(wǎng)內(nèi)路由緩存機(jī)制
SWIM 自身雖然不會(huì)產(chǎn)生信息數(shù)據(jù),但其作為各ATM 系統(tǒng)信息交互共享的平臺(tái),所有的應(yīng)用服務(wù)數(shù)據(jù)都將流入SWIM。隨著航空業(yè)務(wù)和航空大數(shù)據(jù)發(fā)展,SWIM 需要處理的數(shù)據(jù)量呈現(xiàn)快速增長(zhǎng)的趨勢(shì),SWIM“虛擬信息池”的概念意味著其將存儲(chǔ)和傳輸大量的航空數(shù)據(jù),同時(shí)對(duì)SWIM 網(wǎng)絡(luò)傳輸信息的性能也提出了更高要求。SWIM 網(wǎng)絡(luò)通過(guò)路由節(jié)點(diǎn)內(nèi)的緩存機(jī)制,即對(duì)經(jīng)過(guò)路由節(jié)點(diǎn)的數(shù)據(jù)包進(jìn)行緩存,可實(shí)現(xiàn)對(duì)后續(xù)相同資源請(qǐng)求的快速響應(yīng),減少網(wǎng)絡(luò)中的冗余流量,降低數(shù)據(jù)傳輸時(shí)延,節(jié)省網(wǎng)絡(luò)帶寬,減輕數(shù)據(jù)源服務(wù)器負(fù)載,提高數(shù)據(jù)復(fù)用率。例如,很多部門(mén)都需要?dú)庀蟛块T(mén)發(fā)布的氣象信息,當(dāng)某個(gè)部門(mén)從氣象部門(mén)的SWIM 應(yīng)用獲取數(shù)據(jù)后,相應(yīng)的路由路徑中會(huì)對(duì)氣象信息進(jìn)行緩存;當(dāng)后續(xù)部門(mén)發(fā)出同樣請(qǐng)求后,如果轉(zhuǎn)發(fā)路徑中的路由節(jié)點(diǎn)內(nèi)緩存了相應(yīng)的氣象信息,則不需要再?gòu)脑磾?shù)據(jù)節(jié)點(diǎn)獲取相關(guān)數(shù)據(jù),減少了路由轉(zhuǎn)發(fā)次數(shù),提高了獲取內(nèi)容數(shù)據(jù)的效率。
1.1.3 信息的路由轉(zhuǎn)發(fā)
在SWIM 服務(wù)發(fā)布之后,對(duì)于消費(fèi)者而言,為了獲取該服務(wù)的信息,需要發(fā)出包含期望內(nèi)容名稱的興趣包;對(duì)于生產(chǎn)者而言,在接收到合法用戶的興趣包請(qǐng)求后,應(yīng)返回相應(yīng)的數(shù)據(jù)包。路由節(jié)點(diǎn)對(duì)興趣包和數(shù)據(jù)包的處理過(guò)程如圖2所示。
圖2 路由轉(zhuǎn)發(fā)過(guò)程Fig.2 Route forwarding process
在興趣包進(jìn)入路由節(jié)點(diǎn)后,首先將在CS 中查找是否有與消費(fèi)者期望內(nèi)容匹配的數(shù)據(jù)緩存,如果有,則直接將相應(yīng)的數(shù)據(jù)包返回給消費(fèi)者,同時(shí)丟棄該興趣包;如果沒(méi)有,則在PIT 中查找是否有與期望內(nèi)容匹配的表項(xiàng),如果有,說(shuō)明之前已有內(nèi)容名相同的興趣包轉(zhuǎn)發(fā)過(guò),只需將本次興趣包的來(lái)源端口添加到PIT 中,并丟棄該興趣包;如果CS 和PIT 中均沒(méi)有與之匹配的表項(xiàng),則需要在FIB 中查找,如果FIB 中存在與興趣包內(nèi)容名匹配的表項(xiàng),則根據(jù)轉(zhuǎn)發(fā)策略將興趣包從對(duì)應(yīng)端口進(jìn)行轉(zhuǎn)發(fā),并在PIT 中記錄該興趣包對(duì)應(yīng)的內(nèi)容名稱以及接收該興趣包的端口。如果FIB 中也無(wú)法匹配興趣包的內(nèi)容名稱,說(shuō)明無(wú)法經(jīng)該節(jié)點(diǎn)獲取所需的數(shù)據(jù)包,此時(shí)將丟棄該興趣包,并返回NACK 包,告訴請(qǐng)求端,請(qǐng)求端將嘗試向其他接口重新發(fā)送該請(qǐng)求包,直到接收到數(shù)據(jù)包或者請(qǐng)求超時(shí)。
當(dāng)興趣包由路由節(jié)點(diǎn)轉(zhuǎn)發(fā)到數(shù)據(jù)源節(jié)點(diǎn)后,數(shù)據(jù)源節(jié)點(diǎn)將數(shù)據(jù)打包,并沿著PIT 中存儲(chǔ)的發(fā)送端口往回發(fā)送數(shù)據(jù)包,轉(zhuǎn)發(fā)完后將刪除相應(yīng)的PIT 表項(xiàng),同時(shí)依據(jù)緩存策略對(duì)數(shù)據(jù)包進(jìn)行緩存。
航空業(yè)對(duì)信息傳輸?shù)募皶r(shí)性和有效性提出了很高要求。雖然路由節(jié)點(diǎn)的緩存策略可降低數(shù)據(jù)的傳輸延遲,提高對(duì)請(qǐng)求的響應(yīng)速度,但當(dāng)出現(xiàn)路由節(jié)點(diǎn)故障或鏈路失效時(shí),根據(jù)現(xiàn)有的轉(zhuǎn)發(fā)機(jī)制,路由節(jié)點(diǎn)將查詢FIB,尋找與請(qǐng)求內(nèi)容匹配的其他端口,然后通過(guò)該端口轉(zhuǎn)發(fā)該興趣包,直到接收到數(shù)據(jù)包或請(qǐng)求超時(shí)。然而,如果路由節(jié)點(diǎn)中的FIB 沒(méi)有可用的其他端口可以轉(zhuǎn)發(fā)該內(nèi)容,將導(dǎo)致請(qǐng)求者無(wú)法獲取請(qǐng)求數(shù)據(jù)。為保證出現(xiàn)路由故障后SWIM 網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)男剩岢鲆环N重路由機(jī)制。該方法可在監(jiān)測(cè)到鏈路故障或節(jié)點(diǎn)失效后,快速尋找到新的路由轉(zhuǎn)發(fā)路徑,降低傳輸延遲和丟包率,保障SWIM 網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)臅r(shí)效性。
1.2.1 重路由機(jī)制相關(guān)定義
重路由轉(zhuǎn)發(fā)包包括:標(biāo)識(shí)位、內(nèi)容名、起始節(jié)點(diǎn)標(biāo)識(shí)、失效節(jié)點(diǎn)標(biāo)識(shí)和隨機(jī)數(shù),可用于尋找重路由路徑。
重路由確認(rèn)包包括:標(biāo)識(shí)位、內(nèi)容名和目標(biāo)節(jié)點(diǎn)標(biāo)識(shí),可用于確認(rèn)重路由路徑。
重路由表包括:標(biāo)識(shí)位、內(nèi)容名和請(qǐng)求包來(lái)源接口。
其中,標(biāo)識(shí)位是路由節(jié)點(diǎn)識(shí)別重路由是針對(duì)興趣包還是數(shù)據(jù)包的依據(jù)。如果是興趣包,則其值為0;是數(shù)據(jù)包,則其值為1。內(nèi)容名即為興趣包/數(shù)據(jù)包中的內(nèi)容名;起始節(jié)點(diǎn)標(biāo)識(shí)用于標(biāo)記發(fā)起重路由請(qǐng)求的節(jié)點(diǎn),當(dāng)重路由請(qǐng)求包找到滿足條件的下一跳節(jié)點(diǎn)后,該標(biāo)識(shí)即作為重路由確認(rèn)包的目標(biāo)節(jié)點(diǎn)標(biāo)識(shí);失效節(jié)點(diǎn)標(biāo)識(shí)用于標(biāo)記失效節(jié)點(diǎn),主要用于尋找路由失效前失效節(jié)點(diǎn)的下一跳節(jié)點(diǎn);隨機(jī)數(shù)的作用與興趣包中的隨機(jī)數(shù)字段作用一致。
1.2.2 興趣包和數(shù)據(jù)包的重路由
當(dāng)興趣包或數(shù)據(jù)包到達(dá)節(jié)點(diǎn)后,根據(jù)路由轉(zhuǎn)發(fā)規(guī)則,決定其下一跳的轉(zhuǎn)發(fā)端口。當(dāng)某個(gè)端口指向的下一跳節(jié)點(diǎn)出現(xiàn)故障或鏈路失效時(shí),該端口的狀態(tài)為RED。此時(shí),查詢FIB 和PIT,確認(rèn)經(jīng)該端口轉(zhuǎn)發(fā)的內(nèi)容名,并生成重路由請(qǐng)求包,并將該請(qǐng)求包向除了狀態(tài)為RED 外的其他端口進(jìn)行轉(zhuǎn)發(fā)。路由節(jié)點(diǎn)接收到重路由請(qǐng)求包后的處理過(guò)程如圖3所示。
圖3 重路由請(qǐng)求包的處理過(guò)程Fig.3 Rerouting request packet process flow
當(dāng)路由節(jié)點(diǎn)接收到重路由請(qǐng)求包后,首先判斷當(dāng)前節(jié)點(diǎn)是否為失效節(jié)點(diǎn)的相鄰節(jié)點(diǎn),如果不是,則根據(jù)請(qǐng)求包的各個(gè)字段及來(lái)源端口,創(chuàng)建重路由表項(xiàng);如果是失效節(jié)點(diǎn)的相鄰節(jié)點(diǎn),且標(biāo)識(shí)位為0,說(shuō)明是針對(duì)興趣包轉(zhuǎn)發(fā)的重路由,故查詢FIB 中是否有匹配的字段,如果沒(méi)有,以同樣方式創(chuàng)建重路由表項(xiàng);如果標(biāo)識(shí)位為1,說(shuō)明是針對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)的重路由,故查詢PIT 中是否有匹配的字段,如果沒(méi)有,以同樣方式創(chuàng)建重路由表項(xiàng)。如果FIB 或PIT 中有匹配的表項(xiàng),說(shuō)明找到一條冗余路徑傳輸相關(guān)的興趣包和數(shù)據(jù)包,此時(shí)返回一個(gè)重路由確認(rèn)包。節(jié)點(diǎn)對(duì)重路由確認(rèn)包的處理過(guò)程如圖4所示。
圖4 重路由確認(rèn)包的處理過(guò)程Fig.4 Rerouting confirmation packet processing flow
當(dāng)路由節(jié)點(diǎn)接收到重路由確認(rèn)包后,根據(jù)重路由包的各個(gè)字段,查詢重路由表中是否有匹配的表項(xiàng),如果沒(méi)有,則丟棄該重路由確認(rèn)包;如果有,根據(jù)標(biāo)識(shí)位的值、內(nèi)容名和來(lái)源端口分別更新PIT 和FIB 的表項(xiàng)并進(jìn)行轉(zhuǎn)發(fā),直到轉(zhuǎn)發(fā)到起始節(jié)點(diǎn)為止。
采用ndnSIM[13]進(jìn)行仿真實(shí)驗(yàn),模擬SWIM 網(wǎng)絡(luò)中氣象信息和飛行信息的訂閱發(fā)布過(guò)程,請(qǐng)求信息方為消費(fèi)者,發(fā)布信息方為生產(chǎn)者,仿真拓?fù)浣Y(jié)構(gòu)采用GEANT 網(wǎng)絡(luò)。拓?fù)浣Y(jié)構(gòu)共有22 個(gè)節(jié)點(diǎn)和36 條鏈路,鏈路間的帶寬為1 Mbps。設(shè)置10 個(gè)消費(fèi)者節(jié)點(diǎn),其中4 個(gè)消費(fèi)者節(jié)點(diǎn)只請(qǐng)求氣象信息,4 個(gè)消費(fèi)者節(jié)點(diǎn)只請(qǐng)求飛行信息,2 個(gè)消費(fèi)者節(jié)點(diǎn)既請(qǐng)求氣象信息又請(qǐng)求飛行信息;設(shè)置2 個(gè)生產(chǎn)者節(jié)點(diǎn),1 個(gè)為氣象信息生產(chǎn)者,另1 個(gè)為飛行信息生產(chǎn)者,每個(gè)消費(fèi)者節(jié)點(diǎn)每秒發(fā)送100 個(gè)請(qǐng)求。
2.2.1 性能指標(biāo)
1)網(wǎng)絡(luò)平均時(shí)延
網(wǎng)絡(luò)時(shí)延是從節(jié)點(diǎn)第一次發(fā)出請(qǐng)求到收到相應(yīng)數(shù)據(jù)包的時(shí)間。網(wǎng)絡(luò)平均時(shí)延則是所有不同請(qǐng)求網(wǎng)絡(luò)延遲之和的平均值,即
式中:N 為不同節(jié)點(diǎn)中不同請(qǐng)求數(shù)的總和;Di為第i 個(gè)請(qǐng)求的時(shí)延。
2)網(wǎng)絡(luò)平均負(fù)載
所有節(jié)點(diǎn)轉(zhuǎn)發(fā)的興趣包和數(shù)據(jù)包的總字節(jié)數(shù)與節(jié)點(diǎn)數(shù)目的比值,計(jì)算公式為
式中:BI,i和BD,i分別為第i 個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)的興趣包和數(shù)據(jù)包;n 為節(jié)點(diǎn)總數(shù)。
3)平均跳數(shù)
跳數(shù)是興趣包或數(shù)據(jù)包在傳輸過(guò)程中經(jīng)過(guò)的節(jié)點(diǎn)數(shù)。平均跳數(shù)計(jì)算公式為
式中:HI,i為第i 個(gè)興趣包經(jīng)過(guò)的跳數(shù);HD,j為第j 個(gè)數(shù)據(jù)包經(jīng)過(guò)的跳數(shù);l 為興趣包的總數(shù);k 為數(shù)據(jù)包的總數(shù)。
4)平均重傳次數(shù)
重傳是當(dāng)網(wǎng)絡(luò)中興趣包出現(xiàn)丟失或者請(qǐng)求超時(shí)情況時(shí),需要重新發(fā)送興趣包。平均重傳次數(shù)計(jì)算公式為
式中,Ri為第i 個(gè)請(qǐng)求重傳的次數(shù)。
2.2.2 性能分析1)實(shí)驗(yàn)1
兩個(gè)同時(shí)請(qǐng)求氣象信息和飛行信息的消費(fèi)者節(jié)點(diǎn)在0 s 開(kāi)始發(fā)送請(qǐng)求獲取氣象信息,其余消費(fèi)者節(jié)點(diǎn)在3 s 后開(kāi)始發(fā)送請(qǐng)求,采用最佳路由策略[13],分別考慮使用節(jié)點(diǎn)內(nèi)緩存和不使用節(jié)點(diǎn)內(nèi)緩存的情況,每隔1 s 進(jìn)行一次采樣,平均時(shí)延和平均負(fù)載情況如圖5和表2所示。
圖5 平均時(shí)延Fig.5 Average time delay
由圖5和表2可看出,在不使用節(jié)點(diǎn)內(nèi)緩存時(shí),每個(gè)消費(fèi)者都需要從生產(chǎn)者的源節(jié)點(diǎn)獲取數(shù)據(jù),將產(chǎn)生大量的冗余流量,增加網(wǎng)絡(luò)負(fù)載,導(dǎo)致網(wǎng)絡(luò)傳輸時(shí)延上升,影響網(wǎng)絡(luò)性能。而采用節(jié)點(diǎn)緩存策略,部分消費(fèi)者可以從離自己較近的路由節(jié)點(diǎn)獲取緩存過(guò)的內(nèi)容,這將降低路由節(jié)點(diǎn)的傳輸時(shí)延和負(fù)載。
2)實(shí)驗(yàn)2
所有消費(fèi)者節(jié)點(diǎn)在0 s 開(kāi)始發(fā)送請(qǐng)求,在7.5 s 時(shí)隨機(jī)選取某兩個(gè)路由節(jié)點(diǎn)(非生產(chǎn)者和消費(fèi)者節(jié)點(diǎn))間的鏈路,將其狀態(tài)設(shè)為“FailLink”,即模擬節(jié)點(diǎn)失效,每隔1 s 進(jìn)行一次采樣,為反映重路由、最佳路由策略以及泛洪策略[13]在節(jié)點(diǎn)失效后對(duì)網(wǎng)絡(luò)性能的影響,在節(jié)點(diǎn)失效前均采用最佳路由策略,出現(xiàn)節(jié)點(diǎn)失效后,分別采用3 種方法實(shí)現(xiàn)路由路徑重新規(guī)劃,取7~12 s的數(shù)據(jù)進(jìn)行分析。3 種方法的平均時(shí)延、平均跳數(shù)和平均重傳次數(shù)比較如圖6所示。
a)網(wǎng)絡(luò)平均時(shí)延比較
圖6(a)的仿真結(jié)果顯示,在出現(xiàn)節(jié)點(diǎn)失效后,所有方法傳輸時(shí)延均上升,但重路由機(jī)制可較好地控制傳輸時(shí)延上升的程度。因?yàn)樵诔霈F(xiàn)鏈路失效之后,必然會(huì)有興趣包和數(shù)據(jù)包出現(xiàn)丟棄和重傳的現(xiàn)象。重路由機(jī)制是在原路徑基礎(chǔ)上尋找繞過(guò)失效節(jié)點(diǎn)的路由路徑,這在很大程度上可減少興趣包和數(shù)據(jù)包的丟棄和重傳,減輕節(jié)點(diǎn)失效帶來(lái)的影響。
圖6 性能對(duì)比Fig.6 Performance comparison
b)平均跳數(shù)比較
圖6(b)結(jié)果顯示重路由機(jī)制的平均跳數(shù)略高于最佳路由策略,因?yàn)橹芈酚陕窂竭x擇并不是依賴于FIB,而是依據(jù)重路由機(jī)制尋找跨過(guò)失效節(jié)點(diǎn)的冗余路徑,通過(guò)更新路徑中節(jié)點(diǎn)的FIB 和PIT 找到新路徑來(lái)傳輸興趣包和數(shù)據(jù)包,但這并不一定是跳數(shù)最短的路徑;最佳路由策略是根據(jù)FIB 選擇狀態(tài)最好的端口進(jìn)行轉(zhuǎn)發(fā);而泛洪策略會(huì)向所有匹配內(nèi)容的端口進(jìn)行轉(zhuǎn)發(fā),故其平均跳數(shù)最高。
c)平均重傳次數(shù)比較
圖6(c)的仿真結(jié)果顯示重路由機(jī)制的重傳次數(shù)最低。因?yàn)橹芈酚蓹C(jī)制是在鏈路失效前建立最短路徑并尋找繞過(guò)失效鏈路的路由路徑,在確定路徑后,原路徑中未丟棄的興趣包和數(shù)據(jù)包可直接在新路徑中繼續(xù)傳輸,減少了重傳次數(shù);另外兩種方法原路徑中的數(shù)據(jù)包都會(huì)被丟棄,需根據(jù)FIB 確定新的路由路徑之后,由消費(fèi)者重新發(fā)送興趣包,獲取數(shù)據(jù)包。泛洪策略向所有匹配內(nèi)容的端口進(jìn)行轉(zhuǎn)發(fā),故尋找到與興趣包匹配的端口的概率更大,因此其相對(duì)于最佳路由策略的重傳次數(shù)低。
綜合以上對(duì)3 個(gè)指標(biāo)的分析,從SWIM 網(wǎng)絡(luò)的角度來(lái)看,信息實(shí)時(shí)性以及服務(wù)連續(xù)性很重要,故時(shí)延是關(guān)鍵因素。綜合考慮,重路由機(jī)制優(yōu)于另外兩種轉(zhuǎn)發(fā)策略,可減小路由節(jié)點(diǎn)失效對(duì)網(wǎng)絡(luò)造成的影響。
1)基于NDN 路由機(jī)制,結(jié)合SWIM 數(shù)據(jù)的特點(diǎn),設(shè)置了SWIM 服務(wù)數(shù)據(jù)的命名規(guī)則,確定了傳輸包的基本結(jié)構(gòu)和傳輸規(guī)則,提出了基于民航信息有效時(shí)間的路由緩存方式,通過(guò)仿真驗(yàn)證了路由機(jī)制中網(wǎng)絡(luò)緩存可降低民航網(wǎng)絡(luò)的傳輸時(shí)延,提高傳輸效率;
2)提出了基于NDN 的SWIM 網(wǎng)絡(luò)重路由機(jī)制,設(shè)計(jì)了相關(guān)的數(shù)據(jù)結(jié)構(gòu)和重路由規(guī)則,實(shí)驗(yàn)仿真表明該方法可減小路由失效對(duì)網(wǎng)絡(luò)性能的影響,可為SWIM服務(wù)的連續(xù)性提供一定的保障。