郎 登 何
(重慶電子工程職業(yè)學(xué)院人工智能與大數(shù)據(jù)學(xué)院 重慶 401331)
Bidirectional processing
物聯(lián)網(wǎng)(Internet of Things,IoT)是一種新興的信息通信技術(shù)范式,支持分布式計(jì)算和集中式計(jì)算兩種計(jì)算方式[1]。同時(shí),IoT也是一種無(wú)邊界智能網(wǎng)絡(luò),其中海量傳感器、執(zhí)行器和各種通信設(shè)備相互連接,并且可以采用復(fù)雜協(xié)同方式執(zhí)行各種應(yīng)用任務(wù)。隨著IoT的不斷發(fā)展,其網(wǎng)絡(luò)架構(gòu)呈現(xiàn)一種復(fù)雜分布式異構(gòu)網(wǎng)絡(luò)特征[2]。同時(shí),IoT已經(jīng)得到研究者和研究機(jī)構(gòu)的密切關(guān)注,如智能家居、智能電網(wǎng)、智能交通和智能健康等領(lǐng)域[3]。
近年來(lái),IoT路由方面的研究?jī)?nèi)容主要集中在服務(wù)路由選擇、路由節(jié)點(diǎn)能耗和安全路由機(jī)制等方面??紤]網(wǎng)絡(luò)中新相遇節(jié)點(diǎn)分組機(jī)制導(dǎo)致路由選擇精度低的問(wèn)題,文獻(xiàn)[4]提出了一種物聯(lián)網(wǎng)高效服務(wù)模型,該方法通過(guò)分組交換增量計(jì)算出傳輸概率,同時(shí)采用Epidemic機(jī)制產(chǎn)生節(jié)點(diǎn)約束概率,從而組建相遇節(jié)點(diǎn)的數(shù)據(jù)分組機(jī)制。對(duì)于IoT感知節(jié)點(diǎn)路由選擇來(lái)說(shuō),能量受限是制約IoT節(jié)點(diǎn)傳輸效率的一個(gè)瓶頸之一,因此,陶亞男等[5]提出一種基于改進(jìn)貓群算法的路由優(yōu)化策略。該方法引入備份思想,在綜合考慮節(jié)點(diǎn)剩余能量方差、節(jié)點(diǎn)負(fù)載和節(jié)點(diǎn)距離等條件下,保證數(shù)據(jù)傳輸實(shí)時(shí)性。與此同時(shí),開(kāi)放IoT環(huán)境下,IoT的路由機(jī)制容易受到惡意丟包攻擊,張光華等[6]基于RPL協(xié)議提出一種具有信任機(jī)制的安全路由方法,該方法解決了網(wǎng)絡(luò)中非法入侵因素導(dǎo)致的惡意節(jié)點(diǎn)誤判斷問(wèn)題。但是,這些IoT路由方面研究均以無(wú)線傳感器網(wǎng)絡(luò)為數(shù)據(jù)傳輸背景,其網(wǎng)絡(luò)的節(jié)點(diǎn)和路由節(jié)點(diǎn)通常采用電池供電方式,具有能量受限和資源受限等特點(diǎn)。當(dāng)前IoT發(fā)展階段,無(wú)線傳感器網(wǎng)絡(luò)已經(jīng)不是IoT組網(wǎng)的主要組網(wǎng)方式,在部分智能家居和智能健康領(lǐng)域,傳感器主要通過(guò)手機(jī)或者智能網(wǎng)關(guān)將數(shù)據(jù)傳輸?shù)皆贫嘶蛘咂渌?jì)算單元中[2],而這些智能網(wǎng)關(guān)多是固定電源供電。在這些條件下,網(wǎng)關(guān)設(shè)備不存在感知節(jié)點(diǎn)路由選擇[4]、節(jié)點(diǎn)能量受限[5]和節(jié)點(diǎn)的路由安全問(wèn)題[6]。因此,IoT智能網(wǎng)關(guān)路由策略性能成為制約新形勢(shì)下IoT數(shù)據(jù)轉(zhuǎn)發(fā)效率的一大瓶頸。
IoT智能網(wǎng)關(guān)路由策略通常采用自適應(yīng)負(fù)載均衡技術(shù)[7]和多維通信技術(shù)[8],以解決異構(gòu)IoT網(wǎng)絡(luò)數(shù)據(jù)傳輸問(wèn)題,同時(shí)保證海量高采樣率IoT傳感器設(shè)備流數(shù)據(jù)的高效轉(zhuǎn)發(fā)和低延遲特性。文獻(xiàn)[7]提出了一種面向IoT的自適應(yīng)負(fù)載均衡路由技術(shù),解決了并行機(jī)會(huì)路由場(chǎng)景中數(shù)據(jù)從源網(wǎng)關(guān)到互聯(lián)網(wǎng)的延遲問(wèn)題。而對(duì)于異構(gòu)IoT來(lái)說(shuō),文獻(xiàn)[8]提出一種三維異構(gòu)IoT路由決策,降低了異構(gòu)IoT的能耗和端到端延遲。此外,為了解決節(jié)點(diǎn)動(dòng)態(tài)流量變化對(duì)網(wǎng)關(guān)造成的路由性能不佳問(wèn)題,王玉玨等[9]提出一種最大化網(wǎng)關(guān)流量的IoT路由策略。雖然以上文獻(xiàn)已經(jīng)對(duì)路由傳輸延遲、能耗和流量控制等方面問(wèn)題進(jìn)行了研究,但是這些IoT網(wǎng)關(guān)路由策略只具備單項(xiàng)處理能力,無(wú)法根據(jù)數(shù)據(jù)特性實(shí)現(xiàn)雙向路由處理,這對(duì)于IoT應(yīng)用來(lái)說(shuō)至關(guān)重要,許多場(chǎng)景需要雙向數(shù)據(jù)傳輸,也就是一方面需要傳輸數(shù)據(jù)到云端,另外一方面IoT節(jié)點(diǎn)需要等待云端反饋控制信息。因此,急須開(kāi)發(fā)一種自適應(yīng)的雙向處理路由策略。
因此,本文提出一種自適應(yīng)雙向處理路由策略,用于雙向處理?xiàng)l件下的IoT物聯(lián)網(wǎng)路由網(wǎng)關(guān)。該策略將路由信息轉(zhuǎn)發(fā)表的更新操作交由節(jié)點(diǎn)本身處理,且只存儲(chǔ)對(duì)于節(jié)點(diǎn)處理消息有用的信息數(shù)據(jù)。這些有用信息通常包括消息源節(jié)點(diǎn)和目的節(jié)點(diǎn)、輸入和輸出鏈路、當(dāng)前消息切換值(Handover Number,HN)及路由表[8,10]。除此之外,對(duì)收集到的消息進(jìn)行觀察和分析,同時(shí)結(jié)合反向?qū)W習(xí)和強(qiáng)化學(xué)習(xí)模式來(lái)估計(jì)數(shù)據(jù)包到達(dá)目的節(jié)點(diǎn)所需要的時(shí)間。
物聯(lián)網(wǎng)作為一種新型的網(wǎng)絡(luò)范式,涉及范圍涵蓋端、邊和云,包括終端傳感設(shè)備對(duì)數(shù)據(jù)的產(chǎn)生和監(jiān)測(cè)、邊緣交換轉(zhuǎn)發(fā)設(shè)備對(duì)數(shù)據(jù)的轉(zhuǎn)發(fā)、云端控制器對(duì)數(shù)據(jù)的處理過(guò)程。智能網(wǎng)關(guān)路由策略是端、邊和云數(shù)據(jù)交互的重要傳輸機(jī)制。
文獻(xiàn)[7]表示,使用傳統(tǒng)的路由技術(shù)將數(shù)以百萬(wàn)計(jì)的物聯(lián)網(wǎng)設(shè)備連接到互聯(lián)網(wǎng),會(huì)導(dǎo)致網(wǎng)關(guān)擁擠和過(guò)載,導(dǎo)致物聯(lián)網(wǎng)網(wǎng)絡(luò)吞吐量下降。為了提高吞吐量,提出了將多種無(wú)線技術(shù)用于并行數(shù)據(jù)傳輸,即并行機(jī)會(huì)主義路由(Parallel opportunistic Routing,PoR)。然而,在PoR中,從源網(wǎng)關(guān)到Internet的數(shù)據(jù)始終遵循相同的路徑。這會(huì)導(dǎo)致某些網(wǎng)關(guān)出現(xiàn)擁塞,進(jìn)而影響吞吐量。因此,文獻(xiàn)[10]提出了一種自適應(yīng)和負(fù)載均衡路由技術(shù),稱(chēng)為自適應(yīng)路由技術(shù),利用多技術(shù)和負(fù)載均衡器,通過(guò)在整個(gè)網(wǎng)絡(luò)上分配負(fù)載來(lái)最大化物聯(lián)網(wǎng)網(wǎng)絡(luò)的吞吐量。
文獻(xiàn)[8]針對(duì)路由機(jī)制存在數(shù)據(jù)傳輸效率低、能耗高、物聯(lián)網(wǎng)端到端延遲差等問(wèn)題,建立了三維和通信模型的基礎(chǔ),并提出了基于蜂窩地址(Cellular Address,CA)的三維異構(gòu)物聯(lián)網(wǎng)路由決策機(jī)制。首先,CA建立了基于元胞自動(dòng)機(jī)和節(jié)點(diǎn)平均接收信號(hào)強(qiáng)度的網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)轉(zhuǎn)發(fā)準(zhǔn)則;其次,CA通過(guò)IPv6地址實(shí)現(xiàn)路由優(yōu)化和控制;最后,通過(guò)蜂窩地址解決路由決策機(jī)制。仿真結(jié)果表明CA的包傳送率在82%到95%之間,路由消耗率在20%到35%之間,平均端到端延遲為20毫秒,不僅保證了物聯(lián)網(wǎng)通信性能指標(biāo),而且提高了網(wǎng)絡(luò)的可靠性。
文獻(xiàn)[10]為了更好地利用物聯(lián)網(wǎng)基礎(chǔ)設(shè)施,考慮在物聯(lián)網(wǎng)網(wǎng)絡(luò)中動(dòng)態(tài)發(fā)現(xiàn)和組合物聯(lián)網(wǎng)相關(guān)的功能,以執(zhí)行新的或動(dòng)態(tài)出現(xiàn)的任務(wù)。為了實(shí)現(xiàn)這一目標(biāo),開(kāi)發(fā)了一個(gè)基于語(yǔ)義的物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)路由協(xié)議。在路由協(xié)議中,為了減少路由所需的空間,每個(gè)節(jié)點(diǎn)都維護(hù)一個(gè)帶有“伸縮視圖”的路由表,即關(guān)于直接鄰居能力的更精確的信息,以及對(duì)更遠(yuǎn)的鄰居能力的摘要。定義了一個(gè)能力本體,設(shè)計(jì)了一個(gè)基于本體的能力匯總算法,實(shí)現(xiàn)了伸縮視圖的概念。同時(shí)還設(shè)計(jì)了一個(gè)本體編碼方案,以進(jìn)一步減少路由的內(nèi)存需求,同時(shí)實(shí)現(xiàn)功能總結(jié)。解決方案能夠減小路由表的大小,適用于內(nèi)存有限的物聯(lián)網(wǎng)設(shè)備。此外,實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有的基于語(yǔ)義的路由算法相比,文獻(xiàn)[8]方法可以顯著降低網(wǎng)絡(luò)流量和IoT功能查找的延遲。
文獻(xiàn)[11]發(fā)現(xiàn)在物聯(lián)網(wǎng)網(wǎng)絡(luò)中,需要一個(gè)領(lǐng)導(dǎo)者節(jié)點(diǎn),例如找到能量最小的節(jié)點(diǎn)或位于網(wǎng)絡(luò)的最左側(cè)。對(duì)于這類(lèi)應(yīng)用程序,算法必須具有魯棒性和容錯(cuò)性,因?yàn)槿绻?jié)點(diǎn)發(fā)生故障,很難甚至不可能進(jìn)行干預(yù)。如果這個(gè)節(jié)點(diǎn)是領(lǐng)導(dǎo)者,這種情況可能是災(zāi)難性的。于是提出了一種基于樹(shù)路由協(xié)議的新算法。它從根節(jié)點(diǎn)開(kāi)始,通過(guò)洪泛的過(guò)程,以確定一棵生成樹(shù)。在此過(guò)程中進(jìn)行路由操作。如果兩個(gè)生成樹(shù)相遇,那么路由效果最佳的樹(shù)將繼續(xù)其進(jìn)程,而其他樹(shù)將停止。從而得出路由主宰樹(shù),它的根則作為領(lǐng)導(dǎo)者。該算法可以在任何節(jié)點(diǎn)可能發(fā)生故障和網(wǎng)絡(luò)斷開(kāi)的情況下工作,能耗降低率可達(dá)85%以上。
盡管存在大量的IoT路由研究工作,但這些工作只具備單向處理能力,無(wú)法針對(duì)網(wǎng)絡(luò)的變化進(jìn)行有效反饋和靈活應(yīng)對(duì),特別是傳感器流數(shù)據(jù)的雙向自適應(yīng)處理,因此也無(wú)法適應(yīng)物聯(lián)網(wǎng)中大量設(shè)備和數(shù)據(jù)的動(dòng)態(tài)變化。
本文提出的機(jī)制主要包括三部分:首先通過(guò)反向?qū)W習(xí)建立初始化的路由自適應(yīng)模型;其次通過(guò)強(qiáng)化學(xué)習(xí)對(duì)初始化模型進(jìn)行修正,使其支持可靠性;最后結(jié)合這兩種學(xué)習(xí)模式實(shí)現(xiàn)分布式路由的自適應(yīng)與可靠性傳輸。
給定任意一條鏈路LI,經(jīng)過(guò)它的數(shù)據(jù)包所攜帶的HN數(shù)值能夠被用于估計(jì)從源節(jié)點(diǎn)S到當(dāng)前節(jié)點(diǎn)X所需的最短時(shí)間。于是,反向?qū)W習(xí)機(jī)制利用這個(gè)情況,同樣也可以利用數(shù)據(jù)包所攜帶的HN數(shù)值來(lái)估計(jì)從當(dāng)前節(jié)點(diǎn)X到源S的最短時(shí)間。
以LI作為輸出鏈路,最短時(shí)間可以表示為T(mén)(S,LI)。隨著網(wǎng)絡(luò)時(shí)間的推移,節(jié)點(diǎn)X對(duì)于到達(dá)S的最短時(shí)間的預(yù)估已經(jīng)不再準(zhǔn)確,使用T(S,LI)old表示,那么基于反向?qū)W習(xí)技術(shù),更新的過(guò)程可以表示如下:
T(S,LI)new=T(S,LI)old+k[HN-T(S,LI)old]
(1)
可以看出,影響數(shù)據(jù)包到達(dá)目的節(jié)點(diǎn)的最短時(shí)間的因素為參數(shù)k。通常,0≤k≤1。考慮到實(shí)際情況,需要對(duì)式(1)進(jìn)行修正。于是引入兩種類(lèi)型的k參數(shù)k1和k2,其中:k1表示模型的“學(xué)習(xí)因子”,用于降低T(S,LI);k2則表示“遺忘因子”,用于提高T(S,LI)。在這里其實(shí)存在著更為復(fù)雜的統(tǒng)計(jì)預(yù)估方法,但這些方法通常需要每個(gè)路由表?xiàng)l目上的額外信息,從而對(duì)系統(tǒng)造成額外的開(kāi)銷(xiāo)。
然而,由反向?qū)W習(xí)所建立的模型通常需要使用間接信息,但是這種間接信息通常是不足的,這種情況往往可能會(huì)導(dǎo)致出現(xiàn)“乒乓效應(yīng)”。以節(jié)點(diǎn)A和B為例,數(shù)據(jù)包目的節(jié)點(diǎn)為C,存在這樣一種情況,A以為B距離C最近,而B(niǎo)同樣以為A距離C最近,最終,數(shù)據(jù)包會(huì)在A和B之間來(lái)回傳遞,直到達(dá)到最大的切換次數(shù)Δtmax,從而終止。接下來(lái)對(duì)這種模型進(jìn)行進(jìn)一步的修正。
“乒乓效應(yīng)”是反向?qū)W習(xí)技術(shù)的主要缺陷之一,它可以通過(guò)觀察數(shù)據(jù)包處理過(guò)程中所采用的信息結(jié)構(gòu)來(lái)進(jìn)行判斷。通常,當(dāng)LI=LO成立的時(shí)候,就會(huì)發(fā)生這種“乒乓效應(yīng)”。這種判斷條件可以通過(guò)周期性的節(jié)點(diǎn)輸入輸出鏈路監(jiān)測(cè)來(lái)保證。在此基礎(chǔ)上,再采用負(fù)增強(qiáng)學(xué)習(xí)技術(shù)來(lái)對(duì)其進(jìn)行修正和增強(qiáng)。
具體而言,負(fù)增強(qiáng)學(xué)習(xí)通過(guò)設(shè)置相應(yīng)的懲罰機(jī)制來(lái)對(duì)反向?qū)W習(xí)進(jìn)行修正。當(dāng)任意節(jié)點(diǎn)X上存在LI=LO的情況時(shí),進(jìn)行以下修正操作:
T(D,LO)new=T(D,LO)old+2ΔTL
(2)
其中:T(D,LO)new和T(D,LO)old分別表示反向從目的到源所需的最短時(shí)間。那么根據(jù)式(2)對(duì)節(jié)點(diǎn)X上的路由信息表?xiàng)l目中的屬性進(jìn)行修改。將信息塊中的特殊信號(hào)位(通常為0)設(shè)置為utility,并將信息返回給LO。如果LO上存在一個(gè)為utility的信號(hào)位,那么首先將其重置為0,然后對(duì)路由表進(jìn)行如下修改:
T(D,X)new=T(D,X)old+2ΔTL
(3)
式中,ΔTL表示數(shù)據(jù)包通過(guò)當(dāng)前鏈路所需要的時(shí)間長(zhǎng)度。盡管對(duì)路由模型進(jìn)行了修正,負(fù)增強(qiáng)學(xué)習(xí)在非對(duì)稱(chēng)懲罰的情況下的路由效率較低。
鑒于反向?qū)W習(xí)初始化模型和負(fù)增強(qiáng)學(xué)習(xí)修正技術(shù)彼此之間的優(yōu)缺點(diǎn),本文將二者進(jìn)行融合,在保留它們有效特性的同時(shí),抵消它們的缺陷。
根據(jù)式(1)的定義,顯然在將“遺忘因子”k2設(shè)置為0的情況下,可以得出比較好的效果,原因在于k2的值和路由表?xiàng)l目數(shù)量成正比。這種融合情況下的技術(shù),本文將其稱(chēng)之為雙向自適應(yīng)機(jī)制。一方面,通過(guò)使用減少路由表?xiàng)l目的反向?qū)W習(xí)方法來(lái)糾正負(fù)增強(qiáng)技術(shù)所導(dǎo)致的過(guò)度補(bǔ)償,從而支持對(duì)新鏈路或者修復(fù)鏈路的自動(dòng)化適應(yīng)過(guò)程;另一方面,通過(guò)使用負(fù)增強(qiáng)技術(shù)增加路由表?xiàng)l目,從而提供對(duì)受損鏈路或者節(jié)點(diǎn)的直接適應(yīng)規(guī)則,最后消除反向?qū)W習(xí)的錯(cuò)誤信息問(wèn)題。具體而言,如果來(lái)自于源節(jié)點(diǎn)S的消息數(shù)據(jù)包沿著鏈路LI到達(dá)節(jié)點(diǎn)X所花費(fèi)的時(shí)間比從節(jié)點(diǎn)X到達(dá)S的預(yù)估時(shí)間T(S,LI)要小,那么,需要按照以下規(guī)則更新T(S,LI):
T(S,LI)new=min[HN,T(S,LI)old]
(4)
另外,如果路由算法為任意數(shù)據(jù)包所選擇的輸出鏈路LO和輸入鏈路LI相同,則調(diào)用負(fù)增強(qiáng)規(guī)則,如式(2)和式(3)所示。雙向自適應(yīng)機(jī)制的實(shí)現(xiàn)同樣還需要在每個(gè)消息塊中設(shè)置一個(gè)額外的標(biāo)志位。一旦發(fā)生“乒乓效應(yīng)”,該標(biāo)志位就會(huì)被設(shè)置為unity。此時(shí),假設(shè)節(jié)點(diǎn)Y需要處理一個(gè)目的節(jié)點(diǎn)為D的數(shù)據(jù)包,使得LI=LO=X,那么,T(D,X)遞增2個(gè)單位。在將標(biāo)志位設(shè)為unity后,還需要將反饋消息發(fā)送回節(jié)點(diǎn)X。至此,重新檢測(cè)標(biāo)志位狀態(tài)并將其重置為0,那么T(D,Y)同樣遞增2個(gè)單位。
仿真實(shí)驗(yàn)拓?fù)浠贜REN網(wǎng)絡(luò)(如圖1所示),具有1 157個(gè)節(jié)點(diǎn)和2 930條邊,符合物聯(lián)網(wǎng)規(guī)模的特性。1 157個(gè)節(jié)點(diǎn)分為兩種類(lèi)型,其中300個(gè)節(jié)點(diǎn)作為目的節(jié)點(diǎn),857個(gè)節(jié)點(diǎn)作為源節(jié)點(diǎn)。源節(jié)點(diǎn)作為IoT數(shù)據(jù)傳感輸入端,接收傳感器采集的數(shù)據(jù)流,目的節(jié)點(diǎn)作為數(shù)據(jù)流的終點(diǎn),并每接收1分鐘數(shù)據(jù),向源節(jié)點(diǎn)反饋數(shù)值信息平均值。
圖1 NREN拓?fù)?/p>
為了使測(cè)試更接近實(shí)際的IoT路由環(huán)境,使用公開(kāi)數(shù)據(jù)集MIMIC-III Waveform Database中的傳感器數(shù)據(jù)作為本文的IoT流數(shù)據(jù)源。該數(shù)據(jù)庫(kù)包括22 317條波形記錄和22 247數(shù)值記錄,其中波形記錄包含一條或者多條心電信號(hào)、連續(xù)動(dòng)脈壓信號(hào)、呼吸信號(hào)和光電容積脈搏波信號(hào)等;數(shù)值記錄包含心率、呼吸率、血氧和動(dòng)脈平均壓等數(shù)值數(shù)據(jù)。其中,每個(gè)節(jié)點(diǎn)配置為單核處理器,隊(duì)列初始化為空,數(shù)據(jù)流的到達(dá)服從泊松分布。不同節(jié)點(diǎn)的處理速率不同,均服從均勻分布。
對(duì)于所有的實(shí)驗(yàn)情況,將“學(xué)習(xí)因子”k1設(shè)置為0.75,而“遺忘因子”k2則設(shè)置為0.25,從而模擬實(shí)際情況下的網(wǎng)絡(luò)和模型的學(xué)習(xí)情況。
為了對(duì)本文提出算法進(jìn)行評(píng)估,本文實(shí)現(xiàn)了三種先進(jìn)的IoT路由策略進(jìn)行對(duì)比分析,這三種先進(jìn)的IoT路由策略分別為基于語(yǔ)義的IoT路由協(xié)議(算法1)[10]、最佳擬合路由策略(算法2)[12]和最大化網(wǎng)關(guān)流量的路由策略(算法3)[9]。此外,采用路由表?xiàng)l目數(shù)量和信息交付率等兩個(gè)評(píng)價(jià)指標(biāo)作為本文對(duì)比方法的評(píng)價(jià)指標(biāo),并在討論非故障鏈路條件下和故障鏈路條件下的信息交付率。
3.3.1路由表?xiàng)l目數(shù)量對(duì)比
路由表?xiàng)l目數(shù)量是衡量路由算法效率的重要依據(jù)之一[10]。首先,在同等實(shí)驗(yàn)條件下,本文實(shí)現(xiàn)了四種不同方法(包括本文提出的方法和三種對(duì)比方法)。圖2所示為四種方法的平均路由表?xiàng)l目數(shù)量對(duì)比。其中,本文假設(shè)在沒(méi)有流量的時(shí)候路由表?xiàng)l目為空,即對(duì)于流量數(shù)為0時(shí),對(duì)應(yīng)的平均路由表?xiàng)l目數(shù)也為0。通過(guò)觀察路由表?xiàng)l目數(shù)量的變化,可以得出一種路由算法是否能夠適應(yīng)當(dāng)前網(wǎng)絡(luò)狀態(tài)的變化。圖2表明四種算法在網(wǎng)絡(luò)流量增加的條件下,對(duì)應(yīng)的路由表?xiàng)l目也隨著增加。其原因在于流量與負(fù)載是呈現(xiàn)正相關(guān)趨勢(shì),流量增加路由條目也會(huì)隨之增加,以適應(yīng)更多的流量種類(lèi)。
圖2 路由表?xiàng)l目數(shù)量
如圖2所示,相比其他三種算法來(lái)說(shuō),本文算法所需的路由條目數(shù)量最少,而算法3的路由表?xiàng)l目最多。一方面,這是由于本文采用了雙向自適應(yīng)機(jī)制,可以根據(jù)網(wǎng)絡(luò)狀態(tài)來(lái)動(dòng)態(tài)獲取當(dāng)前網(wǎng)絡(luò)中最佳的路由表?xiàng)l目數(shù)量;另一方面,本文采用了雙向適應(yīng)和負(fù)強(qiáng)化學(xué)習(xí)策略動(dòng)態(tài)修正最短時(shí)間估計(jì),從而保證了本文方法對(duì)各種網(wǎng)絡(luò)場(chǎng)景的適應(yīng)能力。與此同時(shí),算法1為了保證低延遲特性,犧牲了部分路由表效率性能,增加了除了直系鄰居以外的所有路由表?xiàng)l目數(shù)量[10]。而算法2是基于最優(yōu)擬合遍歷的路由策略[12],需要提高路由表?xiàng)l目數(shù)量來(lái)保證路由精度。對(duì)于算法3而言,它采用大流量節(jié)點(diǎn)構(gòu)建路由表,但是本文的泊松分布輸入條件下,某些一類(lèi)節(jié)點(diǎn)會(huì)有較大流量出現(xiàn),從而導(dǎo)致這些節(jié)點(diǎn)路由表數(shù)目龐大[9]。綜上,在相同網(wǎng)絡(luò)規(guī)模和實(shí)驗(yàn)條件下,本文方法具有最低的路由表數(shù)量,說(shuō)明本文提出的路由策略對(duì)網(wǎng)絡(luò)的自適應(yīng)能力更佳。
3.3.2無(wú)鏈路故障條件下信息交付率對(duì)比
為了驗(yàn)證本文算法的可靠性,本文采用信息交付率作為驗(yàn)證路由性能的指標(biāo),它也是路由信息交付準(zhǔn)確率的一種重要指標(biāo)[10]。本文中用小數(shù)表示,范圍為(0,1]。在無(wú)鏈路故障條件下,測(cè)試了四種算法的信息交付能力。
如圖3所示,本文算法在流量負(fù)載增加的情況下,信息交付率可以保持穩(wěn)定,并未出現(xiàn)斷崖式降低或者持續(xù)下降的問(wèn)題。在流量負(fù)載從250增加到2 000的情況下,本文算法仍然能保持穩(wěn)定的信息交付率,平均信息交付率約為0.91。對(duì)于其他三種算法而言,在小流量負(fù)載情況下(250到500),算法1與本文算法信息交付率相差不多(平均信息交付率分別為0.96和0.94),而算法2和算法3信息交付率相對(duì)較低(平均信息交付率分別為0.91和0.88),特別是在負(fù)載為500的條件下。對(duì)于大于750的流量負(fù)載條件來(lái)說(shuō),雖然所有算法的信息交付率均逐漸降低,但是本文算法均保持在0.86以上,平均信息交付率為0.90,而算法1、算法2和算法3的平均信息交付率僅為0.79,0.74和0.62。以上情況的主要原因在于本文算法信息交付率可以通過(guò)負(fù)強(qiáng)化學(xué)習(xí)不斷修正相關(guān)參數(shù),從而達(dá)到自適應(yīng)的策略,保持信息交付率的穩(wěn)定性和可靠性。同時(shí),其他三種算法無(wú)反饋機(jī)制參與路由決策,無(wú)法根據(jù)網(wǎng)絡(luò)負(fù)載情況動(dòng)態(tài)調(diào)整路由策略。相比較而言,算法1可以在小流量范圍內(nèi)提供高信息交付能力,但是對(duì)于大流量負(fù)載來(lái)說(shuō),無(wú)法提供可靠的路由傳輸,這是因?yàn)樵摲椒ㄒ灾苯余徲驗(yàn)閮?yōu)先策略,較遠(yuǎn)節(jié)點(diǎn)出現(xiàn)大流量負(fù)載無(wú)法及時(shí)動(dòng)態(tài)調(diào)整。綜上所述,本文算法可以保持可靠的信息交付能力,提供高信息交付率的路由策略。
圖3 信息交付率
3.3.3鏈路故障條件下信息交付率對(duì)比
為了進(jìn)一步驗(yàn)證本文算法的可靠性,本文采用隨機(jī)破壞網(wǎng)絡(luò)的方式對(duì)算法進(jìn)行進(jìn)一步驗(yàn)證。雖然本文的實(shí)驗(yàn)環(huán)境有2 930條鏈路,但是超過(guò)一半以上故障屬于網(wǎng)絡(luò)癱瘓情況,所以隨機(jī)生成故障鏈路范圍被設(shè)置為1到1 000。為了與無(wú)故障鏈路條件實(shí)驗(yàn)次數(shù)統(tǒng)一,所以隨機(jī)生成8個(gè)故障鏈路數(shù)目,用于檢驗(yàn)算法對(duì)突發(fā)事件和故障事件的魯棒性。
圖4所示為鏈路故障條件下四種算法的信息交付率比較,故障鏈路數(shù)量從左到右分別為142、420、484、786、798、910、951和970??傮w上講,隨著故障鏈路數(shù)量的增加,所有算法的信息交付率呈遞減趨勢(shì)。但是,本文算法的平均信息交付率為0.81,而其他三種算法的信息交付率僅為0.54、0.51和0.41。特別是當(dāng)故障鏈路數(shù)量超過(guò)484以后,其他三種算法出現(xiàn)了斷崖式的突然下降。這是因?yàn)樗惴?受到隨機(jī)破壞影響,直系鄰域節(jié)點(diǎn)范圍減少,一些節(jié)點(diǎn)的路由交付效率降低;算法2則無(wú)法獲得全局最優(yōu)解[14],導(dǎo)致性能下降;而對(duì)于算法3來(lái)說(shuō),無(wú)法適應(yīng)隨機(jī)故障,局部路由流量過(guò)大,導(dǎo)致信息沖突增加,信息交付率降低。進(jìn)一步,對(duì)于本文算法,由于采用了反向?qū)W習(xí)機(jī)制,算法可以根據(jù)當(dāng)前網(wǎng)絡(luò)環(huán)境做出預(yù)判,并負(fù)增強(qiáng)學(xué)習(xí)進(jìn)行修正,從而達(dá)到對(duì)路由表中最短時(shí)間的自適應(yīng)更新,保證了信息交付的穩(wěn)定性。因此,本文算法在鏈路故障條件下仍然可以保證較可靠的路由交付功能。
圖4 鏈路故障下的消息交付率
為了進(jìn)一步驗(yàn)證提出機(jī)制的可靠性,在相同的流量條件下,分別針對(duì)網(wǎng)絡(luò)鏈路無(wú)故障和有故障的情況,測(cè)試了提出機(jī)制所取得的交付能力。通過(guò)觀察表1,可以得出:(1) 提出的機(jī)制在無(wú)故障情況下取得的交付能力要高于有故障的情況,符合實(shí)際情況;(2) 提出的機(jī)制在有故障和無(wú)故障兩種情況下的交付能力都較高;(3) 提出的機(jī)制在網(wǎng)絡(luò)有故障和無(wú)故障兩種情況下,所取得的交付能力差別不大,大概在0.9%~6.83%之間。
表1 提出機(jī)制在有故障和無(wú)故障情況下的交付率
綜合第2和第3種現(xiàn)象,可以看出提出的機(jī)制能夠有效地應(yīng)對(duì)網(wǎng)絡(luò)無(wú)故障和有故障的情況,也能夠保證在網(wǎng)絡(luò)發(fā)生故障時(shí),網(wǎng)絡(luò)性能下降不大。因此,這在一定限度上反映了提出算法具有較高的可靠性。
本文針對(duì)物聯(lián)網(wǎng)環(huán)境下的路由問(wèn)題,提出了一種動(dòng)態(tài)的、可反饋和修正的自適應(yīng)路由算法。該方法通過(guò)負(fù)增強(qiáng)學(xué)習(xí)方法建立路由的修正模型,并提供反饋信息;采用雙向自適應(yīng)機(jī)制,實(shí)現(xiàn)路由表的自適應(yīng)估計(jì)。實(shí)驗(yàn)結(jié)果表明,提出的算法有較好的網(wǎng)絡(luò)適應(yīng)特性,能夠在不同的網(wǎng)絡(luò)狀態(tài)下保證相應(yīng)的路由性能。未來(lái)的研究工作包括對(duì)進(jìn)一步思考邊緣計(jì)算在物聯(lián)網(wǎng)中所起到的作用。