專利名稱:Ad hoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線網(wǎng)絡(luò)通信領(lǐng)域的路由實(shí)現(xiàn)方法,具體地說,涉及一種Ad hoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議。
背景技術(shù):
Ad hoc網(wǎng)絡(luò)是一種由若干個(gè)具有接收和發(fā)送功能的節(jié)點(diǎn)構(gòu)成的無固定的組網(wǎng)設(shè)備、多跳傳輸數(shù)據(jù)、節(jié)點(diǎn)自適應(yīng)組網(wǎng)的對(duì)等式網(wǎng)絡(luò)。在這種網(wǎng)絡(luò)中,沒有中心控制節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)地位平等,可以任意移動(dòng),并且可以以任何方式動(dòng)態(tài)地保持與其它節(jié)點(diǎn)的聯(lián)系。與需要基礎(chǔ)設(shè)施的無線網(wǎng)絡(luò)相比,Ad hoc網(wǎng)絡(luò)不需要依賴任何固定的網(wǎng)絡(luò)基礎(chǔ)設(shè)施就能夠?qū)崿F(xiàn)快速地自動(dòng)組網(wǎng),這樣就比傳統(tǒng)的無線網(wǎng)絡(luò)更加便捷、靈活、投資廉價(jià),且抗毀性強(qiáng)。Ad hoc網(wǎng)絡(luò)作為移動(dòng)網(wǎng)絡(luò)的一種特殊形式,由于它不需要固定的基站,各節(jié)點(diǎn)均可以自由移動(dòng),且能實(shí)現(xiàn)動(dòng)態(tài)的鏈接,加上其具有生存性極強(qiáng)、創(chuàng)建與移動(dòng)極為方便的特點(diǎn),彌補(bǔ)了蜂窩系統(tǒng)與有線網(wǎng)絡(luò)的不足,在許多特殊情況下有著不可替代的作用,可以廣泛應(yīng)用于國防戰(zhàn)備、航海航空、災(zāi)難援救、偏遠(yuǎn)地區(qū)等一些無法得到有線網(wǎng)絡(luò)支持或只需要建立臨時(shí)通信的環(huán)境。因此,Ad hoc網(wǎng)絡(luò)在軍事和民用通信領(lǐng)域都擁有非常廣闊的應(yīng)用前景。由于Ad hoc網(wǎng)絡(luò)不依賴任何預(yù)先設(shè)置的基礎(chǔ)設(shè)施進(jìn)行通信,網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)不僅是信源或者信宿,同時(shí)還要充當(dāng)路由器對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),要使得其節(jié)點(diǎn)能夠動(dòng)態(tài)的任意移動(dòng),這就要求移動(dòng)設(shè)備盡量小型化。Ad hoc網(wǎng)絡(luò)是一個(gè)能量受限的系統(tǒng),移動(dòng)節(jié)點(diǎn)大多以電池作為動(dòng)力,與固定有源節(jié)點(diǎn)相比,Ad hoc網(wǎng)絡(luò)中節(jié)點(diǎn)能量供給具有高成本和短時(shí)特性,其網(wǎng)絡(luò)特性與能量消耗密切相關(guān)。如何節(jié)約和有效地利用節(jié)點(diǎn)的有限能量,是Ad hoc網(wǎng)絡(luò)在實(shí)際應(yīng)用中遇到的一個(gè)不可避免而又急待解決的問題。而且這些路由協(xié)議在路由過程當(dāng)中都是假設(shè)節(jié)點(diǎn)會(huì)無償?shù)剞D(zhuǎn)發(fā)路由分組,但是實(shí)際中的網(wǎng)絡(luò)并不像理論分析中那樣遵循預(yù)定的機(jī)制進(jìn)行通信,而是存在許多自私節(jié)點(diǎn)。所謂自私節(jié)點(diǎn),就是為了保存自身能量以延長工作壽命而不積極參與網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)甚至路由發(fā)現(xiàn)和路由維護(hù)的節(jié)點(diǎn)。Ad hoc網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都是理智的, 都會(huì)為了節(jié)約自身的資源而不愿意轉(zhuǎn)發(fā)與自身無關(guān)的分組,因此就表現(xiàn)出自私性。也正是由于節(jié)點(diǎn)這種潛在的“自私”行為,每個(gè)節(jié)點(diǎn)在決策時(shí)都必須考慮其它節(jié)點(diǎn)對(duì)自己即將做出的行動(dòng)的反應(yīng),也就是說,每個(gè)節(jié)點(diǎn)的決策將依賴于網(wǎng)絡(luò)中其它節(jié)點(diǎn)(尤其是鄰居節(jié)點(diǎn))的行為。Ad hoc網(wǎng)絡(luò)已經(jīng)成為近年來國際上前沿和熱點(diǎn)的研究領(lǐng)域,并成為無線網(wǎng)絡(luò)通信技術(shù)的一個(gè)新的發(fā)展方向。路由協(xié)議是確保Ad hoc網(wǎng)絡(luò)運(yùn)行的關(guān)鍵,作為Ad hoc網(wǎng)絡(luò)研究領(lǐng)域的熱點(diǎn)之一,其研究一直受到廣泛地關(guān)注。在傳統(tǒng)的Ad hoc網(wǎng)絡(luò)路由協(xié)議中,主要以路徑經(jīng)過轉(zhuǎn)發(fā)數(shù)據(jù)的節(jié)點(diǎn)的多少作為設(shè)計(jì)的標(biāo)準(zhǔn)來選擇最小跳數(shù)的路由,最小跳數(shù)路由大多數(shù)情況下并不能提供最大的吞吐量,并且由于使路由跳數(shù)的最小化導(dǎo)致每一跳傳輸距離的最大化,從而導(dǎo)致接收端信號(hào)強(qiáng)度的最小化和無線鏈路丟包率的最大化,給網(wǎng)絡(luò)帶來不必要的重傳和擁塞。由于忽視了網(wǎng)絡(luò)中終端節(jié)點(diǎn)的能量有限,很有可能導(dǎo)致網(wǎng)絡(luò)中存在多條最小跳數(shù)路徑均選擇一個(gè)關(guān)鍵節(jié)點(diǎn)來頻繁轉(zhuǎn)發(fā)數(shù)據(jù),致使該節(jié)點(diǎn)能量迅速耗竭。由于
4關(guān)鍵節(jié)點(diǎn)過早地停止工作,網(wǎng)絡(luò)出現(xiàn)分割。分割之后的網(wǎng)絡(luò),使得很多節(jié)點(diǎn)需要發(fā)送數(shù)據(jù)時(shí)無法找到到目的節(jié)點(diǎn)的有效路徑,從而尋找路由和數(shù)據(jù)傳輸失敗,網(wǎng)絡(luò)的整體性能也隨之迅速下降。這種現(xiàn)象在以缺乏持續(xù)供電設(shè)備為特點(diǎn)的Ad hoc網(wǎng)絡(luò)中尤其突出。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種根據(jù)節(jié)點(diǎn)信譽(yù)度和能量剩余值來選擇鏈路的Ad hoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議。Ad hoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,包括下列步驟
1)各個(gè)節(jié)點(diǎn)通過監(jiān)控鄰居節(jié)點(diǎn)的接發(fā)報(bào)文數(shù),建立信譽(yù)度監(jiān)控機(jī)制;
2)源節(jié)點(diǎn)選擇至少一個(gè)鄰居節(jié)點(diǎn)發(fā)送包括信譽(yù)度門限值、能量狀態(tài)門限值和路由基本信息的路由請(qǐng)求數(shù)據(jù)包;
3)鄰居節(jié)點(diǎn)根據(jù)數(shù)據(jù)包中路由基本信息判斷是否處理過相同路由請(qǐng)求數(shù)據(jù)包 如果是,則丟棄該路由請(qǐng)求數(shù)據(jù)包;
如果不是,則節(jié)點(diǎn)根據(jù)路由請(qǐng)求數(shù)據(jù)包中路由基本信息更新路由表;
4)鄰居節(jié)點(diǎn)根據(jù)路由基本信息判斷自己為目的節(jié)點(diǎn)或者中間節(jié)點(diǎn)
如果該節(jié)點(diǎn)為目的節(jié)點(diǎn),則從路由表中選擇自身狀態(tài)效用值最大的鏈路,向源節(jié)點(diǎn)單播包含多個(gè)參數(shù)的響應(yīng)報(bào)文;
如果該節(jié)點(diǎn)為中間節(jié)點(diǎn),則將當(dāng)前能量狀態(tài)值和能量狀態(tài)門限值做比較,若少于能量狀態(tài)門限值則丟棄路由請(qǐng)求數(shù)據(jù)包,若大于則將信譽(yù)表里上一跳節(jié)點(diǎn)的信譽(yù)度與信譽(yù)度門限值相比較,若低于信譽(yù)度門限值則將其判斷為自私節(jié)點(diǎn)并對(duì)其實(shí)施提高節(jié)點(diǎn)信譽(yù)度的激勵(lì)機(jī)制,并轉(zhuǎn)步驟5),否則接受該路由請(qǐng)求數(shù)據(jù)包并轉(zhuǎn)步驟5);
5)中間節(jié)點(diǎn)檢測自身路由表,若有到達(dá)目的節(jié)點(diǎn)的有效路由,則向上一跳節(jié)點(diǎn)返回包含多個(gè)參數(shù)的響應(yīng)報(bào)文,若沒有則將自身狀態(tài)效用值累加到所述路由請(qǐng)求數(shù)據(jù)包并轉(zhuǎn)發(fā);
6)源節(jié)點(diǎn)接收包含多個(gè)參數(shù)的響應(yīng)報(bào)文,根據(jù)響應(yīng)報(bào)文的信息更新自身路由表,并開始向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù);
7)鏈路上各個(gè)節(jié)點(diǎn)周期性向鄰居節(jié)點(diǎn)廣播HELLO包,在預(yù)設(shè)時(shí)間內(nèi)沒有收到鄰居節(jié)點(diǎn)返回的響應(yīng),則認(rèn)為通向該鄰居節(jié)點(diǎn)的鏈路斷開,節(jié)點(diǎn)不可達(dá),然后向該不可達(dá)節(jié)點(diǎn)發(fā)送 RREQ包進(jìn)行鏈路修復(fù),若有到不可達(dá)節(jié)點(diǎn)有效路由的中間節(jié)點(diǎn)或不可達(dá)節(jié)點(diǎn)收到RREQ包后就回復(fù)一個(gè)RREP包給發(fā)送RREQ包的節(jié)點(diǎn),路由重新建立,如果鏈路修復(fù)失敗,該發(fā)送 RREQ包的節(jié)點(diǎn)就向所有鄰居節(jié)點(diǎn)廣播RERR包。所述RERR包中的不可達(dá)節(jié)點(diǎn)列表不僅包括了鏈路斷開的鄰居節(jié)點(diǎn),還包括了以這個(gè)節(jié)點(diǎn)為下一跳路由的目的節(jié)點(diǎn)。通過廣播RERR包,網(wǎng)絡(luò)內(nèi)的其它節(jié)點(diǎn)就知道鏈路已經(jīng)斷開了。所述步驟1)中的信譽(yù)度監(jiān)控方法為各個(gè)節(jié)點(diǎn)設(shè)置第一和第二計(jì)數(shù)器,第一計(jì)數(shù)器用于計(jì)算鄰居節(jié)點(diǎn)接收到的數(shù)據(jù)包數(shù)
《⑴,第二計(jì)數(shù)器用于計(jì)算鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包的數(shù),然后計(jì)算出鄰居節(jié)點(diǎn)信譽(yù)
P f (t)
度,所述信譽(yù)度為Gl ( ) = 二 ,,,最后各個(gè)節(jié)點(diǎn)根據(jù)信譽(yù)度值更新自身信譽(yù)表。
當(dāng)前節(jié)點(diǎn)為上一跳鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包后,只有所述上一跳鄰居節(jié)點(diǎn)會(huì)更新當(dāng)前節(jié)點(diǎn)的信譽(yù)度,其余鄰居節(jié)點(diǎn)只作監(jiān)聽。步驟3)中,所述判斷方法為鄰居節(jié)點(diǎn)創(chuàng)建到上一跳節(jié)點(diǎn)的反向路由,然后查找自身路由表和數(shù)據(jù)包中的信息,若自身路由表中存在該反向路由則丟棄該數(shù)據(jù)包。步驟3)中,更新路由表的方法包括從自身路由表中查找通往源節(jié)點(diǎn)的反向路由,如果沒有,該節(jié)點(diǎn)利用路由請(qǐng)求數(shù)據(jù)包中的源節(jié)點(diǎn)序列號(hào)作為路由表項(xiàng)中的目的節(jié)點(diǎn)序列號(hào),建立一條通向源節(jié)點(diǎn)的反向路由;如果有,當(dāng)路由請(qǐng)求數(shù)據(jù)包中的源節(jié)點(diǎn)序列號(hào)比節(jié)點(diǎn)路由表項(xiàng)中保存的大或相同,但路由請(qǐng)求數(shù)據(jù)包中的的鏈路自身狀態(tài)效用值比節(jié)點(diǎn)路由表項(xiàng)中保存的大時(shí),則對(duì)反向路由表項(xiàng)進(jìn)行更新。步驟4)中目的節(jié)點(diǎn)接收到所述路由請(qǐng)求數(shù)據(jù)包后,立刻啟動(dòng)計(jì)時(shí)器,預(yù)設(shè)時(shí)間內(nèi)重復(fù)檢查自身路由表,從中選擇一條自身狀態(tài)效用值最大的最佳鏈路,當(dāng)計(jì)時(shí)器超時(shí),則向源節(jié)點(diǎn)單播響應(yīng)報(bào)文。步驟4)中對(duì)自私節(jié)點(diǎn)實(shí)施激勵(lì)機(jī)制。若自私節(jié)點(diǎn)選擇轉(zhuǎn)發(fā)數(shù)據(jù)包,則它的上一跳節(jié)點(diǎn)更新自身信譽(yù)表,為其增加一定的信譽(yù)度作為補(bǔ)償。步驟5)中當(dāng)前節(jié)點(diǎn)的路由表中存在到達(dá)目的節(jié)點(diǎn)的有效路由,就生成一個(gè)包含多個(gè)參數(shù)的路由響應(yīng)報(bào)文,中間節(jié)點(diǎn)把目的節(jié)點(diǎn)IP地址和序列號(hào)拷貝到響應(yīng)報(bào)文里的相應(yīng)字段,并把發(fā)來路由請(qǐng)求數(shù)據(jù)包的上一跳節(jié)點(diǎn)放入正向路由表項(xiàng)中的前驅(qū)節(jié)點(diǎn)字段,而把到目的節(jié)點(diǎn)的下一跳節(jié)點(diǎn)放入反向路由表項(xiàng)中的前驅(qū)節(jié)點(diǎn)字段,以此來更新路由表項(xiàng),然后向上一跳節(jié)點(diǎn)發(fā)送該包含多個(gè)參數(shù)的路由響應(yīng)報(bào)文。中間節(jié)點(diǎn)響應(yīng)路由請(qǐng)求數(shù)據(jù)包時(shí),檢查路由請(qǐng)求數(shù)據(jù)包的G標(biāo)志是否被置位如果未置位,則只需向源節(jié)點(diǎn)單播該路由響應(yīng)報(bào)文,如果被置位,則向源節(jié)點(diǎn)單播路由響應(yīng)報(bào)文后,還要向目的節(jié)點(diǎn)單播一個(gè)無請(qǐng)求路由響應(yīng)報(bào)文,以通知目的節(jié)點(diǎn)創(chuàng)建一條通往源節(jié)點(diǎn)的路由;
中間節(jié)點(diǎn)接收包含多個(gè)參數(shù)的響應(yīng)報(bào)文時(shí),首先查找是否有到達(dá)上一跳節(jié)點(diǎn)的路由, 若沒有,則創(chuàng)建一條到達(dá)目的節(jié)點(diǎn)的正向路由,否則當(dāng)滿足響應(yīng)報(bào)文中的源節(jié)點(diǎn)序列號(hào)比節(jié)點(diǎn)路由表項(xiàng)中保存的大,或者序列號(hào)相同,但包含多個(gè)參數(shù)的響應(yīng)報(bào)文中的鏈路自身狀態(tài)效用值比節(jié)點(diǎn)路由表項(xiàng)中保存的大時(shí),則更新正向路由表項(xiàng),同時(shí),將通往源節(jié)點(diǎn)反向路由表項(xiàng)中的前驅(qū)節(jié)點(diǎn)設(shè)為發(fā)來包含多個(gè)參數(shù)的響應(yīng)報(bào)文的上一跳節(jié)點(diǎn)。步驟6)中還包括
6. 1)源節(jié)點(diǎn)接收到包含多個(gè)參數(shù)的響應(yīng)報(bào)文,根據(jù)響應(yīng)報(bào)文中的路由信息判斷是否為對(duì)應(yīng)于同一個(gè)路由請(qǐng)求數(shù)據(jù)包的不同響應(yīng)報(bào)文,如果是則轉(zhuǎn)步驟6. 2),不是則轉(zhuǎn)步驟 6. 3)
6. 2)如果是,則與其他對(duì)應(yīng)于同一個(gè)路由請(qǐng)求數(shù)據(jù)包的不同響應(yīng)報(bào)文中的鏈路自身狀態(tài)效用值相比較,若是小于,則丟棄,否則轉(zhuǎn)步驟6. 3)
6.3)比較響應(yīng)報(bào)文和路由請(qǐng)求數(shù)據(jù)包中目的節(jié)點(diǎn)序列號(hào)的大小,若是響應(yīng)報(bào)文中的目的節(jié)點(diǎn)序列號(hào)大于或等于路由請(qǐng)求數(shù)據(jù)包中目的節(jié)點(diǎn)序列號(hào),則源節(jié)點(diǎn)更新自身路由表, 否則丟棄響應(yīng)報(bào)文。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于
該路由協(xié)議帶有對(duì)自私節(jié)點(diǎn)的檢測機(jī)制,并在路由準(zhǔn)則,自身狀態(tài)效用函數(shù)的選取上,充分考慮到節(jié)點(diǎn)的能量狀態(tài)和節(jié)點(diǎn)的自私行為的密切關(guān)聯(lián)性,定義其為節(jié)點(diǎn)的剩余能量和信譽(yù)度的函數(shù)。該路由協(xié)議很好地解決了節(jié)點(diǎn)的剩余能量與自私行為之間的矛盾,選用自身狀態(tài)效用函數(shù)最大的鏈路為最佳鏈路,這也是最可靠,最有保障的傳輸路徑。
圖1為本發(fā)明的請(qǐng)求過程; 圖2為本發(fā)明的響應(yīng)過程;
圖3為本發(fā)明實(shí)施例示意圖。
具體實(shí)施例方式一種Ad hoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,包括 1.路由發(fā)現(xiàn)
AODV-GT路由協(xié)議的路由發(fā)現(xiàn)過程如下 (1)產(chǎn)生路由請(qǐng)求
當(dāng)節(jié)點(diǎn)需要和網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)通信而又沒有到此目的節(jié)點(diǎn)的有效路徑時(shí),AODV-GT 路由協(xié)議就啟動(dòng)路由發(fā)現(xiàn)過程,它會(huì)廣播一個(gè)帶有路由基本信息的RREQ包。在廣播該RREQ 包之前,源節(jié)點(diǎn)會(huì)緩存該路由請(qǐng)求的識(shí)別碼(RREQ ID)和源節(jié)點(diǎn)自己的IP地址(兩者聯(lián)合起來標(biāo)志一個(gè)唯一的RREQ包)。當(dāng)該節(jié)點(diǎn)再次收到從鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)過來的同樣的RREQ包時(shí),就直接將其丟棄。(2)處理并轉(zhuǎn)發(fā)路由請(qǐng)求
當(dāng)中間節(jié)點(diǎn)收到RREQ包,首先創(chuàng)建到上一跳節(jié)點(diǎn)(廣播RREQ的鄰居節(jié)點(diǎn))的路由。然后判斷是否處理過相同的RREQ包, 如果是,則丟棄該信息包,
否則在節(jié)點(diǎn)路由表中查找是否有一條通往源節(jié)點(diǎn)的反向路由, 如果沒有,該節(jié)點(diǎn)利用RREQ包中的源節(jié)點(diǎn)序列號(hào)作為路由表項(xiàng)中的目的節(jié)點(diǎn)序列號(hào), 建立一條通向源節(jié)點(diǎn)的反向路由,當(dāng)節(jié)點(diǎn)收到RREP包而要傳送給發(fā)送RREQ包的源節(jié)點(diǎn)時(shí)需要使用這條反向路由。如果有,當(dāng)RREQ包中的源節(jié)點(diǎn)序列號(hào)比節(jié)點(diǎn)路由表項(xiàng)中保存的大,或者序列號(hào)相同,但RREQ包中的鏈路自身狀態(tài)效用值比節(jié)點(diǎn)路由表項(xiàng)中保存的大時(shí),則對(duì)反向路由表項(xiàng)進(jìn)行更新。如果當(dāng)前節(jié)點(diǎn)不是目的節(jié)點(diǎn),節(jié)點(diǎn)先把當(dāng)前能量狀態(tài)與RREQ包里的能量狀態(tài)門限值進(jìn)行比較,如果小,就直接丟棄RREQ包,說明此節(jié)點(diǎn)能量太低,不具備轉(zhuǎn)發(fā)數(shù)據(jù)的能力,即使參與合作,通信質(zhì)量太差,沒有任何保證。如果大,再把信譽(yù)表里的信譽(yù)度跟RREQ 包里的信譽(yù)度門限值進(jìn)行比較,
如果大,節(jié)點(diǎn)就把自己的自身狀態(tài)效用值累加到RREQ包的鏈路自身狀態(tài)效用的字段里,對(duì)其進(jìn)行更新,并向所有鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)更新后的RREQ包;
如果小,該節(jié)點(diǎn)被認(rèn)為是自私節(jié)點(diǎn),但它具有一定的數(shù)據(jù)轉(zhuǎn)發(fā)的能量,為了得到更多的通信鏈路,這時(shí)就對(duì)這樣的自私節(jié)點(diǎn)進(jìn)行信譽(yù)度激勵(lì),使之參與路由發(fā)現(xiàn)。(3)產(chǎn)生路由應(yīng)答
7如果當(dāng)前節(jié)點(diǎn)的路由表中存在到達(dá)目的節(jié)點(diǎn)的有效路由,就生成一個(gè)路由應(yīng)答RREP 包。中間節(jié)點(diǎn)把目的節(jié)點(diǎn)IP地址和序列號(hào)拷貝到RREP包里的相應(yīng)字段,并把發(fā)來RREQ包的上一跳節(jié)點(diǎn)放入正向路由表項(xiàng)中的前驅(qū)節(jié)點(diǎn)字段,而把到目的節(jié)點(diǎn)的下一跳節(jié)點(diǎn)放入反向路由表項(xiàng)中的前驅(qū)節(jié)點(diǎn)字段,以此來更新路由表項(xiàng)。若是中間節(jié)點(diǎn)回復(fù)路由應(yīng)答,那還要檢查RREQ包的G標(biāo)志是否被置位如果未置位,則只需向源節(jié)點(diǎn)單播該RREP包,如果被置位,則向源節(jié)點(diǎn)單播RREP包后,還要向目的節(jié)點(diǎn)單播一個(gè)無請(qǐng)求RREP包,以通知目的節(jié)點(diǎn)創(chuàng)建一條通往源節(jié)點(diǎn)的路由。如果當(dāng)前節(jié)點(diǎn)就是目的節(jié)點(diǎn),立即啟動(dòng)計(jì)時(shí)器,設(shè)置一個(gè)等待時(shí)間,這個(gè)等待時(shí)間
同看門狗的監(jiān)聽周期 ; 一樣長。在等待時(shí)間里,目的節(jié)點(diǎn)在多跳鏈路中選擇一條自身狀
態(tài)效用值最大的最佳鏈路。當(dāng)計(jì)時(shí)器超時(shí),目的節(jié)點(diǎn)馬上產(chǎn)生路由應(yīng)答RREP包,并設(shè)置好 RREP包里的相應(yīng)字段,然后沿著這條最佳鏈路向源節(jié)點(diǎn)單播該包。(4)處理并轉(zhuǎn)發(fā)路由應(yīng)答
收到RREP包的中間節(jié)點(diǎn),首先查找是否有到達(dá)上一跳節(jié)點(diǎn)的路由,若沒有,則創(chuàng)建一條到達(dá)目的節(jié)點(diǎn)的正向路由。否則,看節(jié)點(diǎn)路由表中該正向路由表項(xiàng)是否需要更新。當(dāng)滿足RREP包中的源節(jié)點(diǎn)序列號(hào)比節(jié)點(diǎn)路由表項(xiàng)中保存的大,或者序列號(hào)相同,但RREP包中的鏈路自身狀態(tài)效用值比節(jié)點(diǎn)路由表項(xiàng)中保存的大時(shí),則更新正向路由表項(xiàng)。同時(shí),將通往源節(jié)點(diǎn)反向路由表項(xiàng)中的前驅(qū)節(jié)點(diǎn)設(shè)為發(fā)來RREP的上一跳節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)不是源節(jié)點(diǎn),則找出路由表中通向源節(jié)點(diǎn)的反向路由(在處理RREQ 包時(shí)已建立,這時(shí)剛好要用到),節(jié)點(diǎn)根據(jù)反向路由的表項(xiàng)信息,決定接下來將RREP包單播給哪個(gè)節(jié)點(diǎn)。若當(dāng)前節(jié)點(diǎn)是源節(jié)點(diǎn),它就可立即使用該正向路由來進(jìn)行數(shù)據(jù)發(fā)送。AODV-GT路由協(xié)議的路由請(qǐng)求和路由應(yīng)答過程分別如圖2和圖3所示。2.路由維護(hù)
由于Ad hoc網(wǎng)絡(luò)具有動(dòng)態(tài)拓?fù)涞奶攸c(diǎn),已經(jīng)建立的路由隨著節(jié)點(diǎn)的移動(dòng)會(huì)發(fā)生改變, 網(wǎng)絡(luò)中任何節(jié)點(diǎn)的關(guān)閉或移動(dòng)都會(huì)導(dǎo)致部分鏈路的斷裂和新鏈路的產(chǎn)生。因此路由維護(hù)在 Ad hoc網(wǎng)絡(luò)通信中也是非常重要的。路由維護(hù)是對(duì)Ad hoc網(wǎng)絡(luò)中的通信鏈路進(jìn)行監(jiān)測和修復(fù),保證通信鏈路的連通性。在AODV-GT路由協(xié)議中,路由維護(hù)包括定期發(fā)送HELLO包、鏈路修復(fù)及修復(fù)失敗后發(fā)送 RERR包以通知該鏈路斷開?;钴S路由上的節(jié)點(diǎn)通過周期性地向鄰居節(jié)點(diǎn)廣播HELLO包來檢查該路由上各段鏈路的連接情況,非活躍路由上的節(jié)點(diǎn)則不需要。如果一定時(shí)間后,鄰居節(jié)點(diǎn)還收不到再次確認(rèn)連接的HELLO包,則該節(jié)點(diǎn)就認(rèn)為這條鏈路斷開,廣播RREQ包給這個(gè)不可達(dá)的鄰居節(jié)點(diǎn)開始進(jìn)行鏈路修復(fù)過程。當(dāng)有到不可達(dá)節(jié)點(diǎn)有效路由的中間節(jié)點(diǎn)或不可達(dá)節(jié)點(diǎn)收到此 RREQ包后就回復(fù)一個(gè)RREP包給該節(jié)點(diǎn),這樣鏈路就修復(fù)成功,路由重新建立。如果鏈路修復(fù)失敗,該節(jié)點(diǎn)就向所有鄰居節(jié)點(diǎn)廣播RERR包,RERR包中的不可達(dá)節(jié)點(diǎn)列表不僅包括了鏈路斷開的鄰居節(jié)點(diǎn),還包括了以這個(gè)節(jié)點(diǎn)為下一跳路由的目的節(jié)點(diǎn)。通過廣播RERR包,網(wǎng)絡(luò)內(nèi)的其它節(jié)點(diǎn)就知道鏈路已經(jīng)斷開了。其中每個(gè)節(jié)點(diǎn)使用看門狗機(jī)制來監(jiān)聽信號(hào)范圍內(nèi)所有鄰居節(jié)點(diǎn)的行為。看門狗用兩個(gè)計(jì)數(shù)器1和2來跟蹤每個(gè)鄰居節(jié)點(diǎn),計(jì)數(shù)器1記錄節(jié)點(diǎn)j收到的從節(jié)點(diǎn)i發(fā)送過來需要轉(zhuǎn)發(fā)的數(shù)據(jù)包的數(shù)量,用《ω表示;計(jì)數(shù)器2記錄節(jié)點(diǎn)j成功為節(jié)點(diǎn)
i轉(zhuǎn)發(fā)的數(shù)據(jù)包的數(shù)量,用¥⑴表示。這兩個(gè)值在監(jiān)聽過程中保持更新。如圖3所示,當(dāng)節(jié)點(diǎn)i要向節(jié)點(diǎn)η發(fā)送數(shù)據(jù)包時(shí),就需要通過中間節(jié)點(diǎn)j的轉(zhuǎn)發(fā)。 節(jié)點(diǎn)i把數(shù)據(jù)包發(fā)送給節(jié)點(diǎn)j,節(jié)點(diǎn)e、f、g和i都會(huì)在節(jié)點(diǎn)j轉(zhuǎn)發(fā)數(shù)據(jù)包給節(jié)點(diǎn)η的同時(shí)監(jiān)聽節(jié)點(diǎn)j的行為。它們把監(jiān)聽到的要發(fā)送的數(shù)據(jù)包拷貝到自己的緩存區(qū)里,緩存區(qū)里每
增加一個(gè)數(shù)據(jù)包,計(jì)數(shù)器1就加1,如果在每個(gè)包的轉(zhuǎn)發(fā)時(shí)間~內(nèi),節(jié)點(diǎn)j轉(zhuǎn)發(fā)一個(gè)數(shù)據(jù)包,
監(jiān)聽節(jié)點(diǎn)就會(huì)從緩存區(qū)里移除一個(gè)數(shù)據(jù)包,計(jì)數(shù)器2就加1。若超出轉(zhuǎn)發(fā)時(shí)間%,則計(jì)數(shù)器
2的值不變,但繼續(xù)從緩存區(qū)里移除數(shù)據(jù)包。把節(jié)點(diǎn)j在節(jié)點(diǎn)i的信譽(yù)度定義為
權(quán)利要求
1.一種Ad hoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于,包括下列步驟1)各個(gè)節(jié)點(diǎn)通過監(jiān)控鄰居節(jié)點(diǎn)的接發(fā)報(bào)文數(shù),建立信譽(yù)度監(jiān)控機(jī)制;2)源節(jié)點(diǎn)選擇至少一個(gè)鄰居節(jié)點(diǎn)發(fā)送包括信譽(yù)度門限值、能量狀態(tài)門限值和路由基本信息的路由請(qǐng)求數(shù)據(jù)包;3)鄰居節(jié)點(diǎn)根據(jù)數(shù)據(jù)包中路由基本信息判斷是否處理過相同路由請(qǐng)求數(shù)據(jù)包 如果是,則丟棄該路由請(qǐng)求數(shù)據(jù)包;如果不是,則節(jié)點(diǎn)根據(jù)路由請(qǐng)求數(shù)據(jù)包中路由基本信息更新路由表;4)鄰居節(jié)點(diǎn)根據(jù)路由基本信息判斷自己為目的節(jié)點(diǎn)還是中間節(jié)點(diǎn)如果該節(jié)點(diǎn)為目的節(jié)點(diǎn),則從路由表中選擇自身狀態(tài)效用值最大的鏈路,向源節(jié)點(diǎn)單播包含多個(gè)參數(shù)的響應(yīng)報(bào)文;如果該節(jié)點(diǎn)為中間節(jié)點(diǎn),則將當(dāng)前能量狀態(tài)值和能量狀態(tài)門限值做比較,若少于能量狀態(tài)門限值則丟棄路由請(qǐng)求數(shù)據(jù)包,若大于則將信譽(yù)表里上一跳節(jié)點(diǎn)的信譽(yù)度與信譽(yù)度門限值做比較,若低于信譽(yù)度門限值則將其判斷為自私節(jié)點(diǎn)并對(duì)其實(shí)施提高節(jié)點(diǎn)信譽(yù)度的激勵(lì)機(jī)制,并轉(zhuǎn)步驟5),否則接受該路由請(qǐng)求數(shù)據(jù)包并轉(zhuǎn)步驟5);5)中間節(jié)點(diǎn)檢測自身路由表,若有到達(dá)目的節(jié)點(diǎn)的有效路由,則向上一跳節(jié)點(diǎn)返回包含多個(gè)參數(shù)的響應(yīng)報(bào)文,若沒有則將自身狀態(tài)效用值累加到所述路由請(qǐng)求數(shù)據(jù)包并轉(zhuǎn)發(fā);6)源節(jié)點(diǎn)接收包含多個(gè)參數(shù)的響應(yīng)報(bào)文,根據(jù)響應(yīng)報(bào)文的信息更新自身路由表,并開始向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù);7)鏈路上各個(gè)節(jié)點(diǎn)周期性向鄰居節(jié)點(diǎn)廣播HELLO包,在預(yù)設(shè)時(shí)間內(nèi)沒有收到鄰居節(jié)點(diǎn)返回的響應(yīng),則認(rèn)為通向該鄰居節(jié)點(diǎn)的鏈路斷開,節(jié)點(diǎn)不可達(dá),然后向該不可達(dá)節(jié)點(diǎn)發(fā)送 RREQ包進(jìn)行鏈路修復(fù),若有到不可達(dá)節(jié)點(diǎn)有效路由的中間節(jié)點(diǎn)或不可達(dá)節(jié)點(diǎn)收到RREQ包后就回復(fù)一個(gè)RREP包給發(fā)送RREQ包的節(jié)點(diǎn),路由重新建立,如果鏈路修復(fù)失敗,該發(fā)送 RREQ包的節(jié)點(diǎn)就向所有鄰居節(jié)點(diǎn)廣播RERR包。
2.根據(jù)權(quán)利要求1所述的Adhoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于,所述步驟1)中的信譽(yù)度監(jiān)控方法為各個(gè)節(jié)點(diǎn)設(shè)置第一和第二計(jì)數(shù)器,第一計(jì)數(shù)器用于計(jì)算鄰居節(jié)點(diǎn)接收到的數(shù)據(jù)包數(shù)^ ω,第二計(jì)數(shù)器用于計(jì)算鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)W,然后計(jì)算出鄰居節(jié)點(diǎn)信譽(yù) 度,所述信譽(yù)度為
3.根據(jù)權(quán)利要求2所述的Adhoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于,當(dāng)前節(jié)點(diǎn)為上一跳鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包后,只有所述上一跳鄰居節(jié)點(diǎn)會(huì)更新當(dāng)前節(jié)點(diǎn)的信譽(yù)度,其余鄰居節(jié)點(diǎn)只作監(jiān)聽。
4.根據(jù)權(quán)利要求1所述的Adhoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于,步驟3)中,所述判斷方法為鄰居節(jié)點(diǎn)創(chuàng)建到上一跳節(jié)點(diǎn)的反向路由,然后查找自身路由表和數(shù)據(jù)包中的信息,若自身路由表中存在該反向路由則丟棄該數(shù)據(jù)包。
5.根據(jù)權(quán)利要求1所述的Adhoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于,步驟3)中,更新路由表的方法包括從自身路由表中查找通往源節(jié)點(diǎn)的反向路由,如果沒有,該節(jié)點(diǎn)利用路由請(qǐng)求數(shù)據(jù)包中的源節(jié)點(diǎn)序列號(hào)作為路由表項(xiàng)中的目的節(jié)點(diǎn)序列號(hào), 建立一條通向源節(jié)點(diǎn)的反向路由;如果有,當(dāng)路由請(qǐng)求數(shù)據(jù)包中的源節(jié)點(diǎn)序列號(hào)比節(jié)點(diǎn)路由表項(xiàng)中保存的大或相同,但路由請(qǐng)求數(shù)據(jù)包中的鏈路自身狀態(tài)效用值比節(jié)點(diǎn)路由表項(xiàng)中保存的大時(shí),則對(duì)反向路由表項(xiàng)進(jìn)行更新。
6.根據(jù)權(quán)利要求1所述的Adhoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于,步驟4)中目的節(jié)點(diǎn)接收到所述路由請(qǐng)求數(shù)據(jù)包后,立刻啟動(dòng)計(jì)時(shí)器,預(yù)設(shè)時(shí)間內(nèi)重復(fù)檢查自身路由表,從中選擇一條自身狀態(tài)效用值最大的最佳鏈路,當(dāng)計(jì)時(shí)器超時(shí),則向源節(jié)點(diǎn)單播響應(yīng)報(bào)文。
7.根據(jù)權(quán)利要求1所述的Adhoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于,所述步驟4)中對(duì)自私節(jié)點(diǎn)實(shí)施激勵(lì)機(jī)制,若自私節(jié)點(diǎn)選擇轉(zhuǎn)發(fā)數(shù)據(jù)包,則它的上一跳節(jié)點(diǎn)更新自身信譽(yù)表,為其增加一定的信譽(yù)度作為補(bǔ)償。
8 根據(jù)權(quán)利要求1所述的Adhoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于,步驟5)中當(dāng)前節(jié)點(diǎn)的路由表中存在到達(dá)目的節(jié)點(diǎn)的有效路由,就生成一個(gè)包含多個(gè)參數(shù)的路由響應(yīng)報(bào)文,中間節(jié)點(diǎn)把目的節(jié)點(diǎn)IP地址和序列號(hào)拷貝到響應(yīng)報(bào)文里的相應(yīng)字段, 并把發(fā)來路由請(qǐng)求數(shù)據(jù)包的上一跳節(jié)點(diǎn)放入正向路由表項(xiàng)中的前驅(qū)節(jié)點(diǎn)字段,而把到目的節(jié)點(diǎn)的下一跳節(jié)點(diǎn)放入反向路由表項(xiàng)中的前驅(qū)節(jié)點(diǎn)字段,以此來更新路由表項(xiàng),然后向上一跳節(jié)點(diǎn)發(fā)送該包含多個(gè)參數(shù)的路由響應(yīng)報(bào)文。
9.根據(jù)權(quán)利要求8所述的Adhoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于中間節(jié)點(diǎn)響應(yīng)路由請(qǐng)求數(shù)據(jù)包時(shí),檢查路由請(qǐng)求數(shù)據(jù)包的G標(biāo)志是否被置位如果未置位,則只需向源節(jié)點(diǎn)單播該路由響應(yīng)報(bào)文,如果被置位,則向源節(jié)點(diǎn)單播路由響應(yīng)報(bào)文后,還要向目的節(jié)點(diǎn)單播一個(gè)無請(qǐng)求路由響應(yīng)報(bào)文,以通知目的節(jié)點(diǎn)創(chuàng)建一條通往源節(jié)點(diǎn)的路由;中間節(jié)點(diǎn)接收包含多個(gè)參數(shù)的響應(yīng)報(bào)文時(shí),首先查找是否有到達(dá)上一跳節(jié)點(diǎn)的路由, 若沒有,則創(chuàng)建一條到達(dá)目的節(jié)點(diǎn)的正向路由,否則當(dāng)滿足響應(yīng)報(bào)文中的源節(jié)點(diǎn)序列號(hào)比節(jié)點(diǎn)路由表項(xiàng)中保存的大,或者序列號(hào)相同,但包含多個(gè)參數(shù)的響應(yīng)報(bào)文中的鏈路自身狀態(tài)效用值比節(jié)點(diǎn)路由表項(xiàng)中保存的大時(shí),則更新正向路由表項(xiàng),同時(shí),將通往源節(jié)點(diǎn)反向路由表項(xiàng)中的前驅(qū)節(jié)點(diǎn)設(shè)為發(fā)來包含多個(gè)參數(shù)的響應(yīng)報(bào)文的上一跳節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求1所述的Adhoc網(wǎng)絡(luò)基于博弈論的按需距離矢量路由協(xié)議,其特征在于,所述步驟6)還包括·6. 1)源節(jié)點(diǎn)接收到包含多個(gè)參數(shù)的響應(yīng)報(bào)文,根據(jù)響應(yīng)報(bào)文中的路由信息判斷是否為對(duì)應(yīng)于同一個(gè)路由請(qǐng)求數(shù)據(jù)包的不同響應(yīng)報(bào)文,如果是則轉(zhuǎn)步驟6. 2),不是則轉(zhuǎn)步驟 ·6. 3);·6. 2)如果是,則與其他對(duì)應(yīng)于同一個(gè)路由請(qǐng)求數(shù)據(jù)包的不同響應(yīng)報(bào)文中的鏈路自身狀態(tài)效用值相比較,若是小于,則丟棄,否則轉(zhuǎn)步驟6. 3);·6.3)比較響應(yīng)報(bào)文和路由請(qǐng)求數(shù)據(jù)包中目的節(jié)點(diǎn)序列號(hào)的大小,若是響應(yīng)報(bào)文中的目的節(jié)點(diǎn)序列號(hào)大于或等于路由請(qǐng)求數(shù)據(jù)包中目的節(jié)點(diǎn)序列號(hào),則源節(jié)點(diǎn)更新自身路由表, 否則丟棄響應(yīng)報(bào)文。
全文摘要
本發(fā)明根據(jù)博弈論模型下節(jié)點(diǎn)自私行為的分析結(jié)果,設(shè)計(jì)出了一種基于博弈論的按需距離矢量路由協(xié)議。該路由協(xié)議帶有對(duì)自私節(jié)點(diǎn)的檢測機(jī)制,并在路由準(zhǔn)則(自身狀態(tài)效用函數(shù))的選取上,充分考慮到節(jié)點(diǎn)的能量狀態(tài)和節(jié)點(diǎn)的自私行為的密切關(guān)聯(lián)性,定義其為節(jié)點(diǎn)的剩余能量和信譽(yù)度的函數(shù)。該路由協(xié)議很好地解決了節(jié)點(diǎn)的剩余能量與自私行為之間的矛盾,選用自身狀態(tài)效用函數(shù)最大的鏈路為最佳鏈路,這也是最可靠,最有保障的傳輸路徑。
文檔編號(hào)H04W40/10GK102271380SQ20111025822
公開日2011年12月7日 申請(qǐng)日期2011年9月2日 優(yōu)先權(quán)日2011年9月2日
發(fā)明者周杰英, 趙環(huán), 鄧義暉, 郭長飛, 雷淳, 黃安泓 申請(qǐng)人:中山大學(xué)