專(zhuān)利名稱(chēng):高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)自組網(wǎng)技術(shù)領(lǐng)域,尤其是自組網(wǎng)中節(jié)點(diǎn)安全退出方法,具體地說(shuō)是一種高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法。
背景技術(shù):
高速節(jié)點(diǎn)組網(wǎng)國(guó)際上主要是引入移動(dòng)自組網(wǎng)技術(shù),將組成高速節(jié)點(diǎn)網(wǎng)絡(luò)的每個(gè)高空通信節(jié)點(diǎn)所獲得的信息通過(guò)戰(zhàn)術(shù)數(shù)據(jù)鏈技術(shù)達(dá)到實(shí)時(shí)的共享,充分利用數(shù)據(jù)鏈有限帶寬,從而極大地提高高速節(jié)點(diǎn)對(duì)信息的處理速度,提高對(duì)特殊情況的響應(yīng)能力,綜合利用獲得的信息資源快速?zèng)Q策,大大地提高高速節(jié)點(diǎn)在實(shí)際應(yīng)用中的攻擊能力和生存能力。高速節(jié)點(diǎn)自組網(wǎng)中使用的分簇算法,面向高速節(jié)點(diǎn)自組網(wǎng)的三級(jí)樹(shù)形結(jié)構(gòu)令牌雙簇首分簇方法,將移動(dòng)自組網(wǎng)拓?fù)浣Y(jié)構(gòu)模型設(shè)計(jì)為三級(jí)樹(shù)形結(jié)構(gòu),引入高速節(jié)點(diǎn)通信強(qiáng)度優(yōu)先級(jí)概念,并將其應(yīng)用到中心節(jié)點(diǎn)及高空節(jié)點(diǎn)等簇首節(jié)點(diǎn)選舉中,同時(shí)針對(duì)高速節(jié)點(diǎn)移·動(dòng)自組網(wǎng)的特性,對(duì)分簇算法的很多方面,針對(duì)性的做出分析,提出改進(jìn)的思想,并對(duì)簇維護(hù)算法進(jìn)行了分析,增強(qiáng)了分簇算法的針對(duì)性與實(shí)用性,有助于提高高速節(jié)點(diǎn)生存能力及系統(tǒng)穩(wěn)定性能,更好的完成作戰(zhàn)任務(wù)。但是對(duì)通信節(jié)點(diǎn)組成三級(jí)樹(shù)形網(wǎng)絡(luò)后,由于外力損壞、電子屏蔽失去聯(lián)系等原因造成節(jié)點(diǎn)的退出情況并沒(méi)有具體的實(shí)施方案來(lái)確保節(jié)點(diǎn)退出時(shí)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的穩(wěn)定性。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,從而確保由于外力損壞、電子屏蔽、攔截失去聯(lián)系等原因造成節(jié)點(diǎn)的加入情況下協(xié)同通信組網(wǎng)的拓?fù)浣Y(jié)構(gòu)穩(wěn)定,提高高速節(jié)點(diǎn)抗干擾性及系統(tǒng)穩(wěn)定性。—種高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,所述的自組網(wǎng)結(jié)構(gòu)是由低空節(jié)點(diǎn)、高空節(jié)點(diǎn)和中心節(jié)點(diǎn)構(gòu)成的三級(jí)樹(shù)形移動(dòng)自組網(wǎng)拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)分配有唯一 ID,根據(jù)不同的退出因素對(duì)節(jié)點(diǎn)退出順序的影響,建立節(jié)點(diǎn)退出因素集函數(shù),區(qū)分正常退出和異常退出兩種情況,建立正常退出序列,并針對(duì)異常退出情況構(gòu)建的退出列表。本發(fā)明的正常退出序列在自組網(wǎng)的上位控制中心確立,控制中心根據(jù)節(jié)點(diǎn)的退出因素,建立各個(gè)因素對(duì)各節(jié)點(diǎn)退出的因素影響函數(shù),將各因素影響函數(shù)與對(duì)應(yīng)因素影響該節(jié)點(diǎn)退出所占的權(quán)重相乘,得到該節(jié)點(diǎn)正常退出序列并預(yù)先存儲(chǔ)于各個(gè)節(jié)點(diǎn)信息列表中,遇到退出因素集中因素導(dǎo)致節(jié)點(diǎn)退出時(shí),首先依據(jù)正常退出序列進(jìn)行判定,如果正常退出過(guò)程中發(fā)現(xiàn)異常則轉(zhuǎn)入異常退出策略。本發(fā)明的建立正常退出序列的具體步驟如下(I)、確定節(jié)點(diǎn)退出因素集在自組網(wǎng)的上位控制中心建立節(jié)點(diǎn)退出因素集,以影
響退出序列的各種因素組成的集合用U來(lái)表示,U = {u1; U2......U1J,其中Ui, i e [I, η]
代表節(jié)點(diǎn)的各退出因素,包括濕度、溫度和遭遇攔截的概率,η表示退出因素的個(gè)數(shù);(2)、建立退出因素集函數(shù)建立退出因素集中的各個(gè)因素對(duì)每個(gè)節(jié)點(diǎn)退出的因素影響函數(shù)F(Ui),各退出因素函數(shù)均是關(guān)于節(jié)點(diǎn)位置的函數(shù);退出因素集U對(duì)每個(gè)節(jié)點(diǎn)的影
響總和為Σ l'\ui);
i(3)、建立權(quán)重集根據(jù)退出因素集中的各個(gè)因素對(duì)每個(gè)節(jié)點(diǎn)退出序列順序的影響程度,采用層次分析法計(jì)算各退出因素Ui相應(yīng)的權(quán)重Wi,得到因素集所對(duì)應(yīng)的權(quán)重集合;(4)、建立正常退出序列計(jì)算每個(gè)節(jié)點(diǎn)在退出序列中的取值T(i)=F(Ui) Xwi,對(duì)比每個(gè)節(jié)點(diǎn)的T值,按照節(jié)點(diǎn)T值從大至小排列,通過(guò)每個(gè)節(jié)點(diǎn)唯一 ID建立正常退出序列。本發(fā)明的步驟(4)中,增加決定調(diào)節(jié)算子λ ;即建立正常退出序列計(jì)算每個(gè)節(jié)點(diǎn)在退出序列中的取值T(I)=F(Ui)XwiXA, λ是決定調(diào)節(jié)算子,用于調(diào)整T值貼近實(shí)際要求,對(duì)比每個(gè)節(jié)點(diǎn)的T值,按照節(jié)點(diǎn)T值從大至小排列,通過(guò)每個(gè)節(jié)點(diǎn)唯一 ID建立正常退出序列。 本發(fā)明中,如果正常退出過(guò)程中發(fā)現(xiàn)異常則轉(zhuǎn)入異常退出策略,所述的異常退出策略包括以下步驟Stepl :中心節(jié)點(diǎn)發(fā)現(xiàn)某節(jié)點(diǎn)異常退出時(shí),發(fā)送Connect消息,確認(rèn)此節(jié)點(diǎn)是否存在,有回應(yīng)則重新建立鏈接;如無(wú)回應(yīng)根據(jù)此異常退出節(jié)點(diǎn)失去聯(lián)系前的消息信息,確定其附近一跳節(jié)點(diǎn),發(fā)送Hello消息請(qǐng)求此節(jié)點(diǎn)附近節(jié)點(diǎn)二次確認(rèn)節(jié)點(diǎn)是否存在;Step2:其他節(jié)點(diǎn)收到消息后,通過(guò)微波、紅外或短距離雷達(dá)的方式確認(rèn)此節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在則通知該節(jié)點(diǎn)啟用備用線路鏈接入網(wǎng)絡(luò),如果節(jié)點(diǎn)不存在,則通知中心節(jié)點(diǎn)此節(jié)點(diǎn)異常退出;Step3 :中心節(jié)點(diǎn)確認(rèn)節(jié)點(diǎn)異常退出后,在正常退出序列中,刪除此節(jié)點(diǎn)信息,并上報(bào)控制中心后,重新建立新的正常退出序列廣播給其他節(jié)點(diǎn),其他節(jié)點(diǎn)收到消息后更新自己正常退出列表。本發(fā)明中,異常退出節(jié)點(diǎn)為低空節(jié)點(diǎn)時(shí),當(dāng)高空節(jié)點(diǎn)檢測(cè)到分簇中某低空節(jié)點(diǎn)不存在時(shí),直接在消息列表中將其刪除,具體步驟如下Stepl :高空節(jié)點(diǎn)定時(shí)向分簇內(nèi)成員低空節(jié)點(diǎn)傳送Co_and消息控制低空節(jié)點(diǎn)運(yùn)行傳遞控制中心命令,低空節(jié)點(diǎn)接收到消息后,向高空節(jié)點(diǎn)發(fā)送包含自己ID的Receive消息;Step2 :如果高空節(jié)點(diǎn)在約定時(shí)間內(nèi)沒(méi)有收到低空節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command消息;Step3:在兩次高空節(jié)點(diǎn)發(fā)送消息后,仍沒(méi)有收到低空節(jié)點(diǎn)回復(fù),則采用二次確認(rèn)的方法查詢(xún)此節(jié)點(diǎn)最后一次通信范圍內(nèi)節(jié)點(diǎn)發(fā)送Connect消息,通過(guò)微波雷達(dá)等方式查詢(xún)確認(rèn)節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接;否則高空節(jié)點(diǎn)在正常退出序列中進(jìn)行查詢(xún),確認(rèn)節(jié)點(diǎn)是否屬于正常退出,如果屬于正常退出,將其從鄰居列表中刪除,并發(fā)送Member消息告知分簇成員。St印4:如果節(jié)點(diǎn)不在正常退出序列,經(jīng)二次確認(rèn)節(jié)點(diǎn)已經(jīng)異常退出,則通知中心節(jié)點(diǎn)有節(jié)點(diǎn)異常退出,中心節(jié)點(diǎn)收到消息后刪除此節(jié)點(diǎn),重新建立新的正常退出序列,并報(bào)控制中心及其他節(jié)點(diǎn)更新正常退出序列。本發(fā)明中,異常退出節(jié)點(diǎn)為高空節(jié)點(diǎn)時(shí),若其分簇成員只有一個(gè),則分簇直接解散,分簇內(nèi)低空節(jié)點(diǎn)作為新節(jié)點(diǎn)加入其他分簇;若是分簇成員較多,通過(guò)三級(jí)樹(shù)形結(jié)構(gòu)的令牌雙簇首分簇方法直接選舉一個(gè)新的高空節(jié)點(diǎn),并廣播給中心節(jié)點(diǎn)。本發(fā)明中,分簇解散,具體步驟如下Stepl :中心節(jié)點(diǎn)定時(shí)向分簇內(nèi)成員高空節(jié)點(diǎn)傳送Command消息,高空節(jié)點(diǎn)接收到消息后,向中心節(jié)點(diǎn)發(fā)送包含自己ID的Receive消息并向分簇內(nèi)低空節(jié)點(diǎn)傳遞Command消息;Step2 :如果中心節(jié)點(diǎn)在給定時(shí)間內(nèi)沒(méi)有收到高空節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command消息;Step3:在兩次中心節(jié)點(diǎn)發(fā)送消息后,仍沒(méi)有收到高空節(jié)點(diǎn)回復(fù),則查詢(xún)此節(jié)點(diǎn)最后一次通信范圍內(nèi)節(jié)點(diǎn)發(fā)送Connect消息通過(guò)微波雷達(dá)方式查詢(xún)確認(rèn)節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接,否則中心節(jié)點(diǎn)在正常退出序列中進(jìn)行查詢(xún),確認(rèn)是否節(jié)點(diǎn)屬于正常退出,如果屬于正常退出,將其從鄰居列表中刪除,并發(fā)送消息告知分簇成員;Step4:如果節(jié)點(diǎn)不在正常退出序列,經(jīng)二次確認(rèn)節(jié)點(diǎn)已經(jīng)異常退出,查詢(xún)發(fā)現(xiàn)此·高空節(jié)點(diǎn)分簇內(nèi)低空節(jié)點(diǎn)數(shù)只有一個(gè),則發(fā)送Hel Io消息,將失效高空節(jié)點(diǎn)分簇內(nèi)的低空節(jié)點(diǎn)信息廣播給其他高空節(jié)點(diǎn),其他高空節(jié)點(diǎn)收到Hello消息后向低空節(jié)點(diǎn)廣播發(fā)送Join消息,低空節(jié)點(diǎn)在收到高空節(jié)點(diǎn)Join消息后,對(duì)比選接其中ID較小的高空節(jié)點(diǎn),發(fā)送Sure消息,并將高空節(jié)點(diǎn)信息計(jì)入自己消息列表;Step5 :高空節(jié)點(diǎn)根據(jù)收到的應(yīng)答,將新節(jié)點(diǎn)作為低空節(jié)點(diǎn)加入自己消息列表,并廣播Hello消息給中心節(jié)點(diǎn)更新分簇內(nèi)所有節(jié)點(diǎn)的信息。中心節(jié)點(diǎn)收到消息后,啟動(dòng)異常退出策略,刪除異常退出節(jié)點(diǎn),重新建立新的正常退出序列,并更新鄰居節(jié)點(diǎn)列表,報(bào)控制中心及其他節(jié)點(diǎn)更新正常退出序列;所述的重新選舉高空節(jié)點(diǎn),具體步驟如下Stepl :中心節(jié)點(diǎn)定時(shí)向分簇內(nèi)成員高空節(jié)點(diǎn)傳送Command消息,高空節(jié)點(diǎn)接收到消息后,向中心節(jié)點(diǎn)發(fā)送包含自己ID的Receive消息并向分簇內(nèi)低空節(jié)點(diǎn)傳遞Command消息;Step2 :如果中心節(jié)點(diǎn)在給定時(shí)間內(nèi)沒(méi)有收到高空節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command消息;Step3:在兩次中心節(jié)點(diǎn)發(fā)送消息后,仍沒(méi)有收到高空節(jié)點(diǎn)回復(fù),則查詢(xún)此節(jié)點(diǎn)最后一次通信范圍內(nèi)節(jié)點(diǎn)發(fā)送Connect消息通過(guò)微波雷達(dá)方式查詢(xún)確認(rèn)節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接,否則中心節(jié)點(diǎn)在正常退出序列中進(jìn)行查詢(xún),確認(rèn)是否節(jié)點(diǎn)屬于正常退出,如果屬于正常退出,將其從鄰居列表中刪除,并發(fā)送消息告知分簇成員;Step4:如果節(jié)點(diǎn)不在正常退出序列,經(jīng)二次確認(rèn)節(jié)點(diǎn)已經(jīng)異常退出,查詢(xún)發(fā)現(xiàn)此高空節(jié)點(diǎn)分簇內(nèi)低空節(jié)點(diǎn)數(shù)較多,則直接發(fā)送Hello消息給失效高空節(jié)點(diǎn)分簇內(nèi)的低空節(jié)點(diǎn),重新選舉高空節(jié)點(diǎn),低空節(jié)點(diǎn)在收到中心節(jié)點(diǎn)HelIo消息后,依據(jù)第三章中高空節(jié)點(diǎn)選舉步驟重新選舉出高空節(jié)點(diǎn);Step5 :新選舉出的高空節(jié)點(diǎn)向中心節(jié)點(diǎn)發(fā)送包含自己分簇成員信息的Member信息,中心節(jié)點(diǎn)收到消息后,刪除異常退出節(jié)點(diǎn),重新按照退出序列構(gòu)建步驟,計(jì)算新產(chǎn)生高空節(jié)點(diǎn)T值,如果沒(méi)有變化則只需在原有序列中刪除異常退出節(jié)點(diǎn),其他節(jié)點(diǎn)重新建立新的正常退出序列;Step6 :如果新的高空節(jié)點(diǎn)T值相比其以前值發(fā)生變化,則中心節(jié)點(diǎn)重新比較排列各個(gè)節(jié)點(diǎn)T值,產(chǎn)生新的正常退出序列并更新鄰居節(jié)點(diǎn)列表;Step7 :新的正常退出序列建立后報(bào)控制中心及其他節(jié)點(diǎn)更新正常退出序列。本發(fā)明中,所述的中心節(jié)點(diǎn)退出時(shí),具體步驟如下Step I :中心節(jié)點(diǎn)接收到控制中心Co_and消息后,向分簇內(nèi)高空節(jié)點(diǎn)傳送Command消息,并向控制中心發(fā)送包含自己ID的Receive消息;Step2 :如果控制中心在固定時(shí)間內(nèi)沒(méi)有收到中心節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command消息;Step3 :在兩次控制中心發(fā)送消息后,仍沒(méi)有收到中心節(jié)點(diǎn)回復(fù),則查詢(xún)中心節(jié)點(diǎn)最后一次通信范圍內(nèi)其他高空節(jié)點(diǎn)發(fā)送Connect消息通過(guò)微波、雷達(dá)方式查詢(xún)確認(rèn)中心節(jié) 點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接,否則控制中心在正常退出序列中進(jìn)行查詢(xún),確認(rèn)是否中心節(jié)點(diǎn)屬于正常退出,如果屬于正常退出,則控制中心認(rèn)定中心節(jié)點(diǎn)已經(jīng)失效,直接發(fā)送Hello信息廣播給備用中心節(jié)點(diǎn)宣布其成為新的中心節(jié)點(diǎn)。Step4 :備用中心節(jié)點(diǎn)在收到控制中心Hello消息后,向控制中心發(fā)送Sure消息刪除退出列表中原中心節(jié)點(diǎn)信息,更新新的正常退出列表,并同時(shí)發(fā)送Hello消息向其他高空節(jié)點(diǎn)廣播其為新中心節(jié)點(diǎn),控制中心與其他高空節(jié)點(diǎn)收到消息后更新自己的消息列表及正常退出列表;Step5 如果在給定時(shí)間內(nèi)控制中心沒(méi)有收到備用中心節(jié)點(diǎn)消息,并且經(jīng)二次確認(rèn)其他節(jié)點(diǎn)也沒(méi)有查詢(xún)到備用中心節(jié)點(diǎn)信息則認(rèn)定備用中心節(jié)點(diǎn)已經(jīng)失效,查詢(xún)備用中心節(jié)點(diǎn)是否屬于正常退出,如果是正常退出則直接發(fā)送Hello信息廣播給其他高空節(jié)點(diǎn)宣布選舉新的中心節(jié)點(diǎn);Step6 :其他高空節(jié)點(diǎn)收到控制中心消息后,依據(jù)第三章中中心節(jié)點(diǎn)選舉算法選出出新的中心節(jié)點(diǎn),新的中心節(jié)點(diǎn)選出出來(lái)后,再選舉出備用中心節(jié)點(diǎn),新的中心節(jié)點(diǎn)向網(wǎng)內(nèi)其他節(jié)點(diǎn)發(fā)送Hello消息廣播自己是新的中心節(jié)點(diǎn);St印7 :其他高空節(jié)點(diǎn)收到消息后更新自己的消息列表,并發(fā)送包含自己ID在內(nèi)的Member消息給新的中心節(jié)點(diǎn),新的中心節(jié)點(diǎn)在收到Member消息后更新自己的消息列表,并發(fā)送包含移動(dòng)自組網(wǎng)內(nèi)所有節(jié)點(diǎn)信息的Hello信息給控制中心,控制中心刪除正常退出節(jié)點(diǎn)信息并傳輸給新的中心節(jié)點(diǎn)及其他節(jié)點(diǎn)新的正常退出列表。Step8 :如果在Step3中,發(fā)現(xiàn)中心節(jié)點(diǎn)屬于異常退出,并確認(rèn)備用中心節(jié)點(diǎn)存在,則在備用中心節(jié)點(diǎn)成為新的中心節(jié)點(diǎn)后,計(jì)算新的中心節(jié)點(diǎn)T值,比較其他節(jié)點(diǎn)T值,重新建立正常退出序列,并同時(shí)發(fā)送Hello消息向其他高空節(jié)點(diǎn)廣播其為新中心節(jié)點(diǎn),控制中心與其他高空節(jié)點(diǎn)收到消息后更新自己的消息列表及正常退出列表;Step9 :如果在Step3中發(fā)現(xiàn)中心節(jié)點(diǎn)屬于異常退出并確認(rèn)備用中心節(jié)點(diǎn)失效,并在Step5中發(fā)現(xiàn)備用中心節(jié)點(diǎn)屬于異常退出經(jīng)過(guò)重新選舉出新的中心節(jié)點(diǎn)后,控制中心在收到中心節(jié)點(diǎn)的Hello信息后更新自己的消息列表,并計(jì)算新的中心節(jié)點(diǎn)T值,與其他節(jié)點(diǎn)T值進(jìn)行比較產(chǎn)生新的正常退出序列,傳輸給中心節(jié)點(diǎn)及其他節(jié)點(diǎn)更新新的正常退出序列。本發(fā)明中,在自組網(wǎng)中節(jié)點(diǎn)較少時(shí),采取平面結(jié)構(gòu)由控制中心統(tǒng)一控制,各節(jié)點(diǎn)間相互聯(lián)系,具體步驟如下Stepl :中心節(jié)點(diǎn)在分簇內(nèi)作戰(zhàn)節(jié)點(diǎn)退出后,向控制中心發(fā)送包含簇成員消息的Member消息及時(shí)更新簇內(nèi)節(jié)點(diǎn)信息;
Step2 :如果控制中心在收到中心節(jié)點(diǎn)Member消息后,檢測(cè)到節(jié)點(diǎn)數(shù)目已經(jīng)少于四個(gè),則向中心發(fā)出Kick消息解散分簇;Step3 :在中心節(jié)點(diǎn)轉(zhuǎn)發(fā)Kick消息給其他節(jié)點(diǎn)后,所有節(jié)點(diǎn)收到Kick消息后,離開(kāi)分簇直接向控制中心發(fā)送Join消息加入控制中心;Step4 :控制中心收到節(jié)點(diǎn)Join消息后,單獨(dú)控制各個(gè)節(jié)點(diǎn)并在各個(gè)節(jié)點(diǎn)間組織協(xié)同完成通信。本發(fā)明中,Hello信息為所有的節(jié)點(diǎn)在每個(gè)Hello時(shí)間間隔周期性地向外廣播Hello信息通告自身節(jié)點(diǎn)情況,每個(gè)節(jié)點(diǎn)的Hello信息包括它的鄰居表和簇首鄰表。Accept消息用于回復(fù)節(jié)點(diǎn)加入分簇申請(qǐng),Change消息用于更新簇首,Control消息用于控制中心與中心節(jié)點(diǎn)交流,Hello消息用于廣播節(jié)點(diǎn)自身信息及傳遞命令節(jié)點(diǎn)間信息交流等,Join消息用于申請(qǐng)加入分簇,Sure消息用于確認(rèn)消息。此過(guò)程中還采用了一些三級(jí)樹(shù)形結(jié)構(gòu)令牌雙簇首分簇方法中沒(méi)有的消息,其格式設(shè)置考慮數(shù)據(jù)鏈技術(shù)中多種抗干擾方式以及綜合 融合檢錯(cuò)糾錯(cuò)等技術(shù),Command消息用于節(jié)點(diǎn)間命令等信息的傳遞,Receive消息用于確認(rèn)收到消息等,Member消息用于廣播分簇內(nèi)成員信息等,Kick消息用于網(wǎng)絡(luò)重組。本發(fā)明的技術(shù)方案是本發(fā)明的有益效果本發(fā)明能夠有效確保節(jié)點(diǎn)退出時(shí)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的穩(wěn)定性;提高高速節(jié)點(diǎn)抗干擾性和抗損毀性。本發(fā)明能夠節(jié)約資源,做到退出時(shí)的精確控制;抗干擾能力、綜合融合檢錯(cuò)糾錯(cuò)能力強(qiáng);增強(qiáng)網(wǎng)絡(luò)的健壯性,提高網(wǎng)絡(luò)穩(wěn)定性。
圖I是本發(fā)明的聞速聞空節(jié)點(diǎn)組網(wǎng)I旲型不意圖。圖2是本發(fā)明中任一低空節(jié)點(diǎn)退出網(wǎng)絡(luò)示意圖。圖3是本發(fā)明的分簇成員只有一個(gè)時(shí)高空節(jié)點(diǎn)退出網(wǎng)絡(luò)示意圖。圖4是本發(fā)明的分簇成員較多時(shí)高空節(jié)點(diǎn)退出網(wǎng)絡(luò)示意圖。圖5是本發(fā)明的中心節(jié)點(diǎn)退出流程圖。圖6是本發(fā)明的任一中心節(jié)點(diǎn)退出網(wǎng)絡(luò)示意圖。圖7是本發(fā)明的節(jié)點(diǎn)退出較多時(shí),轉(zhuǎn)換為平面網(wǎng)絡(luò)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。如圖I所示,一種高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,所述的自組網(wǎng)結(jié)構(gòu)是由低空節(jié)點(diǎn)、高空節(jié)點(diǎn)和中心節(jié)點(diǎn)構(gòu)成的三級(jí)樹(shù)形移動(dòng)自組網(wǎng)拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)分配有唯一 ID,根據(jù)不同的退出因素對(duì)節(jié)點(diǎn)退出順序的影響,建立節(jié)點(diǎn)退出因素集函數(shù),區(qū)分正常退出和異常退出兩種情況,建立正常退出序列,并針對(duì)異常退出情況構(gòu)建的退出列表。本發(fā)明將高速節(jié)點(diǎn)組成的網(wǎng)絡(luò)分為三級(jí)的樹(shù)形結(jié)構(gòu)。第一級(jí)節(jié)點(diǎn)中心節(jié)點(diǎn),即根結(jié)點(diǎn),負(fù)責(zé)與控制中心例如衛(wèi)星等的通信,同時(shí)兼顧管理其他高空節(jié)點(diǎn);第二級(jí)節(jié)點(diǎn)高空節(jié)點(diǎn),即根結(jié)點(diǎn)的子節(jié)點(diǎn),負(fù)責(zé)與中心節(jié)點(diǎn)通信,管理低空節(jié)點(diǎn);第三極節(jié)點(diǎn)低空節(jié)點(diǎn)即葉子節(jié)點(diǎn)與高空節(jié)點(diǎn)通信。分簇算法的主要思想如下A :預(yù)先發(fā)射時(shí)賦予各個(gè)高速節(jié)點(diǎn)唯一 ID,使用最小ID分簇算法對(duì)網(wǎng)絡(luò)初始化分簇,采用協(xié)同通信優(yōu)先級(jí)調(diào)整分簇產(chǎn)生高空節(jié)點(diǎn),進(jìn)而選舉出中心節(jié)點(diǎn),最后再產(chǎn)生一個(gè)備用中心節(jié)點(diǎn)。B :選舉出的中心節(jié)點(diǎn)向控制中心通報(bào)網(wǎng)絡(luò)狀況后,控制中心廣生Iv令牌父給中心節(jié)點(diǎn),即根結(jié)點(diǎn),令牌在通訊過(guò)程中使用。C :需要重新選舉中心節(jié)點(diǎn)時(shí)依據(jù)備用中心節(jié)點(diǎn)是否存活采取不同策略。D :需要重新選舉高空節(jié)點(diǎn)時(shí)依據(jù)分簇算法產(chǎn)生。
通信時(shí),在各節(jié)點(diǎn)中選舉出的中心節(jié)點(diǎn)由控制中心賦予令牌,節(jié)點(diǎn)消失令牌重新產(chǎn)生,令牌在中心節(jié)點(diǎn)與高空節(jié)點(diǎn)組成的令牌環(huán)間流轉(zhuǎn),其地址為中心節(jié)點(diǎn)ID,其他節(jié)點(diǎn)需要使用信道傳輸信息,拿到令牌后使用信道,信道使用完畢釋放令牌,每個(gè)節(jié)點(diǎn)申請(qǐng)使用令牌時(shí)間固定,未傳遞完畢信息再次申請(qǐng),令牌每輪轉(zhuǎn)一次,信息數(shù)加一,如果中心節(jié)點(diǎn)在申請(qǐng)使用時(shí)間完畢未收到返回令牌,則認(rèn)定令牌失效,重新產(chǎn)生新令牌。本發(fā)明中,正常退出序列在自組網(wǎng)的上位控制中心確立,控制中心根據(jù)節(jié)點(diǎn)的退出因素,建立各個(gè)因素對(duì)各節(jié)點(diǎn)退出的因素影響函數(shù),將各因素影響函數(shù)與對(duì)應(yīng)因素影響該節(jié)點(diǎn)退出所占的權(quán)重相乘,得到該節(jié)點(diǎn)正常退出序列并預(yù)先存儲(chǔ)于各個(gè)節(jié)點(diǎn)信息列表中,遇到退出因素集中因素導(dǎo)致節(jié)點(diǎn)退出時(shí),首先依據(jù)正常退出序列進(jìn)行判定,如果正常退出過(guò)程中發(fā)現(xiàn)異常則轉(zhuǎn)入異常退出策略。本發(fā)明中,建立正常退出序列的具體步驟如下(I)、確定節(jié)點(diǎn)退出因素集在自組網(wǎng)的上位控制中心建立節(jié)點(diǎn)退出因素集,以影
響退出序列的各種因素組成的集合用U來(lái)表示,U = {u1; U2......U1J,其中Ui, i e [I, η]
代表節(jié)點(diǎn)的各退出因素,包括濕度、溫度和遭遇攔截的概率,η表示退出因素的個(gè)數(shù);(2)、建立退出因素集函數(shù)建立退出因素集中的各個(gè)因素對(duì)每個(gè)節(jié)點(diǎn)退出的因素影響函數(shù)F(Ui),各退出因素函數(shù)均是關(guān)于節(jié)點(diǎn)位置的函數(shù);退出因素集U對(duì)每個(gè)節(jié)點(diǎn)的影
響總和為廠(",)=!>、(",);(3)、建立權(quán)重集根據(jù)退出因素集中的各個(gè)因素對(duì)每個(gè)節(jié)點(diǎn)退出序列順序的影響程度,采用層次分析法計(jì)算各退出因素Ui相應(yīng)的權(quán)重Wi,得到因素集所對(duì)應(yīng)的權(quán)重集合;(4)、建立正常退出序列計(jì)算每個(gè)節(jié)點(diǎn)在退出序列中的取值T(I)=F(Ui) Xwi,對(duì)比每個(gè)節(jié)點(diǎn)的T值,按照節(jié)點(diǎn)T值從大至小排列,通過(guò)每個(gè)節(jié)點(diǎn)唯一 ID建立正常退出序列。本發(fā)明中,步驟(4)中,增加決定調(diào)節(jié)算子λ ;即建立正常退出序列計(jì)算每個(gè)節(jié)點(diǎn)在退出序列中的取值T(I)=F(Ui) XwiX λ,λ是決定調(diào)節(jié)算子,用于調(diào)整T值貼近實(shí)際要求,對(duì)比每個(gè)節(jié)點(diǎn)的T值,按照節(jié)點(diǎn)T值從大至小排列,通過(guò)每個(gè)節(jié)點(diǎn)唯一 ID建立正常退出序列。本發(fā)明中,如果正常退出過(guò)程中發(fā)現(xiàn)異常則轉(zhuǎn)入異常退出策略,所述的異常退出策略包括以下步驟Stepl :中心節(jié)點(diǎn)發(fā)現(xiàn)某節(jié)點(diǎn)異常退出時(shí),發(fā)送Connect消息,確認(rèn)此節(jié)點(diǎn)是否存在,有回應(yīng)則重新建立鏈接;如無(wú)回應(yīng)根據(jù)此異常退出節(jié)點(diǎn)失去聯(lián)系前的消息信息,確定其附近一跳節(jié)點(diǎn),發(fā)送Hello消息請(qǐng)求此節(jié)點(diǎn)附近節(jié)點(diǎn)二次確認(rèn)節(jié)點(diǎn)是否存在;Step2:其他節(jié)點(diǎn)收到消息后,通過(guò)微波、紅外或短距離雷達(dá)的方式確認(rèn)此節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在則通知該節(jié)點(diǎn)啟用備用線路鏈接入網(wǎng)絡(luò),如果節(jié)點(diǎn)不存在,則通知中心節(jié)點(diǎn)此節(jié)點(diǎn)異常退出;St印3 :中心節(jié)點(diǎn)確認(rèn)節(jié)點(diǎn)異常退出后,在正常退出序列中,刪除此節(jié)點(diǎn)信息,并上報(bào)控制中心后,重新建立新的正常退出序列廣播給其他節(jié)點(diǎn),其他節(jié)點(diǎn)收到消息后更新自己正常退出列表。本發(fā)明中,異常退出節(jié)點(diǎn)為低空節(jié)點(diǎn)時(shí),當(dāng)高空節(jié)點(diǎn)檢測(cè)到分簇中某低空節(jié)點(diǎn)不存在時(shí),直接在消息列表中將其刪除,具體步驟如下Stepl :高空節(jié)點(diǎn)定時(shí)向分簇內(nèi)成員低空節(jié)點(diǎn)傳送Co_and消息控制低空節(jié)點(diǎn)運(yùn)行傳遞控制中心命令,低空節(jié)點(diǎn)接收到消息后,向高空節(jié)點(diǎn)發(fā)送包含自己ID的Receive消息; Step2 :如果高空節(jié)點(diǎn)在約定時(shí)間內(nèi)沒(méi)有收到低空節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command消息;Step3:在兩次高空節(jié)點(diǎn)發(fā)送消息后,仍沒(méi)有收到低空節(jié)點(diǎn)回復(fù),則采用二次確認(rèn)的方法查詢(xún)此節(jié)點(diǎn)最后一次通信范圍內(nèi)節(jié)點(diǎn)發(fā)送Connect消息,通過(guò)微波雷達(dá)等方式查詢(xún)確認(rèn)節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接;否則高空節(jié)點(diǎn)在正常退出序列中進(jìn)行查詢(xún),確認(rèn)節(jié)點(diǎn)是否屬于正常退出,如果屬于正常退出,將其從鄰居列表中刪除,并發(fā)送Member消息告知分簇成員。St印4:如果節(jié)點(diǎn)不在正常退出序列,經(jīng)二次確認(rèn)節(jié)點(diǎn)已經(jīng)異常退出,則通知中心節(jié)點(diǎn)有節(jié)點(diǎn)異常退出,中心節(jié)點(diǎn)收到消息后刪除此節(jié)點(diǎn),重新建立新的正常退出序列,并報(bào)控制中心及其他節(jié)點(diǎn)更新正常退出序列。本發(fā)明中,異常退出節(jié)點(diǎn)為高空節(jié)點(diǎn)時(shí),若其分簇成員只有一個(gè),則分簇直接解散,分簇內(nèi)低空節(jié)點(diǎn)作為新節(jié)點(diǎn)加入其他分簇;若是分簇成員較多,通過(guò)三級(jí)樹(shù)形結(jié)構(gòu)的令牌雙簇首分簇方法直接選舉一個(gè)新的高空節(jié)點(diǎn),并廣播給中心節(jié)點(diǎn)。所述的分簇解散,具體步驟如下Stepl :中心節(jié)點(diǎn)定時(shí)向分簇內(nèi)成員高空節(jié)點(diǎn)傳送Command消息,高空節(jié)點(diǎn)接收到消息后,向中心節(jié)點(diǎn)發(fā)送包含自己ID的Receive消息并向分簇內(nèi)低空節(jié)點(diǎn)傳遞Command消息;Step2 :如果中心節(jié)點(diǎn)在給定時(shí)間內(nèi)沒(méi)有收到高空節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command消息;Step3:在兩次中心節(jié)點(diǎn)發(fā)送消息后,仍沒(méi)有收到高空節(jié)點(diǎn)回復(fù),則查詢(xún)此節(jié)點(diǎn)最后一次通信范圍內(nèi)節(jié)點(diǎn)發(fā)送Connect消息通過(guò)微波雷達(dá)方式查詢(xún)確認(rèn)節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接,否則中心節(jié)點(diǎn)在正常退出序列中進(jìn)行查詢(xún),確認(rèn)是否節(jié)點(diǎn)屬于正常退出,如果屬于正常退出,將其從鄰居列表中刪除,并發(fā)送消息告知分簇成員;Step4:如果節(jié)點(diǎn)不在正常退出序列,經(jīng)二次確認(rèn)節(jié)點(diǎn)已經(jīng)異常退出,查詢(xún)發(fā)現(xiàn)此高空節(jié)點(diǎn)分簇內(nèi)低空節(jié)點(diǎn)數(shù)只有一個(gè),則發(fā)送Hello消息,將失效高空節(jié)點(diǎn)分簇內(nèi)的低空節(jié)點(diǎn)信息廣播給其他高空節(jié)點(diǎn),其他高空節(jié)點(diǎn)收到Hello消息后向低空節(jié)點(diǎn)廣播發(fā)送Join消息,低空節(jié)點(diǎn)在收到高空節(jié)點(diǎn)Join消息后,對(duì)比選接其中ID較小的高空節(jié)點(diǎn),發(fā)送Sure消息,并將高空節(jié)點(diǎn)信息計(jì)入自己消息列表;Step5 :高空節(jié)點(diǎn)根據(jù)收到的應(yīng)答,將新節(jié)點(diǎn)作為低空節(jié)點(diǎn)加入自己消息列表,并廣播Hello消息給中心節(jié)點(diǎn)更新分簇內(nèi)所有節(jié)點(diǎn)的信息。中心節(jié)點(diǎn)收到消息后,啟動(dòng)異常退出策略,刪除異常退出節(jié)點(diǎn),重新建立新的正常退出序列,并更新鄰居節(jié)點(diǎn)列表,報(bào)控制中心及其他節(jié)點(diǎn)更新正常退出序列。舉例示意如圖3所示,中心節(jié)點(diǎn)I高空節(jié)點(diǎn)2-3低空節(jié)點(diǎn)4-8組成的如圖網(wǎng)絡(luò),低高空節(jié)點(diǎn)3網(wǎng)絡(luò),其中點(diǎn)虛線表示簇內(nèi)成員間的通訊,實(shí)線表示簇首與成員間的通訊。一是重新選舉高空節(jié)點(diǎn),具體步驟如下前三步與上述分簇解散步驟相同。Step4:如果節(jié)點(diǎn)不在正常退出序列,經(jīng)二次確認(rèn)節(jié)點(diǎn)已經(jīng)異常退出,查詢(xún)發(fā)現(xiàn)此高空節(jié)點(diǎn)分簇內(nèi)低空節(jié)點(diǎn)數(shù)較多,則直接發(fā)送Hello消息給失效高空節(jié)點(diǎn)分簇內(nèi)的低空節(jié)點(diǎn),重新選舉高空節(jié)點(diǎn),低空節(jié)點(diǎn)在收到中心節(jié)點(diǎn)Hello消息后,依據(jù)第三章中高空節(jié)點(diǎn)選舉步驟重新選舉出高空節(jié)點(diǎn)。 Step5 :新選舉出的高空節(jié)點(diǎn)向中心節(jié)點(diǎn)發(fā)送包含自己分簇成員信息的Member信息,中心節(jié)點(diǎn)收到消息后,啟動(dòng)異常退出策略,刪除異常退出節(jié)點(diǎn),重新按照退出序列構(gòu)建步驟,計(jì)算新產(chǎn)生高空節(jié)點(diǎn)T值,如果沒(méi)有變化則只需在原有序列中刪除異常退出節(jié)點(diǎn),其他節(jié)點(diǎn)重新建立新的正常退出序列即可。Step6 :如果新的高空節(jié)點(diǎn)T值,相比其以前值發(fā)生變化,則中心節(jié)點(diǎn)重新比較排列各個(gè)節(jié)點(diǎn)T值,產(chǎn)生新的正常退出序列并更新鄰居節(jié)點(diǎn)列表。St印7 :新的正常退出序列建立后報(bào)控制中心及其他節(jié)點(diǎn)更新正常退出序列。舉例示意如圖4所示,中心節(jié)點(diǎn)I高空節(jié)點(diǎn)2-3低空節(jié)點(diǎn)4-8組成的如圖網(wǎng)絡(luò),低高空節(jié)點(diǎn)2網(wǎng)絡(luò),其中點(diǎn)虛線表示簇內(nèi)成員間的通訊,實(shí)線表示簇首與成員間的通訊。中心節(jié)點(diǎn)退出時(shí),應(yīng)對(duì)策略具體步驟如下Stepl :中心節(jié)點(diǎn)接收到控制中心Co_and消息后,向分簇內(nèi)高空節(jié)點(diǎn)傳送Command消息,并向控制中心發(fā)送包含自己ID的Receive消息。Step2 :如果控制中心在固定時(shí)間內(nèi)沒(méi)有收到中心節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command消息。St印3 :在兩次控制中心發(fā)送消息后,仍沒(méi)有收到中心節(jié)點(diǎn)回復(fù),則查詢(xún)中心節(jié)點(diǎn)最后一次通信范圍內(nèi)其他高空節(jié)點(diǎn)發(fā)送Connect消息通過(guò)微波雷達(dá)等方式查詢(xún)確認(rèn)中心節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接,否則控制中心啟動(dòng)退出機(jī)制查詢(xún)功能,確認(rèn)是否中心節(jié)點(diǎn)屬于正常退出,如果屬于正常退出,則控制中心認(rèn)定中心節(jié)點(diǎn)已經(jīng)失效,直接發(fā)送Hello信息廣播給備用中心節(jié)點(diǎn)宣布其成為新的中心節(jié)點(diǎn)。Step4 :備用中心節(jié)點(diǎn)在收到控制中心Hello消息后,向控制中心發(fā)送Sure消息刪除退出列表中原中心節(jié)點(diǎn)信息,更新新的正常退出列表,并同時(shí)發(fā)送Hello消息向其他高空節(jié)點(diǎn)廣播其為新中心節(jié)點(diǎn),控制中心與其他高空節(jié)點(diǎn)收到消息后更新自己的消息列表及正常退出列表。Step5 如果在給定時(shí)間內(nèi)控制中心沒(méi)有收到備用中心節(jié)點(diǎn)消息,并且經(jīng)二次確認(rèn)其他節(jié)點(diǎn)也沒(méi)有查詢(xún)到備用中心節(jié)點(diǎn)信息則認(rèn)定備用中心節(jié)點(diǎn)已經(jīng)失效,查詢(xún)備用中心節(jié)點(diǎn)是否屬于正常退出,如果是正常退出則直接發(fā)送Hello信息廣播給其他高空節(jié)點(diǎn)宣布選舉新的中心節(jié)點(diǎn)。
Step6 :其他高空節(jié)點(diǎn)收到控制中心消息后,依據(jù)第三章中中心節(jié)點(diǎn)選舉算法選出出新的中心節(jié)點(diǎn),新的中心節(jié)點(diǎn)選出出來(lái)后,再選舉出備用中心節(jié)點(diǎn),新的中心節(jié)點(diǎn)向網(wǎng)內(nèi)其他節(jié)點(diǎn)發(fā)送Hello消息廣播自己是新的中心節(jié)點(diǎn)。St印7 :其他高空節(jié)點(diǎn)收到消息后更新自己的消息列表,并發(fā)送包含自己ID在內(nèi)的Member消息給新的中心節(jié)點(diǎn),新的中心節(jié)點(diǎn)在收到Member消息后更新自己的消息列表,并發(fā)送包含移動(dòng)自組網(wǎng)內(nèi)所有節(jié)點(diǎn)信息的Hello信息給控制中心,控制中心刪除正常退出節(jié)點(diǎn)信息并傳輸給新的中心節(jié)點(diǎn)及其他節(jié)點(diǎn)新的正常退出列表。Step8 :如果在Step3中,發(fā)現(xiàn)中心節(jié)點(diǎn)屬于異常退出,并確認(rèn)備用中心節(jié)點(diǎn)存在,則在備用中心節(jié)點(diǎn)成為新的中心節(jié)點(diǎn)后,計(jì)算新的中心節(jié)點(diǎn)T值,比較其他節(jié)點(diǎn)T值,重新建立正常退出序列,并同時(shí)發(fā)送Hello消息向其他高空節(jié)點(diǎn)廣播其為新中心節(jié)點(diǎn),控制中心與其他高空節(jié)點(diǎn)收到消息后更新自己的消息列表及正常退出列表。Step9 :如果在Step3中發(fā)現(xiàn)中心節(jié)點(diǎn)屬于異常退出并確認(rèn)備用中心節(jié)點(diǎn)失效,并 在Step5中發(fā)現(xiàn)備用中心節(jié)點(diǎn)屬于異常退出經(jīng)過(guò)重新選舉出新的中心節(jié)點(diǎn)后,控制中心在收到中心節(jié)點(diǎn)的Hello信息后更新自己的消息列表,并計(jì)算新的中心節(jié)點(diǎn)T值,與其他節(jié)點(diǎn)T值進(jìn)行比較產(chǎn)生新的正常退出序列,傳輸給中心節(jié)點(diǎn)及其他節(jié)點(diǎn)更新新的正常退出序列。中心節(jié)點(diǎn)退出流程如圖5所示。舉例示意如圖6所示,中心節(jié)點(diǎn)I高空節(jié)點(diǎn)2-3低空節(jié)點(diǎn)4-8組成的網(wǎng)絡(luò)如圖所示,中心節(jié)點(diǎn)I退出網(wǎng)絡(luò)。在剩余節(jié)點(diǎn)較少時(shí),采取平面結(jié)構(gòu)由控制中心統(tǒng)一控制,各節(jié)點(diǎn)間相互聯(lián)系。具體步驟如下Stepl :中心節(jié)點(diǎn)在分簇內(nèi)作戰(zhàn)節(jié)點(diǎn)退出后,向控制中心發(fā)送包含簇成員消息的Member消息及時(shí)更新簇內(nèi)節(jié)點(diǎn)信息。Step2 :如果控制中心在收到中心節(jié)點(diǎn)Member消息后,檢測(cè)到節(jié)點(diǎn)數(shù)目已經(jīng)少于四個(gè),則向中心發(fā)出Kick消息解散分簇。St印3 :在中心節(jié)點(diǎn)轉(zhuǎn)發(fā)Kick消息給其他節(jié)點(diǎn)后,所有節(jié)點(diǎn)收到Kick消息后,離開(kāi)分簇直接向控制中心發(fā)送Join消息加入控制中心。Step4 :控制中心收到節(jié)點(diǎn)Join消息后,單獨(dú)控制各個(gè)節(jié)點(diǎn)并在各個(gè)節(jié)點(diǎn)間組織協(xié)同完成作戰(zhàn)目標(biāo)。舉例示意如圖7所示,中心節(jié)點(diǎn)I高空節(jié)點(diǎn)2-3低空節(jié)點(diǎn)4-8組成的網(wǎng)絡(luò)如圖所示,節(jié)點(diǎn)退出網(wǎng)絡(luò)后僅余I,5,8三個(gè)節(jié)點(diǎn)。其中,算法中應(yīng)用到的消息,Hello信息為所有的節(jié)點(diǎn)在每個(gè)Hello時(shí)間間隔周期性地向外廣播Hello信息通告自身節(jié)點(diǎn)情況,每個(gè)節(jié)點(diǎn)的Hello信息包括它的鄰居表和簇首鄰表。Accept消息用于回復(fù)節(jié)點(diǎn)加入分簇申請(qǐng),Change消息用于更新簇首,Control消息用于控制中心與中心節(jié)點(diǎn)交流,Hello消息用于廣播節(jié)點(diǎn)自身信息及傳遞命令節(jié)點(diǎn)間信息交流等,Join消息用于申請(qǐng)加入分簇,Sure消息用于確認(rèn)消息。此過(guò)程中還采用了一些三級(jí)樹(shù)形結(jié)構(gòu)令牌雙簇首分簇方法中沒(méi)有的消息,其格式設(shè)置考慮數(shù)據(jù)鏈技術(shù)中多種抗干擾方式以及綜合融合檢錯(cuò)糾錯(cuò)等技術(shù),Command消息用于節(jié)點(diǎn)間命令等信息的傳遞,Receive消息用于確認(rèn)收到消息等,Member消息用于廣播分簇內(nèi)成員信息等,Kick消息用于網(wǎng)絡(luò)重組。本發(fā)明未涉及部分均與現(xiàn)有技術(shù)相同或可采用現(xiàn)有技術(shù)加以實(shí)現(xiàn)。
權(quán)利要求
1.一種高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,所述的自組網(wǎng)結(jié)構(gòu)是由低空節(jié)點(diǎn)、高空節(jié)點(diǎn)和中心節(jié)點(diǎn)構(gòu)成的三級(jí)樹(shù)形移動(dòng)自組網(wǎng)拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)分配有唯一 ID,其特征在于,根據(jù)不同的退出因素對(duì)節(jié)點(diǎn)退出順序的影響,建立節(jié)點(diǎn)退出因素集函數(shù),區(qū)分正常退出和異常退出兩種情況,建立正常退出序列,并針對(duì)異常退出情況構(gòu)建的退出列表。
2.根據(jù)權(quán)利要求I所述的高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,其特征在于,所述的正常退出序列在自組網(wǎng)的上位控制中心確立,控制中心根據(jù)節(jié)點(diǎn)的退出因素,建立各個(gè)因素對(duì)各節(jié)點(diǎn)退出的因素影響函數(shù),將各因素影響函數(shù)與對(duì)應(yīng)因素影響該節(jié)點(diǎn)退出所占的權(quán)重相乘,得到該節(jié)點(diǎn)正常退出序列并預(yù)先存儲(chǔ)于各個(gè)節(jié)點(diǎn)信息列表中,遇到退出因素集中因素導(dǎo)致節(jié)點(diǎn)退出時(shí),首先依據(jù)正常退出序列進(jìn)行判定,如果正常退出過(guò)程中發(fā)現(xiàn)異常則轉(zhuǎn)入異常退出策略。
3.根據(jù)權(quán)利要求I或2所述的高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,其特征在于,所述的建立正常退出序列的具體步驟如下 (1)、確定節(jié)點(diǎn)退出因素集在自組網(wǎng)的上位控制中心建立節(jié)點(diǎn)退出因素集,以影響退出序列的各種因素組成的集合用U來(lái)表示,U = Iu1, U2......U1J,其中Ui, i e [I, η]代表節(jié)點(diǎn)的各退出因素,包括濕度、溫度和遭遇攔截的概率,η表示退出因素的個(gè)數(shù); (2)、建立退出因素集函數(shù)建立退出因素集中的各個(gè)因素對(duì)每個(gè)節(jié)點(diǎn)退出的因素影響函數(shù)F (Ui),各退出因素函數(shù)均是關(guān)于節(jié)點(diǎn)位置的函數(shù);退出因素集U對(duì)每個(gè)節(jié)點(diǎn)的影響總和為廠.(",)=Σ廠("山 i (3)、建立權(quán)重集根據(jù)退出因素集中的各個(gè)因素對(duì)每個(gè)節(jié)點(diǎn)退出序列順序的影響程度,采用層次分析法計(jì)算各退出因素Ui相應(yīng)的權(quán)重Wi,得到因素集所對(duì)應(yīng)的權(quán)重集合; (4)、建立正常退出序列計(jì)算每個(gè)節(jié)點(diǎn)在退出序列中的取值T(i)=F(Ui)Xwi,對(duì)比每個(gè)節(jié)點(diǎn)的T值,按照節(jié)點(diǎn)T值從大至小排列,通過(guò)每個(gè)節(jié)點(diǎn)唯一 ID建立正常退出序列。
4.根據(jù)權(quán)利要求3所述的高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,其特征在于,步驟(4)中,增加決定調(diào)節(jié)算子λ ;即建立正常退出序列計(jì)算每個(gè)節(jié)點(diǎn)在退出序列中的取值T(I)=F(Ui)XwiXA, λ是決定調(diào)節(jié)算子,用于調(diào)整T值貼近實(shí)際要求,對(duì)比每個(gè)節(jié)點(diǎn)的T值,按照節(jié)點(diǎn)T值從大至小排列,通過(guò)每個(gè)節(jié)點(diǎn)唯一 ID建立正常退出序列。
5.根據(jù)權(quán)利要求I或2所述的高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,其特征在于,如果正常退出過(guò)程中發(fā)現(xiàn)異常則轉(zhuǎn)入異常退出策略,所述的異常退出策略包括以下步驟 Stepl :中心節(jié)點(diǎn)發(fā)現(xiàn)某節(jié)點(diǎn)異常退出時(shí),發(fā)送Connect消息,確認(rèn)此節(jié)點(diǎn)是否存在,有回應(yīng)則重新建立鏈接;如無(wú)回應(yīng)根據(jù)此異常退出節(jié)點(diǎn)失去聯(lián)系前的消息信息,確定其附近一跳節(jié)點(diǎn),發(fā)送Hello消息請(qǐng)求此節(jié)點(diǎn)附近節(jié)點(diǎn)二次確認(rèn)節(jié)點(diǎn)是否存在; Step2 :其他節(jié)點(diǎn)收到消息后,通過(guò)微波、紅外或短距離雷達(dá)的方式確認(rèn)此節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在則通知該節(jié)點(diǎn)啟用備用線路鏈接入網(wǎng)絡(luò),如果節(jié)點(diǎn)不存在,則通知中心節(jié)點(diǎn)此節(jié)點(diǎn)異常退出; Step3:中心節(jié)點(diǎn)確認(rèn)節(jié)點(diǎn)異常退出后,在正常退出序列中,刪除此節(jié)點(diǎn)信息,并上報(bào)控制中心后,重新建立新的正常退出序列廣播給其他節(jié)點(diǎn),其他節(jié)點(diǎn)收到消息后更新自己正常退出列表。
6.根據(jù)權(quán)利要求5所述的高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,其特征在于,所述的異常退出節(jié)點(diǎn)為低空節(jié)點(diǎn)時(shí),當(dāng)高空節(jié)點(diǎn)檢測(cè)到分簇中某低空節(jié)點(diǎn)不存在時(shí),直接在消息列表中將其刪除,具體步驟如下 Stepl :高空節(jié)點(diǎn)定時(shí)向分簇內(nèi)成員低空節(jié)點(diǎn)傳送Co_and消息控制低空節(jié)點(diǎn)運(yùn)行傳遞控制中心命令,低空節(jié)點(diǎn)接收到消息后,向高空節(jié)點(diǎn)發(fā)送包含自己ID的Receive消息;Step2 :如果高空節(jié)點(diǎn)在約定時(shí)間內(nèi)沒(méi)有收到低空節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command 消息; Step3 :在兩次高空節(jié)點(diǎn)發(fā)送消息后,仍沒(méi)有收到低空節(jié)點(diǎn)回復(fù),則采用二次確認(rèn)的方法查詢(xún)此節(jié)點(diǎn)最后一次通信范圍內(nèi)節(jié)點(diǎn)發(fā)送Connect消息,通過(guò)微波雷達(dá)等方式查詢(xún)確認(rèn)節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接; 否則高空節(jié)點(diǎn)在正常退出序列中進(jìn)行查詢(xún),確認(rèn)節(jié)點(diǎn)是否屬于正常退出,如果屬于正常退出,將其從鄰居列表中刪除,并發(fā)送Member消息告知分簇成員。
Step4 :如果節(jié)點(diǎn)不在正常退出序列,經(jīng)二次確認(rèn)節(jié)點(diǎn)已經(jīng)異常退出,則通知中心節(jié)點(diǎn)有節(jié)點(diǎn)異常退出,中心節(jié)點(diǎn)收到消息后刪除此節(jié)點(diǎn),重新建立新的正常退出序列,并報(bào)控制中心及其他節(jié)點(diǎn)更新正常退出序列。
7.根據(jù)權(quán)利要求5所述的高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,其特征在于,所述的異常退出節(jié)點(diǎn)為高空節(jié)點(diǎn)時(shí),若其分簇成員只有一個(gè),則分簇直接解散,分簇內(nèi)低空節(jié)點(diǎn)作為新節(jié)點(diǎn)加入其他分簇;若是分簇成員較多,通過(guò)三級(jí)樹(shù)形結(jié)構(gòu)的令牌雙簇首分簇方法直接選舉一個(gè)新的高空節(jié)點(diǎn),并廣播給中心節(jié)點(diǎn)。
8.根據(jù)權(quán)利要求5所述的高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,其特征在于,所述的分簇解散,具體步驟如下 Stepl :中心節(jié)點(diǎn)定時(shí)向分簇內(nèi)成員高空節(jié)點(diǎn)傳送Command消息,高空節(jié)點(diǎn)接收到消息后,向中心節(jié)點(diǎn)發(fā)送包含自己ID的Receive消息并向分簇內(nèi)低空節(jié)點(diǎn)傳遞Command消息;Step2 :如果中心節(jié)點(diǎn)在給定時(shí)間內(nèi)沒(méi)有收到高空節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command 消息; Step3:在兩次中心節(jié)點(diǎn)發(fā)送消息后,仍沒(méi)有收到高空節(jié)點(diǎn)回復(fù),則查詢(xún)此節(jié)點(diǎn)最后一次通信范圍內(nèi)節(jié)點(diǎn)發(fā)送Connect消息通過(guò)微波雷達(dá)方式查詢(xún)確認(rèn)節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接,否則中心節(jié)點(diǎn)在正常退出序列中進(jìn)行查詢(xún),確認(rèn)是否節(jié)點(diǎn)屬于正常退出,如果屬于正常退出,將其從鄰居列表中刪除,并發(fā)送消息告知分簇成員; St印4 :如果節(jié)點(diǎn)不在正常退出序列,經(jīng)二次確認(rèn)節(jié)點(diǎn)已經(jīng)異常退出,查詢(xún)發(fā)現(xiàn)此高空節(jié)點(diǎn)分簇內(nèi)低空節(jié)點(diǎn)數(shù)只有一個(gè),則發(fā)送Hello消息,將失效高空節(jié)點(diǎn)分簇內(nèi)的低空節(jié)點(diǎn)信息廣播給其他高空節(jié)點(diǎn),其他高空節(jié)點(diǎn)收到Hello消息后向低空節(jié)點(diǎn)廣播發(fā)送Join消息,低空節(jié)點(diǎn)在收到高空節(jié)點(diǎn)Join消息后,對(duì)比選接其中ID較小的高空節(jié)點(diǎn),發(fā)送Sure消息,并將高空節(jié)點(diǎn)信息計(jì)入自己消息列表; Step5 :高空節(jié)點(diǎn)根據(jù)收到的應(yīng)答,將新節(jié)點(diǎn)作為低空節(jié)點(diǎn)加入自己消息列表,并廣播Hello消息給中心節(jié)點(diǎn)更新分簇內(nèi)所有節(jié)點(diǎn)的信息。中心節(jié)點(diǎn)收到消息后,啟動(dòng)異常退出策略,刪除異常退出節(jié)點(diǎn),重新建立新的正常退出序列,并更新鄰居節(jié)點(diǎn)列表,報(bào)控制中心及其他節(jié)點(diǎn)更新正常退出序列; 所述的重新選舉高空節(jié)點(diǎn),具體步驟如下 Stepl :中心節(jié)點(diǎn)定時(shí)向分簇內(nèi)成員高空節(jié)點(diǎn)傳送Command消息,高空節(jié)點(diǎn)接收到消息后,向中心節(jié)點(diǎn)發(fā)送包含自己ID的Receive消息并向分簇內(nèi)低空節(jié)點(diǎn)傳遞Command消息;Step2 :如果中心節(jié)點(diǎn)在給定時(shí)間內(nèi)沒(méi)有收到高空節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command 消息; Step3:在兩次中心節(jié)點(diǎn)發(fā)送消息后,仍沒(méi)有收到高空節(jié)點(diǎn)回復(fù),則查詢(xún)此節(jié)點(diǎn)最后一次通信范圍內(nèi)節(jié)點(diǎn)發(fā)送Connect消息通過(guò)微波雷達(dá)方式查詢(xún)確認(rèn)節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接,否則中心節(jié)點(diǎn)在正常退出序列中進(jìn)行查詢(xún),確認(rèn)是否節(jié)點(diǎn)屬于正常退出,如果屬于正常退出,將其從鄰居列表中刪除,并發(fā)送消息告知分簇成員; St印4 :如果節(jié)點(diǎn)不在正常退出序列,經(jīng)二次確認(rèn)節(jié)點(diǎn)已經(jīng)異常退出,查詢(xún)發(fā)現(xiàn)此高空節(jié)點(diǎn)分簇內(nèi)低空節(jié)點(diǎn)數(shù)較多,則直接發(fā)送Hello消息給失效高空節(jié)點(diǎn)分簇內(nèi)的低空節(jié)點(diǎn),重新選舉高空節(jié)點(diǎn),低空節(jié)點(diǎn)在收到中心節(jié)點(diǎn)Hello消息后,依據(jù)第三章中高空節(jié)點(diǎn)選舉步驟重新選舉出高空節(jié)點(diǎn); Step5 :新選舉出的高空節(jié)點(diǎn)向中心節(jié)點(diǎn)發(fā)送包含自己分簇成員信息的Member信息,中心節(jié)點(diǎn)收到消息后,刪除異常退出節(jié)點(diǎn),重新按照退出序列構(gòu)建步驟,計(jì)算新產(chǎn)生高空節(jié)點(diǎn)T值,如果沒(méi)有變化則只需在原有序列中刪除異常退出節(jié)點(diǎn),其他節(jié)點(diǎn)重新建立新的正常退出序列; Step6 :如果新的高空節(jié)點(diǎn)T值相比其以前值發(fā)生變化,則中心節(jié)點(diǎn)重新比較排列各個(gè)節(jié)點(diǎn)T值,產(chǎn)生新的正常退出序列并更新鄰居節(jié)點(diǎn)列表; Step7:新的正常退出序列建立后報(bào)控制中心及其他節(jié)點(diǎn)更新正常退出序列。
9.根據(jù)權(quán)利要求5所述的高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,其特征在于,所述的中心節(jié)點(diǎn)退出時(shí),具體步驟如下 Stepl :中心節(jié)點(diǎn)接收到控制中心Command消息后,向分簇內(nèi)高空節(jié)點(diǎn)傳送Command消息,并向控制中心發(fā)送包含自己ID的Receive消息; Step2 :如果控制中心在固定時(shí)間內(nèi)沒(méi)有收到中心節(jié)點(diǎn)Receive消息,再次重新發(fā)送Command 消息; Step3 :在兩次控制中心發(fā)送消息后,仍沒(méi)有收到中心節(jié)點(diǎn)回復(fù),則查詢(xún)中心節(jié)點(diǎn)最后一次通信范圍內(nèi)其他高空節(jié)點(diǎn)發(fā)送Connect消息通過(guò)微波、雷達(dá)方式查詢(xún)確認(rèn)中心節(jié)點(diǎn)是否存在,如果節(jié)點(diǎn)存在重新建立鏈接,否則控制中心在正常退出序列中進(jìn)行查詢(xún),確認(rèn)是否中心節(jié)點(diǎn)屬于正常退出,如果屬于正常退出,則控制中心認(rèn)定中心節(jié)點(diǎn)已經(jīng)失效,直接發(fā)送Hello信息廣播給備用中心節(jié)點(diǎn)宣布其成為新的中心節(jié)點(diǎn)。
Step4 :備用中心節(jié)點(diǎn)在收到控制中心Hello消息后,向控制中心發(fā)送Sure消息刪除退出列表中原中心節(jié)點(diǎn)信息,更新新的正常退出列表,并同時(shí)發(fā)送Hello消息向其他高空節(jié)點(diǎn)廣播其為新中心節(jié)點(diǎn),控制中心與其他高空節(jié)點(diǎn)收到消息后更新自己的消息列表及正常退出列表; Step5 :如果在給定時(shí)間內(nèi)控制中心沒(méi)有收到備用中心節(jié)點(diǎn)消息,并且經(jīng)二次確認(rèn)其他節(jié)點(diǎn)也沒(méi)有查詢(xún)到備用中心節(jié)點(diǎn)信息則認(rèn)定備用中心節(jié)點(diǎn)已經(jīng)失效,查詢(xún)備用中心節(jié)點(diǎn)是否屬于正常退出,如果是正常退出則直接發(fā)送Hello信息廣播給其他高空節(jié)點(diǎn)宣布選舉新的中心節(jié)點(diǎn); Step6 :其他高空節(jié)點(diǎn)收到控制中心消息后,依據(jù)第三章中中心節(jié)點(diǎn)選舉算法選出出新的中心節(jié)點(diǎn),新的中心節(jié)點(diǎn)選出出來(lái)后,再選舉出備用中心節(jié)點(diǎn),新的中心節(jié)點(diǎn)向網(wǎng)內(nèi)其他節(jié)點(diǎn)發(fā)送Hello消息廣播自己是新的中心節(jié)點(diǎn); St印7 :其他高空節(jié)點(diǎn)收到消息后更新自己的消息列表,并發(fā)送包含自己ID在內(nèi)的Member消息給新的中心節(jié)點(diǎn),新的中心節(jié)點(diǎn)在收到Member消息后更新自己的消息列表,并發(fā)送包含移動(dòng)自組網(wǎng)內(nèi)所有節(jié)點(diǎn)信息的Hello信息給控制中心,控制中心刪除正常退出節(jié)點(diǎn)信息并傳輸給新的中心節(jié)點(diǎn)及其他節(jié)點(diǎn)新的正常退出列表。
Step8 :如果在Step3中,發(fā)現(xiàn)中心節(jié)點(diǎn)屬于異常退出,并確認(rèn)備用中心節(jié)點(diǎn)存在,則在備用中心節(jié)點(diǎn)成為新的中心節(jié)點(diǎn)后,計(jì)算新的中心節(jié)點(diǎn)T值,比較其他節(jié)點(diǎn)T值,重新建立正常退出序列,并同時(shí)發(fā)送Hello消息向其他高空節(jié)點(diǎn)廣播其為新中心節(jié)點(diǎn),控制中心與其他高空節(jié)點(diǎn)收到消息后更新自己的消息列表及正常退出列表; Step9 :如果在Step3中發(fā)現(xiàn)中心節(jié)點(diǎn)屬于異常退出并確認(rèn)備用中心節(jié)點(diǎn)失效,并在Step5中發(fā)現(xiàn)備用中心節(jié)點(diǎn)屬于異常退出經(jīng)過(guò)重新選舉出新的中心節(jié)點(diǎn)后,控制中心在收 到中心節(jié)點(diǎn)的Hello信息后更新自己的消息列表,并計(jì)算新的中心節(jié)點(diǎn)T值,與其他節(jié)點(diǎn)T 值進(jìn)行比較產(chǎn)生新的正常退出序列,傳輸給中心節(jié)點(diǎn)及其他節(jié)點(diǎn)更新新的正常退出序列。
10.根據(jù)權(quán)利要求5所述的高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,其特征在于,在自組網(wǎng)中節(jié)點(diǎn)較少時(shí),采取平面結(jié)構(gòu)由控制中心統(tǒng)一控制,各節(jié)點(diǎn)間相互聯(lián)系,具體步驟如下Stepl :中心節(jié)點(diǎn)在分簇內(nèi)作戰(zhàn)節(jié)點(diǎn)退出后,向控制中心發(fā)送包含簇成員消息的Member消息及時(shí)更新簇內(nèi)節(jié)點(diǎn)信息; St印2 :如果控制中心在收到中心節(jié)點(diǎn)Member消息后,檢測(cè)到節(jié)點(diǎn)數(shù)目已經(jīng)少于四個(gè),則向中心發(fā)出Kick消息解散分簇; Step3 :在中心節(jié)點(diǎn)轉(zhuǎn)發(fā)Kick消息給其他節(jié)點(diǎn)后,所有節(jié)點(diǎn)收到Kick消息后,離開(kāi)分簇直接向控制中心發(fā)送Join消息加入控制中心; Step4 :控制中心收到節(jié)點(diǎn)Join消息后,單獨(dú)控制各個(gè)節(jié)點(diǎn)并在各個(gè)節(jié)點(diǎn)間組織協(xié)同完成通信。
全文摘要
一種高速節(jié)點(diǎn)自組網(wǎng)中節(jié)點(diǎn)安全退出方法,所述的自組網(wǎng)結(jié)構(gòu)是由低空節(jié)點(diǎn)、高空節(jié)點(diǎn)和中心節(jié)點(diǎn)構(gòu)成的三級(jí)樹(shù)形移動(dòng)自組網(wǎng)拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)分配有唯一ID,根據(jù)不同的退出因素對(duì)節(jié)點(diǎn)退出順序的影響,建立節(jié)點(diǎn)退出因素集函數(shù),區(qū)分正常退出和異常退出兩種情況,建立正常退出序列,并針對(duì)異常退出情況構(gòu)建的退出列表。本發(fā)明能夠有效確保節(jié)點(diǎn)退出時(shí)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的穩(wěn)定性;提高高速節(jié)點(diǎn)抗干擾性和抗損毀性。
文檔編號(hào)H04W76/06GK102905392SQ20121040445
公開(kāi)日2013年1月30日 申請(qǐng)日期2012年10月22日 優(yōu)先權(quán)日2012年10月22日
發(fā)明者李千目, 汪歡, 戚湧, 侯君, 張功萱, 宋硯, 朱保平, 劉剛 申請(qǐng)人:無(wú)錫南理工科技發(fā)展有限公司