摘 要: 針對移動(dòng)Ad hoc網(wǎng)絡(luò)中節(jié)點(diǎn)自私性問題,提出了一種基于節(jié)點(diǎn)狀態(tài)的節(jié)點(diǎn)協(xié)作激勵(lì)機(jī)制NSIM。利用虛擬貨幣來激勵(lì)中間節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù),節(jié)點(diǎn)的報(bào)價(jià)是綜合考慮節(jié)點(diǎn)狀態(tài)計(jì)算得出的,避免資源緊張的節(jié)點(diǎn)參與數(shù)據(jù)轉(zhuǎn)發(fā);在節(jié)點(diǎn)中引入安全模塊和加密機(jī)制,防止節(jié)點(diǎn)篡改其他節(jié)點(diǎn)的報(bào)價(jià)和非法增加虛擬貨幣。仿真實(shí)驗(yàn)表明,NSIM機(jī)制減小了時(shí)延,提高了分組投遞率。
關(guān)鍵詞: 移動(dòng)Ad hoc網(wǎng)絡(luò);自私性;激勵(lì)機(jī)制;虛擬貨幣
在Ad hoc網(wǎng)絡(luò)[1]中,由于節(jié)點(diǎn)自身的處理能力、電池容量和存儲(chǔ)空間等各種資源都是有限制的,因此節(jié)點(diǎn)往往表現(xiàn)出一定的自私性,即不愿意幫助其他節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù),以達(dá)到節(jié)省自身資源的目的,從而影響了網(wǎng)絡(luò)的性能。激勵(lì)自私節(jié)點(diǎn)進(jìn)行合作是Ad hoc網(wǎng)絡(luò)迫切需要解決的問題,目前已有的節(jié)點(diǎn)激勵(lì)策略主要可以分為基于信任度的機(jī)制和基于合作博弈的機(jī)制兩類。但是這些激勵(lì)機(jī)制只是盲目地激勵(lì)節(jié)點(diǎn)參與消息轉(zhuǎn)發(fā),并沒有進(jìn)一步考慮節(jié)點(diǎn)狀態(tài),即節(jié)點(diǎn)自身的資源以及對節(jié)點(diǎn)行為的影響,比如資源有限但負(fù)載相對過大的節(jié)點(diǎn)會(huì)因能量耗盡而過早地“死亡”,或因發(fā)生擁塞而造成丟包,因此不考慮節(jié)點(diǎn)狀態(tài)的激勵(lì)機(jī)制具有一定的盲目性,會(huì)造成資源的過度使用而導(dǎo)致網(wǎng)絡(luò)性能退化。參考文獻(xiàn)[2]提出的基于買賣模型的節(jié)點(diǎn)激勵(lì)策略,雖然考慮到了節(jié)點(diǎn)自身的狀態(tài),但是這個(gè)策略實(shí)現(xiàn)的前提是節(jié)點(diǎn)根據(jù)定價(jià)機(jī)制真實(shí)地定價(jià)和報(bào)價(jià),因此不具備防策略性。
本文綜合考慮網(wǎng)絡(luò)中節(jié)點(diǎn)擁有的有限資源,提出一種基于節(jié)點(diǎn)狀態(tài)的節(jié)點(diǎn)協(xié)作激勵(lì)機(jī)制NSIM(Node Status based Incentive Mechanism)。
1 基于節(jié)點(diǎn)狀態(tài)的激勵(lì)機(jī)制
NSIM機(jī)制中,節(jié)點(diǎn)各自管理自己的虛擬貨幣。為了避免資源緊張的節(jié)點(diǎn)參與數(shù)據(jù)轉(zhuǎn)發(fā),節(jié)點(diǎn)的報(bào)價(jià)是根據(jù)節(jié)點(diǎn)的剩余能量、剩余空間及財(cái)富狀態(tài)綜合計(jì)算得出的。源節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí)選擇一條轉(zhuǎn)發(fā)價(jià)格最低的路徑,并且在發(fā)送的數(shù)據(jù)包中攜帶虛擬貨幣用以支付報(bào)酬給該路徑上的節(jié)點(diǎn)。源節(jié)點(diǎn)至少要保證節(jié)點(diǎn)自身的財(cái)富值為正數(shù),才可能有足夠的貨幣支付中間節(jié)點(diǎn)的報(bào)酬。中間節(jié)點(diǎn)可以通過轉(zhuǎn)發(fā)數(shù)據(jù)包獲得報(bào)酬,這樣就能激勵(lì)每一個(gè)節(jié)點(diǎn)去增加其財(cái)富值。節(jié)點(diǎn)中設(shè)置了安全模塊管理虛擬貨幣,并且在路由發(fā)現(xiàn)和數(shù)據(jù)包發(fā)送過程中引入加密機(jī)制,防止節(jié)點(diǎn)篡改其他節(jié)點(diǎn)的報(bào)價(jià)以及防止節(jié)點(diǎn)隨意增加虛擬貨幣值,保證數(shù)據(jù)包的完整性和正確性。
本文采用參考文獻(xiàn)[3]中的安全模塊及公鑰機(jī)制。
2 節(jié)點(diǎn)成本價(jià)格計(jì)算
節(jié)點(diǎn)的成本價(jià)格受節(jié)點(diǎn)的剩余能量、緩存空間及節(jié)點(diǎn)的財(cái)富三方面的影響。節(jié)點(diǎn)的報(bào)價(jià)越高,節(jié)點(diǎn)被選中的機(jī)會(huì)越小。當(dāng)節(jié)點(diǎn)的剩余能量過低時(shí),應(yīng)盡量減少節(jié)點(diǎn)被選中的機(jī)會(huì),防止節(jié)點(diǎn)因能量過早耗盡而退出;當(dāng)節(jié)點(diǎn)緩存空間較小時(shí),也應(yīng)盡量避免節(jié)點(diǎn)被選中,防止丟包發(fā)生;當(dāng)節(jié)點(diǎn)財(cái)富值較低時(shí),應(yīng)增加節(jié)點(diǎn)被選中的機(jī)會(huì),因?yàn)橹挥袔椭渌?jié)點(diǎn)轉(zhuǎn)發(fā)信息才能積累財(cái)富值,才能支付其他節(jié)點(diǎn)幫忙轉(zhuǎn)發(fā)信息的報(bào)酬。因此,節(jié)點(diǎn)的成本價(jià)格綜合這三個(gè)方面考慮。
2.1 剩余能量百分比
節(jié)點(diǎn)的剩余能量情況用剩余能量百分比表示,定義為:
其中,Ei是節(jié)點(diǎn)i的剩余能量百分比;Bi是節(jié)點(diǎn)i的剩余空間百分比;Vi是節(jié)點(diǎn)i的財(cái)富狀態(tài);是三個(gè)權(quán)重值,表示節(jié)點(diǎn)i的剩余能量百分比、剩余空間百分比、財(cái)富狀態(tài)對于成本價(jià)格計(jì)算的重要性。
3 數(shù)據(jù)轉(zhuǎn)發(fā)
3.1 安全模塊維護(hù)信息
安全模塊(假設(shè)用A表示)存儲(chǔ)了以下幾個(gè)數(shù)據(jù):A的標(biāo)識(shí)符,A所在節(jié)點(diǎn)的貨幣計(jì)數(shù)器,A的私鑰,由A的制造商簽發(fā)的A的公鑰證書,由A的制造商簽發(fā)的所有其他安全模塊制造商的公鑰證書,A的制造商的公鑰。
另外,安全模塊維護(hù)一個(gè)表,用來表示與鄰居節(jié)點(diǎn)的關(guān)系。這個(gè)表包含標(biāo)識(shí)符、會(huì)話密鑰、序列號(hào)。
3.2 錢包頭和確認(rèn)信息說明
(1)錢包頭
每個(gè)包必須攜帶一些虛擬貨幣值,以支付中間節(jié)點(diǎn)轉(zhuǎn)發(fā)包的報(bào)酬。這些貨幣值存在錢包頭PH(Purse Header)中,PH位于MAC層頭部和網(wǎng)絡(luò)層頭部之間。PH被安全模塊創(chuàng)建和操作。為了防止偽造貨幣值和非法修改貨幣值,PH被加密保護(hù)。
假設(shè)一個(gè)節(jié)點(diǎn)的安全模塊A創(chuàng)建了一個(gè)PH,PH中包含idA、idB、cA→B、n、PAC。其中,idA為當(dāng)前節(jié)點(diǎn)安全模塊A的標(biāo)識(shí)符;idB為下一跳節(jié)點(diǎn)安全模塊B的標(biāo)識(shí)符;cA→B為發(fā)送序列號(hào);n為虛擬貨幣值;PAC為錢包認(rèn)證碼(Purse Authentication Code),其值是g(idA、idB、cA→B、n、network PDU),其中network PDU表示網(wǎng)絡(luò)層的協(xié)議數(shù)據(jù)單元,g是帶密鑰的哈希函數(shù),密鑰為kAB,是安全模塊A、B的對稱會(huì)話密鑰。
(2)確認(rèn)信息
當(dāng)節(jié)點(diǎn)nB收到來自節(jié)點(diǎn)nA的一個(gè)包,它必須發(fā)送一個(gè)確認(rèn)信息ACK,確認(rèn)信息被nB的安全模塊B創(chuàng)建,被放在MAC層確認(rèn)信息里。ACK包括idA、idB、cA→B、AAC。其中,cA→B指PH中收到的發(fā)送序列號(hào);AAC即確認(rèn)信息認(rèn)證碼,值為g(PH)。
3.3 包發(fā)送協(xié)議
假設(shè)節(jié)點(diǎn)nB收到從nA發(fā)來的一個(gè)包,并且知道下一步是節(jié)點(diǎn)nC。nB首先將收到的PH、下一跳安全模塊C的標(biāo)識(shí)符及network PDU的值交給它的安全模塊B。
B首先驗(yàn)證PH,通過重新計(jì)算PAC,并將計(jì)算出的值和收到的值進(jìn)行對比,如果一樣,則B知道這個(gè)PH確實(shí)是被A創(chuàng)建的,并且沒有被修改。然后驗(yàn)證PH中的發(fā)送序列號(hào)cA→B是否比它收到的接收序列號(hào)cB←A大,如果是,則這個(gè)PH不是重復(fù)的,B將cB←A的值設(shè)置為PH中的發(fā)送序列號(hào)cA→B的值。
成功認(rèn)證之后,B創(chuàng)建一個(gè)新的PH,包括:B和C的標(biāo)識(shí)符、發(fā)送序列號(hào)cB→C、虛擬貨幣值(PH中貨幣的值減去nB的報(bào)價(jià)值)、新的PAC。B存儲(chǔ)新的PH,并將其復(fù)本交給節(jié)點(diǎn)nB。
nB將新的PH附加到包上,傳送給nC。nC必須確認(rèn)接收到這個(gè)包。nC將PH交給它的安全模塊C,C創(chuàng)建ACK并交給nC。nC發(fā)送ACK給nB。
當(dāng)nB收到ACK,交給B,通過ACK中C的標(biāo)識(shí)符和發(fā)送序列號(hào),B在內(nèi)存中尋找到相應(yīng)的PH,如果B找到相應(yīng)的PH,則驗(yàn)證ACK,通過對PH重新計(jì)算AAC,并將其與ACK中的值進(jìn)行對比,如果相等,則B增加貨幣值。將PH從內(nèi)存中刪除。
4 實(shí)驗(yàn)仿真與結(jié)果
4.1 實(shí)驗(yàn)場景和性能指標(biāo)
本文以O(shè)NE[4]作為仿真平臺(tái),驗(yàn)證NSIM機(jī)制的有效性。設(shè)置以下三種方案,對比其網(wǎng)絡(luò)性能。
(1)SC方案。網(wǎng)絡(luò)中沒有自私節(jié)點(diǎn),所有節(jié)點(diǎn)都會(huì)轉(zhuǎn)發(fā)接收到的消息。
(2)SS方案。網(wǎng)絡(luò)中全是自私節(jié)點(diǎn),中間節(jié)點(diǎn)拒絕轉(zhuǎn)發(fā)消息,只有當(dāng)源節(jié)點(diǎn)和目的節(jié)點(diǎn)在通信范圍內(nèi)時(shí),才能將消息發(fā)送給目的節(jié)點(diǎn)。
(3)SS+NSIM方案。網(wǎng)絡(luò)中都是自私節(jié)點(diǎn),但是每個(gè)節(jié)點(diǎn)收到消息后會(huì)按照NSIM機(jī)制轉(zhuǎn)發(fā)。
4.2 仿真結(jié)果及分析
(1)緩存空間、初始能量對分組投遞率的影響
分組投遞率隨緩存空間和初始能量的變化如圖1和圖2所示。由圖1、圖2可見,SC、SS和SS+NSIM的分組投遞率均隨緩存空間、初始能量的增加而增大;當(dāng)緩存空間和初始能量分別受限時(shí),SS+NSIM可以獲得較高的分組投遞率。此外,當(dāng)緩存空間和初始能量較少時(shí),SC的分組投遞率低于SS的分組投遞率,或幾乎與SS的分組投遞率相同。
(2)緩存空間、初始能量對平均端到端時(shí)延的影響
平均端到端時(shí)延隨緩存空間和初始能量的變化如圖3和圖4所示。由圖3、圖4可見,SC和SS+NSIM方案中,隨著緩存空間和初始能量的增加,平均相對時(shí)延降低;SS的時(shí)延最大,SS+NSIM的時(shí)延最小。
本文針對Ad hoc中節(jié)點(diǎn)自私性的問題,綜合考慮網(wǎng)絡(luò)中節(jié)點(diǎn)自身狀態(tài),提出一種基于節(jié)點(diǎn)狀態(tài)的節(jié)點(diǎn)協(xié)作激勵(lì)機(jī)制NSIM。仿真實(shí)驗(yàn)表明,NSIM機(jī)制能夠有效地激勵(lì)節(jié)點(diǎn)參與消息轉(zhuǎn)發(fā),同時(shí)又能解決節(jié)點(diǎn)無條件合作帶來的網(wǎng)絡(luò)性能退化的問題,從而達(dá)到減小時(shí)延、降低耗能、提高分組投遞率的目的。
參考文獻(xiàn)
[1] RFC2501.Mobile Ad hoc networking(MANET):routing pro-tocol performance issues and evaluation considerations[S].1999.
[2] 李云,于季弘,尤肖虎.資源受限的機(jī)會(huì)網(wǎng)絡(luò)節(jié)點(diǎn)激勵(lì)策略研究[J].計(jì)算機(jī)學(xué)報(bào),2013,36(5):947-956.
[3] BUTTYAN L,HUBAUX J.Nuglets:a virtual currency to stimulate cooperation in self-organized ad hoc networks[R].Technical Report EPFL,DSC,2001.
[4] KERIFANEN A,OTT J.The one simulator for DTN protocolevaluation[C].Proceedings of the 2nd International Confer-ence on Simulation Tools and Techniques,Brussels,Belgium,2009:1-10.